E810 DDP TechGuide - Rev2.5
E810 DDP TechGuide - Rev2.5
E810 DDP TechGuide - Rev2.5
March 2022
Revision 2.5
617015-006
Intel® Ethernet Controller E810
DDP Technology Guide
Revision History
2 617015-006
Intel® Ethernet Controller E810
DDP Technology Guide
Contents
617015-006 3
Intel® Ethernet Controller E810
DDP Technology Guide
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.
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.
6 617015-006
Intel® Ethernet Controller E810
DDP Technology Guide
Custom DDP package loading DPDK or i40e driver using ethtool DPDK or 800 Series driver on startup
617015-006 7
Intel® Ethernet Controller E810
DDP Technology Guide
Figure 3. Intel® Ethernet 800 Series with Programmable Pipeline via DDP Profiles
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.
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
617015-006 9
Intel® Ethernet Controller E810
DDP Technology Guide
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
10 617015-006
Intel® Ethernet Controller E810
DDP Technology Guide
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
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
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
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
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
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
617015-006 15
Intel® Ethernet Controller E810
DDP Technology Guide
1 4 Tuple src-ip, 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
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.
Configurable Input Set Configured per port Configured globally Configured per port
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
Where:
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:
Where:
617015-006 17
Intel® Ethernet Controller E810
DDP Technology Guide
To delete a filter:
# ethtool -U <ethX> delete <N>
Where:
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]
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
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
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
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
eth ethertype
617015-006 19
Intel® Ethernet Controller E810
DDP Technology Guide
Table 7. Patterns and Input Sets for iavf Intel® Ethernet Flow Director [continued]
DDP
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
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 | 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 | 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 | 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 / 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 | 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 | 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
617015-006 21
Intel® Ethernet Controller E810
DDP Technology Guide
Table 7. Patterns and Input Sets for iavf Intel® Ethernet Flow Director [continued]
DDP
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 | 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 | 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 | 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 | 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 | 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 | 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
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:
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>
24 617015-006
Intel® Ethernet Controller E810
DDP Technology Guide
617015-006 25
Intel® Ethernet Controller E810
DDP Technology Guide
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 | 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
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 | 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 | 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 | 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 | 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
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 | 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 | 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 | 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 / 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 / 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 / udp inner: src_ip | dst_ip | src_port | dst_port
eth / ipv6 / gre / ipv4 / tcp inner: src_ip | dst_ip | src_port | dst_port
28 617015-006
Intel® Ethernet Controller E810
DDP Technology Guide
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
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
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
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
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
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
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
1 2 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
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
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
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
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
617015-006 31
Intel® Ethernet Controller E810
DDP Technology Guide
1 2 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3
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
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
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
1PPS N N N N N N N N N N N N N N N N N N N N Y N N
32 617015-006
Intel® Ethernet Controller E810
DDP Technology Guide
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
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
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