batadv_mcas...k_pack_dests(9)
π batadv_mcast_forw_shrink_pack_dests(9) β the Kernel API Manual page you didn't know you needed
okay so bestie, this is batadv_mcast_forw_shrink_pack_dests(9) from the Kernel API Manual, and it's literally the glow-up artist for multicast packets. let's get into it β¨
πΈ NAME πΈ
batadv_mcast_forw_shrink_pack_dests β packs the destinations of a tracker TVLV. no cap, that's the whole gig π
β¨ SYNOPSIS β¨
int batadv_mcast_forw_shrink_pack_dests (struct sk_buff *skb );
π¦ ARGUMENTS π¦
skbβ the batman-adv multicast packet where you want to compact the destinations. that's your main character right there π
π DESCRIPTION π
so what's actually happening? this function compacts the originator destination MAC addresses in the multicast tracker TVLV of the multicast packet you hand it. π«Ά
and how does it do that, you ask? the way that it works is:
- every non-zero MAC address gets moved in the direction of the skb head
- every zero MAC address gets moved in the skb tail direction
- all of this happens within the multicast tracker TVLV
it's giving "tidy your room by yeeting everything into two piles," and honestly? iconic. the zero MACs get banished to the back, the real ones stay up front, periodt. π
π₯ RETURN π₯
the return value is the number of consecutive zero MAC address destinations which are now sitting at the end of the multicast tracker TVLV. that's your little count of how many empties got yeeted, bestie. π
π SEE ALSO π
the whole friend group, fr fr β every single one of these:
Kernel file ./net/batman-adv/multicast_forw.cbatadv_mcast_forw_skb_push(9)batadv_mcast_forw_push_padding(9)batadv_mcast_forw_push_est_padding(9)batadv_mcast_forw_orig_entry(9)batadv_mcast_forw_push_dest(9)batadv_mcast_forw_push_dests_list(9)batadv_mcast_forw_push_tt(9)batadv_mcast_forw_push_want_all(9)batadv_mcast_forw_push_want_rtr(9)batadv_mcast_forw_scrape(9)batadv_mcast_forw_push_scrape_padding(9)batadv_mcast_forw_push_insert_padding(9)batadv_mcast_forw_push_adjust_padding(9)batadv_mcast_forw_push_dests(9)batadv_mcast_forw_push_tracker(9)batadv_mcast_forw_push_tvlvs(9)batadv_mcast_forw_push_hdr(9)batadv_mcast_forw_scrub_dests(9)batadv_mcast_forw_shrink_fill(9)batadv_mcast_forw_shrink_align_offset(9)batadv_mcast_forw_shrink_update_headers(9)batadv_mcast_forw_shrink_move_headers(9)batadv_mcast_forw_shrink_tracker(9)batadv_mcast_forw_packet(9)batadv_mcast_forw_tracker_tvlv_handler(9)batadv_mcast_forw_packet_hdrlen(9)batadv_mcast_forw_expand_head(9)batadv_mcast_forw_push(9)batadv_mcast_forw_mcsend(9)
π heads up bestie: this page lives at ./net/batman-adv, and it's dated October 2026. so like, future vibes only. β
k that's the whole page, ily, go read the kernel source, 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