Support port representors on SN1000 SmartNICs including: - new syntax with controller, PF and VF specification - PF representors - two controllers: host and embedded SoC
The patch series depends on [1] (including build dependency) since it provides representors info on admin PF only. [1] https://patches.dpdk.org/project/dpdk/list/?series=18373 v2: - rebase on top of release callback prototype changes - improve switch mode auto-detection Andrew Rybchenko (2): common/sfc_efx/base: update MCDI headers common/sfc_efx/base: update EF100 registers definitions Igor Romanov (23): net/sfc: add switch mode device argument net/sfc: insert switchdev mode MAE rules common/sfc_efx/base: add an API to get mport ID by selector net/sfc: support EF100 Tx override prefix net/sfc: add representors proxy infrastructure net/sfc: reserve TxQ and RxQ for port representors net/sfc: move adapter state enum to separate header net/sfc: add port representors infrastructure common/sfc_efx/base: add filter ingress mport matching field common/sfc_efx/base: add API to get mport selector by ID common/sfc_efx/base: add mport alias MCDI wrappers net/sfc: add representor proxy port API net/sfc: implement representor queue setup and release net/sfc: implement representor RxQ start/stop net/sfc: implement representor TxQ start/stop net/sfc: implement port representor start and stop net/sfc: implement port representor link update net/sfc: support multiple device probe net/sfc: implement representor Tx routine net/sfc: use xword type for EF100 Rx prefix net/sfc: handle ingress m-port in EF100 Rx prefix net/sfc: implement representor Rx routine net/sfc: add simple port representor statistics Viacheslav Galaktionov (13): common/sfc_efx/base: allow creating invalid mport selectors net/sfc: free MAE lock once switch domain is assigned common/sfc_efx/base: add multi-host function M-port selector common/sfc_efx/base: retrieve function interfaces for VNICs common/sfc_efx/base: add a means to read MAE mport journal common/sfc_efx/base: allow getting VNIC MCDI client handles net/sfc: maintain controller to EFX interface mapping net/sfc: store PCI address for represented entities net/sfc: include controller and port in representor name net/sfc: support new representor parameter syntax net/sfc: use switch port ID as representor ID net/sfc: implement the representor info API net/sfc: update comment about representor support doc/guides/nics/sfc_efx.rst | 24 + doc/guides/rel_notes/release_21_11.rst | 6 + drivers/common/sfc_efx/base/ef10_filter.c | 11 +- drivers/common/sfc_efx/base/ef10_impl.h | 3 +- drivers/common/sfc_efx/base/ef10_nic.c | 4 +- drivers/common/sfc_efx/base/efx.h | 155 ++ drivers/common/sfc_efx/base/efx_impl.h | 6 + drivers/common/sfc_efx/base/efx_mae.c | 506 +++++- drivers/common/sfc_efx/base/efx_mcdi.c | 128 +- drivers/common/sfc_efx/base/efx_mcdi.h | 54 + drivers/common/sfc_efx/base/efx_regs_ef100.h | 106 +- drivers/common/sfc_efx/base/efx_regs_mcdi.h | 1211 ++++++++++++- drivers/common/sfc_efx/base/rhead_rx.c | 2 +- drivers/common/sfc_efx/version.map | 9 + drivers/net/sfc/meson.build | 2 + drivers/net/sfc/sfc.c | 151 +- drivers/net/sfc/sfc.h | 77 +- drivers/net/sfc/sfc_dp.c | 46 + drivers/net/sfc/sfc_dp.h | 25 + drivers/net/sfc/sfc_ef100_rx.c | 36 +- drivers/net/sfc/sfc_ef100_tx.c | 25 + drivers/net/sfc/sfc_ethdev.c | 809 ++++++++- drivers/net/sfc/sfc_ethdev_state.h | 72 + drivers/net/sfc/sfc_ev.h | 56 +- drivers/net/sfc/sfc_flow.c | 10 +- drivers/net/sfc/sfc_intr.c | 12 +- drivers/net/sfc/sfc_kvargs.c | 2 + drivers/net/sfc/sfc_kvargs.h | 10 + drivers/net/sfc/sfc_mae.c | 218 ++- drivers/net/sfc/sfc_mae.h | 56 + drivers/net/sfc/sfc_port.c | 2 +- drivers/net/sfc/sfc_repr.c | 1085 ++++++++++++ drivers/net/sfc/sfc_repr.h | 44 + drivers/net/sfc/sfc_repr_proxy.c | 1661 ++++++++++++++++++ drivers/net/sfc/sfc_repr_proxy.h | 147 ++ drivers/net/sfc/sfc_repr_proxy_api.h | 47 + drivers/net/sfc/sfc_sriov.c | 9 +- drivers/net/sfc/sfc_switch.c | 207 ++- drivers/net/sfc/sfc_switch.h | 56 + drivers/net/sfc/sfc_tx.c | 42 +- drivers/net/sfc/sfc_tx.h | 1 + 41 files changed, 6899 insertions(+), 234 deletions(-) create mode 100644 drivers/net/sfc/sfc_ethdev_state.h create mode 100644 drivers/net/sfc/sfc_repr.c create mode 100644 drivers/net/sfc/sfc_repr.h create mode 100644 drivers/net/sfc/sfc_repr_proxy.c create mode 100644 drivers/net/sfc/sfc_repr_proxy.h create mode 100644 drivers/net/sfc/sfc_repr_proxy_api.h -- 2.30.2