[PATCH v2 24/24] doc: port representors in cnxk
Harman Kalra
hkalra at marvell.com
Tue Dec 19 18:40:03 CET 2023
Updating the CNXK PMD documentation with the added support
for port representors.
Signed-off-by: Harman Kalra <hkalra at marvell.com>
---
MAINTAINERS | 1 +
doc/guides/nics/cnxk.rst | 58 ++++++++++++++++++++++++++++
doc/guides/nics/features/cnxk.ini | 3 ++
doc/guides/nics/features/cnxk_vf.ini | 4 ++
4 files changed, 66 insertions(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 0d1c8126e3..2716178e18 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -827,6 +827,7 @@ M: Nithin Dabilpuram <ndabilpuram at marvell.com>
M: Kiran Kumar K <kirankumark at marvell.com>
M: Sunil Kumar Kori <skori at marvell.com>
M: Satha Rao <skoteshwar at marvell.com>
+M: Harman Kalra <hkalra at marvell.com>
T: git://dpdk.org/next/dpdk-next-net-mrvl
F: drivers/common/cnxk/
F: drivers/net/cnxk/
diff --git a/doc/guides/nics/cnxk.rst b/doc/guides/nics/cnxk.rst
index 9ec52e380f..5fd1f6513a 100644
--- a/doc/guides/nics/cnxk.rst
+++ b/doc/guides/nics/cnxk.rst
@@ -37,6 +37,9 @@ Features of the CNXK Ethdev PMD are:
- Inline IPsec processing support
- Ingress meter support
- Queue based priority flow control support
+- Port representors
+- Represented port pattern matching and action
+- Port representor pattern matching and action
Prerequisites
-------------
@@ -613,6 +616,57 @@ Runtime Config Options for inline device
With the above configuration, driver would poll for aging flows every 50
seconds.
+Port Representors
+-----------------
+
+The CNXK driver supports port representor model 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.
+
+Base device or parent device underneath these representor ports is a eswitch
+device which is not a cnxk ethernet device but has NIC RX and TX capabilities.
+Each representor port is represented by a RQ and SQ pair of this eswitch
+device.
+
+Current implementation supports representors for both physical function and
+virtual function.
+
+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*``
+
+.. note::
+
+ Representor ports to be created for respective representees should be
+ defined via these representor devargs.
+ Eg. To create a representor for representee PF1VF0, devargs to be passed
+ is ``-a <base PCI BDF>,representor=pf0vf0``
+
+ For PF representor
+ ``-a <base PCI BDF>,representor=pf2``
+
+ For defining range of vfs, say 5 representor ports under a PF
+ ``-a <base PCI BDF>,representor=pf0vf[0-4]``
+
+ For representing different VFs under different PFs
+ ``-a <base PCI BDF>,representor=pf0vf[1,2],representor=pf1vf[2-5]``
+
+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 and clear VF statistics
+- Set mac address
+- Flow operations - create, validate, destroy, query, flush, dump
+
Debugging Options
-----------------
@@ -627,3 +681,7 @@ Debugging Options
+---+------------+-------------------------------------------------------+
| 2 | NPC | --log-level='pmd\.net.cnxk\.flow,8' |
+---+------------+-------------------------------------------------------+
+ | 3 | REP | --log-level='pmd\.net.cnxk\.rep,8' |
+ +---+------------+-------------------------------------------------------+
+ | 4 | ESW | --log-level='pmd\.net.cnxk\.esw,8' |
+ +---+------------+-------------------------------------------------------+
diff --git a/doc/guides/nics/features/cnxk.ini b/doc/guides/nics/features/cnxk.ini
index 94e7a6ab8d..88d5aaaa4e 100644
--- a/doc/guides/nics/features/cnxk.ini
+++ b/doc/guides/nics/features/cnxk.ini
@@ -73,6 +73,8 @@ mpls = Y
nvgre = Y
pppoes = Y
raw = Y
+represented_port = Y
+port_representor = Y
sctp = Y
tcp = Y
tx_queue = Y
@@ -96,6 +98,7 @@ pf = Y
port_id = Y
queue = Y
represented_port = Y
+port_representor = Y
rss = Y
sample = Y
security = Y
diff --git a/doc/guides/nics/features/cnxk_vf.ini b/doc/guides/nics/features/cnxk_vf.ini
index 53aa2a3d0c..7d7a1cad1b 100644
--- a/doc/guides/nics/features/cnxk_vf.ini
+++ b/doc/guides/nics/features/cnxk_vf.ini
@@ -64,6 +64,8 @@ mpls = Y
nvgre = Y
pppoes = Y
raw = Y
+represented_port = Y
+port_representor = Y
sctp = Y
tcp = Y
tx_queue = Y
@@ -85,6 +87,8 @@ of_set_vlan_pcp = Y
of_set_vlan_vid = Y
pf = Y
queue = Y
+represented port = Y
+port_representor = Y
rss = Y
security = Y
skip_cman = Y
--
2.18.0
More information about the dev
mailing list