DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [RFC] net/mlx5: support RSS types L3/L4 SRC/DST only
@ 2019-12-04 13:08 Dekel Peled
  0 siblings, 0 replies; only message in thread
From: Dekel Peled @ 2019-12-04 13:08 UTC (permalink / raw)
  To: Matan Azrad, Slava Ovsiienko, Shahaf Shuler; +Cc: Ori Kam, dev

In current PMD implementation, the RSS action is performed on L3 and L4, including SRC and DST fields.
For some applications it can be useful to perform RSS on SRC only or on DST only.

This RFC suggest use of existing rte_ethdev definitions to enhance RSS action support in MLX5 PMD:
#define ETH_RSS_L3_SRC_ONLY        (1ULL << 63)
#define ETH_RSS_L3_DST_ONLY        (1ULL << 62)
#define ETH_RSS_L4_SRC_ONLY        (1ULL << 61)
#define ETH_RSS_L4_DST_ONLY        (1ULL << 60)

These values can be combined with L3/L4 ETH_RSS_* values, to define granular RSS offload types.
Existing definition MLX5_RSS_HF_MASK will be updated to include the above ETH_RSS_* values.

MLX5 flow validation function for RSS action will be updated to verify RSS types field:

  *   ETH_RSS_L3_***_ONLY bits are set together with ETH_RSS_IP bits.
  *   ETH_RSS_L4_***_ONLY bits are set together with ETH_RSS_UDP | ETH_RSS_TCP bits.

MLX5 flow translation function will be updated to set flow hash_fields according to RSS types.
Change will be implemented in function mlx5_flow_hashfields_adjust().
If RSS types include SRC_ONLY or DST_ONLY bits, hash_fields will be updated accordingly.
IBV_RX_HASH_SRC/DST bits will be cleared according to RSS types.
If RSS types include SRC_ONLY and DST_ONLY bits with same value, both set or both clear,
hash_fields will be not be changed.

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2019-12-04 13:08 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-04 13:08 [dpdk-dev] [RFC] net/mlx5: support RSS types L3/L4 SRC/DST only Dekel Peled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).