batadv_mcas...e_check_ipv6(9)
π¦ batadv_mcast_forw_mode_check_ipv6(9) β Kernel API Manual π¦
okay so bestie, we're in the Kernel API Manual today and the star of the show is batadv_mcast_forw_mode_check_ipv6. no cap, it's giving "tiny function, big job" energy β¨
π NAME π
batadv_mcast_forw_mode_check_ipv6 β check for optimized forwarding potential π
like, it literally just peeks at a packet and goes "hmm, could this be forwarded smarter?" π₯
πΈ SYNOPSIS πΈ
int batadv_mcast_forw_mode_check_ipv6 (struct batadv_priv *bat_priv ,
struct sk_buff *skb , bool *is_unsnoopable , int *is_routable );
the way that signature just sits there with four arguments... main character energy fr fr π
π ARGUMENTS π
bat_privβ the bat priv with all the mesh interface information π«Ά like, the whole mesh's vibe lives in hereskbβ the IPv6 packet to check π¦ the one we're β¨judgingβ¨is_unsnoopableβ stores whether the destination is snoopable π yes, it gets written to, that's the whole pointis_routableβ stores whether the destination is routable π§ likewise, output goes here
ngl, those last two are out-params, so bring your pointers bestie π
β DESCRIPTION β
Checks whether the given IPv6 packet has the potential to be forwarded with a mode more optimal than classic flooding πβ‘οΈπ―
that's it, that's the job. it's a vibe check for your packet β is classic flooding the move, or can we do better? iykyk π«
π RETURN π
If so then 0 π (slay). Otherwise -EINVAL π€¨ or -ENOMEM if we are out of memory π (literally the worst).
π§ SEE ALSO π§
Kernel file ./net/batman-adv/multicast.c and honestly the whole multicast friend group π:
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(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_tt(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, that's a lot of friends and we stan every single one π
okay that's the whole page bestie, no gatekeeping π this one came out of ./net/batman-adv and it's dated October 2026 β and yeah, batadv_mcas...e_check_ipv6(9) is the exact same function you just read about, the header and footer are just built different π
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