[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240813215005.3647350-1-anthony.l.nguyen@intel.com>
Date: Tue, 13 Aug 2024 14:49:49 -0700
From: Tony Nguyen <anthony.l.nguyen@...el.com>
To: davem@...emloft.net,
kuba@...nel.org,
pabeni@...hat.com,
edumazet@...gle.com,
netdev@...r.kernel.org
Cc: anthony.l.nguyen@...el.com,
michal.swiatkowski@...ux.intel.com,
jiri@...dia.com,
shayd@...dia.com,
wojciech.drewek@...el.com,
horms@...nel.org,
sridhar.samudrala@...el.com,
mateusz.polchlopek@...el.com,
kalesh-anakkur.purayil@...adcom.com,
michal.kubiak@...el.com,
pio.raczynski@...il.com,
przemyslaw.kitszel@...el.com,
jacob.e.keller@...el.com,
maciej.fijalkowski@...el.com
Subject: [PATCH net-next v4 00/15][pull request] ice: support devlink subfunction
Michal Swiatkowski says:
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:
- fix dev warn message when index isn't supported
- change pf->hw.bus.func to internal pf id
- use devl_register instead of locking version
- rephrase last commit message
v3: https://lore.kernel.org/netdev/20240808173104.385094-1-anthony.l.nguyen@intel.com/
- move active checking into functions where it is set
- move devlink port creation for subfunction into patchset where it is
used
- change error message in subfunction activation to be consistent
- remove leftover from patch 5 (sorry Simon that I missed your comment
previously)
- add support for xsk ZC multi-buffer for subfunction netdev
v2: https://lore.kernel.org/netdev/20240731221028.965449-1-anthony.l.nguyen@intel.com/
- Add more recipients
v1: https://lore.kernel.org/netdev/20240729223431.681842-1-anthony.l.nguyen@intel.com/
iwl-next: https://lore.kernel.org/intel-wired-lan/20240606112503.1939759-1-michal.swiatkowski@linux.intel.com/
The following are changes since commit dd1bf9f9df156b43e5122f90d97ac3f59a1a5621:
net: hinic: use ethtool_sprintf/puts
and are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/tnguy/next-queue 100GbE
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: subfunction activation and base devlink ops
drivers/net/ethernet/intel/ice/Makefile | 2 +
.../net/ethernet/intel/ice/devlink/devlink.c | 46 ++
.../net/ethernet/intel/ice/devlink/devlink.h | 1 +
.../ethernet/intel/ice/devlink/devlink_port.c | 508 +++++++++++++++++-
.../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 | 111 +++-
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, 1397 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
Powered by blists - more mailing lists