STRUCT BATADV_ICMP_PACKET_RR(9)
π struct batadv_icmp_packet_rr β ICMP RouteRecord packet π¦
Okay so bestie, welcome to the Kernel API Manual β¨ (that's the manual name, iykyk) β and today's main character is this little struct: struct batadv_icmp_packet_rr, aka the ICMP RouteRecord packet. It's giving networking royalty π.
πΈ NAME πΈ
struct batadv_icmp_packet_rr β ICMP RouteRecord packet. That's it, that's the vibe π
β¨ SYNOPSIS β¨
struct batadv_icmp_packet_rr {
__u8 packet_type;
__u8 version;
__u8 ttl;
__u8 msg_type;
__u8 dst[ETH_ALEN];
__u8 orig[ETH_ALEN];
__u8 uid;
__u8 rr_cur;
__be16 seqno;
__u8 rr[BATADV_RR_LEN][ETH_ALEN];
};
Not me typing out every single field so you don't have to π Copy it exactly, no cap β those are the exact types and those are the exact names π
π«Ά Members π«Ά
Every field gets its moment, periodt. Let's do a vibe check on each one:
packet_typeβ batman-adv packet type, part of the general header. Literally the "what kind of packet am I" field πversionβ batman-adv protocol version, part of the general header. She's the version tag, iconic β¨ttlβ time to live for this packet, part of the general header. Lowkey the countdown clock πmsg_typeβ ICMP packet type. Tells you which flavour of ICMP we're dealing with πdstβ address of the destination node. Where the packet's going, its final destination π―origβ address of the source node. Where it came from, its origin story πuidβ local ICMP socket identifier. The socket's little name tag π·οΈrr_curβ number of entries the rr array. (Yes, that's the original wording β I'm not touching the facts, only the flair π)seqnoβ ICMP sequence number. Keeping track of order, main character energy π₯rrβ route record array. The whole route, recorded, the way that it holds the tea π¦
π SEE ALSO π
Kernel file ./include/uapi/linux/batadv_packet.h β go read it, it's literally where the packets live π
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_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)
That's the whole squad, all accounted for π No skips, no summaries β every single reference is there, fr fr.
Heads up bestie: this page is sourced from./include/uapi/linux, dated October 2026, and the page identifier isstruct batad...mp_packet_rr(9)π«Ά so that's your source, your version, and your date β all in one cute little sign-off π β¨ π¦
Stay iconique, go read those header files, 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