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 A8621A034C; Mon, 1 Aug 2022 13:53:39 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 5606C42C93; Mon, 1 Aug 2022 13:53:27 +0200 (CEST) Received: from shelob.oktetlabs.ru (shelob.oktetlabs.ru [91.220.146.113]) by mails.dpdk.org (Postfix) with ESMTP id 9FFC642C90 for ; Mon, 1 Aug 2022 13:53:25 +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 6BE61B3; Mon, 1 Aug 2022 14:53:24 +0300 (MSK) DKIM-Filter: OpenDKIM Filter v2.11.0 shelob.oktetlabs.ru 6BE61B3 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=oktetlabs.ru; s=default; t=1659354805; bh=b6zgGHbGYEuKFhxMya68+flX4gD2FxM/a4Pv5QxbxWU=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=dbVeQUSNubMqBA55kzWD3U3uyYf/KrRxNL+K1IQ/Dec1MT5IPK8CdBixkjsnyEfey vTXLZdVRIu9Z7P7YVcuwWJHPeKeDx44xgBOJupiuOkseOtiw9W/zgHZyuEgnNHa4R6 p/mHYiGIxoJBWQgweF1YChUzxGgZFdFQKTo7FDHg= Message-ID: <63d3c19c-9806-4ad5-2b7a-d5ec2b30406d@oktetlabs.ru> Date: Mon, 1 Aug 2022 14:53:16 +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> From: Andrew Rybchenko In-Reply-To: <55f8cb7c-22c6-bbf1-b3a2-59cc02bfdb91@huawei.com> 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 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. > <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 >>>>> >>>>> . >>>> . >> >> .