---
name: "rte_flow_action_rss"
section: "3"
platform: "linux"
package: "dpdk-doc"
version: "24.11.4-0+deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/rte_flow_action_rss"
---

# rte\_flow\_action\_rss(3)

## NAME

rte\_flow\_action\_rss

## 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.

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.

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.
