Re: [patch net-next RFC 00/10] introduce line card support for modular switch
From: Jacob Keller <jacob.e.keller@intel.com>
Date: 2021-01-14 22:59:20
On 1/13/2021 6:27 PM, Jakub Kicinski wrote:
On Wed, 13 Jan 2021 13:12:12 +0100 Jiri Pirko wrote:quoted
This patchset introduces support for modular switch systems. NVIDIA Mellanox SN4800 is an example of such. It contains 8 slots to accomodate line cards. Available line cards include: 16X 100GbE (QSFP28) 8X 200GbE (QSFP56) 4X 400GbE (QSFP-DD) Similar to split cabels, it is essencial for the correctness of configuration and funcionality to treat the line card entities in the same way, no matter the line card is inserted or not. Meaning, the netdevice of a line card port cannot just disappear when line card is removed. Also, system admin needs to be able to apply configuration on netdevices belonging to line card port even before the linecard gets inserted.I don't understand why that would be. Please provide reasoning, e.g. what the FW/HW limitation is.
I agree, I wouldn't imagine that plugging or unplugging line cards is expected to be done on a regular basis?
quoted
To resolve this, a concept of "provisioning" is introduced. The user may "provision" certain slot with a line card type. Driver then creates all instances (devlink ports, netdevices, etc) related to this line card type. The carrier of netdevices stays down. Once the line card is inserted and activated, the carrier of the related netdevices goes up.Dunno what "line card" means for Mellovidia but I don't think the analogy of port splitting works. To my knowledge traditional line cards often carry processors w/ full MACs etc. so I'd say plugging in a line card is much more like plugging in a new NIC.
Even if they didn't...
There is no way to tell a breakout cable from normal one, so the system has no chance to magically configure itself. Besides SFP is just plugging a cable, not a module of the system..
If you're able to tell what is plugged in, why would we want to force user to provision ahead of time? Wouldn't it make more sense to just instantiate them as the card is plugged in? I guess it might be useful to allow programming the netdevices before the cable is actually inserted... I guess I don't see why that is valuable. It would be sort of like if you provision a PCI slot before a device is plugged into it..