From patchwork Sun May 22 10:50: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: 111579 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 41190A00C2; Sun, 22 May 2022 12:51:30 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 0B4494113D; Sun, 22 May 2022 12:51:28 +0200 (CEST) Received: from NAM12-BN8-obe.outbound.protection.outlook.com (mail-bn8nam12on2075.outbound.protection.outlook.com [40.107.237.75]) by mails.dpdk.org (Postfix) with ESMTP id 0252F40A82 for ; Sun, 22 May 2022 12:51:27 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PxQiVKLjaZ3O+uBP6udJQ8JNdw5xVNPmNUSRF2wxlddrB9K/h1XeFmXW7tgGXOxGKRT5IUXhRBNQNq8X2EvSa4sMyu6bcwDsdCnqnAI93ZvPNGFbMVFHpmFHRPdFrbwcYlDjuGZ4xeWHAxGWJ+rP1VrFdExd/mPJmyEM6jy2g4N8zK2QRkGFAx2zBWhDwT3Db7nU1byzvY19P1S3MnZfN+YZuDeYr5+GXNblCq9RA1Uy8yoa9OXfDipgrm+VfgBpd52wfbW/RgYz+MaUxk4Kxjtx/xSI9JfCzSF2mpuDxgF2U2WDWBPkoIPShhfUG2WsGvhR//asbp4enziUvkning== 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=99OQTBeI3vYDMpm92s3ntNBUJVKzzgRnQZd9ZUO7Fdg=; b=EqIztMCosx/sGRc+EsCeZatm0T69DlyFW4rx/Yi2MqX1nEP4Fby8EvFswV+I7ATTmv4OYGPIjN6ZaOgs8rOAtmhLRVTN6dxB1oqXs0j+6KRQm1fwQxYaHvF86LozrwPguwz+MT77gTrF7iUIrRHmUFZZbZABHr4UcFoOCx/HPVn1GD2PmGY62rygcl3nnVbcW48fdsKbDJd+jFxA788dDorx7Cc6B2g0XG1yX+iobf9ZqOjgtanXcv0psYCURIebUXcBouWz1VEKYJ1FB+qemd46e5V6WdDXAg7KPlh4jFhCWwq0wJe018hkduc2PMF78az+btKI2R3vjxIqHbeNJw== 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=99OQTBeI3vYDMpm92s3ntNBUJVKzzgRnQZd9ZUO7Fdg=; b=Mlab0gXGyE9tj6Kbxj1GM1nQV7iH/PwkaMhncnuQsUZIKlrsfxkmrbw5UyZU1nV8yijIotSh068xq4Jg0WkavxVRftZVHArwGdntmsuf/P5/KMi3rFclTIXdWOIZsoDd6Y244+ztu6pqsbP4Z3VN9X7kqbzOzBl/tSTU13eh0KXSNz10+TPoRrgdcWSha1kbdkawoPtCdt96eIHXRNyWpJCMqa3lW3E11pfT4X45OrOL7w6jerllZ+muiuYRPzr8TBlaHDZ2UDj4qx0hv//8FQ32Oz6uoXirdNlygG64l3+pV0ewG29cMJbSZGay0AUPXIeE2K+XOYIkGs6dqROv8Q== Received: from DS7PR03CA0294.namprd03.prod.outlook.com (2603:10b6:5:3ad::29) by DM6PR12MB4619.namprd12.prod.outlook.com (2603:10b6:5:7c::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.16; Sun, 22 May 2022 10:51:24 +0000 Received: from DM6NAM11FT026.eop-nam11.prod.protection.outlook.com (2603:10b6:5:3ad:cafe::1) by DS7PR03CA0294.outlook.office365.com (2603:10b6:5:3ad::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5273.19 via Frontend Transport; Sun, 22 May 2022 10:51: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 DM6NAM11FT026.mail.protection.outlook.com (10.13.172.161) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.5273.14 via Frontend Transport; Sun, 22 May 2022 10:51: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; Sun, 22 May 2022 10:51:23 +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; Sun, 22 May 2022 03:51:19 -0700 From: Alexander Kozyrev To: CC: , , , , , , , , , Subject: [PATCH v2 1/4] ethdev: add meter color flow matching item Date: Sun, 22 May 2022 13:50:59 +0300 Message-ID: <20220522105102.1692526-2-akozyrev@nvidia.com> X-Mailer: git-send-email 2.18.2 In-Reply-To: <20220522105102.1692526-1-akozyrev@nvidia.com> References: <20220518043459.1281590-1-akozyrev@nvidia.com> <20220522105102.1692526-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: 19b48447-7f43-4732-b873-08da3be103a4 X-MS-TrafficTypeDiagnostic: DM6PR12MB4619: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: T7/656ZIa2bUFoqZgdicOEhyttLSP6O+bT8agw7Mq2g5YKqP4GLLMu6yYyLUS9Kstd9e1jt41l7jllFRnDkGwu75NKIAqPtndrqlhW/N3O2dvEommatv83ZkFKyUrtgGzoaAYZeuKpY5k+YHbXHL/qOCUUADVE4xnTgsgX/XXPqUEAQBenKHBlN9bArpdrDecITvG1/7ZLF95rnJG5GKI8tdz5m+OmLver8UL8Wa6gKH+CKTrLVYR9Bea5Wk6JOstrA3LffeWON7d669jkJatq4M4E7nS7W6T5q5JgJMkByaCDPqS3EZ2ECbWq1cxjEJjcNf2dlwIIt+NSysSPHPrHKtIb190xcM6wSzA6YsOuT5lzAbkCE9tZltdq7FZj8STfUM67KEzEBQLLSuczT0dib9ojnMXRlEpO6f+O2e96lPNG8i6fZIi8bUC8pgr8XDQ7uYNv4PiKt+ZsQyscZjUrNXJJTnnMOLxC1H/v0uUbfoc3RrWijim7dhv6/Q+pIX1w1Wgq5rXiut+bnEAichAA8c/ZvoIss8OY58Lhfvw6vNf7NR8dqVZb+TpYZG3Mcike5ZyfdrJ4x+fymcaNCBwlPa6UUB0pzQahGqBsnV01P5vKSubQLDKuG7WGsZOz+P+B2vPKJX1FUFgBQKI4vUCz6asGbm4ZsidOP89FnRbBSj1KlsSe6LM5CpbTwMLJF6lGXGkjoaPDxRvgoB8jxdDw== 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)(46966006)(40470700004)(36840700001)(70206006)(70586007)(7416002)(81166007)(2616005)(426003)(47076005)(336012)(82310400005)(8936002)(356005)(2906002)(26005)(8676002)(4326008)(1076003)(5660300002)(83380400001)(36860700001)(86362001)(508600001)(36756003)(316002)(54906003)(6916009)(6666004)(16526019)(40460700003)(186003)(36900700001); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 May 2022 10:51:24.0059 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 19b48447-7f43-4732-b873-08da3be103a4 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: DM6NAM11FT026.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB4619 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 metadata for a packet to a particular codepoint: green, yellow or red. Signed-off-by: Alexander Kozyrev Acked-by: Ori Kam --- 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..018def1033 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. + +- ``color``: Metering color marker. + Actions ~~~~~~~ diff --git a/doc/guides/rel_notes/release_22_07.rst b/doc/guides/rel_notes/release_22_07.rst index 0ed4f92820..c1804bc74f 100644 --- a/doc/guides/rel_notes/release_22_07.rst +++ b/doc/guides/rel_notes/release_22_07.rst @@ -69,6 +69,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..75ec6621ac 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. + */ +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. *