rte_eth_desc_lim(3)

πŸ’– NAME πŸ’–

rte_eth_desc_lim β€” bestie, this is a lil struct that spills the tea on how many descriptors a hardware ring will actually let you have πŸŽ€

It's a manpage out of the DPDK universe, living in section 3 of the library functions manual, and it's here to tell you all about a very specific little bundle of uint16_ts. Let's get into it πŸ¦‹


✨ SYNOPSIS ✨

#include <rte_ethdev.h>

🌸 Data Fields 🌸

uint16_t nb_max
uint16_t nb_min
uint16_t nb_align
uint16_t nb_seg_max
uint16_t nb_mtu_seg_max

Like. that's it. that's the whole struct. five lil numbers and they're all uint16_t and they're all important, no filler, main character energy only πŸ‘‘


πŸ’… Detailed Description πŸ’…

So the vibe here is: a structure contains information about HW descriptor ring limitations. That's it, that's the whole plot. It's the struct your hardware yells at you with, saying "girl, this is what I will and will not accept for my descriptor ring" πŸ’€

Definition at line 1364 of file rte_ethdev.h.

Periodt. Now let's meet the fields one by one, they each deserve their moment 🫢


πŸŽ€ Field Documentation πŸŽ€

⭐ uint16_t nb_max

Max allowed number of descriptors.

That's the ceiling bestie. Go over it and the hardware simply will not hear you.

Definition at line 1365 of file rte_ethdev.h.

⭐ uint16_t nb_min

Min allowed number of descriptors.

And this is the floor. Don't go below it, the ring needs something to work with, and it's giving "no, that's too small" πŸ™ˆ

Definition at line 1366 of file rte_ethdev.h.

⭐ uint16_t nb_align

Number of descriptors should be aligned to.

Right so whatever number of descriptors you pick, it has to be aligned to this. Not vibes-aligned, actually-aligned. Do the math, don't skip it πŸ’…

Definition at line 1367 of file rte_ethdev.h.

⭐ uint16_t nb_seg_max

Max allowed number of segments per whole packet.

Aaaand here's the nuance because there is always nuance:

  • For TSO packet this is the total number of data descriptors allowed by device.

See also

nb_mtu_seg_max

Definition at line 1377 of file rte_ethdev.h.

⭐ uint16_t nb_mtu_seg_max

Max number of segments per one MTU.

And the two-case breakdown, because this field is highkey doing double duty:

  • For non-TSO packet, this is the maximum allowed number of segments in a single transmit packet.
  • For TSO packet each segment within the TSO may span up to this value.

See also

nb_seg_max

Definition at line 1390 of file rte_ethdev.h.


🌈 Author 🌈

Generated automatically by Doxygen for DPDK from the source code.

So like, nobody sat down and lovingly typed this, a robot did it, and honestly? it ate. no cap πŸ€–βœ¨


ok bestie real talk: every single one of those uint16_t fields, every "Definition at line N of file rte_ethdev.h", every See also cross-reference β€” all of it is load-bearing. Don't go changing the numbers to match your aesthetic, the hardware does not care about your aesthetic πŸŽ€

That's the whole page, babes! Mwah πŸ’‹ This iconic lil' gem came to you courtesy of DPDK, Version 25.11.3, in the rte_eth_desc_lim(3) era of the library functions manual β€” go configure a descriptor ring and slay responsibly πŸ¦‹πŸ’œ

πŸ“¦ where this page comes from