From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-11.7 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS,UNPARSEABLE_RELAY,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9BC00C433ED for ; Mon, 19 Apr 2021 16:08:33 +0000 (UTC) Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by mail.kernel.org (Postfix) with ESMTP id 1B86261354 for ; Mon, 19 Apr 2021 16:08:33 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1B86261354 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=nvidia.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=dev-bounces@dpdk.org Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 417E941390; Mon, 19 Apr 2021 18:08:32 +0200 (CEST) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by mails.dpdk.org (Postfix) with ESMTP id 13CEE41390 for ; Mon, 19 Apr 2021 18:08:30 +0200 (CEST) Received: from Internal Mail-Server by MTLPINE1 (envelope-from jiaweiw@nvidia.com) with SMTP; 19 Apr 2021 19:08:26 +0300 Received: from nvidia.com (gen-l-vrt-281.mtl.labs.mlnx [10.237.44.1]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 13JG8QLq024825; Mon, 19 Apr 2021 19:08:26 +0300 From: Jiawei Wang To: matan@nvidia.com, orika@nvidia.com, viacheslavo@nvidia.com, shahafs@nvidia.com Cc: dev@dpdk.org, thomas@monjalon.net, rasland@nvidia.com, roniba@nvidia.com Date: Mon, 19 Apr 2021 19:08:23 +0300 Message-Id: <1618848506-37569-1-git-send-email-jiaweiw@nvidia.com> X-Mailer: git-send-email 1.8.3.1 In-Reply-To: <20210415092023.2089541-1-lizh@nvidia.com> References: <20210415092023.2089541-1-lizh@nvidia.com> Subject: [dpdk-dev] [PATCH v9 0/2] Support meter policy API 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 Sender: "dev" Currently, the flow meter policy does not support multiple actions per color; also the allowed action types per color are very limited. In addition, the policy cannot be pre-defined. Due to the growing in flow actions offload abilities there is a potential for the user to use variety of actions per color differently. This new meter policy API comes to allow this potential in the most ethdev common way using rte_flow action definition. A list of rte_flow actions will be provided by the user per color in order to create a meter policy. In addition, the API forces to pre-define the policy before the meters creation in order to allow sharing of single policy with multiple meters efficiently. meter_policy_id is added into struct rte_mtr_params. So that it can get the policy during the meters creation. Add two common policy template as macros in the header file, RFC ("ethdev: add pre-defined meter policy API") https://patchwork.dpdk.org/project/dpdk/patch/20210318085815.804896-1-lizh@nvidia.com/ Depends-on: series=16351 ("Add ASO meter support in MLX5 PMD ") https://patchwork.dpdk.org/project/dpdk/list/?series=16351 V2: Delete default policy and change relation doc files. V3: Fix coding style issues. V4: Fix comments about Depends-on V5: Fix comments about rte_mtr_meter_policy_add. V6: Delete policy example. V7: Fix comments and place two common policy template as macros. V8: Fix rebase conflict issues and CI warning V9: Rebase and Fix the comments for softnic driver. Haifei Luo (1): app/testpmd: support policy actions per color Li Zhang (1): ethdev: add pre-defined meter policy API app/test-flow-perf/main.c | 7 - app/test-pmd/cmdline.c | 14 +- app/test-pmd/cmdline_flow.c | 118 +++++- app/test-pmd/cmdline_mtr.c | 257 ++++-------- app/test-pmd/cmdline_mtr.h | 4 +- app/test-pmd/config.c | 32 ++ app/test-pmd/testpmd.h | 2 + doc/guides/prog_guide/rte_flow.rst | 21 + .../prog_guide/traffic_metering_and_policing.rst | 16 +- doc/guides/rel_notes/release_21_05.rst | 21 + doc/guides/testpmd_app_ug/testpmd_funcs.rst | 48 ++- drivers/net/mlx5/mlx5.h | 24 +- drivers/net/mlx5/mlx5_flow.c | 46 -- drivers/net/mlx5/mlx5_flow.h | 18 +- drivers/net/mlx5/mlx5_flow_aso.c | 8 +- drivers/net/mlx5/mlx5_flow_dv.c | 461 +-------------------- drivers/net/mlx5/mlx5_flow_meter.c | 369 +---------------- drivers/net/softnic/rte_eth_softnic_flow.c | 19 +- drivers/net/softnic/rte_eth_softnic_internals.h | 18 +- drivers/net/softnic/rte_eth_softnic_meter.c | 297 ++++++++++--- lib/librte_ethdev/rte_flow.h | 22 + lib/librte_ethdev/rte_mtr.c | 55 ++- lib/librte_ethdev/rte_mtr.h | 223 +++++++--- lib/librte_ethdev/rte_mtr_driver.h | 44 +- lib/librte_ethdev/version.map | 5 +- 25 files changed, 879 insertions(+), 1270 deletions(-) -- 1.8.3.1