nftnl_tunnel_opt(3)

πŸ“¦ version 1.3.1, in ubuntu resolute, ubuntu stonking

πŸ’– 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 of obj/tunnel.c. it's the geneve data buffer, sized by that NFTNL_TUNNEL_GENEVE_DATA_MAXLEN constant. 🌈
  • uint32_t nftnl_tunnel_opt::data_len β€” defined at line 315 of obj/tunnel.c. how much data you actually got in there, bestie.
  • uint8_t nftnl_tunnel_opt::dir β€” defined at line 308 of obj/tunnel.c. the direction field, chillin' inside the v2 struct.
  • uint32_t nftnl_tunnel_opt::flags β€” defined at line 295 of obj/tunnel.c. flags!! we love flags.
  • uint32_t nftnl_tunnel_opt::gbp β€” defined at line 299 of obj/tunnel.c. this one's the vxlan one. πŸ“
  • uint16_t nftnl_tunnel_opt::geneve_class β€” defined at line 312 of obj/tunnel.c.
  • uint8_t nftnl_tunnel_opt::hwid β€” defined at line 307 of obj/tunnel.c. hardware id, sitting pretty in the v2 struct next to dir.
  • uint32_t nftnl_tunnel_opt::index β€” defined at line 304 of obj/tunnel.c. it's nested inside v1, inside erspan. very demure, very nested.
  • struct list_head nftnl_tunnel_opt::list β€” defined at line 292 of obj/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 of obj/tunnel.c. yes, there are two things called type in here, and that's just how it is. keep up. πŸ’€
  • enum nftnl_tunnel_type nftnl_tunnel_opt::type β€” defined at line 294 of obj/tunnel.c. this is the enum one, the top-level one. the other one is a uint8_t down in the geneve struct. two types, two line numbers, no drama (a little drama). 😭
  • uint32_t nftnl_tunnel_opt::version β€” defined at line 302 of obj/tunnel.c. lives in erspan, right above the v1 and v2 structs.
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