On 7/26/2019 1:35 AM, simei wrote: > From: Simei Su <simei...@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...@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
A question, will it easier to represent/comprehend if we replace these as (1ULL << ###) instead of too many zeros ? > + > #define ETH_RSS_IP ( \ > ETH_RSS_IPV4 | \ > ETH_RSS_FRAG_IPV4 | \ >