batadv_bla_c...cast_duplist(9)
π batadv_bla_c...cast_duplist(9) β the Kernel API Manual, bestie edition π
okay so real talk, this page lives in the Kernel API Manual (that's batadv_bla_c...cast_duplist(9), yes the name is literally truncated with dots, that's not me being lazy, that's just how it's printed π) and it's all about the bridge loop avoidance broadcast duplicate list. iconic name, lowkey unpronounceable, but we move.
β¨ NAME β¨
batadv_bla_check_bcast_duplist β check if a frame is in the broadcast dup. that's it. that's the whole job. π¦
πΈ SYNOPSIS πΈ
bool batadv_bla_check_bcast_duplist (struct batadv_priv *bat_priv ,
struct sk_buff *skb );
it returns a bool, it takes two pointers, and it's about to do a vibe check on your packet. periodt.
π«Ά ARGUMENTS π«Ά
bat_privβ the bat priv with all the mesh interface information. yes, all of it. this is the main character struct of the mesh, she's carrying everything πskbβ contains thebcast_packetto be checked. this is the little packet in question, and we're about to find out if she's a duplicate or not π
π DESCRIPTION π
okay so here's the tea β β this function checks if the frame is on our broadcast list. that's the vibe check.
here's why that matters, and it's kind of a big deal: another gateway might have sent the same packet because it is connected to the same backbone. so we have to remove this duplicate. no cap. two gateways, same backbone, same packet showing up twice β we're not having it, the duplicate gets yeeted. ποΈβ¨
π₯ RETURN π₯
trueif a packet is in the duplicate list π (she's a dupe, bestie)falseotherwise β¨ (fresh packet, main character energy, let her through)
π SEE ALSO π
first up, the source file itself:
- Kernel file
./net/batman-adv/bridge_loop_avoidance.c
and now the whole friend group, fr fr β here's literally every single one, no skips, we don't do skipping here:
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_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)
like, that's the entire roster. iykyk π§
ngl, the title up top beingbatadv_bla_c...cast_duplist(9)with the literal...in the middle is so real of it β truncated queen π
and that's the page!! mwah π this one came from ./net/batman-adv, dated October 2026, and the footer says batadv_bla_c...cast_duplist(9) one more time just to close the loop (avoidance loop, get it π) β slay, go read the source, and remember: duplicates get removed, you get to stay πβ¨
π¦ 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