get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 105366,
    "url": "http://patches.dpdk.org/api/patches/105366/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20211223131638.15190-1-getelson@nvidia.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": "<20211223131638.15190-1-getelson@nvidia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20211223131638.15190-1-getelson@nvidia.com",
    "date": "2021-12-23T13:16:38",
    "name": "net/mlx5: fix GRE protocol type translation for VERB API",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "930580e920d5a7c3e5771dc5ebd0ae11a51b5b28",
    "submitter": {
        "id": 1882,
        "url": "http://patches.dpdk.org/api/people/1882/?format=api",
        "name": "Gregory Etelson",
        "email": "getelson@nvidia.com"
    },
    "delegate": {
        "id": 3268,
        "url": "http://patches.dpdk.org/api/users/3268/?format=api",
        "username": "rasland",
        "first_name": "Raslan",
        "last_name": "Darawsheh",
        "email": "rasland@nvidia.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20211223131638.15190-1-getelson@nvidia.com/mbox/",
    "series": [
        {
            "id": 21016,
            "url": "http://patches.dpdk.org/api/series/21016/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=21016",
            "date": "2021-12-23T13:16:38",
            "name": "net/mlx5: fix GRE protocol type translation for VERB API",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/21016/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/105366/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/105366/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 DE31BA0350;\n\tThu, 23 Dec 2021 14:17:00 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 6AE3B40E01;\n\tThu, 23 Dec 2021 14:17:00 +0100 (CET)",
            "from NAM10-DM6-obe.outbound.protection.outlook.com\n (mail-dm6nam10on2071.outbound.protection.outlook.com [40.107.93.71])\n by mails.dpdk.org (Postfix) with ESMTP id 50F8440DDA;\n Thu, 23 Dec 2021 14:16:58 +0100 (CET)",
            "from MWHPR04CA0033.namprd04.prod.outlook.com (2603:10b6:300:ee::19)\n by DM6PR12MB4601.namprd12.prod.outlook.com (2603:10b6:5:163::16) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4801.20; Thu, 23 Dec\n 2021 13:16:56 +0000",
            "from CO1NAM11FT034.eop-nam11.prod.protection.outlook.com\n (2603:10b6:300:ee:cafe::b1) by MWHPR04CA0033.outlook.office365.com\n (2603:10b6:300:ee::19) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4823.16 via Frontend\n Transport; Thu, 23 Dec 2021 13:16:55 +0000",
            "from mail.nvidia.com (12.22.5.238) by\n CO1NAM11FT034.mail.protection.outlook.com (10.13.174.248) with Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id\n 15.20.4823.18 via Frontend Transport; Thu, 23 Dec 2021 13:16:55 +0000",
            "from rnnvmail201.nvidia.com (10.129.68.8) by DRHQMAIL105.nvidia.com\n (10.27.9.14) with Microsoft SMTP Server (TLS) id 15.0.1497.18;\n Thu, 23 Dec 2021 13:16:55 +0000",
            "from nvidia.com (172.20.187.5) by rnnvmail201.nvidia.com\n (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.2.986.9; Thu, 23 Dec 2021\n 05:16:52 -0800"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=S9w3euGy5A92gKBWZbU6bcb7pNMIf6iPhdMzE69jlN5j9Uk6PoD10M5Is0tN8sfvPTcvIzBJyG5q1rDPFY9HBoTh4WmqSVmFFdOZ4F8ZxepGuFDwPO5S8l5F8PFotWPV0fDecz+3aS3Dh6ZI+kzzSiBRdXCLM2gYwb9kspn2BcjXAAMeEv1VyAnmNRX7wl1zKYWK2FxHLJUsEw8wpIybQBq4Q4CoR1mwuEBs2JcKmNQZEacG/Hrt63VlPpsGkPlNIQsj1QtgE284xyBSjJiNuGq0KtLppviV0R4XRgfGpJKG/uJX49GAMDq4YdpZt/0RVyG5N9ds6U0H2S/psxDhCw==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=gajqHknnQQ+mg7DjEKyu4Yn/PG2v0B4qD10rzscKtf0=;\n b=kfoQqsnrLykZVnTe4aCVxwGjb1bVA9ItrjM52MKMNZT/0TXjAg1OXaqDieWlkp4msy4MIGB09COuyXKrmGP2uSsoZAlWGjGRkkGQJCh0nNQ3Du0cWmTT2H6zAym4jYp94FZU7J2W90wF85ToApa6DGpgTdGT7ZEOI5hKQw9F687BvFinzByz51vM6+Zch3VKQef2Vutbh1XQLk1MRpjzPvivb/RJv6a+gAEUSI2MW1/SbrtnXRRBvgOBq3XSsxBsST8YY+5GaCBq/S9o1Oj0+XrF3IyjHPLvCCtAsfhTE/t2ja2jwUqTRO3h5p8vzrnRCQ3az/6v3vJlZ4oWQvdkIQ==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 12.22.5.238) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass\n (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none\n (message not signed); arc=none",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=gajqHknnQQ+mg7DjEKyu4Yn/PG2v0B4qD10rzscKtf0=;\n b=n2BkU883gyTw8nBH+4wB5xMHoXSdeh329/OTVZJDYV2XvzBz4JuhY+BAU57rgTy8MspU7ipu7E+rcwECWtWLN/unNxocyr7KSY+zrz29iV9HxmG6SBTD94ROe91DzJpU911RhIPwHlQlvnFzVAKsrRahxcpqOg/HK94OHFRKDpQH3mqagySmnf2yImxC6DzaCg5LoKjVCeOcGVQGRfObFOdoXZjGsap8ywh1aCWrWxTKRnI6uTdi1A6dUxrKonGfqlxOE+Alz/PPML+StUaKsaO69vcNhlIoSAGvsmg5kYrtMLTJM0JKP2wwTSomuP9rDHgkjdelYqIQMUtwiZy1iw==",
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 12.22.5.238)\n smtp.mailfrom=nvidia.com; dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=nvidia.com;",
        "Received-SPF": "Pass (protection.outlook.com: domain of nvidia.com designates\n 12.22.5.238 as permitted sender) receiver=protection.outlook.com;\n client-ip=12.22.5.238; helo=mail.nvidia.com;",
        "From": "Gregory Etelson <getelson@nvidia.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<getelson@nvidia.com>, <rasland@nvidia.com>, <stable@dpdk.org>, \"Matan\n Azrad\" <matan@nvidia.com>, Viacheslav Ovsiienko <viacheslavo@nvidia.com>,\n Yongseok Koh <yskoh@mellanox.com>, Ori Kam <orika@mellanox.com>",
        "Subject": "[PATCH] net/mlx5: fix GRE protocol type translation for VERB API",
        "Date": "Thu, 23 Dec 2021 15:16:38 +0200",
        "Message-ID": "<20211223131638.15190-1-getelson@nvidia.com>",
        "X-Mailer": "git-send-email 2.34.1",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[172.20.187.5]",
        "X-ClientProxiedBy": "HQMAIL107.nvidia.com (172.20.187.13) To\n rnnvmail201.nvidia.com (10.129.68.8)",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "8101bb54-6ea5-4a86-66e9-08d9c6167e18",
        "X-MS-TrafficTypeDiagnostic": "DM6PR12MB4601:EE_",
        "X-Microsoft-Antispam-PRVS": "\n <DM6PR12MB4601D1C3DB29D60D292E98DCA57E9@DM6PR12MB4601.namprd12.prod.outlook.com>",
        "X-MS-Oob-TLC-OOBClassifiers": "OLM:5236;",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n PTMRmRq56tvcNy85cVuVOAiZQe9wmw3ijnZJisRUOmq4tgOUB4bBEoRbVIkb1u2bQOlx3GJahn9pCSNkH5XxT25PQf7oBYe8L+aX3qViUgssausVYjRRVcrB5IGrUJo1bKE9ExzL2tVonXhWJwlwUUVSiOlNVKbAd7OpgZ5Ad8s35VdC/YLnnJlttbcyZBjXVwqg83JL+E7nbESBpuhFzuMDGzmd476BfNYJPEjltxaHqyV6laOVB1Lhyd53q3bktB91pJmhXA3jfrK8MmACTpuijiBiGMSdDF1NCAw/nCs0VIZwAOnhOsDLX6LmgLGonc0M8B8DWS//6VeQSIzhlYWMHQ1vh9F+qAm4FoUsmmTUnHFvUTnV9jkdDMIi/c8YHO9sc2X0LRMfWaeZZEYbzT1unA6jSklqJn4U9fC3pZC/c2oVle5TGUQc77TPwOjEcpUBxXpeLNWBdeKA0ZJl1TAMSpqrSpzy98HK1egq1Vb0h9jfSUXBqkOiNbjNudnPdh7Zxebs9H8ThaB/sqU+QNn3MglFSju/k9jIqPD/R8/408iDkjOd2db9ZGvYvwhhgEKxKm2cxCGzhkZz0OkePgvnpd2wPj9m0gSAQezW/B447Czi+SWEU4W/B7xhF8H7a6ndG775XQD7zImxrnmhPkRLgZs1rkiUNSoOAc+BNgZ93tVZdLKhyHyskH2PS3USXOAZAuBpWa084kWxwxIeGfMU1QYP6z8Lq2GDt442WYPgvFCn5X4uLRiyq0CL9iecOKUiftf+0ClZo3PUwOxb2swVyvuNTGRXw0z2+zn+sSY=",
        "X-Forefront-Antispam-Report": "CIP:12.22.5.238; CTRY:US; LANG:en; SCL:1; SRV:;\n IPV:CAL; SFV:NSPM; H:mail.nvidia.com; PTR:InfoNoRecords; CAT:NONE;\n SFS:(4636009)(36840700001)(46966006)(40470700002)(2906002)(2616005)(54906003)(7696005)(36860700001)(356005)(81166007)(508600001)(83380400001)(86362001)(16526019)(336012)(186003)(36756003)(26005)(70586007)(6286002)(1076003)(450100002)(316002)(6666004)(107886003)(8936002)(6916009)(8676002)(40460700001)(5660300002)(4326008)(47076005)(55016003)(82310400004)(70206006)(426003)(36900700001);\n DIR:OUT; SFP:1101;",
        "X-OriginatorOrg": "Nvidia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "23 Dec 2021 13:16:55.5806 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 8101bb54-6ea5-4a86-66e9-08d9c6167e18",
        "X-MS-Exchange-CrossTenant-Id": "43083d15-7273-40c1-b7db-39efd9ccc17a",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[12.22.5.238];\n Helo=[mail.nvidia.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n CO1NAM11FT034.eop-nam11.prod.protection.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DM6PR12MB4601",
        "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"
    },
    "content": "When application creates several flows to match on GRE tunnel without\nexplicitly specifying GRE protocol type value in flow rules, PMD will\ntranslate that to zero mask.\nRDMA-CORE cannot distinguish between different inner flow types and\nproduces identical matchers for each zero mask.\n\nThe patch extracts inner header type from flow rule and forces it in\nGRE protocol type, if application did not specify any.\n\nCc: stable@dpdk.org\n\nFixes: 84c406e74524 (\"net/mlx5: add flow translate function\")\nSigned-off-by: Gregory Etelson <getelson@nvidia.com>\nAcked-by: Matan Azrad <matan@nvidia.com>\n---\n drivers/net/mlx5/mlx5_flow.h       | 14 +++++++++++\n drivers/net/mlx5/mlx5_flow_dv.c    | 14 -----------\n drivers/net/mlx5/mlx5_flow_verbs.c | 37 ++++++++++++++++++++----------\n 3 files changed, 39 insertions(+), 26 deletions(-)",
    "diff": "diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h\nindex 1f54649c69..f80d9454d5 100644\n--- a/drivers/net/mlx5/mlx5_flow.h\n+++ b/drivers/net/mlx5/mlx5_flow.h\n@@ -1450,6 +1450,20 @@ flow_aso_ct_get_by_idx(struct rte_eth_dev *dev, uint32_t own_idx)\n \treturn ct;\n }\n \n+static inline uint16_t\n+mlx5_translate_tunnel_etypes(uint64_t pattern_flags)\n+{\n+\tif (pattern_flags & MLX5_FLOW_LAYER_INNER_L2)\n+\t\treturn RTE_ETHER_TYPE_TEB;\n+\telse if (pattern_flags & MLX5_FLOW_LAYER_INNER_L3_IPV4)\n+\t\treturn RTE_ETHER_TYPE_IPV4;\n+\telse if (pattern_flags & MLX5_FLOW_LAYER_INNER_L3_IPV6)\n+\t\treturn RTE_ETHER_TYPE_IPV6;\n+\telse if (pattern_flags & MLX5_FLOW_LAYER_MPLS)\n+\t\treturn RTE_ETHER_TYPE_MPLS;\n+\treturn 0;\n+}\n+\n int mlx5_flow_group_to_table(struct rte_eth_dev *dev,\n \t\t\t     const struct mlx5_flow_tunnel *tunnel,\n \t\t\t     uint32_t group, uint32_t *table,\ndiff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c\nindex 1c6cae8779..5bb60dd73c 100644\n--- a/drivers/net/mlx5/mlx5_flow_dv.c\n+++ b/drivers/net/mlx5/mlx5_flow_dv.c\n@@ -93,20 +93,6 @@ static int\n flow_dv_jump_tbl_resource_release(struct rte_eth_dev *dev,\n \t\t\t\t  uint32_t rix_jump);\n \n-static inline uint16_t\n-mlx5_translate_tunnel_etypes(uint64_t pattern_flags)\n-{\n-\tif (pattern_flags & MLX5_FLOW_LAYER_INNER_L2)\n-\t\treturn RTE_ETHER_TYPE_TEB;\n-\telse if (pattern_flags & MLX5_FLOW_LAYER_INNER_L3_IPV4)\n-\t\treturn RTE_ETHER_TYPE_IPV4;\n-\telse if (pattern_flags & MLX5_FLOW_LAYER_INNER_L3_IPV6)\n-\t\treturn RTE_ETHER_TYPE_IPV6;\n-\telse if (pattern_flags & MLX5_FLOW_LAYER_MPLS)\n-\t\treturn RTE_ETHER_TYPE_MPLS;\n-\treturn 0;\n-}\n-\n static int16_t\n flow_dv_get_esw_manager_vport_id(struct rte_eth_dev *dev)\n {\ndiff --git a/drivers/net/mlx5/mlx5_flow_verbs.c b/drivers/net/mlx5/mlx5_flow_verbs.c\nindex 29cd694752..192a00d4fd 100644\n--- a/drivers/net/mlx5/mlx5_flow_verbs.c\n+++ b/drivers/net/mlx5/mlx5_flow_verbs.c\n@@ -907,6 +907,7 @@ flow_verbs_translate_item_gre(struct mlx5_flow *dev_flow,\n \t\t.size = size,\n \t};\n #else\n+\tstatic const struct rte_flow_item_gre empty_gre = {0,};\n \tconst struct rte_flow_item_gre *spec = item->spec;\n \tconst struct rte_flow_item_gre *mask = item->mask;\n \tunsigned int size = sizeof(struct ibv_flow_spec_gre);\n@@ -915,17 +916,29 @@ flow_verbs_translate_item_gre(struct mlx5_flow *dev_flow,\n \t\t.size = size,\n \t};\n \n-\tif (!mask)\n-\t\tmask = &rte_flow_item_gre_mask;\n-\tif (spec) {\n-\t\ttunnel.val.c_ks_res0_ver = spec->c_rsvd0_ver;\n-\t\ttunnel.val.protocol = spec->protocol;\n-\t\ttunnel.mask.c_ks_res0_ver = mask->c_rsvd0_ver;\n-\t\ttunnel.mask.protocol = mask->protocol;\n-\t\t/* Remove unwanted bits from values. */\n-\t\ttunnel.val.c_ks_res0_ver &= tunnel.mask.c_ks_res0_ver;\n+\tif (!spec) {\n+\t\tspec = &empty_gre;\n+\t\tmask = &empty_gre;\n+\t} else {\n+\t\tif (!mask)\n+\t\t\tmask = &rte_flow_item_gre_mask;\n+\t}\n+\ttunnel.val.c_ks_res0_ver = spec->c_rsvd0_ver;\n+\ttunnel.val.protocol = spec->protocol;\n+\ttunnel.mask.c_ks_res0_ver = mask->c_rsvd0_ver;\n+\ttunnel.mask.protocol = mask->protocol;\n+\t/* Remove unwanted bits from values. */\n+\ttunnel.val.c_ks_res0_ver &= tunnel.mask.c_ks_res0_ver;\n+\ttunnel.val.key &= tunnel.mask.key;\n+\tif (tunnel.mask.protocol) {\n \t\ttunnel.val.protocol &= tunnel.mask.protocol;\n-\t\ttunnel.val.key &= tunnel.mask.key;\n+\t} else {\n+\t\ttunnel.val.protocol = mlx5_translate_tunnel_etypes(item_flags);\n+\t\tif (tunnel.val.protocol) {\n+\t\t\ttunnel.mask.protocol = 0xFFFF;\n+\t\t\ttunnel.val.protocol =\n+\t\t\t\trte_cpu_to_be_16(tunnel.val.protocol);\n+\t\t}\n \t}\n #endif\n \tif (item_flags & MLX5_FLOW_LAYER_OUTER_L3_IPV4)\n@@ -1803,8 +1816,6 @@ flow_verbs_translate(struct rte_eth_dev *dev,\n \t\t\titem_flags |= MLX5_FLOW_LAYER_VXLAN_GPE;\n \t\t\tbreak;\n \t\tcase RTE_FLOW_ITEM_TYPE_GRE:\n-\t\t\tflow_verbs_translate_item_gre(dev_flow, items,\n-\t\t\t\t\t\t      item_flags);\n \t\t\tsubpriority = MLX5_TUNNEL_PRIO_GET(rss_desc);\n \t\t\titem_flags |= MLX5_FLOW_LAYER_GRE;\n \t\t\tbreak;\n@@ -1820,6 +1831,8 @@ flow_verbs_translate(struct rte_eth_dev *dev,\n \t\t\t\t\t\t  NULL, \"item not supported\");\n \t\t}\n \t}\n+\tif (item_flags & MLX5_FLOW_LAYER_GRE)\n+\t\tflow_verbs_translate_item_gre(dev_flow, items, item_flags);\n \tdev_flow->handle->layers = item_flags;\n \t/* Other members of attr will be ignored. */\n \tdev_flow->verbs.attr.priority =\n",
    "prefixes": []
}