rte_eth_rxconf(3)

πŸ’– rte_eth_rxconf πŸ’–

okay bestie, welcome to rte_eth_rxconf β€” that's her full government name in the Library Functions Manual. she lives in <rte_ethdev.h> and she's the whole vibe of "how do i want this Ethernet port's Rx ring set up". sit down, hydrate, let's go 🫢


✨ SYNOPSIS ✨

#include <rte_ethdev.h>

πŸŽ€ Data Fields πŸŽ€

no cap, here's every single field, exactly as they're declared:

struct rte_eth_thresh rx_thresh
uint16_t rx_free_thresh
uint8_t rx_drop_en
uint8_t rx_deferred_start
uint16_t rx_nseg
uint16_t share_group
uint16_t share_qid
uint64_t offloads
union rte_eth_rxseg * rx_seg
struct rte_mempool ** rx_mempools
uint64_t reserved_64s [2]
void * reserved_ptrs [2]

🌸 Detailed Description 🌸

she is literally the structure you use to configure an Rx ring of an Ethernet port. that's it, that's the job πŸ’…

Definition at line 1156 of file rte_ethdev.h.

πŸ¦‹ Field Documentation πŸ¦‹

struct rte_eth_thresh rx_thresh

the Rx ring threshold registers. the little dials, basically ✨

Definition at line 1157 of file rte_ethdev.h.

uint16_t rx_free_thresh

this one drives the freeing of Rx descriptors. she's the one making sure descriptors get recycled πŸ‘‘

Definition at line 1158 of file rte_ethdev.h.

uint8_t rx_drop_en

drop packets if no descriptors are available. yes, literally just yeet them πŸ’€

Definition at line 1159 of file rte_ethdev.h.

uint8_t rx_deferred_start

do not start this queue with rte_eth_dev_start(). she waits for her moment, main character energy fr fr.

Definition at line 1160 of file rte_ethdev.h.

uint16_t rx_nseg

number of descriptions in the rx_seg array. like, how many segs are we serving bestie 🌈

Definition at line 1161 of file rte_ethdev.h.

uint16_t share_group

share group index in Rx domain and switch domain, okay so:

  • non-zero value β†’ enables Rx queue share ✨
  • zero value β†’ disables share πŸ™ˆ

the PMD is the one responsible for Rx queue consistency checks, and the whole point of that is to avoid member port's configuration contradicting each other. so like, no arguing in the group chat pls.

Definition at line 1168 of file rte_ethdev.h.

uint16_t share_qid

shared Rx queue ID in group. the little ID badge she wears at the shared-queue party πŸŽ€

Definition at line 1169 of file rte_ethdev.h.

uint64_t offloads

per-queue Rx offloads, set using RTE_ETH_RX_OFFLOAD_* flags. and here's the catch bestie, no exceptions: only offloads set on the rx_queue_offload_capa or rx_offload_capa fields on the rte_eth_dev_info structure are allowed to be set. if it's not in there, it's not invited πŸ’…

Definition at line 1175 of file rte_ethdev.h.

union rte_eth_rxseg* rx_seg

points to the array of segment descriptions for an entire packet. array elements are properties for consecutive Rx segments. so element 0 is seg 0, element 1 is seg 1, you get it, it's giving very "in order" of her πŸ¦‹

the supported capabilities of receiving segmentation is reported in the rte_eth_dev_info.rx_seg_capa field.

Definition at line 1183 of file rte_ethdev.h.

struct rte_mempool** rx_mempools

array of mempools to allocate Rx buffers from.

this provides support for multiple mbuf pools per Rx queue. the capability is reported in device info via a positive max_rx_mempools. πŸ‘‘

it could be useful for more efficient usage of memory when an application creates different mempools to steer the specific size of the packet.

if many mempools are specified, packets received using Rx burst may belong to any provided mempool. and from the ethdev user point of view, it is undefined how the PMD/NIC chooses the mempool for a packet. so don't go assuming, she keeps her secrets 😭

if Rx scatter is enabled, a packet may be delivered using a chain of mbufs obtained from a single mempool or from multiple mempools, based on the NIC implementation. it's giving "depends on the hardware, respectfully".

Definition at line 1204 of file rte_ethdev.h.

uint64_t reserved_64s[2]

< Number of Rx mempools Reserved for future fields

(yeah bestie we're reproducing that line exactly, punctuation crimes and all πŸ™ˆ)

Definition at line 1207 of file rte_ethdev.h.

void* reserved_ptrs[2]

reserved for future fields. the mystery boxes of the struct, don't touch ✨

Definition at line 1208 of file rte_ethdev.h.

πŸ’œ Author πŸ’œ

generated automatically by Doxygen for DPDK from the source code. so technically a robot wrote her, but we're gonna be obsessed with her anyway.


and that's a wrap on rte_eth_rxconf from the Library Functions Manual, born from DPDK Version 25.11.3. slay, go configure that Rx ring, bestie πŸ’–πŸŽ€πŸŒΈ

πŸ“¦ where this page comes from