batadv_mcast_forw_tt(9)
π batadv_mcast_forw_tt(9) β the kernel API manual page, bestie edition π
okay so real talk, this is batadv_mcast_forw_tt from the batadv kernel API manual, and it's literally the function that gets your multicast packet to the people who actually asked for it π no cap.
β¨ SYNOPSIS β¨
int batadv_mcast_forw_tt (struct batadv_priv *bat_priv , struct sk_buff
*skb , unsigned short vid );
like, three args in, one int out. slay. π
πΈ ARGUMENTS πΈ
bat_privβ the bat priv, aka the whole vibe container: it's holding all the mesh interface information π«Άskbβ the multicast packet you're about to transmit, the actual main character of this whole operation β¨vidβ the vlan identifier. yes queen, we know which vlan π¦
π DESCRIPTION π
So what does it do?? It sends copies of a frame with a multicast destination to any multicast listener registered in the translation table. and for each such destination node, a transmission is performed via a batman-adv unicast packet. it's giving "one packet in, a whole bunch of unicast packets out" energy π₯
π RETURN π
NET_XMIT_DROPβ when memory allocation fails π (rough, honestly)NET_XMIT_SUCCESSβ otherwise π (the one we want)
π SEE ALSO π
this is the part where the page just. keeps. going. and honestly? iconic. go read the kernel file ./net/batman-adv/multicast.c and also:
batadv_mcast_start_timer(9)batadv_mcast_get_bridge(9)batadv_mcast_mla_rtr_flags_meshif_get_ipv4(9)batadv_mcast_mla_rtr_flags_meshif_get_ipv6(9)batadv_mcast_mla_rtr_flags_meshif_get(9)batadv_mcast_mla_rtr_flags_bridge_get(9)batadv_mcast_mla_rtr_flags_get(9)batadv_mcast_mla_forw_flags_get(9)batadv_mcast_mla_flags_get(9)batadv_mcast_mla_is_duplicate(9)batadv_mcast_mla_meshif_get_ipv4(9)batadv_mcast_mla_meshif_get_ipv6(9)batadv_mcast_mla_meshif_get(9)batadv_mcast_mla_br_addr_cpy(9)batadv_mcast_mla_bridge_get(9)batadv_mcast_mla_list_free(9)batadv_mcast_mla_tt_retract(9)batadv_mcast_mla_tt_add(9)batadv_mcast_querier_log(9)batadv_mcast_bridge_log(9)batadv_mcast_flags_log(9)batadv_mcast_mla_flags_update(9)__batadv_mcast_mla_update(9)batadv_mcast_mla_update(9)batadv_mcast_is_report_ipv4(9)batadv_mcast_forw_mode_check_ipv4(9)batadv_mcast_is_report_ipv6(9)batadv_mcast_forw_mode_check_ipv6(9)batadv_mcast_forw_mode_check(9)batadv_mcast_forw_want_all_ip_count(9)batadv_mcast_forw_rtr_count(9)batadv_mcast_forw_mode_by_count(9)batadv_mcast_forw_mode(9)batadv_mcast_forw_send_orig(9)batadv_mcast_forw_want_all_ipv4(9)batadv_mcast_forw_want_all_ipv6(9)batadv_mcast_forw_want_all(9)batadv_mcast_forw_want_all_rtr4(9)batadv_mcast_forw_want_all_rtr6(9)batadv_mcast_forw_want_rtr(9)batadv_mcast_forw_send(9)batadv_mcast_want_unsnoop_update(9)batadv_mcast_want_ipv4_update(9)batadv_mcast_want_ipv6_update(9)batadv_mcast_want_rtr4_update(9)batadv_mcast_want_rtr6_update(9)batadv_mcast_have_mc_ptype_update(9)batadv_mcast_tvlv_flags_get(9)batadv_mcast_tvlv_ogm_handler(9)batadv_mcast_init(9)batadv_mcast_mesh_info_put(9)batadv_mcast_flags_dump_entry(9)batadv_mcast_flags_dump_bucket(9)__batadv_mcast_flags_dump(9)batadv_mcast_netlink_get_primary(9)batadv_mcast_flags_dump(9)batadv_mcast_free(9)batadv_mcast_purge_orig(9)
like genuinely every single one, I'm not skipping a single bestie on this list π«Άβ¨
and that's the whole page!! sign-off time: this glorious thing lives in ./net/batman-adv, it's dated October 2026, and it's brought to you by the Kernel API Manual π mwah, go forward those packets, ily π§π
π¦ 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