STRUCT BATADV_OGM_PACKET(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct batadv_ogm_packet(9) β€” the Kernel API Manual page, bestie edition πŸ’–

okay so this is the struct batadv_ogm_packet page from the Kernel API Manual, and it's literally the ogm β€” that's the routing protocol packet, no cap. it's a struct definition, so we're gonna walk through every single member together, one by one, holding hands 🫢


✨ NAME ✨

struct batadv_ogm_packet β€” the ogm (routing protocol) packet. that's it, that's the whole vibe. πŸ‘‘


🌸 SYNOPSIS 🌸

here's the whole struct, exactly as it lives, don't touch a single byte bestie:

struct batadv_ogm_packet {
    __u8 packet_type;
    __u8 version;
    __u8 ttl;
    __u8 flags;
    __be32 seqno;
    __u8 orig[ETH_ALEN];
    __u8 prev_sender[ETH_ALEN];
    __u8 reserved;
    __u8 tq;
    __be16 tvlv_len;
 };

she's giving "field order matters" energy and honestly? iconic. πŸ’…


πŸŽ€ Members πŸŽ€

okay so this is the part where we meet the cast. main character energy for every single one:

  • packet_type β€” batman-adv packet type, and it's part of the general header. so she's not just a member, she's a team player. πŸ¦‹
  • version β€” batman-adv protocol version, also part of the general header. yes, another header girlie. ✨
  • ttl β€” time to live for this packet, and yup, part of the general header too. the header trio ate, fr fr. πŸ”₯
  • flags β€” contains routing relevant flags β€” see enum batadv_iv_flags. so if you're confused, that's where you go. iykyk. 🧚
  • seqno β€” sequence identification. her whole job is keeping track of the sequence. slay. πŸŽ€
  • orig β€” address of the source node. like, where it came from, literally. πŸ“
  • prev_sender β€” address of the previous sender. the previous one though, not the source, do not confuse them please 😭
  • reserved β€” a reserved byte, and it's there for alignment. she's not doing much but she's doing it fabulously. πŸ’€
  • tq β€” transmission quality. the vibe check of the packet, lowkey. 🌈
  • tvlv_len β€” length of tvlv data following the ogm header. so there's more stuff after the header and this is the length of it. noted bestie. πŸ“

πŸ’œ SEE ALSO πŸ’œ

okay there are a LOT of friends in this family and we are not leaving a single one out. first up, the file itself lives in the kernel file ./include/uapi/linux/batadv_packet.h ⭐

and then, the whole squad:

  • batadv_tp_is_error(9)
  • enum batadv_packettype(9)
  • enum batadv_subtype(9)
  • enum batadv_iv_flags(9)
  • enum batadv_icmp_packettype(9)
  • enum batadv_mcast_flags(9)
  • enum batadv_tt_data_flags(9)
  • enum batadv_vlan_flags(9)
  • enum batadv_bla_claimframe(9)
  • enum batadv_tvlv_type(9)
  • struct batadv_bla_claim_dst(9)
  • struct batadv_ogm2_packet(9)
  • struct batadv_elp_packet(9)
  • struct batadv_icmp_header(9)
  • struct batadv_icmp_packet(9)
  • struct batadv_icmp_tp_packet(9)
  • enum batadv_icmp_tp_subtype(9)
  • struct batadv_icmp_packet_rr(9)
  • struct batadv_unicast_packet(9)
  • struct batadv_unicast_4addr_packet(9)
  • struct batadv_frag_packet(9)
  • struct batadv_bcast_packet(9)
  • struct batadv_mcast_packet(9)
  • struct batadv_coded_packet(9)
  • struct batadv_unicast_tvlv_packet(9)
  • struct batadv_tvlv_hdr(9)
  • struct batadv_tvlv_gateway_data(9)
  • struct batadv_tvlv_tt_vlan_data(9)
  • struct batadv_tvlv_tt_data(9)
  • struct batadv_tvlv_tt_change(9)
  • struct batadv_tvlv_roam_adv(9)
  • struct batadv_tvlv_mcast_data(9)
  • struct batadv_tvlv_mcast_tracker(9)
ngl that's a whole group chat and every single one of them is invited to the function. πŸ’–

and that's the page bestie!! this one came out of the kernel file ./include/uapi/linux, dated October 2026, and it's filed under struct batadv_ogm_packet(9) in the Kernel API Manual. go be iconic with your packets, ily, bye!! πŸ’…βœ¨πŸ¦‹πŸŽ€

πŸ“¦ where this page comes from