[Intel-wired-lan] [iwl-next v4 00/15] ice: support devlink subfunction
Michal Swiatkowski
michal.swiatkowski at linux.intel.com
Mon Jun 3 09:50:10 UTC 2024
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.
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/
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 | 48 ++
.../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, 1396 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
More information about the Intel-wired-lan
mailing list