Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

E810 DDP TechGuide - Rev2.5

Download as pdf or txt
Download as pdf or txt
You are on page 1of 34

Intel® Ethernet Controller E810

Dynamic Device Personalization (DDP)


Technology Guide

Ethernet Products Group (EPG)

March 2022

Revision 2.5
617015-006
Intel® Ethernet Controller E810
DDP Technology Guide

Revision History

Revision Date Comments

2.5 March 25, 2022 Updates include the following:


• Updated OS-Default Package version from 1.3.27.0 to 1.3.28.0.
• Updated DDP Comms Package version from 1.3.31.0 to 1.3.35.0.
• Updated Table 11, “DPDK Recommended Matching List”.

2.4 January 6, 2022 Updates include the following:


• Updated OS-Default Package version from 1.3.24.0 to 1.3.27.0.
• Updated DDP Comms Package version from 1.3.28.0 to 1.3.31.0.
• Added Table 7, “Patterns and Input Sets for iavf Intel® Ethernet Flow Director”.
• Added Table 8, “Patterns and Input Sets for iavf RSS”.
• Added Section 5.0, “Intel® Ethernet 800 Series Features”
• Added Section 6.0, “DPDK Compatibility”

2.3 April 1, 2021 Updates include the following:


• Updated OS-Default Package version from 1.3.18.0 to 1.3.24.0.
• Updated DDP Comms Package version from 1.3.22.0 to 1.3.28.0.

2.2 December 15, 2020 Updates include the following:


• Updated OS-Default Package version from 1.3.16.0 to 1.3.18.0.
• Updated DDP Comms Package version from 1.3.20.0 to 1.3.22.0.
• Added Section 4.5, “Intel® Ethernet Flow Director and RSS Support Using ethtool and
DPDK”.

2.1 September 24, 2020 Updates include the following:


• Updated OS-Default Package version from 1.3.13.0 to 1.3.16.0.
• Updated DDP Comms Package version from 1.3.17.0 to 1.3.20.0.
• Updated Step 2 in Section 4.3.6, “Loading a Specific DDP Package on a Specific 800
Series Network Adapter in Linux”.

2.01 July 23, 2020 Initial public release.

1. There are no previous publicly-available versions of this document.

2 617015-006
Intel® Ethernet Controller E810
DDP Technology Guide

Contents

1.0 Introduction .............................................................................................................. 5


2.0 How DDP Works ........................................................................................................ 5
3.0 Intel® Ethernet 800 Series Improvement over Previous Generations ........................ 7
4.0 DDP Package Definitions and Usage .......................................................................... 8
4.1 Device Safe Mode (pre-Boot or without DDP Package) ................................................................... 8
4.2 OS-Default Package .................................................................................................................. 9
4.3 Driver Load of the OS-Default Package ........................................................................................ 9
4.3.1 VMware ESXi OS Driver Load of DDP Package ........................................................................ 9
4.3.2 Windows OS Driver Load of DDP Package ............................................................................. 10
4.3.3 Linux Driver Load of DDP Package ....................................................................................... 10
4.3.4 FreeBSD Driver Load of DDP Package .................................................................................. 11
4.3.5 DPDK Driver Load of DDP Package....................................................................................... 11
4.3.6 Loading a Specific DDP Package on a Specific 800 Series Network Adapter in Linux .................... 12
4.4 OS-Default Package Protocol Support ......................................................................................... 14
4.5 Intel® Ethernet Flow Director and RSS Support Using ethtool and DPDK ......................................... 16
4.5.1 Intel® Ethernet Flow Director.............................................................................................. 16
4.5.2 Intel® Ethernet Flow Director Filters .................................................................................... 17
4.5.3 RSS ................................................................................................................................ 24
4.5.4 DPDK .............................................................................................................................. 29
5.0 Intel® Ethernet 800 Series Features ........................................................................ 30
6.0 DPDK Compatibility ................................................................................................. 33

617015-006 3
Intel® Ethernet Controller E810
DDP Technology Guide

NOTE: This page intentionally left blank.

4 617015-006
Intel® Ethernet Controller E810
DDP Technology Guide

1.0 Introduction
Intel® Ethernet 800 Series (800 Series) is the next generation of Intel® Ethernet Controllers and
Network Adapters. The Intel® Ethernet 800 Series is designed with an enhanced programmable
pipeline, allowing deeper and more diverse protocol header processing. This on-chip capability is called
Dynamic Device Personalization (DDP). Unlike the optional DDP solution in the Intel® Ethernet 700
Series (700 Series), the DDP implementation in the 800 Series is integral to the primary functions of
the network packet processing pipeline. Similar to the 700 Series, enhanced DDP profiles can be loaded
per device for specific capabilities. In the 800 Series, a DDP profile is loaded dynamically on driver load
per device.
A general purpose DDP package is automatically installed with all supported 800 Series drivers on
Windows, ESX, FreeBSD, and Linux operating systems, including those provided by the Data Plane
Development Kit (DPDK). This general purpose DDP package is known as the OS-Default package.
Additional DDP packages will be available to address packet processing needs for specific market
segments. For example, a telecommunications (Comms) DDP package has been developed to support
GTP and PPPoE protocols in addition to the protocols in the OS-Default package. The Comms DDP
package is available with DPDK 19.11 and will also be supported by the 800 Series ice driver on Linux
operating systems.
This document describes how the DDP packages are loaded or selected in various operating systems,
the benefits of DDP features, and supported packet types in the OS-default DDP package. Also included
are examples of DDP in use, including filters to direct packets to hardware queues.

2.0 How DDP Works


The 800 Series on-chip packet processing pipeline is shown in Figure 1. The DDP package programs
functionality in both the parser and switch blocks in the pipeline, allowing dynamic support for new and
existing protocols. Each of the subsequent lookup stages can also be configurable, forming a
programmable packet processing pipeline. This pipeline can then handle packet identification,
classification, and distribution in the network interface rather than in the OS, potentially offloading CPU
cycles. Using this capability together with the 800 Series driver, host software can create filters to route
specific packets to desired hardware queues for better CPU utilization.

Figure 1. Intel® Ethernet 800 Series On-Chip Packet Processing Pipeline

617015-006 5
Intel® Ethernet Controller E810
DDP Technology Guide

DDP packages primarily contain static configuration information applied during device initialization.
Furthermore, only one package can be active per device at a time. The device has a default Non-Volatile
Memory (NVM) configuration that provides limited functionality for the system in pre-boot (before OS
boot). During the OS boot process, the device driver loads the runtime DDP package that provides the
more advanced capabilities of the packet processing pipeline.
Figure 2 shows the benefits of DDP protocol support by an example of processing a GTP Ethernet
packet with and without the DDP package support for GTP protocols. With the OS-Default package,
which does not have GTP protocol support, the packet parser can only identify up to the first UDP
header information. The result of identifying a packet as MAC_IPVx_UDP_PAY limits filtering for
workload acceleration.
With GTP protocol support in the enhanced DDP Comms package, the GTP packet is fully identified (i.e.,
MAC_IPV4_GTPU_IPVx_TCP/UDP_PAY), enabling hardware filtering, accelerators, and RSS.

Figure 2. Benefits of Protocol Support by Enhanced DDP Package

6 617015-006
Intel® Ethernet Controller E810
DDP Technology Guide

3.0 Intel® Ethernet 800 Series Improvement over


Previous Generations
The 800 Series incorporates many changes in hardware design to enhance packet processing capability.
Table 1 shows key enhancements from the 700 Series to the 800 Series.

Table 1. DDP Enhancement Features


Feature 700 Series 800 Series

Maximum Receive Side Scaling (RSS)


64 256
queues per physical function.

VSIs per device 384 768

Maximum unique packet types 192 1024


®
Intel Ethernet FD Filters Up to 8K Up to 16K

Maximum packet header processing Up to 504 bytes with up to 16 protocols


256 bytes
depth deep

Custom DDP package loading DPDK or i40e driver using ethtool DPDK or 800 Series driver on startup

Default configuration is included as part of


OS-Default package loading DPDK or 800 Series driver on startup
device NVM

Number of protocols supported per


One Multiple
DDP package

Different package selected per device Yes Yes

617015-006 7
Intel® Ethernet Controller E810
DDP Technology Guide

4.0 DDP Package Definitions and Usage


Figure 3 shows DDP configurations available at different stages of the system boot process in pre-boot
and in OS boot.
In pre-boot or before a DDP package is loaded by an OS driver, an NVM-default configuration is
automatically loaded by firmware. This configuration, referred to as “safe mode”, supports a minimum
set of protocols and allows basic packets handling in the pre-boot environment, such as PXE boot or
UEFI. This NVM-default configuration is built into the device NVM firmware.
After OS boot, OS-default DDP, market-specific, or custom DDP package can be loaded by either the
800 Series driver or DPDK Configuration Tools.

Figure 3. Intel® Ethernet 800 Series with Programmable Pipeline via DDP Profiles

4.1 Device Safe Mode (pre-Boot or without DDP Package)


In pre-boot or if a DDP package is not loaded by an OS driver, the 800 Series is configured in safe mode
via an NVM-default configuration that is automatically loaded by firmware. This configuration supports a
minimum set of protocols and allows basic packet handling in the pre-boot environment, such as PXE
boot or UEFI.
The device can also be configured in safe mode if the DDP package fails to load due to a software
incompatibility or other issue. If an OS driver loads and cannot load a DDP package, a message is
printed in the system log that the device is now in safe mode.
In this safe mode, the driver disables support for the following features:
• Multi-queue
• Virtualization (SR-IOV/VMQ)
• Stateless workload acceleration for tunnel overlays (VxLAN/Geneve)
• RDMA (iWARP/RoCE)
• RSC
• RSS

8 617015-006
Intel® Ethernet Controller E810
DDP Technology Guide

• DCB /DCBx
• Intel® Ethernet Flow Director
• QinQ
• XDP / AF-XDP
• ADQ
Table 2 outlines the limited set of protocols supported in safe mode.

Table 2. Safe Mode Supported Protocols and Packet Types


Protocols PTYPEs

MAC MAC_PAY

ETYPE MAC_LLDP

VLAN MAC_ARP

IPv4 MAC_IPV4FRAG

IPv6 MAC_IPV4_PAY

TCP MAC_IPV4_UDP_PAY

UDP MAC_IPV4_TCP

SCTP MAC_IPV4_SCTP

ICMP MAC_IPV4_ICMP

ICMPv6 MAC_IPV6FRAG

LLDP MAC_IPV6_PAY

ARP MAC_IPV6_UDP_PAY

MAC_IPV6_TCP

MAC_IPV6_SCTP

MAC_IPV6_ICMPv6

4.2 OS-Default Package


The OS-Default DDP package is included with the 800 Series base driver. The DDP package is installed
automatically when the driver is installed. It is loaded into the device during driver initialization in
operating system boot. It is recommended to install the driver on a system running compatible device
NVM firmware.

4.3 Driver Load of the OS-Default Package

4.3.1 VMware ESXi OS Driver Load of DDP Package

4.3.1.1 DDP Package Installation/Load


For VMware, the DDP package is compiled into the base driver and requires no additional installation or
configuration for use.

617015-006 9
Intel® Ethernet Controller E810
DDP Technology Guide

4.3.1.2 Verifying DDP Package Status on VMware ESXi


The vmkernel.log file in /var/log/vmware/ shows the status of DDP package loading.
2019-11-20T10:49:49.748z cpu10:2098026) icen: icen_LogPkg:1976: 000:04:00.0: The DDP
package was successfully loaded: ICE OS Default Package version 1.3.28.0.
2019-11-20T10:49:49.860z cpu10:2098026) icen: icen_LogPkg:1976: 000:04:00.1: The DDP
package was successfully loaded: ICE OS Default Package version 1.3.28.0.

4.3.2 Windows OS Driver Load of DDP Package

4.3.2.1 DDP Package Installation/Load


For Windows operating systems, the DDP package is compiled into the base driver and requires no
additional installation or configuration for use.

4.3.2.2 Verifying DDP Package Status on Windows


The status of package loading can be found under the System Logs.
Using the Event Viewer application, the status can be found under:
Event Viewer > Windows Logs > System
with icea as the source log.
Or, the status messages can be found using Powershell:
Get-WinEvent -provider icea | ? Message -like *DDP*

Following is an example of a Windows system event log shows successful loading of an OS-Default
package:
Intel(R) Ethernet Network Adapter E810-C-Q2 #2
The DDP package was successfully loaded: ICE OS Default Package version 1.3.28.0

4.3.3 Linux Driver Load of DDP Package


For Linux-based operating systems, the DDP package is included with the ice Linux base driver source
code.

4.3.3.1 Out-of-Tree Driver DDP Installation


For the out-of-tree (OOT) driver, the driver installation process automatically installs ice-x.x.x.x.pkg to
the /lib/firmware/updates/intel/ice/ddp directory and creates a symbolic link to ice.pkg.

4.3.3.2 Upstream DDP Installation


Upstream ice drivers are supported on kernel.org v5.4 mainline kernel or higher. The required DDP
package (and symbolic link) must be installed separately through downloading and installing version
20191022 or higher of the linux-firmware package from the following git repository:
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git

10 617015-006
Intel® Ethernet Controller E810
DDP Technology Guide

4.3.3.3 DDP Package Driver Load


In either case (out-of-tree or upstream drivers), the ice driver looks for ice.pkg under the appropriate
directory (depending on whether it is upstream or out of tree) and loads it during driver initialization.
The kernel message log (e.g., dmesg) indicates the status of package loading in the system. If the
driver successfully finds and loads the DDP package, dmesg indicates that the DDP package is
successfully loaded.
Following is an example of a dmesg indicating successful loading of the OS-default DDP package on a
four-port device. The package is loaded by the first Physical Function (PF), and remaining PFs use the
loaded DDP package.
# dmesg | grep -i ddp
ice 0000:82:00.0: The DDP package was successfully loaded: ICE OS Default Package
version 1.3.28.0
ice 0000:82:00.1: DDP package already present on device: ICE OS Default Package
version 1.3.28.0
ice 0000:82:00.2: DDP package already present on device: ICE OS Default Package
version 11.3.28.0
ice 0000:82:00.3: DDP package already present on device: ICE OS Default Package
version 1.3.28.0

4.3.4 FreeBSD Driver Load of DDP Package


For FreeBSD, the package is embedded into a firmware module and loaded by the PF driver using a
native FreeBSD Firmware API for firmware updates. The firmware module is released with the base
driver, and is installed by default with the driver package with no additional configuration necessary.
Dmesg shows the loading status of the DDP package similar to Linux. The user can also use the sysctl
command to view the loading status and the loaded package version.
# sysctl dev.ice.0.ddp_version
dev.ice.0.ddp_version: ICE OS Default Package version 1.3.28.0

4.3.5 DPDK Driver Load of DDP Package


If the system boots up with corresponding ice Linux base driver, the driver loads the DDP package as
mentioned in the Linux DDP Driver load section. However, if the ice driver has not loaded a DDP
package on the system at the time of the DPDK start, DPDK requires its own DDP installation process.

4.3.5.1 DPDK DDP Package Installation


If the DDP package has not been installed and loaded by the ice driver, DPDK requires a manual DDP
package installation.
The user can download the DDP package from the Intel download center and extract the zip file to
obtain the package (.pkg) file.
Similar to the Linux base driver, the DPDK driver looks for intel/ice/ddp/ice.pkg in the kernel default
firmware search path /lib/firmware/updates or /lib/firmware/.

4.3.5.2 DPDK DDP Package Load


When the DPDK driver loads, it looks for ice.pkg to load in /lib/firmware/intel/ice/ddp/ or
/lib/firmware/updates/intel/ice/ddp/. If the file exists and it has not already been loaded, the driver
downloads it into the device.

617015-006 11
Intel® Ethernet Controller E810
DDP Technology Guide

The kernel message log (e.g., dmesg) indicates the status of package loading in the system. If the
driver successfully finds and loads the DDP package, dmesg indicates that the DDP package is
successfully loaded.
Following is an example of a dmesg indicating successful loading of the Comms DDP package on a
two-port device. The package is loaded by the first Physical Function (PF), and remaining PFs use the
loaded DDP package.
# dmesg | grep -i ddp
ice 0000:3b:00.0: The DDP package was successfully loaded: ICE Comms Package version
1.3.35.0
ice 0000:3b:00.1: DDP package already present on device: ICE OS Comms Package version
1.3.35.0

DPDK's testpmd application also indicates the status and version of the loaded DDP package.
The example shows the testpmd output of a successful Comms package loading.
EAL: PCI device 0000:3b:00.1 on NUMA socket 0
EAL: probe driver: 8086:1592 net_ice
ice_load_pkg_type(): Active package is: 1.3.35.0, ICE COMMS Package

4.3.6 Loading a Specific DDP Package on a Specific 800 Series


Network Adapter in Linux
On a host system running with multiple 800 Series devices, there is sometimes a need to load a specific
DDP package on a selected device while loading a different package on the remaining devices.
The 800 Series Linux base driver and DPDK driver can both load a specific DDP package to a selected
adapter based on the device's serial number. The driver does this by looking for a specific symbolic link
package filename containing the selected device's serial number.
The following example illustrates how a user can load a specific package (e.g., ice-1.3.35.0.pkg) on the
device of Bus 6.
1. Find device serial number.
To view bus, device, and function of all 800 Series Network Adapters in the system:
# lspci | grep -i Ethernet | grep -i Intel
06:00.0 Ethernet controller: Intel Corporation Ethernet Controller E810-C for QSFP
(rev 01)
06:00.1 Ethernet controller: Intel Corporation Ethernet Controller E810-C for QSFP
(rev 01)
82:00.0 Ethernet controller: Intel Corporation Ethernet Controller E810-C for SFP
(rev 01)
82:00.1 Ethernet controller: Intel Corporation Ethernet Controller E810-C for SFP
(rev 01)
82:00.2 Ethernet controller: Intel Corporation Ethernet Controller E810-C for SFP
(rev 01)
82:00.3 Ethernet controller: Intel Corporation Ethernet Controller E810-C for SFP
(rev 01)

Use the lspci command to obtain the selected device serial number:
# lspci -vv -s 06:00.0 | grep -i Serial
Capabilities: [150 v1] Device Serial Number 35-11-a0-ff-ff-ca-05-68

Or, fully parsed without punctuation:


# lspci -vv -s 06:00.0 |grep Serial |awk '{print $7}'|sed s/-//g
3511a0ffffca0568

12 617015-006
Intel® Ethernet Controller E810
DDP Technology Guide

2. Rename the package file with the device serial number in the name.
Copy the specific package over to /lib/firmware/updates/intel/ice/ddp (or /lib/firmware/intel/ice/
ddp) and create a symbolic link with the serial number linking to the package, as shown. The
specific symbolic link filename starts with “ice-” followed by the device serial in lower case without
dash ('-').
# ln -s /lib/firmware/updates/intel/ice/ddp/ice-1.3.35.0.pkg /lib/firmware/
updates/intel/ice/ddp/ice-3511a0ffffca0568.pkg

Or:
ln -sf /lib/firmware/updates/intel/ice/ddp/ice_comms-1.3.35.0.pkg ice-
e0680bffffb7a640.pkg

Check softlink:
ll ice.pkg
lrwxrwxrwx. 1 root root 58 Sep 10 01:24 ice.pkg -> /lib/firmware/updates/intel/
ice/ddp/ice_comms-1.3.35.0.pkg

3. If using Linux kernel driver (ice), reload the base driver (not required if using only DPDK driver).
# rmmod ice
# modprobe ice

The driver loads the specific package to the selected device and the OS-Default package to the
remaining 800 Series devices in the system.
4. Verify.
For kernel driver:
Following is an example of successful loading of the specific DDP package on the selected device of
Bus 6 and OS-Default package on the other device of Bus 82:
# dmesg | grep -i "ddp \| safe"
ice 0000:06:00.0: The DDP package was successfully loaded: ICE COMMS Package
version 1.3.35.0
ice 0000:06:00.1: DDP package already present on device: ICE COMMS Package version
1.3.35.0
ice 0000:82:00.0: The DDP package was successfully loaded: ICE OS Default Package
version 1.3.28.0
ice 0000:82:00.1: DDP package already present on device: ICE OS Default Package
version 1.3.28.0
ice 0000:82:00.2: DDP package already present on device: ICE OS Default Package
version 1.3.28.0
ice 0000:82:00.3: DDP package already present on device: ICE OS Default Package
version 1.3.28.0

If DPDK is used:
Verify using DPDK's testpmd application to indicate the status and version of the loaded DDP
package.

617015-006 13
Intel® Ethernet Controller E810
DDP Technology Guide

4.4 OS-Default Package Protocol Support


Once the OS-Default package is successfully loaded, the following protocols and packets are supported,
as shown in Table 3 and Table 4.

Table 3. OS-Default DDP Package Supported Protocols


Protocols

MAC TCP CTRL GRE

ETYPE UDP LLDP NVGRE

VLAN SCTP ARP GENEVE

IPv4 ICMP VXLAN-GPE RoCEv2

IPv6 ICMPv6 VXLAN (non-GPE)

Table 4. OS-Default DDP Package Supported Packet Types


PTYPE PTYPE Description PTYPE PTYPE Description

1 MAC_PAY 46 MAC_IPV4_TUN_IPV4_UDP_PAY

2 MAC_PTP 48 MAC_IPV4_TUN_IPV4_TCP

11 MAC_ARP 49 MAC_IPV4_TUN_IPV4_SCTP

278 MAC_CONTROL 50 MAC_IPV4_TUN_IPV4_ICMP

22 MAC_IPV4_FRAG 110 MAC_IPV6_TUN_IPV4_FRAG

23 MAC_IPV4_PAY 111 MAC_IPV6_TUN_IPV4_PAY

24 MAC_IPV4_UDP_PAY 112 MAC_IPV6_TUN_IPV4_UDP_PAY

26 MAC_IPV4_TCP 114 MAC_IPV6_TUN_IPV4_TCP

27 MAC_IPV4_SCTP 115 MAC_IPV6_TUN_IPV4_SCTP

28 MAC_IPV4_ICMP 116 MAC_IPV6_TUN_IPV4_ICMP

88 MAC_IPV6_FRAG 51 MAC_IPV4_TUN_IPV6_FRAG

89 MAC_IPV6_PAY 52 MAC_IPV4_TUN_IPV6_PAY

90 MAC_IPV6_UDP_PAY 53 MAC_IPV4_TUN_IPV6_UDP_PAY

92 MAC_IPV6_TCP 55 MAC_IPV4_TUN_IPV6_TCP

93 MAC_IPV6_SCTP 56 MAC_IPV4_TUN_IPV6_SCTP

94 MAC_IPV6_ICMPV6 57 MAC_IPV4_TUN_IPV6_ICMPV6

29 MAC_IPV4_IPV4_FRAG 117 MAC_IPV6_TUN_IPV6_FRAG

30 MAC_IPV4_IPV4_PAY 118 MAC_IPV6_TUN_IPV6_PAY

31 MAC_IPV4_IPV4_UDP_PAY 119 MAC_IPV6_TUN_IPV6_UDP_PAY

33 MAC_IPV4_IPV4_TCP 121 MAC_IPV6_TUN_IPV6_TCP

34 MAC_IPV4_IPV4_SCTP 122 MAC_IPV6_TUN_IPV6_SCTP

35 MAC_IPV4_IPV4_ICMP 123 MAC_IPV6_TUN_IPV6_ICMPV6

95 MAC_IPV6_IPV4_FRAG 59 MAC_IPV4_TUN_MAC_IPV4_FRAG

96 MAC_IPV6_IPV4_PAY 60 MAC_IPV4_TUN_MAC_IPV4_PAY

97 MAC_IPV6_IPV4_UDP_PA 61 MAC_IPV4_TUN_MAC_IPV4_UDP_PAY

99 MAC_IPV6_IPV4_TCP 63 MAC_IPV4_TUN_MAC_IPV4_TCP

14 617015-006
Intel® Ethernet Controller E810
DDP Technology Guide

Table 4. OS-Default DDP Package Supported Packet Types [continued]


PTYPE PTYPE Description PTYPE PTYPE Description

100 MAC_IPV6_IPV4_SCTP 64 MAC_IPV4_TUN_MAC_IPV4_SCTP

101 MAC_IPV6_IPV4_ICMP 65 MAC_IPV4_TUN_MAC_IPV4_ICMP

36 MAC_IPV4_IPV6_FRAG 125 MAC_IPV6_TUN_MAC_IPV4_FRAG

37 MAC_IPV4_IPV6_PAY 126 MAC_IPV6_TUN_MAC_IPV4_PAY

38 MAC_IPV4_IPV6_UDP_PAY 127 MAC_IPV6_TUN_MAC_IPV4_UDP_PAY

40 MAC_IPV4_IPV6_TCP 129 MAC_IPV6_TUN_MAC_IPV4_TCP

41 MAC_IPV4_IPV6_SCTP 130 MAC_IPV6_TUN_MAC_IPV4_SCTP

42 MAC_IPV4_IPV6_ICMPV6 131 MAC_IPV6_TUN_MAC_IPV4_ICMP

102 MAC_IPV6_IPV6_FRAG 66 MAC_IPV4_TUN_MAC_IPV6_FRAG

103 MAC_IPV6_IPV6_PAY 67 MAC_IPV4_TUN_MAC_IPV6_PAY

104 MAC_IPV6_IPV6_UDP_PAY 68 MAC_IPV4_TUN_MAC_IPV6_UDP_PAY

106 MAC_IPV6_IPV6_TCP 70 MAC_IPV4_TUN_MAC_IPV6_TCP

107 MAC_IPV6_IPV6_SCTP 71 MAC_IPV4_TUN_MAC_IPV6_SCTP

108 MAC_IPV6_IPV6_ICMPV6 72 MAC_IPV4_TUN_MAC_IPV6_SCTP

43 MAC_IPV4_TUN_PAY 132 MAC_IPV6_TUN_MAC_IPV6_FRAG

58 MAC_IPV4_TUN_MAC_PAY 133 MAC_IPV6_TUN_MAC_IPV6_PAY

109 MAC_IPV6_TUN_PAY 134 MAC_IPV6_TUN_MAC_IPV6_UDP_PAY

124 MAC_IPV6_TUN_MAC_PAY 136 MAC_IPV6_TUN_MAC_IPV6_TCP

44 MAC_IPV4_TUN_IPV4_FRAG 137 MAC_IPV6_TUN_MAC_IPV6_SCTP

45 MAC_IPV4_TUN_IPV4_PAY 138 MAC_IPV6_TUN_MAC_IPV6_ICMPV6

617015-006 15
Intel® Ethernet Controller E810
DDP Technology Guide

4.5 Intel® Ethernet Flow Director and RSS Support Using


ethtool and DPDK

4.5.1 Intel® Ethernet Flow Director


The Intel® Ethernet Flow Director performs the following tasks:
• Directs receive packets according to their flows to different queues.
• Enables tight control on routing a flow in the platform.
• Matches flows and CPU cores for flow affinity.
Note: An included script (set_irq_affinity) automates setting the IRQ to CPU affinity.
This driver supports the following flow types:
• IPv4
• TCPv4
• UDPv4
• SCTPv4
• IPv6
• TCPv6
• UDPv6
• SCTPv6

Table 5. Intel® Ethernet Flow Director Supported Flow Types


Tuple Type Tuple Inputs Supported Flow Types

1 4 Tuple src-ip, dst-ip, src-port, dst-port tcp4, udp4, sctp4, tcp6, udp6, sctp6

2 src-ip, dst-ip, src-port tcp4, udp4, sctp4, tcp6, udp6, sctp6

3 src-ip, dst-ip, dst-port tcp4, udp4, sctp4, tcp6, udp6, sctp6


3 Tuple
4 src-ip, src-port, dst-port tcp4, udp4, sctp4, tcp6, udp6, sctp6

5 dst-ip, src-port, dst-port tcp4, udp4, sctp4, tcp6, udp6, sctp6

6 src-ip, dst-ip tcp4, udp4, sctp4, tcp6, udp6, sctp6, ip4, ip6

7 src-ip, src-port tcp4, udp4, sctp4, tcp6, udp6, sctp6

8 src-ip, dst-port tcp4, udp4, sctp4, tcp6, udp6, sctp6


2 Tuple
9 dst-ip, src-port tcp4, udp4, sctp4, tcp6, udp6, sctp6

10 dst-ip, dst-port tcp4, udp4, sctp4, tcp6, udp6, sctp6

11 src-port, dst-port tcp4, udp4, sctp4, tcp6, udp6, sctp6

12 src-ip tcp4, udp4, sctp4, tcp6, udp6, sctp6, ip4, ip6

13 dst-ip tcp4, udp4, sctp4, tcp6, udp6, sctp6, ip4, ip6


1 Tuple
14 src-port tcp4, udp4, sctp4, tcp6, udp6, sctp6

15 dst-port tcp4, udp4, sctp4, tcp6, udp6, sctp6

Each flow type supports valid combinations of IP Addresses (source or destination) and UDP/TCP/SCTP
ports (source and destination). You can supply only a source IP Address, a source IP Address and a
destination port, or any combination of one or more of these four parameters.

16 617015-006
Intel® Ethernet Controller E810
DDP Technology Guide

Notes:
• This driver allows you to filter traffic based on a user-defined flexible 2-byte pattern and offset by
using the ethtool user-def and mask fields. Only L3 and L4 flow types are supported for user-
defined flexible filters. For a given flow type, you must clear all Intel® Ethernet Flow Director filters
before changing the input set (for that flow type).
• Intel® Ethernet Flow Director filters impact only LAN traffic. RDMA filtering occurs before Intel®
Ethernet Flow Director, so Intel® Ethernet Flow Director filters do not impact RDMA.
The following table summarizes supported Intel® Ethernet Flow Director features across Intel®
Ethernet controller families.

Table 6. Supported Intel® Ethernet Flow Director Features


Feature 500 Series 700 Series 800 Series

VF Flow Director Supported Routing to VF not supported Not supported

IP Address Range Filter Supported Not supported Field masking

IPv6 Support Supported Supported Supported

Configurable Input Set Configured per port Configured globally Configured per port

ATR Supported Supported Not supported

Flex Bye Filter Starts at beginning of packet Starts at beginning of payload Starts at beginning of packet

Tunneled Packets Filter matches outer header Filter matches inner header Filter matches inner header

4.5.2 Intel® Ethernet Flow Director Filters


Intel® Ethernet Flow Director filters are used to direct traffic that matches specified characteristics.
They are enabled through the ethtool ntuple interface. To enable or disable the Intel® Ethernet Flow
Director and these filters:
# ethtool -K <ethX> ntuple <off|on>

Where:

<ethX> = The Ethernet device to program.

Note: When ntuple filters are disabled, all the user-programmed filters are flushed from the driver
cache and hardware. All needed filters must be re-added when ntuple is re-enabled.
To display all of the active filters:
# ethtool -u <ethX>

Where:

<ethX> = The Ethernet device to program.

To add a new filter:


# ethtool -U <ethX> flow-type <type> src-ip <ip> [m <ip_mask>] dst-ip <ip> [m
<ip_mask>] src-port <port> [m <port_mask>] dst-port <port> [m <port_mask>] action
<queue>

Where:

<ethX> = The Ethernet device to program.


<type> = Can be ip4, tcp4, udp4, sctp4, ip6, tcp6, udp6, or sctp6.

617015-006 17
Intel® Ethernet Controller E810
DDP Technology Guide

<ip> = The IP address to match on.


<ip_mask> = The IPv4 address to mask on. (Note: These filters use inverted masks.)
<port> = The port number to match on.
<port_mask> = The 16-bit integer for masking. (Note: These filters use inverted masks.)
<queue> = The queue to direct traffic toward. (-1 discards the matched traffic.)

To delete a filter:
# ethtool -U <ethX> delete <N>

Where:

<ethX> = The Ethernet device to program.


<N> = The Filter ID displayed when printing all the active filters, and might also have been
specified using “loc <N>” when adding the filter.

EXAMPLES:
To add a filter that directs packet to queue 2:
# ethtool -U <ethX> flow-type tcp4 src-ip 192.168.10.1 dst-ip 192.168.10.2 src-port
2000 dst-port 2001 action 2 [loc 1]

To set a filter using only the source and destination IP address:


# ethtool -U <ethX> flow-type tcp4 src-ip 192.168.10.1 dst-ip 192.168.10.2 action 2
[loc 1]

To set a filter based on a user-defined pattern and offset:


# ethtool -U <ethX> flow-type tcp4 src-ip 192.168.10.1 dst-ip 192.168.10.2 user-def
0x4FFFF action 2 [loc 1]

Where the value of the user-def field contains the offset (4 bytes) and the pattern (0xffff).
To match TCP traffic sent from 192.168.0.1, port 5300, directed to 192.168.0.5, port 80, and then send
it to queue 7:
# ethtool -U enp130s0 flow-type tcp4 src-ip 192.168.0.1 dst-ip 192.168.0.5 src-port
5300 dst-port 80 action 7

To add a TCPv4 filter with a partial mask for a source IP subnet:


# ethtool -U <ethX> flow-type tcp4 src-ip 192.168.0.0 m 0.255.255.255 dst-ip
192.168.5.12 src-port 12600 dst-port 31 action 12

Notes: For each flow-type, the programmed filters must all have the same matching input set.
For example, issuing the following two commands is acceptable:
# ethtool -U enp130s0 flow-type ip4 src-ip 192.168.0.1 src-port 5300 action 7

# ethtool -U enp130s0 flow-type ip4 src-ip 192.168.0.5 src-port 55 action 10

Issuing the next two commands, however, is not acceptable, since the first specifies
src-ip and the second specifies dst-ip:
# ethtool -U enp130s0 flow-type ip4 src-ip 192.168.0.1 src-port 5300 action 7

# ethtool -U enp130s0 flow-type ip4 dst-ip 192.168.0.5 src-port 55 action 10

18 617015-006
Intel® Ethernet Controller E810
DDP Technology Guide

The second command will fail with an error. You may program multiple filters with the
same fields, using different values. However, on one device, you may not program two
tcp4 filters with different matching fields.
The ice driver does not support matching on a sub-portion of a field, thus partial mask
fields are not supported.

Table 7. Patterns and Input Sets for iavf Intel® Ethernet Flow Director
DDP

Pattern Input Set Action GTP


OS
Comms Wireless over
Default
GRE

eth ethertype

eth / ipv4 src_ip | dst_ip | proto | tos | ttl

src_ip | dst_ip | proto | tos | ttl |


eth / ipv4 / udp
src_port | dst_port

src_ip | dst_ip | proto | tos | ttl |


eth / ipv4 / tcp
src_port | dst_port

src_ip | dst_ip | proto | tos | ttl |


eth / ipv4 / sctp
src_port | dst_port

src_ip | src_dst | next_hdr | tc |


eth / ipv6
hop_limit

src_ip | src_dst | next_hdr | tc |


eth / ipv6 / udp
hop_limit | src_port | dst_port

src_ip | src_dst | next_hdr | tc |


eth / ipv6 / tcp
hop_limit | src_port | dst_port

src_ip | src_dst | next_hdr | tc |


eth / ipv6 / sctp
hop_limit | src_port | dst_port

eth / ipv4 / udp / gtpu outer_src_ip | outer_dst_ip | teid

outer_src_ip | outer_dst_ip | teid | Drop


eth / ipv4 / udp / gtpu / gtp_psc
qfi To Queue
To Queue
eth / ipv6 / udp / gtpu outer_src_ip | outer_dst_ip | teid
Group
outer_src_ip | outer_dst_ip | teid | Flow Mark
eth / ipv6 / udp / gtpu / gtp_psc
qfi

eth / ipv4 / l2tpv3 session_id

eth / ipv4 / esp spi

eth / ipv4 / udp / esp spi | src_ip | dst_ip

eth / ipv4 / ah spi

eth / ipv4 / pfcp s_field

eth / ipv6 / l2tpv3 session_id

eth / ipv6 / esp spi

eth / ipv6 / udp / esp spi

eth / ipv6 / ah spi

eth / ipv6 / pfcp s_field

eth / ecpri proto | pc_rtc_id

eth / ipv4 / udp / ecpri proto | pc_rtc_id

eth / ipv4 / gtpu / ipv4 inner: src_ip | dst_ip

617015-006 19
Intel® Ethernet Controller E810
DDP Technology Guide

Table 7. Patterns and Input Sets for iavf Intel® Ethernet Flow Director [continued]
DDP

Pattern Input Set Action GTP


OS
Comms Wireless over
Default
GRE

inner: src_ip | dst_ip | src_port |


eth / ipv4 / gtpu / ipv4 / udp
dst_port

inner: src_ip | dst_ip | src_port |


eth / ipv4 / gtpu / ipv4 / tcp
dst_port

eth / ipv4 / gtpu / eh / ipv4 inner: src_ip | dst_ip

inner: src_ip | dst_ip | src_port |


eth / ipv4 / gtpu / eh / ipv4 / udp
dst_port

inner: src_ip | dst_ip | src_port |


eth / ipv4 / gtpu / eh / ipv4 / tcp
dst_port

eth / ipv4 / gtpu / eh(0) / ipv4 inner: src_ip | dst_ip

inner: src_ip | dst_ip | src_port |


eth / ipv4 / gtpu / eh(0) / ipv4 / udp
dst_port

inner: src_ip | dst_ip | src_port |


eth / ipv4 / gtpu / eh(0) / ipv4 / tcp
dst_port

eth / ipv4 / gtpu / eh(1) / ipv4 inner: src_ip | dst_ip

inner: src_ip | dst_ip | src_port |


eth / ipv4 / gtpu / eh(1) / ipv4 / udp
dst_port

inner: src_ip | dst_ip | src_port |


eth / ipv4 / gtpu / eh(1) / ipv4 / tcp
dst_port

eth / ipv4 / gtpu / ipv6 inner: src_ip | dst_ip


Drop
inner: src_ip | dst_ip | src_port | To Queue
eth / ipv4 / gtpu / ipv6 / udp
dst_port To Queue
Group
inner: src_ip | dst_ip | src_port |
eth / ipv4 / gtpu / ipv6 / tcp Flow Mark
dst_port

eth / ipv4 / gtpu / eh / ipv6 inner: src_ip | dst_ip

inner: src_ip | dst_ip | src_port |


eth / ipv4 / gtpu / eh / ipv6 / udp
dst_port

inner: src_ip | dst_ip | src_port |


eth / ipv4 / gtpu / eh / ipv6 / tcp
dst_port

eth / ipv4 / gtpu / eh(0) / ipv6 inner: src_ip | dst_ip

inner: src_ip | dst_ip | src_port |


eth / ipv4 / gtpu / eh(0) / ipv6 / udp
dst_port

inner: src_ip | dst_ip | src_port |


eth / ipv4 / gtpu / eh(0) / ipv6 / tcp
dst_port

eth / ipv4 / gtpu / eh(1) / ipv6 inner: src_ip | dst_ip

inner: src_ip | dst_ip | src_port |


eth / ipv4 / gtpu / eh(1) / ipv6 / udp
dst_port

inner: src_ip | dst_ip | src_port |


eth / ipv4 / gtpu / eh(1) / ipv6 / tcp
dst_port

eth / ipv4 / gre / ipv4 / udp / gtpu /


inner: src_ip | dst_ip
ipv4

eth / ipv4 / gre / ipv4 / udp / gtpu / inner: src_ip | dst_ip | src_port |
ipv4 / udp dst_port

20 617015-006
Intel® Ethernet Controller E810
DDP Technology Guide

Table 7. Patterns and Input Sets for iavf Intel® Ethernet Flow Director [continued]
DDP

Pattern Input Set Action GTP


OS
Comms Wireless over
Default
GRE

eth / ipv4 / gre / ipv4 / udp / gtpu / inner: src_ip | dst_ip | src_port |
ipv4 / tcp dst_port

eth / ipv4 / gre / ipv4 / udp / gtpu /


inner: src_ip | dst_ip
gtp_psc / ipv4

eth / ipv4 / gre / ipv4 / udp / gtpu / inner: src_ip | dst_ip | src_port |
gtp_psc / ipv4 / udp dst_port

eth / ipv4 / gre / ipv4 / udp / gtpu / inner: src_ip | dst_ip | src_port |
gtp_psc / ipv4 / tcp dst_port

eth / ipv4 / gre / ipv6 / udp / gtpu /


inner: src_ip | dst_ip
ipv4

eth / ipv4 / gre / ipv6 / udp / gtpu / inner: src_ip | dst_ip | src_port |
ipv4 / udp dst_port

eth / ipv4 / gre / ipv6 / udp / gtpu / inner: src_ip | dst_ip | src_port |
ipv4 / tcp dst_port

eth / ipv4 / gre / ipv6 / udp / gtpu /


inner: src_ip | dst_ip
gtp_psc / ipv4

eth / ipv4 / gre / ipv6 / udp / gtpu / inner: src_ip | dst_ip | src_port |
gtp_psc / ipv4 / udp dst_port

eth / ipv4 / gre / ipv6 / udp / gtpu / inner: src_ip | dst_ip | src_port |
gtp_psc / ipv4 / tcp dst_port

eth / ipv4 / gre / ipv4 / udp / gtpu /


inner: src_ip | dst_ip
ipv4 Drop
To Queue
eth / ipv6 / gre / ipv4 / udp / gtpu / inner: src_ip | dst_ip | src_port |
ipv4 / udp dst_port To Queue
Group
eth / ipv6 / gre / ipv4 / udp / gtpu / inner: src_ip | dst_ip | src_port | Flow Mark
ipv4 / tcp dst_port

eth / ipv6 / gre / ipv4 / udp / gtpu /


inner: src_ip | dst_ip
gtp_psc / ipv4

eth / ipv6 / gre / ipv4 / udp / gtpu / inner: src_ip | dst_ip | src_port |
gtp_psc / ipv4 / udp dst_port

eth / ipv6 / gre / ipv4 / udp / gtpu / inner: src_ip | dst_ip | src_port |
gtp_psc / ipv4 / tcp dst_port

eth / ipv6 / gre / ipv6 / udp / gtpu /


inner: src_ip | dst_ip
ipv4

eth / ipv6 / gre / ipv6 / udp / gtpu / inner: src_ip | dst_ip | src_port |
ipv4 / udp dst_port

eth / ipv6 / gre / ipv6 / udp / gtpu / inner: src_ip | dst_ip | src_port |
ipv4 / tcp dst_port

eth / ipv6 / gre / ipv6 / udp / gtpu /


inner: src_ip | dst_ip
gtp_psc / ipv4

eth / ipv6 / gre / ipv6 / udp / gtpu / inner: src_ip | dst_ip | src_port |
gtp_psc / ipv4 / udp dst_port

eth / ipv6 / gre / ipv6 / udp / gtpu / inner: src_ip | dst_ip | src_port |
gtp_psc / ipv4 / tcp dst_port

eth / ipv4 / gre / ipv4 / udp / gtpu /


inner: src_ip | dst_ip
ipv6

617015-006 21
Intel® Ethernet Controller E810
DDP Technology Guide

Table 7. Patterns and Input Sets for iavf Intel® Ethernet Flow Director [continued]
DDP

Pattern Input Set Action GTP


OS
Comms Wireless over
Default
GRE

eth / ipv4 / gre / ipv4 / udp / gtpu / inner: src_ip | dst_ip | src_port |
ipv6 / udp dst_port

eth / ipv4 / gre / ipv4 / udp / gtpu / inner: src_ip | dst_ip | src_port |
ipv6 / tcp dst_port

eth / ipv4 / gre / ipv4 / udp / gtpu /


inner: src_ip | dst_ip
gtp_psc / ipv6

eth / ipv4 / gre / ipv4 / udp / gtpu / inner: src_ip | dst_ip | src_port |
gtp_psc / ipv6 / udp dst_port

eth / ipv4 / gre / ipv4 / udp / gtpu / inner: src_ip | dst_ip | src_port |
gtp_psc / ipv6 / tcp dst_port

eth / ipv4 / gre / ipv6 / udp / gtpu /


inner: src_ip | dst_ip
ipv6

eth / ipv4 / gre / ipv6 / udp / gtpu / inner: src_ip | dst_ip | src_port |
ipv6 / udp dst_port

eth / ipv4 / gre / ipv6 / udp / gtpu / inner: src_ip | dst_ip | src_port |
ipv6 / tcp dst_port

eth / ipv4 / gre / ipv6 / udp / gtpu /


inner: src_ip | dst_ip
gtp_psc / ipv6

eth / ipv4 / gre / ipv6 / udp / gtpu / inner: src_ip | dst_ip | src_port |
gtp_psc / ipv6 / udp dst_port

eth / ipv4 / gre / ipv6 / udp / gtpu / inner: src_ip | dst_ip | src_port |
gtp_psc / ipv6 / tcp dst_port Drop
To Queue
eth / ipv4 / gre / ipv4 / udp / gtpu /
inner: src_ip | dst_ip To Queue
ipv6
Group
eth / ipv6 / gre / ipv4 / udp / gtpu / inner: src_ip | dst_ip | src_port | Flow Mark
ipv6 / udp dst_port

eth / ipv6 / gre / ipv4 / udp / gtpu / inner: src_ip | dst_ip | src_port |
ipv6 / tcp dst_port

eth / ipv6 / gre / ipv4 / udp / gtpu /


inner: src_ip | dst_ip
gtp_psc / ipv6

eth / ipv6 / gre / ipv4 / udp / gtpu / inner: src_ip | dst_ip | src_port |
gtp_psc / ipv6 / udp dst_port

eth / ipv6 / gre / ipv4 / udp / gtpu / inner: src_ip | dst_ip | src_port |
gtp_psc / ipv6 / tcp dst_port

eth / ipv6 / gre / ipv6 / udp / gtpu /


inner: src_ip | dst_ip
ipv6

eth / ipv6 / gre / ipv6 / udp / gtpu / inner: src_ip | dst_ip | src_port |
ipv6 / udp dst_port

eth / ipv6 / gre / ipv6 / udp / gtpu / inner: src_ip | dst_ip | src_port |
ipv6 / tcp dst_port

eth / ipv6 / gre / ipv6 / udp / gtpu /


inner: src_ip | dst_ip
gtp_psc / ipv6

eth / ipv6 / gre / ipv6 / udp / gtpu / inner: src_ip | dst_ip | src_port |
gtp_psc / ipv6 / udp dst_port

eth / ipv6 / gre / ipv6 / udp / gtpu / inner: src_ip | dst_ip | src_port |
gtp_psc / ipv6 / tcp dst_port

22 617015-006
Intel® Ethernet Controller E810
DDP Technology Guide

Table 7. Patterns and Input Sets for iavf Intel® Ethernet Flow Director [continued]
DDP

Pattern Input Set Action GTP


OS
Comms Wireless over
Default
GRE

eth / ipv4 / gre / ipv4 / udp / gtpu teid | src_ip | dst_ip

eth / ipv4 / gre / ipv6 / udp / gtpu teid | src_ip | dst_ip

eth / ipv6 / gre / ipv4 / udp / gtpu teid | src_ip | dst_ip

eth / ipv6 / gre / ipv6 / udp / gtpu teid | src_ip | dst_ip

eth / ipv4 / gre / ipv4 / udp / gtpu /


teid | gfi | src_ip | dst_ip
gtp_psc

eth / ipv4 / gre / ipv6 / udp / gtpu /


teid | gfi | src_ip | dst_ip
gtp_psc

eth / ipv6 / gre / ipv4 / udp / gtpu /


teid | gfi | src_ip | dst_ip
gtp_psc

eth / ipv6 / gre / ipv6 / udp / gtpu /


teid | gfi | src_ip | dst_ip
gtp_psc

eth / ipv4 / gre / ipv4 inner: src_ip | dst_ip

inner: src_ip | dst_ip | src_port |


eth / ipv4 / gre / ipv4 / udp Drop
dst_port
To Queue
inner: src_ip | dst_ip | src_port | To Queue
eth / ipv4 / gre / ipv4 / tcp
dst_port Group
eth / ipv4 / gre / ipv6 inner: src_ip | dst_ip Flow Mark

inner: src_ip | dst_ip | src_port |


eth / ipv4 / gre / ipv6 / udp
dst_port

inner: src_ip | dst_ip | src_port |


eth / ipv4 / gre / ipv6 / tcp
dst_port

eth / ipv6 / gre / ipv4 inner: src_ip | dst_ip

inner: src_ip | dst_ip | src_port |


eth / ipv6 / gre / ipv4 / udp
dst_port

inner: src_ip | dst_ip | src_port |


eth / ipv6 / gre / ipv4 / tcp
dst_port

eth / ipv6 / gre / ipv6 inner: src_ip | dst_ip

inner: src_ip | dst_ip | src_port |


eth / ipv6 / gre / ipv6 / udp
dst_port

inner: src_ip | dst_ip | src_port |


eth / ipv6 / gre / ipv6 / tcp
dst_port

4.5.2.1 DPDK iavf Intel® Ethernet Flow Director Example Configuration


flow create 0 ingress pattern eth / ipv4 / udp / gtpu teid is 0x12345678 / end actions
queue index 1 / mark / end

617015-006 23
Intel® Ethernet Controller E810
DDP Technology Guide

4.5.3 RSS
Packets are sent to different cores for interrupt processing, and then subsequently forwarded to cores
where the consuming process is running.
RSS aims to spread incoming packets across cores while directing packets from common flows to the
same core
Ethtool RSS Hash Flow:
ethtool -N <ethX> rx-flow-hash <type> <option>

Where:

<ethX> = The Ethernet device to program.


<type> = tcp4 — Signifies TCP over IPv4.
udp4 — Signifies UDP over IPv4.
tcp6 — Signifies TCP over IPv6.
udp6 — Signifies UDP over IPv6.
<option> = s — Hash on the IP source address of the Rx packet.
d — Hash on the IP destination address of the Rx packet.
f — Hash on bytes 0 and 1 of the Layer 4 header of the Rx packet.

To enable RSS Hashing on Source address, Destination address, Source ports and Destination ports:
ethtool -n <ethX> rx-flow-hash udp4

Verify that the rule was created and is correct. For unsupported flow-type, the rule should fail to create.
ethtool -n <ethX>

Table 8. Patterns and Input Sets for iavf RSS


DDP

Pattern Input Set GTP


OS
Comms Wireless over
Default
GRE

src_mac | dst_mac | src_ip | dst_ip |


eth / ipv4
l3_checksum

src_mac | dst_mac | src_ip | dst_ip |


eth / ipv4_frag
packet_id| l3_checksum

src_mac | dst_mac | src_ip | dst_ip |


eth / ipv4 / udp src_port | dst_port| l3_checksum |
l4_checksum

src_mac | dst_mac | src_ip | dst_ip |


eth / ipv4 / tcp src_port | dst_port| l3_checksum |
l4_checksum

src_mac | dst_mac | src_ip | dst_ip |


eth / ipv4 / sctp src_port | dst_port| l3_checksum |
l4_checksum

eth / ipv4 src_mac | dst_mac | vlan | src_ip | dst_ip

src_mac | dst_mac | vlan | src_ip | dst_ip


eth / ipv4 / udp
| src_port | dst_port

src_mac | dst_mac | vlan | src_ip | dst_ip


eth / ipv4 / tcp
| src_port | dst_port

24 617015-006
Intel® Ethernet Controller E810
DDP Technology Guide

Table 8. Patterns and Input Sets for iavf RSS [continued]


DDP

Pattern Input Set GTP


OS
Comms Wireless over
Default
GRE

src_mac | dst_mac | vlan | src_ip | dst_ip


eth / ipv4 / sctp
| src_port | dst_port

eth / ipv6 src_mac | dst_mac | src_ip | dst_ip

src_mac | dst_mac | src_ip | dst_ip |


eth / ipv6 / ipv6_frag_ext
packet_id

src_mac | dst_mac | src_ip | dst_ip |


eth / ipv6 / udp
src_port | dst_port | l4_checksum

src_mac | dst_mac | src_ip | dst_ip |


eth / ipv6 / tcp
src_port | dst_port | l4_checksum

src_mac | dst_mac | src_ip | dst_ip |


eth / ipv6 / sctp
src_port | dst_port | l4_checksum

eth / ipv6 src_mac | dst_mac | vlan | src_ip | dst_ip

src_mac | dst_mac | vlan | src_ip | dst_ip


eth / ipv6 / udp
| src_port | dst_port

src_mac | dst_mac | vlan | src_ip | dst_ip


eth / ipv6 / tcp
| src_port | dst_port | l4_checksum

src_mac | dst_mac | vlan | src_ip | dst_ip


eth / ipv6 / sctp
| src_port | dst_port | l4_checksum

eth / ipv4 / udp / gtpu / ipv4 teid | inner: src_ip | dst_ip

teid | inner: src_ip | dst_ip | src_port |


eth / ipv4 / udp / gtpu / ipv4 / udp
dst_port

teid | inner: src_ip | dst_ip | src_port |


eth / ipv4 / udp / gtpu / ipv4 / tcp
dst_port

eth / ipv6 / udp / gtpu / ipv4 teid | inner: src_ip | dst_ip

teid | inner: src_ip | dst_ip | src_port |


eth / ipv6 / udp / gtpu / ipv4 / udp
dst_port

teid | inner: src_ip | dst_ip | src_port |


eth / ipv6 / udp / gtpu / ipv4 / tcp
dst_port

eth / ipv4 / udp / gtpu / gtp_psc / ipv4 src_ip | dst_ip

eth / ipv4 / udp / gtpu / gtp_psc / ipv4 /


src_ip | dst_ip | src_port | dst_port
udp

eth / ipv4 / udp / gtpu / gtp_psc / ipv4 /


src_ip | dst_ip | src_port | dst_port
tcp

eth / ipv6 / udp / gtpu / gtp_psc / ipv4 src_ip | dst_ip

eth / ipv6 / udp / gtpu / gtp_psc / ipv4 /


src_ip | dst_ip | src_port | dst_port
udp

eth / ipv6 / udp / gtpu / gtp_psc / ipv4 /


src_ip | dst_ip | src_port | dst_port
tcp

eth / ipv4 / udp / gtpu / ipv6 teid | inner: src_ip | dst_ip

teid | inner: src_ip | dst_ip | src_port |


eth / ipv4 / udp / gtpu / ipv6 / udp
dst_port

teid | inner: src_ip | dst_ip | src_port |


eth / ipv4 / udp / gtpu / ipv6 / tcp
dst_port

eth / ipv6 / udp / gtpu / ipv6 teid | inner: src_ip | dst_ip

617015-006 25
Intel® Ethernet Controller E810
DDP Technology Guide

Table 8. Patterns and Input Sets for iavf RSS [continued]


DDP

Pattern Input Set GTP


OS
Comms Wireless over
Default
GRE

teid | inner: src_ip | dst_ip | src_port |


eth / ipv6 / udp / gtpu / ipv6 / udp
dst_port

teid | inner: src_ip | dst_ip | src_port |


eth / ipv6 / udp / gtpu / ipv6 / tcp
dst_port

eth / ipv4 / udp / gtpu / gtp_psc / ipv6 src_ip | dst_ip

eth / ipv4 / udp / gtpu / gtp_psc / ipv6 /


src_ip | dst_ip | src_port | dst_port
udp

eth / ipv4 / udp / gtpu / gtp_psc / ipv6 /


src_ip | dst_ip | src_port | dst_port
tcp

eth / ipv6 / udp / gtpu / gtp_psc / ipv6 src_ip | dst_ip

eth / ipv6 / udp / gtpu / gtp_psc / ipv6 /


src_ip | dst_ip | src_port | dst_port
udp

eth / ipv6 / udp / gtpu / gtp_psc / ipv6 /


src_ip | dst_ip | src_port | dst_port
tcp

eth / ipv4 / esp spi | src_ip | dst_ip

eth / ipv4 / udp / esp spi | src_ip | dst_ip

eth / ipv4 / ah spi | src_ip | dst_ip

eth / ipv4 / l2tpv3 session_id | src_ip | dst_ip

eth / ipv4 / pfcp seid | src_ip | dst_ip

eth / ipv4 / gtpc teid | src_ip | dst_ip

eth / ipv4 / gtpu teid | outer_src_ip | outer_dst_ip

eth / ipv6 / esp spi | src_ip | dst_ip

eth / ipv6 / udp / esp spi | src_ip | dst_ip

eth / ipv6 / ah spi | src_ip | dst_ip

eth / ipv6 / l2tpv3 session_id | src_ip | dst_ip

eth / ipv6 / pfcp seid | src_ip | dst_ip

eth / ipv6 / gtpc teid | src_ip | dst_ip

eth / ipv6 / gtpu teid | outer_src_ip | outer_dst_ip

eth / ecpri session_id

eth / ipv4 / udp / ecpri session_id

eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 teid | inner: src_ip | dst_ip

eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 / teid | inner: src_ip | dst_ip | src_port |
udp dst_port

eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 / teid | inner: src_ip | dst_ip | src_port |
tcp dst_port

eth / ipv4 / gre / ipv4 / udp / gtpu /


teid | inner: src_ip | dst_ip
gtp_psc / ipv4

eth / ipv4 / gre / ipv4 / udp / gtpu / teid | inner: src_ip | dst_ip | src_port |
gtp_psc / ipv4 / udp dst_port

eth / ipv4 / gre / ipv4 / udp / gtpu / teid | inner: src_ip | dst_ip | src_port |
gtp_psc / ipv4 / tcp dst_port

26 617015-006
Intel® Ethernet Controller E810
DDP Technology Guide

Table 8. Patterns and Input Sets for iavf RSS [continued]


DDP

Pattern Input Set GTP


OS
Comms Wireless over
Default
GRE

eth / ipv4 / gre / ipv6 / udp / gtpu / ipv4 teid | inner: src_ip | dst_ip

eth / ipv4 / gre / ipv6 / udp / gtpu / ipv4 / teid | inner: src_ip | dst_ip | src_port |
udp dst_port

eth / ipv4 / gre / ipv6 / udp / gtpu / ipv4 / teid | inner: src_ip | dst_ip | src_port |
tcp dst_port

eth / ipv4 / gre / ipv6 / udp / gtpu /


teid | inner: src_ip | dst_ip
gtp_psc / ipv4

eth / ipv4 / gre / ipv6 / udp / gtpu / teid | inner: src_ip | dst_ip | src_port |
gtp_psc / ipv4 / udp dst_port

eth / ipv4 / gre / ipv6 / udp / gtpu / teid | inner: src_ip | dst_ip | src_port |
gtp_psc / ipv4 / tcp dst_port

eth / ipv4 / gre / ipv4 / udp / gtpu / ipv4 teid | inner: src_ip | dst_ip

eth / ipv6 / gre / ipv4 / udp / gtpu / ipv4 / teid | inner: src_ip | dst_ip | src_port |
udp dst_port

eth / ipv6 / gre / ipv4 / udp / gtpu / ipv4 / teid | inner: src_ip | dst_ip | src_port |
tcp dst_port

eth / ipv6 / gre / ipv4 / udp / gtpu /


teid | inner: src_ip | dst_ip
gtp_psc / ipv4

eth / ipv6 / gre / ipv4 / udp / gtpu / teid | inner: src_ip | dst_ip | src_port |
gtp_psc / ipv4 / udp dst_port

eth / ipv6 / gre / ipv4 / udp / gtpu / teid | inner: src_ip | dst_ip | src_port |
gtp_psc / ipv4 / tcp dst_port

eth / ipv6 / gre / ipv6 / udp / gtpu / ipv4 teid | inner: src_ip | dst_ip

eth / ipv6 / gre / ipv6 / udp / gtpu / ipv4 / teid | inner: src_ip | dst_ip | src_port |
udp dst_port

eth / ipv6 / gre / ipv6 / udp / gtpu / ipv4 / teid | inner: src_ip | dst_ip | src_port |
tcp dst_port

eth / ipv6 / gre / ipv6 / udp / gtpu /


teid | inner: src_ip | dst_ip
gtp_psc / ipv4

eth / ipv6 / gre / ipv6 / udp / gtpu / teid | inner: src_ip | dst_ip | src_port |
gtp_psc / ipv4 / udp dst_port

eth / ipv6 / gre / ipv6 / udp / gtpu / teid | inner: src_ip | dst_ip | src_port |
gtp_psc / ipv4 / tcp dst_port

eth / ipv4 / gre / ipv4 / udp / gtpu / ipv6 teid | inner: src_ip | dst_ip

eth / ipv4 / gre / ipv4 / udp / gtpu / ipv6 / teid | inner: src_ip | dst_ip | src_port |
udp dst_port

eth / ipv4 / gre / ipv4 / udp / gtpu / ipv6 / teid | inner: src_ip | dst_ip | src_port |
tcp dst_port

eth / ipv4 / gre / ipv4 / udp / gtpu /


teid | inner: src_ip | dst_ip
gtp_psc / ipv6

eth / ipv4 / gre / ipv4 / udp / gtpu / teid | inner: src_ip | dst_ip | src_port |
gtp_psc / ipv6 / udp dst_port

eth / ipv4 / gre / ipv4 / udp / gtpu / teid | inner: src_ip | dst_ip | src_port |
gtp_psc / ipv6 / tcp dst_port

eth / ipv4 / gre / ipv6 / udp / gtpu / ipv6 teid | inner: src_ip | dst_ip

617015-006 27
Intel® Ethernet Controller E810
DDP Technology Guide

Table 8. Patterns and Input Sets for iavf RSS [continued]


DDP

Pattern Input Set GTP


OS
Comms Wireless over
Default
GRE

eth / ipv4 / gre / ipv6 / udp / gtpu / ipv6 / teid | inner: src_ip | dst_ip | src_port |
udp dst_port

eth / ipv4 / gre / ipv6 / udp / gtpu / ipv6 / teid | inner: src_ip | dst_ip | src_port |
tcp dst_port

eth / ipv4 / gre / ipv6 / udp / gtpu /


teid | inner: src_ip | dst_ip
gtp_psc / ipv6

eth / ipv4 / gre / ipv6 / udp / gtpu / teid | inner: src_ip | dst_ip | src_port |
gtp_psc / ipv6 / udp dst_port

eth / ipv4 / gre / ipv6 / udp / gtpu / teid | inner: src_ip | dst_ip | src_port |
gtp_psc / ipv6 / tcp dst_port

eth / ipv4 / gre / ipv4 / udp / gtpu / ipv6 teid | inner: src_ip | dst_ip

eth / ipv6 / gre / ipv4 / udp / gtpu / ipv6 / teid | inner: src_ip | dst_ip | src_port |
udp dst_port

eth / ipv6 / gre / ipv4 / udp / gtpu / ipv6 / teid | inner: src_ip | dst_ip | src_port |
tcp dst_port

eth / ipv6 / gre / ipv4 / udp / gtpu /


teid | inner: src_ip | dst_ip
gtp_psc / ipv6

eth / ipv6 / gre / ipv4 / udp / gtpu / teid | inner: src_ip | dst_ip | src_port |
gtp_psc / ipv6 / udp dst_port

eth / ipv6 / gre / ipv4 / udp / gtpu / teid | inner: src_ip | dst_ip | src_port |
gtp_psc / ipv6 / tcp dst_port

eth / ipv6 / gre / ipv6 / udp / gtpu / ipv6 teid | inner: src_ip | dst_ip

eth / ipv6 / gre / ipv6 / udp / gtpu / ipv6 / teid | inner: src_ip | dst_ip | src_port |
udp dst_port

eth / ipv6 / gre / ipv6 / udp / gtpu / ipv6 / teid | inner: src_ip | dst_ip | src_port |
tcp dst_port

eth / ipv6 / gre / ipv6 / udp / gtpu /


teid | inner: src_ip | dst_ip
gtp_psc / ipv6

eth / ipv6 / gre / ipv6 / udp / gtpu / teid | inner: src_ip | dst_ip | src_port |
gtp_psc / ipv6 / udp dst_port

eth / ipv6 / gre / ipv6 / udp / gtpu / teid | inner: src_ip | dst_ip | src_port |
gtp_psc / ipv6 / tcp dst_port

eth / ipv4 / gre / ipv4 inner: src_ip | dst_ip

eth / ipv4 / gre / ipv4 / udp inner: src_ip | dst_ip | src_port | dst_port

eth / ipv4 / gre / ipv4 / tcp inner: src_ip | dst_ip | src_port | dst_port

eth / ipv4 / gre / ipv6 inner: src_ip | dst_ip

eth / ipv4 / gre / ipv6 / udp inner: src_ip | dst_ip | src_port | dst_port

eth / ipv4 / gre / ipv6 / tcp inner: src_ip | dst_ip | src_port | dst_port

eth / ipv6 / gre / ipv4 inner: src_ip | dst_ip

eth / ipv6 / gre / ipv4 / udp inner: src_ip | dst_ip | src_port | dst_port

eth / ipv6 / gre / ipv4 / tcp inner: src_ip | dst_ip | src_port | dst_port

eth / ipv6 / gre / ipv6 inner: src_ip | dst_ip

28 617015-006
Intel® Ethernet Controller E810
DDP Technology Guide

Table 8. Patterns and Input Sets for iavf RSS [continued]


DDP

Pattern Input Set GTP


OS
Comms Wireless over
Default
GRE

eth / ipv6 / gre / ipv6 / udp inner: src_ip | dst_ip | src_port | dst_port

eth / ipv6 / gre / ipv6 / tcp inner: src_ip | dst_ip | src_port | dst_port

4.5.4 DPDK
Create a rule for the RSS type GTPU and hash l3 src and dst keywords:
testpmd>flow create 0 ingress pattern eth / ipv4 / udp / gtpu / gtp_psc / ipv4 / udp
/ end actions rss types ipv4 end key_len 0 queues end / end

617015-006 29
Intel® Ethernet Controller E810
DDP Technology Guide

5.0 Intel® Ethernet 800 Series Features


In Table 9 and Table 10, feature support is denoted as follows:
• 1 = PF Mode
• 2 = VF Mode
• 3 = DCF Mode
• N = No (not supported).
• Y = Yes (supported).
• P = Partial support.
• Red text indicates a change in the level of support from one DPDK version to the next.

Table 9. Basic Features


DPDK Version

Feature 19.11 20.05 20.08 20.11 21.02 21.05 21.08 21.11

1 2 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3

Speed Capabilities Y Y Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N

Link Status Y Y Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N

Link Status Event Y N Y N N Y N N Y N N Y N N Y N N Y N N Y N N

Rx Interrupt Y Y Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N

Fast mbuf Free Y N P N N P N N P N N P N N P N N P N N P N N

Queue Start/Stop Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y

Burst Mode Info Y N Y N N Y N N Y N N Y N N Y N N Y N N Y N N

MTU Update Y Y Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N

Jumbo Frame Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y

Scattered Rx Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y

TSO Y Y Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N

Promiscuous Mode Y Y Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N

Allmulticast Mode Y Y Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N

Static RSS Hash Y N Y N N Y N N Y N N Y N N Y N N Y N N Y N N

Unicast MAC Filter Y Y Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N

RSS Hash Y Y Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N

RSS Key Update Y Y Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N

RSS reta Update Y Y Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N

VLAN Filter Y Y Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N

CRC Offload Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y

VLAN Offload Y Y Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N

QinQ Offload Y N P N N P N N P N N P Y N P Y N P Y N P Y N

L3 Checksum Offload Y Y P P P P P P P P P P P P P P P P P P P P P

L4 Checksum Offload Y Y P P P P P P P P P P P P P P P P P P P P P

Inner L3 Checksum N N P N N P N N P N N P N N P N N P N N P N N

Inner L4 Checksum N N P N N P N N P N N P N N P N N P N N P N N

30 617015-006
Intel® Ethernet Controller E810
DDP Technology Guide

Table 9. Basic Features [continued]


DPDK Version

Feature 19.11 20.05 20.08 20.11 21.02 21.05 21.08 21.11

1 2 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3

Packet Type Parsing Y Y Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N

Timesync N N N N N N N N N N N N N N N N N N N N Y N N

Timestamp Offload N N N N N N N N N N N N N N N N N N N N Y N N

Rx Descriptor Status Y Y Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N

Tx Descriptor Status Y Y Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N

Basic Stats Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y

Extended Stats Y N Y N N Y N N Y N N Y N N Y N N Y N N Y N N

Firmware Version Y N Y N N Y N N Y N N Y N N Y N N Y N N Y N N

Module EEPROM Dump Y N Y N N Y N N Y N N Y N N Y N N Y N N Y N N

Multi-Process Aware N Y Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N

BSD nic_uio Y Y Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N

Linux UIO Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y

Linux VFIO Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y

x86-32 Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y

x86-64 Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y

DPDK iavf support in


N N N N N N N N N N N N N N N N N N N N N Y N
Windows

Table 10. Advanced Features


DPDK Version

Feature 19.11 20.05 20.08 20.11 21.02 21.05 21.08 21.11

1 2 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3

RTE-FLOW API Y N Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y

Raw Packet RSS N N N N N N N N N N N N N N N N N N N N Y N N

Raw Packet FDIR N N N N N N N N N N N N N N N N N N N N Y N N

Flow Priority Y N Y N N Y N N Y N N Y N N Y N Y Y N Y Y N Y

VxLAN/GRE Y N Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y

GTPU (EH) Y N Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N

PPPOE Y N Y N Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N Y

PFCP N N N Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y

ESP/AH N N N Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y

L2TPv3 N N N Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y

MPLS N N N N N Y N N Y Y N Y Y N Y Y N Y Y N Y Y N

eCPRI N N N N N N N N N N N N Y N N Y N N Y N N Y N

QinQ Filter N N N N N N N N N N N Y N Y Y N Y Y N Y Y N Y

GTPU (5 Tuple Hash) N N N N N Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N

GTPU (w/o EH) N N N N N Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N

617015-006 31
Intel® Ethernet Controller E810
DDP Technology Guide

Table 10. Advanced Features [continued]


DPDK Version

Feature 19.11 20.05 20.08 20.11 21.02 21.05 21.08 21.11

1 2 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3

GTPU TEID Filter N N N Y N N Y N N Y N N Y N N Y N N Y N N Y N

Symmetric Hash N N N N N Y Y N Y Y N Y Y N Y Y N Y Y N Y Y N

Separate Configure for


N N N N N N N N Y Y N Y Y N Y Y N Y Y N Y Y N
Outer IPv4/IPv6 GTPU

IPv6 Prefix Hash N N N N N Y N N Y Y N Y Y N Y Y N Y Y N Y Y N

Flexible Protocol
Y N Y N N Y N N Y Y N Y Y N Y Y N Y Y N Y Y N
Extraction to mbuf

GRE inner filter N N N N N N N N N N N N N N N N N N Y N N Y N

GTP over GRE inner


N N N N N N N N N N N N N N N N N N Y N N Y N
Filter

L3/L4 Checksum RSS N N N N N N N N N N N N N N N N N N N N Y Y N

PPPoL2TPv2oUDP
N N N N N N N N N N N N N N N N N N N N Y N N
inner RSS

ETS Based HQoS N N N N N N N N N N N N N N N N N N Y Y N Y Y

1PPS N N N N N N N N N N N N N N N N N N N N Y N N

AVX 512 Basic N N N N N N N N Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y

AVX 512 Offload N N N N N N N N N N N N N N Y Y Y Y Y Y Y Y Y

Time sync API (Scalar


Path only) and
N N N N N N N N N N N N N N N N N N N N Y N N
“DEV_RX_OFFLOAD_T
IMESTAMP”

DCF Reset API N N N N N N N N N N N N N N N N N N N N Y N N

Queue Numbers 64 16 64 16 N 64 16 16 64 256 16 64 256 16 64 256 16 64 256 16 64 256 16

32 617015-006
Intel® Ethernet Controller E810
DDP Technology Guide

6.0 DPDK Compatibility


Table 11 lists the driver, firmware, and package versions recommended for use with the supported
DPDK version.

Table 11. DPDK Recommended Matching List


DDP
ice iavf DDP
Software NVM DDP OS Wireless
DPDK Kernel Kernel Firmware Comms
Release Version Package Edge
Driver Driver Package
Package

20.05 25.2 1.0.4 4.0.1 2.00 1.4.1.13 1.3.13.0 1.3.17.0 N/A

25.3 2.10 / 2.12 1.5.1.5/


20.08 1.1.4 4.0.1 1.3.16.0 1.3.20.0 N/A
25.4 2.15 / 2.14 1.5.1.9

20.08 / 20.111 25.5 1.21 4.0.1 2.20 / 2.22 1.5.2.8 1.3.18.0 1.3.22.0 N/A

25.6 1.3.2 4.0.2 2.30 / 2.32 1.5.3.7 1.3.20.0 1.3.24.0 N/A


20.111 / 21.02
26.1 1.4.11 4.1.1 2.40 / 2.42 1.5.4.5 1.3.24.0 1.3.28.0 1.3.4.0

21.021 / 21.05 26.3 1.5.8 4.1.1 2.50 / 2.52 1.5.5.6 1.3.26.0 1.3.30.0 1.3.6.0
1
21.05 / 21.08 /
26.4 1.6.4 / 1.6.7 4.2.7 3.00 / 3.02 1.6.0.6 1.3.26.0 1.3.30.0 1.3.6.0
21.111

21.11 26.8 1.7.16 4.3.19 3.10 / 3.12 1.6.1.9 1.3.27.0 1.3.31.0 1.3.7.0

21.111 / 22.03 27.1 1.8.3 4.4.2 3.20 / 3.22 1.6.2.9 1.3.28.0 1.3.35.0 1.3.8.0

1. Compatibility testing (basic use case testing including VF).

617015-006 33
LEGAL

No license (express or implied, by estoppel or otherwise) to any intellectual property rights is granted by this document.
This document (and any related software) is Intel copyrighted material, and your use is governed by the express license under which
it is provided to you. Unless the license provides otherwise, you may not use, modify, copy, publish, distribute, disclose or transmit
this document (and related materials) without Intel's prior written permission. This document (and related materials) is provided as
is, with no express or implied warranties, other than those that are expressly stated in the license.
Intel disclaims all express and implied warranties, including without limitation, the implied warranties of merchantability, fitness for a
particular purpose, and non-infringement, as well as any warranty arising from course of performance, course of dealing, or usage in
trade.
This document contains information on products, services and/or processes in development. All information provided here is subject
to change without notice. Contact your Intel representative to obtain the latest forecast, schedule, specifications and roadmaps.
The products and services described may contain defects or errors which may cause deviations from published specifications.
Copies of documents that are referenced in this document can be obtained by visiting www.intel.com/design/literature.htm.
Intel and the Intel logo are trademarks of Intel Corporation in the U.S. and/or other countries.
Other names and brands may be claimed as the property of others.
© 2020-2022 Intel Corporation.

34 617015-006

You might also like