STRUCT BATADV_OGM2_PACKET(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct batadv_ogm2_packet(9) β€” the ogm2 packet, bestie ✨

okay so this is a page from the Kernel API Manual, and it's literally all about struct batadv_ogm2_packet β€” aka the ogm2 (routing protocol) packet πŸ¦‹. yes that's the whole NAME section, she's short and iconic and we respect that.


✨ SYNOPSIS ✨

here's the whole struct, copy it exactly, no edits, she's perfect:

struct batadv_ogm2_packet {
    __u8 packet_type;
    __u8 version;
    __u8 ttl;
    __u8 flags;
    __be32 seqno;
    __u8 orig[ETH_ALEN];
    __be16 tvlv_len;
    __be32 throughput;
 };

πŸŽ€ Members πŸŽ€

okay bestie, field-by-field tour, let's go πŸ’–

  • packet_type β€” the batman-adv packet type. she's part of the general header, main character energy πŸ‘‘
  • version β€” the batman-adv protocol version. also part of the general header, matching set vibes ✨
  • ttl β€” time to live for this packet. yep, general header again, she belongs there 🫢
  • flags β€” reserved for routing relevant flags. and rn? currently always 0. no cap, that's just how it is πŸ’€
  • seqno β€” the sequence number. simple, elegant, slay 🌸
  • orig β€” the originator mac address. that's ETH_ALEN bytes of "who dis" πŸ¦‹
  • tvlv_len β€” length of the appended tvlv buffer, and ngl it's in bytes, don't forget πŸ™ˆ
  • throughput β€” the currently flooded path throughput. she's giving bandwidth gossip, iykyk πŸ”₯

πŸ¦‹ SEE ALSO πŸ¦‹

no seriously, this struct runs with a whole squad. the kernel file is ./include/uapi/linux/batadv_packet.h and here's everybody she's linked with (iykyk, kernel docs love a cross-reference):

  • 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_ogm_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)

and that's the whole page, bestie πŸ§šπŸ’œ this one lives at ./include/uapi/linux and the version/date tag says October 2026 β€” so like, slight time traveler moment ⭐ go read the other packet structs, they're all in the group chat too πŸ“βœ¨

πŸ“¦ where this page comes from