All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Ahern <dsahern@gmail.com>
To: Ido Schimmel <idosch@nvidia.com>, netdev@vger.kernel.org
Cc: davem@davemloft.net, kuba@kernel.org, pabeni@redhat.com,
	jiri@nvidia.com, vadimp@nvidia.com, petrm@nvidia.com,
	andrew@lunn.ch, mlxsw@nvidia.com
Subject: Re: [PATCH net-next 00/17] Introduce line card support for modular switch
Date: Mon, 18 Apr 2022 08:31:30 -0600	[thread overview]
Message-ID: <4d86acf1-d449-92d7-f8c7-bd0edc9e5107@gmail.com> (raw)
In-Reply-To: <20220418064241.2925668-1-idosch@nvidia.com>

On 4/18/22 12:42 AM, Ido Schimmel wrote:
> Jiri says:
> 
> This patchset introduces support for modular switch systems and also
> introduces mlxsw support for NVIDIA Mellanox SN4800 modular switch.
> It contains 8 slots to accommodate line cards - replaceable PHY modules
> which may contain gearboxes.
> Currently supported line card:
> 16X 100GbE (QSFP28)
> Other line cards that are going to be supported:
> 8X 200GbE (QSFP56)
> 4X 400GbE (QSFP-DD)
> There may be other types of line cards added in the future.
> 
> To be consistent with the port split configuration (splitter cabels),
> the line card entities are treated in the similar way. The nature of
> a line card is not "a pluggable device", but "a pluggable PHY module".
> 
> 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. It does
> not matter if the line card is plugged-in at the time. User is able to
> configure netdevices, devlink ports, setup port splitters, etc. From the
> perspective of the switch ASIC, all is present and can be configured.
> 
> The carrier of netdevices stays down if the line card is not plugged-in.
> Once the line card is inserted and activated, the carrier of
> the related netdevices is then reflecting the physical line state,
> same as for an ordinary fixed port.
> 
> Once user does not want to use the line card related instances
> anymore, he can "unprovision" the slot. Driver then removes the
> instances.
> 
> Patches 1-4 are extending devlink driver API and UAPI in order to
> register, show, dump, provision and activate the line card.
> Patches 5-17 are implementing the introduced API in mlxsw.
> The last patch adds a selftest for mlxsw line cards.
> 
> Example:
> $ devlink port # No ports are listed
> $ devlink lc
> pci/0000:01:00.0:
>   lc 1 state unprovisioned
>     supported_types:
>        16x100G
>   lc 2 state unprovisioned
>     supported_types:
>        16x100G
>   lc 3 state unprovisioned
>     supported_types:
>        16x100G
>   lc 4 state unprovisioned
>     supported_types:
>        16x100G
>   lc 5 state unprovisioned
>     supported_types:
>        16x100G
>   lc 6 state unprovisioned
>     supported_types:
>        16x100G
>   lc 7 state unprovisioned
>     supported_types:
>        16x100G
>   lc 8 state unprovisioned
>     supported_types:
>        16x100G
> 
> Note that driver exposes list supported line card types. Currently
> there is only one: "16x100G".
> 
> To provision the slot #8:
> 
> $ devlink lc set pci/0000:01:00.0 lc 8 type 16x100G
> $ devlink lc show pci/0000:01:00.0 lc 8
> pci/0000:01:00.0:
>   lc 8 state active type 16x100G
>     supported_types:
>        16x100G
> $ devlink port
> pci/0000:01:00.0/0: type notset flavour cpu port 0 splittable false
> pci/0000:01:00.0/53: type eth netdev enp1s0nl8p1 flavour physical lc 8 port 1 splittable true lanes 4
> pci/0000:01:00.0/54: type eth netdev enp1s0nl8p2 flavour physical lc 8 port 2 splittable true lanes 4
> pci/0000:01:00.0/55: type eth netdev enp1s0nl8p3 flavour physical lc 8 port 3 splittable true lanes 4
> pci/0000:01:00.0/56: type eth netdev enp1s0nl8p4 flavour physical lc 8 port 4 splittable true lanes 4
> pci/0000:01:00.0/57: type eth netdev enp1s0nl8p5 flavour physical lc 8 port 5 splittable true lanes 4
> pci/0000:01:00.0/58: type eth netdev enp1s0nl8p6 flavour physical lc 8 port 6 splittable true lanes 4
> pci/0000:01:00.0/59: type eth netdev enp1s0nl8p7 flavour physical lc 8 port 7 splittable true lanes 4
> pci/0000:01:00.0/60: type eth netdev enp1s0nl8p8 flavour physical lc 8 port 8 splittable true lanes 4
> pci/0000:01:00.0/61: type eth netdev enp1s0nl8p9 flavour physical lc 8 port 9 splittable true lanes 4
> pci/0000:01:00.0/62: type eth netdev enp1s0nl8p10 flavour physical lc 8 port 10 splittable true lanes 4
> pci/0000:01:00.0/63: type eth netdev enp1s0nl8p11 flavour physical lc 8 port 11 splittable true lanes 4
> pci/0000:01:00.0/64: type eth netdev enp1s0nl8p12 flavour physical lc 8 port 12 splittable true lanes 4
> pci/0000:01:00.0/125: type eth netdev enp1s0nl8p13 flavour physical lc 8 port 13 splittable true lanes 4
> pci/0000:01:00.0/126: type eth netdev enp1s0nl8p14 flavour physical lc 8 port 14 splittable true lanes 4
> pci/0000:01:00.0/127: type eth netdev enp1s0nl8p15 flavour physical lc 8 port 15 splittable true lanes 4
> pci/0000:01:00.0/128: type eth netdev enp1s0nl8p16 flavour physical lc 8 port 16 splittable true lanes 4
> 
> To uprovision the slot #8:
> 
> $ devlink lc set pci/0000:01:00.0 lc 8 notype
> 

are there any changes from the last RFC?

https://lore.kernel.org/netdev/20210122094648.1631078-1-jiri@resnulli.us/



  parent reply	other threads:[~2022-04-18 15:26 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-04-18  6:42 [PATCH net-next 00/17] Introduce line card support for modular switch Ido Schimmel
2022-04-18  6:42 ` [PATCH net-next 01/17] devlink: add support to create line card and expose to user Ido Schimmel
2022-04-18  6:42 ` [PATCH net-next 02/17] devlink: implement line card provisioning Ido Schimmel
2022-04-18  6:42 ` [PATCH net-next 03/17] devlink: implement line card active state Ido Schimmel
2022-04-18  6:42 ` [PATCH net-next 04/17] devlink: add port to line card relationship set Ido Schimmel
2022-04-18  6:42 ` [PATCH net-next 05/17] mlxsw: spectrum: Allow lane to start from non-zero index Ido Schimmel
2022-04-18  6:42 ` [PATCH net-next 06/17] mlxsw: spectrum: Allocate port mapping array of structs instead of pointers Ido Schimmel
2022-04-18  6:42 ` [PATCH net-next 07/17] mlxsw: reg: Add Ports Mapping Event Configuration Register Ido Schimmel
2022-04-18  6:42 ` [PATCH net-next 08/17] mlxsw: Narrow the critical section of devl_lock during ports creation/removal Ido Schimmel
2022-04-18  6:42 ` [PATCH net-next 09/17] mlxsw: spectrum: Introduce port mapping change event processing Ido Schimmel
2022-04-18  6:42 ` [PATCH net-next 10/17] mlxsw: reg: Add Management DownStream Device Query Register Ido Schimmel
2022-04-18  6:42 ` [PATCH net-next 11/17] mlxsw: reg: Add Management DownStream Device Control Register Ido Schimmel
2022-04-18  6:42 ` [PATCH net-next 12/17] mlxsw: reg: Add Management Binary Code Transfer Register Ido Schimmel
2022-04-18  6:42 ` [PATCH net-next 13/17] mlxsw: core_linecards: Add line card objects and implement provisioning Ido Schimmel
2022-04-18  6:42 ` [PATCH net-next 14/17] mlxsw: core_linecards: Implement line card activation process Ido Schimmel
2022-04-18  6:42 ` [PATCH net-next 15/17] mlxsw: core: Extend driver ops by remove selected ports op Ido Schimmel
2022-04-18  6:42 ` [PATCH net-next 16/17] mlxsw: spectrum: Add port to linecard mapping Ido Schimmel
2022-04-18  6:42 ` [PATCH net-next 17/17] selftests: mlxsw: Introduce devlink line card provision/unprovision/activation tests Ido Schimmel
2022-04-18 10:10 ` [PATCH net-next 00/17] Introduce line card support for modular switch patchwork-bot+netdevbpf
2022-04-18 14:31 ` David Ahern [this message]
2022-04-19 11:55   ` Jiri Pirko
2022-04-19 12:58     ` Ido Schimmel

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=4d86acf1-d449-92d7-f8c7-bd0edc9e5107@gmail.com \
    --to=dsahern@gmail.com \
    --cc=andrew@lunn.ch \
    --cc=davem@davemloft.net \
    --cc=idosch@nvidia.com \
    --cc=jiri@nvidia.com \
    --cc=kuba@kernel.org \
    --cc=mlxsw@nvidia.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=petrm@nvidia.com \
    --cc=vadimp@nvidia.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.