Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/117463/?format=api
https://patches.dpdk.org/api/patches/117463/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/patch/20221006150325.660-4-valex@nvidia.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": "<20221006150325.660-4-valex@nvidia.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20221006150325.660-4-valex@nvidia.com", "date": "2022-10-06T15:03:09", "name": "[v2,03/19] net/mlx5: add hardware steering item translation function", "commit_ref": null, "pull_url": null, "state": "superseded", "archived": true, "hash": "257553ad80a1bdd027ab9a60c8f7c6f528dfa886", "submitter": { "id": 2858, "url": "https://patches.dpdk.org/api/people/2858/?format=api", "name": "Alex Vesker", "email": "valex@nvidia.com" }, "delegate": { "id": 3268, "url": "https://patches.dpdk.org/api/users/3268/?format=api", "username": "rasland", "first_name": "Raslan", "last_name": "Darawsheh", "email": "rasland@nvidia.com" }, "mbox": "https://patches.dpdk.org/project/dpdk/patch/20221006150325.660-4-valex@nvidia.com/mbox/", "series": [ { "id": 25012, "url": "https://patches.dpdk.org/api/series/25012/?format=api", "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=25012", "date": "2022-10-06T15:03:06", "name": "net/mlx5: Add HW steering low level support", "version": 2, "mbox": "https://patches.dpdk.org/series/25012/mbox/" } ], "comments": "https://patches.dpdk.org/api/patches/117463/comments/", "check": "success", "checks": "https://patches.dpdk.org/api/patches/117463/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 A1277A00C2;\n\tThu, 6 Oct 2022 17:04:08 +0200 (CEST)", "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id BF63C42C9E;\n\tThu, 6 Oct 2022 17:04:07 +0200 (CEST)", "from NAM10-DM6-obe.outbound.protection.outlook.com\n (mail-dm6nam10on2050.outbound.protection.outlook.com [40.107.93.50])\n by mails.dpdk.org (Postfix) with ESMTP id 884C842C9D\n for <dev@dpdk.org>; Thu, 6 Oct 2022 17:04:06 +0200 (CEST)", "from BN0PR03CA0051.namprd03.prod.outlook.com (2603:10b6:408:e7::26)\n by DM4PR12MB5104.namprd12.prod.outlook.com (2603:10b6:5:393::24) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.24; Thu, 6 Oct\n 2022 15:04:04 +0000", "from BN8NAM11FT014.eop-nam11.prod.protection.outlook.com\n (2603:10b6:408:e7:cafe::78) by BN0PR03CA0051.outlook.office365.com\n (2603:10b6:408:e7::26) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.24 via Frontend\n Transport; Thu, 6 Oct 2022 15:04:04 +0000", "from mail.nvidia.com (216.228.117.161) by\n BN8NAM11FT014.mail.protection.outlook.com (10.13.177.142) with Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.5709.10 via Frontend Transport; Thu, 6 Oct 2022 15:04:04 +0000", "from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com\n (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.26; Thu, 6 Oct 2022\n 08:03:51 -0700", "from nvidia.com (10.126.230.35) by rnnvmail201.nvidia.com\n (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.29; Thu, 6 Oct 2022\n 08:03:48 -0700" ], "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=F1FN9B6hkNqYazKlXEQFaqumCl8ZCQrj58J1nCccQmdAjbT00DDUvglneMuQw5mlC45EBFOEGM/w3e5gkTC6LmN1Mw15ozQTEG5MZ1PLW7LZk9AHyYEcW6PldDITq+DgZGyVnBCRRhyb1sVZaTQmR2pZMToYA54ODnKAAkfhX4rvP5ZYq+zErdAXy+xzYBomax6jIkYvxJvX1oLPm/M3jgKmBPl7vODX+y6sW8tEZ5AFXYiOHp1lPtVIR5+1Lu8Xh0HX8xqRi7NxZ3W0ZfTl0yk9xy/9jIPhhoCjrzMstzz+ETUXIL9FeZnxsjkubKYuFLowL8nIykWx1lLlcDW+RQ==", "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=PNE3zv4wkq5HS0rhCbTIkCCCmp/nB3fLc10qBWeh3SA=;\n b=N3S3ipq0JroOp0fjyY8eyKgrv2YJ/3pY71oGZK/lthiMo21mxihVTozlLi1OebgSyZB8bFAkWMwWvdXRN5VinelP9RTx9uj8mthver4U09pjrkemNTo48mZNjEtFjKmMHoENzMY86+0VwHVZIgJz8hBMBYIlRTAcbNelTIC9uoCBR+St6bve7FA3v+YAoYv8Px0YdoEoEeXCy6vsdzzND5WIQA3YRkKCChaH0bLMfaWGZz/8BjbqgScrXxZ7FIDrU39DWff2PGEgyQ3fhHJIR3rlPHoW+GYP+dAvNrDKSIbCMAdCbFUNQJuB6Rs3rZCCrH60B3FCCvtNWybTRVZwEA==", "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 216.228.117.161) smtp.rcpttodomain=monjalon.net smtp.mailfrom=nvidia.com;\n dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com;\n dkim=none (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=PNE3zv4wkq5HS0rhCbTIkCCCmp/nB3fLc10qBWeh3SA=;\n b=fre+m9DtLhuJq475gR64CxrSLOjCaAQsWeIv28EvLUr0jTOtw+e3f33xubiWhMNrzmhvrgGB7vdjt+JdR8BIf0+lGcyYRAIUGkonr7TfGFSipD2uw/3dMtil1jRvAkyDySV8g9ONt7xbSeUxNkImGfqfnlb0QU1z/sq7PBusGnCQLrv7wvZ3NQwzf9c+2FyA1NVeYD96isxm3n+zdgs488hKg5UaJZgkvIPuZGDelgpLFs+J/lftUyhkL9i5Y/TMcqS5Kaq0+fGPT9pECplmMZhQIHYwCRKhoGRpeJ4TlHXz0nIG6yHr0di3PrGFuDUgXLAEUX38Of1uum9Eq0uaZA==", "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 216.228.117.161)\n smtp.mailfrom=nvidia.com;\n 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 216.228.117.161 as permitted sender) receiver=protection.outlook.com;\n client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C", "From": "Alex Vesker <valex@nvidia.com>", "To": "<valex@nvidia.com>, <viacheslavo@nvidia.com>, <thomas@monjalon.net>,\n <suanmingm@nvidia.com>, Matan Azrad <matan@nvidia.com>", "CC": "<dev@dpdk.org>, <orika@nvidia.com>", "Subject": "[v2 03/19] net/mlx5: add hardware steering item translation function", "Date": "Thu, 6 Oct 2022 18:03:09 +0300", "Message-ID": "<20221006150325.660-4-valex@nvidia.com>", "X-Mailer": "git-send-email 2.18.1", "In-Reply-To": "<20221006150325.660-1-valex@nvidia.com>", "References": "<20220922190345.394-1-valex@nvidia.com>\n <20221006150325.660-1-valex@nvidia.com>", "MIME-Version": "1.0", "Content-Type": "text/plain", "X-Originating-IP": "[10.126.230.35]", "X-ClientProxiedBy": "rnnvmail202.nvidia.com (10.129.68.7) To\n rnnvmail201.nvidia.com (10.129.68.8)", "X-EOPAttributedMessage": "0", "X-MS-PublicTrafficType": "Email", "X-MS-TrafficTypeDiagnostic": "BN8NAM11FT014:EE_|DM4PR12MB5104:EE_", "X-MS-Office365-Filtering-Correlation-Id": "ac6e2be9-97e1-47f5-24d4-08daa7ac028a", "X-LD-Processed": "43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr", "X-MS-Exchange-SenderADCheck": "1", "X-MS-Exchange-AntiSpam-Relay": "0", "X-Microsoft-Antispam": "BCL:0;", "X-Microsoft-Antispam-Message-Info": "\n ccVlAYcMYNdnICxJbJjhYJO3Cj8CySibHit7ocHCukut1Hbd1+zg9A0ElL5hQJusgtVqERSDOQFP5Q2twBhpw7qRm5HBvRv1wF3MdbvWKlhl+R4ZK1MCCLkd5Cuky2t8N9FFL6D2+6ECz+7/ioN1HhEpnYa6iHSLqdk060oFSXwKu/IMcsk+3jnAJXDHcOCbZY9BKzrHCY8eQjFBXtq9rjNoCVZdcoPLVIyWoykZAQ9aruAIximHXTFsws+5F41mNcaLZPougHUOnIPycCKNJeHF6dMG1VxbVrWYUh5SUJAMYshRPhXZL78XwBtPDYbgPrpVIIxQi0ELfyS5vGP4ejVS4NbC5haaXP4k/BC4YcQT7i+eyquuggndeojk8scFt62fQCFMScHzUp159XbaC96+sq05ND1qv3f23m1EzGKWUrxgAbMzsN9fRPeBgXz2KCYE+gYOjMiTuOGpcp0yhqp4/iZFcEkgUmBcpTIPXkHE8Dw+FAvSVQ4HJXoef43W+NkHviNcg+G/RQ8S7o5POCC6oUP3FIE4u6c1L2PBe6BGq0izuoghSUZMiJQsMqO/0K/QWmjDhSktaOes/nl52zgKL9dwhpNNQlzHrA76W983p6Wj4TFcbeQ9sTfOpnsJFbYVfW4OTNzjESAcdelWvmCAU90pKW/BfFONMOo4XQu6S7tnNCxPn9+MbKR8EQj1T0Ro6g8mkqlr/0Z6S/qwQta5FUV8GMBahfIkD28WZ7EUevfHccGdlWDwwgdkI/BOztOQoR79BrxKghh8jyR37w==", "X-Forefront-Antispam-Report": "CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1;\n SRV:;\n IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE;\n SFS:(13230022)(4636009)(136003)(39860400002)(346002)(396003)(376002)(451199015)(46966006)(40470700004)(36840700001)(4326008)(70586007)(70206006)(8936002)(8676002)(86362001)(55016003)(82310400005)(5660300002)(40480700001)(107886003)(54906003)(36860700001)(110136005)(356005)(6636002)(6666004)(41300700001)(7636003)(316002)(478600001)(2906002)(7696005)(2616005)(36756003)(6286002)(426003)(26005)(186003)(1076003)(40460700003)(336012)(16526019)(82740400003)(47076005);\n DIR:OUT; SFP:1101;", "X-OriginatorOrg": "Nvidia.com", "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "06 Oct 2022 15:04:04.2824 (UTC)", "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n ac6e2be9-97e1-47f5-24d4-08daa7ac028a", "X-MS-Exchange-CrossTenant-Id": "43083d15-7273-40c1-b7db-39efd9ccc17a", "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161];\n Helo=[mail.nvidia.com]", "X-MS-Exchange-CrossTenant-AuthSource": "\n BN8NAM11FT014.eop-nam11.prod.protection.outlook.com", "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous", "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem", "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "DM4PR12MB5104", "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": "From: Suanming Mou <suanmingm@nvidia.com>\n\nAs hardware steering root table flows still work under FW steering\nmode. This commit provides shared item tranlsation code for hardware\nsteering root table flows.\n\nSigned-off-by: Suanming Mou <suanmingm@nvidia.com>\n---\n drivers/net/mlx5/mlx5_flow.h | 17 ++++++\n drivers/net/mlx5/mlx5_flow_dv.c | 93 +++++++++++++++++++++++++++++++++\n 2 files changed, 110 insertions(+)", "diff": "diff --git a/drivers/net/mlx5/mlx5_flow.h b/drivers/net/mlx5/mlx5_flow.h\nindex 2ebb8496f2..86a08074dc 100644\n--- a/drivers/net/mlx5/mlx5_flow.h\n+++ b/drivers/net/mlx5/mlx5_flow.h\n@@ -1006,6 +1006,18 @@ flow_items_to_tunnel(const struct rte_flow_item items[])\n \treturn items[0].spec;\n }\n \n+/* HW steering flow attributes. */\n+struct mlx5_flow_attr {\n+\tuint32_t port_id; /* Port index. */\n+\tuint32_t group; /* Flow group. */\n+\tuint32_t priority; /* Original Priority. */\n+\t/* rss level, used by priority adjustment. */\n+\tuint32_t rss_level;\n+\t/* Action flags, used by priority adjustment. */\n+\tuint32_t act_flags;\n+\tuint32_t tbl_type; /* Flow table type. */\n+};\n+\n /* Flow structure. */\n struct rte_flow {\n \tuint32_t dev_handles;\n@@ -2122,4 +2134,9 @@ int mlx5_flow_get_item_vport_id(struct rte_eth_dev *dev,\n \t\t\t\tbool *all_ports,\n \t\t\t\tstruct rte_flow_error *error);\n \n+int flow_dv_translate_items_hws(const struct rte_flow_item *items,\n+\t\t\t\tstruct mlx5_flow_attr *attr, void *key,\n+\t\t\t\tuint32_t key_type, uint64_t *item_flags,\n+\t\t\t\tuint8_t *match_criteria,\n+\t\t\t\tstruct rte_flow_error *error);\n #endif /* RTE_PMD_MLX5_FLOW_H_ */\ndiff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c\nindex a2704f0b98..a4c59f3762 100644\n--- a/drivers/net/mlx5/mlx5_flow_dv.c\n+++ b/drivers/net/mlx5/mlx5_flow_dv.c\n@@ -13229,6 +13229,99 @@ flow_dv_translate_items(struct rte_eth_dev *dev,\n \treturn 0;\n }\n \n+/**\n+ * Fill the HW steering flow with DV spec.\n+ *\n+ * @param[in] items\n+ * Pointer to the list of items.\n+ * @param[in] attr\n+ * Pointer to the flow attributes.\n+ * @param[in] key\n+ * Pointer to the flow matcher key.\n+ * @param[in] key_type\n+ * Key type.\n+ * @param[in, out] item_flags\n+ * Pointer to the flow item flags.\n+ * @param[out] error\n+ * Pointer to the error structure.\n+ *\n+ * @return\n+ * 0 on success, a negative errno value otherwise and rte_errno is set.\n+ */\n+int\n+flow_dv_translate_items_hws(const struct rte_flow_item *items,\n+\t\t\t struct mlx5_flow_attr *attr, void *key,\n+\t\t\t uint32_t key_type, uint64_t *item_flags,\n+\t\t\t uint8_t *match_criteria,\n+\t\t\t struct rte_flow_error *error)\n+{\n+\tstruct mlx5_flow_rss_desc rss_desc = { .level = attr->rss_level };\n+\tstruct rte_flow_attr rattr = {\n+\t\t.group = attr->group,\n+\t\t.priority = attr->priority,\n+\t\t.ingress = !!(attr->tbl_type == MLX5DR_TABLE_TYPE_NIC_RX),\n+\t\t.egress = !!(attr->tbl_type == MLX5DR_TABLE_TYPE_NIC_TX),\n+\t\t.transfer = !!(attr->tbl_type == MLX5DR_TABLE_TYPE_FDB),\n+\t};\n+\tstruct mlx5_dv_matcher_workspace wks = {\n+\t\t.action_flags = attr->act_flags,\n+\t\t.item_flags = item_flags ? *item_flags : 0,\n+\t\t.external = 0,\n+\t\t.next_protocol = 0xff,\n+\t\t.attr = &rattr,\n+\t\t.rss_desc = &rss_desc,\n+\t};\n+\tint ret;\n+\n+\tfor (; items->type != RTE_FLOW_ITEM_TYPE_END; items++) {\n+\t\tif (!mlx5_flow_os_item_supported(items->type))\n+\t\t\treturn rte_flow_error_set(error, ENOTSUP,\n+\t\t\t\t\t\t RTE_FLOW_ERROR_TYPE_ITEM,\n+\t\t\t\t\t\t NULL, \"item not supported\");\n+\t\tret = flow_dv_translate_items(&rte_eth_devices[attr->port_id],\n+\t\t\titems, &wks, key, key_type, NULL);\n+\t\tif (ret)\n+\t\t\treturn ret;\n+\t}\n+\tif (wks.item_flags & MLX5_FLOW_LAYER_VXLAN_GPE) {\n+\t\tflow_dv_translate_item_vxlan_gpe(key,\n+\t\t\t\t\t\t wks.tunnel_item,\n+\t\t\t\t\t\t wks.item_flags,\n+\t\t\t\t\t\t key_type);\n+\t} else if (wks.item_flags & MLX5_FLOW_LAYER_GENEVE) {\n+\t\tflow_dv_translate_item_geneve(key,\n+\t\t\t\t\t wks.tunnel_item,\n+\t\t\t\t\t wks.item_flags,\n+\t\t\t\t\t key_type);\n+\t} else if (wks.item_flags & MLX5_FLOW_LAYER_GRE) {\n+\t\tif (wks.tunnel_item->type == RTE_FLOW_ITEM_TYPE_GRE) {\n+\t\t\tflow_dv_translate_item_gre(key,\n+\t\t\t\t\t\t wks.tunnel_item,\n+\t\t\t\t\t\t wks.item_flags,\n+\t\t\t\t\t\t key_type);\n+\t\t} else if (wks.tunnel_item->type == RTE_FLOW_ITEM_TYPE_GRE_OPTION) {\n+\t\t\tflow_dv_translate_item_gre_option(key,\n+\t\t\t\t\t\t\t wks.tunnel_item,\n+\t\t\t\t\t\t\t wks.gre_item,\n+\t\t\t\t\t\t\t wks.item_flags,\n+\t\t\t\t\t\t\t key_type);\n+\t\t} else if (wks.tunnel_item->type == RTE_FLOW_ITEM_TYPE_NVGRE) {\n+\t\t\tflow_dv_translate_item_nvgre(key,\n+\t\t\t\t\t\t wks.tunnel_item,\n+\t\t\t\t\t\t wks.item_flags,\n+\t\t\t\t\t\t key_type);\n+\t\t} else {\n+\t\t\tMLX5_ASSERT(false);\n+\t\t}\n+\t}\n+\n+\tif (match_criteria)\n+\t\t*match_criteria = flow_dv_matcher_enable(key);\n+\tif (item_flags)\n+\t\t*item_flags = wks.item_flags;\n+\treturn 0;\n+}\n+\n /**\n * Fill the SW steering flow with DV spec.\n *\n", "prefixes": [ "v2", "03/19" ] }{ "id": 117463, "url": "