path: root/doc/guides/nics/enic.rst
diff options
authorHyong Youb Kim <>2018-04-16 14:49:10 -0700
committerFerruh Yigit <>2018-04-27 15:54:55 +0100
commit93fb21fdbe23869e5f2bbe9c63c6108ba24ec37d (patch)
treedb19a6bc799c81b2ca9cf828c524beefb961d9f1 /doc/guides/nics/enic.rst
parent8055b534d69063131f94cec6644f30dcaa9bc4e4 (diff)
net/enic: enable overlay offload for VXLAN and GENEVE
Recent NIC models support overlay offload. The overlay offload feature enables the following on the NIC. - Rx/Tx checksum offloads for both inner and outer packets. - Rx inner packet type classification. - TSO. - Inner RSS. TX descriptors do not require any changes, except the header length for TSO. The NIC parses outer/inner packets and performs offloads on them as necessary. The header length for tunneled TSO includes both inner and outer headers. The NIC actually parses and performs the above for NVGRE as well. DPDK currently has no offload flags for NVGRE, and the hardware has no controls to individually enable tunnel types either. So do nothing for now. The driver enables overlay offload by default. Add a devargs 'disable-overlay=<0|1>' to allow the app to disable it. Also update the enic guide doc. Signed-off-by: Hyong Youb Kim <> Reviewed-by: John Daley <>
Diffstat (limited to 'doc/guides/nics/enic.rst')
1 files changed, 53 insertions, 0 deletions
diff --git a/doc/guides/nics/enic.rst b/doc/guides/nics/enic.rst
index 3ef635f..49abc7e 100644
--- a/doc/guides/nics/enic.rst
+++ b/doc/guides/nics/enic.rst
@@ -254,6 +254,54 @@ Generic Flow API is supported. The baseline support is:
More features may be added in future firmware and new versions of the VIC.
Please refer to the release notes.
+.. _overlay_offload:
+Overlay Offload
+Recent hardware models support overlay offload. When enabled, the NIC performs
+the following operations for VXLAN, NVGRE, and GENEVE packets. In all cases,
+inner and outer packets can be IPv4 or IPv6.
+- TSO for VXLAN and GENEVE packets.
+ Hardware supports NVGRE TSO, but DPDK currently has no NVGRE offload flags.
+- Tx checksum offloads.
+ The NIC fills in IPv4/UDP/TCP checksums for both inner and outer packets.
+- Rx checksum offloads.
+ The NIC validates IPv4/UDP/TCP checksums of both inner and outer packets.
+ Good checksum flags (e.g. ``PKT_RX_L4_CKSUM_GOOD``) indicate that the inner
+ packet has the correct checksum, and if applicable, the outer packet also
+ has the correct checksum. Bad checksum flags (e.g. ``PKT_RX_L4_CKSUM_BAD``)
+ indicate that the inner and/or outer packets have invalid checksum values.
+- Inner Rx packet type classification
+ PMD sets inner L3/L4 packet types (e.g. ``RTE_PTYPE_INNER_L4_TCP``), and
+ ``RTE_PTYPE_TUNNEL_GRENAT`` to indicate that the packet is tunneled.
+ PMD does not set L3/L4 packet types for outer packets.
+- Inner RSS
+ RSS hash calculation, therefore queue selection, is done on inner packets.
+In order to enable overlay offload, the 'Enable VXLAN' box should be checked
+via CIMC or UCSM followed by a reboot of the server. When PMD successfully
+enables overlay offload, it prints the following message on the console.
+.. code-block:: console
+ Overlay offload is enabled
+By default, PMD enables overlay offload if hardware supports it. To disable
+it, set ``devargs`` parameter ``disable-overlay=1``. For example::
+ -w 12:00.0,disable-overlay=1
.. _enic_limitations:
@@ -376,6 +424,11 @@ Supported features
- MTU update
- SR-IOV on UCS managed servers connected to Fabric Interconnects
- Flow API
+- Overlay offload
+ - Rx/Tx checksum offloads for VXLAN, NVGRE, GENEVE
+ - TSO for VXLAN and GENEVE packets
+ - Inner RSS
Known bugs and unsupported features in this release