DPDK patches and discussions
 help / color / mirror / Atom feed
From: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
To: "lihuisong (C)" <lihuisong@huawei.com>,
	"orika@nvidia.com >> Ori Kam" <orika@nvidia.com>,
	"dev@dpdk.org" <dev@dpdk.org>
Cc: Stephen Hemminger <stephen@networkplumber.org>,
	Thomas Monjalon <thomas@monjalon.net>,
	Ferruh Yigit <ferruh.yigit@xilinx.com>,
	huangdaode <huangdaode@huawei.com>,
	"fengchengwen@huawei.com" <fengchengwen@huawei.com>,
	"liudongdong (C)" <liudongdong3@huawei.com>
Subject: Re: Question about pattern types for rte_flow RSS rule
Date: Mon, 1 Aug 2022 17:12:06 +0300	[thread overview]
Message-ID: <571c7250-cf6d-cc9f-4a4e-81c7e240da07@oktetlabs.ru> (raw)
In-Reply-To: <ab9a1aba-a4fc-7a7c-9614-0ef2b812d74f@huawei.com>

On 8/1/22 16:27, lihuisong (C) wrote:
> 
> 在 2022/8/1 19:53, Andrew Rybchenko 写道:
>> On 8/1/22 06:39, lihuisong (C) wrote:
>>>
>>> 在 2022/7/31 17:40, Andrew Rybchenko 写道:
>>>> Hi, Huisong!
>>>>
>>>> On 7/29/22 05:30, lihuisong (C) wrote:
>>>>> Hi Ori, and all,
>>>>>
>>>>> For RSS flow rule, pattern item types and RSS types in action
>>>>> are an inclusive relationship, and RSS types contain pattern item
>>>>> types. 
>>>>
>>>> I disagree with the statement. We can redirect various packets,
>>>> but apply RSS on subset only. Everything else goes to the first
>>>> queue (first entry in the redirection table in fact).
>>> Sorry, the statement above is inaccurate.
>>> I mean, pattern item type and RSS types in action are the same for
>>> creating specified types RSS rule, and this configuration is duplicate
>>> in this case(in <1> command, I think). Use one of them can specify
>>> which packet type flow performs action(like <1> or <2> command).
>>
>> No, I still disagree. Pattern is about filtering. It defines on which
>> packets flow rule actions are applied. RSS types choose packet header
>> fields (if applicable) to calculate hash. I.e. RSS types are no about
>> filtering.
>>
>>>
>>> Create a RSS rule that redirect ipv4-tcp flow to queues 1 and 2:
>>> <1> flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss 
>>> types ipv4-tcp end queues 1 2 end / end
>>
>> Yes, this one will redirect IPv4 TCP packets only.
>>
>>> <2> flow create 0 ingress pattern end actions rss types ipv4-tcp end 
>>> queues 1 2 end / end
>>
>> The rule will redirect all packets to queues 1 and 2. Some packets will
>> always go to queue 1, e.g. ARP packets.
>>
> In this case, only nonfrag ipv4 TCP packet flow calculate RSS hash and may
> distribute to queue 1 and 2 in hardware, and other packets will always go
> to queue 1, right?

Yes.

>>> <3> flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss 
>>> end queues 1 2 end / end
>>
>> This one will redirect IPv4 TCP and will use RSS hash function specified
>> in dev_conf on device configuration or default RSS hash function chosen
>> by corresponding driver.
>>
>>>
>>> What do you think about it, @Andrew and @Ori?
>>>>
>>>>> Is it necessary to set pattern item types when specify RSS
>>>>> types to create a rule? 
>>>>
>>>> No, it is not strictly required. It depends on what you want.
>>>>
>>>>> How should the user set and how should the
>>>>> driver do?
>>>>
>>>> Pattern and action are not strictly related in the case of RSS.
>>>> Pattern defines on which packets the rule is applied.
>>>> Action defines what the rule does. If hash function is not
>>>> applicable to a packet, e.g. ARP packet and ipv4-tcp hash function,
>>>> the hash is 0 and goes via redirection table entry 0.
>>> I know this rule. Ori has already explained the usage of RSS rule in 
>>> rte_flow API,
>>> but I still have a confusion momentioned above.
>>>>
>>>> Andrew.
>>>>
>>>>>
>>>>> Looking forward to your reply.
>>>>>
>>>>> Regards,
>>>>> Huisong
>>>>>
>>>>> 在 2022/7/13 9:34, lihuisong (C) 写道:
>>>>>> Hi all,
>>>>>>
>>>>>> Can someone open my confusion?
>>>>>> I'm looking forward to your reply.
>>>>>>
>>>>>> Thanks,
>>>>>> Huisong.
>>>>>>
>>>>>> 在 2022/7/7 11:50, lihuisong (C) 写道:
>>>>>>> Hi all,
>>>>>>>
>>>>>>> From following testpmd command:
>>>>>>> 'flow create 0 ingress pattern eth / ipv4 / tcp / end actions rss 
>>>>>>> types ipv4-tcp l3-src-only end queues end / end'
>>>>>>> and
>>>>>>> "flow create 0 ingress pattern end actions rss types ipv4-tcp 
>>>>>>> l3-src-only end queues end / end"
>>>>>>>
>>>>>>> I have some confusions about rte_flow RSS rule:
>>>>>>> 1> Do pattern item types need to set when configure rte_flow RSS 
>>>>>>> rule?
>>>>>>> 2> Does the driver need to check and process the pattern? (After 
>>>>>>> all, the RSS types in actions alreadly contain all RSS offload 
>>>>>>> types.)
>>>>>>>
>>>>>>> Have someone explains it?
>>>>>>>
>>>>>>> Regards,
>>>>>>> Huisong
>>>>>>>
>>>>>>> .
>>>>>> .
>>>>
>>>> .
>>
>> .


  reply	other threads:[~2022-08-01 14:12 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-07  3:50 lihuisong (C)
2022-07-13  1:34 ` lihuisong (C)
2022-07-29  2:30   ` lihuisong (C)
2022-07-31  9:40     ` Andrew Rybchenko
2022-08-01  3:39       ` lihuisong (C)
2022-08-01 11:53         ` Andrew Rybchenko
2022-08-01 13:27           ` lihuisong (C)
2022-08-01 14:12             ` Andrew Rybchenko [this message]
2022-08-02  1:27               ` lihuisong (C)

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=571c7250-cf6d-cc9f-4a4e-81c7e240da07@oktetlabs.ru \
    --to=andrew.rybchenko@oktetlabs.ru \
    --cc=dev@dpdk.org \
    --cc=fengchengwen@huawei.com \
    --cc=ferruh.yigit@xilinx.com \
    --cc=huangdaode@huawei.com \
    --cc=lihuisong@huawei.com \
    --cc=liudongdong3@huawei.com \
    --cc=orika@nvidia.com \
    --cc=stephen@networkplumber.org \
    --cc=thomas@monjalon.net \
    /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).