From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id BC968A2EDB for ; Sun, 29 Sep 2019 13:33:10 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 58BAD2D13; Sun, 29 Sep 2019 13:33:09 +0200 (CEST) Received: from dispatch1-us1.ppe-hosted.com (dispatch1-us1.ppe-hosted.com [67.231.154.164]) by dpdk.org (Postfix) with ESMTP id BFF371F28 for ; Sun, 29 Sep 2019 13:33:07 +0200 (CEST) X-Virus-Scanned: Proofpoint Essentials engine Received: from webmail.solarflare.com (uk.solarflare.com [193.34.186.16]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by mx1-us1.ppe-hosted.com (PPE Hosted ESMTP Server) with ESMTPS id 281D840005C; Sun, 29 Sep 2019 11:33:06 +0000 (UTC) Received: from [192.168.38.17] (91.220.146.112) by ukex01.SolarFlarecom.com (10.17.10.4) with Microsoft SMTP Server (TLS) id 15.0.1395.4; Sun, 29 Sep 2019 12:32:59 +0100 To: Simei Su , , , CC: References: <1569420404-163301-1-git-send-email-simei.su@intel.com> <1569574449-47991-1-git-send-email-simei.su@intel.com> <1569574449-47991-2-git-send-email-simei.su@intel.com> From: Andrew Rybchenko Message-ID: <4de34b68-19c1-4293-f60f-ef42b9275dc5@solarflare.com> Date: Sun, 29 Sep 2019 14:32:56 +0300 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.0 MIME-Version: 1.0 In-Reply-To: <1569574449-47991-2-git-send-email-simei.su@intel.com> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-GB X-Originating-IP: [91.220.146.112] X-ClientProxiedBy: ocex03.SolarFlarecom.com (10.20.40.36) To ukex01.SolarFlarecom.com (10.17.10.4) X-TM-AS-Product-Ver: SMEX-12.5.0.1300-8.5.1010-24942.002 X-TM-AS-Result: No-10.501000-8.000000-10 X-TMASE-MatchedRID: HXSqh3WYKfvmLzc6AOD8DfHkpkyUphL9APiR4btCEeZTq//rncsNWX89 59tRYfUf+sW77Tisc9oT3QTSE4qQaL5Fo8Eg21LkIwk7p1qp3JYisyg/lfGoZ5z2ZypjxOSYFfQ L8ZvDsiMRz/FZ0QZ4t6U+1+T09C0vww6cV05cKF03X0+M8lqGUgH9Qt+fIXSvV8ukjx868O7Uiz ka+GYZvPrSiCQhNjFNN5Vm37C3tL+OUv+G6OvDW9jz1jeuM5I6fS0Ip2eEHny+qryzYw2E8LLn+ 0Vm71Lcq7rFUcuGp/EgBwKKRHe+r5b1/ileXw0ZkwE1FqocQVwJMC2pLXUW1LtGP6N5jvASBYbm kEDGAzo= X-TM-AS-User-Approved-Sender: Yes X-TM-AS-User-Blocked-Sender: No X-TMASE-Result: 10--10.501000-8.000000 X-TMASE-Version: SMEX-12.5.0.1300-8.5.1010-24942.002 X-MDID: 1569756787-LCCQ0H8OXGSu Subject: Re: [dpdk-dev] [PATCH v4 1/3] ethdev: decouple flow types and RSS offload types X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 9/27/19 11:54 AM, Simei Su wrote: > This patch decouples RTE_ETH_FLOW_* and ETH_RSS_*. Both serves > different purposes. The former defines flow types. The later > defines RSS offload types. > > Signed-off-by: Simei Su Acked-by: Andrew Rybchenko [snip] > @@ -482,31 +481,29 @@ struct rte_eth_rss_conf { > #define RTE_ETH_FLOW_MAX 23 > > /* > - * The RSS offload types are defined based on flow types. > - * Different NIC hardware may support different RSS offload > - * types. The supported flow types or RSS offload types can be queried by > - * rte_eth_dev_info_get(). > - */ > -#define ETH_RSS_IPV4 (1ULL << RTE_ETH_FLOW_IPV4) > -#define ETH_RSS_FRAG_IPV4 (1ULL << RTE_ETH_FLOW_FRAG_IPV4) > -#define ETH_RSS_NONFRAG_IPV4_TCP (1ULL << RTE_ETH_FLOW_NONFRAG_IPV4_TCP) > -#define ETH_RSS_NONFRAG_IPV4_UDP (1ULL << RTE_ETH_FLOW_NONFRAG_IPV4_UDP) > -#define ETH_RSS_NONFRAG_IPV4_SCTP (1ULL << RTE_ETH_FLOW_NONFRAG_IPV4_SCTP) > -#define ETH_RSS_NONFRAG_IPV4_OTHER (1ULL << RTE_ETH_FLOW_NONFRAG_IPV4_OTHER) > -#define ETH_RSS_IPV6 (1ULL << RTE_ETH_FLOW_IPV6) > -#define ETH_RSS_FRAG_IPV6 (1ULL << RTE_ETH_FLOW_FRAG_IPV6) > -#define ETH_RSS_NONFRAG_IPV6_TCP (1ULL << RTE_ETH_FLOW_NONFRAG_IPV6_TCP) > -#define ETH_RSS_NONFRAG_IPV6_UDP (1ULL << RTE_ETH_FLOW_NONFRAG_IPV6_UDP) > -#define ETH_RSS_NONFRAG_IPV6_SCTP (1ULL << RTE_ETH_FLOW_NONFRAG_IPV6_SCTP) > -#define ETH_RSS_NONFRAG_IPV6_OTHER (1ULL << RTE_ETH_FLOW_NONFRAG_IPV6_OTHER) > -#define ETH_RSS_L2_PAYLOAD (1ULL << RTE_ETH_FLOW_L2_PAYLOAD) > -#define ETH_RSS_IPV6_EX (1ULL << RTE_ETH_FLOW_IPV6_EX) > -#define ETH_RSS_IPV6_TCP_EX (1ULL << RTE_ETH_FLOW_IPV6_TCP_EX) > -#define ETH_RSS_IPV6_UDP_EX (1ULL << RTE_ETH_FLOW_IPV6_UDP_EX) > -#define ETH_RSS_PORT (1ULL << RTE_ETH_FLOW_PORT) > -#define ETH_RSS_VXLAN (1ULL << RTE_ETH_FLOW_VXLAN) > -#define ETH_RSS_GENEVE (1ULL << RTE_ETH_FLOW_GENEVE) > -#define ETH_RSS_NVGRE (1ULL << RTE_ETH_FLOW_NVGRE) > + * Below macros are defined for RSS offload types, they can be used to > + * fill rte_eth_rss_conf.rss_hf or rte_flow_action_rss.types. > + */ > +#define ETH_RSS_IPV4 (1ULL << 2) > +#define ETH_RSS_FRAG_IPV4 (1ULL << 3) > +#define ETH_RSS_NONFRAG_IPV4_TCP (1ULL << 4) > +#define ETH_RSS_NONFRAG_IPV4_UDP (1ULL << 5) > +#define ETH_RSS_NONFRAG_IPV4_SCTP (1ULL << 6) > +#define ETH_RSS_NONFRAG_IPV4_OTHER (1ULL << 7) > +#define ETH_RSS_IPV6 (1ULL << 8) > +#define ETH_RSS_FRAG_IPV6 (1ULL << 9) > +#define ETH_RSS_NONFRAG_IPV6_TCP (1ULL << 10) > +#define ETH_RSS_NONFRAG_IPV6_UDP (1ULL << 11) > +#define ETH_RSS_NONFRAG_IPV6_SCTP (1ULL << 12) > +#define ETH_RSS_NONFRAG_IPV6_OTHER (1ULL << 13) > +#define ETH_RSS_L2_PAYLOAD (1ULL << 14) > +#define ETH_RSS_IPV6_EX (1ULL << 15) > +#define ETH_RSS_IPV6_TCP_EX (1ULL << 16) > +#define ETH_RSS_IPV6_UDP_EX (1ULL << 17) > +#define ETH_RSS_PORT (1ULL << 18) > +#define ETH_RSS_VXLAN (1ULL << 19) > +#define ETH_RSS_GENEVE (1ULL << 20) > +#define ETH_RSS_NVGRE (1ULL << 21) > Yes, it is out of scope of the patch, but: Is VXLAN_GPE skipped intentionally in ETH_RSS? Is it assumed to be covered by ETH_RSS_VXLAN? What does ETH_RSS_VXLAN mean? What is included in RSS hash in this case? I think it would be very good to improve the documentation here and provide answers to these questions. [snip]