STRUCT BATADV_ALGO_GW_OPS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ struct batadv_algo_gw_ops(9) πŸ¦‹

okay bestie, welcome to the Kernel API Manual page for struct batadv_algo_gw_ops. It's giving gateway-election committee main character energy, and we're gonna read it together. no cap. 🫢


🌸 NAME 🌸

struct batadv_algo_gw_ops β€” mesh algorithm callbacks (GW specific). Lowkey the GW-specific callback squad for mesh algorithms. πŸ’…


✨ SYNOPSIS ✨

here's the struct exactly as it is, bestie β€” don't let the function-pointer syntax scare you:

struct batadv_algo_gw_ops {
    void (*init_sel_class)(struct batadv_priv *bat_priv);
    u32 sel_class_max;
    struct batadv_gw_node *(*get_best_gw_node) (struct batadv_priv *bat_priv);
    bool (*is_eligible)(struct batadv_priv *bat_priv, struct batadv_orig_node *curr_gw_orig, struct batadv_orig_node *orig_node);
    void (*dump)(struct sk_buff *msg, struct netlink_callback *cb, struct batadv_priv *priv);
 };

It's five members: four callbacks and one u32 field. The vibe check is complete. πŸŽ€


πŸŽ€ Members πŸŽ€

okay so here's every member, all listed, no skipping. Optional ones are literally marked optional. 🫢

  • init_sel_class β€” initialize GW selection class (optional). Signature: void (*init_sel_class)(struct batadv_priv *bat_priv);
  • sel_class_max β€” maximum allowed GW selection class. Type: u32.
  • get_best_gw_node β€” select the best GW from the list of available nodes (optional). Signature: struct batadv_gw_node *(*get_best_gw_node) (struct batadv_priv *bat_priv);
  • is_eligible β€” check if a newly discovered GW is a potential candidate for the election as best GW (optional). Signature: bool (*is_eligible)(struct batadv_priv *bat_priv, struct batadv_orig_node *curr_gw_orig, struct batadv_orig_node *orig_node);
  • dump β€” dump gateways to a netlink socket (optional). Signature: void (*dump)(struct sk_buff *msg, struct netlink_callback *cb, struct batadv_priv *priv);

πŸ‘‘ SEE ALSO πŸ‘‘

Kernel file: ./net/batman-adv/types.h. The whole extended friend group made the list, and yes every single one is here:

  • Kernel file: ./net/batman-adv/types.h
  • 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_iface_ops(9)
  • struct batadv_algo_neigh_ops(9)
  • struct batadv_algo_orig_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)

πŸ’– signed by your struct batadv_algo_gw_ops(9) bestie, from the ./net/batman-adv source/version, October 2026 β€” mwah, slay, bye πŸ’–

πŸ“¦ where this page comes from