Re: [PATCH net-next v2 00/15][pull request] ice: support devlink subfunction

Jiri Pirko
2024-08-01T14:35:18Z

Thu, Aug 01, 2024 at 12:10:11AM CEST, anthony.l.nguyen@intel.com wrote:
>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

Hmm, interesting. Did you run these commands or just made that up? There
is no "devlink port function del", in case you wonder why I'm asking. I
would expect you run all the commands you put into examples. Could you?

>
>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.
>---
>v2:
>- Add more recipients
>
>v1: https://lore.kernel.org/netdev/20240729223431.681842-1-anthony.l.nguyen@intel.com/
>
>The following are changes since commit 990c304930138dcd7a49763417e6e5313b81293e:
> Add support for PIO p flag
>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: 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 | 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 | 331 ++++++++++++
> 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(+), 137 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
>
>