net/bnxt: support VXLAN decap offload
[dpdk.git] / doc / guides / nics / i40e.rst
index 416b390..b8ce2a6 100644 (file)
@@ -4,7 +4,7 @@
 I40E Poll Mode Driver
 ======================
 
-The i40e PMD (librte_pmd_i40e) provides poll mode driver support for
+The i40e PMD (**librte_net_i40e**) provides poll mode driver support for
 10/25/40 Gbps IntelĀ® Ethernet 700 Series Network Adapters based on
 the Intel Ethernet Controller X710/XL710/XXV710 and Intel Ethernet
 Connection X722 (only support part of features).
@@ -88,6 +88,10 @@ For X710/XL710/XXV710,
    +--------------+-----------------------+------------------+
    | DPDK version | Kernel driver version | Firmware version |
    +==============+=======================+==================+
+   |    20.08     |         2.12.6        |       7.30       |
+   +--------------+-----------------------+------------------+
+   |    20.05     |         2.11.27       |       7.30       |
+   +--------------+-----------------------+------------------+
    |    20.02     |         2.10.19       |       7.20       |
    +--------------+-----------------------+------------------+
    |    19.11     |         2.9.21        |       7.00       |
@@ -127,6 +131,10 @@ For X722,
    +--------------+-----------------------+------------------+
    | DPDK version | Kernel driver version | Firmware version |
    +==============+=======================+==================+
+   |    20.08     |         2.12.6        |       4.11       |
+   +--------------+-----------------------+------------------+
+   |    20.05     |         2.11.27       |       4.11       |
+   +--------------+-----------------------+------------------+
    |    20.02     |         2.10.19       |       4.11       |
    +--------------+-----------------------+------------------+
    |    19.11     |         2.9.21        |       4.10       |
@@ -147,35 +155,13 @@ Pre-Installation Configuration
 Config File Options
 ~~~~~~~~~~~~~~~~~~~
 
-The following options can be modified in the ``config`` file.
-Please note that enabling debugging options may affect system performance.
-
-- ``CONFIG_RTE_LIBRTE_I40E_PMD`` (default ``y``)
-
-  Toggle compilation of the ``librte_pmd_i40e`` driver.
-
-- ``CONFIG_RTE_LIBRTE_I40E_DEBUG_*`` (default ``n``)
-
-  Toggle display of generic debugging messages.
-
-- ``CONFIG_RTE_LIBRTE_I40E_RX_ALLOW_BULK_ALLOC`` (default ``y``)
-
-  Toggle bulk allocation for RX.
-
-- ``CONFIG_RTE_LIBRTE_I40E_INC_VECTOR`` (default ``n``)
+The following options can be modified in the ``config/rte_config.h`` file.
 
-  Toggle the use of Vector PMD instead of normal RX/TX path.
-  To enable vPMD for RX, bulk allocation for Rx must be allowed.
-
-- ``CONFIG_RTE_LIBRTE_I40E_16BYTE_RX_DESC`` (default ``n``)
-
-  Toggle to use a 16-byte RX descriptor, by default the RX descriptor is 32 byte.
-
-- ``CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_PF`` (default ``64``)
+- ``RTE_LIBRTE_I40E_QUEUE_NUM_PER_PF`` (default ``64``)
 
   Number of queues reserved for PF.
 
-- ``CONFIG_RTE_LIBRTE_I40E_QUEUE_NUM_PER_VM`` (default ``4``)
+- ``RTE_LIBRTE_I40E_QUEUE_NUM_PER_VM`` (default ``4``)
 
   Number of queues reserved for each VMDQ Pool.
 
@@ -346,7 +332,7 @@ To start ``testpmd``, and add vlan 10 to port 0:
 
 .. code-block:: console
 
-    ./app/testpmd -l 0-15 -n 4 -- -i --forward-mode=mac
+    ./<build_dir>/app/dpdk-testpmd -l 0-15 -n 4 -- -i --forward-mode=mac
     ...
 
     testpmd> set promisc 0 off
@@ -381,8 +367,9 @@ Start ``testpmd`` with ``--disable-rss`` and ``--pkt-filter-mode=perfect``:
 
 .. code-block:: console
 
-   ./app/testpmd -l 0-15 -n 4 -- -i --disable-rss --pkt-filter-mode=perfect \
-                 --rxq=8 --txq=8 --nb-cores=8 --nb-ports=1
+   ./<build_dir>/app/dpdk-testpmd -l 0-15 -n 4 -- -i --disable-rss \
+                 --pkt-filter-mode=perfect --rxq=8 --txq=8 --nb-cores=8 \
+                 --nb-ports=1
 
 Add a rule to direct ``ipv4-udp`` packet whose ``dst_ip=2.2.2.5, src_ip=2.2.2.3, src_port=32, dst_port=32`` to queue 1:
 
@@ -640,8 +627,7 @@ For all available versions of the i40e driver, these drivers don't support 16
 byte RX descriptor. If the Linux i40e kernel driver is used as host driver,
 while DPDK i40e PMD is used as the VF driver, DPDK cannot choose 16 byte receive
 descriptor. The reason is that the RX descriptor is already set to 32 byte by
-the i40e kernel driver. That is to say, user should keep
-``CONFIG_RTE_LIBRTE_I40E_16BYTE_RX_DESC=n`` in config file.
+the i40e kernel driver.
 In the future, if the Linux i40e driver supports 16 byte RX descriptor, user
 should make sure the DPDK VF uses the same RX descriptor mode, 16 byte or 32
 byte, as the PF driver.
@@ -662,6 +648,15 @@ When a packet is over maximum frame size, the packet is dropped.
 However, the Rx statistics, when calling `rte_eth_stats_get` incorrectly
 shows it as received.
 
+RX/TX statistics may be incorrect when register overflowed
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+The rx_bytes/tx_bytes statistics register is 48 bit length.
+Although this limitation is enlarged to 64 bit length on the software side,
+but there is no way to detect if the overflow occurred more than once.
+So rx_bytes/tx_bytes statistics data is correct when statistics are
+updated at least once between two overflows.
+
 VF & TC max bandwidth setting
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -732,6 +727,13 @@ with DPDK, then the configuration will also impact port B in the NIC with
 kernel driver, which don't want to use the TPID.
 So PMD reports warning to clarify what is changed by writing global register.
 
+Cloud Filter
+~~~~~~~~~~~~
+
+When programming cloud filters for IPv4/6_UDP/TCP/SCTP with SRC port only or DST port only,
+it will make any cloud filter using inner_vlan or tunnel key invalid. Default configuration will be
+recovered only by NIC core reset.
+
 High Performance of Small Packets on 40GbE NIC
 ----------------------------------------------
 
@@ -745,7 +747,18 @@ Use 16 Bytes RX Descriptor Size
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
 As i40e PMD supports both 16 and 32 bytes RX descriptor sizes, and 16 bytes size can provide helps to high performance of small packets.
-Configuration of ``CONFIG_RTE_LIBRTE_I40E_16BYTE_RX_DESC`` in config files can be changed to use 16 bytes size RX descriptors.
+In ``config/rte_config.h`` set the following to use 16 bytes size RX descriptors::
+
+   #define RTE_LIBRTE_I40E_16BYTE_RX_DESC 1
+
+Input set requirement of each pctype for FDIR
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Each PCTYPE can only have one specific FDIR input set at one time.
+For example, if creating 2 rte_flow rules with different input set for one PCTYPE,
+it will fail and return the info "Conflict with the first rule's input set",
+which means the current rule's input set conflicts with the first rule's.
+Remove the first rule if want to change the input set of the PCTYPE.
 
 Example of getting best performance with l3fwd example
 ------------------------------------------------------
@@ -789,7 +802,7 @@ See :numref:`figure_intel_perf_test_setup` for the performance test setup.
 
 7. The command line of running l3fwd would be something like the following::
 
-      ./l3fwd -l 18-21 -n 4 -w 82:00.0 -w 85:00.0 \
+      ./dpdk-l3fwd -l 18-21 -n 4 -w 82:00.0 -w 85:00.0 \
               -- -p 0x3 --config '(0,0,18),(0,1,19),(1,0,20),(1,1,21)'
 
    This means that the application uses core 18 for port 0, queue pair 0 forwarding, core 19 for port 0, queue pair 1 forwarding,