Skip to content

sfc: Enabling EF10 Vf's, set up vswitching and bind the SFC driver to the VF's

Shradha Shah netdev 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest14 patches 1 replyIn review

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/14sfc: Own header for nic-specific sriov functions, single instance of netdev_ops and sriov removed from Falcon codedrivers/net/ethernet/sfc/Makefile drivers/net/ethernet/sfc/ef10.c drivers/net/ethernet/sfc/ef10_sriov.h +12 more+355 -2100 replies
2/14sfc: Move and rename efx_vf struct to siena_vfdrivers/net/ethernet/sfc/net_driver.h drivers/net/ethernet/sfc/nic.h drivers/net/ethernet/sfc/siena_sriov.c+67 -570 replies
3/14sfc: Enable VF's via a write to the sysfs file sriov_numvfsdrivers/net/ethernet/sfc/Makefile drivers/net/ethernet/sfc/ef10.c drivers/net/ethernet/sfc/ef10_sriov.c +6 more+82 -10 replies
4/14sfc: Use MCDI to set FILTER_OP_IN_TX_DOMAINdrivers/net/ethernet/sfc/ef10.c+1 -00 replies
5/14sfc: Record [rt]x_dpcpu_fw_id in EF10 nic_datadrivers/net/ethernet/sfc/ef10.c drivers/net/ethernet/sfc/mcdi.c drivers/net/ethernet/sfc/nic.h+17 -160 replies
6/14sfc: record the PF's vport ID in nic_datadrivers/net/ethernet/sfc/ef10.c drivers/net/ethernet/sfc/nic.h+11 -40 replies
7/14sfc: create VEB vswitch and vport above default firmware setupdrivers/net/ethernet/sfc/ef10.c drivers/net/ethernet/sfc/ef10_sriov.c drivers/net/ethernet/sfc/ef10_sriov.h +4 more+167 -30 replies
8/14sfc: get the PF number and record in nic_datadrivers/net/ethernet/sfc/ef10.c drivers/net/ethernet/sfc/nic.h+24 -00 replies
9/14sfc: Prepare to bind the sfc driver to the VF.drivers/net/ethernet/sfc/ef10.c drivers/net/ethernet/sfc/ef10_sriov.c drivers/net/ethernet/sfc/ef10_sriov.h +6 more+175 -150 replies
10/14sfc: create vports for VFs and assign random MAC addressesdrivers/net/ethernet/sfc/ef10_sriov.c drivers/net/ethernet/sfc/ef10_sriov.h drivers/net/ethernet/sfc/nic.h+244 -370 replies
11/14sfc: manually allocate and free vadaptorsdrivers/net/ethernet/sfc/ef10.c drivers/net/ethernet/sfc/ef10_sriov.c drivers/net/ethernet/sfc/ef10_sriov.h+76 -160 replies
12/14sfc: Cope with permissions enforcement added to firmware for SR-IOVdrivers/net/ethernet/sfc/ef10.c drivers/net/ethernet/sfc/efx.c drivers/net/ethernet/sfc/mcdi.c +2 more+111 -170 replies
13/14sfc: Add use of shared RSS contexts.drivers/net/ethernet/sfc/ef10.c drivers/net/ethernet/sfc/efx.c drivers/net/ethernet/sfc/efx.h +5 more+177 -360 replies
14/14sfc: Bind the sfc driver to any available VF'sdrivers/net/ethernet/sfc/ef10.c drivers/net/ethernet/sfc/efx.c drivers/net/ethernet/sfc/falcon.c +3 more+11 -110 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [PATCH net-next 00/14] sfc: Enabling EF10 Vf's, set up vswitching and bind the SFC driver to the VF's

This set of patches makes way for the implementation of EF10 SR-IOV driver starting with some cleanup code.
NIC specific SR-IOV functions are moved to their own header and netdev_ops are made generic instead of being NIC specific

Next in line comes the patch to enable VF's using sriov_configure. VEB vswitching hierarchy is set up next followed by patches to prepare sfc driver to bind to enabled VF's

This is followed by patch to support use of shared RSS contexts which makes VF's use shared RSS contexts in all cases.

Patch series ends with a patch to bind the sfc driver to the enabled VF's which creates network interfaces corresponding to the VF's.

Coming up soon are the patches to set_vf_mac, set_vf_config, set_vf_vlan, vf_spoofcheck, etc.

These patches have been tested with and without CONFIG_SFC_SRIOV. In the case of CONFIG_SFC_SRIOV=y enabling of VF's using sriov_configure is also tested. The enabled VF's bind to the installed sfc driver succesfully to create network interfaces. In the case of CONFIG_SFC_SRIOV=n enabling of VF's using sriov_configure returns the correct error message:
"Function not implemented".

Daniel Pieczko (5):
sfc: Move and rename efx_vf struct to siena_vf
sfc: Record [rt]x_dpcpu_fw_id in EF10 nic_data
sfc: record the PF's vport ID in nic_data
sfc: create VEB vswitch and vport above default firmware setup
sfc: get the PF number and record in nic_data

Edward Cree (1):
sfc: Cope with permissions enforcement added to firmware for SR-IOV

Jon Cooper (1):
sfc: Add use of shared RSS contexts.

Shradha Shah (7):
sfc: Own header for nic-specific sriov functions, single instance of
netdev_ops and sriov removed from Falcon code
sfc: Enable VF's via a write to the sysfs file sriov_numvfs
sfc: Use MCDI to set FILTER_OP_IN_TX_DOMAIN
sfc: Prepare to bind the sfc driver to the VF.
sfc: create vports for VFs and assign random MAC addresses
sfc: manually allocate and free vadaptors
sfc: Bind the sfc driver to any available VF's

 drivers/net/ethernet/sfc/Makefile      |   2 +-
 drivers/net/ethernet/sfc/ef10.c        | 373 +++++++++++++++++++++++++---
 drivers/net/ethernet/sfc/ef10_sriov.c  | 430 +++++++++++++++++++++++++++++++++
 drivers/net/ethernet/sfc/ef10_sriov.h  |  70 ++++++
 drivers/net/ethernet/sfc/efx.c         | 198 +++++++++------
 drivers/net/ethernet/sfc/efx.h         |  10 +
 drivers/net/ethernet/sfc/ethtool.c     |   5 +-
 drivers/net/ethernet/sfc/falcon.c      |  33 ++-
 drivers/net/ethernet/sfc/farch.c       |  64 +++--
 drivers/net/ethernet/sfc/mcdi.c        | 118 ++++++---
 drivers/net/ethernet/sfc/mcdi.h        |   2 +
 drivers/net/ethernet/sfc/mcdi_pcol.h   |  23 ++
 drivers/net/ethernet/sfc/net_driver.h  |  21 +-
 drivers/net/ethernet/sfc/nic.h         | 133 ++--------
 drivers/net/ethernet/sfc/siena.c       |  25 +-
 drivers/net/ethernet/sfc/siena_sriov.c | 142 ++++++-----
 drivers/net/ethernet/sfc/siena_sriov.h |  79 ++++++
 drivers/net/ethernet/sfc/sriov.c       |  60 +++++
 drivers/net/ethernet/sfc/sriov.h       |  27 +++
 19 files changed, 1455 insertions(+), 360 deletions(-)
 create mode 100644 drivers/net/ethernet/sfc/ef10_sriov.c
 create mode 100644 drivers/net/ethernet/sfc/ef10_sriov.h
 create mode 100644 drivers/net/ethernet/sfc/siena_sriov.h
 create mode 100644 drivers/net/ethernet/sfc/sriov.c
 create mode 100644 drivers/net/ethernet/sfc/sriov.h