get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/16391/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 16391,
    "url": "http://patches.dpdk.org/api/patches/16391/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1475712772-105327-1-git-send-email-jeffrey.b.shaw@intel.com/",
    "project": {
        "id": 1,
        "url": "http://patches.dpdk.org/api/projects/1/?format=api",
        "name": "DPDK",
        "link_name": "dpdk",
        "list_id": "dev.dpdk.org",
        "list_email": "dev@dpdk.org",
        "web_url": "http://core.dpdk.org",
        "scm_url": "git://dpdk.org/dpdk",
        "webscm_url": "http://git.dpdk.org/dpdk",
        "list_archive_url": "https://inbox.dpdk.org/dev",
        "list_archive_url_format": "https://inbox.dpdk.org/dev/{}",
        "commit_url_format": ""
    },
    "msgid": "<1475712772-105327-1-git-send-email-jeffrey.b.shaw@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1475712772-105327-1-git-send-email-jeffrey.b.shaw@intel.com",
    "date": "2016-10-06T00:12:51",
    "name": "[dpdk-dev,v2,1/2] i40e: Add packet_type metadata in the i40e vPMD",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "6d1b38cde8da11dfe1c018bce9dc064e146de298",
    "submitter": {
        "id": 30,
        "url": "http://patches.dpdk.org/api/people/30/?format=api",
        "name": "Jeff Shaw",
        "email": "jeffrey.b.shaw@intel.com"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1475712772-105327-1-git-send-email-jeffrey.b.shaw@intel.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/16391/comments/",
    "check": "pending",
    "checks": "http://patches.dpdk.org/api/patches/16391/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [IPv6:::1])\n\tby dpdk.org (Postfix) with ESMTP id BBA7C2A6C;\n\tWed,  5 Oct 2016 22:13:46 +0200 (CEST)",
            "from mga09.intel.com (mga09.intel.com [134.134.136.24])\n\tby dpdk.org (Postfix) with ESMTP id 6CC422A5E\n\tfor <dev@dpdk.org>; Wed,  5 Oct 2016 22:13:44 +0200 (CEST)",
            "from orsmga005.jf.intel.com ([10.7.209.41])\n\tby orsmga102.jf.intel.com with ESMTP; 05 Oct 2016 13:13:43 -0700",
            "from ar11-port28-wildcatpass.jf.intel.com ([10.166.45.164])\n\tby orsmga005.jf.intel.com with ESMTP; 05 Oct 2016 13:13:42 -0700"
        ],
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.31,302,1473145200\"; d=\"scan'208\";a=\"16661306\"",
        "From": "Jeff Shaw <jeffrey.b.shaw@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "helin.zhang@intel.com, jingjing.wu@intel.com, damarion@cisco.com,\n\tqi.z.zhang@intel.com, jing.d.chen@intel.com",
        "Date": "Wed,  5 Oct 2016 20:12:51 -0400",
        "Message-Id": "<1475712772-105327-1-git-send-email-jeffrey.b.shaw@intel.com>",
        "X-Mailer": "git-send-email 2.1.0",
        "In-Reply-To": "<1468515542-39207-2-git-send-email-jeffrey.b.shaw@intel.com>",
        "References": "<1468515542-39207-2-git-send-email-jeffrey.b.shaw@intel.com>",
        "Subject": "[dpdk-dev] [PATCH v2 1/2] i40e: Add packet_type metadata in the\n\ti40e vPMD",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "patches and discussions about DPDK <dev.dpdk.org>",
        "List-Unsubscribe": "<http://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<http://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "From: Damjan Marion <damarion@cisco.com>\n\nThe ptype is decoded from the rx descriptor and stored\nin the packet type field in the mbuf using the same function\nas the non-vector driver.\n\nSigned-off-by: Damjan Marion <damarion@cisco.com>\nSigned-off-by: Jeff Shaw <jeffrey.b.shaw@intel.com>\nAcked-by: Qi Zhang <qi.z.zhang@intel.com>\n---\n\nChanges in v2:\n - Add missing reference to i40e_recv_scattered_pkts_vec() when\n   querying supported packet types.\n\n drivers/net/i40e/i40e_rxtx.c     | 567 +--------------------------------------\n drivers/net/i40e/i40e_rxtx.h     | 563 ++++++++++++++++++++++++++++++++++++++\n drivers/net/i40e/i40e_rxtx_vec.c |  16 ++\n 3 files changed, 582 insertions(+), 564 deletions(-)",
    "diff": "diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c\nindex 554d167..7433480 100644\n--- a/drivers/net/i40e/i40e_rxtx.c\n+++ b/drivers/net/i40e/i40e_rxtx.c\n@@ -174,569 +174,6 @@ i40e_get_iee15888_flags(struct rte_mbuf *mb, uint64_t qword)\n }\n #endif\n \n-/* For each value it means, datasheet of hardware can tell more details\n- *\n- * @note: fix i40e_dev_supported_ptypes_get() if any change here.\n- */\n-static inline uint32_t\n-i40e_rxd_pkt_type_mapping(uint8_t ptype)\n-{\n-\tstatic const uint32_t type_table[UINT8_MAX + 1] __rte_cache_aligned = {\n-\t\t/* L2 types */\n-\t\t/* [0] reserved */\n-\t\t[1] = RTE_PTYPE_L2_ETHER,\n-\t\t[2] = RTE_PTYPE_L2_ETHER_TIMESYNC,\n-\t\t/* [3] - [5] reserved */\n-\t\t[6] = RTE_PTYPE_L2_ETHER_LLDP,\n-\t\t/* [7] - [10] reserved */\n-\t\t[11] = RTE_PTYPE_L2_ETHER_ARP,\n-\t\t/* [12] - [21] reserved */\n-\n-\t\t/* Non tunneled IPv4 */\n-\t\t[22] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_L4_FRAG,\n-\t\t[23] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_L4_NONFRAG,\n-\t\t[24] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_L4_UDP,\n-\t\t/* [25] reserved */\n-\t\t[26] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_L4_TCP,\n-\t\t[27] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_L4_SCTP,\n-\t\t[28] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_L4_ICMP,\n-\n-\t\t/* IPv4 --> IPv4 */\n-\t\t[29] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_IP |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n-\t\t[30] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_IP |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n-\t\t[31] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_IP |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_UDP,\n-\t\t/* [32] reserved */\n-\t\t[33] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_IP |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_TCP,\n-\t\t[34] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_IP |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n-\t\t[35] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_IP |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n-\n-\t\t/* IPv4 --> IPv6 */\n-\t\t[36] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_IP |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n-\t\t[37] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_IP |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n-\t\t[38] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_IP |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_UDP,\n-\t\t/* [39] reserved */\n-\t\t[40] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_IP |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_TCP,\n-\t\t[41] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_IP |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n-\t\t[42] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_IP |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n-\n-\t\t/* IPv4 --> GRE/Teredo/VXLAN */\n-\t\t[43] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT,\n-\n-\t\t/* IPv4 --> GRE/Teredo/VXLAN --> IPv4 */\n-\t\t[44] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n-\t\t[45] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n-\t\t[46] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_UDP,\n-\t\t/* [47] reserved */\n-\t\t[48] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_TCP,\n-\t\t[49] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n-\t\t[50] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n-\n-\t\t/* IPv4 --> GRE/Teredo/VXLAN --> IPv6 */\n-\t\t[51] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n-\t\t[52] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n-\t\t[53] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_UDP,\n-\t\t/* [54] reserved */\n-\t\t[55] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_TCP,\n-\t\t[56] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n-\t\t[57] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n-\n-\t\t/* IPv4 --> GRE/Teredo/VXLAN --> MAC */\n-\t\t[58] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER,\n-\n-\t\t/* IPv4 --> GRE/Teredo/VXLAN --> MAC --> IPv4 */\n-\t\t[59] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n-\t\t[60] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n-\t\t[61] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_UDP,\n-\t\t/* [62] reserved */\n-\t\t[63] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_TCP,\n-\t\t[64] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n-\t\t[65] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n-\n-\t\t/* IPv4 --> GRE/Teredo/VXLAN --> MAC --> IPv6 */\n-\t\t[66] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n-\t\t[67] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n-\t\t[68] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_UDP,\n-\t\t/* [69] reserved */\n-\t\t[70] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_TCP,\n-\t\t[71] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n-\t\t[72] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n-\n-\t\t/* IPv4 --> GRE/Teredo/VXLAN --> MAC/VLAN */\n-\t\t[73] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN,\n-\n-\t\t/* IPv4 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv4 */\n-\t\t[74] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n-\t\t[75] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n-\t\t[76] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_UDP,\n-\t\t/* [77] reserved */\n-\t\t[78] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_TCP,\n-\t\t[79] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n-\t\t[80] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n-\n-\t\t/* IPv4 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv6 */\n-\t\t[81] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n-\t\t[82] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n-\t\t[83] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_UDP,\n-\t\t/* [84] reserved */\n-\t\t[85] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_TCP,\n-\t\t[86] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n-\t\t[87] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n-\n-\t\t/* Non tunneled IPv6 */\n-\t\t[88] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_L4_FRAG,\n-\t\t[89] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_L4_NONFRAG,\n-\t\t[90] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_L4_UDP,\n-\t\t/* [91] reserved */\n-\t\t[92] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_L4_TCP,\n-\t\t[93] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_L4_SCTP,\n-\t\t[94] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_L4_ICMP,\n-\n-\t\t/* IPv6 --> IPv4 */\n-\t\t[95] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_IP |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n-\t\t[96] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_IP |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n-\t\t[97] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_IP |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_UDP,\n-\t\t/* [98] reserved */\n-\t\t[99] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_IP |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_TCP,\n-\t\t[100] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_IP |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n-\t\t[101] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_IP |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n-\n-\t\t/* IPv6 --> IPv6 */\n-\t\t[102] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_IP |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n-\t\t[103] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_IP |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n-\t\t[104] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_IP |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_UDP,\n-\t\t/* [105] reserved */\n-\t\t[106] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_IP |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_TCP,\n-\t\t[107] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_IP |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n-\t\t[108] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_IP |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n-\n-\t\t/* IPv6 --> GRE/Teredo/VXLAN */\n-\t\t[109] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT,\n-\n-\t\t/* IPv6 --> GRE/Teredo/VXLAN --> IPv4 */\n-\t\t[110] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n-\t\t[111] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n-\t\t[112] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_UDP,\n-\t\t/* [113] reserved */\n-\t\t[114] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_TCP,\n-\t\t[115] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n-\t\t[116] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n-\n-\t\t/* IPv6 --> GRE/Teredo/VXLAN --> IPv6 */\n-\t\t[117] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n-\t\t[118] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n-\t\t[119] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_UDP,\n-\t\t/* [120] reserved */\n-\t\t[121] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_TCP,\n-\t\t[122] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n-\t\t[123] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n-\n-\t\t/* IPv6 --> GRE/Teredo/VXLAN --> MAC */\n-\t\t[124] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER,\n-\n-\t\t/* IPv6 --> GRE/Teredo/VXLAN --> MAC --> IPv4 */\n-\t\t[125] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n-\t\t[126] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n-\t\t[127] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_UDP,\n-\t\t/* [128] reserved */\n-\t\t[129] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_TCP,\n-\t\t[130] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n-\t\t[131] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n-\n-\t\t/* IPv6 --> GRE/Teredo/VXLAN --> MAC --> IPv6 */\n-\t\t[132] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n-\t\t[133] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n-\t\t[134] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_UDP,\n-\t\t/* [135] reserved */\n-\t\t[136] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_TCP,\n-\t\t[137] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n-\t\t[138] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n-\n-\t\t/* IPv6 --> GRE/Teredo/VXLAN --> MAC/VLAN */\n-\t\t[139] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN,\n-\n-\t\t/* IPv6 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv4 */\n-\t\t[140] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n-\t\t[141] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n-\t\t[142] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_UDP,\n-\t\t/* [143] reserved */\n-\t\t[144] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_TCP,\n-\t\t[145] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n-\t\t[146] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n-\n-\t\t/* IPv6 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv6 */\n-\t\t[147] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n-\t\t[148] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n-\t\t[149] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_UDP,\n-\t\t/* [150] reserved */\n-\t\t[151] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_TCP,\n-\t\t[152] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n-\t\t[153] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n-\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n-\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n-\n-\t\t/* L2 NSH packet type */\n-\t\t[154] = RTE_PTYPE_L2_ETHER_NSH,\n-\t\t[155] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_L4_FRAG,\n-\t\t[156] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_L4_NONFRAG,\n-\t\t[157] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_L4_UDP,\n-\t\t[158] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_L4_TCP,\n-\t\t[159] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_L4_SCTP,\n-\t\t[160] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_L4_ICMP,\n-\t\t[161] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_L4_FRAG,\n-\t\t[162] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_L4_NONFRAG,\n-\t\t[163] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_L4_UDP,\n-\t\t[164] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_L4_TCP,\n-\t\t[165] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_L4_SCTP,\n-\t\t[166] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n-\t\t\tRTE_PTYPE_L4_ICMP,\n-\n-\t\t/* All others reserved */\n-\t};\n-\n-\treturn type_table[ptype];\n-}\n-\n #define I40E_RX_DESC_EXT_STATUS_FLEXBH_MASK   0x03\n #define I40E_RX_DESC_EXT_STATUS_FLEXBH_FD_ID  0x01\n #define I40E_RX_DESC_EXT_STATUS_FLEXBH_FLEX   0x02\n@@ -2136,7 +1573,9 @@ i40e_dev_supported_ptypes_get(struct rte_eth_dev *dev)\n #ifdef RTE_LIBRTE_I40E_RX_ALLOW_BULK_ALLOC\n \t    dev->rx_pkt_burst == i40e_recv_pkts_bulk_alloc ||\n #endif\n-\t    dev->rx_pkt_burst == i40e_recv_scattered_pkts)\n+\t    dev->rx_pkt_burst == i40e_recv_scattered_pkts ||\n+\t    dev->rx_pkt_burst == i40e_recv_scattered_pkts_vec ||\n+\t    dev->rx_pkt_burst == i40e_recv_pkts_vec)\n \t\treturn ptypes;\n \treturn NULL;\n }\ndiff --git a/drivers/net/i40e/i40e_rxtx.h b/drivers/net/i40e/i40e_rxtx.h\nindex 98179f0..ecdb13c 100644\n--- a/drivers/net/i40e/i40e_rxtx.h\n+++ b/drivers/net/i40e/i40e_rxtx.h\n@@ -255,4 +255,567 @@ void i40e_set_tx_function_flag(struct rte_eth_dev *dev,\n \t\t\t       struct i40e_tx_queue *txq);\n void i40e_set_tx_function(struct rte_eth_dev *dev);\n \n+/* For each value it means, datasheet of hardware can tell more details\n+ *\n+ * @note: fix i40e_dev_supported_ptypes_get() if any change here.\n+ */\n+static inline uint32_t\n+i40e_rxd_pkt_type_mapping(uint8_t ptype)\n+{\n+\tstatic const uint32_t type_table[UINT8_MAX + 1] __rte_cache_aligned = {\n+\t\t/* L2 types */\n+\t\t/* [0] reserved */\n+\t\t[1] = RTE_PTYPE_L2_ETHER,\n+\t\t[2] = RTE_PTYPE_L2_ETHER_TIMESYNC,\n+\t\t/* [3] - [5] reserved */\n+\t\t[6] = RTE_PTYPE_L2_ETHER_LLDP,\n+\t\t/* [7] - [10] reserved */\n+\t\t[11] = RTE_PTYPE_L2_ETHER_ARP,\n+\t\t/* [12] - [21] reserved */\n+\n+\t\t/* Non tunneled IPv4 */\n+\t\t[22] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_FRAG,\n+\t\t[23] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_NONFRAG,\n+\t\t[24] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_UDP,\n+\t\t/* [25] reserved */\n+\t\t[26] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_TCP,\n+\t\t[27] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_SCTP,\n+\t\t[28] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_ICMP,\n+\n+\t\t/* IPv4 --> IPv4 */\n+\t\t[29] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_IP |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n+\t\t[30] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_IP |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n+\t\t[31] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_IP |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_UDP,\n+\t\t/* [32] reserved */\n+\t\t[33] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_IP |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_TCP,\n+\t\t[34] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_IP |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n+\t\t[35] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_IP |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n+\n+\t\t/* IPv4 --> IPv6 */\n+\t\t[36] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_IP |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n+\t\t[37] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_IP |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n+\t\t[38] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_IP |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_UDP,\n+\t\t/* [39] reserved */\n+\t\t[40] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_IP |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_TCP,\n+\t\t[41] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_IP |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n+\t\t[42] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_IP |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN */\n+\t\t[43] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN --> IPv4 */\n+\t\t[44] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n+\t\t[45] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n+\t\t[46] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_UDP,\n+\t\t/* [47] reserved */\n+\t\t[48] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_TCP,\n+\t\t[49] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n+\t\t[50] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN --> IPv6 */\n+\t\t[51] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n+\t\t[52] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n+\t\t[53] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_UDP,\n+\t\t/* [54] reserved */\n+\t\t[55] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_TCP,\n+\t\t[56] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n+\t\t[57] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN --> MAC */\n+\t\t[58] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN --> MAC --> IPv4 */\n+\t\t[59] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n+\t\t[60] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n+\t\t[61] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_UDP,\n+\t\t/* [62] reserved */\n+\t\t[63] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_TCP,\n+\t\t[64] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n+\t\t[65] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN --> MAC --> IPv6 */\n+\t\t[66] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n+\t\t[67] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n+\t\t[68] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_UDP,\n+\t\t/* [69] reserved */\n+\t\t[70] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_TCP,\n+\t\t[71] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n+\t\t[72] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN --> MAC/VLAN */\n+\t\t[73] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv4 */\n+\t\t[74] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n+\t\t[75] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n+\t\t[76] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_UDP,\n+\t\t/* [77] reserved */\n+\t\t[78] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_TCP,\n+\t\t[79] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n+\t\t[80] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv6 */\n+\t\t[81] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n+\t\t[82] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n+\t\t[83] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_UDP,\n+\t\t/* [84] reserved */\n+\t\t[85] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_TCP,\n+\t\t[86] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n+\t\t[87] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n+\n+\t\t/* Non tunneled IPv6 */\n+\t\t[88] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_FRAG,\n+\t\t[89] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_NONFRAG,\n+\t\t[90] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_UDP,\n+\t\t/* [91] reserved */\n+\t\t[92] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_TCP,\n+\t\t[93] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_SCTP,\n+\t\t[94] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_ICMP,\n+\n+\t\t/* IPv6 --> IPv4 */\n+\t\t[95] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_IP |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n+\t\t[96] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_IP |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n+\t\t[97] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_IP |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_UDP,\n+\t\t/* [98] reserved */\n+\t\t[99] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_IP |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_TCP,\n+\t\t[100] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_IP |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n+\t\t[101] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_IP |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n+\n+\t\t/* IPv6 --> IPv6 */\n+\t\t[102] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_IP |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n+\t\t[103] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_IP |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n+\t\t[104] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_IP |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_UDP,\n+\t\t/* [105] reserved */\n+\t\t[106] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_IP |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_TCP,\n+\t\t[107] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_IP |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n+\t\t[108] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_IP |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN */\n+\t\t[109] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN --> IPv4 */\n+\t\t[110] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n+\t\t[111] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n+\t\t[112] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_UDP,\n+\t\t/* [113] reserved */\n+\t\t[114] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_TCP,\n+\t\t[115] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n+\t\t[116] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN --> IPv6 */\n+\t\t[117] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n+\t\t[118] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n+\t\t[119] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_UDP,\n+\t\t/* [120] reserved */\n+\t\t[121] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_TCP,\n+\t\t[122] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n+\t\t[123] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN --> MAC */\n+\t\t[124] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN --> MAC --> IPv4 */\n+\t\t[125] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n+\t\t[126] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n+\t\t[127] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_UDP,\n+\t\t/* [128] reserved */\n+\t\t[129] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_TCP,\n+\t\t[130] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n+\t\t[131] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN --> MAC --> IPv6 */\n+\t\t[132] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n+\t\t[133] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n+\t\t[134] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_UDP,\n+\t\t/* [135] reserved */\n+\t\t[136] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_TCP,\n+\t\t[137] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n+\t\t[138] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT | RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN --> MAC/VLAN */\n+\t\t[139] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv4 */\n+\t\t[140] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n+\t\t[141] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n+\t\t[142] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_UDP,\n+\t\t/* [143] reserved */\n+\t\t[144] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_TCP,\n+\t\t[145] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n+\t\t[146] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv6 */\n+\t\t[147] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_FRAG,\n+\t\t[148] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_NONFRAG,\n+\t\t[149] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_UDP,\n+\t\t/* [150] reserved */\n+\t\t[151] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_TCP,\n+\t\t[152] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_SCTP,\n+\t\t[153] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT |\n+\t\t\tRTE_PTYPE_INNER_L2_ETHER_VLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_INNER_L4_ICMP,\n+\n+\t\t/* L2 NSH packet type */\n+\t\t[154] = RTE_PTYPE_L2_ETHER_NSH,\n+\t\t[155] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_FRAG,\n+\t\t[156] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_NONFRAG,\n+\t\t[157] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_UDP,\n+\t\t[158] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_TCP,\n+\t\t[159] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_SCTP,\n+\t\t[160] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_ICMP,\n+\t\t[161] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_FRAG,\n+\t\t[162] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_NONFRAG,\n+\t\t[163] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_UDP,\n+\t\t[164] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_TCP,\n+\t\t[165] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_SCTP,\n+\t\t[166] = RTE_PTYPE_L2_ETHER_NSH | RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_ICMP,\n+\n+\t\t/* All others reserved */\n+\t};\n+\n+\treturn type_table[ptype];\n+}\n+\n #endif /* _I40E_RXTX_H_ */\ndiff --git a/drivers/net/i40e/i40e_rxtx_vec.c b/drivers/net/i40e/i40e_rxtx_vec.c\nindex a9ca515..6c63141 100644\n--- a/drivers/net/i40e/i40e_rxtx_vec.c\n+++ b/drivers/net/i40e/i40e_rxtx_vec.c\n@@ -187,6 +187,21 @@ desc_to_olflags_v(__m128i descs[4], struct rte_mbuf **rx_pkts)\n \n #define PKTLEN_SHIFT     10\n \n+static inline void\n+desc_to_ptype_v(__m128i descs[4], struct rte_mbuf **rx_pkts)\n+{\n+\t__m128i ptype0 = _mm_unpackhi_epi64(descs[0], descs[1]);\n+\t__m128i ptype1 = _mm_unpackhi_epi64(descs[2], descs[3]);\n+\n+\tptype0 = _mm_srli_epi64(ptype0, 30);\n+\tptype1 = _mm_srli_epi64(ptype1, 30);\n+\n+\trx_pkts[0]->packet_type = i40e_rxd_pkt_type_mapping(_mm_extract_epi8(ptype0, 0));\n+\trx_pkts[1]->packet_type = i40e_rxd_pkt_type_mapping(_mm_extract_epi8(ptype0, 8));\n+\trx_pkts[2]->packet_type = i40e_rxd_pkt_type_mapping(_mm_extract_epi8(ptype1, 0));\n+\trx_pkts[3]->packet_type = i40e_rxd_pkt_type_mapping(_mm_extract_epi8(ptype1, 8));\n+}\n+\n  /*\n  * Notice:\n  * - nb_pkts < RTE_I40E_DESCS_PER_LOOP, just return no packet\n@@ -393,6 +408,7 @@ _recv_raw_pkts_vec(struct i40e_rx_queue *rxq, struct rte_mbuf **rx_pkts,\n \t\t\t\t pkt_mb2);\n \t\t_mm_storeu_si128((void *)&rx_pkts[pos]->rx_descriptor_fields1,\n \t\t\t\t pkt_mb1);\n+\t\tdesc_to_ptype_v(descs, &rx_pkts[pos]);\n \t\t/* C.4 calc avaialbe number of desc */\n \t\tvar = __builtin_popcountll(_mm_cvtsi128_si64(staterr));\n \t\tnb_pkts_recd += var;\n",
    "prefixes": [
        "dpdk-dev",
        "v2",
        "1/2"
    ]
}