linux/Documentation/networking/devlink
Jakub Kicinski 0f19f514de mlx5-updates-2023-02-10
1) From Roi and Mark: MultiPort eswitch support
 
 MultiPort E-Switch builds on newer hardware's capabilities and introduces
 a mode where a single E-Switch is used and all the vports and physical
 ports on the NIC are connected to it.
 
 The new mode will allow in the future a decrease in the memory used by the
 driver and advanced features that aren't possible today.
 
 This represents a big change in the current E-Switch implantation in mlx5.
 Currently, by default, each E-Switch manager manages its E-Switch.
 Steering rules in each E-Switch can only forward traffic to the native
 physical port associated with that E-Switch. While there are ways to target
 non-native physical ports, for example using a bond or via special TC
 rules. None of the ways allows a user to configure the driver
 to operate by default in such a mode nor can the driver decide
 to move to this mode by default as it's user configuration-driven right now.
 
 While MultiPort E-Switch single FDB mode is the preferred mode, older
 generations of ConnectX hardware couldn't support this mode so it was never
 implemented. Now that there is capable hardware present, start the
 transition to having this mode by default.
 
 Introduce a devlink parameter to control MultiPort Eswitch single FDB mode.
 This will allow users to select this mode on their system right now
 and in the future will allow the driver to move to this mode by default.
 
 2) From Jiri: Improvements and fixes for mlx5 netdev's devlink logic
  2.1) Cleanups related to mlx5's devlink port logic
  2.2) Move devlink port registration to be done before netdev alloc
  2.3) Create auxdev devlink instance in the same ns as parent devlink
  2.4) Suspend auxiliary devices only in case of PCI device suspend
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCAAdFiEEGhZs6bAKwk/OTgTpSD+KveBX+j4FAmPsBlsACgkQSD+KveBX
 +j6izAgAtvzimjzOqI8J0FKPW3piRH3VtNWUrlGAf4HHPI0lZMbEV5GIaSI15JeH
 wrIpNXKzaA+6+NZ7TzTwqVO+zyKCQVpRw7xPANIJ2A5dId36jU2AgW06zgzFuYWa
 mXKG8rAUls6E5a5DHTaY/SueWMO9KMOfLzHFXHNsLAKTAw+FoDdlGso5vgvsy44g
 2/N/kDBdzC5n8og934sM7JymthnTVyuGe/Au2w1UUR1MMZ46OQgmhStDwqS5MrzI
 pIi+tWFG9YFM5/J8d13y7X/xMCq26Aw6SZSUhsRfTk0goy0uKaU6yYm8vSbO0mci
 +e0c8bpWL/MzAhMzWj8CwBPeO6knOw==
 =tYc2
 -----END PGP SIGNATURE-----

Merge tag 'mlx5-updates-2023-02-10' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux

Saeed Mahameed says:

====================
mlx5-updates-2023-02-10

1) From Roi and Mark: MultiPort eswitch support

MultiPort E-Switch builds on newer hardware's capabilities and introduces
a mode where a single E-Switch is used and all the vports and physical
ports on the NIC are connected to it.

The new mode will allow in the future a decrease in the memory used by the
driver and advanced features that aren't possible today.

This represents a big change in the current E-Switch implantation in mlx5.
Currently, by default, each E-Switch manager manages its E-Switch.
Steering rules in each E-Switch can only forward traffic to the native
physical port associated with that E-Switch. While there are ways to target
non-native physical ports, for example using a bond or via special TC
rules. None of the ways allows a user to configure the driver
to operate by default in such a mode nor can the driver decide
to move to this mode by default as it's user configuration-driven right now.

While MultiPort E-Switch single FDB mode is the preferred mode, older
generations of ConnectX hardware couldn't support this mode so it was never
implemented. Now that there is capable hardware present, start the
transition to having this mode by default.

Introduce a devlink parameter to control MultiPort Eswitch single FDB mode.
This will allow users to select this mode on their system right now
and in the future will allow the driver to move to this mode by default.

2) From Jiri: Improvements and fixes for mlx5 netdev's devlink logic
 2.1) Cleanups related to mlx5's devlink port logic
 2.2) Move devlink port registration to be done before netdev alloc
 2.3) Create auxdev devlink instance in the same ns as parent devlink
 2.4) Suspend auxiliary devices only in case of PCI device suspend

* tag 'mlx5-updates-2023-02-10' of git://git.kernel.org/pub/scm/linux/kernel/git/saeed/linux:
  net/mlx5: Suspend auxiliary devices only in case of PCI device suspend
  net/mlx5: Remove "recovery" arg from mlx5_load_one() function
  net/mlx5e: Create auxdev devlink instance in the same ns as parent devlink
  net/mlx5e: Move devlink port registration to be done before netdev alloc
  net/mlx5e: Move dl_port to struct mlx5e_dev
  net/mlx5e: Replace usage of mlx5e_devlink_get_dl_port() by netdev->devlink_port
  net/mlx5e: Pass mdev to mlx5e_devlink_port_register()
  net/mlx5: Remove outdated comment
  net/mlx5e: TC, Remove redundant parse_attr argument
  net/mlx5e: Use a simpler comparison for uplink rep
  net/mlx5: Lag, Add single RDMA device in multiport mode
  net/mlx5: Lag, set different uplink vport metadata in multiport eswitch mode
  net/mlx5: E-Switch, rename bond update function to be reused
  net/mlx5e: TC, Add peer flow in mpesw mode
  net/mlx5: Lag, Control MultiPort E-Switch single FDB mode
====================

Link: https://lore.kernel.org/r/20230214221239.159033-1-saeed@kernel.org
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-02-15 19:24:52 -08:00
..
am65-nuss-cpsw-switch.rst net: ti: am65-cpsw-nuss: Add devlink support 2021-02-11 17:52:13 -08:00
bnxt.rst bnxt_en: Update bnxt.rst devlink documentation 2021-10-29 12:13:05 +01:00
devlink-dpipe.rst devlink: fix typo in documentation 2021-03-13 18:11:24 -08:00
devlink-flash.rst devlink: introduce flash update overwrite mask 2020-09-25 17:20:57 -07:00
devlink-health.rst devlink: Update devlink health documentation 2023-02-15 19:15:44 -08:00
devlink-info.rst net: devlink: add DEVLINK_INFO_VERSION_GENERIC_FW_BOOTLOADER 2022-12-12 11:39:13 +01:00
devlink-linecard.rst Revert "Merge branch 'mlxsw-line-card-model'" 2022-05-05 15:47:23 -07:00
devlink-params.rst devlink: Clarifies max_macs generic devlink param 2021-12-21 19:08:55 -08:00
devlink-port.rst devlink: Expose port function commands to control migratable 2022-12-07 20:09:18 -08:00
devlink-region.rst devlink: support directly reading from region memory 2022-11-30 20:54:30 -08:00
devlink-reload.rst devlink: Add Documentation/networking/devlink/devlink-reload.rst 2020-10-09 12:06:53 -07:00
devlink-resource.rst mlxsw: Register physical ports as a devlink resource 2021-01-22 20:42:13 -08:00
devlink-selftests.rst devlink: introduce framework for selftests 2022-07-28 21:56:53 -07:00
devlink-trap.rst devlink: Add packet traps for 802.1X operation 2022-11-09 19:06:14 -08:00
etas_es58x.rst Documentation: devlink: add devlink documentation for the etas_es58x driver 2022-12-12 11:39:13 +01:00
hns3.rst devlink: add documentation for hns3 driver 2021-07-26 12:16:03 +01:00
ice.rst Documentation: networking: correct spelling 2023-01-31 13:00:47 +01:00
index.rst Documentation: devlink: add missing toc entry for etas_es58x devlink doc 2022-12-19 16:08:27 +01:00
ionic.rst devlink: add documentation for ionic device driver 2020-01-10 17:07:00 -08:00
iosm.rst net: wwan: iosm: correct devlink extra params 2021-10-02 16:05:20 +01:00
mlx4.rst devlink: add a file documenting devlink regions 2020-01-10 17:07:00 -08:00
mlx5.rst net/mlx5: Lag, Control MultiPort E-Switch single FDB mode 2023-02-14 14:08:24 -08:00
mlxsw.rst mlxsw: core_linecards: Expose device PSID over device info 2022-07-26 13:56:36 -07:00
mv88e6xxx.rst
netdevsim.rst Documentation: networking: correct spelling 2023-01-31 13:00:47 +01:00
nfp.rst
octeontx2.rst devlink: add documentation for octeontx2 driver 2021-10-28 14:35:34 +01:00
prestera.rst Documentation: networking: correct spelling 2023-01-31 13:00:47 +01:00
qed.rst devlink: fix typos in qed documentation 2020-01-15 23:14:31 +01:00
ti-cpsw-switch.rst