STRUCT BATADV_MCAST_PACKET(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct batadv_mcast_packet(9) πŸ’–

okay bestie, so we're in the Kernel API Manual today and the vibe is immaculate β€” this is the manpage for struct batadv_mcast_packet, aka the multicast packet for network payload. yes that's the actual NAME line, no I'm not paraphrasing, this thing literally carries multicast goodness around the network. πŸ¦‹


✨ SYNOPSIS ✨

like, here's the whole struct, and you're gonna want to screenshot this because it's giving exact bytes:

struct batadv_mcast_packet {
    __u8 packet_type;
    __u8 version;
    __u8 ttl;
    __u8 reserved;
    __be16 tvlv_len;
};

no cap, that's the entire thing. five fields. tiny. iconic. 🀏


πŸŽ€ Members πŸŽ€

  • packet_type β€” the batman-adv packet type, and it's part of the general header. main character header energy, obviously. πŸ‘‘
  • version β€” the batman-adv protocol version, also part of the general header. she's tagging along with packet_type fr fr. πŸ’…
  • ttl β€” time to live for this packet, and yep, another general header member. if she hits zero it's over, periodt. πŸ’€
  • reserved β€” a reserved byte for alignment. she doesn't do much, she's just here so everything lines up nicely. we love a supportive icon. 🫢
  • tvlv_len β€” length of the appended tvlv buffer, measured in bytes. note it's a __be16, big-endian bestie, don't forget. 🌸

πŸ¦‹ SEE ALSO πŸ¦‹

okay so there is a lot of family here, and honestly? the lore is deep. all of these live in the Kernel file ./include/uapi/linux/batadv_packet.h:

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

like, go read them, iykyk. they're all serving their own little purpose and we stan a whole header file of coworkers. 🌈


ngl bestie, if you're poking at raw packet bytes, double-check your endianness on tvlv_len before you ship anything. byte order crimes are real and they will find you. 😭

and that's the whole page! πŸ’œ this lil masterpiece lives in the source path ./include/uapi/linux, and it's dated October 2026 β€” so mark your calendars, the future is now, mwah 🧚⭐

πŸ“¦ where this page comes from