get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 93426,
    "url": "http://patches.dpdk.org/api/patches/93426/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20210524185952.673258-2-lance.richardson@broadcom.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": "<20210524185952.673258-2-lance.richardson@broadcom.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210524185952.673258-2-lance.richardson@broadcom.com",
    "date": "2021-05-24T18:59:49",
    "name": "[1/3] net/bnxt: refactor HW ptype mapping table",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "4aaf23946baf29730c3a152e708dd7de041aefbe",
    "submitter": {
        "id": 1323,
        "url": "http://patches.dpdk.org/api/people/1323/?format=api",
        "name": "Lance Richardson",
        "email": "lance.richardson@broadcom.com"
    },
    "delegate": {
        "id": 1766,
        "url": "http://patches.dpdk.org/api/users/1766/?format=api",
        "username": "ajitkhaparde",
        "first_name": "Ajit",
        "last_name": "Khaparde",
        "email": "ajit.khaparde@broadcom.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20210524185952.673258-2-lance.richardson@broadcom.com/mbox/",
    "series": [
        {
            "id": 17109,
            "url": "http://patches.dpdk.org/api/series/17109/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=17109",
            "date": "2021-05-24T18:59:48",
            "name": "net/bnxt: vector mode patches",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/17109/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/93426/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/93426/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 45BC2A0547;\n\tMon, 24 May 2021 21:00:15 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 303CC41101;\n\tMon, 24 May 2021 21:00:15 +0200 (CEST)",
            "from mail-pg1-f181.google.com (mail-pg1-f181.google.com\n [209.85.215.181])\n by mails.dpdk.org (Postfix) with ESMTP id 5EAE74068C\n for <dev@dpdk.org>; Mon, 24 May 2021 21:00:13 +0200 (CEST)",
            "by mail-pg1-f181.google.com with SMTP id e22so5051534pgv.10\n for <dev@dpdk.org>; Mon, 24 May 2021 12:00:13 -0700 (PDT)",
            "from localhost.localdomain ([192.19.231.250])\n by smtp.gmail.com with ESMTPSA id g4sm12239049pgu.46.2021.05.24.12.00.07\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Mon, 24 May 2021 12:00:11 -0700 (PDT)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=broadcom.com;\n s=google;\n h=from:to:cc:subject:date:message-id:in-reply-to:references\n :mime-version; bh=fCXadFeSozZLIQ8HWMU7r5PacKQQp5xSXSAa8JdjTI4=;\n b=gjdebPegkbjcE1z5b6Qtfy2pvxlMaK8f+SioyWJiu546hz/qKVQz0aAr4bibr1ctdV\n LeqVUmCQgdS3Lj3brHPqOJ1RWQXHRJcwjwvv6oZZ+QVNp6CxfEOPmw7tuhf2QTPKvPfo\n p+u7C0COChpx/p+iReGxcD/Yn3niEMRH8vYGw=",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20161025;\n h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to\n :references:mime-version;\n bh=fCXadFeSozZLIQ8HWMU7r5PacKQQp5xSXSAa8JdjTI4=;\n b=GleaMSm7URDnUdXgRxwlmUHzuybquyeof29Nbkznrb3B9G7JXnw4yjhOmNgbTAka0H\n tiUjtybGNWhH8HT/IRD/lUMxMVabvzRCmVJWkpuVWGjaTUG4uOs+8gzMzc9R4Hw4bhBl\n ATAbC0dXYzn4uSOvUUvCvAU2gczVUXkS15ZLsNxUzOkRNQejrSncksIS1Vbqts6+Dscx\n ffpPC3wTsbnvsmDUQiwWnUv4N9AsRRLNhSjUnJaIilQ7hhxL764MMb16BMKIqNp2gI/A\n q4rIF+ceR4tZNEcAvPpC2TDy36uZjxGvTz7ZQHFO3ixWjpXwularywE440rh9bD1YIO8\n prOA==",
        "X-Gm-Message-State": "AOAM530zchsUMfRwGNrZesans+3JlJLVnGd+MuD1vXcpRek8xp/KHdJz\n pyjL7k8pI43kQ5C+VMV0ruUbMA==",
        "X-Google-Smtp-Source": "\n ABdhPJwjkGanFAqMAs5cO1bLZcOfO7DykPSX3ox/XEVPny1aih6FZsxrywPHt5eGkT8XPHwIbAfFsQ==",
        "X-Received": "by 2002:a65:68d7:: with SMTP id\n k23mr15139647pgt.410.1621882812317;\n Mon, 24 May 2021 12:00:12 -0700 (PDT)",
        "From": "Lance Richardson <lance.richardson@broadcom.com>",
        "To": "Ajit Khaparde <ajit.khaparde@broadcom.com>,\n Somnath Kotur <somnath.kotur@broadcom.com>,\n Jerin Jacob <jerinj@marvell.com>, Ruifeng Wang <ruifeng.wang@arm.com>,\n Bruce Richardson <bruce.richardson@intel.com>,\n Konstantin Ananyev <konstantin.ananyev@intel.com>",
        "Cc": "dev@dpdk.org",
        "Date": "Mon, 24 May 2021 14:59:49 -0400",
        "Message-Id": "<20210524185952.673258-2-lance.richardson@broadcom.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20210524185952.673258-1-lance.richardson@broadcom.com>",
        "References": "<20210524185952.673258-1-lance.richardson@broadcom.com>",
        "MIME-Version": "1.0",
        "Content-Type": "multipart/signed; protocol=\"application/pkcs7-signature\";\n micalg=sha-256; boundary=\"000000000000eb6ebf05c31804bd\"",
        "X-Content-Filtered-By": "Mailman/MimeDel 2.1.29",
        "Subject": "[dpdk-dev] [PATCH 1/3] net/bnxt: refactor HW ptype mapping table",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://mails.dpdk.org/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Make the definition of the table used to map hardware packet type\ninformation to DPDK packet type more generic.\n\nAdd macro definitions for constants used in creating table\nindices, use these to eliminate raw constants in code.\n\nAdd build-time assertions to validate ptype mapping constants.\n\nSigned-off-by: Lance Richardson <lance.richardson@broadcom.com>\nReviewed-by: Ajit Kumar Khaparde <ajit.khaparde@broadcom.com>\n---\n drivers/net/bnxt/bnxt_rxr.c           | 34 +++++++++++----------\n drivers/net/bnxt/bnxt_rxr.h           | 43 ++++++++++++++++++++++++++-\n drivers/net/bnxt/bnxt_rxtx_vec_neon.c | 19 ++++++++----\n drivers/net/bnxt/bnxt_rxtx_vec_sse.c  | 18 +++++++----\n 4 files changed, 85 insertions(+), 29 deletions(-)",
    "diff": "diff --git a/drivers/net/bnxt/bnxt_rxr.c b/drivers/net/bnxt/bnxt_rxr.c\nindex 2ef4115ef9..a6a8fb213b 100644\n--- a/drivers/net/bnxt/bnxt_rxr.c\n+++ b/drivers/net/bnxt/bnxt_rxr.c\n@@ -396,14 +396,14 @@ bnxt_init_ptype_table(void)\n \t\treturn;\n \n \tfor (i = 0; i < BNXT_PTYPE_TBL_DIM; i++) {\n-\t\tif (i & (RX_PKT_CMPL_FLAGS2_META_FORMAT_VLAN >> 2))\n+\t\tif (i & BNXT_PTYPE_TBL_VLAN_MSK)\n \t\t\tpt[i] = RTE_PTYPE_L2_ETHER_VLAN;\n \t\telse\n \t\t\tpt[i] = RTE_PTYPE_L2_ETHER;\n \n-\t\tip6 = i & (RX_PKT_CMPL_FLAGS2_IP_TYPE >> 7);\n-\t\ttun = i & (RX_PKT_CMPL_FLAGS2_T_IP_CS_CALC >> 2);\n-\t\ttype = (i & 0x78) << 9;\n+\t\tip6 = !!(i & BNXT_PTYPE_TBL_IP_VER_MSK);\n+\t\ttun = !!(i & BNXT_PTYPE_TBL_TUN_MSK);\n+\t\ttype = (i & BNXT_PTYPE_TBL_TYPE_MSK) >> BNXT_PTYPE_TBL_TYPE_SFT;\n \n \t\tif (!tun && !ip6)\n \t\t\tl3 = RTE_PTYPE_L3_IPV4_EXT_UNKNOWN;\n@@ -415,25 +415,25 @@ bnxt_init_ptype_table(void)\n \t\t\tl3 = RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN;\n \n \t\tswitch (type) {\n-\t\tcase RX_PKT_CMPL_FLAGS_ITYPE_ICMP:\n+\t\tcase BNXT_PTYPE_TBL_TYPE_ICMP:\n \t\t\tif (tun)\n \t\t\t\tpt[i] |= l3 | RTE_PTYPE_INNER_L4_ICMP;\n \t\t\telse\n \t\t\t\tpt[i] |= l3 | RTE_PTYPE_L4_ICMP;\n \t\t\tbreak;\n-\t\tcase RX_PKT_CMPL_FLAGS_ITYPE_TCP:\n+\t\tcase BNXT_PTYPE_TBL_TYPE_TCP:\n \t\t\tif (tun)\n \t\t\t\tpt[i] |= l3 | RTE_PTYPE_INNER_L4_TCP;\n \t\t\telse\n \t\t\t\tpt[i] |= l3 | RTE_PTYPE_L4_TCP;\n \t\t\tbreak;\n-\t\tcase RX_PKT_CMPL_FLAGS_ITYPE_UDP:\n+\t\tcase BNXT_PTYPE_TBL_TYPE_UDP:\n \t\t\tif (tun)\n \t\t\t\tpt[i] |= l3 | RTE_PTYPE_INNER_L4_UDP;\n \t\t\telse\n \t\t\t\tpt[i] |= l3 | RTE_PTYPE_L4_UDP;\n \t\t\tbreak;\n-\t\tcase RX_PKT_CMPL_FLAGS_ITYPE_IP:\n+\t\tcase BNXT_PTYPE_TBL_TYPE_IP:\n \t\t\tpt[i] |= l3;\n \t\t\tbreak;\n \t\t}\n@@ -450,17 +450,19 @@ bnxt_parse_pkt_type(struct rx_pkt_cmpl *rxcmp, struct rx_pkt_cmpl_hi *rxcmp1)\n \tflags_type = rte_le_to_cpu_16(rxcmp->flags_type);\n \tflags2 = rte_le_to_cpu_32(rxcmp1->flags2);\n \n+\t/* Validate ptype table indexing at build time. */\n+\tbnxt_check_ptype_constants();\n+\n \t/*\n \t * Index format:\n-\t *     bit 0: RX_PKT_CMPL_FLAGS2_T_IP_CS_CALC\n-\t *     bit 1: RX_CMPL_FLAGS2_IP_TYPE\n-\t *     bit 2: RX_PKT_CMPL_FLAGS2_META_FORMAT_VLAN\n-\t *     bits 3-6: RX_PKT_CMPL_FLAGS_ITYPE\n+\t *     bit 0: Set if IP tunnel encapsulated packet.\n+\t *     bit 1: Set if IPv6 packet, clear if IPv4.\n+\t *     bit 2: Set if VLAN tag present.\n+\t *     bits 3-6: Four-bit hardware packet type field.\n \t */\n-\tindex = ((flags_type & RX_PKT_CMPL_FLAGS_ITYPE_MASK) >> 9) |\n-\t\t((flags2 & (RX_PKT_CMPL_FLAGS2_META_FORMAT_VLAN |\n-\t\t\t   RX_PKT_CMPL_FLAGS2_T_IP_CS_CALC)) >> 2) |\n-\t\t((flags2 & RX_PKT_CMPL_FLAGS2_IP_TYPE) >> 7);\n+\tindex = BNXT_CMPL_ITYPE_TO_IDX(flags_type) |\n+\t\tBNXT_CMPL_VLAN_TUN_TO_IDX(flags2) |\n+\t\tBNXT_CMPL_IP_VER_TO_IDX(flags2);\n \n \treturn bnxt_ptype_table[index];\n }\ndiff --git a/drivers/net/bnxt/bnxt_rxr.h b/drivers/net/bnxt/bnxt_rxr.h\nindex b43256e03e..79f1458698 100644\n--- a/drivers/net/bnxt/bnxt_rxr.h\n+++ b/drivers/net/bnxt/bnxt_rxr.h\n@@ -131,7 +131,48 @@ bnxt_cfa_code_dynfield(struct rte_mbuf *mbuf)\n #define BNXT_CFA_META_EEM_TCAM_SHIFT\t\t31\n #define BNXT_CFA_META_EM_TEST(x) ((x) >> BNXT_CFA_META_EEM_TCAM_SHIFT)\n \n-#define BNXT_PTYPE_TBL_DIM\t128\n+/* Definitions for translation of hardware packet type to mbuf ptype. */\n+#define BNXT_PTYPE_TBL_DIM\t\t128\n+#define BNXT_PTYPE_TBL_TUN_SFT\t\t0 /* Set if tunneled packet. */\n+#define BNXT_PTYPE_TBL_TUN_MSK\t\tBIT(BNXT_PTYPE_TBL_TUN_SFT)\n+#define BNXT_PTYPE_TBL_IP_VER_SFT\t1 /* Set if IPv6, clear if IPv4. */\n+#define BNXT_PTYPE_TBL_IP_VER_MSK\tBIT(BNXT_PTYPE_TBL_IP_VER_SFT)\n+#define BNXT_PTYPE_TBL_VLAN_SFT\t\t2 /* Set if VLAN encapsulated. */\n+#define BNXT_PTYPE_TBL_VLAN_MSK\t\tBIT(BNXT_PTYPE_TBL_VLAN_SFT)\n+#define BNXT_PTYPE_TBL_TYPE_SFT\t\t3 /* Hardware packet type field. */\n+#define BNXT_PTYPE_TBL_TYPE_MSK\t\t0x78 /* Hardware itype field mask. */\n+#define BNXT_PTYPE_TBL_TYPE_IP\t\t1\n+#define BNXT_PTYPE_TBL_TYPE_TCP\t\t2\n+#define BNXT_PTYPE_TBL_TYPE_UDP\t\t3\n+#define BNXT_PTYPE_TBL_TYPE_ICMP\t7\n+\n+#define RX_PKT_CMPL_FLAGS2_IP_TYPE_SFT\t8\n+#define CMPL_FLAGS2_VLAN_TUN_MSK \\\n+\t(RX_PKT_CMPL_FLAGS2_META_FORMAT_VLAN | RX_PKT_CMPL_FLAGS2_T_IP_CS_CALC)\n+\n+#define BNXT_CMPL_ITYPE_TO_IDX(ft) \\\n+\t(((ft) & RX_PKT_CMPL_FLAGS_ITYPE_MASK) >> \\\n+\t  (RX_PKT_CMPL_FLAGS_ITYPE_SFT - BNXT_PTYPE_TBL_TYPE_SFT))\n+\n+#define BNXT_CMPL_VLAN_TUN_TO_IDX(f2) \\\n+\t(((f2) & CMPL_FLAGS2_VLAN_TUN_MSK) >> \\\n+\t (RX_PKT_CMPL_FLAGS2_META_FORMAT_SFT - BNXT_PTYPE_TBL_VLAN_SFT))\n+\n+#define BNXT_CMPL_IP_VER_TO_IDX(f2) \\\n+\t(((f2) & RX_PKT_CMPL_FLAGS2_IP_TYPE) >> \\\n+\t (RX_PKT_CMPL_FLAGS2_IP_TYPE_SFT - BNXT_PTYPE_TBL_IP_VER_SFT))\n+\n+static inline void\n+bnxt_check_ptype_constants(void)\n+{\n+\tRTE_BUILD_BUG_ON(BNXT_CMPL_ITYPE_TO_IDX(RX_PKT_CMPL_FLAGS_ITYPE_MASK) !=\n+\t\t\t BNXT_PTYPE_TBL_TYPE_MSK);\n+\tRTE_BUILD_BUG_ON(BNXT_CMPL_VLAN_TUN_TO_IDX(CMPL_FLAGS2_VLAN_TUN_MSK) !=\n+\t\t\t (BNXT_PTYPE_TBL_VLAN_MSK | BNXT_PTYPE_TBL_TUN_MSK));\n+\tRTE_BUILD_BUG_ON(BNXT_CMPL_IP_VER_TO_IDX(RX_PKT_CMPL_FLAGS2_IP_TYPE) !=\n+\t\t\t BNXT_PTYPE_TBL_IP_VER_MSK);\n+}\n+\n extern uint32_t bnxt_ptype_table[BNXT_PTYPE_TBL_DIM];\n \n /* Stingray2 specific code for RX completion parsing */\ndiff --git a/drivers/net/bnxt/bnxt_rxtx_vec_neon.c b/drivers/net/bnxt/bnxt_rxtx_vec_neon.c\nindex bc2e96ec38..a6fbc0b0bf 100644\n--- a/drivers/net/bnxt/bnxt_rxtx_vec_neon.c\n+++ b/drivers/net/bnxt/bnxt_rxtx_vec_neon.c\n@@ -71,8 +71,7 @@ descs_to_mbufs(uint32x4_t mm_rxcmp[4], uint32x4_t mm_rxcmp1[4],\n \tconst uint32x4_t flags_type_mask =\n \t\tvdupq_n_u32(RX_PKT_CMPL_FLAGS_ITYPE_MASK);\n \tconst uint32x4_t flags2_mask1 =\n-\t\tvdupq_n_u32(RX_PKT_CMPL_FLAGS2_META_FORMAT_VLAN |\n-\t\t\t    RX_PKT_CMPL_FLAGS2_T_IP_CS_CALC);\n+\t\tvdupq_n_u32(CMPL_FLAGS2_VLAN_TUN_MSK);\n \tconst uint32x4_t flags2_mask2 =\n \t\tvdupq_n_u32(RX_PKT_CMPL_FLAGS2_IP_TYPE);\n \tconst uint32x4_t rss_mask =\n@@ -84,14 +83,18 @@ descs_to_mbufs(uint32x4_t mm_rxcmp[4], uint32x4_t mm_rxcmp1[4],\n \tuint64x2_t t0, t1;\n \tuint32_t ol_flags;\n \n+\t/* Validate ptype table indexing at build time. */\n+\tbnxt_check_ptype_constants();\n+\n \t/* Compute packet type table indexes for four packets */\n \tt0 = vreinterpretq_u64_u32(vzip1q_u32(mm_rxcmp[0], mm_rxcmp[1]));\n \tt1 = vreinterpretq_u64_u32(vzip1q_u32(mm_rxcmp[2], mm_rxcmp[3]));\n \n \tflags_type = vreinterpretq_u32_u64(vcombine_u64(vget_low_u64(t0),\n \t\t\t\t\t\t\tvget_low_u64(t1)));\n-\tptype_idx =\n-\t\tvshrq_n_u32(vandq_u32(flags_type, flags_type_mask), 9);\n+\tptype_idx = vshrq_n_u32(vandq_u32(flags_type, flags_type_mask),\n+\t\t\t\tRX_PKT_CMPL_FLAGS_ITYPE_SFT -\n+\t\t\t\tBNXT_PTYPE_TBL_TYPE_SFT);\n \n \tt0 = vreinterpretq_u64_u32(vzip1q_u32(mm_rxcmp1[0], mm_rxcmp1[1]));\n \tt1 = vreinterpretq_u64_u32(vzip1q_u32(mm_rxcmp1[2], mm_rxcmp1[3]));\n@@ -100,9 +103,13 @@ descs_to_mbufs(uint32x4_t mm_rxcmp[4], uint32x4_t mm_rxcmp1[4],\n \t\t\t\t\t\t    vget_low_u64(t1)));\n \n \tptype_idx = vorrq_u32(ptype_idx,\n-\t\t\tvshrq_n_u32(vandq_u32(flags2, flags2_mask1), 2));\n+\t\t\tvshrq_n_u32(vandq_u32(flags2, flags2_mask1),\n+\t\t\t\t    RX_PKT_CMPL_FLAGS2_META_FORMAT_SFT -\n+\t\t\t\t    BNXT_PTYPE_TBL_VLAN_SFT));\n \tptype_idx = vorrq_u32(ptype_idx,\n-\t\t\tvshrq_n_u32(vandq_u32(flags2, flags2_mask2), 7));\n+\t\t\tvshrq_n_u32(vandq_u32(flags2, flags2_mask2),\n+\t\t\t\t    RX_PKT_CMPL_FLAGS2_IP_TYPE_SFT -\n+\t\t\t\t    BNXT_PTYPE_TBL_IP_VER_SFT));\n \n \t/* Extract RSS valid flags for four packets. */\n \trss_flags = vshrq_n_u32(vandq_u32(flags_type, rss_mask), 9);\ndiff --git a/drivers/net/bnxt/bnxt_rxtx_vec_sse.c b/drivers/net/bnxt/bnxt_rxtx_vec_sse.c\nindex 7ec04797b7..6dd18a0077 100644\n--- a/drivers/net/bnxt/bnxt_rxtx_vec_sse.c\n+++ b/drivers/net/bnxt/bnxt_rxtx_vec_sse.c\n@@ -66,8 +66,7 @@ descs_to_mbufs(__m128i mm_rxcmp[4], __m128i mm_rxcmp1[4],\n \tconst __m128i flags_type_mask =\n \t\t_mm_set1_epi32(RX_PKT_CMPL_FLAGS_ITYPE_MASK);\n \tconst __m128i flags2_mask1 =\n-\t\t_mm_set1_epi32(RX_PKT_CMPL_FLAGS2_META_FORMAT_VLAN |\n-\t\t\t       RX_PKT_CMPL_FLAGS2_T_IP_CS_CALC);\n+\t\t_mm_set1_epi32(CMPL_FLAGS2_VLAN_TUN_MSK);\n \tconst __m128i flags2_mask2 =\n \t\t_mm_set1_epi32(RX_PKT_CMPL_FLAGS2_IP_TYPE);\n \tconst __m128i rss_mask =\n@@ -76,21 +75,28 @@ descs_to_mbufs(__m128i mm_rxcmp[4], __m128i mm_rxcmp1[4],\n \t__m128i ptype_idx, is_tunnel;\n \tuint32_t ol_flags;\n \n+\t/* Validate ptype table indexing at build time. */\n+\tbnxt_check_ptype_constants();\n+\n \t/* Compute packet type table indexes for four packets */\n \tt0 = _mm_unpacklo_epi32(mm_rxcmp[0], mm_rxcmp[1]);\n \tt1 = _mm_unpacklo_epi32(mm_rxcmp[2], mm_rxcmp[3]);\n \tflags_type = _mm_unpacklo_epi64(t0, t1);\n-\tptype_idx =\n-\t\t_mm_srli_epi32(_mm_and_si128(flags_type, flags_type_mask), 9);\n+\tptype_idx = _mm_srli_epi32(_mm_and_si128(flags_type, flags_type_mask),\n+\t\t\tRX_PKT_CMPL_FLAGS_ITYPE_SFT - BNXT_PTYPE_TBL_TYPE_SFT);\n \n \tt0 = _mm_unpacklo_epi32(mm_rxcmp1[0], mm_rxcmp1[1]);\n \tt1 = _mm_unpacklo_epi32(mm_rxcmp1[2], mm_rxcmp1[3]);\n \tflags2 = _mm_unpacklo_epi64(t0, t1);\n \n \tptype_idx = _mm_or_si128(ptype_idx,\n-\t\t\t_mm_srli_epi32(_mm_and_si128(flags2, flags2_mask1), 2));\n+\t\t\t_mm_srli_epi32(_mm_and_si128(flags2, flags2_mask1),\n+\t\t\t\t       RX_PKT_CMPL_FLAGS2_META_FORMAT_SFT -\n+\t\t\t\t       BNXT_PTYPE_TBL_VLAN_SFT));\n \tptype_idx = _mm_or_si128(ptype_idx,\n-\t\t\t_mm_srli_epi32(_mm_and_si128(flags2, flags2_mask2), 7));\n+\t\t\t_mm_srli_epi32(_mm_and_si128(flags2, flags2_mask2),\n+\t\t\t\t       RX_PKT_CMPL_FLAGS2_IP_TYPE_SFT -\n+\t\t\t\t       BNXT_PTYPE_TBL_IP_VER_SFT));\n \n \t/* Extract RSS valid flags for four packets. */\n \trss_flags = _mm_srli_epi32(_mm_and_si128(flags_type, rss_mask), 9);\n",
    "prefixes": [
        "1/3"
    ]
}