batadv_bla_rx(9)
π batadv_bla_rx(9) β the Kernel API Manual, but make it make sense
okay bestie, welcome to the Kernel API Manual, section 9. today's main character is batadv_bla_rx β the bridge loop avoidance receive-side vibe check. yes, the whole function name is the title, we don't make the rules πΈ
β¨ NAME β¨
batadv_bla_rx β check packets coming from the mesh. that's it, that's the job. it's giving bouncer at the club door π
π¦ SYNOPSIS π¦
bool batadv_bla_rx (struct batadv_priv *bat_priv , struct sk_buff *skb ,
unsigned short vid , int packet_type );
look at her. four arguments, one bool return, zero notes. iconic π
π ARGUMENTS π
bat_privβ the bat priv with all the mesh interface information. yes girl, it's the one with everything in it. the whole mesh's business, in one struct, lowkey terrifying π«Άskbβ the frame to be checked. this is the little packet that walked in and now has to explain itself πvidβ the VLAN ID of the frame. gotta know which lane she's in π¦packet_typeβ the batman packet type this frame came in. which flavor of batman are we dealing with, fr fr π¦
π DESCRIPTION π
so batadv_bla_rx is doing bridge loop avoidance (that's the BLA, iykyk) and it checks two things:
- do we have to race for a claim? like, is somebody out here competing for the same claim, and are we about to have a moment πββοΈπ¨
- is the frame even allowed on the LAN? vibe check. some packets are not on the list π₯
In these cases, the skb is further handled by this function. she takes over from here, no cap β¨
π RETURN π
trueβ if handled. she's got it, you can go π«Ά- otherwise it returns
false, and the caller shall further process the skb. that means you're up next bestie, don't leave the packet hanging π
π SEE ALSO π
Kernel file ./net/batman-adv/bridge_loop_avoidance.c β the mothership, go read her π
and honestly the whole friend group showed up, every single one:
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_loopdetect_check(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)
β¨ and that's the page, bestie β¨ sourced straight from ./net/batman-adv, dated October 2026, still rocking that batadv_bla_rx(9) energy. go forth and check those packets ππ¦π
π¦ 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