batadv_mcast_forw_push_dest(9)
π batadv_mcast_forw_push_dest(9) β the Kernel API Manual, bestie edition
okay so bestie, this is batadv_mcast_forw_push_dest β it lives in the Kernel API Manual, and the whole entire job of this function is literally just pushing an originator MAC address onto an skb. that's it. that's the gig. π
β¨ SYNOPSIS β¨
bool batadv_mcast_forw_push_dest (struct batadv_priv *bat_priv , struct
sk_buff *skb , unsigned short vid , struct batadv_orig_node *orig_node ,
unsigned short *num_dests , unsigned short *tvlv_len );
it returns a bool, so you already know it's about to be a yes-or-no situation. π
π«Ά ARGUMENTS π«Ά
bat_privβ the bat priv with all the mesh interface information. it's giving "holder of all the mesh lore". πskbβ the skb you're pushing the destination address onto. the main character of this operation, ngl.vidβ the vlan identifier. yes, it's short. yes, it's iconic.orig_nodeβ the originator node you're getting the MAC address from. we're borrowing, bestie, not stealing.num_destsβ a pointer to store the number of pushed addresses in. it's a pointer, so it's storing something, not just vibing. π¦tvlv_lenβ stores the amount of currently pushed TVLV bytes. gotta keep that byte count cute and accurate. π
πΈ DESCRIPTION πΈ
here's the vibe check. if the orig_node is a BLA backbone gateway, or if there's not enough skb headroom available, or if num_dests is already at its maximum (that's 65535, no cap), then neither the skb nor num_dests is changed. nothing happens. zero movement. we respect the boundary. π
otherwise? the originator's MAC address gets pushed onto the given skb and num_dests gets incremented by one. slay. β¨
fr fr remember: all three of those conditions are "hands off the skb" territory β the function literally changes nothing in those cases. π
π₯ RETURN π₯
- returns
trueif the orig_node is a backbone gateway or if an orig address was pushed successfully π - returns
falseotherwise π
π SEE ALSO π
the kernel file in question:
./net/batman-adv/multicast_forw.c
and the whole entire friend group (they all showed up, nobody cancelled):
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_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_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)
and that's the whole page, bestie!! πβ¨π this one shipped straight out of ./net/batman-adv with an October 2026 date stamp β so like, go forth and push those destination addresses responsibly. 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