STRUCT BATADV_TVLV_HANDLER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ 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 for batadv_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