batadv_iv_gw_is_eligible(9)
π batadv_iv_gw_is_eligible β like, the gateway glow-up checker
okay so bestie, we're in the Kernel API Manual today (yes, the kernel, we're built different) and this little icon is batadv_iv_gw_is_eligible. Basically it's the function that decides whether your mesh network should break up with its current gateway and start seeing someone new. drama, but make it networking π
β¨ SYNOPSIS β¨
bool batadv_iv_gw_is_eligible (struct batadv_priv *bat_priv , struct
batadv_orig_node *curr_gw_orig , struct batadv_orig_node *orig_node );
it returns a bool, it takes three pointers, and it is literally the matchmaker of the batman-adv world π«Ά
π ARGUMENTS π
bat_privβ the bat priv holding, like, all the mesh interface information. the main character of the structs πcurr_gw_origβ originator of the currently selected gateway. the situationship we're currently in.orig_nodeβ originator of the gateway candidate. the new person who just walked in π
π¦ DESCRIPTION π¦
so what it does is: it compares the TQ values of curr_gw_orig and orig_node, and it does that taking the configured gateway selection class into account. no cap, the selection class matters here β it's not just vibes, it's a real config thing β¨
that's it, that's the whole function. tiny but iconic π
πΈ RETURN πΈ
it hands back true if orig_node should take over as the active gateway, and false otherwise.
so basically: true = go off queen, false = not today bestie π
π SEE ALSO π
this is a long list, and I'm not skipping a single one because every single reference deserves its moment. get comfy π
- Kernel file
./net/batman-adv/bat_iv_ogm.c - enum
batadv_dup_status(9) batadv_ring_buffer_set(9)batadv_ring_buffer_avg(9)batadv_iv_ogm_orig_get(9)batadv_iv_ogm_neigh_new(9)batadv_iv_ogm_iface_enable(9)batadv_iv_ogm_iface_disable(9)batadv_iv_ogm_iface_update_mac(9)batadv_iv_ogm_primary_iface_set(9)batadv_iv_ogm_emit_send_time(9)batadv_iv_ogm_fwd_send_time(9)batadv_hop_penalty(9)batadv_iv_ogm_aggr_packet(9)batadv_iv_ogm_send_to_if(9)batadv_iv_ogm_emit(9)batadv_iv_ogm_can_aggregate(9)batadv_iv_ogm_aggregate_new(9)batadv_iv_ogm_aggregate(9)batadv_iv_ogm_queue_add(9)batadv_iv_ogm_forward(9)batadv_iv_ogm_slide_own_bcast_window(9)batadv_iv_ogm_schedule_buff(9)batadv_iv_ogm_schedule(9)batadv_iv_ogm_reschedule(9)batadv_iv_orig_ifinfo_sum(9)batadv_iv_ogm_neigh_ifinfo_sum(9)batadv_iv_ogm_orig_update(9)batadv_iv_ogm_calc_tq(9)batadv_iv_ogm_update_seqnos(9)batadv_orig_to_direct_router(9)batadv_iv_ogm_process_per_outif(9)batadv_iv_ogm_process_reply(9)batadv_iv_ogm_process(9)batadv_iv_send_outstanding_bat_ogm_packet(9)batadv_iv_ogm_receive(9)batadv_iv_ogm_neigh_get_tq_avg(9)batadv_iv_ogm_orig_dump_subentry(9)batadv_iv_ogm_orig_dump_entry(9)batadv_iv_ogm_orig_dump_bucket(9)batadv_iv_ogm_orig_dump(9)batadv_iv_ogm_neigh_diff(9)batadv_iv_ogm_neigh_dump_neigh(9)batadv_iv_ogm_neigh_dump_hardif(9)batadv_iv_ogm_neigh_dump(9)batadv_iv_ogm_neigh_cmp(9)batadv_iv_ogm_neigh_is_sob(9)batadv_iv_iface_enabled(9)batadv_iv_init_sel_class(9)batadv_iv_gw_get_best_gw_node(9)batadv_iv_gw_dump_entry(9)batadv_iv_gw_dump(9)batadv_iv_init(9)batadv_iv_deinit(9)
like I said. every single one. I counted, and you're welcome π
and that's the whole page, bestie! it lives in ./net/batman-adv and this snapshot is dated October 2026 β same month, same kernel tree, same entry batadv_iv_gw_is_eligible(9). go forth and pick the right gateway, ily πβ¨
π¦ 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