STRUCT BATADV_ICMP_TP_PACKET(9)
π struct batadv_icmp_tp_packet(9) β ICMP TP Meter packet π
okay so bestie, welcome to the Kernel API Manual β¨ β this page is all about struct batadv_icmp_tp_packet, which is literally the ICMP TP Meter packet. yes that's a mouthful, no i will not be pronouncing it out loud. sit down, grab a strawberry π, and let's go.
β¨ NAME β¨
struct batadv_icmp_tp_packet β ICMP TP Meter packet π₯
π SYNOPSIS π
here's the full glow-up of the struct, copied exactly because precision is the whole vibe π
struct batadv_icmp_tp_packet {
__u8 packet_type;
__u8 version;
__u8 ttl;
__u8 msg_type;
__u8 dst[ETH_ALEN];
__u8 orig[ETH_ALEN];
__u8 uid;
__u8 subtype;
__u8 session[2];
__be32 seqno;
__be32 timestamp;
};
π¦ Members π¦
okay so every single field, in order, no skips β this is the roster bestie π
packet_typeβ the batman-adv packet type, and it's part of the general header πΈversionβ the batman-adv protocol version, also part of the general header β¨ttlβ time to live for this packet, yep you guessed it, part of the general header π«Άmsg_typeβ the ICMP packet type π«dst[ETH_ALEN]β address of the destination node πorig[ETH_ALEN]β address of the source node πuidβ local ICMP socket identifier πsubtypeβ the TP packet subtype (peepbatadv_icmp_tp_subtype) πsession[2]β TP session identifier ποΈseqnoβ the TP sequence number π’timestampβ time when the packet has been sent. this value is filled in aTP_MSGand echoed back in the nextTP_ACKso that the sender can compute the RTT π. and here's the cute part: since it is read only by the host which wrote it, there is no need to store it using network order β so it's a__be32that lowkey doesn't gotta be network order, ngl, that's iconic π
π SEE ALSO π
bestie the link list is LONG and i respect it. 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)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β¦ go read them? they're all right there, iykyk π
and that's the whole page, bestie! π this lil artifact lives in ./include/uapi/linux and the date on it is October 2026 β so yes, future me is still out here reading kernel headers. slay. periodt. π§β¨
π¦ 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