batadv_mcast...w_push_tvlvs(9)
π batadv_mcast_forw_push_tvlvs(9) β the Kernel API Manual glow-up π
okay so this is a page from the Kernel API Manual (the batadv_mcast...w_push_tvlvs(9) one, yes the name is literally truncated with ..., that's just how it's filed bestie, we don't ask questions πΈ). It's a function in the batman-adv multicast forwarding saga, and it does exactly one iconic little job: it pushes a multicast tracker TVLV onto an skb. periodt.
β¨ SYNOPSIS β¨
int batadv_mcast_forw_push_tvlvs (struct batadv_priv *bat_priv ,
struct sk_buff *skb ,
unsigned short vid ,
int is_routable ,
int count ,
unsigned short *tvlv_len );
like literally that's the whole signature, no cap π«Ά
π ARGUMENTS π
bat_privβ the bat priv holding all the mesh interface information. it's giving "main character data structure" πskbβ the skb we're pushing the tracker TVLV onto. that's the canvas, bestie π¨vidβ the vlan identifier πis_routableβ indicates whether the destination is routable π§countβ the number of originators the multicast packet needs to be sent to π’tvlv_lenβ stores the amount of currently pushed TVLV bytes π
π¦ DESCRIPTION π¦
so what it does is: pushes a multicast tracker TVLV onto the given skb, and that includes the collected destination MAC addresses and the generic TVLV header. two-for-one slay β¨
π RETURN π
-ENOMEMif there is not enough skb headroom available π (the skb said "no room, not today")- otherwise, on success,
0π
π₯ SEE ALSO π₯
the kernel file itself lives at ./net/batman-adv/multicast_forw.c β go read it, iykyk π
and here's the whole friend group, all of them, in order, no one left out π«Ά:
batadv_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_hdr(9)batadv_mcast_forw_scrub_dests(9)batadv_mcast_forw_shrink_fill(9)batadv_mcast_forw_shrink_pack_dests(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)
okay that's the whole page, you ate it up bestie π β¨
sign-off time π this one's from ./net/batman-adv, dated October 2026, and it's filed under batadv_mcast...w_push_tvlvs(9). bye bye, drink water, go read your skb headroom πΈπ¦
π¦ 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