batadv_handle_announce(9)
π batadv_handle_announce(9)
okay so bestie, welcome to the Kernel API Manual β this is the bridge-loop-avoidance corner of the batman-adv mesh universe and honestly it's kind of iconic β¨
This one function, batadv_handle_announce, does exactly one thing and does it with main character energy: it checks for an ANNOUNCE frame π That's the whole vibe check. Nothing more, nothing less.
β¨ SYNOPSIS β¨
bool batadv_handle_announce (struct batadv_priv *bat_priv , u8 *an_addr
, u8 *backbone_addr , unsigned short vid );
returns a bool, takes four args, slays, leaves π
π«Ά ARGUMENTS π«Ά
bat_privβ the bat priv π¦ this is the one carrying all the mesh interface information, like the whole group chat's contact list nglan_addrβ the announcement mac address (aka the ARP Sender HW address) π literally who sent it, on the MAC levelbackbone_addrβ the originator address of the sender, which is the Ethernet source MAC π so like, where it actually came from origin-wisevidβ the VLAN ID of the frame πΈ the lil tag that says which network this party is happening on
β RETURN β
trueβ if handled π that's it, that's the return value.truemeans handled, periodt.
π₯ SEE ALSO π₯
okay so this list is LONG and every single one of these is a friend of the show, so let's go π
kernel file: ./net/batman-adv/bridge_loop_avoidance.c π
The full squad, no cap, in order:
batadv_choose_claim(9)batadv_choose_backbone_gw(9)batadv_compare_backbone_gw(9)batadv_compare_claim(9)batadv_backbone_gw_release(9)batadv_backbone_gw_put(9)batadv_claim_release(9)batadv_claim_put(9)batadv_claim_hash_find(9)batadv_backbone_hash_find(9)batadv_bla_del_backbone_claims(9)batadv_bla_send_claim(9)batadv_bla_loopdetect_report(9)batadv_bla_get_backbone_gw(9)batadv_bla_update_own_backbone_gw(9)batadv_bla_answer_request(9)batadv_bla_send_request(9)batadv_bla_send_announce(9)batadv_bla_add_claim(9)batadv_bla_claim_get_backbone_gw(9)batadv_bla_del_claim(9)batadv_handle_request(9)batadv_handle_unclaim(9)batadv_handle_claim(9)batadv_check_claim_group(9)batadv_bla_process_claim(9)batadv_bla_purge_backbone_gw(9)batadv_bla_purge_claims(9)batadv_bla_update_orig_address(9)batadv_bla_send_loopdetect(9)batadv_bla_status_update(9)batadv_bla_periodic_work(9)batadv_bla_init(9)batadv_bla_check_duplist(9)batadv_bla_check_ucast_duplist(9)batadv_bla_check_bcast_duplist(9)batadv_bla_is_backbone_gw_orig(9)batadv_bla_is_backbone_gw(9)batadv_bla_free(9)batadv_bla_loopdetect_check(9)batadv_bla_rx(9)batadv_bla_tx(9)batadv_bla_claim_dump_entry(9)batadv_bla_claim_dump_bucket(9)batadv_bla_claim_dump(9)batadv_bla_backbone_dump_entry(9)batadv_bla_backbone_dump_bucket(9)batadv_bla_backbone_dump(9)batadv_bla_check_claim(9)
bestie note π«Ά this page lives under ./net/batman-adv, and it's dated October 2026 β so yeah, mark your calendars, the mesh lore is timestamped π
k byeeee, go check those ANNOUNCE frames ππ§ββοΈπΈ
π¦ 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