rte_geneve_hdr(3)
π rte_geneve_hdr(3) β Library Functions Manual π
okay bestie, sit down, hydrate, and let's talk about rte_geneve_hdr β it's a library function page from the DPDK fam, and it is literally the blueprint for a GENEVE tunnel header. no cap. let's get into it π¦
β¨ NAME β¨
rte_geneve_hdr β the struct that is the GENEVE protocol header, bestie π
πΈ SYNOPSIS πΈ
#include <rte_geneve.h>
π Data Fields π
uint8_t ver:2
uint8_t opt_len:6
uint8_t oam:1
uint8_t critical:1
uint8_t reserved1:6
rte_be16_t proto
uint8_t vni [3]
uint8_t reserved2
uint32_t opts []
π Detailed Description π
It's the GENEVE protocol header, periodt. the spec it's riding with is draft-ietf-nvo3-geneve-09. and it contains, in order:
- 2-bits for
versionβ and it must be 0, that's not a vibe, that's a rule π - 6-bits option length, measured in four byte multiples, and it does not include the eight bytes of the fixed tunnel header. so like, don't count those, bestie π
- 1-bit control packet
- 1-bit critical options in packet
- 6-bits reserved
- 16-bits Protocol Type. this is the protocol data unit that comes after the Geneve header, following the EtherType convention. and Ethernet itself? represented by the value
0x6558. iconic β - 24-bits Virtual Network Identifier (VNI). virtual network unique identified. iykyk π
- 8-bits reserved bits β must be 0 on transmission and just ignored on receipt. so, like, no funny business on the way out, but we're chill on the way in π
- More-bits (that's optional) β variable length options
Definition at line 37 of file rte_geneve.h. β¨
π§ Field Documentation π§
π uint8_t ver
Version. say it with me: version.
Definition at line 39 of file rte_geneve.h.
π uint8_t opt_len
Options length. how long the options are, that's the whole job π
Definition at line 40 of file rte_geneve.h.
π uint8_t oam
Control packet. she's a control packet, okay? main character energy π
Definition at line 41 of file rte_geneve.h.
π uint8_t critical
Critical packet. the critical-ness levels are critical-ing π₯
Definition at line 42 of file rte_geneve.h.
π uint8_t reserved1
Reserved. hands off, it's reserved π
Definition at line 43 of file rte_geneve.h.
π rte_be16_t proto
Protocol type. what protocol are we even doing here π¦
Definition at line 51 of file rte_geneve.h.
π uint8_t vni[3]
Virtual network identifier. the VNI itself, in all her 3-byte glory πΈ
Definition at line 52 of file rte_geneve.h.
π uint8_t reserved2
Reserved. again. still reserved. still not yours π
Definition at line 53 of file rte_geneve.h.
π uint32_t opts[]
Variable length options. she's variable, she's length-y, she's optional and she contains multitudes π«Ά
Definition at line 54 of file rte_geneve.h.
π Author π
Generated automatically by Doxygen for DPDK from the source code. not a human, just a robot doing her lil thing π€π
and that's the whole page, bestie!! ππ§ this one's from DPDK, Version 25.11.3, and the manual page is rte_geneve_hdr(3). go forth and tunnel responsibly, mwah π
β¨
π¦ where this page comes from
- ubuntu resolute: dpdk-doc 25.11.3-0ubuntu0.26.04.1 Β· BSD-3-Clause
- ubuntu stonking: dpdk-doc 25.11.3-1 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms