rte_eth_dev_info(3)

πŸ“¦ version 26.03, in nixos 26.05, nixpkgs unstable

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

okay so first things first: this is rte_eth_dev_info, a page from the Library Functions Manual (DPDK's Doxygen output, we love her). She's a struct, not a function β€” a whole lil glow-up container you fill in to find out everything about an Ethernet device. Buckle up bestie, there are like 40 fields and we're doing all of them. ✨


🌸 NAME

rte_eth_dev_info β€” the struct that tells you literally everything about an Ethernet device 🫢


πŸŽ€ SYNOPSIS

#include <rte_ethdev.h>

✨ Data Fields ✨

struct rte_device * device
const char * driver_name
unsigned int if_index
uint16_t min_mtu
uint16_t max_mtu
const uint32_t * dev_flags
uint32_t min_rx_bufsize
uint32_t max_rx_bufsize
uint32_t max_rx_pktlen
uint32_t max_lro_pkt_size
uint16_t max_rx_queues
uint16_t max_tx_queues
uint32_t max_mac_addrs
uint32_t max_hash_mac_addrs
uint16_t max_vfs
uint16_t max_vmdq_pools
struct rte_eth_rxseg_capa rx_seg_capa
uint64_t rx_offload_capa
uint64_t tx_offload_capa
uint64_t rx_queue_offload_capa
uint64_t tx_queue_offload_capa
uint16_t reta_size
uint8_t hash_key_size
uint64_t flow_type_rss_offloads
struct rte_eth_rxconf default_rxconf
struct rte_eth_txconf default_txconf
uint16_t vmdq_queue_base
uint16_t vmdq_queue_num
uint16_t vmdq_pool_base
struct rte_eth_desc_lim rx_desc_lim
struct rte_eth_desc_lim tx_desc_lim
uint32_t speed_capa
uint16_t nb_rx_queues
uint16_t nb_tx_queues
uint16_t max_rx_mempools
struct rte_eth_dev_portconf default_rxportconf
struct rte_eth_dev_portconf default_txportconf
uint64_t dev_capa
struct rte_eth_switch_info switch_info
enum rte_eth_err_handle_mode err_handle_mode
uint64_t reserved_64s [2]
void * reserved_ptrs [2]

πŸ¦‹ DETAILED DESCRIPTION

So basically: this is the structure you use to retrieve the contextual information of an Ethernet device β€” like, who's the controlling driver of the device, etc… πŸ‘‘

It's giving "ask the NIC about itself and she answers in one big struct." Main character energy fr.

Defined at line 1806 of file rte_ethdev.h. Write that down bestie, it's on the exam. πŸ“

πŸ’– FIELD DOCUMENTATION

okay this is the long part, but every single field is iconic in her own way, so let's go field by field, no skipping, periodt. πŸ’…

🌈 struct rte_device* device

Generic device information. Lowkey the parent of everything.

Definition at line 1807 of file rte_ethdev.h.

🌈 const char* driver_name

The device Driver name. iykyk β€” this is the name you'll wanna print when debugging. ✨

Definition at line 1808 of file rte_ethdev.h.

🌈 unsigned int if_index

Index to bound host interface, or 0 if none. Use if_indextoname() to translate into an interface name β€” that's the certified way to turn a number into a name bestie. πŸͺͺ

Definition at line 1809 of file rte_ethdev.h.

🌈 uint16_t min_mtu

Minimum MTU allowed. The floor. The bare minimum. Respect her.

Definition at line 1811 of file rte_ethdev.h.

🌈 uint16_t max_mtu

Maximum MTU allowed. The ceiling. Shoot for the stars. ⭐

Definition at line 1812 of file rte_ethdev.h.

🌈 const uint32_t* dev_flags

Device flags. Flags, but for devices. 🚩

Definition at line 1813 of file rte_ethdev.h.

🌈 uint32_t min_rx_bufsize

Minimum Rx buffer size per descriptor supported by HW. Tiny buffer era. πŸ“

Definition at line 1815 of file rte_ethdev.h.

🌈 uint32_t max_rx_bufsize

Maximum Rx buffer size per descriptor supported by HW. The value is not enforced β€” it's information only, to help the application optimize mbuf size (ngl that's kind of a glow-up tip). Its value is UINT32_MAX when not specified by the driver. πŸ™ˆ

Definition at line 1822 of file rte_ethdev.h.

🌈 uint32_t max_rx_pktlen

Maximum configurable length of Rx pkt. Long packet slay. πŸ‘‘

Definition at line 1823 of file rte_ethdev.h.

🌈 uint32_t max_lro_pkt_size

Maximum configurable size of LRO aggregated packet. Bigger packet, bigger vibes. πŸ”₯

Definition at line 1825 of file rte_ethdev.h.

🌈 uint16_t max_rx_queues

Maximum number of Rx queues. Collect them like stickers. πŸŽ€

Definition at line 1826 of file rte_ethdev.h.

🌈 uint16_t max_tx_queues

Maximum number of Tx queues. Sending side, same energy. πŸ’Œ

Definition at line 1827 of file rte_ethdev.h.

🌈 uint32_t max_mac_addrs

Maximum number of MAC addresses. So many identities, so little time.

Definition at line 1828 of file rte_ethdev.h.

🌈 uint32_t max_hash_mac_addrs

Maximum number of hash MAC addresses for MTA and UTA. (MTA and UTA β€” the hash-y ones. πŸ’€)

Definition at line 1830 of file rte_ethdev.h.

🌈 uint16_t max_vfs

Maximum number of VFs. Virtual functions, virtual besties. 🧚

Definition at line 1831 of file rte_ethdev.h.

🌈 uint16_t max_vmdq_pools

Maximum number of VMDq pools. Pool party, VMDq edition. 🌊

Definition at line 1832 of file rte_ethdev.h.

🌈 struct rte_eth_rxseg_capa rx_seg_capa

Segmentation capability. She segments, she slays. βœ‚οΈ

Definition at line 1833 of file rte_ethdev.h.

🌈 uint64_t rx_offload_capa

All Rx offload capabilities including all per-queue ones. Emphasis on all β€” she's inclusive. πŸ’–

Definition at line 1835 of file rte_ethdev.h.

🌈 uint64_t tx_offload_capa

All Tx offload capabilities including all per-queue ones. Matching set with the one above, we love a coordinated look. πŸ‘―

Definition at line 1837 of file rte_ethdev.h.

🌈 uint64_t rx_queue_offload_capa

Device per-queue Rx offload capabilities. The per-queue cut of the Rx situation.

Definition at line 1839 of file rte_ethdev.h.

🌈 uint64_t tx_queue_offload_capa

Device per-queue Tx offload capabilities. Same but Tx, obviously. πŸ’«

Definition at line 1841 of file rte_ethdev.h.

🌈 uint16_t reta_size

Device redirection table size β€” the total number of entries. RETA is that girl. πŸ“‹

Definition at line 1843 of file rte_ethdev.h.

🌈 uint8_t hash_key_size

Hash key size in bytes (note the unit bestie, bytes). πŸ”‘

Definition at line 1844 of file rte_ethdev.h.

🌈 uint64_t flow_type_rss_offloads

RSS hash algorithms capabilities. Bit mask of RSS offloads β€” and here's the cute part: the bit offset also means flow type. Two meanings, one mask. 🎭

Definition at line 1847 of file rte_ethdev.h.

🌈 struct rte_eth_rxconf default_rxconf

Default Rx configuration. The safe default fit. πŸ‘—

Definition at line 1848 of file rte_ethdev.h.

🌈 struct rte_eth_txconf default_txconf

Default Tx configuration. Her matching counterpart. πŸ‘”

Definition at line 1849 of file rte_ethdev.h.

🌈 uint16_t vmdq_queue_base

First queue ID for VMDq pools. Start of the queue lineup. 🚩

Definition at line 1850 of file rte_ethdev.h.

🌈 uint16_t vmdq_queue_num

Queue number for VMDq pools. How many queues show up to the party. πŸŽ‰

Definition at line 1851 of file rte_ethdev.h.

🌈 uint16_t vmdq_pool_base

First ID of VMDq pools. Pool number one, literally.

Definition at line 1852 of file rte_ethdev.h.

🌈 struct rte_eth_desc_lim rx_desc_lim

Rx descriptors limits. Boundaries, but for Rx descriptors. 🚧

Definition at line 1853 of file rte_ethdev.h.

🌈 struct rte_eth_desc_lim tx_desc_lim

Tx descriptors limits. Same boundaries, Tx flavour.

Definition at line 1854 of file rte_ethdev.h.

🌈 uint32_t speed_capa

Supported speeds bitmap (RTE_ETH_LINK_SPEED_). Yes, the trailing underscore is part of the family name β€” don't come for her. ⚑

Definition at line 1855 of file rte_ethdev.h.

🌈 uint16_t nb_rx_queues

Configured number of Rx/Tx queues… and then it says: Number of Rx queues. So: the configured Rx count, fr fr.

Definition at line 1857 of file rte_ethdev.h.

🌈 uint16_t nb_tx_queues

Number of Tx queues. Yes she's the twin of the one above, no she's not redundant, mind your business. πŸ™ƒ

Definition at line 1858 of file rte_ethdev.h.

🌈 uint16_t max_rx_mempools

Maximum number of Rx mempools supported per Rx queue.

A value greater than 0 means that the driver supports Rx queue mempools specification via rx_conf->rx_mempools. So if you see a positive number, mempool specs per queue are on the menu bestie. 🍽️
Definition at line 1865 of file rte_ethdev.h.

🌈 struct rte_eth_dev_portconf default_rxportconf

Rx parameter recommendations. Not rules β€” recommendations. She's suggesting, not demanding. πŸ’

Definition at line 1867 of file rte_ethdev.h.

🌈 struct rte_eth_dev_portconf default_txportconf

Tx parameter recommendations. Same energy, Tx side.

Definition at line 1869 of file rte_ethdev.h.

🌈 uint64_t dev_capa

Generic device capabilities (RTE_ETH_DEV_CAPA_). The umbrella of capability bits.

Definition at line 1871 of file rte_ethdev.h.

🌈 struct rte_eth_switch_info switch_info

Switching information for ports on a device with an embedded managed interconnect/switch. (Yes β€” "a embedded managed interconnect/switch", we're quoting the source, don't @ me. πŸ’€)

Definition at line 1876 of file rte_ethdev.h.

🌈 enum rte_eth_err_handle_mode err_handle_mode

Supported error handling mode. How she handles her drama. 😭

Definition at line 1878 of file rte_ethdev.h.

🌈 uint64_t reserved_64s[2]

Reserved for future fields. Saving seats for future besties. πŸͺ‘

Definition at line 1880 of file rte_ethdev.h.

🌈 void* reserved_ptrs[2]

Reserved for future fields. Same reserved situation, pointer edition. πŸ“Œ

Definition at line 1881 of file rte_ethdev.h.

πŸ‘‘ AUTHOR

Generated automatically by Doxygen for DPDK from the source code. Like, don't thank a human, thank the robot. πŸ€–πŸ’–


and that's the whole page bestie, no cap β€” every field, every line number, every RTE_ETH_ thing intact. 🫢

✨ DPDK Β· Version 26.03.0 Β· rte_eth_dev_info(3) ✨ β€” go forth and vibe check your NICs, bestie πŸ’…πŸŒˆ
πŸ“¦ where this page comes from