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 D564BA046B for ; Thu, 25 Jul 2019 14:20:03 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C68031C33E; Thu, 25 Jul 2019 14:20:02 +0200 (CEST) Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by dpdk.org (Postfix) with ESMTP id 1BE6C1C33D for ; Thu, 25 Jul 2019 14:20:00 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 25 Jul 2019 05:20:00 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,306,1559545200"; d="scan'208";a="345416951" Received: from npg-dpdk-cvl-simeisu-116d153.sh.intel.com ([10.67.116.153]) by orsmga005.jf.intel.com with ESMTP; 25 Jul 2019 05:19:58 -0700 From: simei To: qi.z.zhang@intel.com, jingjing.wu@intel.com, adrien.mazarguil@6wind.com Cc: dev@dpdk.org, simei.su@intel.com Date: Thu, 25 Jul 2019 19:37:00 +0800 Message-Id: <1564054620-43179-1-git-send-email-simei.su@intel.com> X-Mailer: git-send-email 1.8.3.1 Subject: [dpdk-dev] [RFC] ethdev: extend 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" From: Simei Su This RFC reserves several bits as input set selection from bottom of the 64 bits. The flow type is combined with input set to represent rss types. for example: ETH_RSS_IPV4 | ETH_RSS_L3_SRC_ONLY: hash on src ip address only ETH_RSS_IPV4_UDP | ETH_RSS_L4_DST_ONLY: hash on src/dst IP and dst UDP port ETH_RSS_L2_PAYLOAD | ETH_RSS_L2_DST_ONLY: hash on dst mac address Signed-off-by: Simei Su --- lib/librte_ethdev/rte_ethdev.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h index dc6596b..452d29f 100644 --- a/lib/librte_ethdev/rte_ethdev.h +++ b/lib/librte_ethdev/rte_ethdev.h @@ -508,6 +508,18 @@ struct rte_eth_rss_conf { #define ETH_RSS_GENEVE (1ULL << RTE_ETH_FLOW_GENEVE) #define ETH_RSS_NVGRE (1ULL << RTE_ETH_FLOW_NVGRE) +/* + * The following six macros are used combined with ETH_RSS_* to + * represent rss types. The structure rte_flow_action_rss.types is + * 64-bit wide and we reserve couple bits here for input set selection. + */ +#define ETH_RSS_INSET_L2_SRC 0x0400000000000000 +#define ETH_RSS_INSET_L2_DST 0x0800000000000000 +#define ETH_RSS_INSET_L3_SRC 0x1000000000000000 +#define ETH_RSS_INSET_L3_DST 0x2000000000000000 +#define ETH_RSS_INSET_L4_SRC 0x4000000000000000 +#define ETH_RSS_INSET_L4_DST 0x8000000000000000 + #define ETH_RSS_IP ( \ ETH_RSS_IPV4 | \ ETH_RSS_FRAG_IPV4 | \ -- 1.8.3.1