mbox series

[00/38] net/sfc: support port representors

Message ID 20210827065717.1838258-1-andrew.rybchenko@oktetlabs.ru (mailing list archive)
Headers show
Series net/sfc: support port representors | expand

Message

Andrew Rybchenko Aug. 27, 2021, 6:56 a.m. UTC
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

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                 |  802 ++++++++-
 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                   | 1107 ++++++++++++
 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, 6914 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