All of lore.kernel.org
 help / color / mirror / Atom feed
From: Don Bollinger <don@thebollingers.org>
To: Andrew Lunn <andrew@lunn.ch>
Cc: Tom Lendacky <thomas.lendacky@amd.com>,
	Arnd Bergmann <arnd@arndb.de>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	linux-kernel@vger.kernel.org, brandon_chuang@edge-core.com,
	wally_wang@accton.com, roy_lee@edge-core.com,
	rick_burchett@edge-core.com, quentin.chang@quantatw.com,
	steven.noble@bigswitch.com, jeffrey.townsend@bigswitch.com,
	scotte@cumulusnetworks.com, roopa@cumulusnetworks.com,
	David Ahern <dsa@cumulusnetworks.com>,
	luke.williams@canonical.com, Guohan Lu <gulv@microsoft.com>,
	Russell King <rmk+kernel@arm.linux.org.uk>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	don@thebollingers.org
Subject: Re: [PATCH] optoe: driver to read/write SFP/QSFP EEPROMs
Date: Mon, 18 Jun 2018 12:41:27 -0700	[thread overview]
Message-ID: <20180618194127.uaeqlo3dy35qs3ip@thebollingers.org> (raw)
In-Reply-To: <20180615075417.GA28730@lunn.ch>

On Fri, Jun 15, 2018 at 09:54:17AM +0200, Andrew Lunn wrote:
> > Actually this is better described by a third use case.  The target
> > switches are PHY-less (see various designs at
> > www.compute.org/wiki/Networking/SpecsAndDesigns). The AS5712 for example
> > says "The AS5712-54X is a PHY-Less design with the SFP+ and QSFP+
> > connections directly attaching to the Serdes interfaces of the Broadcom
> > BCM56854 720G Trident 2 switching silicon..."
> 
> We consider the SFP+ and QSFP+ as being the PHY. You need something to
> control that PHY. Either it is firmware running in the switch, or it
> is the Linux kernel, via PHYLINK.

Actually in the environment I'm working in (at least 3 different NOS
vendors, and 3 different switch vendors), the {Q}SFP devices are
controlled by a platform specific driver that pokes CPLD registers.  I'm
not sure where the actual control logic is, but it doesn't appear to use
any of the frameworks you are describing.

> 
> > The i2c bus is muxed from the CPU to all of the {Q}SFP devices, which
> > are set up as standard linux i2c devices
> > (/sys/bus/i2c/devices/i2c-xxxx).
> 
> Having a standard i2c bus driver is correct. This is what PHYLINK
> assumes. It knows about the different addresses the SFP uses on the
> i2c bus.

Great.  Then plugging optoe into it should be easy.

> 
> > There is no MDIO bus between the CPU and the {Q}SFP devices.
> 
> There is no physical MDIO bus for SFP devices. If the SFP module
> implements copper 1G, there is often MDIO tunnelled over i2c. PHYLINK
> knows how to do this, and will instantiate a normal Linux MDIO bus
> driver, and then you can use the Linux kernel copper PHY state
> machines as normal.
> 
> > And, there isn't actually 'a wish to expose' the EEPROM data to linux
> > (the kernel).  It turns out that none of the NOS partners I'm working
> > with use that data *in the kernel*.  It is all managed from user space.
> 
> Ah. O.K. We can stop here then.
> 
> If you are using Linux as a boot loader, i doubt you will find any
> network kernel developers who are willing to consider this driver. The

It isn't a boot loader.  It is the kernel that is running on the switch
when it is doing its switch thing.  The kernel hosts the drivers and the
switch SDK and all the apps that configure and manage the networking.

> kernel community as decided switchdev is how the Linux kernel supports

I'm sure switchdev works very well.  It is not being used in the
environment I am trying to support.  I've checked all 3 NOSs that have
adopted optoe, none of them have switchdev configured in their .config
file:

# CONFIG_NET_SWITCHDEV is not set

> switches. We are unlikely to add drivers for supporting user space
> drivers of switches.

That's not the request.  I'm offering an improved driver to access {Q}SFP
EEPROMs.  It can be easily called by your framework, so the sfp.c users
can also get improved access to the EEPROMs.

As designed it fits the need in the linux based community I'm
working with.  It is in production in two NOSs on three switches.  Less
complete variants of this driver are in production on all three NOSs
I've worked with, on dozens of platforms.  This is real code, that fits
a real need, and would like the benefits of being maintained as part of
the mainline kernel.

> 
> NACK.
> 
> 	Andrew
> 

Don

  reply	other threads:[~2018-06-18 19:51 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-11  4:25 [PATCH] optoe: driver to read/write SFP/QSFP EEPROMs Don Bollinger
2018-06-11  4:56 ` Randy Dunlap
2018-06-11 18:31   ` Don Bollinger
2018-06-11 13:43 ` Arnd Bergmann
2018-06-14  0:40   ` Don Bollinger
2018-06-14  7:46     ` Arnd Bergmann
2018-06-15  2:41       ` Don Bollinger
2018-06-11 18:33 ` Tom Lendacky
2018-06-11 21:01   ` Don Bollinger
2018-06-12 18:11   ` Andrew Lunn
2018-06-15  2:26     ` Don Bollinger
2018-06-15  3:24       ` Florian Fainelli
2018-06-18 19:13         ` Don Bollinger
2018-06-15  7:54       ` Andrew Lunn
2018-06-18 19:41         ` Don Bollinger [this message]
2018-06-19 15:15           ` Andrew Lunn
     [not found]             ` <20180621052425.pa464laxjrebm5s3@thebollingers.org>
2018-06-21  8:11               ` Andrew Lunn
2018-06-21 20:28                 ` Don Bollinger
2018-06-22  7:28                   ` Andrew Lunn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180618194127.uaeqlo3dy35qs3ip@thebollingers.org \
    --to=don@thebollingers.org \
    --cc=andrew@lunn.ch \
    --cc=arnd@arndb.de \
    --cc=brandon_chuang@edge-core.com \
    --cc=dsa@cumulusnetworks.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=gulv@microsoft.com \
    --cc=jeffrey.townsend@bigswitch.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=luke.williams@canonical.com \
    --cc=netdev@vger.kernel.org \
    --cc=quentin.chang@quantatw.com \
    --cc=rick_burchett@edge-core.com \
    --cc=rmk+kernel@arm.linux.org.uk \
    --cc=roopa@cumulusnetworks.com \
    --cc=roy_lee@edge-core.com \
    --cc=scotte@cumulusnetworks.com \
    --cc=steven.noble@bigswitch.com \
    --cc=thomas.lendacky@amd.com \
    --cc=wally_wang@accton.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.