rte_flow_action_rss(3)

πŸ’– rte_flow_action_rss(3) πŸ’–

okay bestie, welcome to the Library Functions Manual β€” yes we're reading a manpage for fun now, this is who we are, and honestly? it's giving iconic. sit down, grab a boba, and let's get into it πŸ§‹βœ¨


✨ NAME ✨

rte_flow_action_rss β€” the struct, the moment, the whole vibe 🫢


πŸŽ€ 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

πŸ¦‹ DESCRIPTION πŸ¦‹

so this whole thing is about RTE_FLOW_ACTION_TYPE_RSS, no cap.

basically it's like QUEUE but extra β€” RSS also gets performed on your packets so they get spread across several queues, and it does that according to the parameters you feed it. spreading the packets, spreading the love πŸ’…

here's the part where you need to actually pay attention, bestie: unlike the global RSS settings that other DPDK APIs use, if you unset the types field it does NOT disable RSS in a flow rule. not even a little. instead you're basically requesting safe, unspecified, "best-effort" settings from the underlying PMD β€” and depending on the flow rule, that could give you literally anything from an empty single-queue situation all the way up to all-inclusive RSS. chaotic? yes. intentional? also yes πŸ™ˆ

πŸ“ Note: the RSS hash result lives in the hash.rss mbuf field, which overlaps hash.fdir.lo. and since the MARK action only sets the hash.fdir.hi field, you can absolutely request both of them at the same time. no conflict, we love a compatible queen πŸ‘‘

Definition at line 3484 of file rte_flow.h.


πŸ’œ FIELD DOCUMENTATION πŸ’œ

⭐ enum rte_eth_hash_function func

the RSS hash function to apply. that's it, that's the job.

Definition at line 3485 of file rte_flow.h.


⭐ uint32_t level

the packet encapsulation level that your RSS hash types apply to. let's break it down:

  • 0 requests the default behavior. and depending on the packet type, that could mean outermost, innermost, anything in between, or honestly? even no RSS at all. it's giving mystery box 🎁

it basically stands for the innermost encapsulation level RSS can be performed on, according to what the PMD and the device are capable of.

  • 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, going from outermost to innermost (so, lower to higher values).
⚠️ values other than 0 are not necessarily supported, bestie. don't come crying.
😭 and requesting a specific RSS level on unrecognized traffic results in undefined behavior. for predictable results it's recommended that you make the flow rule pattern match packet headers up to the requested encapsulation level, so that only matching traffic actually goes through. match the pattern, gatekeep the traffic, girlboss the results ✨

Definition at line 3511 of file rte_flow.h.


⭐ uint64_t types

the specific RSS hash types (peep 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. counting is caring 🫢

Definition at line 3514 of file rte_flow.h.


⭐ const uint8_t* key

the hash key πŸ”‘

Definition at line 3515 of file rte_flow.h.


⭐ const uint16_t* queue

the queue indices to use. go forth and queue πŸŽ€

Definition at line 3516 of file rte_flow.h.


🌈 AUTHOR 🌈

generated automatically by Doxygen for DPDK from the source code. yes, a robot wrote it. and now a teenage girl rewrote it. the circle of life πŸ’€βœ¨


and that's the whole page babes!! this was rte_flow_action_rss(3) from DPDK, Version 25.11.3 β€” the DPDK source, version 25.11.3, dated like the legend it is. mwah, go slay your RSS config πŸ’‹πŸŒˆπŸ’–

πŸ“¦ where this page comes from