rte_flow_action_rss(3)

πŸ“¦ version 26.03, in nixos 26.05, nixpkgs unstable

πŸ’– NAME πŸ’–

okay bestie, welcome to rte_flow_action_rss(3) β€” it lives in the Library Functions Manual, and the actual name is rte_flow_action_rss. It’s giving flow-rule RSS energy, and we’re gonna get through every single detail together. 🫢

✨ SYNOPSIS ✨

#include <rte_flow.h>

πŸŽ€ Data Fields πŸŽ€

  • enum rte_eth_hash_function func
  • uint32_t level
  • uint64_t types
  • uint32_t key_len
  • uint32_t queue_num
  • const uint8_t * key
  • const uint16_t * queue

🌸 Detailed Description 🌸

RTE_FLOW_ACTION_TYPE_RSS

Similar to QUEUE, except RSS is additionally performed on packets to spread them among several queues according to the provided parameters. ✨

Unlike global RSS settings used by other DPDK APIs, unsetting the types field does not disable RSS in a flow rule. Doing so instead requests safe unspecified "best-effort" settings from the underlying PMD, which depending on the flow rule, may result in anything ranging from empty (single queue) to all-inclusive RSS. no cap, that range is wild 😭

Note: RSS hash result is stored in the hash.rss mbuf field which overlaps hash.fdir.lo. Since the MARK action sets the hash.fdir.hi field only, both can be requested simultaneously. πŸ’…

Definition at line 3484 of file rte_flow.h.

πŸ¦‹ Field Documentation πŸ¦‹

enum rte_eth_hash_function func

RSS hash function to apply. ✨

Definition at line 3485 of file rte_flow.h.

uint32_t level

Packet encapsulation level RSS hash types apply to.

  • 0 requests the default behavior. Depending on the packet type, it can mean outermost, innermost, anything in between or even no RSS.

It basically stands for the innermost encapsulation level RSS can be performed on according to PMD and device capabilities.

  • 1 requests RSS to be performed on the outermost packet encapsulation level.
  • 2 and subsequent values request RSS to be performed on the specified inner packet encapsulation level, from outermost to innermost (lower to higher values).

Values other than 0 are not necessarily supported.

Requesting a specific RSS level on unrecognized traffic results in undefined behavior. For predictable results, it is recommended to make the flow rule pattern match packet headers up to the requested encapsulation level so that only matching traffic goes through. ⚠️ this is the β€œdo not freestyle it” warning, bestie

Definition at line 3511 of file rte_flow.h.

uint64_t types

Specific RSS hash types (see RTE_ETH_RSS_*).

Definition at line 3512 of file rte_flow.h.

uint32_t key_len

Hash key length in bytes.

Definition at line 3513 of file rte_flow.h.

uint32_t queue_num

Number of entries in queue.

Definition at line 3514 of file rte_flow.h.

const uint8_t* key

Hash key.

Definition at line 3515 of file rte_flow.h.

const uint16_t* queue

Queue indices to use.

Definition at line 3516 of file rte_flow.h.

πŸ‘‘ Author πŸ‘‘

Generated automatically by Doxygen for DPDK from the source code.


πŸ’– Cute sign-off: this page is from DPDK, Version 26.03.0 β€” and the footer’s date slot is empty on this one, so I’m not making up a date, periodt. ✨

πŸ“¦ where this page comes from