DPDK patches and discussions
 help / color / mirror / Atom feed
From: Jan Viktorin <viktorin@cesnet.cz>
To: Asaf Penso <asafp@nvidia.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>, Ori Kam <orika@nvidia.com>,
	"Jiawei(Jonny) Wang" <jiaweiw@nvidia.com>,
	Slava Ovsiienko <viacheslavo@nvidia.com>
Subject: Re: [dpdk-dev] Duplicating traffic with RTE Flow
Date: Mon, 1 Mar 2021 13:21:26 +0100
Message-ID: <20210301132126.437df4df@tanguero.localdomain> (raw)
In-Reply-To: <DM5PR12MB2406E0D8BF49DC6095B16FE0CD3F0@DM5PR12MB2406.namprd12.prod.outlook.com>

Hello Asaf,

it is a while we were in touch regarding this topic. Finally, I am
again trying to get work this feature. I've seen that sampling is
already upstreamed which is great. However, I am not very successful
with that. There is nearly no documentation, just [1], I found no
examples, just commit logs...

I tried:

 > set sample_actions 0 port_id id 1 / end
 > flow validate 0 ingress pattern end actions sample ratio 1 index 0 / drop / end
 port_flow_complain(): Caught PMD error type 1 (cause unspecified): port id action is valid in transfer mode only: Operation not supported
 > flow validate 0 ingress transfer pattern end actions sample ratio 1 index 0 / drop / end
 port_flow_complain(): Caught PMD error type 1 (cause unspecified): (no stated reason): Operation not supported

Using CentOS 7, DPDK 20.11.0, OFED-5.2-1.0.4.
NICs: MT2892 Family [ConnectX-6 Dx] 101d (fw 22.28.1002), MT27800 Family [ConnectX-5] 1017 (fw 16.27.2008).

My primary goal is to be able to deliver exactly the same packets both
to DPDK and to the Linux kernel. Doing this at RTE Flow level would be
great due to performance and transparency.

Jan

[1] https://doc.dpdk.org/guides/prog_guide/rte_flow.html#action-sample

On Fri, 18 Sep 2020 14:23:42 +0000
Asaf Penso <asafp@nvidia.com> wrote:

> Hello Jan,
> 
> You can have a look in series [1] where we propose to add APIs to DPDK20.11 for both mirroring and sampling for packets, with additional actions of the different traffic.
> 
> [1]
> http://patches.dpdk.org/project/dpdk/list/?series=12045
> 
> Regards,
> Asaf Penso
> 
> >-----Original Message-----
> >From: dev <dev-bounces@dpdk.org> On Behalf Of Jan Viktorin
> >Sent: Friday, September 18, 2020 3:56 PM
> >To: dev@dpdk.org
> >Subject: [dpdk-dev] Duplicating traffic with RTE Flow
> >
> >Hello all,
> >
> >we are looking for a way to duplicate ingress traffic in hardware.
> >
> >There is an example in [1] suggesting to insert two fate actions into the RTE Flow
> >actions array like:
> >
> >  flow create 0 ingress pattern end \
> >      actions queue index 0 / void / queue index 1 / end
> >
> >But our experience is that PMDs reject two fate actions (tried with mlx5). Another
> >similar approach would be to deliver every single packet into two virtual
> >functions:
> >
> >  flow create 0 ingress pattern end \
> >     actions vf index 0 / vf index 1 / end
> >
> >Third possibility was to use passthru:
> >
> >  flow create 0 ingress pattern end \
> >      actions passthru / vf index 0 / end
> >  flow create 0 ingress pattern end \
> >      actions vf index 1 / end
> >
> >Again, tried on mlx5 and it does not support the passthru.
> >
> >Last idea was to use isolate with passthru (to deliver both to DPDK application
> >and to the kernel) but again there was no support on mlx5 for passthru...
> >
> >  flow isolate 0 true
> >  flow create 0 ingress pattern end actions passthru / rss end / end
> >
> >Is there any other possibility or PMD+NIC that is known to solve such issue?
> >
> >Thanks
> >Jan Viktorin
> >
> >[1]
> >https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdoc.dpdk
> >.org%2Fguides%2Fprog_guide%2Frte_flow.html%23table-rte-flow-redirect-
> >queue-5-
> >3&amp;data=02%7C01%7Casafp%40nvidia.com%7C1a46005bec5245e729e708d
> >85bd24caf%7C43083d15727340c1b7db39efd9ccc17a%7C0%7C0%7C6373603060
> >73519816&amp;sdata=EOF%2Fz62crvBZK8rwzwKIWxj5cVlfPVnU3FLmcL9X2w0%3
> >D&amp;reserved=0  


  parent reply	other threads:[~2021-03-01 12:21 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-18 12:56 Jan Viktorin
2020-09-18 14:23 ` Asaf Penso
2020-09-21 20:03   ` Jan Viktorin
2020-09-23  2:28     ` Jiawei(Jonny) Wang
2020-09-23  8:29       ` Jan Viktorin
2020-09-27  6:33         ` Jiawei(Jonny) Wang
2021-03-01 12:21   ` Jan Viktorin [this message]
2021-03-01 14:34     ` Slava Ovsiienko
2021-03-01 14:43       ` Jan Viktorin
2021-03-11  2:11         ` Jiawei(Jonny) Wang
2021-03-11 16:32           ` Jan Viktorin
2021-03-12  9:32             ` Jiawei(Jonny) Wang
2021-03-15 13:22               ` Jan Viktorin
2021-03-15 17:57                 ` Jan Viktorin
2021-03-16  4:00                 ` Jiawei(Jonny) Wang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210301132126.437df4df@tanguero.localdomain \
    --to=viktorin@cesnet.cz \
    --cc=asafp@nvidia.com \
    --cc=dev@dpdk.org \
    --cc=jiaweiw@nvidia.com \
    --cc=orika@nvidia.com \
    --cc=viacheslavo@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

DPDK patches and discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/dev/0 dev/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 dev dev/ https://inbox.dpdk.org/dev \
		dev@dpdk.org
	public-inbox-index dev

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.dev


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git