rte_flow_field_data(3)

πŸ’… rte_flow_field_data β€” the manual page, but make it make sense

okay bestie, sit down, grab a boba πŸ§‹, because we're reading rte_flow_field_data(3) from the Library Functions Manual and honestly? it's giving "small struct, big responsibilities."


✨ NAME ✨

rte_flow_field_data β€” literally the struct that describes packet header fields, no cap.


🌸 SYNOPSIS 🌸

#include <rte_flow.h>

πŸŽ€ Data Fields

  • enum rte_flow_field_id field

πŸ¦‹ DETAILED DESCRIPTION πŸ¦‹

⚠️ Warning β€” EXPERIMENTAL: this structure may change without prior notice. so like… don't get too attached, okay? πŸ’€

These are the packet header field descriptions, and they get used by RTE_FLOW_ACTION_TYPE_MODIFY_FIELD and RTE_FLOW_ITEM_TYPE_COMPARE. That's the whole point of them. cute, functional, iconic. πŸ‘‘

Definition at line 2449 of file rte_flow.h.


πŸ”₯ FIELD DOCUMENTATION πŸ”₯

⭐ enum rte_flow_field_id field

The field or memory type ID. basically the "which thing are we talking about" tag. 🏷️

Definition at line 2450 of file rte_flow.h.


⭐ uint8_t level

The packet encapsulation level that contains the field you wanna modify. let's break it down, bestie:

  • 0 requests the default behavior. Depending on the packet type, it can mean outermost, innermost or anything in between. it's flexible like that πŸ’…

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

  • 1 requests modification to be performed on the outermost packet encapsulation level.
  • 2 and subsequent values request modification to be performed on the specified inner packet encapsulation level, from outermost to innermost (lower to higher values). so bigger number = deeper in, iykyk 🫢
Values other than 0 are not necessarily supported. so don't come crying if your device says no 😭
πŸ“ Note β€” that for MPLS field, encapsulation level also include tunnel since MPLS may appear in outer, inner or tunnel. MPLS really said "I contain multitudes" 🌈

Definition at line 2490 of file rte_flow.h.


⭐ uint8_t tag_index

The tag index array inside encapsulation level. Used for VLAN, MPLS or TAG types. so if you're doing VLAN/MPLS/TAG stuff, this lil guy is your bestie πŸŽ€

Definition at line 2497 of file rte_flow.h.


⭐ uint8_t type

Geneve option type. short, sweet, Geneve-specific. ✨

Definition at line 2508 of file rte_flow.h.


⭐ rte_be16_t class_id

Geneve option class. the other half of the Geneve duo, slay πŸ’œ

Definition at line 2512 of file rte_flow.h.


⭐ uint32_t offset

Number of bits to skip from a field. like scrolling past someone's story, but for bits πŸ™ˆ

Definition at line 2519 of file rte_flow.h.


⭐ uint8_t value[16]

Immediate value for RTE_FLOW_FIELD_VALUE, presented in the same byte order and length as in relevant rte_flow_item_xxx. The immediate source bitfield offset is inherited from the destination's one. yes, they share the offset, it's a whole commitment situation 🫢

Definition at line 2527 of file rte_flow.h.


⭐ void* pvalue

Memory address for RTE_FLOW_FIELD_POINTER, memory layout should be the same as for relevant field in the rte_flow_item_xxx structure. match the layout or else πŸ’€

Definition at line 2533 of file rte_flow.h.


πŸ‘‘ AUTHOR πŸ‘‘

Generated automatically by Doxygen for DPDK from the source code. so basically the DPDK docs machinery wrote this, not a human, and honestly? it ate. πŸ€–βœ¨


aaaand that's the whole page bestie, you understood it, periodt. πŸ’–

this was DPDK, Version 25.11.3, and the page is rte_flow_field_data(3). go forth and modify some fields, queen πŸ§šβ€β™€οΈπŸŒˆ

πŸ“¦ where this page comes from