From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 954E2A0350; Thu, 25 Jun 2020 18:50:39 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 2B0D725B3; Thu, 25 Jun 2020 18:50:39 +0200 (CEST) Received: from git-send-mailer.rdmz.labs.mlnx (unknown [37.142.13.130]) by dpdk.org (Postfix) with ESMTP id 70541CF3 for ; Thu, 25 Jun 2020 18:50:38 +0200 (CEST) From: Jiawei Wang To: orika@mellanox.com, viacheslavo@mellanox.com, matan@mellanox.com Cc: dev@dpdk.org, thomas@monjalon.net, rasland@mellanox.com, ian.stokes@intel.com, fbl@redhat.com, jiaweiw@mellanox.com Date: Thu, 25 Jun 2020 19:26:11 +0300 Message-Id: <1593102379-400132-1-git-send-email-jiaweiw@mellanox.com> X-Mailer: git-send-email 1.8.3.1 Subject: [dpdk-dev] [PATCH 0/8] support the flow-based traffic sampling X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" This patch set implement the flow sampling for mlx5 driver. The solution is introduced a new rte_flow action that will sample the incoming traffic and send a duplicated traffic in some predefined ratio to the application, while the original packet will continue to the target destination. If the sample ratio value be set to 1, means that the packets would be completely mirrored. The sample packet can be assigned with additional set of actions from the original packet. MLX5 PMD driver will be responsible for validate and translate the sample action while creating a flow. Jiawei Wang (8): ethdev: introduce sample action for rte flow common/mlx5: glue for default miss and sample action common/mlx5: query sampler object capability via DevX net/mlx5: add the validate sample action net/mlx5: split sample flow into two sub flows net/mlx5: update translate function for sample action net/mlx5: update the metadata register c0 support app/testpmd: add testpmd command for sample action app/test-pmd/cmdline_flow.c | 285 ++++++++++++++- drivers/common/mlx5/Makefile | 10 + drivers/common/mlx5/linux/meson.build | 4 + drivers/common/mlx5/linux/mlx5_glue.c | 28 ++ drivers/common/mlx5/linux/mlx5_glue.h | 13 + drivers/common/mlx5/mlx5_devx_cmds.c | 27 ++ drivers/common/mlx5/mlx5_devx_cmds.h | 1 + drivers/common/mlx5/mlx5_prm.h | 51 +++ drivers/net/mlx5/linux/mlx5_os.c | 14 + drivers/net/mlx5/mlx5.c | 11 + drivers/net/mlx5/mlx5.h | 4 + drivers/net/mlx5/mlx5_flow.c | 270 +++++++++++++- drivers/net/mlx5/mlx5_flow.h | 52 ++- drivers/net/mlx5/mlx5_flow_dv.c | 668 +++++++++++++++++++++++++++++++++- lib/librte_ethdev/rte_flow.c | 1 + lib/librte_ethdev/rte_flow.h | 29 ++ 16 files changed, 1422 insertions(+), 46 deletions(-) -- 1.8.3.1