From patchwork Fri Apr 2 15:56:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Li Zhang X-Patchwork-Id: 90499 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 12C89A0548; Fri, 2 Apr 2021 17:56:39 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 247CF141111; Fri, 2 Apr 2021 17:56:27 +0200 (CEST) Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129]) by mails.dpdk.org (Postfix) with ESMTP id 843821410F9 for ; Fri, 2 Apr 2021 17:56:23 +0200 (CEST) Received: from Internal Mail-Server by MTLPINE1 (envelope-from lizh@nvidia.com) with SMTP; 2 Apr 2021 18:56:17 +0300 Received: from nvidia.com (c-235-17-1-009.mtl.labs.mlnx [10.235.17.9]) by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 132FuHlW004681; Fri, 2 Apr 2021 18:56:17 +0300 From: Li Zhang To: dekelp@nvidia.com, orika@nvidia.com, viacheslavo@nvidia.com, matan@nvidia.com, shahafs@nvidia.com Cc: dev@dpdk.org, thomas@monjalon.net, rasland@nvidia.com, roniba@nvidia.com Date: Fri, 2 Apr 2021 18:56:09 +0300 Message-Id: <20210402155613.1533218-1-lizh@nvidia.com> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20210401081624.1482490-1-lizh@nvidia.com> References: <20210401081624.1482490-1-lizh@nvidia.com> MIME-Version: 1.0 Subject: [dpdk-dev] [PATCH v2 0/4] net/mlx5: support meter policy operations 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" MLX5 PMD checks the validation of actions in policy while add a new meter policy, if pass the validation, allocates the new policy object from the meter policy indexed memory pool. It is common to use the same policy for multiple meters. MLX5 PMD supports two types of policy: termination policy and no-termination policy. The termination policy must have a fate action as in the policy actions, it can support QUEUE, RSS, PORT_ID, DROP, JUMP, MARK and SET_TAG actions if policy color is GREEN, also supports DROP action if policy color is RED. The no-termination policy uses policy ID 0 as default policy, it is created internal and cannot be changed by API. The default policy red action is drop, green action is jump to suffix table. Create this policy by policy API with green/yellow no action, red with drop action. One example in testpmd command: add port meter policy 0 g_actions end y_actions end r_actions drop / end Depends-on: series=16087 ("Add ASO meter support in MLX5 PMD ") https://patchwork.dpdk.org/project/dpdk/list/?series=16087 Depends-on: series=16082 ("Support meter policy API ") https://patchwork.dpdk.org/project/dpdk/list/?series=16082 V2: Add MLX5_MTR_DEFAULT_POLICY_ID in MLX5 PMD Li Zhang (3): net/mlx5: support meter policy operations net/mlx5: support meter creation with policy net/mlx5: prepare sub-policy for a flow with meter Shun Hao (1): net/mlx5: connect meter policy to created flows drivers/net/mlx5/linux/mlx5_os.c | 13 +- drivers/net/mlx5/mlx5.c | 76 +- drivers/net/mlx5/mlx5.h | 204 ++- drivers/net/mlx5/mlx5_flow.c | 629 +++++++++- drivers/net/mlx5/mlx5_flow.h | 123 +- drivers/net/mlx5/mlx5_flow_aso.c | 10 +- drivers/net/mlx5/mlx5_flow_dv.c | 1862 ++++++++++++++++++++++++++-- drivers/net/mlx5/mlx5_flow_meter.c | 745 ++++++++++- 8 files changed, 3328 insertions(+), 334 deletions(-)