From f7c379403a98cf060d28bac24916c51067c4ec90 Mon Sep 17 00:00:00 2001 From: Damjan Marion Date: Tue, 28 Feb 2017 23:26:30 +0100 Subject: dpdk: retire support for dpdk 16.07 Change-Id: I8585552c026415340fe9fd0458cb8450da3c4ae2 Signed-off-by: Damjan Marion --- ...Add-packet_type-metadata-in-the-i40e-vPMD.patch | 1210 -------------------- 1 file changed, 1210 deletions(-) delete mode 100644 dpdk/dpdk-16.07_patches/0001-i40e-Add-packet_type-metadata-in-the-i40e-vPMD.patch (limited to 'dpdk/dpdk-16.07_patches/0001-i40e-Add-packet_type-metadata-in-the-i40e-vPMD.patch') diff --git a/dpdk/dpdk-16.07_patches/0001-i40e-Add-packet_type-metadata-in-the-i40e-vPMD.patch b/dpdk/dpdk-16.07_patches/0001-i40e-Add-packet_type-metadata-in-the-i40e-vPMD.patch deleted file mode 100644 index 74d9416e7b6..00000000000 --- a/dpdk/dpdk-16.07_patches/0001-i40e-Add-packet_type-metadata-in-the-i40e-vPMD.patch +++ /dev/null @@ -1,1210 +0,0 @@ -From 79a2ddaf4d7df7172faa54716ae7647ad7a549b9 Mon Sep 17 00:00:00 2001 -From: Damjan Marion -Date: Thu, 14 Jul 2016 09:59:01 -0700 -Subject: [PATCH 1/2] i40e: Add packet_type metadata in the i40e vPMD - -The ptype is decoded from the rx descriptor and stored -in the packet type field in the mbuf using the same function -as the non-vector driver. - -Signed-off-by: Damjan Marion -Signed-off-by: Jeff Shaw ---- - drivers/net/i40e/i40e_rxtx.c | 566 +-------------------------------------- - drivers/net/i40e/i40e_rxtx.h | 563 ++++++++++++++++++++++++++++++++++++++ - drivers/net/i40e/i40e_rxtx_vec.c | 16 ++ - 3 files changed, 581 insertions(+), 564 deletions(-) - -diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c -index d3cfb98..2903347 100644 ---- a/drivers/net/i40e/i40e_rxtx.c -+++ b/drivers/net/i40e/i40e_rxtx.c -@@ -174,569 +174,6 @@ i40e_get_iee15888_flags(struct rte_mbuf *mb, uint64_t qword) - } - #endif - --/* For each value it means, datasheet of hardware can tell more details -- * -- * @note: fix i40e_dev_supported_ptypes_get() if any change here. -- */ --static inline uint32_t --i40e_rxd_pkt_type_mapping(uint8_t ptype) --{ -- static const uint32_t type_table[UINT8_MAX + 1] __rte_cache_aligned = { -- /* L2 types */ -- /* [0] reserved */ -- [1] = RTE_PTYPE_L2_ETHER, -- [2] = RTE_PTYPE_L2_ETHER_TIMESYNC, -- /* [3] - [5] reserved */ -- [6] = RTE_PTYPE_L2_ETHER_LLDP, -- /* [7] - [10] reserved */ -- [11] = RTE_PTYPE_L2_ETHER_ARP, -- /* [12] - [21] reserved */ -- -- /* Non tunneled IPv4 */ -- [22] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_L4_FRAG, -- [23] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_L4_NONFRAG, -- [24] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_L4_UDP, -- /* [25] reserved */ -- [26] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_L4_TCP, -- [27] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_L4_SCTP, -- [28] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_L4_ICMP, -- -- /* IPv4 --> IPv4 */ -- [29] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_IP | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_FRAG, -- [30] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_IP | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_NONFRAG, -- [31] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_IP | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_UDP, -- /* [32] reserved */ -- [33] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_IP | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_TCP, -- [34] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_IP | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_SCTP, -- [35] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_IP | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_ICMP, -- -- /* IPv4 --> IPv6 */ -- [36] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_IP | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_FRAG, -- [37] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_IP | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_NONFRAG, -- [38] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_IP | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_UDP, -- /* [39] reserved */ -- [40] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_IP | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_TCP, -- [41] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_IP | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_SCTP, -- [42] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_IP | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_ICMP, -- -- /* IPv4 --> GRE/Teredo/VXLAN */ -- [43] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT, -- -- /* IPv4 --> GRE/Teredo/VXLAN --> IPv4 */ -- [44] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_FRAG, -- [45] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_NONFRAG, -- [46] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_UDP, -- /* [47] reserved */ -- [48] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_TCP, -- [49] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_SCTP, -- [50] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_ICMP, -- -- /* IPv4 --> GRE/Teredo/VXLAN --> IPv6 */ -- [51] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_FRAG, -- [52] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_NONFRAG, -- [53] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_UDP, -- /* [54] reserved */ -- [55] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_TCP, -- [56] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_SCTP, -- [57] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_ICMP, -- -- /* IPv4 --> GRE/Teredo/VXLAN --> MAC */ -- [58] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER, -- -- /* IPv4 --> GRE/Teredo/VXLAN --> MAC --> IPv4 */ -- [59] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_FRAG, -- [60] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_NONFRAG, -- [61] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_UDP, -- /* [62] reserved */ -- [63] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_TCP, -- [64] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_SCTP, -- [65] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_ICMP, -- -- /* IPv4 --> GRE/Teredo/VXLAN --> MAC --> IPv6 */ -- [66] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_FRAG, -- [67] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_NONFRAG, -- [68] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_UDP, -- /* [69] reserved */ -- [70] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_TCP, -- [71] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_SCTP, -- [72] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_ICMP, -- -- /* IPv4 --> GRE/Teredo/VXLAN --> MAC/VLAN */ -- [73] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN, -- -- /* IPv4 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv4 */ -- [74] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_FRAG, -- [75] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_NONFRAG, -- [76] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_UDP, -- /* [77] reserved */ -- [78] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_TCP, -- [79] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_SCTP, -- [80] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_ICMP, -- -- /* IPv4 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv6 */ -- [81] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_FRAG, -- [82] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_NONFRAG, -- [83] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_UDP, -- /* [84] reserved */ -- [85] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_TCP, -- [86] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_SCTP, -- [87] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_ICMP, -- -- /* Non tunneled IPv6 */ -- [88] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_L4_FRAG, -- [89] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_L4_NONFRAG, -- [90] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_L4_UDP, -- /* [91] reserved */ -- [92] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_L4_TCP, -- [93] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_L4_SCTP, -- [94] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_L4_ICMP, -- -- /* IPv6 --> IPv4 */ -- [95] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_IP | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_FRAG, -- [96] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_IP | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_NONFRAG, -- [97] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_IP | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_UDP, -- /* [98] reserved */ -- [99] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_IP | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_TCP, -- [100] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_IP | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_SCTP, -- [101] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_IP | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_ICMP, -- -- /* IPv6 --> IPv6 */ -- [102] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_IP | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_FRAG, -- [103] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_IP | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_NONFRAG, -- [104] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_IP | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_UDP, -- /* [105] reserved */ -- [106] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_IP | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_TCP, -- [107] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_IP | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_SCTP, -- [108] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_IP | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_ICMP, -- -- /* IPv6 --> GRE/Teredo/VXLAN */ -- [109] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT, -- -- /* IPv6 --> GRE/Teredo/VXLAN --> IPv4 */ -- [110] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_FRAG, -- [111] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_NONFRAG, -- [112] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_UDP, -- /* [113] reserved */ -- [114] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_TCP, -- [115] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_SCTP, -- [116] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_ICMP, -- -- /* IPv6 --> GRE/Teredo/VXLAN --> IPv6 */ -- [117] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_FRAG, -- [118] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_NONFRAG, -- [119] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_UDP, -- /* [120] reserved */ -- [121] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_TCP, -- [122] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_SCTP, -- [123] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_ICMP, -- -- /* IPv6 --> GRE/Teredo/VXLAN --> MAC */ -- [124] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER, -- -- /* IPv6 --> GRE/Teredo/VXLAN --> MAC --> IPv4 */ -- [125] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_FRAG, -- [126] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_NONFRAG, -- [127] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_UDP, -- /* [128] reserved */ -- [129] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_TCP, -- [130] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_SCTP, -- [131] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_ICMP, -- -- /* IPv6 --> GRE/Teredo/VXLAN --> MAC --> IPv6 */ -- [132] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_FRAG, -- [133] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_NONFRAG, -- [134] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_UDP, -- /* [135] reserved */ -- [136] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_TCP, -- [137] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_SCTP, -- [138] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_ICMP, -- -- /* IPv6 --> GRE/Teredo/VXLAN --> MAC/VLAN */ -- [139] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN, -- -- /* IPv6 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv4 */ -- [140] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_FRAG, -- [141] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_NONFRAG, -- [142] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_UDP, -- /* [143] reserved */ -- [144] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_TCP, -- [145] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_SCTP, -- [146] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN | -- RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_ICMP, -- -- /* IPv6 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv6 */ -- [147] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_FRAG, -- [148] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_NONFRAG, -- [149] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_UDP, -- /* [150] reserved */ -- [151] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_TCP, -- [152] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_SCTP, -- [153] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_TUNNEL_GRENAT | -- RTE_PTYPE_INNER_L2_ETHER_VLAN | -- RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_INNER_L4_ICMP, -- -- /* L2 NSH packet type */ -- [154] = RTE_PTYPE_L2_ETHER_NSH, -- [155] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_L4_FRAG, -- [156] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_L4_NONFRAG, -- [157] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_L4_UDP, -- [158] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_L4_TCP, -- [159] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_L4_SCTP, -- [160] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -- RTE_PTYPE_L4_ICMP, -- [161] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_L4_FRAG, -- [162] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_L4_NONFRAG, -- [163] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_L4_UDP, -- [164] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_L4_TCP, -- [165] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_L4_SCTP, -- [166] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -- RTE_PTYPE_L4_ICMP, -- -- /* All others reserved */ -- }; -- -- return type_table[ptype]; --} -- - #define I40E_RX_DESC_EXT_STATUS_FLEXBH_MASK 0x03 - #define I40E_RX_DESC_EXT_STATUS_FLEXBH_FD_ID 0x01 - #define I40E_RX_DESC_EXT_STATUS_FLEXBH_FLEX 0x02 -@@ -2136,7 +1573,8 @@ i40e_dev_supported_ptypes_get(struct rte_eth_dev *dev) - #ifdef RTE_LIBRTE_I40E_RX_ALLOW_BULK_ALLOC - dev->rx_pkt_burst == i40e_recv_pkts_bulk_alloc || - #endif -- dev->rx_pkt_burst == i40e_recv_scattered_pkts) -+ dev->rx_pkt_burst == i40e_recv_scattered_pkts || -+ dev->rx_pkt_burst == i40e_recv_pkts_vec) - return ptypes; - return NULL; - } -diff --git a/drivers/net/i40e/i40e_rxtx.h b/drivers/net/i40e/i40e_rxtx.h -index 98179f0..ecdb13c 100644 ---- a/drivers/net/i40e/i40e_rxtx.h -+++ b/drivers/net/i40e/i40e_rxtx.h -@@ -255,4 +255,567 @@ void i40e_set_tx_function_flag(struct rte_eth_dev *dev, - struct i40e_tx_queue *txq); - void i40e_set_tx_function(struct rte_eth_dev *dev); - -+/* For each value it means, datasheet of hardware can tell more details -+ * -+ * @note: fix i40e_dev_supported_ptypes_get() if any change here. -+ */ -+static inline uint32_t -+i40e_rxd_pkt_type_mapping(uint8_t ptype) -+{ -+ static const uint32_t type_table[UINT8_MAX + 1] __rte_cache_aligned = { -+ /* L2 types */ -+ /* [0] reserved */ -+ [1] = RTE_PTYPE_L2_ETHER, -+ [2] = RTE_PTYPE_L2_ETHER_TIMESYNC, -+ /* [3] - [5] reserved */ -+ [6] = RTE_PTYPE_L2_ETHER_LLDP, -+ /* [7] - [10] reserved */ -+ [11] = RTE_PTYPE_L2_ETHER_ARP, -+ /* [12] - [21] reserved */ -+ -+ /* Non tunneled IPv4 */ -+ [22] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_L4_FRAG, -+ [23] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_L4_NONFRAG, -+ [24] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_L4_UDP, -+ /* [25] reserved */ -+ [26] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_L4_TCP, -+ [27] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_L4_SCTP, -+ [28] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_L4_ICMP, -+ -+ /* IPv4 --> IPv4 */ -+ [29] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_IP | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_FRAG, -+ [30] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_IP | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_NONFRAG, -+ [31] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_IP | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_UDP, -+ /* [32] reserved */ -+ [33] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_IP | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_TCP, -+ [34] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_IP | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_SCTP, -+ [35] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_IP | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_ICMP, -+ -+ /* IPv4 --> IPv6 */ -+ [36] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_IP | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_FRAG, -+ [37] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_IP | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_NONFRAG, -+ [38] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_IP | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_UDP, -+ /* [39] reserved */ -+ [40] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_IP | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_TCP, -+ [41] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_IP | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_SCTP, -+ [42] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_IP | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_ICMP, -+ -+ /* IPv4 --> GRE/Teredo/VXLAN */ -+ [43] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT, -+ -+ /* IPv4 --> GRE/Teredo/VXLAN --> IPv4 */ -+ [44] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_FRAG, -+ [45] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_NONFRAG, -+ [46] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_UDP, -+ /* [47] reserved */ -+ [48] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_TCP, -+ [49] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_SCTP, -+ [50] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_ICMP, -+ -+ /* IPv4 --> GRE/Teredo/VXLAN --> IPv6 */ -+ [51] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_FRAG, -+ [52] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_NONFRAG, -+ [53] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_UDP, -+ /* [54] reserved */ -+ [55] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_TCP, -+ [56] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_SCTP, -+ [57] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_ICMP, -+ -+ /* IPv4 --> GRE/Teredo/VXLAN --> MAC */ -+ [58] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER, -+ -+ /* IPv4 --> GRE/Teredo/VXLAN --> MAC --> IPv4 */ -+ [59] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_FRAG, -+ [60] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_NONFRAG, -+ [61] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_UDP, -+ /* [62] reserved */ -+ [63] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_TCP, -+ [64] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_SCTP, -+ [65] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_ICMP, -+ -+ /* IPv4 --> GRE/Teredo/VXLAN --> MAC --> IPv6 */ -+ [66] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_FRAG, -+ [67] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_NONFRAG, -+ [68] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_UDP, -+ /* [69] reserved */ -+ [70] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_TCP, -+ [71] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_SCTP, -+ [72] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_ICMP, -+ -+ /* IPv4 --> GRE/Teredo/VXLAN --> MAC/VLAN */ -+ [73] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN, -+ -+ /* IPv4 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv4 */ -+ [74] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_FRAG, -+ [75] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_NONFRAG, -+ [76] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_UDP, -+ /* [77] reserved */ -+ [78] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_TCP, -+ [79] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_SCTP, -+ [80] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_ICMP, -+ -+ /* IPv4 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv6 */ -+ [81] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_FRAG, -+ [82] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_NONFRAG, -+ [83] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_UDP, -+ /* [84] reserved */ -+ [85] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_TCP, -+ [86] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_SCTP, -+ [87] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_ICMP, -+ -+ /* Non tunneled IPv6 */ -+ [88] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_L4_FRAG, -+ [89] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_L4_NONFRAG, -+ [90] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_L4_UDP, -+ /* [91] reserved */ -+ [92] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_L4_TCP, -+ [93] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_L4_SCTP, -+ [94] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_L4_ICMP, -+ -+ /* IPv6 --> IPv4 */ -+ [95] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_IP | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_FRAG, -+ [96] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_IP | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_NONFRAG, -+ [97] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_IP | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_UDP, -+ /* [98] reserved */ -+ [99] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_IP | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_TCP, -+ [100] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_IP | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_SCTP, -+ [101] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_IP | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_ICMP, -+ -+ /* IPv6 --> IPv6 */ -+ [102] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_IP | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_FRAG, -+ [103] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_IP | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_NONFRAG, -+ [104] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_IP | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_UDP, -+ /* [105] reserved */ -+ [106] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_IP | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_TCP, -+ [107] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_IP | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_SCTP, -+ [108] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_IP | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_ICMP, -+ -+ /* IPv6 --> GRE/Teredo/VXLAN */ -+ [109] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT, -+ -+ /* IPv6 --> GRE/Teredo/VXLAN --> IPv4 */ -+ [110] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_FRAG, -+ [111] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_NONFRAG, -+ [112] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_UDP, -+ /* [113] reserved */ -+ [114] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_TCP, -+ [115] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_SCTP, -+ [116] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_ICMP, -+ -+ /* IPv6 --> GRE/Teredo/VXLAN --> IPv6 */ -+ [117] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_FRAG, -+ [118] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_NONFRAG, -+ [119] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_UDP, -+ /* [120] reserved */ -+ [121] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_TCP, -+ [122] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_SCTP, -+ [123] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_ICMP, -+ -+ /* IPv6 --> GRE/Teredo/VXLAN --> MAC */ -+ [124] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER, -+ -+ /* IPv6 --> GRE/Teredo/VXLAN --> MAC --> IPv4 */ -+ [125] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_FRAG, -+ [126] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_NONFRAG, -+ [127] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_UDP, -+ /* [128] reserved */ -+ [129] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_TCP, -+ [130] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_SCTP, -+ [131] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_ICMP, -+ -+ /* IPv6 --> GRE/Teredo/VXLAN --> MAC --> IPv6 */ -+ [132] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_FRAG, -+ [133] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_NONFRAG, -+ [134] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_UDP, -+ /* [135] reserved */ -+ [136] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_TCP, -+ [137] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_SCTP, -+ [138] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_ICMP, -+ -+ /* IPv6 --> GRE/Teredo/VXLAN --> MAC/VLAN */ -+ [139] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN, -+ -+ /* IPv6 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv4 */ -+ [140] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_FRAG, -+ [141] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_NONFRAG, -+ [142] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_UDP, -+ /* [143] reserved */ -+ [144] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_TCP, -+ [145] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_SCTP, -+ [146] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN | -+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_ICMP, -+ -+ /* IPv6 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv6 */ -+ [147] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_FRAG, -+ [148] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_NONFRAG, -+ [149] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_UDP, -+ /* [150] reserved */ -+ [151] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_TCP, -+ [152] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_SCTP, -+ [153] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_TUNNEL_GRENAT | -+ RTE_PTYPE_INNER_L2_ETHER_VLAN | -+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_INNER_L4_ICMP, -+ -+ /* L2 NSH packet type */ -+ [154] = RTE_PTYPE_L2_ETHER_NSH, -+ [155] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_L4_FRAG, -+ [156] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_L4_NONFRAG, -+ [157] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_L4_UDP, -+ [158] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_L4_TCP, -+ [159] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_L4_SCTP, -+ [160] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | -+ RTE_PTYPE_L4_ICMP, -+ [161] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_L4_FRAG, -+ [162] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_L4_NONFRAG, -+ [163] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_L4_UDP, -+ [164] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_L4_TCP, -+ [165] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_L4_SCTP, -+ [166] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | -+ RTE_PTYPE_L4_ICMP, -+ -+ /* All others reserved */ -+ }; -+ -+ return type_table[ptype]; -+} -+ - #endif /* _I40E_RXTX_H_ */ -diff --git a/drivers/net/i40e/i40e_rxtx_vec.c b/drivers/net/i40e/i40e_rxtx_vec.c -index 05cb415..e78ac63 100644 ---- a/drivers/net/i40e/i40e_rxtx_vec.c -+++ b/drivers/net/i40e/i40e_rxtx_vec.c -@@ -187,6 +187,21 @@ desc_to_olflags_v(__m128i descs[4], struct rte_mbuf **rx_pkts) - - #define PKTLEN_SHIFT 10 - -+static inline void -+desc_to_ptype_v(__m128i descs[4], struct rte_mbuf **rx_pkts) -+{ -+ __m128i ptype0 = _mm_unpackhi_epi64(descs[0], descs[1]); -+ __m128i ptype1 = _mm_unpackhi_epi64(descs[2], descs[3]); -+ -+ ptype0 = _mm_srli_epi64(ptype0, 30); -+ ptype1 = _mm_srli_epi64(ptype1, 30); -+ -+ rx_pkts[0]->packet_type = i40e_rxd_pkt_type_mapping(_mm_extract_epi8(ptype0, 0)); -+ rx_pkts[1]->packet_type = i40e_rxd_pkt_type_mapping(_mm_extract_epi8(ptype0, 8)); -+ rx_pkts[2]->packet_type = i40e_rxd_pkt_type_mapping(_mm_extract_epi8(ptype1, 0)); -+ rx_pkts[3]->packet_type = i40e_rxd_pkt_type_mapping(_mm_extract_epi8(ptype1, 8)); -+} -+ - /* - * Notice: - * - nb_pkts < RTE_I40E_DESCS_PER_LOOP, just return no packet -@@ -393,6 +408,7 @@ _recv_raw_pkts_vec(struct i40e_rx_queue *rxq, struct rte_mbuf **rx_pkts, - pkt_mb2); - _mm_storeu_si128((void *)&rx_pkts[pos]->rx_descriptor_fields1, - pkt_mb1); -+ desc_to_ptype_v(descs, &rx_pkts[pos]); - /* C.4 calc avaialbe number of desc */ - var = __builtin_popcountll(_mm_cvtsi128_si64(staterr)); - nb_pkts_recd += var; --- -2.7.4 - -- cgit 1.2.3-korg