[dpdk-dev] [RFC,v2] ethdev: extend RSS offload types

simei simei.su at intel.com
Fri Jul 26 02:35:50 CEST 2019


From: Simei Su <simei.su at intel.com>

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.

Correct the input set mask to align with the definition in rte_ethdev.h.
for example:
    ETH_RSS_IPV4 | ETH_RSS_INSET_L3_SRC: hash on src ip address only
    ETH_RSS_IPV4_UDP | ETH_RSS_INSET_L4_DST: hash on src/dst IP and
				            dst UDP port
    ETH_RSS_L2_PAYLOAD | ETH_RSS_INSET_L2_DST: hash on dst mac address

Signed-off-by: Simei Su <simei.su at intel.com>
---
 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



More information about the dev mailing list