get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 2346,
    "url": "https://patches.dpdk.org/api/patches/2346/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1421637803-17034-6-git-send-email-helin.zhang@intel.com/",
    "project": {
        "id": 1,
        "url": "https://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": "<1421637803-17034-6-git-send-email-helin.zhang@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1421637803-17034-6-git-send-email-helin.zhang@intel.com",
    "date": "2015-01-19T03:23:11",
    "name": "[dpdk-dev,RFC,05/17] i40e: support of unified packet type",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "aed34f3f05c2cb84fb061913a2f4f562a7629011",
    "submitter": {
        "id": 14,
        "url": "https://patches.dpdk.org/api/people/14/?format=api",
        "name": "Zhang, Helin",
        "email": "helin.zhang@intel.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1421637803-17034-6-git-send-email-helin.zhang@intel.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/2346/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/2346/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 F3A415A8F;\n\tMon, 19 Jan 2015 04:24:18 +0100 (CET)",
            "from mga11.intel.com (mga11.intel.com [192.55.52.93])\n\tby dpdk.org (Postfix) with ESMTP id B1F825A82\n\tfor <dev@dpdk.org>; Mon, 19 Jan 2015 04:23:41 +0100 (CET)",
            "from orsmga002.jf.intel.com ([10.7.209.21])\n\tby fmsmga102.fm.intel.com with ESMTP; 18 Jan 2015 19:23:41 -0800",
            "from shvmail01.sh.intel.com ([10.239.29.42])\n\tby orsmga002.jf.intel.com with ESMTP; 18 Jan 2015 19:23:40 -0800",
            "from shecgisg004.sh.intel.com (shecgisg004.sh.intel.com\n\t[10.239.29.89])\n\tby shvmail01.sh.intel.com with ESMTP id t0J3NcJV008637;\n\tMon, 19 Jan 2015 11:23:38 +0800",
            "from shecgisg004.sh.intel.com (localhost [127.0.0.1])\n\tby shecgisg004.sh.intel.com (8.13.6/8.13.6/SuSE Linux 0.8) with ESMTP\n\tid t0J3NZuV017103; Mon, 19 Jan 2015 11:23:37 +0800",
            "(from hzhan75@localhost)\n\tby shecgisg004.sh.intel.com (8.13.6/8.13.6/Submit) id t0J3NZEd017099; \n\tMon, 19 Jan 2015 11:23:35 +0800"
        ],
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.09,424,1418112000\"; d=\"scan'208\";a=\"672026936\"",
        "From": "Helin Zhang <helin.zhang@intel.com>",
        "To": "dev@dpdk.org",
        "Date": "Mon, 19 Jan 2015 11:23:11 +0800",
        "Message-Id": "<1421637803-17034-6-git-send-email-helin.zhang@intel.com>",
        "X-Mailer": "git-send-email 1.7.4.1",
        "In-Reply-To": "<1421637803-17034-1-git-send-email-helin.zhang@intel.com>",
        "References": "<1421637803-17034-1-git-send-email-helin.zhang@intel.com>",
        "Subject": "[dpdk-dev] [RFC 05/17] i40e: support of unified packet type",
        "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": "To unify packet types among all PMDs, bit masks of packet type for\nol_flags are replaced by unified packet type.\n\nSigned-off-by: Helin Zhang <helin.zhang@intel.com>\nSigned-off-by: Jijiang Liu <jijiang.liu@intel.com>\n---\n lib/librte_pmd_i40e/i40e_rxtx.c | 778 ++++++++++++++++++++++++++--------------\n 1 file changed, 504 insertions(+), 274 deletions(-)",
    "diff": "diff --git a/lib/librte_pmd_i40e/i40e_rxtx.c b/lib/librte_pmd_i40e/i40e_rxtx.c\nindex 2beae3c..68029c3 100644\n--- a/lib/librte_pmd_i40e/i40e_rxtx.c\n+++ b/lib/librte_pmd_i40e/i40e_rxtx.c\n@@ -146,272 +146,503 @@ i40e_rxd_error_to_pkt_flags(uint64_t qword)\n \treturn flags;\n }\n \n-/* Translate pkt types to pkt flags */\n-static inline uint64_t\n-i40e_rxd_ptype_to_pkt_flags(uint64_t qword)\n+/* For each value it means, datasheet of hardware can tell more details */\n+static inline uint16_t\n+i40e_rxd_pkt_type_mapping(uint8_t ptype)\n {\n-\tuint8_t ptype = (uint8_t)((qword & I40E_RXD_QW1_PTYPE_MASK) >>\n-\t\t\t\t\tI40E_RXD_QW1_PTYPE_SHIFT);\n-\tstatic const uint64_t ip_ptype_map[I40E_MAX_PKT_TYPE] = {\n-\t\t0, /* PTYPE 0 */\n-\t\t0, /* PTYPE 1 */\n-\t\t0, /* PTYPE 2 */\n-\t\t0, /* PTYPE 3 */\n-\t\t0, /* PTYPE 4 */\n-\t\t0, /* PTYPE 5 */\n-\t\t0, /* PTYPE 6 */\n-\t\t0, /* PTYPE 7 */\n-\t\t0, /* PTYPE 8 */\n-\t\t0, /* PTYPE 9 */\n-\t\t0, /* PTYPE 10 */\n-\t\t0, /* PTYPE 11 */\n-\t\t0, /* PTYPE 12 */\n-\t\t0, /* PTYPE 13 */\n-\t\t0, /* PTYPE 14 */\n-\t\t0, /* PTYPE 15 */\n-\t\t0, /* PTYPE 16 */\n-\t\t0, /* PTYPE 17 */\n-\t\t0, /* PTYPE 18 */\n-\t\t0, /* PTYPE 19 */\n-\t\t0, /* PTYPE 20 */\n-\t\t0, /* PTYPE 21 */\n-\t\tPKT_RX_IPV4_HDR, /* PTYPE 22 */\n-\t\tPKT_RX_IPV4_HDR, /* PTYPE 23 */\n-\t\tPKT_RX_IPV4_HDR, /* PTYPE 24 */\n-\t\t0, /* PTYPE 25 */\n-\t\tPKT_RX_IPV4_HDR, /* PTYPE 26 */\n-\t\tPKT_RX_IPV4_HDR, /* PTYPE 27 */\n-\t\tPKT_RX_IPV4_HDR, /* PTYPE 28 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 29 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 30 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 31 */\n-\t\t0, /* PTYPE 32 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 33 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 34 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 35 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 36 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 37 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 38 */\n-\t\t0, /* PTYPE 39 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 40 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 41 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 42 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 43 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 44 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 45 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 46 */\n-\t\t0, /* PTYPE 47 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 48 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 49 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 50 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 51 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 52 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 53 */\n-\t\t0, /* PTYPE 54 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 55 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 56 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 57 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 58 */\n-\t\tPKT_RX_TUNNEL_IPV4_HDR, /* PTYPE 59 */\n-\t\tPKT_RX_TUNNEL_IPV4_HDR, /* PTYPE 60 */\n-\t\tPKT_RX_TUNNEL_IPV4_HDR, /* PTYPE 61 */\n-\t\t0, /* PTYPE 62 */\n-\t\tPKT_RX_TUNNEL_IPV4_HDR, /* PTYPE 63 */\n-\t\tPKT_RX_TUNNEL_IPV4_HDR, /* PTYPE 64 */\n-\t\tPKT_RX_TUNNEL_IPV4_HDR, /* PTYPE 65 */\n-\t\tPKT_RX_TUNNEL_IPV4_HDR, /* PTYPE 66 */\n-\t\tPKT_RX_TUNNEL_IPV4_HDR, /* PTYPE 67 */\n-\t\tPKT_RX_TUNNEL_IPV4_HDR, /* PTYPE 68 */\n-\t\t0, /* PTYPE 69 */\n-\t\tPKT_RX_TUNNEL_IPV4_HDR, /* PTYPE 70 */\n-\t\tPKT_RX_TUNNEL_IPV4_HDR, /* PTYPE 71 */\n-\t\tPKT_RX_TUNNEL_IPV4_HDR, /* PTYPE 72 */\n-\t\tPKT_RX_TUNNEL_IPV4_HDR, /* PTYPE 73 */\n-\t\tPKT_RX_TUNNEL_IPV4_HDR, /* PTYPE 74 */\n-\t\tPKT_RX_TUNNEL_IPV4_HDR, /* PTYPE 75 */\n-\t\tPKT_RX_TUNNEL_IPV4_HDR, /* PTYPE 76 */\n-\t\t0, /* PTYPE 77 */\n-\t\tPKT_RX_TUNNEL_IPV4_HDR, /* PTYPE 78 */\n-\t\tPKT_RX_TUNNEL_IPV4_HDR, /* PTYPE 79 */\n-\t\tPKT_RX_TUNNEL_IPV4_HDR, /* PTYPE 80 */\n-\t\tPKT_RX_TUNNEL_IPV4_HDR, /* PTYPE 81 */\n-\t\tPKT_RX_TUNNEL_IPV4_HDR, /* PTYPE 82 */\n-\t\tPKT_RX_TUNNEL_IPV4_HDR, /* PTYPE 83 */\n-\t\t0, /* PTYPE 84 */\n-\t\tPKT_RX_TUNNEL_IPV4_HDR, /* PTYPE 85 */\n-\t\tPKT_RX_TUNNEL_IPV4_HDR, /* PTYPE 86 */\n-\t\tPKT_RX_IPV4_HDR_EXT, /* PTYPE 87 */\n-\t\tPKT_RX_IPV6_HDR, /* PTYPE 88 */\n-\t\tPKT_RX_IPV6_HDR, /* PTYPE 89 */\n-\t\tPKT_RX_IPV6_HDR, /* PTYPE 90 */\n-\t\t0, /* PTYPE 91 */\n-\t\tPKT_RX_IPV6_HDR, /* PTYPE 92 */\n-\t\tPKT_RX_IPV6_HDR, /* PTYPE 93 */\n-\t\tPKT_RX_IPV6_HDR, /* PTYPE 94 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 95 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 96 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 97 */\n-\t\t0, /* PTYPE 98 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 99 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 100 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 101 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 102 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 103 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 104 */\n-\t\t0, /* PTYPE 105 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 106 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 107 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 108 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 109 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 110 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 111 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 112 */\n-\t\t0, /* PTYPE 113 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 114 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 115 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 116 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 117 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 118 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 119 */\n-\t\t0, /* PTYPE 120 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 121 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 122 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 123 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 124 */\n-\t\tPKT_RX_TUNNEL_IPV6_HDR, /* PTYPE 125 */\n-\t\tPKT_RX_TUNNEL_IPV6_HDR, /* PTYPE 126 */\n-\t\tPKT_RX_TUNNEL_IPV6_HDR, /* PTYPE 127 */\n-\t\t0, /* PTYPE 128 */\n-\t\tPKT_RX_TUNNEL_IPV6_HDR, /* PTYPE 129 */\n-\t\tPKT_RX_TUNNEL_IPV6_HDR, /* PTYPE 130 */\n-\t\tPKT_RX_TUNNEL_IPV6_HDR, /* PTYPE 131 */\n-\t\tPKT_RX_TUNNEL_IPV6_HDR, /* PTYPE 132 */\n-\t\tPKT_RX_TUNNEL_IPV6_HDR, /* PTYPE 133 */\n-\t\tPKT_RX_TUNNEL_IPV6_HDR, /* PTYPE 134 */\n-\t\t0, /* PTYPE 135 */\n-\t\tPKT_RX_TUNNEL_IPV6_HDR, /* PTYPE 136 */\n-\t\tPKT_RX_TUNNEL_IPV6_HDR, /* PTYPE 137 */\n-\t\tPKT_RX_TUNNEL_IPV6_HDR, /* PTYPE 138 */\n-\t\tPKT_RX_TUNNEL_IPV6_HDR, /* PTYPE 139 */\n-\t\tPKT_RX_TUNNEL_IPV6_HDR, /* PTYPE 140 */\n-\t\tPKT_RX_TUNNEL_IPV6_HDR, /* PTYPE 141 */\n-\t\tPKT_RX_TUNNEL_IPV6_HDR, /* PTYPE 142 */\n-\t\t0, /* PTYPE 143 */\n-\t\tPKT_RX_TUNNEL_IPV6_HDR, /* PTYPE 144 */\n-\t\tPKT_RX_TUNNEL_IPV6_HDR, /* PTYPE 145 */\n-\t\tPKT_RX_TUNNEL_IPV6_HDR, /* PTYPE 146 */\n-\t\tPKT_RX_TUNNEL_IPV6_HDR, /* PTYPE 147 */\n-\t\tPKT_RX_TUNNEL_IPV6_HDR, /* PTYPE 148 */\n-\t\tPKT_RX_TUNNEL_IPV6_HDR, /* PTYPE 149 */\n-\t\t0, /* PTYPE 150 */\n-\t\tPKT_RX_TUNNEL_IPV6_HDR, /* PTYPE 151 */\n-\t\tPKT_RX_TUNNEL_IPV6_HDR, /* PTYPE 152 */\n-\t\tPKT_RX_IPV6_HDR_EXT, /* PTYPE 153 */\n-\t\t0, /* PTYPE 154 */\n-\t\t0, /* PTYPE 155 */\n-\t\t0, /* PTYPE 156 */\n-\t\t0, /* PTYPE 157 */\n-\t\t0, /* PTYPE 158 */\n-\t\t0, /* PTYPE 159 */\n-\t\t0, /* PTYPE 160 */\n-\t\t0, /* PTYPE 161 */\n-\t\t0, /* PTYPE 162 */\n-\t\t0, /* PTYPE 163 */\n-\t\t0, /* PTYPE 164 */\n-\t\t0, /* PTYPE 165 */\n-\t\t0, /* PTYPE 166 */\n-\t\t0, /* PTYPE 167 */\n-\t\t0, /* PTYPE 168 */\n-\t\t0, /* PTYPE 169 */\n-\t\t0, /* PTYPE 170 */\n-\t\t0, /* PTYPE 171 */\n-\t\t0, /* PTYPE 172 */\n-\t\t0, /* PTYPE 173 */\n-\t\t0, /* PTYPE 174 */\n-\t\t0, /* PTYPE 175 */\n-\t\t0, /* PTYPE 176 */\n-\t\t0, /* PTYPE 177 */\n-\t\t0, /* PTYPE 178 */\n-\t\t0, /* PTYPE 179 */\n-\t\t0, /* PTYPE 180 */\n-\t\t0, /* PTYPE 181 */\n-\t\t0, /* PTYPE 182 */\n-\t\t0, /* PTYPE 183 */\n-\t\t0, /* PTYPE 184 */\n-\t\t0, /* PTYPE 185 */\n-\t\t0, /* PTYPE 186 */\n-\t\t0, /* PTYPE 187 */\n-\t\t0, /* PTYPE 188 */\n-\t\t0, /* PTYPE 189 */\n-\t\t0, /* PTYPE 190 */\n-\t\t0, /* PTYPE 191 */\n-\t\t0, /* PTYPE 192 */\n-\t\t0, /* PTYPE 193 */\n-\t\t0, /* PTYPE 194 */\n-\t\t0, /* PTYPE 195 */\n-\t\t0, /* PTYPE 196 */\n-\t\t0, /* PTYPE 197 */\n-\t\t0, /* PTYPE 198 */\n-\t\t0, /* PTYPE 199 */\n-\t\t0, /* PTYPE 200 */\n-\t\t0, /* PTYPE 201 */\n-\t\t0, /* PTYPE 202 */\n-\t\t0, /* PTYPE 203 */\n-\t\t0, /* PTYPE 204 */\n-\t\t0, /* PTYPE 205 */\n-\t\t0, /* PTYPE 206 */\n-\t\t0, /* PTYPE 207 */\n-\t\t0, /* PTYPE 208 */\n-\t\t0, /* PTYPE 209 */\n-\t\t0, /* PTYPE 210 */\n-\t\t0, /* PTYPE 211 */\n-\t\t0, /* PTYPE 212 */\n-\t\t0, /* PTYPE 213 */\n-\t\t0, /* PTYPE 214 */\n-\t\t0, /* PTYPE 215 */\n-\t\t0, /* PTYPE 216 */\n-\t\t0, /* PTYPE 217 */\n-\t\t0, /* PTYPE 218 */\n-\t\t0, /* PTYPE 219 */\n-\t\t0, /* PTYPE 220 */\n-\t\t0, /* PTYPE 221 */\n-\t\t0, /* PTYPE 222 */\n-\t\t0, /* PTYPE 223 */\n-\t\t0, /* PTYPE 224 */\n-\t\t0, /* PTYPE 225 */\n-\t\t0, /* PTYPE 226 */\n-\t\t0, /* PTYPE 227 */\n-\t\t0, /* PTYPE 228 */\n-\t\t0, /* PTYPE 229 */\n-\t\t0, /* PTYPE 230 */\n-\t\t0, /* PTYPE 231 */\n-\t\t0, /* PTYPE 232 */\n-\t\t0, /* PTYPE 233 */\n-\t\t0, /* PTYPE 234 */\n-\t\t0, /* PTYPE 235 */\n-\t\t0, /* PTYPE 236 */\n-\t\t0, /* PTYPE 237 */\n-\t\t0, /* PTYPE 238 */\n-\t\t0, /* PTYPE 239 */\n-\t\t0, /* PTYPE 240 */\n-\t\t0, /* PTYPE 241 */\n-\t\t0, /* PTYPE 242 */\n-\t\t0, /* PTYPE 243 */\n-\t\t0, /* PTYPE 244 */\n-\t\t0, /* PTYPE 245 */\n-\t\t0, /* PTYPE 246 */\n-\t\t0, /* PTYPE 247 */\n-\t\t0, /* PTYPE 248 */\n-\t\t0, /* PTYPE 249 */\n-\t\t0, /* PTYPE 250 */\n-\t\t0, /* PTYPE 251 */\n-\t\t0, /* PTYPE 252 */\n-\t\t0, /* PTYPE 253 */\n-\t\t0, /* PTYPE 254 */\n-\t\t0, /* PTYPE 255 */\n+\tstatic const uint16_t ptype_table[UINT8_MAX] __rte_cache_aligned = {\n+\t\t/* [0] - [21] reserved */\n+\n+\t\t/* Non tunneled IPv4 */\n+\t\t[22] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_FRAG,\n+\t\t[23] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_NONFRAG,\n+\t\t[24] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_UDP,\n+\t\t/* [25] reserved */\n+\t\t[26] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_TCP,\n+\t\t[27] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_SCTP,\n+\t\t[28] = 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_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_L4_FRAG,\n+\t\t[30] = 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_L4_NONFRAG,\n+\t\t[31] = 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_L4_UDP,\n+\t\t/* [32] reserved */\n+\t\t[33] = 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_L4_TCP,\n+\t\t[34] = 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_L4_SCTP,\n+\t\t[35] = 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_L4_ICMP,\n+\n+\t\t/* IPv4 --> IPv6 */\n+\t\t[36] = 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_L4_FRAG,\n+\t\t[37] = 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_L4_NONFRAG,\n+\t\t[38] = 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_L4_UDP,\n+\t\t/* [39] reserved */\n+\t\t[40] = 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_L4_TCP,\n+\t\t[41] = 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_L4_SCTP,\n+\t\t[42] = 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_L4_ICMP,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN */\n+\t\t[43] = 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_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_L4_FRAG,\n+\t\t[45] = 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_L4_NONFRAG,\n+\t\t[46] = 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_L4_UDP,\n+\t\t/* [47] reserved */\n+\t\t[48] = 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_L4_TCP,\n+\t\t[49] = 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_L4_SCTP,\n+\t\t[50] = 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_L4_ICMP,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN --> IPv6 */\n+\t\t[51] = 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_L4_FRAG,\n+\t\t[52] = 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_L4_NONFRAG,\n+\t\t[53] = 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_L4_UDP,\n+\t\t/* [54] reserved */\n+\t\t[55] = 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_L4_TCP,\n+\t\t[56] = 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_L4_SCTP,\n+\t\t[57] = 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_L4_ICMP,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN --> MAC */\n+\t\t[58] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN --> MAC --> IPv4 */\n+\t\t[59] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_FRAG,\n+\t\t[60] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_NONFRAG,\n+\t\t[61] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_UDP,\n+\t\t/* [62] reserved */\n+\t\t[63] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_TCP,\n+\t\t[64] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_SCTP,\n+\t\t[65] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_ICMP,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN --> MAC --> IPv6 */\n+\t\t[66] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_FRAG,\n+\t\t[67] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_NONFRAG,\n+\t\t[68] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_UDP,\n+\t\t/* [69] reserved */\n+\t\t[70] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_TCP,\n+\t\t[71] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_SCTP,\n+\t\t[72] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_ICMP,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN --> MAC/VLAN */\n+\t\t[73] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv4 */\n+\t\t[74] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_FRAG,\n+\t\t[75] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_NONFRAG,\n+\t\t[76] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_UDP,\n+\t\t/* [77] reserved */\n+\t\t[78] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_TCP,\n+\t\t[79] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_SCTP,\n+\t\t[80] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_ICMP,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv6 */\n+\t\t[81] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_FRAG,\n+\t\t[82] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_NONFRAG,\n+\t\t[83] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_UDP,\n+\t\t/* [84] reserved */\n+\t\t[85] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_TCP,\n+\t\t[86] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_SCTP,\n+\t\t[87] = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_ICMP,\n+\n+\t\t/* Non tunneled IPv6 */\n+\t\t[88] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_FRAG,\n+\t\t[89] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_NONFRAG,\n+\t\t[90] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_UDP,\n+\t\t/* [91] reserved */\n+\t\t[92] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_TCP,\n+\t\t[93] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_SCTP,\n+\t\t[94] = 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_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_L4_FRAG,\n+\t\t[96] = 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_L4_NONFRAG,\n+\t\t[97] = 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_L4_UDP,\n+\t\t/* [98] reserved */\n+\t\t[99] = 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_L4_TCP,\n+\t\t[100] = 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_L4_SCTP,\n+\t\t[101] = 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_L4_ICMP,\n+\n+\t\t/* IPv6 --> IPv6 */\n+\t\t[102] = 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_L4_FRAG,\n+\t\t[103] = 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_L4_NONFRAG,\n+\t\t[104] = 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_L4_UDP,\n+\t\t/* [105] reserved */\n+\t\t[106] = 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_L4_TCP,\n+\t\t[107] = 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_L4_SCTP,\n+\t\t[108] = 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_L4_ICMP,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN */\n+\t\t[109] = 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_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_L4_FRAG,\n+\t\t[111] = 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_L4_NONFRAG,\n+\t\t[112] = 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_L4_UDP,\n+\t\t/* [113] reserved */\n+\t\t[114] = 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_L4_TCP,\n+\t\t[115] = 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_L4_SCTP,\n+\t\t[116] = 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_L4_ICMP,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN --> IPv6 */\n+\t\t[117] = 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_L4_FRAG,\n+\t\t[118] = 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_L4_NONFRAG,\n+\t\t[119] = 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_L4_UDP,\n+\t\t/* [120] reserved */\n+\t\t[121] = 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_L4_TCP,\n+\t\t[122] = 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_L4_SCTP,\n+\t\t[123] = 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_L4_ICMP,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN --> MAC */\n+\t\t[124] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN --> MAC --> IPv4 */\n+\t\t[125] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_FRAG,\n+\t\t[126] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_NONFRAG,\n+\t\t[127] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_UDP,\n+\t\t/* [128] reserved */\n+\t\t[129] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_TCP,\n+\t\t[130] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_SCTP,\n+\t\t[131] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_ICMP,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN --> MAC --> IPv6 */\n+\t\t[132] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_FRAG,\n+\t\t[133] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_NONFRAG,\n+\t\t[134] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_UDP,\n+\t\t/* [135] reserved */\n+\t\t[136] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_TCP,\n+\t\t[137] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_SCTP,\n+\t\t[138] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MAC |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_ICMP,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN --> MAC/VLAN */\n+\t\t[139] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv4 */\n+\t\t[140] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_FRAG,\n+\t\t[141] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_NONFRAG,\n+\t\t[142] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_UDP,\n+\t\t/* [143] reserved */\n+\t\t[144] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_TCP,\n+\t\t[145] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_SCTP,\n+\t\t[146] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_ICMP,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv6 */\n+\t\t[147] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_FRAG,\n+\t\t[148] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_NONFRAG,\n+\t\t[149] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_UDP,\n+\t\t/* [150] reserved */\n+\t\t[151] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_TCP,\n+\t\t[152] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_SCTP,\n+\t\t[153] = RTE_PTYPE_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_TUNNEL_GRENAT_MACVLAN |\n+\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN |\n+\t\t\tRTE_PTYPE_L4_ICMP,\n+\n+\t\t/* All others reserved */\n \t};\n \n-\treturn ip_ptype_map[ptype];\n+\treturn ptype_table[ptype];\n }\n \n #define I40E_RX_DESC_EXT_STATUS_FLEXBH_MASK   0x03\n@@ -708,11 +939,11 @@ i40e_rx_scan_hw_ring(struct i40e_rx_queue *rxq)\n \t\t\t\trxdp[j].wb.qword0.lo_dword.l2tag1) : 0;\n \t\t\tpkt_flags = i40e_rxd_status_to_pkt_flags(qword1);\n \t\t\tpkt_flags |= i40e_rxd_error_to_pkt_flags(qword1);\n-\t\t\tpkt_flags |= i40e_rxd_ptype_to_pkt_flags(qword1);\n \n-\t\t\tmb->packet_type = (uint16_t)((qword1 &\n-\t\t\t\t\tI40E_RXD_QW1_PTYPE_MASK) >>\n-\t\t\t\t\tI40E_RXD_QW1_PTYPE_SHIFT);\n+\t\t\tmb->packet_type =\n+\t\t\t\ti40e_rxd_pkt_type_mapping((uint8_t)((qword1 &\n+\t\t\t\t\t\tI40E_RXD_QW1_PTYPE_MASK) >>\n+\t\t\t\t\t\tI40E_RXD_QW1_PTYPE_SHIFT));\n \t\t\tif (pkt_flags & PKT_RX_RSS_HASH)\n \t\t\t\tmb->hash.rss = rte_le_to_cpu_32(\\\n \t\t\t\t\trxdp[j].wb.qword0.hi_dword.rss);\n@@ -951,9 +1182,9 @@ i40e_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)\n \t\t\trte_le_to_cpu_16(rxd.wb.qword0.lo_dword.l2tag1) : 0;\n \t\tpkt_flags = i40e_rxd_status_to_pkt_flags(qword1);\n \t\tpkt_flags |= i40e_rxd_error_to_pkt_flags(qword1);\n-\t\tpkt_flags |= i40e_rxd_ptype_to_pkt_flags(qword1);\n-\t\trxm->packet_type = (uint16_t)((qword1 & I40E_RXD_QW1_PTYPE_MASK) >>\n-\t\t\t\tI40E_RXD_QW1_PTYPE_SHIFT);\n+\t\trxm->packet_type =\n+\t\t\ti40e_rxd_pkt_type_mapping((uint8_t)((qword1 &\n+\t\t\tI40E_RXD_QW1_PTYPE_MASK) >> I40E_RXD_QW1_PTYPE_SHIFT));\n \t\tif (pkt_flags & PKT_RX_RSS_HASH)\n \t\t\trxm->hash.rss =\n \t\t\t\trte_le_to_cpu_32(rxd.wb.qword0.hi_dword.rss);\n@@ -1110,10 +1341,9 @@ i40e_recv_scattered_pkts(void *rx_queue,\n \t\t\trte_le_to_cpu_16(rxd.wb.qword0.lo_dword.l2tag1) : 0;\n \t\tpkt_flags = i40e_rxd_status_to_pkt_flags(qword1);\n \t\tpkt_flags |= i40e_rxd_error_to_pkt_flags(qword1);\n-\t\tpkt_flags |= i40e_rxd_ptype_to_pkt_flags(qword1);\n-\t\tfirst_seg->packet_type = (uint16_t)((qword1 &\n-\t\t\t\t\tI40E_RXD_QW1_PTYPE_MASK) >>\n-\t\t\t\t\tI40E_RXD_QW1_PTYPE_SHIFT);\n+\t\tfirst_seg->packet_type =\n+\t\t\ti40e_rxd_pkt_type_mapping((uint8_t)((qword1 &\n+\t\t\tI40E_RXD_QW1_PTYPE_MASK) >> I40E_RXD_QW1_PTYPE_SHIFT));\n \t\tif (pkt_flags & PKT_RX_RSS_HASH)\n \t\t\trxm->hash.rss =\n \t\t\t\trte_le_to_cpu_32(rxd.wb.qword0.hi_dword.rss);\n",
    "prefixes": [
        "dpdk-dev",
        "RFC",
        "05/17"
    ]
}