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

Michal Swiatkowski
2024-08-02T04:50:02Z

On Thu, Aug 01, 2024 at 04:35:15PM +0200, Jiri Pirko wrote:
> 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?

I run all commands, there is mistake in copying, should be:
devlink port del pci/0000:31:00.1/1
of course.

>
>
> >
> >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
> >
> >