rte_geneve_hdr(3)
Okay bestie, welcome to the rte_geneve_hdr manual page from the DPDK Library Functions Manual. It's giving networking header realness, and we're gonna get through every single detail together. ๐
โจ NAME โจ
rte_geneve_hdr โ that's literally the whole name, no cap. Iconic.
โจ SYNOPSIS โจ
#include <rte_geneve.h>
๐งฌ Data Fields ๐งฌ
uint8_t ver:2โ version bits, 2 of them ๐uint8_t opt_len:6โ options length, 6 bits bestieuint8_t oam:1โ control packet, just 1 bituint8_t critical:1โ critical packet, also 1 bituint8_t reserved1:6โ reserved, 6 bits of "don't touch" energyrte_be16_t protoโ protocol type, big-endian cutieuint8_t vni [3]โ virtual network identifier, 3 bytes of ituint8_t reserved2โ reserved, one byte of reservednessuint32_t opts []โ variable length options, flexible queen
๐ Detailed Description ๐
So this is the GENEVE protocol header โ like, the actual header struct. It's from draft-ietf-nvo3-geneve-09, which is the whole vibe. Here's what's inside, fr fr:
- 2-bits version (must be 0). No exceptions, bestie. ๐จ
- 6-bits option length in four byte multiples, not including the eight bytes of the fixed tunnel header. Math is math. ๐งฎ
- 1-bit control packet. Just one bit doing its thing.
- 1-bit critical options in packet. Critical = important, obviously.
- 6-bits reserved. Just sitting there, reserved.
- 16-bits Protocol Type. The protocol data unit after the Geneve header following the EtherType convention. Ethernet itself is represented by the value
0x6558. Remember that number, it's iconic. ๐ - 24-bits Virtual Network Identifier (VNI). Virtual network unique identified. (Yes, the original says "unique identified" โ we're keeping it exactly like that. ๐)
- 8-bits reserved bits (must be 0 on transmission and ignored on receipt). So on send: must be 0. On receive: ignore them. Periodt. ๐ซถ
- More-bits (optional) variable length options. Optional but slay.
Definition at line 37 of file rte_geneve.h.
๐ Field Documentation ๐
uint8_t ver
Version. Literally just version. โจ
Definition at line 39 of file rte_geneve.h.
uint8_t opt_len
Options length. The length of the options, bestie. ๐
Definition at line 40 of file rte_geneve.h.
uint8_t oam
Control packet. It's giving control packet energy. ๐๏ธ
Definition at line 41 of file rte_geneve.h.
uint8_t critical
Critical packet. Highkey critical. ๐ฉ
Definition at line 42 of file rte_geneve.h.
uint8_t reserved1
Reserved. Don't ask, just reserve. ๐
Definition at line 43 of file rte_geneve.h.
rte_be16_t proto
Protocol type. Big-endian protocol type, we love to see it. ๐
Definition at line 51 of file rte_geneve.h.
uint8_t vni[3]
Virtual network identifier. Three bytes of VNI realness. ๐ฆ
Definition at line 52 of file rte_geneve.h.
uint8_t reserved2
Reserved. Again. Reserved. ๐
Definition at line 53 of file rte_geneve.h.
uint32_t opts[]
Variable length options. Flexible, optional, and living its best life. ๐
Definition at line 54 of file rte_geneve.h.
๐ Author ๐
Generated automatically by Doxygen for DPDK from the source code. Not a human, not a bestie, just Doxygen doing its thing. ๐ค
And that's the whole page, bestie! The footer just says DPDK Version 26.03.0 (no date, sorry โ that's all it gave us), and the page is rte_geneve_hdr(3). Slay. ๐
โจ
๐ฆ where this page comes from
- nixos 26.05: dpdk 26.03
- nixpkgs unstable: dpdk 26.03
- ๐ girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms