rte_eth_ctrl.h(3)

πŸ¦‹ rte_eth_ctrl.h β€” the DPDK headers era, man page 3 (Library Functions Manual) πŸ’…

okay bestie, gather round, because this one is a legacy header and it has ✨ lore ✨. It's rte_eth_ctrl.h, a section-3 manual page, and it's basically the dusty-but-iconic corner of DPDK where all the Ethernet device control APIs hang out. She's retired, but she still ate. πŸŽ€


🌸 NAME 🌸

rte_eth_ctrl.h β€” no cap, that's the whole name, that's the girl.


✨ SYNOPSIS ✨

Pull her in like this:

#include <stdint.h>
#include <rte_common.h>
#include <rte_ether.h>
#include 'rte_flow.h'
#include 'rte_ethdev.h'
lowkey screaming β€” yes, rte_flow.h and rte_ethdev.h are wrapped in single quotes above, not angle brackets. That's exactly how it's written in the original, so we are NOT touching it. character for character, periodt. πŸ’€

🧚 Data Structures 🧚

The whole friend group, in order:

  • 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 β€” bestie, please use the rte_flow API instead of this legacy one. she's iconic but she's retired, fr fr. πŸ™ˆ

Ethernet device features and related data structures that get used by the control APIs are supposed to be defined in this file. that's the whole job description, no notes. πŸ‘‘

Definition in file rte_eth_ctrl.h.


πŸ”₯ Macro Definition Documentation πŸ”₯

#define RTE_NTUPLE_FLAGS_DST_IP 0x0001

Defines all the structures for the ntuple filter type. If this one's set, then dst_ip is part of the 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 the 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 the 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 the ntuple. πŸ¦‹

Definition at line 29 of file rte_eth_ctrl.h.

#define RTE_NTUPLE_FLAGS_PROTO 0x0010

If set, the protocol is part of the ntuple. 🌸

Definition at line 30 of file rte_eth_ctrl.h.

#define RTE_NTUPLE_FLAGS_TCP_FLAG 0x0020

If set, the 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. that's it, that's the mask. 🫢

Definition at line 44 of file rte_eth_ctrl.h.

#define RTE_ETH_FDIR_MAX_FLEXLEN 16

Max length of flexbytes. no flexing past 16, bestie. 😭

Definition at line 71 of file rte_eth_ctrl.h.

#define RTE_ETH_INSET_SIZE_MAX 128

Max length of the input set. 128 and not one more. ⭐

Definition at line 72 of file rte_eth_ctrl.h.


πŸ‘‘ Enumeration Type Documentation πŸ‘‘

enum rte_eth_input_set_field

Input set fields for the Flow Director and Hash filters. 🌈

Definition at line 77 of file rte_eth_ctrl.h.

enum rte_filter_input_set_op

The filters' input set operations. the girlies:

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

The behavior that will be taken if FDIR matches. main character energy only. πŸ’…

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 an FDIR entry is matched. πŸ“‹

Enumerator

  • RTE_ETH_FDIR_NO_REPORT_STATUS β€” report nothing. silent, mysterious, iconique. 🀫
  • RTE_ETH_FDIR_REPORT_ID β€” only report the FD ID. πŸ†”
  • RTE_ETH_FDIR_REPORT_ID_FLEX_4 β€” report the 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. pick your fighter. πŸ₯Š

Enumerator

  • RTE_FDIR_MODE_NONE β€” disable FDIR support. bye bestie. πŸ‘‹
  • 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. (not a human, just a very diligent little robot 🫢)


okay that's the whole page, you understood it, I'm so proud, slay. πŸŽ‰ this was DPDK Version 25.11.3, rte_eth_ctrl.h(3) β€” mwah, go forth and remember to use rte_flow instead. πŸ’–βœ¨πŸŽ€

πŸ“¦ where this page comes from