From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A3E4CA0542; Mon, 1 Aug 2022 16:12:10 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 53BFC4067B; Mon, 1 Aug 2022 16:12:10 +0200 (CEST) Received: from shelob.oktetlabs.ru (shelob.oktetlabs.ru [91.220.146.113]) by mails.dpdk.org (Postfix) with ESMTP id 54FC74014F for ; Mon, 1 Aug 2022 16:12:09 +0200 (CEST) Received: from [192.168.1.39] (unknown [188.170.75.116]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by shelob.oktetlabs.ru (Postfix) with ESMTPSA id EBCD2F1; Mon, 1 Aug 2022 17:12:07 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 shelob.oktetlabs.ru EBCD2F1 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=oktetlabs.ru; s=default; t=1659363128; bh=EB1V9NMmNowwGY/KcZ15XU8kMO+b2X2SW4zkXwAjKfk=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=JMN5cd9P0A711yg8AB8QX77IlCN85tACm+UEpo4ZNo/Qpz4/D+Fw+Gugo9P8Iwa9r lO1gK0dUaWIhRajPy0Vp9fJ1C8cbRlqQnWPuiNY/f168k7YatpW7K7/hE4zHnBPf24 jAQxyTaVxjTpEIwvA7b4+ckBKrJ5QLrDM6Ewl998= Message-ID: <571c7250-cf6d-cc9f-4a4e-81c7e240da07@oktetlabs.ru> Date: Mon, 1 Aug 2022 17:12:06 +0300 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: Question about pattern types for rte_flow RSS rule Content-Language: en-US To: "lihuisong (C)" , "orika@nvidia.com >> Ori Kam" , "dev@dpdk.org" Cc: Stephen Hemminger , Thomas Monjalon , Ferruh Yigit , huangdaode , "fengchengwen@huawei.com" , "liudongdong (C)" References: <8c5019cf-312e-708a-d1d5-cba666443f87@huawei.com> <6c38207f-d5cb-3b61-c65c-8e22239ff6b2@huawei.com> <55f8cb7c-22c6-bbf1-b3a2-59cc02bfdb91@huawei.com> <63d3c19c-9806-4ad5-2b7a-d5ec2b30406d@oktetlabs.ru> From: Andrew Rybchenko In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org 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 >>>>>>> >>>>>>> . >>>>>> . >>>> >>>> . >> >> .