DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 0/8] support the flow-based traffic sampling
@ 2020-06-25 16:26 Jiawei Wang
  2020-06-25 16:26 ` [dpdk-dev] [PATCH 1/8] ethdev: introduce sample action for rte flow Jiawei Wang
                   ` (9 more replies)
  0 siblings, 10 replies; 186+ messages in thread
From: Jiawei Wang @ 2020-06-25 16:26 UTC (permalink / raw)
  To: orika, viacheslavo, matan; +Cc: dev, thomas, rasland, ian.stokes, fbl, jiaweiw

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


^ permalink raw reply	[flat|nested] 186+ messages in thread