netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [iwl-next v5 00/15] ice: support devlink subfunction
@ 2024-06-06 11:24 Michal Swiatkowski
  2024-06-06 11:24 ` [iwl-next v5 01/15] ice: add new VSI type for subfunctions Michal Swiatkowski
                   ` (14 more replies)
  0 siblings, 15 replies; 37+ messages in thread
From: Michal Swiatkowski @ 2024-06-06 11:24 UTC (permalink / raw)
  To: intel-wired-lan
  Cc: netdev, jacob.e.keller, michal.kubiak, maciej.fijalkowski,
	sridhar.samudrala, przemyslaw.kitszel, wojciech.drewek,
	pio.raczynski, jiri, mateusz.polchlopek, shayd,
	kalesh-anakkur.purayil, horms

Hi,

Currently ice driver does not allow creating more than one networking
device per physical function. The only way to have more hardware backed
netdev is to use SR-IOV.

Following patchset adds support for devlink port API. For each new
pcisf type port, driver allocates new VSI, configures all resources
needed, including dynamically MSIX vectors, program rules and registers
new netdev.

This series supports only one Tx/Rx queue pair per subfunction.

Example commands:
devlink port add pci/0000:31:00.1 flavour pcisf pfnum 1 sfnum 1000
devlink port function set pci/0000:31:00.1/1 hw_addr 00:00:00:00:03:14
devlink port function set pci/0000:31:00.1/1 state active
devlink port function del pci/0000:31:00.1/1

Make the port representor and eswitch code generic to support
subfunction representor type.

VSI configuration is slightly different between VF and SF. It needs to
be reflected in the code.

v4 --> v5: [7]
 * use devlink_alloc() instead of devlink_alloc_ns() during subfunction
   devlink creation

v3 --> v4: [6]
 * fix comment in ice_allocate_sf()
 * return ERR_PTR instead of NULL in ice_allocate_sf()

v2 --> v3: [5]
 * fix misspealing in commit tilte
 * add missing doc entries in ice_dynamic_port
 * drop dev_err where extack is available
 * fix RCT in declaration

v1 --> v2: [4]
 * allow changing SF MAC address only when port isn't attached
 * split patch with port representor creation into two (first making
   code generic and than adding support for SF representor)
 * fix warning massege in case of SF device creation
 * remove double space
 * add verb in commit message

Changelog for previous patchset version (not containing port representor
for SF support).

v3 --> v4: [3]
 * get rid of unnecessary checks
 * fix cosmetic issues (whitespaces, wording)
 * move unrelated chunks to separate patch
 * move implementing activation/deactivation to last patch

v2 --> v3: [2]
 * fix building issue between the patches; allocating devlink for
 subfunction need to include base subfunction header
 * fix kdoc issues

v1 --> v2: [1]
 * use correct parameters in ice_devlink_alloc() thanks to Mateusz

[1] https://lore.kernel.org/netdev/20240507114516.9765-1-michal.swiatkowski@linux.intel.com/
[2] https://lore.kernel.org/netdev/20240410050809.125043-1-michal.swiatkowski@linux.intel.com/
[3] https://lore.kernel.org/netdev/20240412063053.339795-1-michal.swiatkowski@linux.intel.com/
[4] https://lore.kernel.org/netdev/20240408103049.19445-1-michal.swiatkowski@linux.intel.com/
[5] https://lore.kernel.org/netdev/20240513083735.54791-1-michal.swiatkowski@linux.intel.com/
[6] https://lore.kernel.org/netdev/20240528043813.1342483-1-michal.swiatkowski@linux.intel.com/
[7] https://lore.kernel.org/netdev/20240603095025.1395347-1-michal.swiatkowski@linux.intel.com/

Michal Swiatkowski (8):
  ice: treat subfunction VSI the same as PF VSI
  ice: make representor code generic
  ice: create port representor for SF
  ice: don't set target VSI for subfunction
  ice: check if SF is ready in ethtool ops
  ice: implement netdevice ops for SF representor
  ice: support subfunction devlink Tx topology
  ice: basic support for VLAN in subfunctions

Piotr Raczynski (7):
  ice: add new VSI type for subfunctions
  ice: export ice ndo_ops functions
  ice: add basic devlink subfunctions support
  ice: allocate devlink for subfunction
  ice: base subfunction aux driver
  ice: implement netdev for subfunction
  ice: allow to activate and deactivate subfunction

 drivers/net/ethernet/intel/ice/Makefile       |   2 +
 .../net/ethernet/intel/ice/devlink/devlink.c  |  47 ++
 .../net/ethernet/intel/ice/devlink/devlink.h  |   1 +
 .../ethernet/intel/ice/devlink/devlink_port.c | 503 ++++++++++++++++++
 .../ethernet/intel/ice/devlink/devlink_port.h |  46 ++
 drivers/net/ethernet/intel/ice/ice.h          |  19 +-
 drivers/net/ethernet/intel/ice/ice_base.c     |   5 +-
 drivers/net/ethernet/intel/ice/ice_dcb_lib.c  |   1 +
 drivers/net/ethernet/intel/ice/ice_eswitch.c  | 113 +++-
 drivers/net/ethernet/intel/ice/ice_eswitch.h  |  22 +-
 drivers/net/ethernet/intel/ice/ice_ethtool.c  |   7 +-
 drivers/net/ethernet/intel/ice/ice_lib.c      |  52 +-
 drivers/net/ethernet/intel/ice/ice_lib.h      |   3 +
 drivers/net/ethernet/intel/ice/ice_main.c     |  66 ++-
 drivers/net/ethernet/intel/ice/ice_repr.c     | 211 ++++++--
 drivers/net/ethernet/intel/ice/ice_repr.h     |  22 +-
 drivers/net/ethernet/intel/ice/ice_sf_eth.c   | 329 ++++++++++++
 drivers/net/ethernet/intel/ice/ice_sf_eth.h   |  33 ++
 .../ethernet/intel/ice/ice_sf_vsi_vlan_ops.c  |  21 +
 .../ethernet/intel/ice/ice_sf_vsi_vlan_ops.h  |  13 +
 drivers/net/ethernet/intel/ice/ice_sriov.c    |   4 +-
 drivers/net/ethernet/intel/ice/ice_txrx.c     |   2 +-
 drivers/net/ethernet/intel/ice/ice_type.h     |   1 +
 drivers/net/ethernet/intel/ice/ice_vf_lib.c   |   4 +-
 .../net/ethernet/intel/ice/ice_vsi_vlan_ops.c |   4 +
 drivers/net/ethernet/intel/ice/ice_xsk.c      |   2 +-
 26 files changed, 1395 insertions(+), 138 deletions(-)
 create mode 100644 drivers/net/ethernet/intel/ice/ice_sf_eth.c
 create mode 100644 drivers/net/ethernet/intel/ice/ice_sf_eth.h
 create mode 100644 drivers/net/ethernet/intel/ice/ice_sf_vsi_vlan_ops.c
 create mode 100644 drivers/net/ethernet/intel/ice/ice_sf_vsi_vlan_ops.h

-- 
2.42.0


^ permalink raw reply	[flat|nested] 37+ messages in thread

end of thread, other threads:[~2024-07-23 11:26 UTC | newest]

Thread overview: 37+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-06 11:24 [iwl-next v5 00/15] ice: support devlink subfunction Michal Swiatkowski
2024-06-06 11:24 ` [iwl-next v5 01/15] ice: add new VSI type for subfunctions Michal Swiatkowski
2024-07-23 11:06   ` [Intel-wired-lan] " Romanowski, Rafal
2024-06-06 11:24 ` [iwl-next v5 02/15] ice: export ice ndo_ops functions Michal Swiatkowski
2024-07-23 11:13   ` [Intel-wired-lan] " Romanowski, Rafal
2024-06-06 11:24 ` [iwl-next v5 03/15] ice: add basic devlink subfunctions support Michal Swiatkowski
2024-07-23 11:13   ` [Intel-wired-lan] " Romanowski, Rafal
2024-06-06 11:24 ` [iwl-next v5 04/15] ice: treat subfunction VSI the same as PF VSI Michal Swiatkowski
2024-06-27 11:07   ` Maciej Fijalkowski
2024-06-27 12:31     ` Michal Swiatkowski
2024-07-23 11:14       ` [Intel-wired-lan] " Romanowski, Rafal
2024-06-06 11:24 ` [iwl-next v5 05/15] ice: allocate devlink for subfunction Michal Swiatkowski
2024-06-14 10:55   ` Simon Horman
2024-07-23 11:15     ` [Intel-wired-lan] " Romanowski, Rafal
2024-06-06 11:24 ` [iwl-next v5 06/15] ice: base subfunction aux driver Michal Swiatkowski
2024-07-23 11:16   ` [Intel-wired-lan] " Romanowski, Rafal
2024-06-06 11:24 ` [iwl-next v5 07/15] ice: implement netdev for subfunction Michal Swiatkowski
2024-06-27 11:13   ` Maciej Fijalkowski
2024-06-27 12:32     ` Michal Swiatkowski
2024-07-23 11:20       ` [Intel-wired-lan] " Romanowski, Rafal
2024-06-06 11:24 ` [iwl-next v5 08/15] ice: make representor code generic Michal Swiatkowski
2024-07-23 11:21   ` [Intel-wired-lan] " Romanowski, Rafal
2024-06-06 11:24 ` [iwl-next v5 09/15] ice: create port representor for SF Michal Swiatkowski
2024-07-23 11:21   ` [Intel-wired-lan] " Romanowski, Rafal
2024-06-06 11:24 ` [iwl-next v5 10/15] ice: don't set target VSI for subfunction Michal Swiatkowski
2024-07-23 11:23   ` [Intel-wired-lan] " Romanowski, Rafal
2024-06-06 11:24 ` [iwl-next v5 11/15] ice: check if SF is ready in ethtool ops Michal Swiatkowski
2024-07-23 11:24   ` [Intel-wired-lan] " Romanowski, Rafal
2024-06-06 11:25 ` [iwl-next v5 12/15] ice: implement netdevice ops for SF representor Michal Swiatkowski
2024-06-14 11:02   ` Simon Horman
2024-07-23 11:24     ` [Intel-wired-lan] " Romanowski, Rafal
2024-06-06 11:25 ` [iwl-next v5 13/15] ice: support subfunction devlink Tx topology Michal Swiatkowski
2024-07-23 11:25   ` [Intel-wired-lan] " Romanowski, Rafal
2024-06-06 11:25 ` [iwl-next v5 14/15] ice: basic support for VLAN in subfunctions Michal Swiatkowski
2024-07-23 11:25   ` [Intel-wired-lan] " Romanowski, Rafal
2024-06-06 11:25 ` [iwl-next v5 15/15] ice: allow to activate and deactivate subfunction Michal Swiatkowski
2024-07-23 11:26   ` [Intel-wired-lan] " Romanowski, Rafal

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).