STRUCT BATADV_ICMP_PACKET(9)
π struct batadv_icmp_packet(9) β ICMP packet, bestie edition π
okay so you're in the Kernel API Manual, section 9, and we're talking about struct batadv_icmp_packet β literally the ICMP packet struct, no cap. It's a whole vibe, it's a lil' bundle of fields, and I'm gonna walk you through every single one πΈ
β¨ SYNOPSIS β¨
here's the shape of it, copy it exactly or the compiler will be like "girl what" π
struct batadv_icmp_packet {
__u8 packet_type;
__u8 version;
__u8 ttl;
__u8 msg_type;
__u8 dst[ETH_ALEN];
__u8 orig[ETH_ALEN];
__u8 uid;
__u8 reserved;
__be16 seqno;
};
π¦ Members π¦
okay so each of these is doing its own lil' thing and honestly they all ate:
packet_typeβ the batman-adv packet type, and it's part of the general header π«Ά so it's like the general header's little sister field, still iconic.versionβ the batman-adv protocol version, also part of the general header. yep, general header again, she's everywhere πttlβ time to live for this packet, and again part of the general header. see a pattern? the general header is the main character here πmsg_typeβ the ICMP packet type. that's the whole personality of the message ngl.dstβ address of the destination node π― the place we're pulling up to.origβ address of the source node π where it came from, its origin story fr.uidβ local ICMP socket identifier. it's giving "which socket is this" energy π₯reservedβ not used! only there so things line up nicely (alignments vibes β¨). literally just filler, but make it useful.seqnoβ the ICMP sequence number, keeping track of the order of things like the responsible lil' icon it is π
π SEE ALSO π
buckle up bestie, this list is LONG and every single one of these is a real reference, so:
Kernel file ./include/uapi/linux/batadv_packet.h plus 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_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), and struct batadv_tvlv_mcast_tracker(9). π§ go read 'em, iykyk π
ok that's the whole page, no details left behind, we ate and left no crumbs π
and that's the tea π΅ β this one lives in ./include/uapi/linux, dated October 2026, and it's filed under struct batadv_icmp_packet(9). mwah, bye bestie ππ
π¦ 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