From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id 1156FA0548;
	Tue, 20 Apr 2021 16:04:55 +0200 (CEST)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id D93A141749;
	Tue, 20 Apr 2021 16:04:54 +0200 (CEST)
Received: from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129])
 by mails.dpdk.org (Postfix) with ESMTP id 5D1C341749
 for <dev@dpdk.org>; Tue, 20 Apr 2021 16:04:53 +0200 (CEST)
Received: from Internal Mail-Server by MTLPINE1 (envelope-from
 jiaweiw@nvidia.com) with SMTP; 20 Apr 2021 17:04:50 +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 13KE4oPL009511;
 Tue, 20 Apr 2021 17:04:50 +0300
From: Jiawei Wang <jiaweiw@nvidia.com>
To: matan@nvidia.com, orika@nvidia.com, viacheslavo@nvidia.com,
 shahafs@nvidia.com, ferruh.yigit@intel.com
Cc: dev@dpdk.org, thomas@monjalon.net, rasland@nvidia.com, roniba@nvidia.com, 
 asafp@nvidia.com
Date: Tue, 20 Apr 2021 17:04:48 +0300
Message-Id: <1618927490-229267-1-git-send-email-jiaweiw@nvidia.com>
X-Mailer: git-send-email 1.8.3.1
In-Reply-To: <1618848506-37569-1-git-send-email-jiaweiw@nvidia.com>
References: <1618848506-37569-1-git-send-email-jiaweiw@nvidia.com>
Subject: [dpdk-dev] [PATCH v10 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 <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <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>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>

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=16520  ("Add ASO meter support in MLX5 PMD ")
https://patchwork.dpdk.org/project/dpdk/list/?series=16520

v10:
* Rebase.

v9:
* Rebase.
* Fix the comments for softnic driver.

v8:
* Fix rebase conflict issues and CI warning.

v7:
* Fix comments and place two common policy template as macros.

v6:
* Delete policy example.

v5:
* Fix comments about rte_mtr_meter_policy_add.

v4:
* Fix comments about Depends-on.

v3:
* Fix coding style issues.

v2:
* Delete default policy and change relation doc files.

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