nftnl_tunnel_opt(3)
π nftnl_tunnel_opt π
okay bestie, so this is the manual page for nftnl_tunnel_opt β that's a (3) library function situation, and it lives in the libnftnl world. It's literally just a struct, a little container of tunnel options, and we're gonna go through every single field together. no skips. no cap. π«Ά
β¨ SYNOPSIS β¨
π Data Fields
so here's the whole shape of it, exactly as it is:
struct list_head list
enum nftnl_tunnel_type type
uint32_t flags
union {
struct {
uint32_t gbp
} vxlan
struct {
uint32_t version
struct {
uint32_t index
} v1
struct {
uint8_t hwid
uint8_t dir
} v2
} erspan
struct {
uint16_t geneve_class
uint8_t type
uint8_t data [NFTNL_TUNNEL_GENEVE_DATA_MAXLEN]
uint32_t data_len
} geneve
};
see how the union branches out into vxlan, erspan, and geneve? it's giving "pick your tunnel flavor" and honestly? obsessed. π¦
πΈ Detailed Description πΈ
so the actual definition of this whole thing is at line 291 of the file obj/tunnel.c. that's where it lives. that's its home. π
π§ Field Documentation π§
okay now we go field by field, and yes i'm listing every single one because we don't do partial credit here:
uint8_t nftnl_tunnel_opt::data[NFTNL_TUNNEL_GENEVE_DATA_MAXLEN]β defined at line 314 ofobj/tunnel.c. it's the geneve data buffer, sized by thatNFTNL_TUNNEL_GENEVE_DATA_MAXLENconstant. πuint32_t nftnl_tunnel_opt::data_lenβ defined at line 315 ofobj/tunnel.c. how much data you actually got in there, bestie.uint8_t nftnl_tunnel_opt::dirβ defined at line 308 ofobj/tunnel.c. the direction field, chillin' inside thev2struct.uint32_t nftnl_tunnel_opt::flagsβ defined at line 295 ofobj/tunnel.c. flags!! we love flags.uint32_t nftnl_tunnel_opt::gbpβ defined at line 299 ofobj/tunnel.c. this one's the vxlan one. πuint16_t nftnl_tunnel_opt::geneve_classβ defined at line 312 ofobj/tunnel.c.uint8_t nftnl_tunnel_opt::hwidβ defined at line 307 ofobj/tunnel.c. hardware id, sitting pretty in thev2struct next todir.uint32_t nftnl_tunnel_opt::indexβ defined at line 304 ofobj/tunnel.c. it's nested insidev1, insideerspan. very demure, very nested.struct list_head nftnl_tunnel_opt::listβ defined at line 292 ofobj/tunnel.c. it's a linked list head, so this struct is ready to be chained up with its friends. π₯uint8_t nftnl_tunnel_opt::typeβ defined at line 313 ofobj/tunnel.c. yes, there are two things calledtypein here, and that's just how it is. keep up. πenum nftnl_tunnel_type nftnl_tunnel_opt::typeβ defined at line 294 ofobj/tunnel.c. this is the enum one, the top-level one. the other one is auint8_tdown in the geneve struct. twotypes, two line numbers, no drama (a little drama). πuint32_t nftnl_tunnel_opt::versionβ defined at line 302 ofobj/tunnel.c. lives inerspan, right above thev1andv2structs.
lowkey wild that type shows up twice with totally different types and totally different line numbers, but that's exactly what the page says, so that's what you get. π
π Author π
generated automatically by Doxygen for libnftnl from the source code. not a human, just a very diligent robot doing its thing. iconic behavior honestly.
and that's the whole page, bestie!! this manual came from libnftnl, Version 1.3.1, and it's the nftnl_tunnel_opt(3) situation β go forth and tunnel responsibly. mwah. πβ¨π
π¦ where this page comes from
- ubuntu resolute: libnftnl-dev-doc 1.3.1-1 Β· GPL-2.0-or-later
- ubuntu stonking: libnftnl-dev-doc 1.3.1-1 Β· GPL-2.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms