STRUCT BATADV_ALGO_IFACE_OPS(9)
π¦ struct batadv_algo_iface_ops β mesh algorithm callbacks (interface specific) π¦
okay bestie, this is a struct from the Kernel API Manual, and it lives in <pink>kernel land</pink> so likeβ¦ be respectful. It's struct batadv_algo_iface_ops, and it's literally the callback bag a mesh algorithm uses for the stuff that's specific to a single interface. Think of it as the interface-level half of the algo personality. π
β¨ SYNOPSIS β¨
struct batadv_algo_iface_ops {
void (*activate)(struct batadv_hard_iface *hard_iface);
int (*enable)(struct batadv_hard_iface *hard_iface);
void (*enabled)(struct batadv_hard_iface *hard_iface);
void (*disable)(struct batadv_hard_iface *hard_iface);
void (*update_mac)(struct batadv_hard_iface *hard_iface);
void (*primary_set)(struct batadv_hard_iface *hard_iface);
};
not me retyping the whole struct for you π β every function pointer is exactly as it appears, struct batadv_hard_iface *hard_iface and all. no cap.
π MEMBERS π
activateβ fires up the routing mechanisms when the hard-interface gets brought up. it'soptional, so if you don't need it you can simply not.enableβ init the routing info when the hard-interface is enabled. (note: returnsint, unlike its void siblings β¨)enabledβ a little notification that goes off when the hard-interface was enabled. alsooptional. it's giving "just letting you know bestie π«Ά".disableβ de-init the routing info when the hard-interface is disabled. the un-slay, if you will.update_macβ (re-)init the mac addresses of the protocol information belonging to this hard-interface. yes, the (re-) is doing real work there, keep it.primary_setβ called when the primary interface is selected / changed. main character energy, literally π.
quick vibe check:activateandenabledare the only two marked(optional). the other four are just kind ofβ¦ expected of you. no pressure though π
π SEE ALSO π
Kernel file ./net/batman-adv/types.h, plus this absolutely iconic lineup of friends (yes, all of them, I'm not skipping anybody):
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_backbone_gw(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_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)
and that's the whole page, bestie π§β¨ this little beauty ships from ./net/batman-adv and it's dated October 2026 β screenshot it, cite it, love it, 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