---
name: "RTE_PMD_IFD_DYNF_PROTO_XTR_METADATA"
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_pmd_iavf.h"
---

# RTE\_PMD\_IFD\_DYNF\_PROTO\_XTR\_METADATA(3)

Part of [rte\_pmd\_iavf.h(3)](/rte_pmd_iavf.h/3.md).

## NAME

rte\_pmd\_iavf.h

## SYNOPSIS

`#include <stdio.h>`\
 `#include <rte_compat.h>`\
 `#include <rte_mbuf.h>`\
 `#include <rte_mbuf_dyn.h>`\

### Data Structures

union **rte\_pmd\_ifd\_proto\_xtr\_metadata**\

### Macros

\#define **RTE\_PMD\_IFD\_DYNF\_PROTO\_XTR\_METADATA**(m)\
 \#define **RTE\_IAVF\_PKT\_RX\_DYNF\_PROTO\_XTR\_VLAN**   	(rte\_pmd\_ifd\_dynflag\_proto\_xtr\_vlan\_mask)\
 \#define **RTE\_IAVF\_PKT\_RX\_DYNF\_PROTO\_XTR\_IPV4**   	(rte\_pmd\_ifd\_dynflag\_proto\_xtr\_ipv4\_mask)\
 \#define **RTE\_IAVF\_PKT\_RX\_DYNF\_PROTO\_XTR\_IPV6**   	(rte\_pmd\_ifd\_dynflag\_proto\_xtr\_ipv6\_mask)\
 \#define **RTE\_IAVF\_PKT\_RX\_DYNF\_PROTO\_XTR\_IPV6\_FLOW**   	(rte\_pmd\_ifd\_dynflag\_proto\_xtr\_ipv6\_flow\_mask)\
 \#define **RTE\_IAVF\_PKT\_RX\_DYNF\_PROTO\_XTR\_TCP**   	(rte\_pmd\_ifd\_dynflag\_proto\_xtr\_tcp\_mask)\
 \#define **RTE\_IAVF\_PKT\_RX\_DYNF\_PROTO\_XTR\_IP\_OFFSET**   	(rte\_pmd\_ifd\_dynflag\_proto\_xtr\_ip\_offset\_mask)\

### Functions

static \_\_rte\_experimental **\_\_rte\_always\_inline** int **rte\_pmd\_ifd\_dynf\_proto\_xtr\_metadata\_avail** (void)\
 static \_\_rte\_experimental **\_\_rte\_always\_inline** uint32\_t **rte\_pmd\_ifd\_dynf\_proto\_xtr\_metadata\_get** (struct **rte\_mbuf** \*m)\
 static \_\_rte\_experimental void **rte\_pmd\_ifd\_dump\_proto\_xtr\_metadata** (struct **rte\_mbuf** \*m)\

## Detailed Description

iavf PMD specific functions.

**EXPERIMENTAL:** this API may change, or be removed, without prior notiavf

Definition in file **rte\_pmd\_iavf.h**.

## Macro Definition Documentation

### #define RTE\_PMD\_IFD\_DYNF\_PROTO\_XTR\_METADATA(m)

**Value:**.PP

```
    RTE_MBUF_DYNFIELD((m), \
              rte_pmd_ifd_dynfield_proto_xtr_metadata_offs, \
              uint32_t *)
```

The mbuf dynamic field pointer for flexible descriptor's extraction metadata.

Definition at line **101** of file **rte\_pmd\_iavf.h**.

### #define RTE\_IAVF\_PKT\_RX\_DYNF\_PROTO\_XTR\_VLAN (rte\_pmd\_ifd\_dynflag\_proto\_xtr\_vlan\_mask)

The mbuf dynamic flag for VLAN protocol extraction metadata, it is valid when dev\_args 'proto\_xtr' has 'vlan' specified.

Definition at line **110** of file **rte\_pmd\_iavf.h**.

### #define RTE\_IAVF\_PKT\_RX\_DYNF\_PROTO\_XTR\_IPV4 (rte\_pmd\_ifd\_dynflag\_proto\_xtr\_ipv4\_mask)

The mbuf dynamic flag for IPv4 protocol extraction metadata, it is valid when dev\_args 'proto\_xtr' has 'ipv4' specified.

Definition at line **117** of file **rte\_pmd\_iavf.h**.

### #define RTE\_IAVF\_PKT\_RX\_DYNF\_PROTO\_XTR\_IPV6 (rte\_pmd\_ifd\_dynflag\_proto\_xtr\_ipv6\_mask)

The mbuf dynamic flag for IPv6 protocol extraction metadata, it is valid when dev\_args 'proto\_xtr' has 'ipv6' specified.

Definition at line **124** of file **rte\_pmd\_iavf.h**.

### #define RTE\_IAVF\_PKT\_RX\_DYNF\_PROTO\_XTR\_IPV6\_FLOW (rte\_pmd\_ifd\_dynflag\_proto\_xtr\_ipv6\_flow\_mask)

The mbuf dynamic flag for IPv6 with flow protocol extraction metadata, it is valid when dev\_args 'proto\_xtr' has 'ipv6\_flow' specified.

Definition at line **131** of file **rte\_pmd\_iavf.h**.

### #define RTE\_IAVF\_PKT\_RX\_DYNF\_PROTO\_XTR\_TCP (rte\_pmd\_ifd\_dynflag\_proto\_xtr\_tcp\_mask)

The mbuf dynamic flag for TCP protocol extraction metadata, it is valid when dev\_args 'proto\_xtr' has 'tcp' specified.

Definition at line **138** of file **rte\_pmd\_iavf.h**.

### #define RTE\_IAVF\_PKT\_RX\_DYNF\_PROTO\_XTR\_IP\_OFFSET (rte\_pmd\_ifd\_dynflag\_proto\_xtr\_ip\_offset\_mask)

The mbuf dynamic flag for IP\_OFFSET extraction metadata, it is valid when dev\_args 'proto\_xtr' has 'ip\_offset' specified.

Definition at line **145** of file **rte\_pmd\_iavf.h**.

## Function Documentation

### static \_\_rte\_experimental \_\_rte\_always\_inline int rte\_pmd\_ifd\_dynf\_proto\_xtr\_metadata\_avail (void)` [static]`

Check if mbuf dynamic field for flexible descriptor's extraction metadata is registered.

**Returns**

True if registered, false otherwise.

Definition at line **157** of file **rte\_pmd\_iavf.h**.

### static \_\_rte\_experimental \_\_rte\_always\_inline uint32\_t rte\_pmd\_ifd\_dynf\_proto\_xtr\_metadata\_get (struct rte\_mbuf \* m)` [static]`

Get the mbuf dynamic field for flexible descriptor's extraction metadata.

**Parameters**

*m* The pointer to the mbuf.

**Returns**

The saved protocol extraction metadata.

Definition at line **172** of file **rte\_pmd\_iavf.h**.

### static \_\_rte\_experimental void rte\_pmd\_ifd\_dump\_proto\_xtr\_metadata (struct rte\_mbuf \* m)` [inline]`, ` [static]`

Dump the mbuf dynamic field for flexible descriptor's extraction metadata.

**Parameters**

*m* The pointer to the mbuf.

Definition at line **185** of file **rte\_pmd\_iavf.h**.

## Author

Generated automatically by Doxygen for DPDK from the source code.
