STRUCT BATADV_TVLV_HANDLER(9)
π¦ struct batadv_tvlv_handler(9) β the Kernel API Manual, bestie edition π¦
Okay so picture this: it's struct batadv_tvlv_handler(9), right, and it is literally the handler for a specific tvlv type and version. That's the NAME energy. Main character vibes only. π
β¨ SYNOPSIS β¨
struct batadv_tvlv_handler {
struct hlist_node list;
void (*ogm_handler)(struct batadv_priv *bat_priv, struct
batadv_orig_node *orig, u8 flags, void *tvlv_value, u16 tvlv_value_len);
int (*unicast_handler)(struct batadv_priv *bat_priv, u8 *src, u8
*dst, void *tvlv_value, u16 tvlv_value_len);
int (*mcast_handler)(struct batadv_priv *bat_priv, struct sk_buff
*skb);
u8 type;
u8 version;
u8 flags;
struct kref refcount;
struct rcu_head rcu;
};
Like, look at her. She's got a list node, three whole callback function pointers, some little u8 fields, a kref, and an rcu_head. She contains multitudes. π«Ά
π Members π
listβ the hlist node forbatadv_priv_tvlv.handler_list. She's gotta be in the group chat somehow. πogm_handlerβ the handler callback that gets handed the tvlv payload to process on incoming OGM packets.unicast_handlerβ the handler callback that gets handed the tvlv payload to process on incoming unicast tvlv packets.mcast_handlerβ the handler callback that gets handed the tvlv payload to process on incoming mcast packet.typeβ the tvlv type this handler feels responsible for. Yes, feels. She's very invested. π§versionβ the tvlv version this handler feels responsible for. Same energy, different field. β¨flagsβ tvlv handler flags.refcountβ the number of contexts the object is used. Basically her follower count but for contexts, ngl. πrcuβ the struct used for freeing in an RCU-safe manner. She cleans up responsibly, we love that for her. πΈ
π SEE ALSO π
Kernel file ./net/batman-adv/types.h β and honestly the whole extended universe is right here, bestie, so grab a snack π because the cast list is iconic:
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_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), enum batadv_tvlv_handler_flags(9).
No cap, that is a lot of friends and every single one of them matters. π₯π
Lowkey a whole little ecosystem in here and she's just one struct in it, but like... she's the one holding the callbacks. Respect the hustle. ππ
Okay byeeeee, this page came straight from ./net/batman-adv and it's dated October 2026 β so mark your calendars, bestie, because struct batadv_tvlv_handler(9) said see you then πβ¨π slay, periodt. π¦
π¦ 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