STRUCT BATADV_ICMP_PACKET(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– 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