doc: fix diagram in dpaa2 guide
[dpdk.git] / doc / guides / nics / bnxt.rst
index ed65018..129a16c 100644 (file)
@@ -56,16 +56,8 @@ The BNXT PMD supports operating with:
 * Linux igb_uio
 * BSD nic_uio
 
 * Linux igb_uio
 * BSD nic_uio
 
-Compiling BNXT PMD
-------------------
-
-To compile the BNXT PMD:
-
-.. code-block:: console
-
-    make config T=x86_64-native-linux-gcc && make // for x86-64
-    make config T=x86_32-native-linux-gcc && make // for x86-32
-    make config T=armv8a-linux-gcc && make // for ARMv8
+Running BNXT PMD
+----------------
 
 Bind the device to one of the kernel modules listed above
 
 
 Bind the device to one of the kernel modules listed above
 
@@ -73,16 +65,6 @@ Bind the device to one of the kernel modules listed above
 
     ./dpdk-devbind.py -b vfio-pci|igb_uio|uio_pci_generic bus_id:device_id.function_id
 
 
     ./dpdk-devbind.py -b vfio-pci|igb_uio|uio_pci_generic bus_id:device_id.function_id
 
-Load an application (e.g. testpmd) with a default configuration (e.g. a single
-TX /RX queue):
-
-.. code-block:: console
-
-    ./testpmd -c 0xF -n 4 -- -i --portmask=0x1 --nb-cores=2
-
-Running BNXT PMD
-----------------
-
 The BNXT PMD can run on PF or VF.
 
 PCI-SIG Single Root I/O Virtualization (SR-IOV) involves the direct assignment
 The BNXT PMD can run on PF or VF.
 
 PCI-SIG Single Root I/O Virtualization (SR-IOV) involves the direct assignment
@@ -706,6 +688,52 @@ optimizes flow insertions and deletions.
 This is a tech preview feature, and is disabled by default. It can be enabled
 using bnxt devargs. For ex: "-w 0000:0d:00.0,host-based-truflow=1”.
 
 This is a tech preview feature, and is disabled by default. It can be enabled
 using bnxt devargs. For ex: "-w 0000:0d:00.0,host-based-truflow=1”.
 
+Notes
+-----
+
+- On stopping a device port, all the flows created on a port by the
+  application will be flushed from the hardware and any tables maintained
+  by the PMD. After stopping the device port, all flows on the port become
+  invalid and are not represented in the system anymore.
+  Instead of destroying or flushing such flows an application should discard
+  all references to these flows and re-create the flows as required after the
+  port is restarted.
+
+- While an application is free to use the group id attribute to group flows
+  together using a specific criteria, the BNXT PMD currently associates this
+  group id to a VNIC id. One such case is grouping of flows which are filtered
+  on the same source or destination MAC address. This allows packets of such
+  flows to be directed to one or more queues associated with the VNIC id.
+  This implementation is supported only when TRUFLOW functionality is disabled.
+
+Note: A VNIC represents a virtual interface in the hardware. It is a resource
+in the RX path of the chip and is used to setup various target actions such as
+RSS, MAC filtering etc. for the physical function in use.
+
+Virtual Function Port Representors
+----------------------------------
+The BNXT PMD supports the creation of VF port representors for the control
+and monitoring of BNXT virtual function devices. Each port representor
+corresponds to a single virtual function of that device that is connected to a
+VF. When there is no hardware flow offload, each packet transmitted by the VF
+will be received by the corresponding representor. Similarly each packet that is
+sent to a representor will be received by the VF. Applications can take
+advantage of this feature when SRIOV is enabled. The representor will allow the
+first packet that is transmitted by the VF to be received by the DPDK
+application which can then decide if the flow should be offloaded to the
+hardware. Once the flow is offloaded in the hardware, any packet matching the
+flow will be received by the VF while the DPDK application will not receive it
+any more. The BNXT PMD supports creation and handling of the port representors
+when the PMD is initialized on a PF or trusted-VF. The user can specify the list
+of VF IDs of the VFs for which the representors are needed by using the
+``devargs`` option ``representor``.::
+
+  -w DBDF,representor=[0,1,4]
+
+Note that currently hot-plugging of representor ports is not supported so all
+the required representors must be specified on the creation of the PF or the
+trusted VF.
+
 Application Support
 -------------------
 
 Application Support
 -------------------
 
@@ -792,9 +820,9 @@ Vector processing provides significantly improved performance over scalar
 processing (see Vector Processor, here).
 
 The BNXT PMD supports the vector processing using SSE (Streaming SIMD
 processing (see Vector Processor, here).
 
 The BNXT PMD supports the vector processing using SSE (Streaming SIMD
-Extensions) instructions on x86 platforms. The BNXT vPMD (vector mode PMD) is
-currently limited to Intel/AMD CPU architecture. Support for ARM is *not*
-currently implemented.
+Extensions) instructions on x86 platforms. It also supports NEON intrinsics for
+vector processing on ARM CPUs. The BNXT vPMD (vector mode PMD) is available for
+Intel/AMD and ARM CPU architectures.
 
 This improved performance comes from several optimizations:
 
 
 This improved performance comes from several optimizations: