STRUCT BATADV_ICMP_HEADER(9)
π struct batadv_icmp_header(9) β the group-chat lore β¨
okay so bestie, welcome to the struct batadv_icmp_header(9) page in the Kernel API Manual π«Ά this is the lowkey MVP struct that every single ICMP packet in batman-adv shares its opening moves with. no cap, she's the blueprint π
πΈ NAME πΈ
struct batadv_icmp_header β the members literally every ICMP packet has in common π like the shared DNA of the whole ICMP family, fr fr
β¨ SYNOPSIS β¨
here's the whole glow-up, character for character, don't touch a thing π
struct batadv_icmp_header {
__u8 packet_type;
__u8 version;
__u8 ttl;
__u8 msg_type;
__u8 dst[ETH_ALEN];
__u8 orig[ETH_ALEN];
__u8 uid;
__u8 align[3];
};
π Members π
packet_typeβ the batman-adv packet type, and she's part of the general header π not a solo actversionβ batman-adv protocol version, also part of the general header β¨ttlβ time to live for this packet, yep, part of the general header too π¦msg_typeβ the ICMP packet type πdstβ address of the destination node, where she's headed π―origβ address of the source node, where she came from π±uidβ local ICMP socket identifier, like her little local ID badge πalignβ not used, it's only there for alignment purposes, she's purely structural bestie π
π Description π
so here's the tea π this structure is used for ICMP packet parsing only, and it is never sent over the wire. literally never, not even once, iykyk π«π‘
the alignment field chilling at the end? she's there to make sure the members are padded the exact same way they are in real packets β so the vibes line up and the parsing goes off without a hitch β¨π§
lowkey important: align is not data, she's just there so the padding matches. do NOT come for her, she's doing her job π«Ά
π₯ SEE ALSO π₯
- 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_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)
like, that's the whole friend group, go say hi ππ
and that's the page bestie!! π she lives in ./include/uapi/linux, dated October 2026, and she's giving main character energy in the Kernel API Manual π
β¨ mwah, go read some more manpages, ily π«Ά
π¦ 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