get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 90994,
    "url": "http://patches.dpdk.org/api/patches/90994/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1618017080-50053-5-git-send-email-humin29@huawei.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": "<1618017080-50053-5-git-send-email-humin29@huawei.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1618017080-50053-5-git-send-email-humin29@huawei.com",
    "date": "2021-04-10T01:11:17",
    "name": "[v2,4/7] net/hns3: fix some packet type calc error",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "3eba9e8a4a29effcaa89077bd584141b15082465",
    "submitter": {
        "id": 1944,
        "url": "http://patches.dpdk.org/api/people/1944/?format=api",
        "name": "humin (Q)",
        "email": "humin29@huawei.com"
    },
    "delegate": {
        "id": 319,
        "url": "http://patches.dpdk.org/api/users/319/?format=api",
        "username": "fyigit",
        "first_name": "Ferruh",
        "last_name": "Yigit",
        "email": "ferruh.yigit@amd.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1618017080-50053-5-git-send-email-humin29@huawei.com/mbox/",
    "series": [
        {
            "id": 16255,
            "url": "http://patches.dpdk.org/api/series/16255/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=16255",
            "date": "2021-04-10T01:11:13",
            "name": "Bugfix for hns3 PMD",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/16255/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/90994/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/90994/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 E658CA0547;\n\tSat, 10 Apr 2021 03:11:32 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id E0BA2141155;\n\tSat, 10 Apr 2021 03:11:14 +0200 (CEST)",
            "from szxga05-in.huawei.com (szxga05-in.huawei.com [45.249.212.191])\n by mails.dpdk.org (Postfix) with ESMTP id 038B0141132\n for <dev@dpdk.org>; Sat, 10 Apr 2021 03:11:08 +0200 (CEST)",
            "from DGGEMS406-HUB.china.huawei.com (unknown [172.30.72.58])\n by szxga05-in.huawei.com (SkyGuard) with ESMTP id 4FHH1X09XBzNvTD\n for <dev@dpdk.org>; Sat, 10 Apr 2021 09:08:16 +0800 (CST)",
            "from localhost.localdomain (10.69.192.56) by\n DGGEMS406-HUB.china.huawei.com (10.3.19.206) with Microsoft SMTP Server id\n 14.3.498.0; Sat, 10 Apr 2021 09:11:00 +0800"
        ],
        "From": "\"Min Hu (Connor)\" <humin29@huawei.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<ferruh.yigit@intel.com>",
        "Date": "Sat, 10 Apr 2021 09:11:17 +0800",
        "Message-ID": "<1618017080-50053-5-git-send-email-humin29@huawei.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1618017080-50053-1-git-send-email-humin29@huawei.com>",
        "References": "<1617963365-41299-1-git-send-email-humin29@huawei.com>\n <1618017080-50053-1-git-send-email-humin29@huawei.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[10.69.192.56]",
        "X-CFilter-Loop": "Reflected",
        "Subject": "[dpdk-dev] [PATCH v2 4/7] net/hns3: fix some packet type calc error",
        "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": "From: Chengwen Feng <fengchengwen@huawei.com>\n\nCurrently, the packet type calculated by\nvlan/ovlan/l3id/l4id/ol3id/ol4id fields have the following problems:\n1) Identify error when exist vlan strip which will lead to the data\nbuffer has non vlan header but mbuf's ptype have L2_ETHER_VLAN flag.\n2) Some packet identifies error, eg: hardware report it's RARP or\nunknown packet, but ptype will marked with L2_ETHER .\n\nSo driver will calculate packet type only by l3id/l4id/ol3id/ol4id\nfields.\n\nFixes: 0e98d5e6d9c3 (\"net/hns3: fix packet type report in Rx\")\nFixes: bba636698316 (\"net/hns3: support Rx/Tx and related operations\")\nCc: stable@dpdk.org\n\nSigned-off-by: Chengwen Feng <fengchengwen@huawei.com>\nSigned-off-by: Min Hu (Connor) <humin29@huawei.com>\n---\n drivers/net/hns3/hns3_ethdev.h |  4 +--\n drivers/net/hns3/hns3_rxtx.c   | 60 +++++++++++++-----------------------------\n drivers/net/hns3/hns3_rxtx.h   | 14 ++++------\n 3 files changed, 24 insertions(+), 54 deletions(-)",
    "diff": "diff --git a/drivers/net/hns3/hns3_ethdev.h b/drivers/net/hns3/hns3_ethdev.h\nindex 225a173..c3d2078 100644\n--- a/drivers/net/hns3/hns3_ethdev.h\n+++ b/drivers/net/hns3/hns3_ethdev.h\n@@ -682,12 +682,10 @@ struct hns3_ptype_table {\n \t * The next fields used to calc packet-type by the\n \t * L3_ID/L4_ID/OL3_ID/OL4_ID from the Rx descriptor.\n \t */\n-\tuint32_t l2l3table[HNS3_L2TBL_NUM][HNS3_L3TBL_NUM];\n+\tuint32_t l3table[HNS3_L3TBL_NUM];\n \tuint32_t l4table[HNS3_L4TBL_NUM];\n-\tuint32_t inner_l2table[HNS3_L2TBL_NUM];\n \tuint32_t inner_l3table[HNS3_L3TBL_NUM];\n \tuint32_t inner_l4table[HNS3_L4TBL_NUM];\n-\tuint32_t ol2table[HNS3_OL2TBL_NUM];\n \tuint32_t ol3table[HNS3_OL3TBL_NUM];\n \tuint32_t ol4table[HNS3_OL4TBL_NUM];\n \ndiff --git a/drivers/net/hns3/hns3_rxtx.c b/drivers/net/hns3/hns3_rxtx.c\nindex 7300f67..8c5da44 100644\n--- a/drivers/net/hns3/hns3_rxtx.c\n+++ b/drivers/net/hns3/hns3_rxtx.c\n@@ -2003,32 +2003,12 @@ hns3_dev_supported_ptypes_get(struct rte_eth_dev *dev)\n static void\n hns3_init_non_tunnel_ptype_tbl(struct hns3_ptype_table *tbl)\n {\n-\ttbl->l2l3table[0][0] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4;\n-\ttbl->l2l3table[0][1] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6;\n-\ttbl->l2l3table[0][2] = RTE_PTYPE_L2_ETHER_ARP;\n-\ttbl->l2l3table[0][3] = RTE_PTYPE_L2_ETHER;\n-\ttbl->l2l3table[0][4] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT;\n-\ttbl->l2l3table[0][5] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT;\n-\ttbl->l2l3table[0][6] = RTE_PTYPE_L2_ETHER_LLDP;\n-\ttbl->l2l3table[0][15] = RTE_PTYPE_L2_ETHER;\n-\n-\ttbl->l2l3table[1][0] = RTE_PTYPE_L2_ETHER_VLAN | RTE_PTYPE_L3_IPV4;\n-\ttbl->l2l3table[1][1] = RTE_PTYPE_L2_ETHER_VLAN | RTE_PTYPE_L3_IPV6;\n-\ttbl->l2l3table[1][2] = RTE_PTYPE_L2_ETHER_ARP;\n-\ttbl->l2l3table[1][3] = RTE_PTYPE_L2_ETHER_VLAN;\n-\ttbl->l2l3table[1][4] = RTE_PTYPE_L2_ETHER_VLAN | RTE_PTYPE_L3_IPV4_EXT;\n-\ttbl->l2l3table[1][5] = RTE_PTYPE_L2_ETHER_VLAN | RTE_PTYPE_L3_IPV6_EXT;\n-\ttbl->l2l3table[1][6] = RTE_PTYPE_L2_ETHER_LLDP;\n-\ttbl->l2l3table[1][15] = RTE_PTYPE_L2_ETHER_VLAN;\n-\n-\ttbl->l2l3table[2][0] = RTE_PTYPE_L2_ETHER_QINQ | RTE_PTYPE_L3_IPV4;\n-\ttbl->l2l3table[2][1] = RTE_PTYPE_L2_ETHER_QINQ | RTE_PTYPE_L3_IPV6;\n-\ttbl->l2l3table[2][2] = RTE_PTYPE_L2_ETHER_ARP;\n-\ttbl->l2l3table[2][3] = RTE_PTYPE_L2_ETHER_QINQ;\n-\ttbl->l2l3table[2][4] = RTE_PTYPE_L2_ETHER_QINQ | RTE_PTYPE_L3_IPV4_EXT;\n-\ttbl->l2l3table[2][5] = RTE_PTYPE_L2_ETHER_QINQ | RTE_PTYPE_L3_IPV6_EXT;\n-\ttbl->l2l3table[2][6] = RTE_PTYPE_L2_ETHER_LLDP;\n-\ttbl->l2l3table[2][15] = RTE_PTYPE_L2_ETHER_QINQ;\n+\ttbl->l3table[0] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4;\n+\ttbl->l3table[1] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6;\n+\ttbl->l3table[2] = RTE_PTYPE_L2_ETHER_ARP;\n+\ttbl->l3table[4] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT;\n+\ttbl->l3table[5] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT;\n+\ttbl->l3table[6] = RTE_PTYPE_L2_ETHER_LLDP;\n \n \ttbl->l4table[0] = RTE_PTYPE_L4_UDP;\n \ttbl->l4table[1] = RTE_PTYPE_L4_TCP;\n@@ -2041,17 +2021,17 @@ hns3_init_non_tunnel_ptype_tbl(struct hns3_ptype_table *tbl)\n static void\n hns3_init_tunnel_ptype_tbl(struct hns3_ptype_table *tbl)\n {\n-\ttbl->inner_l2table[0] = RTE_PTYPE_INNER_L2_ETHER;\n-\ttbl->inner_l2table[1] = RTE_PTYPE_INNER_L2_ETHER_VLAN;\n-\ttbl->inner_l2table[2] = RTE_PTYPE_INNER_L2_ETHER_QINQ;\n-\n-\ttbl->inner_l3table[0] = RTE_PTYPE_INNER_L3_IPV4;\n-\ttbl->inner_l3table[1] = RTE_PTYPE_INNER_L3_IPV6;\n+\ttbl->inner_l3table[0] = RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\t\tRTE_PTYPE_INNER_L3_IPV4;\n+\ttbl->inner_l3table[1] = RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\t\tRTE_PTYPE_INNER_L3_IPV6;\n \t/* There is not a ptype for inner ARP/RARP */\n \ttbl->inner_l3table[2] = RTE_PTYPE_UNKNOWN;\n \ttbl->inner_l3table[3] = RTE_PTYPE_UNKNOWN;\n-\ttbl->inner_l3table[4] = RTE_PTYPE_INNER_L3_IPV4_EXT;\n-\ttbl->inner_l3table[5] = RTE_PTYPE_INNER_L3_IPV6_EXT;\n+\ttbl->inner_l3table[4] = RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\t\tRTE_PTYPE_INNER_L3_IPV4_EXT;\n+\ttbl->inner_l3table[5] = RTE_PTYPE_INNER_L2_ETHER |\n+\t\t\t\tRTE_PTYPE_INNER_L3_IPV6_EXT;\n \n \ttbl->inner_l4table[0] = RTE_PTYPE_INNER_L4_UDP;\n \ttbl->inner_l4table[1] = RTE_PTYPE_INNER_L4_TCP;\n@@ -2062,16 +2042,12 @@ hns3_init_tunnel_ptype_tbl(struct hns3_ptype_table *tbl)\n \ttbl->inner_l4table[4] = RTE_PTYPE_UNKNOWN;\n \ttbl->inner_l4table[5] = RTE_PTYPE_INNER_L4_ICMP;\n \n-\ttbl->ol2table[0] = RTE_PTYPE_L2_ETHER;\n-\ttbl->ol2table[1] = RTE_PTYPE_L2_ETHER_VLAN;\n-\ttbl->ol2table[2] = RTE_PTYPE_L2_ETHER_QINQ;\n-\n-\ttbl->ol3table[0] = RTE_PTYPE_L3_IPV4;\n-\ttbl->ol3table[1] = RTE_PTYPE_L3_IPV6;\n+\ttbl->ol3table[0] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4;\n+\ttbl->ol3table[1] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6;\n \ttbl->ol3table[2] = RTE_PTYPE_UNKNOWN;\n \ttbl->ol3table[3] = RTE_PTYPE_UNKNOWN;\n-\ttbl->ol3table[4] = RTE_PTYPE_L3_IPV4_EXT;\n-\ttbl->ol3table[5] = RTE_PTYPE_L3_IPV6_EXT;\n+\ttbl->ol3table[4] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV4_EXT;\n+\ttbl->ol3table[5] = RTE_PTYPE_L2_ETHER | RTE_PTYPE_L3_IPV6_EXT;\n \n \ttbl->ol4table[0] = RTE_PTYPE_UNKNOWN;\n \ttbl->ol4table[1] = RTE_PTYPE_TUNNEL_VXLAN;\ndiff --git a/drivers/net/hns3/hns3_rxtx.h b/drivers/net/hns3/hns3_rxtx.h\nindex e39d18d..10a6c64 100644\n--- a/drivers/net/hns3/hns3_rxtx.h\n+++ b/drivers/net/hns3/hns3_rxtx.h\n@@ -635,8 +635,8 @@ hns3_rx_calc_ptype(struct hns3_rx_queue *rxq, const uint32_t l234_info,\n \t\t   const uint32_t ol_info)\n {\n \tconst struct hns3_ptype_table * const ptype_tbl = rxq->ptype_tbl;\n-\tuint32_t l2id, l3id, l4id;\n-\tuint32_t ol3id, ol4id, ol2id;\n+\tuint32_t ol3id, ol4id;\n+\tuint32_t l3id, l4id;\n \tuint32_t ptype;\n \n \tif (rxq->ptype_en) {\n@@ -647,20 +647,16 @@ hns3_rx_calc_ptype(struct hns3_rx_queue *rxq, const uint32_t l234_info,\n \n \tol4id = hns3_get_field(ol_info, HNS3_RXD_OL4ID_M, HNS3_RXD_OL4ID_S);\n \tol3id = hns3_get_field(ol_info, HNS3_RXD_OL3ID_M, HNS3_RXD_OL3ID_S);\n-\tol2id = hns3_get_field(ol_info, HNS3_RXD_OVLAN_M, HNS3_RXD_OVLAN_S);\n-\tl2id = hns3_get_field(l234_info, HNS3_RXD_VLAN_M, HNS3_RXD_VLAN_S);\n \tl3id = hns3_get_field(l234_info, HNS3_RXD_L3ID_M, HNS3_RXD_L3ID_S);\n \tl4id = hns3_get_field(l234_info, HNS3_RXD_L4ID_M, HNS3_RXD_L4ID_S);\n \n \tif (unlikely(ptype_tbl->ol4table[ol4id]))\n-\t\treturn ptype_tbl->inner_l2table[l2id] |\n-\t\t\tptype_tbl->inner_l3table[l3id] |\n+\t\treturn ptype_tbl->inner_l3table[l3id] |\n \t\t\tptype_tbl->inner_l4table[l4id] |\n \t\t\tptype_tbl->ol3table[ol3id] |\n-\t\t\tptype_tbl->ol4table[ol4id] | ptype_tbl->ol2table[ol2id];\n+\t\t\tptype_tbl->ol4table[ol4id];\n \telse\n-\t\treturn ptype_tbl->l2l3table[l2id][l3id] |\n-\t\t\tptype_tbl->l4table[l4id];\n+\t\treturn ptype_tbl->l3table[l3id] | ptype_tbl->l4table[l4id];\n }\n \n void hns3_dev_rx_queue_release(void *queue);\n",
    "prefixes": [
        "v2",
        "4/7"
    ]
}