From patchwork Wed May 18 04:34:56 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kozyrev X-Patchwork-Id: 111259 X-Patchwork-Delegate: andrew.rybchenko@oktetlabs.ru Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id 48C89A0503; Wed, 18 May 2022 06:35:31 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D6EBA4282B; Wed, 18 May 2022 06:35:27 +0200 (CEST) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2044.outbound.protection.outlook.com [40.107.236.44]) by mails.dpdk.org (Postfix) with ESMTP id 2CA684281D for ; Wed, 18 May 2022 06:35:27 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WEpf4fbqXn0L7+mtLehagPOfcuRd3H1MzgZkv4C3BSIpSwH/x6g+eKkSKhyzw11GfkD8Og0oFVHEWvZd+EMIDfAcPkUfYvcAZYHwH4CHYq1zBJqw4Ht1WBgWlfFpTuqQ8Whl0D/nKUHdyLCTjugcx8ZSXxyRZeHoOC7VANyoBopzSFvylhptEP6wPEP5RPydb0c2t25LBAyN+OhEnqZZwqGnjCDcPoNloPgAuYdKt8lZ6Xr/xx7/ZvCU4shC+4YEe8j6LS8eQLuTCzegh5kfRXjART21LMjzMfzEBaHuNl/8DO/xFeMeiKp1A4vzTCW4UAV8/j8lAroh75Na73THWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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; bh=X8zKTL0OUN5KuBHKn5numd9LTE/MlGjzQQefxwLzwGQ=; b=cD9fNP+BwicjXoarhaIMSO5ECe7aG5eidZtiP59AFPFS7H47w/vfSVWsrdNH/z2QTnjWQfjqDPfmEj0BVlc+L9sauWUtmY25dgbSXCpyfoC3iPtptduT9YslEAJMG/+N0n+GhBPeqhMcYfBfzNng7VCddJZC53yI/utPz2B6Q2fA/TlwPddXn0zwzSjgjIASinBlhr7Q17W7yYM0fVFkwm/zLnnBlnoRFF8iCEDs+vAVby+brtavgRpulLyKVWS+mUnJWH9Fg43b1ydVCYAyyh+KA5rfioQgDgw1CM6wNrO+bKDWXB6lgcxb/YNwCgGQFPyB4lYWAhUzBW1buE5xsw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 12.22.5.236) smtp.rcpttodomain=intel.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=X8zKTL0OUN5KuBHKn5numd9LTE/MlGjzQQefxwLzwGQ=; b=mn1Qpw+TjWvBiPbhc1nxfj/WnashIwoyFvtAKK9ISC2bl4N7acTAjZ5BMErU/GSSQHPWOsE+8hqgJiU/+qVMe+3C+Oiv+P0JDXiT+PyLd8CWZFmCtchcXZjIn/sg2L0NBTv1DjUEqAdTuZ2/nBHOIdSItiI1bBu/Xz7Hen+iEuYMkeGMX6bN3lJHISK3BR8OTAC5GjUJy34alPF949xffsbladQn5SVU/+taxrq12l4Wtffoo6QMhvXdZgecjker2PaMGxbJnwIvTUNnLuBZDJidOQYk95Zj6cECLjKRZ0AVoPzDTaNA264kwLu48MQAXtf9toEPP451TeAZtYJxyQ== Received: from MW4PR02CA0006.namprd02.prod.outlook.com (2603:10b6:303:16d::12) by BL3PR12MB6402.namprd12.prod.outlook.com (2603:10b6:208:3b2::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14; Wed, 18 May 2022 04:35:25 +0000 Received: from CO1NAM11FT004.eop-nam11.prod.protection.outlook.com (2603:10b6:303:16d:cafe::8e) by MW4PR02CA0006.outlook.office365.com (2603:10b6:303:16d::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14 via Frontend Transport; Wed, 18 May 2022 04:35:24 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 12.22.5.236) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 12.22.5.236 as permitted sender) receiver=protection.outlook.com; client-ip=12.22.5.236; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (12.22.5.236) by CO1NAM11FT004.mail.protection.outlook.com (10.13.175.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.5273.14 via Frontend Transport; Wed, 18 May 2022 04:35:24 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by DRHQMAIL109.nvidia.com (10.27.9.19) with Microsoft SMTP Server (TLS) id 15.0.1497.32; Wed, 18 May 2022 04:35:22 +0000 Received: from pegasus01.mtr.labs.mlnx (10.126.230.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.22; Tue, 17 May 2022 21:35:18 -0700 From: Alexander Kozyrev To: CC: , , , , , , , , , , , Subject: [PATCH 1/4] ethdev: add meter color flow matching item Date: Wed, 18 May 2022 07:34:56 +0300 Message-ID: <20220518043459.1281590-2-akozyrev@nvidia.com> X-Mailer: git-send-email 2.18.2 In-Reply-To: <20220518043459.1281590-1-akozyrev@nvidia.com> References: <20220502200439.4100965-1-akozyrev@nvidia.com> <20220518043459.1281590-1-akozyrev@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.230.35] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 99966bee-54b0-4424-4e45-08da3887d374 X-MS-TrafficTypeDiagnostic: BL3PR12MB6402:EE_ X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: Y1HMS4uN1HSoJva5P48JHu7tiN8Wxqh/RIAnVf4nawepzcNg1NGbJGqVHKITYOUc/0gCw0G8RtV7QQsASvzEVpKS2i8EyL9rkx0IqtwFKzIvTh7YgoLTYsP22OzZgiXl03DcrKrlNj8XuXe9Ly1u4Dm8UcZ4QYxdnK0ByTE+pvRLk64yxGCzL1iAMF+zT4eLrNjJoUteS10MzfGV1uWXcmvBWvQWQQzYN5hR/fnPO8Wd7R/KJStkG403HvukdAYa/74FPNEmYUfDkyHSsbw6RdkJtkY1tlnnJdmSYqrzydatkvZcuRHZ6tlB6ikxeh0Auq74GjfA69nAfgHnLd5H7ux5A/lkHB9XcnuCCOLTUHoVYeVGz5eVjMKavY9KwOMyfEqc1ooBxLb/AvP5bTlkGcp9patFP/vY7+9hZoV/Jj6SPGwnKkvuo7Oskloe1VH1TwFBpLHnv6uVF4ud4X0+ZbJVFNuqrVVQJ6fHDm+RLMd0w7Elu1swowUHy88iSxHhSGDLVfYpNm4Vy31wPt/aBfbjAOZM7YnC/fmpiq5kPCJpspro/M+L8Uln56ctguVmmWRcPd/s185LzNf8lELC/tUfJVhduLFpfr9AP+fNvQOfiMX4kczjNOe98tKesjh2t6eVrnAFM7wGZCAhdJcfb9JULY74Y/1ZEBbpxqMMhQyl246AnyQ4/wZ49HwNuEwAtNYz4bIyAvJGp2Z9tm9j5g== X-Forefront-Antispam-Report: CIP:12.22.5.236; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:InfoNoRecords; CAT:NONE; SFS:(13230001)(4636009)(40470700004)(46966006)(36840700001)(36756003)(40460700003)(81166007)(86362001)(70586007)(70206006)(36860700001)(2616005)(1076003)(356005)(16526019)(186003)(26005)(47076005)(426003)(336012)(83380400001)(5660300002)(7416002)(2906002)(316002)(54906003)(6666004)(6916009)(508600001)(8936002)(82310400005)(8676002)(4326008)(36900700001); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2022 04:35:24.4608 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 99966bee-54b0-4424-4e45-08da3887d374 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[12.22.5.236]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1NAM11FT004.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR12MB6402 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Provide an ability to use a Color Marker set by a Meter as a matching item in Flow API. The Color Marker reflects the metering result by setting the DS field of a packet to a particular codepoint: green, yellow or red. Signed-off-by: Alexander Kozyrev --- doc/guides/prog_guide/rte_flow.rst | 7 +++++++ doc/guides/rel_notes/release_22_07.rst | 4 ++++ lib/ethdev/rte_flow.c | 1 + lib/ethdev/rte_flow.h | 24 ++++++++++++++++++++++++ 4 files changed, 36 insertions(+) diff --git a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/rte_flow.rst index 588914b231..1877d4b9b5 100644 --- a/doc/guides/prog_guide/rte_flow.rst +++ b/doc/guides/prog_guide/rte_flow.rst @@ -1651,6 +1651,13 @@ Matches a PPP header. - ``proto_id``: PPP protocol identifier. - Default ``mask`` matches addr, ctrl, proto_id. +Item: ``METER_COLOR`` +^^^^^^^^^^^^^^^^^^^^^ + +Matches Color Marker set by a Meter in the DS field of a packet. + +- ``color``: Metering color code. + Actions ~~~~~~~ diff --git a/doc/guides/rel_notes/release_22_07.rst b/doc/guides/rel_notes/release_22_07.rst index a60a0d5f16..a61a4d77dc 100644 --- a/doc/guides/rel_notes/release_22_07.rst +++ b/doc/guides/rel_notes/release_22_07.rst @@ -60,6 +60,10 @@ New Features Added an API which can get the number of in-flight packets in vhost async data path without using lock. +* **Extended Metering and Marking support in the Flow API.** + + * Added METER_COLOR item to match Color Marker set by a Meter. + * **Updated Intel iavf driver.** * Added Tx QoS queue rate limitation support. diff --git a/lib/ethdev/rte_flow.c b/lib/ethdev/rte_flow.c index 2c35a2f13e..07d7e998c0 100644 --- a/lib/ethdev/rte_flow.c +++ b/lib/ethdev/rte_flow.c @@ -161,6 +161,7 @@ static const struct rte_flow_desc_data rte_flow_desc_item[] = { rte_flow_item_flex_conv), MK_FLOW_ITEM(L2TPV2, sizeof(struct rte_flow_item_l2tpv2)), MK_FLOW_ITEM(PPP, sizeof(struct rte_flow_item_ppp)), + MK_FLOW_ITEM(METER_COLOR, sizeof(struct rte_flow_item_meter_color)), }; /** Generate flow_action[] entry. */ diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h index d8827dd184..e3f0e86eb6 100644 --- a/lib/ethdev/rte_flow.h +++ b/lib/ethdev/rte_flow.h @@ -671,6 +671,14 @@ enum rte_flow_item_type { * See struct rte_flow_item_gre_opt. */ RTE_FLOW_ITEM_TYPE_GRE_OPTION, + + /** + * Matches Meter Color Marker. + * + * See struct rte_flow_item_meter_color. + */ + + RTE_FLOW_ITEM_TYPE_METER_COLOR, }; /** @@ -2201,6 +2209,22 @@ struct rte_flow_item_flex_conf { uint32_t nb_outputs; }; +/** + * RTE_FLOW_ITEM_TYPE_METER_COLOR. + * + * Matches Color Marker set by a Meter in the DS field of a packet. + */ +struct rte_flow_item_meter_color { + enum rte_color color; /**< Meter color marker. */ +}; + +/** Default mask for RTE_FLOW_ITEM_TYPE_METER_COLOR. */ +#ifndef __cplusplus +static const struct rte_flow_item_meter_color rte_flow_item_meter_color_mask = { + .color = RTE_COLORS, +}; +#endif + /** * Action types. * From patchwork Wed May 18 04:34:57 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kozyrev X-Patchwork-Id: 111261 X-Patchwork-Delegate: andrew.rybchenko@oktetlabs.ru Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id 39756A0503; Wed, 18 May 2022 06:35:41 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DAD4842B6F; Wed, 18 May 2022 06:35:37 +0200 (CEST) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2052.outbound.protection.outlook.com [40.107.244.52]) by mails.dpdk.org (Postfix) with ESMTP id 1C74142B69 for ; Wed, 18 May 2022 06:35:35 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=igX3wahmJEn2YrMH3fTjoei7xvjEr1022sIagE46AFc4Oq7RGz2oAEATHbMTw1oiGinVofihCAnkXTz7UKJAflIzZNKbWmeG3apestTZjTtzcr94ORAgX7bk4v9NRu3+/W43TIiOJAcQAGYhG/e/cJ45XqcspC0V4Gig0YDesfUn8y43u0Kv9psDQNlY25Wz/ZzR1aVYqmrCifEmUaWxEVmqma8xNHozjuJGBxYOvUs5SQU7mTBT16DOQ2RVvwo7XmvVJlyzth+y34Qoem61pukd8W1ZBkEGsG7DSIfQXzXVBHxTRzCUUSlOMl4atWARPRN0Y782EDnRYZzDSB8mZw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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; bh=C5ZmlM1tTrxddfQDneahORbfJXzfKIvWMP7vMB86Azs=; b=JCRmIsgD32R7xMqRA7fYzrgQOqHO27Poszz4L2ckWo8udf6/+82aELLjM8jTQTPKQLl77hnO05Ju5jb46V8XHMCs3bJw7dVZSMNq3FGdyr7f9y9Jc08F3/jKEPfra3+DCPfoBP8OTHGGScgeA6m0ZbyIu+1fqJ/9I++ZEVONxo55n1HkH/K4W0BWNxdrXqOKzvHUPWqQVh0hCTDSjSpr0YA+jeIJRs3KG+z9ppupYp4hAASUABIaiOFMMXtXtVbx65qZQhjvGQagH6wT3KpklnG0DuVrsqmHoLnqApm7vYxZa6H/JJEZ4nkhKNrBOb6p9+cF54zsV2nHOMSBEFDVEA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 12.22.5.235) smtp.rcpttodomain=intel.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=C5ZmlM1tTrxddfQDneahORbfJXzfKIvWMP7vMB86Azs=; b=hmUAE/2vSUwQOc1eCO/iw4E4Djg4uZeoLRVBJ70SxwypggnxMZeuMD3aeh7zhOIAjxVYBUCzd8a2zlrq1QjQy9CYT5ByCxqL/FYW/DqVnGpUEz7cd31k9LIb9I9Qg+axMXMFOMMwSgwz0m9RxHbAXjqQcJc9N9/GwCnV74Ab/CGmN9pf45/m07OTaEX3i6E6h+dZc/Uw5QY4C+EOQmbFKT9InxudqXAMF2y/tM2+kmTeme6m1Ru9uuur/Zfxn79CmU54MZ/J9STr2skzvbNTd0FdAA4kGw7zuL2fuDdFmDU7slKjQDAjfcusHYpDfOUPZrwOvzrIgTOyKMJJPnX+og== Received: from DM6PR07CA0037.namprd07.prod.outlook.com (2603:10b6:5:74::14) by CH2PR12MB3784.namprd12.prod.outlook.com (2603:10b6:610:21::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.13; Wed, 18 May 2022 04:35:33 +0000 Received: from DM6NAM11FT021.eop-nam11.prod.protection.outlook.com (2603:10b6:5:74:cafe::e8) by DM6PR07CA0037.outlook.office365.com (2603:10b6:5:74::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.14 via Frontend Transport; Wed, 18 May 2022 04:35:32 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 12.22.5.235) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 12.22.5.235 as permitted sender) receiver=protection.outlook.com; client-ip=12.22.5.235; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (12.22.5.235) by DM6NAM11FT021.mail.protection.outlook.com (10.13.173.76) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.5273.14 via Frontend Transport; Wed, 18 May 2022 04:35:32 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by DRHQMAIL107.nvidia.com (10.27.9.16) with Microsoft SMTP Server (TLS) id 15.0.1497.32; Wed, 18 May 2022 04:35:25 +0000 Received: from pegasus01.mtr.labs.mlnx (10.126.230.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.22; Tue, 17 May 2022 21:35:22 -0700 From: Alexander Kozyrev To: CC: , , , , , , , , , , , Subject: [PATCH 2/4] ethdev: allow meter color marker modification Date: Wed, 18 May 2022 07:34:57 +0300 Message-ID: <20220518043459.1281590-3-akozyrev@nvidia.com> X-Mailer: git-send-email 2.18.2 In-Reply-To: <20220518043459.1281590-1-akozyrev@nvidia.com> References: <20220502200439.4100965-1-akozyrev@nvidia.com> <20220518043459.1281590-1-akozyrev@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.230.35] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: fddff157-f817-48a5-9e28-08da3887d875 X-MS-TrafficTypeDiagnostic: CH2PR12MB3784:EE_ X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 9OLE2dO9Jk5wUIp+AV1w1Lp7BosXj28osdyjS/hzxLGsUFnrmnC3UBFtu9Pt34HihRpgFBWc+YmerdgXV1Qsb45Vxlc7BA74dV9PKftcaS2RHOo1IcrYMTF2ekI/z+r8Q3qYhnTPbJnmZc87piFZZoOHyfJacRX+Mt7km73VhhVJSAn0S780pMt3E/BUihKmJJA9G35k0mDUaEhdK2RyxuKhGQSKJRG3SG36zm1Okr+h27XWvSNs5QBNs8tMz8N0/5v/3+AJRXpLEFxZ5cmqhjASMZf+e3vWm2Z3BlsGVsiZRSr7uF9W3+miOo55nuH8OuXgFtcJpVwztnIgco2hKipjXrzrnVtH1q1et44Zunp+1T6kZ2tJhe/f7lVX5INC4ZDAUnt+ZAwJuEGMUXzjrsBcSRLVpG8pnK+AtmnAmf5+c60JL0Mz/A+G25QI0PkHSP9lTUVzU4Ne8M1x2iIB5GgAuYOKTjjJ5MlRVLImTzqvbJtvlgkLQaGDfMFrdT94z1iJD4KWUypm2uzfsmMics/HvA/leyJev/jL0uNnHhmvIH/pQfrUWpTKiQFPNU948w1GmxUy3N4igjE1OoMc8G1V1nl7pOTlGw87oAwnDKwzvFml6xTi0egfQYYzAq5yMIMwJWB5TRR4avg/lGe5uKqiltCdLdlljnbk7s1qpycoTSdIPhtATq0EQuDUSGpN48Q8s5FMnCVggmblcu0Qvg== X-Forefront-Antispam-Report: CIP:12.22.5.235; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:InfoNoRecords; CAT:NONE; SFS:(13230001)(4636009)(46966006)(36840700001)(40470700004)(4326008)(82310400005)(54906003)(26005)(86362001)(40460700003)(316002)(426003)(6916009)(336012)(6666004)(5660300002)(81166007)(356005)(70206006)(1076003)(70586007)(47076005)(7416002)(16526019)(83380400001)(2616005)(186003)(2906002)(36756003)(8936002)(8676002)(508600001)(36860700001)(36900700001); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2022 04:35:32.8423 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fddff157-f817-48a5-9e28-08da3887d875 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[12.22.5.235]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT021.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR12MB3784 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Extend modify_field Flow API with support of Meter Color Marker modifications. It allows setting the DS field of a packet to any color marker: green, yellow or red. User is able to specify an initial packet color for Meter API or create simple Metering and Marking flow rules based on his own coloring alghorithm. Signed-off-by: Alexander Kozyrev --- doc/guides/rel_notes/release_22_07.rst | 1 + lib/ethdev/rte_flow.h | 1 + 2 files changed, 2 insertions(+) diff --git a/doc/guides/rel_notes/release_22_07.rst b/doc/guides/rel_notes/release_22_07.rst index a61a4d77dc..ec83178d98 100644 --- a/doc/guides/rel_notes/release_22_07.rst +++ b/doc/guides/rel_notes/release_22_07.rst @@ -63,6 +63,7 @@ New Features * **Extended Metering and Marking support in the Flow API.** * Added METER_COLOR item to match Color Marker set by a Meter. + * Added ability to set Color Marker via modify_field Flow API. * **Updated Intel iavf driver.** diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h index e3f0e86eb6..817df34ed0 100644 --- a/lib/ethdev/rte_flow.h +++ b/lib/ethdev/rte_flow.h @@ -3714,6 +3714,7 @@ enum rte_flow_field_id { RTE_FLOW_FIELD_META, /**< Metadata value. */ RTE_FLOW_FIELD_POINTER, /**< Memory pointer. */ RTE_FLOW_FIELD_VALUE, /**< Immediate value. */ + RTE_FLOW_FIELD_METER_COLOR, /**< Meter Color Marker. */ }; /** From patchwork Wed May 18 04:34:58 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kozyrev X-Patchwork-Id: 111260 X-Patchwork-Delegate: andrew.rybchenko@oktetlabs.ru Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id 06FADA0503; Wed, 18 May 2022 06:35:36 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DD25342825; Wed, 18 May 2022 06:35:34 +0200 (CEST) Received: from NAM12-MW2-obe.outbound.protection.outlook.com (mail-mw2nam12on2043.outbound.protection.outlook.com [40.107.244.43]) by mails.dpdk.org (Postfix) with ESMTP id 848F14281D for ; Wed, 18 May 2022 06:35:33 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UvvbyGDsBEhkbbK7MqqZc/BpAnN8WXm4jBjYhsq15yaZX6E/J4rQI40nVIZWwYCAQZURrsyWg97zrXxf+DU5zYyPsbjaroNhsdRXuNJrTJsqLiacUIq6f7oVsLFmhV5H0zNIlep3C0qWGVG+LtsmyQgnCcIKnm00kHGrLAv0UCYpA81zi90A+JU+Xj/9vu/fBHJNocKTwagXQcS90CynImlLB1Iiy0b+UROwUx0fwrnOgHNZxeoh55qN8QOFgswnpuBsZ2XRp8yDsYE0LgMtRzaZxVO5+LD98z8WuyJecxcr+HJtmBLLY2AUi3kPYEJr2PQs6NdPOQiwwTSOUPuLiQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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; bh=iP3CExUaZRqrL51e5XtFofxTo0b/k7BGKWdxLQogXaE=; b=drWiOOVtTaVbbXDUUvFDj3axDLjvc39UDtR2wC4ZPfZJf5OY1QhcboAhqCMLEGH7qmJdC/5fkUU43ftEPPPQAo9VrEbMaBedYo6rsHlccmoWKLAUmhGpAG/zjAiorZNarK2yH3I2YxeyzahNAy02/QiuKIGWzFNiOcOiQpjEbwm7zp2+5s97yFe+DwTnroAhzycKQ0KDXWyEHWCAxRI7swu3CcozEtwoXFjBUqDrkXkvwsLXgxA+Z07FglZX+tq2rue9huucftuCuIcmq0+0tQFFKkNm6houkK+Ka5wNxlrmtRYsTWVmC9KoJGCuMRSjp8lLyvaeLFscwtQnwR6tUQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 12.22.5.238) smtp.rcpttodomain=intel.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iP3CExUaZRqrL51e5XtFofxTo0b/k7BGKWdxLQogXaE=; b=btXdCV4VjNstSesUdt2ZiIQJLLtrr77QRY5rz+b3WFPOEXp9jhJHP3p1NIKdj/N0XLyy01GzgiqbLZWpFCkT48NI9aa2HWDZsmgOAki5YIUg4YhqEk0GALyFDiViy/X5WsvuVy07cZXV3RCCYF0ExFfO6ohAl/qyzvjbO0sS9e92ehmwElSEW9/qwiu61S4nvvtt92IPLp68i13v4uO4QAbaWE9JcDmXGQ2KZU8y9DCrZAAWitYlFNAs8rNkMR1CDK10qiymbLo5dBH9l8MpY9oGjNSSnD0UeKhDQosMV9tUnjmmureta5q7jbs98CXb3YnG7uUgEhsYOVm+wAziaw== Received: from MW4PR02CA0030.namprd02.prod.outlook.com (2603:10b6:303:16d::18) by MN2PR12MB4359.namprd12.prod.outlook.com (2603:10b6:208:265::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.14; Wed, 18 May 2022 04:35:30 +0000 Received: from CO1NAM11FT043.eop-nam11.prod.protection.outlook.com (2603:10b6:303:16d:cafe::af) by MW4PR02CA0030.outlook.office365.com (2603:10b6:303:16d::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5250.14 via Frontend Transport; Wed, 18 May 2022 04:35:29 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 12.22.5.238) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 12.22.5.238 as permitted sender) receiver=protection.outlook.com; client-ip=12.22.5.238; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (12.22.5.238) by CO1NAM11FT043.mail.protection.outlook.com (10.13.174.193) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.5273.14 via Frontend Transport; Wed, 18 May 2022 04:35:29 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by DRHQMAIL105.nvidia.com (10.27.9.14) with Microsoft SMTP Server (TLS) id 15.0.1497.32; Wed, 18 May 2022 04:35:29 +0000 Received: from pegasus01.mtr.labs.mlnx (10.126.230.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.22; Tue, 17 May 2022 21:35:25 -0700 From: Alexander Kozyrev To: CC: , , , , , , , , , , , Subject: [PATCH 3/4] ethdev: add meter profile config calculation Date: Wed, 18 May 2022 07:34:58 +0300 Message-ID: <20220518043459.1281590-4-akozyrev@nvidia.com> X-Mailer: git-send-email 2.18.2 In-Reply-To: <20220518043459.1281590-1-akozyrev@nvidia.com> References: <20220502200439.4100965-1-akozyrev@nvidia.com> <20220518043459.1281590-1-akozyrev@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.230.35] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0ecd21b8-0b0b-4048-f5b2-08da3887d67c X-MS-TrafficTypeDiagnostic: MN2PR12MB4359:EE_ X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: RdUM4VSo9yEju4dhGIbjeG5OddcLtbVg2+KDtRVgqFcxw1LR78GRQggbHuJqDjjohmD5kITdjTZO8dq3Q9JfQLY45RJ3l9zh6Ew4BBwgl7aBUNLDBPl4HBZFroGmQoerQCdchAI3yvdaGStbdUsg/Q0OkklpnnchDCyTkd8EqFII/Q4hySbxDbHp3QjkwG8QeLLj42ki/j/QmWanhzMzqvCh+T/MLMhx1MBXn7wpK7h/vlN35JvqRRW1mSR55Io6Gflo/22Iz+PuBDkW7CYbqdEf3dgDaQu0cyKxMFpOpCA2Y9QgbL5v+t+QVkM15n8CHJKBD6E3p5J5Zss750fRWY5sogZuDvceF2Pr2ByM2hUeYh0M/KWzwkQsUbhk17cdzrES2ADHnB6pSkebIpQb7mALlPOCa70bphIb3/yjwq4VvfDO1b912TFLybudlFhD7CoyFVoaIhS5S3mz6h5nQJura2gKqsiQH2bfVNW67KIG/s8R0xpVwuqyI7m77j68MS1VDQPaeNXe2SKRhARmOmpq9HBIg49Vg/VDwcilYJIGZqdSpQaX2p2UpP/PfXG7oOrByls2mmqQKF/3pZ3l6kI5+eLZm2+rF9F5d1i6xLQb+DLwhGcwS3udrcnQRIfyQd9a0dD/zRtHetRtr9MU/xG/pyifiLJrjBVlkdX+2A+Abv5M6BmD0hAwNk9f2ooYjKeQsARw8Q0XBHX5awskOw== X-Forefront-Antispam-Report: CIP:12.22.5.238; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:InfoNoRecords; CAT:NONE; SFS:(13230001)(4636009)(46966006)(36840700001)(40470700004)(4326008)(8676002)(1076003)(16526019)(2616005)(47076005)(83380400001)(70586007)(2906002)(36756003)(8936002)(7416002)(40460700003)(508600001)(82310400005)(186003)(426003)(6666004)(5660300002)(336012)(26005)(81166007)(356005)(6916009)(316002)(86362001)(54906003)(36860700001)(70206006)(36900700001); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2022 04:35:29.5506 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0ecd21b8-0b0b-4048-f5b2-08da3887d67c X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[12.22.5.238]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1NAM11FT043.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MN2PR12MB4359 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Introduce a new Meter API to calculate PMD-specific profile configuration values based on user-provided CIR, CBS and EBS. That will allow fast Meter configuration in hardware without the need to convert these values every time we use a profile. Signed-off-by: Alexander Kozyrev --- .../traffic_metering_and_policing.rst | 2 ++ doc/guides/rel_notes/release_22_07.rst | 1 + lib/ethdev/rte_mtr.c | 12 ++++++++++ lib/ethdev/rte_mtr.h | 24 +++++++++++++++++++ lib/ethdev/rte_mtr_driver.h | 9 +++++++ lib/ethdev/version.map | 3 +++ 6 files changed, 51 insertions(+) diff --git a/doc/guides/prog_guide/traffic_metering_and_policing.rst b/doc/guides/prog_guide/traffic_metering_and_policing.rst index ceb5a96488..99c25f8937 100644 --- a/doc/guides/prog_guide/traffic_metering_and_policing.rst +++ b/doc/guides/prog_guide/traffic_metering_and_policing.rst @@ -105,3 +105,5 @@ traffic meter and policing library. * Adding one (or multiple) actions of the type ``RTE_FLOW_ACTION_TYPE_METER`` to the list of meter actions (``struct rte_mtr_meter_policy_params::actions``) specified per color as show in :numref:`figure_rte_mtr_chaining`. +#. Traffic metering algorithm configuration may be converted to the PDM-specific + values using ``rte_mtr_meter_profile_calculate()`` API function for reuse. diff --git a/doc/guides/rel_notes/release_22_07.rst b/doc/guides/rel_notes/release_22_07.rst index ec83178d98..5f19223663 100644 --- a/doc/guides/rel_notes/release_22_07.rst +++ b/doc/guides/rel_notes/release_22_07.rst @@ -64,6 +64,7 @@ New Features * Added METER_COLOR item to match Color Marker set by a Meter. * Added ability to set Color Marker via modify_field Flow API. + * Added Meter API to calculate a profile configuration values. * **Updated Intel iavf driver.** diff --git a/lib/ethdev/rte_mtr.c b/lib/ethdev/rte_mtr.c index e49fcf271c..e236cac09b 100644 --- a/lib/ethdev/rte_mtr.c +++ b/lib/ethdev/rte_mtr.c @@ -91,6 +91,18 @@ rte_mtr_meter_profile_delete(uint16_t port_id, meter_profile_id, error); } +/** MTR meter profile calculate */ +int +rte_mtr_meter_profile_calculate(uint16_t port_id, + uint32_t meter_profile_id, + void *meter_profile_cfg, + struct rte_mtr_error *error) +{ + struct rte_eth_dev *dev = &rte_eth_devices[port_id]; + return RTE_MTR_FUNC(port_id, meter_profile_calculate)(dev, + meter_profile_id, meter_profile_cfg, error); +} + /* MTR meter policy validate */ int rte_mtr_meter_policy_validate(uint16_t port_id, diff --git a/lib/ethdev/rte_mtr.h b/lib/ethdev/rte_mtr.h index 40df0888c8..d7b916b168 100644 --- a/lib/ethdev/rte_mtr.h +++ b/lib/ethdev/rte_mtr.h @@ -524,6 +524,30 @@ rte_mtr_meter_profile_delete(uint16_t port_id, uint32_t meter_profile_id, struct rte_mtr_error *error); +/** + * Meter profile calculate + * + * Calculate CIR, CBS and EBS values for a given meter profile ID. + * Convert user-provided values to PMD-specific configuration. + * + * @param[in] port_id + * The port identifier of the Ethernet device. + * @param[in] meter_profile_id + * Meter profile ID. Needs to be the valid. + * @param[out] meter_profile_cfg + * Meter profile configuration filled by PMD. + * @param[out] error + * Error details. Filled in only on error, when not NULL. + * @return + * 0 on success, non-zero error code otherwise. + */ +__rte_experimental +int +rte_mtr_meter_profile_calculate(uint16_t port_id, + uint32_t meter_profile_id, + void *meter_profile_cfg, + struct rte_mtr_error *error); + /** * Check whether a meter policy can be created on a given port. * diff --git a/lib/ethdev/rte_mtr_driver.h b/lib/ethdev/rte_mtr_driver.h index ee8c6ef7ad..f1982ff220 100644 --- a/lib/ethdev/rte_mtr_driver.h +++ b/lib/ethdev/rte_mtr_driver.h @@ -41,6 +41,12 @@ typedef int (*rte_mtr_meter_profile_delete_t)(struct rte_eth_dev *dev, uint32_t meter_profile_id, struct rte_mtr_error *error); +/** @internal MTR meter profile calculate. */ +typedef int (*rte_mtr_meter_profile_calculate_t)(struct rte_eth_dev *dev, + uint32_t meter_profile_id, + void *meter_profile_cfg, + struct rte_mtr_error *error); + /** @internal MTR meter policy validate. */ typedef int (*rte_mtr_meter_policy_validate_t)(struct rte_eth_dev *dev, struct rte_mtr_meter_policy_params *policy, @@ -156,6 +162,9 @@ struct rte_mtr_ops { /** MTR object meter policy update */ rte_mtr_meter_policy_update_t meter_policy_update; + + /** MTR meter profile calculate */ + rte_mtr_meter_profile_calculate_t meter_profile_calculate; }; /** diff --git a/lib/ethdev/version.map b/lib/ethdev/version.map index 20391ab29e..76024331cb 100644 --- a/lib/ethdev/version.map +++ b/lib/ethdev/version.map @@ -279,6 +279,9 @@ EXPERIMENTAL { rte_flow_async_action_handle_create; rte_flow_async_action_handle_destroy; rte_flow_async_action_handle_update; + + # added in 22.07 + rte_mtr_meter_profile_calculate; }; INTERNAL { From patchwork Wed May 18 04:34:59 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexander Kozyrev X-Patchwork-Id: 111262 X-Patchwork-Delegate: andrew.rybchenko@oktetlabs.ru Return-Path: 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]) by inbox.dpdk.org (Postfix) with ESMTP id 0F5E1A0503; Wed, 18 May 2022 06:35:49 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 4585E42B7B; Wed, 18 May 2022 06:35:42 +0200 (CEST) Received: from NAM10-BN7-obe.outbound.protection.outlook.com (mail-bn7nam10on2045.outbound.protection.outlook.com [40.107.92.45]) by mails.dpdk.org (Postfix) with ESMTP id 0F7DB4281D for ; Wed, 18 May 2022 06:35:41 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nge6TeP7DhZ3thnhudUoOn8rrLrtSVbpkezB8wqD9DhxeC60Cxy7Fa9j1z+w6xpdXDUU0Kj7d1mgGNKkMqldSmRRgl9yziyX8Y/M57/dPgJWyiLoXpRLG1Vsc7lMeScTx4lNeGazwx0Dj8/mSGYGrm713RU1D9S0c+Mcy3f5IwdzpYTRINrBTg5iLOuRZA/RlD4VQUn69GJYWkR6ztw6R0U5gDmuE5K3eCxPa4q7Wa2AgB7lCjetdVYYNmIBfOk8ynj1sxLCakW0U/wfGgAItZ5oGOdfavijLCLswVXd47BqR4unDHhTJUHviIgCi5MiQxAL0Ytht3G0abLx7i5muA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; 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; bh=IVAmRraNnUJmBC/VMyugOTEm8Z3rU9TBm7lsug6RZWs=; b=PYW1frITUJjI6sO5nIDIFM6GTpiXOgKJKkRxx0fO3cl9s8ezOfbpXMaFrlPjGLkh588M3DbWxHAmpzser71yvzOFn6hdn91qr658MVZtDbZG6Rsu378IE1FC7pM9YasejKUyoThIVWdR14oa7RaRMH9eXwonEoUdGhrbtes0V2v0z+g5s79tvVtWNf4/xX6XuchI1e+e27EA8Mth4JetBLADp7jBBI3IZle0v1xu6kiih7EPGhTQBuHcbICndU2qJpE+HOFzGS6z3qwbgXzwnBmY4qZggR7i5LSC4f+A1Qca8dNLQl9AQt2SPp8oWUZEffSs42CF+wcwv5h0s1dtRQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 12.22.5.234) smtp.rcpttodomain=intel.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=IVAmRraNnUJmBC/VMyugOTEm8Z3rU9TBm7lsug6RZWs=; b=fvdXYLQGsJcaQEa6xPhgnBRwYm0WUSEJkgYSSOtwralEhP7gveP8rPXprf0h9Sb7oOHD2j4WhZxzcl0UT2bICbyuNrk3A4Tzldfytgp3eokPGVBONK5ulhkjdJSkQ3gNCY/pYHDB1r6S8uUyAgBlHktmKE77X3WUfIMU2/PquTkUEwoZG5bJ3K/79JXKLIJWRKEJTbDgG54Eey0g2gh+eEZJTx3dixPglEmKdhUp1EMneXlZJgOrOUDOTvwXoWXg9TduM3wT6l7anvN4wk3qaeQo3cU+DdE77e0Bc7SAMFJOtPqihQkugRLI0MtiS9tKlT+56qdxpgT1Mt0w5hRC2g== Received: from BN9PR03CA0097.namprd03.prod.outlook.com (2603:10b6:408:fd::12) by CY4PR12MB1896.namprd12.prod.outlook.com (2603:10b6:903:124::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.13; Wed, 18 May 2022 04:35:39 +0000 Received: from BN8NAM11FT040.eop-nam11.prod.protection.outlook.com (2603:10b6:408:fd:cafe::77) by BN9PR03CA0097.outlook.office365.com (2603:10b6:408:fd::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.13 via Frontend Transport; Wed, 18 May 2022 04:35:38 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 12.22.5.234) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 12.22.5.234 as permitted sender) receiver=protection.outlook.com; client-ip=12.22.5.234; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (12.22.5.234) by BN8NAM11FT040.mail.protection.outlook.com (10.13.177.166) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.5273.14 via Frontend Transport; Wed, 18 May 2022 04:35:38 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by DRHQMAIL101.nvidia.com (10.27.9.10) with Microsoft SMTP Server (TLS) id 15.0.1497.32; Wed, 18 May 2022 04:35:32 +0000 Received: from pegasus01.mtr.labs.mlnx (10.126.230.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.22; Tue, 17 May 2022 21:35:28 -0700 From: Alexander Kozyrev To: CC: , , , , , , , , , , , Subject: [PATCH 4/4] ethdev: add meter color mark flow action Date: Wed, 18 May 2022 07:34:59 +0300 Message-ID: <20220518043459.1281590-5-akozyrev@nvidia.com> X-Mailer: git-send-email 2.18.2 In-Reply-To: <20220518043459.1281590-1-akozyrev@nvidia.com> References: <20220502200439.4100965-1-akozyrev@nvidia.com> <20220518043459.1281590-1-akozyrev@nvidia.com> MIME-Version: 1.0 X-Originating-IP: [10.126.230.35] X-ClientProxiedBy: rnnvmail202.nvidia.com (10.129.68.7) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 67cab4df-8835-419c-34ed-08da3887dbf3 X-MS-TrafficTypeDiagnostic: CY4PR12MB1896:EE_ X-LD-Processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: esP3gBHKKHW24kjxMEDv5fYOoHbvJxIsykYZqcdxSVz88H2T85XLSfyqUT3GLUc+X2L6EZExtq2bOUNBLVTxm8++cs7ynnp5ILcffijxzDu6SwM/bbdKYeOHDucBFHLg9HK18ydNnCjwYGB5HpjzOWeWuidGcDmWH+DZSk3LM8EjvELBNMyGCAHGvUjZ+n3YsG1yk7k8+W3FcvFEWpKYRPmN0Xt77dpCv5qrn/5AhFu1XtqFlz6FhvVrV1/5f1Q7S7hgpEAaIFpLD7tbq9GzVjuO4idfery773JNBKJjFYk6dPbe4FGiDjCRvDfOqmvEFlfx0iRg7HRnA9EQiaFE0e1O+XkWQW45hy6HqQgI3wyUhhSHzz1/kpzqMu911F9tTBQoAzaLWxeUrDA/moavwzAq7DxlDIB74JnLSxRhMxMorjwSQ4jkBrLk644p13rYSomD4b70pU2LVdcgNGJj0HODQTPlxb1ovfv1R/vbRRhdd06HwIjjunfJOY8VKlQzJ78y21Sv8r6V27h8mlW8a6Hbfh1HNb/4scEC9+3mofXG/L4aIEtFRhf9KGrw6LJC0qpsgub45Ydcl9qt1qe8zkQ7yK3jnMFo7TKVbrn9tJFq8Qwlq88Pf5bYIWqEHMGUxoZjNLP6XEQhpvDcC8IFvwqQpPKXlB+qpxXlLSSJsd6fdFFIb+pMMpw1i+DWLJ5wNc8JRakdliT9Z+Q/hp5rNg== X-Forefront-Antispam-Report: CIP:12.22.5.234; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:InfoNoRecords; CAT:NONE; SFS:(13230001)(4636009)(46966006)(36840700001)(40470700004)(2906002)(508600001)(6916009)(54906003)(316002)(70206006)(81166007)(86362001)(356005)(8676002)(4326008)(6666004)(40460700003)(5660300002)(186003)(26005)(36860700001)(426003)(47076005)(2616005)(336012)(8936002)(7416002)(82310400005)(16526019)(1076003)(70586007)(83380400001)(36756003)(36900700001); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 May 2022 04:35:38.6517 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 67cab4df-8835-419c-34ed-08da3887dbf3 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[12.22.5.234]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: BN8NAM11FT040.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1896 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Create a new Flow API action: METER_MARK. It Meters an IP packet stream and marks its packets with colors. Unlike the METER action, it performs no policing at all. An user has the flexibility to create any policies with the help of the METER_COLOR item later, only meter profile is required now. Signed-off-by: Alexander Kozyrev --- doc/guides/prog_guide/rte_flow.rst | 26 +++++++++++++++++++ doc/guides/rel_notes/release_22_07.rst | 1 + lib/ethdev/rte_flow.h | 36 ++++++++++++++++++++++++++ 3 files changed, 63 insertions(+) diff --git a/doc/guides/prog_guide/rte_flow.rst b/doc/guides/prog_guide/rte_flow.rst index 1877d4b9b5..f5a2150f86 100644 --- a/doc/guides/prog_guide/rte_flow.rst +++ b/doc/guides/prog_guide/rte_flow.rst @@ -3411,6 +3411,32 @@ This action is meant to use the same structure as `Action: PORT_REPRESENTOR`_. See also `Item: REPRESENTED_PORT`_. +Action: ``METER_MARK`` +^^^^^^^^^^^^^^^^^^^^^^ + +Meters an IP packet stream and marks its packets with colors. + +Applies a stage of metering only. Unlike the ``METER`` action, +no policing is performed and the ``METER_COLOR`` item may be used later. +The profle object has to be created using the rte_mtr_profile_create() API. +The ID of the profile object may be specified as an action parameter. +Or PMD-specific profile configuration may be used to save the time to calculate +the profile configuration via rte_mtr_profile_calculate() API. + +.. _table_rte_flow_action_meter_mark: + +.. table:: METER_MARK + + +------------------+----------------------+ + | Field | Value | + +==================+======================+ + | ``mode`` | Meter profile mode | + +------------------+----------------------+ + | ``profile_id`` | Meter profile ID | + +------------------+----------------------+ + | ``profile_cfg`` | Meter profile config | + +------------------+----------------------+ + Negative types ~~~~~~~~~~~~~~ diff --git a/doc/guides/rel_notes/release_22_07.rst b/doc/guides/rel_notes/release_22_07.rst index 5f19223663..591ac7cfba 100644 --- a/doc/guides/rel_notes/release_22_07.rst +++ b/doc/guides/rel_notes/release_22_07.rst @@ -65,6 +65,7 @@ New Features * Added METER_COLOR item to match Color Marker set by a Meter. * Added ability to set Color Marker via modify_field Flow API. * Added Meter API to calculate a profile configuration values. + * Added METER_MARK action to perform Meter color marking only. * **Updated Intel iavf driver.** diff --git a/lib/ethdev/rte_flow.h b/lib/ethdev/rte_flow.h index 817df34ed0..ac3a3b338f 100644 --- a/lib/ethdev/rte_flow.h +++ b/lib/ethdev/rte_flow.h @@ -2906,6 +2906,15 @@ enum rte_flow_action_type { * @see struct rte_flow_action_ethdev */ RTE_FLOW_ACTION_TYPE_REPRESENTED_PORT, + + /** + * Traffic metering and marking (MTR). + * the entity represented by the given ethdev. + * + * @see struct rte_flow_action_meter_mark + * See file rte_mtr.h for MTR profile object configuration. + */ + RTE_FLOW_ACTION_TYPE_METER_MARK, }; /** @@ -3775,6 +3784,33 @@ struct rte_flow_action_modify_field { uint32_t width; /**< Number of bits to use from a source field. */ }; +/** + * Meter profile mode for METER_MARK action. + */ +enum rte_flow_meter_profile_mode { + RTE_FLOW_METER_PROFILE_ID = 0, /**< Use profile ID. */ + RTE_FLOW_METER_PROFILE_CFG, /**< Use profile config. */ +}; + +/** + * RTE_FLOW_ACTION_TYPE_METER_MARK + * + * Traffic metering and marking (MTR). + * + * Meters an IP packet stream and marks its packets either + * green, yellow, or red according to the specified profile. + */ +struct rte_flow_action_meter_mark { + enum rte_flow_meter_profile_mode mode; /** Meter profile mode. */ + RTE_STD_C11 + union { + /**< Profile ID create with rte_mtr_profile_create(). */ + uint32_t profile_id; + /**< Profile config calculated with rte_mtr_profile_calculate(). */ + void *profile_cfg; + }; +}; + /* Mbuf dynamic field offset for metadata. */ extern int32_t rte_flow_dynf_metadata_offs;