STRUCT BATADV_ALGO_IFACE_OPS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ 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's optional, so if you don't need it you can simply not.
  • enable β€” init the routing info when the hard-interface is enabled. (note: returns int, unlike its void siblings ✨)
  • enabled β€” a little notification that goes off when the hard-interface was enabled. also optional. 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: activate and enabled are 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