Updating the CNXK PMD documentation with the added support
for port representors.

Signed-off-by: Harman Kalra <hka...@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 <ndabilpu...@marvell.com>
 M: Kiran Kumar K <kirankum...@marvell.com>
 M: Sunil Kumar Kori <sk...@marvell.com>
 M: Satha Rao <skotesh...@marvell.com>
+M: Harman Kalra <hka...@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

Reply via email to