STRUCT BATADV_BLA_BACKBONE_GW(9)
πΈ struct batadv_bla_backbone_gw(9) πΈ
okay so this is a page from the Kernel API Manual β it's struct batadv_bla_backbone_gw(9), and it's literally the whole vibe of a batman-adv gateway that's bridged into the LAN. bestie, let's get into it π
β¨ NAME β¨
struct batadv_bla_backbone_gw β a batman-adv gateway bridged into the LAN. that's the whole thing. iconic. π
π¦ SYNOPSIS π¦
struct batadv_bla_backbone_gw {
u8 orig[ETH_ALEN];
unsigned short vid;
struct hlist_node hash_entry;
struct batadv_priv *bat_priv;
unsigned long lasttime;
u8 wait_periods;
enum batadv_bla_backbone_gw_state state;
u16 crc;
spinlock_t crc_lock;
struct work_struct report_work;
struct kref refcount;
struct rcu_head rcu;
};
look at her. main character struct energy, no cap. π
π Members π
okay so every single field, one by one, let's go π«Ά
origβ the originator address of the backbone node, aka the mac address of the primary iface. that's the whole identity bestie.vidβ the vlan id this gateway was detected on β¨hash_entryβ the hlist node forbatadv_priv_bla.backbone_hash. it's giving "where do i live in the list."bat_privβ pointer to themesh_ifacethis backbone gateway belongs to πlasttimeβ the last time we heard of this backbone gw. like, last seen. no news is bad news fr fr.wait_periodsβ grace time for bridge forward delays and bla group forming at bootup phase. no bcast traffic is formwared until it has elapsed. Must only be access withnum_requests_lock. π (yes, that's the exact wording, i'm not fixing it, it's part of her lore)stateβ sync state. Must only be access withnum_requests_lock. same lock, same rules, periodt.crcβ crc16 checksum over all claims π§crc_lockβ lock protectingcrc. size small, job big.report_workβ work struct for reporting detected loops π₯refcountβ number of contexts the object is used. the popular girl counter.rcuβ struct used for freeing in an RCU-safe manner π
β SEE ALSO β
Kernel file ./net/batman-adv/types.h β and honestly? the whole friend group is here. every single one, in order, no skipping, i don't make the rules π
batadv_dat_addr_t(9), enum batadv_dhcp_recipient(9), BATADV_TT_REMOTE_MASK(9), BATADV_TT_SYNC_MASK(9), struct batadv_ogm_buf(9), struct batadv_hard_iface_bat_iv(9), enum batadv_v_hard_iface_flags(9), struct batadv_hard_iface_bat_v(9), enum batadv_hard_iface_wifi_flags(9), struct batadv_wifi_net_device_state(9), struct batadv_hard_iface(9), struct batadv_orig_ifinfo_bat_iv(9), struct batadv_orig_ifinfo(9), struct batadv_frag_table_entry(9), struct batadv_frag_list_entry(9), struct batadv_vlan_tt(9), struct batadv_orig_node_vlan(9), struct batadv_orig_bat_iv(9), struct batadv_orig_node(9), enum batadv_orig_capabilities(9), struct batadv_gw_node(9), struct batadv_hardif_neigh_node_bat_v(9), struct batadv_hardif_neigh_node(9), struct batadv_neigh_node(9), struct batadv_neigh_ifinfo_bat_iv(9), struct batadv_neigh_ifinfo_bat_v(9), struct batadv_neigh_ifinfo(9), struct batadv_bcast_duplist_entry(9), enum batadv_counters(9), struct batadv_priv_tt(9), struct batadv_priv_bla(9), struct batadv_priv_gw(9), struct batadv_priv_tvlv(9), struct batadv_priv_dat(9), struct batadv_mcast_querier_state(9), struct batadv_mcast_mla_flags(9), struct batadv_priv_mcast(9), struct batadv_tp_unacked(9), struct batadv_tp_vars_common(9), struct batadv_tp_sender_cc(9), struct batadv_tp_sender(9), struct batadv_tp_receiver(9), struct batadv_meshif_vlan(9), struct batadv_priv_bat_v(9), struct batadv_priv(9), enum batadv_bla_backbone_gw_state(9), struct batadv_bla_claim(9), struct batadv_tt_common_entry(9), struct batadv_tt_local_entry(9), struct batadv_tt_global_entry(9), struct batadv_tt_orig_list_entry(9), struct batadv_tt_change_node(9), struct batadv_tt_req_node(9), struct batadv_tt_roam_node(9), struct batadv_skb_cb(9), struct batadv_forw_packet(9), struct batadv_algo_iface_ops(9), struct batadv_algo_neigh_ops(9), struct batadv_algo_orig_ops(9), struct batadv_algo_gw_ops(9), struct batadv_algo_ops(9), struct batadv_dat_entry(9), struct batadv_hw_addr(9), struct batadv_dat_candidate(9), struct batadv_tvlv_container(9), struct batadv_tvlv_handler(9), enum batadv_tvlv_handler_flags(9)
like i said. the whole friend group. π«Άβ¨
ngl, if you're touchingwait_periodsorstatewithoutnum_requests_lock, that's not a look. the page says it twice for a reason, and it means it both times. π
π¦ mwah, that's the page! this one lives in ./net/batman-adv, dated October 2026, and it's part of the Kernel API Manual β go off, king. πππΈ
π¦ 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