batadv_bla_loopdetect_check(9)
π batadv_bla_loopdetect_check(9) β check and handle a detected loop π
okay bestie, welcome to the batadv_bla_loopdetect_check(9) page, straight out of the Kernel API Manual β¨ this one's short and sweet, so grab your iced coffee and let's go π§
β¨ NAME β¨
batadv_bla_loopdetect_check β check and handle a detected loop π
πΈ SYNOPSIS πΈ
bool batadv_bla_loopdetect_check (struct batadv_priv *bat_priv , struct
sk_buff *skb , struct batadv_hard_iface *primary_if , unsigned short vid
);
like, that's the whole signature, no cap. it hands you back a bool π«Ά
π ARGUMENTS π
bat_privβ the bat priv, aka the one holding all the mesh interface information π it's giving main character energy, everything lives in here.skbβ the packet to check π¦ the lil guy we're investigating.primary_ifβ the interface where the request came on π¦ lowkey important context.vidβ the VLAN ID of the frame π·οΈ yes, the VLAN. don't skip it.
π DESCRIPTION π
so here's the vibe: this function checks if this packet is a loop detect frame which has been sent by us π like, did we send this? is this our own reflection in the mirror? πͺ
and if that's the case β if it really is one of ours β it throws an uevent and logs the event π₯ that's it, that's the job. it notices and it makes noise about it, periodt.
β RETURN β
trueβ yup, it is a loop detect frame which is to be dropped π bye bestie.falseβ nope, not one of those, carry on π
literally that simple.
π¦ SEE ALSO π¦
the kernel file it lives in: ./net/batman-adv/bridge_loop_avoidance.c π and honestly? the whole friend group is here, so let's name them all:
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_announce(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_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)
fr fr that's the entire list, i didn't skip a single one π iykyk.
okay that's the whole page bestie, go be iconic with it π
β¨ this came from ./net/batman-adv, dated October 2026, and it's the batadv_bla_loopdetect_check(9) page β mwah, love u, bye π«Άπ
π¦ 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