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