rte_gso_ctx(3)

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

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

okay so bestie, welcome to the rte_gso_ctx(3) page from the DPDK Library Functions Manual ✨ this is a struct page, so it's giving "reference card" energy rather than "story time" β€” but we're gonna make it cute anyway πŸŽ€


🌸 NAME 🌸

rte_gso_ctx β€” literally the GSO context structure, that's her name, that's her whole brand πŸ‘‘


✨ SYNOPSIS ✨

#include <rte_gso.h>

πŸ¦‹ Data Fields

  • struct rte_mempool * direct_pool
  • struct rte_mempool * indirect_pool
  • uint64_t flag
  • uint32_t gso_types
  • uint16_t gso_size

πŸ’– DETAILED DESCRIPTION πŸ’–

So this is the GSO context structure, periodt. That's the vibe. 🫢

Fun lil fact for the group chat: her definition lives at line 37 of file rte_gso.h β€” iconic address honestly πŸ“


πŸ‘‘ FIELD DOCUMENTATION πŸ‘‘

🧺 struct rte_mempool* direct_pool

This is the MBUF pool for allocating direct buffers, and those direct buffers are the ones used to store packet headers for GSO segments β€” like, they're holding the lil header fits, no cap πŸ’…

Located at line 38 of file rte_gso.h ✨

πŸŽ€ struct rte_mempool* indirect_pool

And this one is the MBUF pool for allocating indirect buffers, used to locate the packet payloads for GSO segments. The tea here 🍡: the indirect buffer doesn't contain any data β€” it literally just points to an offset within the packet to segment. It's giving "I know a guy" energy, not "I am the guy" energy 😭

Located at line 42 of file rte_gso.h ✨

🚩 uint64_t flag

A flag that controls specific attributes of output segments β€” for example, the type of IP ID generated (i.e. fixed or incremental). So yeah, she's the one making the ~stylistic choices~ πŸ”₯

Located at line 48 of file rte_gso.h ✨

🌈 uint32_t gso_types

The bit mask of required GSO types. And here's the key lore πŸ‘€: the GSO library uses the same macros as that of describing device TX offloading capabilities (i.e. RTE_ETH_TX_OFFLOAD_*_TSO) for gso_types.

For example β€” and this is the moment, bestie β€” if applications want to segment TCP/IPv4 packets, set RTE_ETH_TX_OFFLOAD_TCP_TSO in gso_types. Easy. Slay. βœ…

Located at line 52 of file rte_gso.h ✨

πŸ“ uint16_t gso_size

The maximum size of an output GSO segment, including packet header and payload, measured in bytes.

⚠️ Bestie, listen to me: it must exceed RTE_GSO_SEG_SIZE_MIN. This is not a suggestion, this is the rule, fr fr πŸ™ˆ

Located at line 61 of file rte_gso.h ✨


🧚 AUTHOR 🧚

Generated automatically by Doxygen for DPDK from the source code πŸ€–πŸ’– (yes, the robot wrote it, we just gave it a personality)


and that's the whole page, bestie β€” tysm for reading 🫢 This lil masterpiece is from DPDK, Version 26.03.0, dated rte_gso_ctx(3) era energy β€” catch you on the next manpage, mwah πŸ’‹βœ¨πŸŽ€

πŸ“¦ where this page comes from