From: Jie Liu <[email protected]>

Implement dev_supported_ptypes_get ethdev callback for sxe2 PMD.
This allows applications to query the packet types the driver
is capable of identifying, such as L2, L3 (IPv4/IPv6), and
L4 (TCP/UDP/SCTP) layers.

Signed-off-by: Jie Liu <[email protected]>
---
 drivers/common/sxe2/sxe2_ptype.h | 1793 ++++++++++++++++++++++++++++++
 drivers/net/sxe2/meson.build     |    1 +
 drivers/net/sxe2/sxe2_cmd_chnl.c |   22 +
 drivers/net/sxe2/sxe2_cmd_chnl.h |    2 +
 drivers/net/sxe2/sxe2_drv_cmd.h  |    6 +
 drivers/net/sxe2/sxe2_ethdev.c   |  169 ++-
 drivers/net/sxe2/sxe2_ethdev.h   |   19 +-
 drivers/net/sxe2/sxe2_mac.c      |  103 ++
 drivers/net/sxe2/sxe2_mac.h      |   50 +
 9 files changed, 2126 insertions(+), 39 deletions(-)
 create mode 100644 drivers/common/sxe2/sxe2_ptype.h
 create mode 100644 drivers/net/sxe2/sxe2_mac.c
 create mode 100644 drivers/net/sxe2/sxe2_mac.h

diff --git a/drivers/common/sxe2/sxe2_ptype.h b/drivers/common/sxe2/sxe2_ptype.h
new file mode 100644
index 0000000000..9c19570979
--- /dev/null
+++ b/drivers/common/sxe2/sxe2_ptype.h
@@ -0,0 +1,1793 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright (C), 2025, Wuxi Stars Micro System Technologies Co., Ltd.
+ */
+
+#ifndef _SXE2_PTYPE_H_
+#define _SXE2_PTYPE_H_
+#include <rte_ethdev.h>
+
+static inline const uint32_t *
+sxe2_dev_supported_ptypes_get(struct rte_eth_dev *dev, size_t *no_of_elements)
+{
+       const uint32_t *ret = NULL;
+
+       static const uint32_t ptypes[] = {
+               RTE_PTYPE_L2_ETHER,
+               RTE_PTYPE_L2_ETHER_TIMESYNC,
+               RTE_PTYPE_L2_ETHER_LLDP,
+               RTE_PTYPE_L2_ETHER_ARP,
+               RTE_PTYPE_L3_IPV4_EXT_UNKNOWN,
+               RTE_PTYPE_L3_IPV6_EXT_UNKNOWN,
+               RTE_PTYPE_L4_FRAG,
+               RTE_PTYPE_L4_ICMP,
+               RTE_PTYPE_L4_NONFRAG,
+               RTE_PTYPE_L4_SCTP,
+               RTE_PTYPE_L4_TCP,
+               RTE_PTYPE_L4_UDP,
+               RTE_PTYPE_TUNNEL_GRENAT,
+               RTE_PTYPE_TUNNEL_IP,
+               RTE_PTYPE_INNER_L2_ETHER,
+               RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN,
+               RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN,
+               RTE_PTYPE_INNER_L4_FRAG,
+               RTE_PTYPE_INNER_L4_ICMP,
+               RTE_PTYPE_INNER_L4_NONFRAG,
+               RTE_PTYPE_INNER_L4_SCTP,
+               RTE_PTYPE_INNER_L4_TCP,
+               RTE_PTYPE_INNER_L4_UDP,
+               RTE_PTYPE_UNKNOWN
+       };
+
+       if (dev->rx_pkt_burst != NULL) {
+               *no_of_elements = RTE_DIM(ptypes);
+               ret = ptypes;
+       } else {
+               ret = NULL;
+       }
+
+       return ret;
+}
+
+static inline void sxe2_init_ptype_list(uint32_t *ptype)
+{
+       /* ptype[0] reserved */
+       ptype[1] = RTE_PTYPE_L2_ETHER;
+       ptype[2] = RTE_PTYPE_L2_ETHER_TIMESYNC;
+       /* ptype[3] - ptype[5] reserved */
+       ptype[6] = RTE_PTYPE_L2_ETHER_LLDP;
+       /* ECP */
+       ptype[7] = RTE_PTYPE_UNKNOWN;
+       /* ptype[8] - ptype[9] reserved */
+       /* EAPol */
+       ptype[10] = RTE_PTYPE_UNKNOWN;
+       ptype[11] = RTE_PTYPE_L2_ETHER_ARP;
+       /* ptype[12] - ptype[21] reserved */
+
+       /* Non tunneled IPv4 */
+       ptype[22] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                               RTE_PTYPE_L4_FRAG;
+       ptype[23] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                               RTE_PTYPE_L4_NONFRAG;
+       ptype[24] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                               RTE_PTYPE_L4_UDP;
+       /* ptype[25] reserved */
+       ptype[26] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                               RTE_PTYPE_L4_TCP;
+       ptype[27] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                               RTE_PTYPE_L4_SCTP;
+       ptype[28] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                               RTE_PTYPE_L4_ICMP;
+
+       /* IPv4 --> IPv4 */
+       ptype[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;
+       ptype[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;
+       ptype[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;
+       /* ptype[32] reserved */
+       ptype[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;
+       ptype[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;
+       ptype[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 */
+       ptype[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;
+       ptype[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;
+       ptype[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;
+       /* ptype[39] reserved */
+       ptype[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;
+       ptype[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;
+       ptype[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/GENEVE/VXLAN */
+       ptype[43] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                               RTE_PTYPE_TUNNEL_GRENAT;
+
+       /* IPv4 --> GRE/GENEVE/VXLAN --> IPv4 */
+       ptype[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;
+       ptype[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;
+       ptype[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;
+       /* ptype[47] reserved */
+       ptype[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;
+       ptype[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;
+       ptype[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/GENEVE/VXLAN --> IPv6 */
+       ptype[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;
+       ptype[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;
+       ptype[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;
+       /* ptype[54] reserved */
+       ptype[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;
+       ptype[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;
+       ptype[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/GENEVE/VXLAN --> MAC */
+       ptype[58] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                               RTE_PTYPE_TUNNEL_GRENAT | 
RTE_PTYPE_INNER_L2_ETHER;
+
+       /* IPv4 --> GRE/GENEVE/VXLAN --> MAC --> IPv4 */
+       ptype[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;
+       ptype[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;
+       ptype[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;
+       /* ptype[62] reserved */
+       ptype[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;
+       ptype[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;
+       ptype[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/GENEVE/VXLAN --> MAC --> IPv6 */
+       ptype[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;
+       ptype[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;
+       ptype[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;
+       /* ptype[69] reserved */
+       ptype[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;
+       ptype[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;
+       ptype[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/GENEVE/VXLAN --> MAC/VLAN */
+       ptype[73] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                               RTE_PTYPE_TUNNEL_GRENAT | 
RTE_PTYPE_INNER_L2_ETHER_VLAN;
+       /* IPv4 --> GRE/GENEVE/VXLAN --> MAC/VLAN --> IPv4 */
+       ptype[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;
+       ptype[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;
+       ptype[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;
+       /* ptype[77] reserved */
+       ptype[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;
+       ptype[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;
+       ptype[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/GENEVE/VXLAN --> MAC/VLAN --> IPv6 */
+       ptype[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;
+       ptype[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_IPV4_EXT_UNKNOWN |
+                               RTE_PTYPE_INNER_L4_NONFRAG;
+       ptype[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;
+       /* ptype[64] reserved */
+       ptype[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;
+       ptype[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;
+       ptype[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 */
+       ptype[88] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                               RTE_PTYPE_L4_FRAG;
+       ptype[89] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                               RTE_PTYPE_L4_NONFRAG;
+       ptype[90] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                               RTE_PTYPE_L4_UDP;
+       /* ptype[91] reserved */
+       ptype[92] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                               RTE_PTYPE_L4_TCP;
+       ptype[93] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                               RTE_PTYPE_L4_SCTP;
+       ptype[94] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                               RTE_PTYPE_L4_ICMP;
+
+       /* IPv6 --> IPv4 */
+       ptype[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;
+       ptype[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;
+       ptype[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;
+       /* ptype[98] reserved */
+       ptype[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;
+       ptype[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;
+       ptype[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 */
+       ptype[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;
+       ptype[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;
+       ptype[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;
+       /* ptype[105] reserved */
+       ptype[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;
+       ptype[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;
+       ptype[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/GENEVE/VXLAN */
+       ptype[109] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_TUNNEL_GRENAT;
+
+       /* IPv6 --> GRE/GENEVE/VXLAN --> IPv4 */
+       ptype[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;
+       ptype[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;
+       ptype[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;
+       /* ptype[113] reserved */
+       ptype[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;
+       ptype[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;
+       ptype[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/GENEVE/VXLAN --> IPv6 */
+       ptype[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;
+       ptype[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;
+       ptype[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;
+       /* ptype[120] reserved */
+       ptype[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;
+       ptype[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;
+       ptype[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/GENEVE/VXLAN --> MAC */
+       ptype[124] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_TUNNEL_GRENAT | 
RTE_PTYPE_INNER_L2_ETHER;
+
+       /* IPv6 --> GRE/GENEVE/VXLAN --> MAC --> IPv4 */
+       ptype[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;
+       ptype[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;
+       ptype[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;
+       /* ptype[128] reserved */
+       ptype[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;
+       ptype[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;
+       ptype[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/GENEVE/VXLAN --> MAC --> IPv6 */
+       ptype[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;
+       ptype[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;
+       ptype[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;
+       /* ptype[135] reserved */
+       ptype[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;
+       ptype[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;
+       ptype[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/GENEVE/VXLAN --> MAC/VLAN */
+       ptype[139] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_TUNNEL_GRENAT | 
RTE_PTYPE_INNER_L2_ETHER_VLAN;
+
+       /* IPv6 --> GRE/GENEVE/VXLAN --> MAC/VLAN --> IPv4 */
+       ptype[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;
+       ptype[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;
+       ptype[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;
+       /* ptype[143] reserved */
+       ptype[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;
+       ptype[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;
+       ptype[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/GENEVE/VXLAN --> MAC/VLAN --> IPv6 */
+       ptype[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;
+       ptype[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_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_INNER_L4_NONFRAG;
+       ptype[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;
+       /* ptype[150] reserved */
+       ptype[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;
+       ptype[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;
+       ptype[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;
+       /* ptype[154] - ptype[159] reserved */
+       /* IPSec */
+       ptype[160] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_TUNNEL_ESP;
+       ptype[161] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_TUNNEL_ESP;
+       /* AH */
+       ptype[162] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       ptype[163] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       /* NAT-T-ESP */
+       ptype[164] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_ESP;
+       ptype[165] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_ESP;
+       /* SDN-ESP */
+       ptype[166] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_ESP;
+       ptype[167] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_ESP;
+       /* ptype[168] - ptype[271] reserved */
+       /* IPV4 --> VRRP */
+       ptype[272] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       /* IPV4 --> OSPF */
+       ptype[273] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       /* IPV6 --> VRRP */
+       ptype[274] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       /* IPV6 --> VRRP */
+       ptype[275] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       /* ATAoE */
+       ptype[276] = RTE_PTYPE_UNKNOWN;
+       /* Control */
+       ptype[278] = RTE_PTYPE_UNKNOWN;
+       /* ptype[279] - ptype[324] reserved */
+       /* GTP */
+       ptype[325] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPC;
+       ptype[326] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPC;
+       ptype[327] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPC;
+       ptype[328] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPC;
+       ptype[329] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU;
+       ptype[330] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU;
+       ptype[331] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
+               RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_INNER_L4_FRAG;
+       ptype[332] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
+               RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_INNER_L4_NONFRAG;
+       ptype[333] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
+               RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_INNER_L4_UDP;
+       ptype[334] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
+               RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_INNER_L4_TCP;
+       ptype[335] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
+               RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_INNER_L4_ICMP;
+       ptype[336] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
+               RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_INNER_L4_FRAG;
+       ptype[337] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
+               RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_INNER_L4_NONFRAG;
+       ptype[338] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
+               RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_INNER_L4_UDP;
+       ptype[339] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
+               RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_INNER_L4_TCP;
+       ptype[340] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
+               RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_INNER_L4_ICMP;
+       ptype[341] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
+               RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
+               RTE_PTYPE_INNER_L4_FRAG;
+       ptype[342] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
+               RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
+               RTE_PTYPE_INNER_L4_NONFRAG;
+       ptype[343] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
+               RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
+               RTE_PTYPE_INNER_L4_UDP;
+       ptype[344] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
+               RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
+               RTE_PTYPE_INNER_L4_TCP;
+       ptype[345] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
+               RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
+               RTE_PTYPE_INNER_L4_ICMP;
+       ptype[346] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
+               RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
+               RTE_PTYPE_INNER_L4_FRAG;
+       ptype[347] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
+               RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
+               RTE_PTYPE_INNER_L4_NONFRAG;
+       ptype[348] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
+               RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
+               RTE_PTYPE_INNER_L4_UDP;
+       ptype[349] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
+               RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
+               RTE_PTYPE_INNER_L4_TCP;
+       ptype[350] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_GTPU |
+               RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |
+               RTE_PTYPE_INNER_L4_ICMP;
+       /* PFCP */
+       ptype[351] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP;
+       ptype[352] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP;
+       ptype[353] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP;
+       ptype[354] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP;
+       /* ptype[355] - ptype[359] reserved */
+       /* L2TPv3 */
+       ptype[360] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_TUNNEL_L2TP;
+       ptype[361] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_TUNNEL_L2TP;
+       /* ptype[362] - ptype[370] reserved */
+       /* eCPRI */
+       ptype[371] = RTE_PTYPE_UNKNOWN;
+       ptype[381] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP;
+       ptype[391] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP;
+       ptype[396] = 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;
+       /* MAC, IPv6, UDP, TUN, MAC, IPv4, IGMP */
+       ptype[397] = 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;
+       /* MAC, IPv4, UDP, TUN, MAC, IPv4, EIGRP */
+       ptype[398] = 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;
+       /* MAC, IPv6, UDP, TUN, MAC, IPv4, EIGRP */
+       ptype[399] = 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;
+       /* MAC, IPv4, UDP, TUN, MAC, IPv4, PIM */
+       ptype[400] = 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;
+       /* MAC, IPv6, UDP, TUN, MAC, IPv4, PIM */
+       ptype[401] = 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;
+       /* MAC, IPv4, UDP, TUN, MAC, IPv6, IGMP */
+       ptype[402] = 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;
+       /* MAC, IPv6, UDP, TUN, MAC, IPv6, IGMP */
+       ptype[403] = 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;
+       /* MAC, IPv4, UDP, TUN, MAC, IPv6, EIGRP */
+       ptype[404] = 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;
+       /* MAC, IPv6, UDP, TUN, MAC, IPv6, EIGRP */
+       ptype[405] = 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;
+       /* MAC, IPv4, UDP, TUN, MAC, IPv6, PIM */
+       ptype[406] = 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;
+       /* MAC, IPv6, UDP, TUN, MAC, IPv6, PIM */
+       ptype[407] = 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;
+       /* MAC, IPv4, UDP, TUN, MAC, IPv4, VRRP */
+       ptype[408] = 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;
+       /* MAC, IPv6, UDP, TUN, MAC, IPv4, VRRP */
+       ptype[409] = 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;
+       /* MAC, IPv4, UDP, TUN, MAC, IPv6, VRRP */
+       ptype[410] = 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;
+       /* MAC, IPv6, UDP, TUN, MAC, IPv6, VRRP */
+       ptype[411] = 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;
+       /* MAC, IPv4, UDP, TUN, MAC, IPv4, OSPF */
+       ptype[412] = 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;
+       /* MAC, IPv6, UDP, TUN, MAC, IPv4, OSPF */
+       ptype[413] = 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;
+       /* MAC, IPv4, UDP, TUN, MAC, IPv6, OSPF */
+       ptype[414] = 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;
+       /* MAC, IPv6, UDP, TUN, MAC, IPv6, OSPF */
+       ptype[415] = 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;
+       /* MAC, IPv4, UDP, TUN, MAC, IPv4, L2_TP_V3 */
+       ptype[416] = 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;
+       /* MAC, IPv6, UDP, TUN, MAC, IPv4, L2_TP_V3 */
+       ptype[417] = 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;
+       /* MAC, IPv4, UDP, TUN, MAC, IPv6, L2_TP_V3 */
+       ptype[418] = 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;
+       /* MAC, IPv6, UDP, TUN, MAC, IPv6, L2_TP_V3 */
+       ptype[419] = 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;
+       /* MAC, IPv4, UDP, TUN, MAC, IPv4, AH */
+       ptype[420] = 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;
+       /* MAC, IPv6, UDP, TUN, MAC, IPv4, AH */
+       ptype[421] = 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;
+       /* MAC, IPv4, UDP, TUN, MAC, IPv6, AH */
+       ptype[422] = 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;
+       /* MAC, IPv6, UDP, TUN, MAC, IPv6, AH */
+       ptype[423] = 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;
+       /* MAC, IPv4, UDP, TUN, MAC, IPv4, ESP */
+       ptype[424] = 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;
+       /* MAC, IPv6, UDP, TUN, MAC, IPv4, ESP */
+       ptype[425] = 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;
+       /* MAC, IPv4, UDP, TUN, MAC, IPv6, ESP */
+       ptype[426] = 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;
+       /* MAC, IPv6, UDP, TUN, MAC, IPv6, ESP */
+       ptype[427] = 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;
+       /* TP-TUN GTPU */
+       ptype[450] = 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;
+       ptype[451] = 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;
+       ptype[452] = 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;
+       ptype[453] = 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;
+       ptype[454] = 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;
+       ptype[455] = 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;
+       ptype[456] = 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;
+       ptype[457] = 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;
+       ptype[458] = 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;
+       ptype[459] = 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;
+       ptype[460] = 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;
+       ptype[461] = 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;
+       ptype[462] = 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;
+       ptype[463] = 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;
+       ptype[464] = 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;
+       ptype[465] = 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;
+       ptype[466] = 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;
+       ptype[467] = 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;
+       ptype[468] = 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;
+       ptype[469] = 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;
+       ptype[470] = 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;
+       ptype[471] = 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;
+       ptype[472] = 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;
+       ptype[473] = 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;
+       ptype[474] = 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;
+       ptype[475] = 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;
+       ptype[476] = 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;
+       ptype[477] = 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;
+       ptype[478] = 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;
+       ptype[479] = 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;
+       ptype[480] = 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;
+       ptype[481] = 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;
+       ptype[482] = 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;
+       ptype[483] = 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;
+       ptype[484] = 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;
+       ptype[485] = 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;
+       ptype[486] = 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;
+       ptype[487] = 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;
+       ptype[488] = 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;
+       ptype[489] = 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;
+       ptype[490] = 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;
+       ptype[491] = 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;
+       ptype[492] = 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;
+       ptype[493] = 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;
+       ptype[494] = 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;
+       ptype[495] = 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;
+       ptype[496] = 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;
+       ptype[497] = 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;
+       /* ptype[498] - ptype[767] reserved */
+       /* L2(NETWORK CPU) */
+       /* ISIS */
+       ptype[768] = RTE_PTYPE_UNKNOWN;
+       /* SDF */
+       ptype[769] = RTE_PTYPE_UNKNOWN;
+       /* PPoE_NEGO */
+       ptype[770] = RTE_PTYPE_L2_ETHER_PPPOE;
+       /* PPoE_PROTOCOL */
+       ptype[771] = RTE_PTYPE_L2_ETHER_PPPOE;
+       ptype[772] = RTE_PTYPE_L2_ETHER_PPPOE;
+       /* LACP */
+       ptype[773] = RTE_PTYPE_UNKNOWN;
+       /* ptype[774] - ptype[775] reserved */
+       /* IPv4 L3(NETWORK CPU) */
+       ptype[776] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_IGMP;
+       /* EIGRP */
+       ptype[777] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       /* PIM */
+       ptype[778] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       ptype[779] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_L2TP;
+       ptype[780] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_L2TP;
+       ptype[781] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_L2TP;
+       /* ptype[782] - ptype[783] reserved */
+       /* IPv6 L3(NETWORK CPU) */
+       ptype[784] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_IGMP;
+       /* EIGRP */
+       ptype[785] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       /* PIM */
+       ptype[786] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       ptype[787] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_L2TP;
+       ptype[788] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_L2TP;
+       ptype[789] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP | RTE_PTYPE_TUNNEL_L2TP;
+       /* ptype[790] - ptype[791] reserved */
+       /* IPv4 L4(NETWORK CPU) */
+       ptype[792] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_TCP;
+       ptype[793] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_TCP;
+       ptype[794] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP;
+       ptype[795] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP;
+       ptype[796] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP;
+       ptype[797] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP;
+       ptype[798] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP;
+       ptype[799] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP;
+       ptype[800] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP;
+       ptype[801] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP;
+       /* ptype[802] - ptype[807] reserved */
+       /* IPv6 L4(NETWORK CPU) */
+       ptype[808] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_TCP;
+       ptype[809] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_TCP;
+       ptype[810] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP;
+       ptype[811] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP;
+       ptype[812] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+               RTE_PTYPE_L4_UDP;
+       ptype[813] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP;
+       ptype[814] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP;
+       ptype[815] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP;
+       ptype[816] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP;
+       ptype[817] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_UDP;
+       /* ptype[818] - ptype[819] reserved */
+       /* IPv6 -> MAC */
+       ptype[820] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       /* IPv6 -> MAC -> IPv4*/
+       ptype[821] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       ptype[822] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       ptype[823] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       ptype[824] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       ptype[825] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       ptype[826] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       /* IPv6 -> MAC -> IPv4*/
+       ptype[827] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       ptype[828] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       ptype[829] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       ptype[830] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       ptype[831] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       ptype[832] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       /* ptype[833] - ptype[834] reserved */
+       /* IPv6 -> MAC/VLAN */
+       ptype[835] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       /* IPv6 -> MAC/VLAN -> IPv4 */
+       ptype[836] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       ptype[837] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       ptype[838] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       ptype[839] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       ptype[840] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       ptype[841] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       /* IPv6 -> MAC/VLAN -> IPv6 */
+       ptype[842] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       ptype[843] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       ptype[844] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       ptype[845] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       ptype[846] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+       ptype[847] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_L4_NONFRAG;
+
+       /* IPv6 -> UDP -> VXLAN/GENEVE -> PAY */
+       ptype[878] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_TUNNEL_GRENAT;
+
+       /* IPv6 -> UDP -> VXLAN/GENEVE -> IPv4 */
+       ptype[877] = 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;
+       ptype[876] = 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;
+       ptype[879] = 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;
+       ptype[880] = 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;
+       ptype[875] = 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;
+       ptype[874] = 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 -> UDP -> VXLAN/GENEVE -> IPv6 */
+       ptype[871] = 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;
+       ptype[870] = 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;
+       ptype[872] = 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;
+       ptype[873] = 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;
+       ptype[869] = 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;
+       ptype[868] = 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;
+
+       /* IPv4 -> UDP -> VXLAN/GENEVE -> PAY */
+       ptype[891] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                               RTE_PTYPE_TUNNEL_GRENAT;
+       /* IPv4 -> UDP -> VXLAN/GENEVE -> IPv4 */
+       ptype[890] = 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;
+       ptype[889] = 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;
+       ptype[892] = 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;
+       ptype[893] = 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;
+       ptype[888] = 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;
+       ptype[887] = 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 -> UDP -> VXLAN/GENEVE -> IPv6 */
+       ptype[884] = 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;
+       ptype[883] = 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;
+       ptype[885] = 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;
+       ptype[886] = 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;
+       ptype[882] = 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;
+       ptype[881] = 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;
+
+       /* IPv6 -> UDP -> GRE -> PAY */
+       ptype[904] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_TUNNEL_GRENAT;
+       /* IPv6 -> UDP -> GRE -> IPv4 */
+       ptype[903] = 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;
+       ptype[902] = 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;
+       ptype[905] = 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;
+       ptype[906] = 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;
+       ptype[901] = 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;
+       ptype[900] = 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 -> UDP -> GRE -> IPv6 */
+       ptype[897] = 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;
+       ptype[896] = 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;
+       ptype[898] = 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;
+       ptype[899] = 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;
+       ptype[895] = 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;
+       ptype[894] = 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;
+
+       /* IPv4 -> UDP -> GRE -> PAY */
+       ptype[917] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_TUNNEL_GRENAT;
+       /* IPv4 -> UDP -> GRE -> IPv4 */
+       ptype[916] = 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;
+       ptype[915] = 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;
+       ptype[918] = 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;
+       ptype[919] = 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;
+       ptype[914] = 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;
+       ptype[913] = 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 -> UDP -> GRE -> IPv6 */
+       ptype[910] = 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;
+       ptype[909] = 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;
+       ptype[911] = 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;
+       ptype[912] = 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;
+       ptype[908] = 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;
+       ptype[907] = 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;
+
+       /* IPv6 -> UDP -> VXLAN/GENEVE -> MACVLAN -> PAY */
+       ptype[930] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_TUNNEL_GRENAT | 
RTE_PTYPE_INNER_L2_ETHER_VLAN;
+
+       /* IPv6 -> UDP -> VXLAN/GENEVE -> MACVLAN -> IPv4 */
+       ptype[929] = 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;
+       ptype[928] = 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;
+       ptype[931] = 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;
+       ptype[932] = 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;
+       ptype[927] = 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;
+       ptype[926] = 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 -> UDP -> VXLAN/GENEVE -> MACVLAN -> IPv6 */
+       ptype[923] = 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;
+       ptype[922] = 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;
+       ptype[924] = 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;
+       ptype[925] = 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;
+       ptype[921] = 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;
+       ptype[920] = 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;
+
+       /* IPv4 -> UDP -> VXLAN/GENEVE -> MACVLAN -> PAY */
+       ptype[943] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                               RTE_PTYPE_TUNNEL_GRENAT | 
RTE_PTYPE_INNER_L2_ETHER_VLAN;
+       /* IPv4 -> UDP -> VXLAN/GENEVE -> MACVLAN -> IPv4 */
+       ptype[942] = 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;
+       ptype[941] = 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;
+       ptype[944] = 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;
+       ptype[945] = 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;
+       ptype[940] = 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;
+       ptype[939] = 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 -> UDP -> VXLAN/GENEVE -> MACVLAN -> IPv6 */
+       ptype[936] = 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;
+       ptype[935] = 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;
+       ptype[937] = 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;
+       ptype[938] = 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;
+       ptype[934] = 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;
+       ptype[933] = 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;
+
+       /* IPv6 > UDP -> GRE -> MACVLAN -> PAY */
+       ptype[956] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_TUNNEL_GRENAT | 
RTE_PTYPE_INNER_L2_ETHER_VLAN;
+       /* IPv6 -> UDP -> GRE -> MACVLAN -> IPv4 */
+       ptype[955] = 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;
+       ptype[954] = 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;
+       ptype[957] = 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;
+       ptype[958] = 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;
+       ptype[953] = 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;
+       ptype[952] = 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 -> UDP -> GRE -> MACVLAN -> IPv6 */
+       ptype[949] = 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;
+       ptype[948] = 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;
+       ptype[950] = 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;
+       ptype[951] = 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;
+       ptype[947] = 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;
+       ptype[946] = 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;
+
+       /* IPv4 -> UDP -> GRE -> MACVLAN -> PAY */
+       ptype[969] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_TUNNEL_GRENAT | 
RTE_PTYPE_INNER_L2_ETHER_VLAN;
+       /* IPv4 -> UDP -> GRE -> MACVLAN -> IPv4 */
+       ptype[968] = 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;
+       ptype[967] = 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;
+       ptype[970] = 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;
+       ptype[971] = 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;
+       ptype[966] = 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;
+       ptype[965] = 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 -> UDP -> GRE -> MACVLAN -> IPv6 */
+       ptype[962] = 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;
+       ptype[961] = 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;
+       ptype[963] = 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;
+       ptype[964] = 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;
+       ptype[960] = 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;
+       ptype[959] = 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;
+
+       /* IPv6 -> UDP -> VXLAN/GENEVE -> MAC -> PAY */
+       ptype[982] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_TUNNEL_GRENAT | 
RTE_PTYPE_INNER_L2_ETHER;
+
+       /* IPv6 -> UDP -> VXLAN/GENEVE -> MAC -> IPv4 */
+       ptype[981] = 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;
+       ptype[980] = 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;
+       ptype[983] = 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;
+       ptype[984] = 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;
+       ptype[979] = 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;
+       ptype[978] = 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 -> UDP -> VXLAN/GENEVE -> MAC -> IPv6 */
+       ptype[975] = 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;
+       ptype[974] = 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;
+       ptype[976] = 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;
+       ptype[977] = 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;
+       ptype[973] = 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;
+       ptype[972] = 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;
+
+       /* IPv4 -> UDP -> VXLAN/GENEVE -> MAC -> PAY */
+       ptype[995] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                               RTE_PTYPE_TUNNEL_GRENAT | 
RTE_PTYPE_INNER_L2_ETHER;
+       /* IPv4 -> UDP -> VXLAN/GENEVE -> MAC -> IPv4 */
+       ptype[994] = 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;
+       ptype[993] = 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;
+       ptype[996] = 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;
+       ptype[997] = 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;
+       ptype[992] = 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;
+       ptype[991] = 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 -> UDP -> VXLAN/GENEVE -> MAC -> IPv6 */
+       ptype[988] = 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;
+       ptype[987] = 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;
+       ptype[989] = 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;
+       ptype[990] = 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;
+       ptype[986] = 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;
+       ptype[985] = 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;
+
+       /* IPv6 > UDP -> GRE -> MAC -> PAY */
+       ptype[1008] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |
+                                RTE_PTYPE_TUNNEL_GRENAT | 
RTE_PTYPE_INNER_L2_ETHER;
+       /* IPv6 -> UDP -> GRE -> MAC -> IPv4 */
+       ptype[1007] = 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;
+       ptype[1006] = 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;
+       ptype[1009] = 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;
+       ptype[1010] = 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;
+       ptype[1005] = 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;
+       ptype[1004] = 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 -> UDP -> GRE -> MAC -> IPv6 */
+       ptype[1001] = 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;
+       ptype[1000] = 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;
+       ptype[1002] = 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;
+       ptype[1003] = 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;
+       ptype[999] = 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;
+       ptype[998] = 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;
+
+       /* IPv4 -> UDP -> GRE -> MAC -> PAY */
+       ptype[1021] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |
+                                RTE_PTYPE_TUNNEL_GRENAT | 
RTE_PTYPE_INNER_L2_ETHER;
+       /* IPv4 -> UDP -> GRE -> MAC -> IPv4 */
+       ptype[1020] = 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;
+       ptype[1019] = 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;
+       ptype[1022] = 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;
+       ptype[1023] = 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;
+       ptype[1018] = 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;
+       ptype[1017] = 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 -> UDP -> GRE -> MAC -> IPv6 */
+       ptype[1014] = 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;
+       ptype[1013] = 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;
+       ptype[1015] = 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;
+       ptype[1016] = 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;
+       ptype[1012] = 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;
+       ptype[1011] = 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;
+}
+
+#endif /* _RTE_PTYPE_TUNNEL_GRENAT_H_ */
diff --git a/drivers/net/sxe2/meson.build b/drivers/net/sxe2/meson.build
index 98dd8bcec7..e22204e850 100644
--- a/drivers/net/sxe2/meson.build
+++ b/drivers/net/sxe2/meson.build
@@ -60,6 +60,7 @@ sources += files(
         'sxe2_txrx_poll.c',
         'sxe2_txrx.c',
         'sxe2_txrx_vec.c',
+        'sxe2_mac.c',
 )
 
 allow_internal_get_api = true
diff --git a/drivers/net/sxe2/sxe2_cmd_chnl.c b/drivers/net/sxe2/sxe2_cmd_chnl.c
index d16b6528d0..07eeb7f38c 100644
--- a/drivers/net/sxe2/sxe2_cmd_chnl.c
+++ b/drivers/net/sxe2/sxe2_cmd_chnl.c
@@ -321,3 +321,25 @@ int32_t sxe2_drv_txq_switch(struct sxe2_adapter *adapter, 
struct sxe2_tx_queue *
 
        return ret;
 }
+
+int32_t sxe2_drv_mac_link_status_get(struct sxe2_adapter *adapter)
+{
+       int32_t ret = 0;
+       struct sxe2_common_device *cdev = adapter->cdev;
+       struct sxe2_drv_cmd_params param = {0};
+       struct sxe2_drv_link_info_resp resp = {0};
+
+       sxe2_drv_cmd_params_fill(adapter, &param, SXE2_DRV_CMD_LINK_STATUS_GET,
+                                NULL, 0,
+                                &resp, sizeof(resp));
+       ret = sxe2_drv_cmd_exec(cdev, &param);
+       if (ret) {
+               PMD_DEV_LOG_ERR(adapter, DRV, "link status get failed, ret=%d", 
ret);
+               goto l_end;
+       }
+       adapter->link_ctxt.speed = resp.speed;
+       adapter->link_ctxt.link_up = resp.status;
+
+l_end:
+       return ret;
+}
diff --git a/drivers/net/sxe2/sxe2_cmd_chnl.h b/drivers/net/sxe2/sxe2_cmd_chnl.h
index cd41cd9e8d..34004d37e2 100644
--- a/drivers/net/sxe2/sxe2_cmd_chnl.h
+++ b/drivers/net/sxe2/sxe2_cmd_chnl.h
@@ -34,4 +34,6 @@ int32_t sxe2_drv_txq_ctxt_cfg(struct sxe2_adapter *adapter,
                              struct sxe2_tx_queue *txq,
                              uint16_t txq_cnt);
 
+int32_t sxe2_drv_mac_link_status_get(struct sxe2_adapter *adapter);
+
 #endif /* __SXE2_CMD_CHNL_H__ */
diff --git a/drivers/net/sxe2/sxe2_drv_cmd.h b/drivers/net/sxe2/sxe2_drv_cmd.h
index a16087c6bf..e0ec70638e 100644
--- a/drivers/net/sxe2/sxe2_drv_cmd.h
+++ b/drivers/net/sxe2/sxe2_drv_cmd.h
@@ -227,6 +227,12 @@ struct sxe2_drv_vsi_info_get_resp {
        struct sxe2_drv_msix_caps used_msix;
 };
 
+struct sxe2_drv_link_info_resp {
+       __le32 speed;
+       uint8_t status;
+       uint8_t rsv[3];
+};
+
 enum sxe2_drv_cmd_module {
        SXE2_DRV_CMD_MODULE_HANDSHAKE = 0,
        SXE2_DRV_CMD_MODULE_DEV = 1,
diff --git a/drivers/net/sxe2/sxe2_ethdev.c b/drivers/net/sxe2/sxe2_ethdev.c
index e0f7002138..01552a8202 100644
--- a/drivers/net/sxe2/sxe2_ethdev.c
+++ b/drivers/net/sxe2/sxe2_ethdev.c
@@ -27,7 +27,9 @@
 #include "sxe2_tx.h"
 #include "sxe2_rx.h"
 #include "sxe2_txrx.h"
+#include "sxe2_mac.h"
 #include "sxe2_common.h"
+#include "sxe2_ptype.h"
 #include "sxe2_common_log.h"
 #include "sxe2_host_regs.h"
 #include "sxe2_ioctl_chnl_func.h"
@@ -78,6 +80,41 @@ static struct sxe2_pci_map_addr_info 
sxe2_net_map_addr_info_pf[SXE2_PCI_MAP_RES_
                                      .reg_width = 10},
 };
 
+static int32_t sxe2_dev_configure(struct rte_eth_dev *dev);
+static int32_t sxe2_dev_start(struct rte_eth_dev *dev);
+static int32_t sxe2_dev_stop(struct rte_eth_dev *dev);
+static int32_t sxe2_dev_close(struct rte_eth_dev *dev);
+static int32_t sxe2_dev_infos_get(struct rte_eth_dev *dev, struct 
rte_eth_dev_info *dev_info);
+static const uint32_t *sxe2_buffer_split_supported_hdr_ptypes_get(struct 
rte_eth_dev *dev
+                               __rte_unused, size_t *no_of_elements 
__rte_unused);
+
+static const struct eth_dev_ops sxe2_eth_dev_ops = {
+       .dev_configure              = sxe2_dev_configure,
+       .dev_start                  = sxe2_dev_start,
+       .dev_stop                   = sxe2_dev_stop,
+       .dev_close                  = sxe2_dev_close,
+       .dev_infos_get              = sxe2_dev_infos_get,
+       .dev_supported_ptypes_get   = sxe2_dev_supported_ptypes_get,
+       .link_update                = sxe2_link_update,
+
+       .rx_queue_start             = sxe2_rx_queue_start,
+       .rx_queue_stop              = sxe2_rx_queue_stop,
+       .tx_queue_start             = sxe2_tx_queue_start,
+       .tx_queue_stop              = sxe2_tx_queue_stop,
+       .rx_queue_setup             = sxe2_rx_queue_setup,
+       .rx_queue_release           = sxe2_rx_queue_release,
+       .tx_queue_setup             = sxe2_tx_queue_setup,
+       .tx_queue_release           = sxe2_tx_queue_release,
+       .rxq_info_get               = sxe2_rx_queue_info_get,
+       .txq_info_get               = sxe2_tx_queue_info_get,
+       .rx_burst_mode_get          = sxe2_rx_burst_mode_get,
+       .tx_burst_mode_get          = sxe2_tx_burst_mode_get,
+       .tx_done_cleanup            = sxe2_tx_done_cleanup,
+
+       .mtu_set                    = sxe2_mtu_set,
+       .buffer_split_supported_hdr_ptypes_get = 
sxe2_buffer_split_supported_hdr_ptypes_get,
+};
+
 static int32_t sxe2_dev_configure(struct rte_eth_dev *dev)
 {
        int32_t ret = 0;
@@ -122,6 +159,12 @@ static int32_t sxe2_dev_start(struct rte_eth_dev *dev)
        sxe2_rx_mode_func_set(dev);
        sxe2_tx_mode_func_set(dev);
 
+       ret = sxe2_link_update_init(dev);
+       if (ret) {
+               PMD_LOG_ERR(INIT, "Failed to initialize link update, ret:%d", 
ret);
+               goto l_end;
+       }
+
        ret = sxe2_queues_start(dev);
        if (ret) {
                PMD_LOG_ERR(INIT, "enable queues failed");
@@ -136,16 +179,6 @@ static int32_t sxe2_dev_start(struct rte_eth_dev *dev)
        return ret;
 }
 
-static int32_t sxe2_dev_close(struct rte_eth_dev *dev)
-{
-       (void)sxe2_dev_stop(dev);
-       (void)sxe2_queues_release(dev);
-       sxe2_vsi_uninit(dev);
-       sxe2_dev_pci_map_uinit(dev);
-
-       return 0;
-}
-
 static int32_t sxe2_dev_infos_get(struct rte_eth_dev *dev,
                        struct rte_eth_dev_info *dev_info)
 {
@@ -270,28 +303,59 @@ static int32_t sxe2_dev_infos_get(struct rte_eth_dev *dev,
        return 0;
 }
 
-static const struct eth_dev_ops sxe2_eth_dev_ops = {
-       .dev_configure              = sxe2_dev_configure,
-       .dev_start                  = sxe2_dev_start,
-       .dev_stop                   = sxe2_dev_stop,
-       .dev_close                  = sxe2_dev_close,
-       .dev_infos_get              = sxe2_dev_infos_get,
+static const uint32_t *
+sxe2_buffer_split_supported_hdr_ptypes_get(struct rte_eth_dev *dev 
__rte_unused,
+                                          size_t *no_of_elements __rte_unused)
+{
+       static const uint32_t ptypes[] = {
+               RTE_PTYPE_L2_ETHER,
+               RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN,
+               RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | 
RTE_PTYPE_L4_UDP,
+               RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | 
RTE_PTYPE_L4_TCP,
+               RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | 
RTE_PTYPE_L4_SCTP,
+               RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN,
+               RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | 
RTE_PTYPE_L4_UDP,
+               RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | 
RTE_PTYPE_L4_TCP,
+               RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | 
RTE_PTYPE_L4_SCTP,
+
+               RTE_PTYPE_TUNNEL_GRENAT,
+
+               RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER,
+
+               RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
+                       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN,
+               RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
+                       RTE_PTYPE_INNER_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,
+               RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
+                       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | 
RTE_PTYPE_INNER_L4_TCP,
+               RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
+                       RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | 
RTE_PTYPE_INNER_L4_SCTP,
+
+               RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
+                       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | 
RTE_PTYPE_INNER_L4_UDP,
+               RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
+                       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | 
RTE_PTYPE_INNER_L4_TCP,
+               RTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |
+                       RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | 
RTE_PTYPE_INNER_L4_SCTP,
+
+               RTE_PTYPE_UNKNOWN
+       };
 
-       .rx_queue_start             = sxe2_rx_queue_start,
-       .rx_queue_stop              = sxe2_rx_queue_stop,
-       .tx_queue_start             = sxe2_tx_queue_start,
-       .tx_queue_stop              = sxe2_tx_queue_stop,
-       .rx_queue_setup             = sxe2_rx_queue_setup,
-       .rx_queue_release           = sxe2_rx_queue_release,
-       .tx_queue_setup             = sxe2_tx_queue_setup,
-       .tx_queue_release           = sxe2_tx_queue_release,
+       return ptypes;
+}
 
-       .rxq_info_get               = sxe2_rx_queue_info_get,
-       .txq_info_get               = sxe2_tx_queue_info_get,
-       .rx_burst_mode_get          = sxe2_rx_burst_mode_get,
-       .tx_burst_mode_get          = sxe2_tx_burst_mode_get,
-       .tx_done_cleanup            = sxe2_tx_done_cleanup,
-};
+static inline void sxe2_init_ptype_tbl(struct rte_eth_dev *dev)
+{
+       struct sxe2_adapter *adapter = SXE2_DEV_PRIVATE_TO_ADAPTER(dev);
+       uint32_t *ptype = adapter->ptype_tbl;
+
+       PMD_INIT_FUNC_TRACE();
+
+       sxe2_init_ptype_list(ptype);
+}
 
 struct sxe2_pci_map_bar_info *sxe2_dev_get_bar_info(struct sxe2_adapter 
*adapter,
                                                    enum sxe2_pci_map_resource 
res_type)
@@ -360,6 +424,29 @@ void *sxe2_pci_map_addr_get(struct sxe2_adapter *adapter,
        return addr;
 }
 
+static int32_t sxe2_eth_init(struct rte_eth_dev *dev)
+{
+       int32_t ret = 0;
+
+       ret = sxe2_link_update_init(dev);
+       if (ret) {
+               PMD_LOG_ERR(INIT, "Failed to initialize link update, ret:%d", 
ret);
+               goto l_end;
+       }
+
+       ret = sxe2_mtu_set(dev, dev->data->mtu);
+       if (ret) {
+               PMD_LOG_ERR(INIT, "Failed to set mtu, ret=%d", ret);
+               goto l_end;
+       }
+l_end:
+       return ret;
+}
+
+static void sxe2_eth_uinit(struct rte_eth_dev *dev __rte_unused)
+{
+}
+
 static void sxe2_drv_dev_caps_set(struct sxe2_adapter *adapter,
                        struct sxe2_drv_dev_caps_resp *dev_caps)
 {
@@ -765,6 +852,8 @@ static int32_t sxe2_dev_init(struct rte_eth_dev *dev,
                goto l_end;
        }
 
+       sxe2_init_ptype_tbl(dev);
+
        ret = sxe2_hw_init(dev);
        if (ret) {
                PMD_LOG_ERR(INIT, "Failed to initialize hw, ret=[%d]", ret);
@@ -789,18 +878,38 @@ static int32_t sxe2_dev_init(struct rte_eth_dev *dev,
                goto init_dev_info_err;
        }
 
+       ret = sxe2_eth_init(dev);
+       if (ret) {
+               PMD_LOG_ERR(INIT, "Failed to initialize eth parameters, 
ret=%d", ret);
+               goto init_eth_err;
+       }
+
        goto l_end;
 
+init_eth_err:
 init_dev_info_err:
        sxe2_vsi_uninit(dev);
 init_vsi_err:
+       sxe2_dev_pci_map_uinit(dev);
 l_end:
        return ret;
 }
 
+static int32_t sxe2_dev_close(struct rte_eth_dev *dev)
+{
+       (void)sxe2_dev_stop(dev);
+       (void)sxe2_queues_release(dev);
+       sxe2_vsi_uninit(dev);
+       sxe2_dev_pci_map_uinit(dev);
+       sxe2_eth_uinit(dev);
+
+       return 0;
+}
+
 static int32_t sxe2_dev_uninit(struct rte_eth_dev *dev)
 {
        int32_t ret = 0;
+
        if (rte_eal_process_type() != RTE_PROC_PRIMARY)
                goto l_end;
 
diff --git a/drivers/net/sxe2/sxe2_ethdev.h b/drivers/net/sxe2/sxe2_ethdev.h
index 001413e75a..66f49ac0cc 100644
--- a/drivers/net/sxe2/sxe2_ethdev.h
+++ b/drivers/net/sxe2/sxe2_ethdev.h
@@ -118,12 +118,6 @@ enum {
        SXE2_FLAGS_NBITS
 };
 
-struct sxe2_link_context {
-       rte_spinlock_t link_lock;
-       bool link_up;
-       uint32_t  speed;
-};
-
 struct sxe2_devargs {
        uint8_t flow_dup_pattern_mode;
        uint8_t func_flow_direct_en;
@@ -265,6 +259,12 @@ struct sxe2_sched_hw_cap {
        uint8_t adj_lvl;
 };
 
+struct sxe2_link_context {
+       rte_spinlock_t link_lock;
+       bool link_up;
+       uint32_t  speed;
+};
+
 struct sxe2_adapter {
        struct sxe2_common_device      *cdev;
        struct sxe2_dev_info            dev_info;
@@ -274,9 +274,10 @@ struct sxe2_adapter {
        struct sxe2_irq_context       irq_ctxt;
        struct sxe2_queue_context     q_ctxt;
        struct sxe2_vsi_context       vsi_ctxt;
-       struct sxe2_devargs                       devargs;
-       uint16_t                           dev_port_id;
-       uint64_t                           cap_flags;
+       struct sxe2_link_context      link_ctxt;
+       struct sxe2_devargs           devargs;
+       uint16_t                      dev_port_id;
+       uint64_t                      cap_flags;
        enum sxe2_dev_type            dev_type;
        uint32_t    ptype_tbl[SXE2_MAX_PTYPE_NUM];
        struct rte_ether_addr           mac_addr;
diff --git a/drivers/net/sxe2/sxe2_mac.c b/drivers/net/sxe2/sxe2_mac.c
new file mode 100644
index 0000000000..3c2f909002
--- /dev/null
+++ b/drivers/net/sxe2/sxe2_mac.c
@@ -0,0 +1,103 @@
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright (C), 2025, Wuxi Stars Micro System Technologies Co., Ltd.
+ */
+
+#include <rte_os.h>
+#include "sxe2_osal.h"
+#include "sxe2_mac.h"
+#include "sxe2_common_log.h"
+#include "sxe2_ethdev.h"
+#include "sxe2_cmd_chnl.h"
+#include "sxe2_host_regs.h"
+
+int32_t sxe2_link_update_init(struct rte_eth_dev *dev)
+{
+       struct sxe2_adapter *adapter = SXE2_DEV_PRIVATE_TO_ADAPTER(dev);
+       int32_t ret;
+
+       PMD_INIT_FUNC_TRACE();
+
+       rte_spinlock_init(&adapter->link_ctxt.link_lock);
+
+       ret = sxe2_drv_mac_link_status_get(adapter);
+       if (ret) {
+               PMD_DEV_LOG_ERR(adapter, DRV, "Failed to get link status, 
ret=%d", ret);
+               goto l_end;
+       }
+
+       (void)sxe2_link_update(dev, 0);
+
+l_end:
+       return ret;
+}
+int32_t sxe2_link_update(struct rte_eth_dev *dev, __rte_unused int32_t 
wait_to_complete)
+{
+       struct rte_eth_link new_link;
+       struct sxe2_adapter *adapter = SXE2_DEV_PRIVATE_TO_ADAPTER(dev);
+
+       memset(&new_link, 0, sizeof(new_link));
+
+       switch (adapter->link_ctxt.speed) {
+       case 0:
+               new_link.link_speed = RTE_ETH_SPEED_NUM_NONE;
+               break;
+       case 10:
+               new_link.link_speed = RTE_ETH_SPEED_NUM_10M;
+               break;
+       case 100:
+               new_link.link_speed = RTE_ETH_SPEED_NUM_100M;
+               break;
+       case 1000:
+               new_link.link_speed = RTE_ETH_SPEED_NUM_1G;
+               break;
+       case 10000:
+               new_link.link_speed = RTE_ETH_SPEED_NUM_10G;
+               break;
+       case 20000:
+               new_link.link_speed = RTE_ETH_SPEED_NUM_20G;
+               break;
+       case 25000:
+               new_link.link_speed = RTE_ETH_SPEED_NUM_25G;
+               break;
+       case 40000:
+               new_link.link_speed = RTE_ETH_SPEED_NUM_40G;
+               break;
+       case 50000:
+               new_link.link_speed = RTE_ETH_SPEED_NUM_50G;
+               break;
+       case 100000:
+               new_link.link_speed = RTE_ETH_SPEED_NUM_100G;
+               break;
+       default:
+               new_link.link_speed = RTE_ETH_SPEED_NUM_NONE;
+               break;
+       }
+
+       new_link.link_duplex = RTE_ETH_LINK_FULL_DUPLEX;
+       new_link.link_status = adapter->link_ctxt.link_up ? RTE_ETH_LINK_UP :
+                                            RTE_ETH_LINK_DOWN;
+       new_link.link_autoneg = !(dev->data->dev_conf.link_speeds &
+                               RTE_ETH_LINK_SPEED_FIXED);
+
+       return rte_eth_linkstatus_set(dev, &new_link);
+}
+
+int32_t sxe2_mtu_set(struct rte_eth_dev *dev, uint16_t mtu __rte_unused)
+{
+       int32_t ret                      = -1;
+       struct sxe2_adapter *adapter = SXE2_DEV_PRIVATE_TO_ADAPTER(dev);
+
+       PMD_INIT_FUNC_TRACE();
+
+       if (dev->data->dev_started != 0) {
+               PMD_DEV_LOG_ERR(adapter, DRV, "port %d must be stopped before 
configuration",
+                               dev->data->port_id);
+               ret = -1;
+               goto l_end;
+       }
+
+       ret = 0;
+
+l_end:
+       return ret;
+}
diff --git a/drivers/net/sxe2/sxe2_mac.h b/drivers/net/sxe2/sxe2_mac.h
new file mode 100644
index 0000000000..28dc05e125
--- /dev/null
+++ b/drivers/net/sxe2/sxe2_mac.h
@@ -0,0 +1,50 @@
+
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright (C), 2025, Wuxi Stars Micro System Technologies Co., Ltd.
+ */
+
+#ifndef __SXE2_MAC_H__
+#define __SXE2_MAC_H__
+#include <ethdev_driver.h>
+#include "sxe2_host_regs.h"
+
+#define SXE2_NUM_MACADDR_MAX   64
+
+#define SXE2_DPDK_OFFLOAD_OUTER_INSERT_8021Q 
SXE2_VSI_L2TAGSTXVALID_ID_OUT_VLAN1
+#define SXE2_DPDK_OFFLOAD_OUTER_INSERT_8021AD SXE2_VSI_L2TAGSTXVALID_ID_STAG
+#define SXE2_DPDK_OFFLOAD_OUTER_INSERT_QINQ1 
SXE2_VSI_L2TAGSTXVALID_ID_OUT_VLAN2
+#define SXE2_DPDK_OFFLOAD_OUTER_INSERT_VLAN  SXE2_VSI_L2TAGSTXVALID_ID_VLAN
+
+#define SXE2_DPDK_OFFLOAD_OUTER_INSERT_ENABLE 
SXE2_VSI_L2TAGSTXVALID_L2TAG1_VALID
+
+#define SXE2_DPDK_OFFLOAD_OUTER_STRIP_8021Q SXE2_VSI_TSR_ID_OUT_VLAN1
+#define SXE2_DPDK_OFFLOAD_OUTER_STRIP_8021AD SXE2_VSI_TSR_ID_STAG
+#define SXE2_DPDK_OFFLOAD_OUTER_STRIP_QINQ1 SXE2_VSI_TSR_ID_OUT_VLAN2
+
+#define SXE2_DPDK_OFFLOAD_INNER_INSERT_QINQ1  SXE2_VSI_L2TAGSTXVALID_ID_VLAN
+#define SXE2_DPDK_OFFLOAD_INNER_INSERT_ENABLE 
SXE2_VSI_L2TAGSTXVALID_L2TAG2_VALID
+
+#define SXE2_DPDK_OFFLOAD_INNER_STRIP_QINQ1 SXE2_VSI_TSR_ID_VLAN
+
+#define SXE2_DPDK_OFFLOAD_FIELD                (0X0F)
+#define SXE2_DPDK_OFFLOAD_TAGID_FIELD          (0X07)
+
+#define SXE2_DPDK_OFFLOAD_OUTER_STRIP_MASK 
(SXE2_DPDK_OFFLOAD_OUTER_STRIP_8021Q | \
+                                       SXE2_DPDK_OFFLOAD_OUTER_STRIP_8021AD | \
+                                       SXE2_DPDK_OFFLOAD_OUTER_STRIP_QINQ1)
+#define SXE2_DPDK_OFFLOAD_STRIP_OFFSET SXE2_VSI_TSR_SHOW_TAG_S
+
+#define SXE2_DPDK_OFFLOAD_INSERT_ENABLE (BIT(3))
+
+struct sxe2_mac_mc_list {
+       uint32_t count;
+       struct rte_ether_addr addr[SXE2_NUM_MACADDR_MAX];
+};
+
+int32_t sxe2_link_update_init(struct rte_eth_dev *dev);
+
+int32_t sxe2_link_update(struct rte_eth_dev *dev, __rte_unused int32_t 
wait_to_complete);
+
+int32_t sxe2_mtu_set(struct rte_eth_dev *dev, uint16_t mtu);
+
+#endif /* __SXE2_MAC_H__ */
-- 
2.47.3

Reply via email to