---
name: "rte_eth_ctrl.h"
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_eth_ctrl.h"
---

# rte\_eth\_ctrl.h(3)

## NAME

rte\_eth\_ctrl.h

## SYNOPSIS

`#include <stdint.h>`\
 `#include <rte_common.h>`\
 `#include <rte_ether.h>`\
 `#include 'rte_flow.h'`\
 `#include 'rte_ethdev.h'`\

### Data Structures

struct **rte\_eth\_ntuple\_filter**\
 struct **rte\_eth\_input\_set\_conf**\
 struct **rte\_eth\_l2\_flow**\
 struct **rte\_eth\_ipv4\_flow**\
 struct **rte\_eth\_udpv4\_flow**\
 struct **rte\_eth\_tcpv4\_flow**\
 struct **rte\_eth\_sctpv4\_flow**\
 struct **rte\_eth\_ipv6\_flow**\
 struct **rte\_eth\_udpv6\_flow**\
 struct **rte\_eth\_tcpv6\_flow**\
 struct **rte\_eth\_sctpv6\_flow**\
 struct **rte\_eth\_mac\_vlan\_flow**\
 struct **rte\_eth\_tunnel\_flow**\
 union **rte\_eth\_fdir\_flow**\
 struct **rte\_eth\_fdir\_flow\_ext**\
 struct **rte\_eth\_fdir\_input**\
 struct **rte\_eth\_fdir\_action**\
 struct **rte\_eth\_fdir\_filter**\
 struct **rte\_eth\_fdir\_masks**\
 struct **rte\_eth\_flex\_payload\_cfg**\
 struct **rte\_eth\_fdir\_flex\_mask**\
 struct **rte\_eth\_fdir\_flex\_conf**\
 struct **rte\_eth\_fdir\_info**\
 struct **rte\_eth\_fdir\_stats**\

### Macros

\#define **RTE\_NTUPLE\_FLAGS\_DST\_IP**   0x0001\
 \#define **RTE\_NTUPLE\_FLAGS\_SRC\_IP**   0x0002\
 \#define **RTE\_NTUPLE\_FLAGS\_DST\_PORT**   0x0004\
 \#define **RTE\_NTUPLE\_FLAGS\_SRC\_PORT**   0x0008\
 \#define **RTE\_NTUPLE\_FLAGS\_PROTO**   0x0010\
 \#define **RTE\_NTUPLE\_FLAGS\_TCP\_FLAG**   0x0020\
 \#define **RTE\_NTUPLE\_TCP\_FLAGS\_MASK**   0x3F\
 \#define **RTE\_ETH\_FDIR\_MAX\_FLEXLEN**   16\
 \#define **RTE\_ETH\_INSET\_SIZE\_MAX**   128\

### Enumerations

enum **rte\_eth\_input\_set\_field** \
 enum **rte\_filter\_input\_set\_op** {  }\
 enum **rte\_eth\_fdir\_tunnel\_type** \
 enum **rte\_eth\_fdir\_behavior** \
 enum **rte\_eth\_fdir\_status** { **RTE\_ETH\_FDIR\_NO\_REPORT\_STATUS** = 0, **RTE\_ETH\_FDIR\_REPORT\_ID**, **RTE\_ETH\_FDIR\_REPORT\_ID\_FLEX\_4**, **RTE\_ETH\_FDIR\_REPORT\_FLEX\_8** }\
 enum **rte\_eth\_payload\_type** \
 enum **rte\_fdir\_mode** { **RTE\_FDIR\_MODE\_NONE** = 0, **RTE\_FDIR\_MODE\_SIGNATURE**, **RTE\_FDIR\_MODE\_PERFECT**, **RTE\_FDIR\_MODE\_PERFECT\_MAC\_VLAN**, **RTE\_FDIR\_MODE\_PERFECT\_TUNNEL** }\

## Detailed Description

**Deprecated**

Please use rte\_flow API instead of this legacy one.

Ethernet device features and related data structures used by control APIs should be defined in this file.

Definition in file **rte\_eth\_ctrl.h**.

## Macro Definition Documentation

### #define RTE\_NTUPLE\_FLAGS\_DST\_IP 0x0001

Define all structures for ntuple Filter type. If set, dst\_ip is part of ntuple

Definition at line **26** of file **rte\_eth\_ctrl.h**.

### #define RTE\_NTUPLE\_FLAGS\_SRC\_IP 0x0002

If set, src\_ip is part of ntuple

Definition at line **27** of file **rte\_eth\_ctrl.h**.

### #define RTE\_NTUPLE\_FLAGS\_DST\_PORT 0x0004

If set, dst\_port is part of ntuple

Definition at line **28** of file **rte\_eth\_ctrl.h**.

### #define RTE\_NTUPLE\_FLAGS\_SRC\_PORT 0x0008

If set, src\_port is part of ntuple

Definition at line **29** of file **rte\_eth\_ctrl.h**.

### #define RTE\_NTUPLE\_FLAGS\_PROTO 0x0010

If set, protocol is part of ntuple

Definition at line **30** of file **rte\_eth\_ctrl.h**.

### #define RTE\_NTUPLE\_FLAGS\_TCP\_FLAG 0x0020

If set, tcp flag is involved

Definition at line **31** of file **rte\_eth\_ctrl.h**.

### #define RTE\_NTUPLE\_TCP\_FLAGS\_MASK 0x3F

TCP flags filter can match.

Definition at line **44** of file **rte\_eth\_ctrl.h**.

### #define RTE\_ETH\_FDIR\_MAX\_FLEXLEN 16

Max length of flexbytes.

Definition at line **71** of file **rte\_eth\_ctrl.h**.

### #define RTE\_ETH\_INSET\_SIZE\_MAX 128

Max length of input set.

Definition at line **72** of file **rte\_eth\_ctrl.h**.

## Enumeration Type Documentation

### enum rte\_eth\_input\_set\_field

Input set fields for Flow Director and Hash filters

Definition at line **77** of file **rte\_eth\_ctrl.h**.

### enum rte\_filter\_input\_set\_op

Filters input set operations

**Enumerator**

- *RTE\_ETH\_INPUT\_SET\_SELECT*

  *select input set*

- *RTE\_ETH\_INPUT\_SET\_ADD*

  *add input set entry*

*Definition at line* **133** *of file* **rte\_eth\_ctrl.h***.*

### enum rte\_eth\_fdir\_tunnel\_type

*Tunnel type for flow director.*

*Definition at line* **247** *of file* **rte\_eth\_ctrl.h***.*

### enum rte\_eth\_fdir\_behavior

*Behavior will be taken if FDIR match*

*Definition at line* **307** *of file* **rte\_eth\_ctrl.h***.*

### enum rte\_eth\_fdir\_status

*Flow director report status It defines what will be reported if FDIR entry is matched.*

**Enumerator**

- *RTE\_ETH\_FDIR\_NO\_REPORT\_STATUS*

  *Report nothing.*

- *RTE\_ETH\_FDIR\_REPORT\_ID*

  *Only report FD ID.*

- *RTE\_ETH\_FDIR\_REPORT\_ID\_FLEX\_4*

  *Report FD ID and 4 flex bytes.*

- *RTE\_ETH\_FDIR\_REPORT\_FLEX\_8*

  *Report 8 flex bytes.*

*Definition at line* **317** *of file* **rte\_eth\_ctrl.h***.*

### enum rte\_eth\_payload\_type

*Payload type*

*Definition at line* **373** *of file* **rte\_eth\_ctrl.h***.*

### enum rte\_fdir\_mode

*Flow Director setting modes: none, signature or perfect.*

**Enumerator**

- *RTE\_FDIR\_MODE\_NONE*

  *Disable FDIR support.*

- *RTE\_FDIR\_MODE\_SIGNATURE*

  *Enable FDIR signature filter mode.*

- *RTE\_FDIR\_MODE\_PERFECT*

  *Enable FDIR perfect filter mode.*

- *RTE\_FDIR\_MODE\_PERFECT\_MAC\_VLAN*

  *Enable FDIR filter mode - MAC VLAN.*

- *RTE\_FDIR\_MODE\_PERFECT\_TUNNEL*

  *Enable FDIR filter mode - tunnel.*

*Definition at line* **421** *of file* **rte\_eth\_ctrl.h***.*

## Author

*Generated automatically by Doxygen for DPDK from the source code.*
