STRUCT BATADV_MCAST_PACKET(9)
π 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 withpacket_typefr 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
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms