DPDK usage discussions
 help / color / mirror / Atom feed
From: Pawel Wodkowski <pawelwod@gmail.com>
To: Tom Barbette <barbette@kth.se>,
	Filip Janiszewski <contact@filipjaniszewski.com>
Cc: "users@dpdk.org" <users@dpdk.org>
Subject: Re: [dpdk-users] Round-robin packet distribution
Date: Tue, 25 Aug 2020 14:17:53 +0200	[thread overview]
Message-ID: <e02c26a3-f3a4-7c0a-9fd4-d77591adf0f6@gmail.com> (raw)
In-Reply-To: <09498ac1-672d-a1e5-f917-d5720e1c90a7@kth.se>

Yes, I meant bytes. Thanks Tom.

If you deal with encrypted traffic you can use the payload as random 
data and spread it using flow director.
Constructing flow rules is painful process and be prepared that you case 
might not work if it is not coverd by test scenarios in DTS.
Also you will have to read documentation of your NIC to see what kind of 
flow type it might support.

Start from reading https://doc.dpdk.org/guides/prog_guide/rte_flow.html 
eg Table 12.22

But in my mind, as already mentioned by someone else, I think that 
randomly spreading packets across different cores
might not be a good idea.

If you want packets to be spread across all cores in deterministic but 
even way then easiest would be to use
RSS over IP / UDP. As a second iteration I would use Flow director API + 
IP / UDP rules *without* RAW items.

Paweł

On 24.08.2020 12:07, Tom Barbette wrote:
> He means bytes.
>
> I think some drivers only allow the flexible bytes to start after the 
> actual matching though, eg TCP header. So check for that. I'd contact 
> Sprayer authors to ask how they did it if I were you.
>
> Do you have a specific NIC in mind? Mellanox's ones are pretty 
> powerful, it may be worth it to have a PM-to-PM meeting asking about 
> feature, or CC one of the maintainer. Devs do not always look at all 
> mails.
>
> Cheers,
>
> Tom
>
> Le 18/08/2020 à 16:27, Filip Janiszewski a écrit :
>> Do you mean bit or bytes? 'b' refers to bit, maybe you meant bytes? As
>> for the network traffic type, we're capturing financial market traffic
>> over TCP/UDP, nothing really fancy.
>>
>> Thanks
>>
>> Il 8/18/20 3:50 PM, Pawel Wodkowski ha scritto:
>>> Flexible payload matching (aka RAW in flow API) works up to first 
>>> 64b of
>>> the
>>> packet - at least in e1000, ixgbe and i40e.
>>>
>>> It will be easier if you can provide some details about you network
>>> traffic.
>>>
>>> Paweł
>>>
>>> On 18.08.2020 14:40, Filip Janiszewski wrote:
>>>> Hi,
>>>>
>>>> We had a look at that, and decided that it might be a bit too
>>>> complicated to implement in our SW and will not work in a 
>>>> performant way
>>>> as we might wish, ideally we're looking for a simple approach even if
>>>> not ideal..
>>>>
>>>> So, I was wondering if we can get at least a "fair" distribution (no
>>>> round robin) using rte flow? And BTW, is it even possible to access 
>>>> the
>>>> checksum from this API using for example the pattern matching with an
>>>> offset that points to the proper byte location in the packet? (It 
>>>> seems
>>>> it can't be done without modification to the driver..)
>>>>
>>>> Thanks
>>>>
>>>> Il 7/25/20 10:28 AM, Tom Barbette ha scritto:
>>>>> Hi Filip,
>>>>>
>>>>> This is not possible, but you may use the idea of Sprayer
>>>>> (http://www.gta.ufrj.br/ftp/gta/TechReports/SCC18d.pdf) to dispatch
>>>>> packets randomly (use RSS on the checksum).
>>>>>
>>>>> However, in our paper RSS++
>>>>> (https://www.diva-portal.org/smash/get/diva2:1371780/FULLTEXT01.pdf) 
>>>>> we
>>>>> show it's nearly always a bad idea because you'll have to share 
>>>>> state,
>>>>> and even for "stateless" function, that leads to a very bad 
>>>>> locality in
>>>>> a firewall as the same rules have to be fetched to L1 to all cores at
>>>>> the same time when you receive a burst of similar packets.
>>>>>
>>>>> Tom
>>>>>
>>>>> Le 24/07/2020 à 12:05, Filip Janiszewski a écrit :
>>>>>> Hi,
>>>>>>
>>>>>> Is there a way in DPDK to configure the NIC to distribute the 
>>>>>> incoming
>>>>>> packets to multiple queues in a round robin fashion? Without taking
>>>>>> into
>>>>>> account the payload/headers or type of packet, just plain round 
>>>>>> robin
>>>>>> distribution to multiple queues.
>>>>>>
>>>>>> I'm struggling to obtain a fair mechanism using RSS, perhaps the
>>>>>> rte_flow API can do the trick? Any other suggestion?
>>>>>>
>>>>>> Thanks
>>>>>>
>


  parent reply	other threads:[~2020-08-25 12:18 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-24 10:05 Filip Janiszewski
2020-07-25  8:35 ` Tom Barbette
     [not found] ` <8c8034d8-4cd5-bd0b-0958-14d08f5ae6e3@kth.se>
2020-08-18 12:40   ` Filip Janiszewski
2020-08-18 13:50     ` Pawel Wodkowski
2020-08-18 14:27       ` Filip Janiszewski
2020-08-24 10:08         ` Tom Barbette
     [not found]         ` <09498ac1-672d-a1e5-f917-d5720e1c90a7@kth.se>
2020-08-25 12:17           ` Pawel Wodkowski [this message]
2020-08-31 14:56             ` Filip Janiszewski

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=e02c26a3-f3a4-7c0a-9fd4-d77591adf0f6@gmail.com \
    --to=pawelwod@gmail.com \
    --cc=barbette@kth.se \
    --cc=contact@filipjaniszewski.com \
    --cc=users@dpdk.org \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).