[PATCH v3 00/23] net/cnxk: support for port representors
Harman Kalra
hkalra at marvell.com
Thu Feb 1 14:07:31 CET 2024
Introducing port representor support to CNXK drivers by adding virtual ethernet
ports providing a logical representation in DPDK for physical function(PF) or
SR-IOV virtual function (VF) devices for control and monitoring.
These port representor ethdev instances can be spawned on an as needed basis
through configuration parameters passed to the driver of the underlying
base device using devargs ``-a <base PCI BDF>,representor=pf*vf*``
In case of exception path (i.e. until the flow definition is offloaded to the
hardware), packets transmitted by the VFs shall be received by these
representor port, while packets transmitted by representor ports shall be
received by respective VFs.
On receiving the VF traffic via these representor ports, applications holding
these representor ports can decide to offload the traffic flow into the HW.
Henceforth the matching traffic shall be directly steered to the respective
VFs without being received by the application.
Current virtual representor port PMD supports following operations:
- Get represented port statistics
- Flow operations - create, validate, destroy, query, flush, dump
Changes since V2:
* Moved devargs parsing logic to common code and sent as separate series
* Documentation updated
* Addressed comments from V2
Changes since V1:
* Updated communication layer between representor and represented port.
* Added support for native represented ports
* Port representor and represented port item and action support
* Build failure fixes
Harman Kalra (21):
common/cnxk: add support for representors
net/cnxk: implementing eswitch device
net/cnxk: eswitch HW resource configuration
net/cnxk: eswitch devargs parsing
net/cnxk: probing representor ports
common/cnxk: common NPC changes for eswitch
common/cnxk: interface to update VLAN TPID
net/cnxk: eswitch flow configurations
net/cnxk: eswitch fastpath routines
net/cnxk: add representor control plane
common/cnxk: representee notification callback
net/cnxk: handling representee notification
net/cnxk: representor ethdev ops
common/cnxk: get representees ethernet stats
net/cnxk: ethernet statistic for representor
common/cnxk: base support for eswitch VF
net/cnxk: eswitch VF as ethernet device
net/cnxk: add representor port pattern and action
net/cnxk: generalise flow operation APIs
net/cnxk: flow create on representor ports
net/cnxk: other flow operations
Kiran Kumar K (2):
common/cnxk: support port representor and represented port
net/cnxk: add represented port pattern and action
MAINTAINERS | 1 +
doc/guides/nics/cnxk.rst | 41 ++
doc/guides/nics/features/cnxk.ini | 5 +
doc/guides/nics/features/cnxk_vec.ini | 6 +
doc/guides/nics/features/cnxk_vf.ini | 6 +
drivers/common/cnxk/meson.build | 1 +
drivers/common/cnxk/roc_api.h | 3 +
drivers/common/cnxk/roc_constants.h | 2 +
drivers/common/cnxk/roc_dev.c | 25 +
drivers/common/cnxk/roc_dev_priv.h | 3 +
drivers/common/cnxk/roc_eswitch.c | 389 +++++++++++
drivers/common/cnxk/roc_eswitch.h | 34 +
drivers/common/cnxk/roc_mbox.c | 2 +
drivers/common/cnxk/roc_mbox.h | 82 ++-
drivers/common/cnxk/roc_nix.c | 46 +-
drivers/common/cnxk/roc_nix.h | 4 +
drivers/common/cnxk/roc_nix_priv.h | 12 +-
drivers/common/cnxk/roc_nix_vlan.c | 23 +-
drivers/common/cnxk/roc_npc.c | 89 ++-
drivers/common/cnxk/roc_npc.h | 18 +-
drivers/common/cnxk/roc_npc_mcam.c | 64 +-
drivers/common/cnxk/roc_npc_parse.c | 28 +-
drivers/common/cnxk/roc_npc_priv.h | 5 +-
drivers/common/cnxk/roc_platform.c | 2 +
drivers/common/cnxk/roc_platform.h | 4 +
drivers/common/cnxk/version.map | 14 +
drivers/net/cnxk/cn10k_ethdev.c | 1 +
drivers/net/cnxk/cnxk_eswitch.c | 807 +++++++++++++++++++++++
drivers/net/cnxk/cnxk_eswitch.h | 213 ++++++
drivers/net/cnxk/cnxk_eswitch_devargs.c | 125 ++++
drivers/net/cnxk/cnxk_eswitch_flow.c | 454 +++++++++++++
drivers/net/cnxk/cnxk_eswitch_rxtx.c | 211 ++++++
drivers/net/cnxk/cnxk_ethdev.c | 41 +-
drivers/net/cnxk/cnxk_ethdev.h | 3 +
drivers/net/cnxk/cnxk_ethdev_ops.c | 4 +
drivers/net/cnxk/cnxk_flow.c | 546 ++++++++++++----
drivers/net/cnxk/cnxk_flow.h | 27 +-
drivers/net/cnxk/cnxk_link.c | 3 +-
drivers/net/cnxk/cnxk_rep.c | 555 ++++++++++++++++
drivers/net/cnxk/cnxk_rep.h | 141 ++++
drivers/net/cnxk/cnxk_rep_flow.c | 815 +++++++++++++++++++++++
drivers/net/cnxk/cnxk_rep_msg.c | 827 ++++++++++++++++++++++++
drivers/net/cnxk/cnxk_rep_msg.h | 169 +++++
drivers/net/cnxk/cnxk_rep_ops.c | 715 ++++++++++++++++++++
drivers/net/cnxk/meson.build | 8 +
45 files changed, 6371 insertions(+), 203 deletions(-)
create mode 100644 drivers/common/cnxk/roc_eswitch.c
create mode 100644 drivers/common/cnxk/roc_eswitch.h
create mode 100644 drivers/net/cnxk/cnxk_eswitch.c
create mode 100644 drivers/net/cnxk/cnxk_eswitch.h
create mode 100644 drivers/net/cnxk/cnxk_eswitch_devargs.c
create mode 100644 drivers/net/cnxk/cnxk_eswitch_flow.c
create mode 100644 drivers/net/cnxk/cnxk_eswitch_rxtx.c
create mode 100644 drivers/net/cnxk/cnxk_rep.c
create mode 100644 drivers/net/cnxk/cnxk_rep.h
create mode 100644 drivers/net/cnxk/cnxk_rep_flow.c
create mode 100644 drivers/net/cnxk/cnxk_rep_msg.c
create mode 100644 drivers/net/cnxk/cnxk_rep_msg.h
create mode 100644 drivers/net/cnxk/cnxk_rep_ops.c
--
2.18.0
More information about the dev
mailing list