get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 1330,
    "url": "https://patches.dpdk.org/api/patches/1330/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/1416296251-7534-4-git-send-email-jijiang.liu@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": "<1416296251-7534-4-git-send-email-jijiang.liu@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1416296251-7534-4-git-send-email-jijiang.liu@intel.com",
    "date": "2014-11-18T07:37:30",
    "name": "[dpdk-dev,3/4] i40e:translate i40e packet types",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": true,
    "hash": "35be5597967beb5b2c36eb75d4489deef9d83d35",
    "submitter": {
        "id": 52,
        "url": "https://patches.dpdk.org/api/people/52/?format=api",
        "name": "Jijiang Liu",
        "email": "jijiang.liu@intel.com"
    },
    "delegate": null,
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/1416296251-7534-4-git-send-email-jijiang.liu@intel.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/1330/comments/",
    "check": "pending",
    "checks": "https://patches.dpdk.org/api/patches/1330/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 D1B6C7F7D;\n\tTue, 18 Nov 2014 08:27:31 +0100 (CET)",
            "from mga01.intel.com (mga01.intel.com [192.55.52.88])\n\tby dpdk.org (Postfix) with ESMTP id 580457F58\n\tfor <dev@dpdk.org>; Tue, 18 Nov 2014 08:27:26 +0100 (CET)",
            "from fmsmga001.fm.intel.com ([10.253.24.23])\n\tby fmsmga101.fm.intel.com with ESMTP; 17 Nov 2014 23:37:45 -0800",
            "from shvmail01.sh.intel.com ([10.239.29.42])\n\tby fmsmga001.fm.intel.com with ESMTP; 17 Nov 2014 23:37:43 -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 sAI7bgWq006347;\n\tTue, 18 Nov 2014 15:37:42 +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 sAI7be6h007592; Tue, 18 Nov 2014 15:37:42 +0800",
            "(from jijiangl@localhost)\n\tby shecgisg004.sh.intel.com (8.13.6/8.13.6/Submit) id sAI7bdgA007588; \n\tTue, 18 Nov 2014 15:37:39 +0800"
        ],
        "X-ExtLoop1": "1",
        "X-IronPort-AV": "E=Sophos;i=\"5.07,408,1413270000\"; d=\"scan'208\";a=\"624066653\"",
        "From": "Jijiang Liu <jijiang.liu@intel.com>",
        "To": "dev@dpdk.org",
        "Date": "Tue, 18 Nov 2014 15:37:30 +0800",
        "Message-Id": "<1416296251-7534-4-git-send-email-jijiang.liu@intel.com>",
        "X-Mailer": "git-send-email 1.7.12.2",
        "In-Reply-To": "<1416296251-7534-1-git-send-email-jijiang.liu@intel.com>",
        "References": "<1416296251-7534-1-git-send-email-jijiang.liu@intel.com>",
        "Subject": "[dpdk-dev] [PATCH 3/4] i40e:translate i40e packet types",
        "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": "Translate i40e packet types to abstract packet types, and keep the usage of the PKT_RX_IPV4_HDR and the PKT_RX_IPV4_HDR as before in i40e driver.\n\nSigned-off-by: Jijiang Liu <jijiang.liu@intel.com>\n---\n lib/librte_pmd_i40e/i40e_rxtx.c |  604 +++++++++++++++++++++------------------\n 1 files changed, 332 insertions(+), 272 deletions(-)",
    "diff": "diff --git a/lib/librte_pmd_i40e/i40e_rxtx.c b/lib/librte_pmd_i40e/i40e_rxtx.c\nindex 487591d..80f1bc0 100644\n--- a/lib/librte_pmd_i40e/i40e_rxtx.c\n+++ b/lib/librte_pmd_i40e/i40e_rxtx.c\n@@ -142,272 +142,320 @@ 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+static inline enum rte_eth_packet_type\n+i40e_rxd_ptype_mapping(uint64_t qword)\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 enum rte_eth_packet_type ptype_map[I40E_MAX_PKT_TYPE] = {\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 0 */\n+\t\tRTE_PTYPE_PAY2,\n+\t\tRTE_PTYPE_TimeSync_PAY2,\n+\t\tRTE_PTYPE_FIP_PAY2,\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 4 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 5 */\n+\t\tRTE_PTYPE_LLDP_PAY2,\n+\t\tRTE_PTYPE_ECP_PAY2,\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 8 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 9 */\n+\t\tRTE_PTYPE_EAPOL_PAY2,\n+\t\tRTE_PTYPE_ARP,\n+\t\tRTE_PTYPE_FCOE_PAY3,\n+\t\tRTE_PTYPE_FCOE_FCDATA,\n+\t\tRTE_PTYPE_FCOE_FCRDY,\n+\t\tRTE_PTYPE_FCOE_FCRSP,\n+\t\tRTE_PTYPE_FCOE_FCOTHER,\n+\t\tRTE_PTYPE_FCOE_VFT,\n+\t\tRTE_PTYPE_FCOE_VFT_FCDATA,\n+\t\tRTE_PTYPE_FCOE_VFT_FCRDY,\n+\t\tRTE_PTYPE_FCOE_VFT_FCRSP,\n+\t\tRTE_PTYPE_FCOE_VFT_FCOTHER,\n+\n+\t\t/* Non Tunneled IPv4 */\n+\t\tRTE_PTYPE_IPv4FRAG,\n+\t\tRTE_PTYPE_IPv4,\n+\t\tRTE_PTYPE_IPv4_UDP,\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 25 */\n+\t\tRTE_PTYPE_IPv4_TCP,\n+\t\tRTE_PTYPE_IPv4_SCTP,\n+\t\tRTE_PTYPE_IPv4_ICMP,\n+\n+\t\t/* IPv4 --> IPv4 */\n+\t\tRTE_PTYPE_IPv4_IPv4FRAG,\n+\t\tRTE_PTYPE_IPv4_IPv4,\n+\t\tRTE_PTYPE_IPv4_IPv4_UDP,\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 32 */\n+\t\tRTE_PTYPE_IPv4_IPv4_TCP,\n+\t\tRTE_PTYPE_IPv4_IPv4_SCTP,\n+\t\tRTE_PTYPE_IPv4_IPv4_ICMP,\n+\n+\t\t/* IPv4 --> IPv6 */\n+\t\tRTE_PTYPE_IPv4_IPv6FRAG,\n+\t\tRTE_PTYPE_IPv4_IPv6,\n+\t\tRTE_PTYPE_IPv4_IPv6_UDP,\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 39 */\n+\t\tRTE_PTYPE_IPv4_IPv6_TCP,\n+\t\tRTE_PTYPE_IPv4_IPv6_SCTP,\n+\t\tRTE_PTYPE_IPv4_IPv6_ICMP,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN */\n+\t\tRTE_PTYPE_IPv4_GRENAT_PAY3,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN --> IPv4 */\n+\t\tRTE_PTYPE_IPv4_GRENAT_IPv4FRAG,\n+\t\tRTE_PTYPE_IPv4_GRENAT_IPv4,\n+\t\tRTE_PTYPE_IPv4_GRENAT_IPv4_UDP,\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 47 */\n+\t\tRTE_PTYPE_IPv4_GRENAT_IPv4_TCP,\n+\t\tRTE_PTYPE_IPv4_GRENAT_IPv4_SCTP,\n+\t\tRTE_PTYPE_IPv4_GRENAT_IPv4_ICMP,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN --> IPv6 */\n+\t\tRTE_PTYPE_IPv4_GRENAT_IPv6FRAG,\n+\t\tRTE_PTYPE_IPv4_GRENAT_IPv6,\n+\t\tRTE_PTYPE_IPv4_GRENAT_IPv6_UDP,\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 54 */\n+\t\tRTE_PTYPE_IPv4_GRENAT_IPv6_TCP,\n+\t\tRTE_PTYPE_IPv4_GRENAT_IPv6_SCTP,\n+\t\tRTE_PTYPE_IPv4_GRENAT_IPv6_ICMP,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN --> MAC */\n+\t\tRTE_PTYPE_IPv4_GRENAT_MAC_PAY3,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN --> MAC --> IPv4 */\n+\t\tRTE_PTYPE_IPv4_GRENAT_MAC_IPv4FRAG,\n+\t\tRTE_PTYPE_IPv4_GRENAT_MAC_IPv4,\n+\t\tRTE_PTYPE_IPv4_GRENAT_MAC_IPv4_UDP,\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 62 */\n+\t\tRTE_PTYPE_IPv4_GRENAT_MAC_IPv4_TCP,\n+\t\tRTE_PTYPE_IPv4_GRENAT_MAC_IPv4_SCTP,\n+\t\tRTE_PTYPE_IPv4_GRENAT_MAC_IPv4_ICMP,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN --> MAC --> IPv6 */\n+\t\tRTE_PTYPE_IPv4_GRENAT_MAC_IPv6FRAG,\n+\t\tRTE_PTYPE_IPv4_GRENAT_MAC_IPv6,\n+\t\tRTE_PTYPE_IPv4_GRENAT_MAC_IPv6_UDP,\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 69 */\n+\t\tRTE_PTYPE_IPv4_GRENAT_MAC_IPv6_TCP,\n+\t\tRTE_PTYPE_IPv4_GRENAT_MAC_IPv6_SCTP,\n+\t\tRTE_PTYPE_IPv4_GRENAT_MAC_IPv6_ICMP,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN --> MAC/VLAN */\n+\t\tRTE_PTYPE_IPv4_GRENAT_MACVLAN_PAY3,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv4 */\n+\t\tRTE_PTYPE_IPv4_GRENAT_MACVLAN_IPv4FRAG,\n+\t\tRTE_PTYPE_IPv4_GRENAT_MACVLAN_IPv4,\n+\t\tRTE_PTYPE_IPv4_GRENAT_MACVLAN_IPv4_UDP,\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 77 */\n+\t\tRTE_PTYPE_IPv4_GRENAT_MACVLAN_IPv4_TCP,\n+\t\tRTE_PTYPE_IPv4_GRENAT_MACVLAN_IPv4_SCTP,\n+\t\tRTE_PTYPE_IPv4_GRENAT_MACVLAN_IPv4_ICMP,\n+\n+\t\t/* IPv4 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv6 */\n+\t\tRTE_PTYPE_IPv4_GRENAT_MACVLAN_IPv6FRAG,\n+\t\tRTE_PTYPE_IPv4_GRENAT_MACVLAN_IPv6,\n+\t\tRTE_PTYPE_IPv4_GRENAT_MACVLAN_IPv6_UDP,\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 84 */\n+\t\tRTE_PTYPE_IPv4_GRENAT_MACVLAN_IPv6_TCP,\n+\t\tRTE_PTYPE_IPv4_GRENAT_MACVLAN_IPv6_SCTP,\n+\t\tRTE_PTYPE_IPv4_GRENAT_MACVLAN_IPv6_ICMP,\n+\n+\t\t/* Non Tunneled IPv6 */\n+\t\tRTE_PTYPE_IPv6FRAG,\n+\t\tRTE_PTYPE_IPv6,\n+\t\tRTE_PTYPE_IPv6_UDP,\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 91 */\n+\t\tRTE_PTYPE_IPv6_TCP,\n+\t\tRTE_PTYPE_IPv6_SCTP,\n+\t\tRTE_PTYPE_IPv6_ICMP,\n+\n+\t\t/* IPv6 --> IPv4 */\n+\t\tRTE_PTYPE_IPv6_IPv4FRAG,\n+\t\tRTE_PTYPE_IPv6_IPv4,\n+\t\tRTE_PTYPE_IPv6_IPv4_UDP,\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 98 */\n+\t\tRTE_PTYPE_IPv6_IPv4_TCP,\n+\t\tRTE_PTYPE_IPv6_IPv4_SCTP,\n+\t\tRTE_PTYPE_IPv6_IPv4_ICMP,\n+\n+\t\t/* IPv6 --> IPv6 */\n+\t\tRTE_PTYPE_IPv6_IPv6FRAG,\n+\t\tRTE_PTYPE_IPv6_IPv6,\n+\t\tRTE_PTYPE_IPv6_IPv6_UDP,\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 105 */\n+\t\tRTE_PTYPE_IPv6_IPv6_TCP,\n+\t\tRTE_PTYPE_IPv6_IPv6_SCTP,\n+\t\tRTE_PTYPE_IPv6_IPv6_ICMP,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN */\n+\t\tRTE_PTYPE_IPv6_GRENAT_PAY3,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN --> IPv4 */\n+\t\tRTE_PTYPE_IPv6_GRENAT_IPv4FRAG,\n+\t\tRTE_PTYPE_IPv6_GRENAT_IPv4,\n+\t\tRTE_PTYPE_IPv6_GRENAT_IPv4_UDP,\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 113 */\n+\t\tRTE_PTYPE_IPv6_GRENAT_IPv4_TCP,\n+\t\tRTE_PTYPE_IPv6_GRENAT_IPv4_SCTP,\n+\t\tRTE_PTYPE_IPv6_GRENAT_IPv4_ICMP,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN --> IPv6 */\n+\t\tRTE_PTYPE_IPv6_GRENAT_IPv6FRAG,\n+\t\tRTE_PTYPE_IPv6_GRENAT_IPv6,\n+\t\tRTE_PTYPE_IPv6_GRENAT_IPv6_UDP,\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 120 */\n+\t\tRTE_PTYPE_IPv6_GRENAT_IPv6_TCP,\n+\t\tRTE_PTYPE_IPv6_GRENAT_IPv6_SCTP,\n+\t\tRTE_PTYPE_IPv6_GRENAT_IPv6_ICMP,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN --> MAC */\n+\t\tRTE_PTYPE_IPv6_GRENAT_MAC_PAY3,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN --> MAC --> IPv4 */\n+\t\tRTE_PTYPE_IPv6_GRENAT_MAC_IPv4FRAG,\n+\t\tRTE_PTYPE_IPv6_GRENAT_MAC_IPv4,\n+\t\tRTE_PTYPE_IPv6_GRENAT_MAC_IPv4_UDP,\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 128 */\n+\t\tRTE_PTYPE_IPv6_GRENAT_MAC_IPv4_TCP,\n+\t\tRTE_PTYPE_IPv6_GRENAT_MAC_IPv4_SCTP,\n+\t\tRTE_PTYPE_IPv6_GRENAT_MAC_IPv4_ICMP,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN --> MAC --> IPv6 */\n+\t\tRTE_PTYPE_IPv6_GRENAT_MAC_IPv6FRAG,\n+\t\tRTE_PTYPE_IPv6_GRENAT_MAC_IPv6,\n+\t\tRTE_PTYPE_IPv6_GRENAT_MAC_IPv6_UDP,\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 135 */\n+\t\tRTE_PTYPE_IPv6_GRENAT_MAC_IPv6_TCP,\n+\t\tRTE_PTYPE_IPv6_GRENAT_MAC_IPv6_SCTP,\n+\t\tRTE_PTYPE_IPv6_GRENAT_MAC_IPv6_ICMP,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN --> MAC/VLAN */\n+\t\tRTE_PTYPE_IPv6_GRENAT_MACVLAN_PAY3,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv4 */\n+\t\tRTE_PTYPE_IPv6_GRENAT_MACVLAN_IPv4FRAG,\n+\t\tRTE_PTYPE_IPv6_GRENAT_MACVLAN_IPv4,\n+\t\tRTE_PTYPE_IPv6_GRENAT_MACVLAN_IPv4_UDP,\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 143 */\n+\t\tRTE_PTYPE_IPv6_GRENAT_MACVLAN_IPv4_TCP,\n+\t\tRTE_PTYPE_IPv6_GRENAT_MACVLAN_IPv4_SCTP,\n+\t\tRTE_PTYPE_IPv6_GRENAT_MACVLAN_IPv4_ICMP,\n+\n+\t\t/* IPv6 --> GRE/Teredo/VXLAN --> MAC/VLAN --> IPv6 */\n+\t\tRTE_PTYPE_IPv6_GRENAT_MACVLAN_IPv6FRAG,\n+\t\tRTE_PTYPE_IPv6_GRENAT_MACVLAN_IPv6,\n+\t\tRTE_PTYPE_IPv6_GRENAT_MACVLAN_IPv6_UDP,\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 150 */\n+\t\tRTE_PTYPE_IPv6_GRENAT_MACVLAN_IPv6_TCP,\n+\t\tRTE_PTYPE_IPv6_GRENAT_MACVLAN_IPv6_SCTP,\n+\t\tRTE_PTYPE_IPv6_GRENAT_MACVLAN_IPv6_ICMP,\n+\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 154 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 155 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 156 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 157 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 158 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 159 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 160 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 161 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 162 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 163 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 164 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 165 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 166 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 167 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 168 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 169 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 170 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 171 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 172 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 173 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 174 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 175 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 176 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 177 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 178 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 179 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 180 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 181 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 182 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 183 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 184 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 185 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 186 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 187 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 188 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 189 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 190 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 191 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 192 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 193 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 194 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 195 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 196 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 197 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 198 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 199 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 200 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 201 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 202 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 203 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 204 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 205 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 206 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 207 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 208 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 209 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 210 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 211 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 212 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 213 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 214 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 215 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 216 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 217 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 218 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 219 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 220 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 221 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 222 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 223 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 224 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 225 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 226 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 227 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 228 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 229 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 230 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 231 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 232 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 233 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 234 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 235 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 236 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 237 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 238 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 239 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 240 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 241 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 242 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 243 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 244 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 245 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 246 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 247 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 248 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 249 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 250 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 251 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 252 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 253 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 254 */\n+\t\tRTE_PTYPE_UNDEF, /* PTYPE 255 */\n \t};\n \n-\treturn ip_ptype_map[ptype];\n+\treturn ptype_map[ptype];\n }\n \n static inline void\n@@ -605,6 +653,7 @@ i40e_rx_scan_hw_ring(struct i40e_rx_queue *rxq)\n \tvolatile union i40e_rx_desc *rxdp;\n \tstruct i40e_rx_entry *rxep;\n \tstruct rte_mbuf *mb;\n+\tenum rte_eth_packet_type packet_type;\n \tuint16_t pkt_len;\n \tuint64_t qword1;\n \tuint32_t rx_status;\n@@ -660,12 +709,15 @@ 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+\t\t\tpacket_type = i40e_rxd_ptype_mapping(qword1);\n+\t\t\tmb->packet_type = (uint16_t) packet_type;\n+\t\t\tif (RTE_ETH_IS_IPV4_HDR(packet_type))\n+\t\t\t\tpkt_flags |= PKT_RX_IPV4_HDR;\n+\t\t\telse if (RTE_ETH_IS_IPV6_HDR(packet_type))\n+\t\t\t\tpkt_flags |= PKT_RX_IPV6_HDR;\n+\n \t\t\tmb->ol_flags = pkt_flags;\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\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->wb.qword0.hi_dword.rss);\n@@ -830,6 +882,7 @@ i40e_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)\n \tstruct i40e_rx_entry *rxe;\n \tstruct rte_mbuf *rxm;\n \tstruct rte_mbuf *nmb;\n+\tenum rte_eth_packet_type packet_type;\n \tuint16_t nb_rx;\n \tuint32_t rx_status;\n \tuint64_t qword1;\n@@ -900,9 +953,13 @@ 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\tpacket_type = i40e_rxd_ptype_mapping(qword1);\n+\t\trxm->packet_type = (uint16_t)packet_type;\n+\t\tif (RTE_ETH_IS_IPV4_HDR(packet_type))\n+\t\t\tpkt_flags |= PKT_RX_IPV4_HDR;\n+\t\telse if (RTE_ETH_IS_IPV6_HDR(packet_type))\n+\t\t\tpkt_flags |= PKT_RX_IPV6_HDR;\n+\n \t\trxm->ol_flags = pkt_flags;\n \t\tif (pkt_flags & PKT_RX_RSS_HASH)\n \t\t\trxm->hash.rss =\n@@ -938,6 +995,7 @@ i40e_recv_scattered_pkts(void *rx_queue,\n \tstruct i40e_rx_queue *rxq = rx_queue;\n \tvolatile union i40e_rx_desc *rx_ring = rxq->rx_ring;\n \tvolatile union i40e_rx_desc *rxdp;\n+\tenum rte_eth_packet_type packet_type;\n \tunion i40e_rx_desc rxd;\n \tstruct i40e_rx_entry *sw_ring = rxq->sw_ring;\n \tstruct i40e_rx_entry *rxe;\n@@ -1056,10 +1114,12 @@ 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\tpacket_type = i40e_rxd_ptype_mapping(qword1);\n+\t\tfirst_seg->packet_type = (uint16_t) packet_type;\n+\t\tif (RTE_ETH_IS_IPV4_HDR(packet_type))\n+\t\t\tpkt_flags |= PKT_RX_IPV4_HDR;\n+\t\telse if (RTE_ETH_IS_IPV6_HDR(packet_type))\n+\t\t\tpkt_flags |= PKT_RX_IPV6_HDR;\n \t\tfirst_seg->ol_flags = pkt_flags;\n \t\tif (pkt_flags & PKT_RX_RSS_HASH)\n \t\t\trxm->hash.rss =\n",
    "prefixes": [
        "dpdk-dev",
        "3/4"
    ]
}