STRUCT BATADV_TP_SENDER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct batadv_tp_sender(9) πŸ’…

okay so bestie, welcome to the Kernel API Manual β€” yes we're reading kernel docs for fun now, this is who we are πŸ’–. Today's main character is struct batadv_tp_sender, aka the sender tp meter private variables per session. Say that five times fast, I dare you 😭.


✨ NAME ✨

struct batadv_tp_sender β€” the sender tp meter's private variables, one lil set per session πŸŽ€


🌸 SYNOPSIS 🌸

struct batadv_tp_sender {
    struct batadv_tp_vars_common common;
    unsigned long start_time;
    atomic_t send_result;
    struct delayed_work finish_work;
    struct completion finished;
    u32 test_length;
    u8 icmp_uid;
    struct batadv_tp_sender_cc cc;
    spinlock_t cc_lock;
    atomic64_t tot_sent;
    wait_queue_head_t more_bytes;
    u32 prerandom_offset;
    spinlock_t prerandom_lock;
 };

look at her. twelve members. a whole vibe. no cap, she's serving struct realness πŸ‘‘


🫢 Members 🫢

  • common β€” the shared batadv_tp_vars_common bits, and heads up: it must be first member. like, the way that it has to be first, no negotiating πŸ’€
  • start_time β€” the start time, measured in jiffies ⏱️
  • send_result β€” sits at 0 while sending is still ongoing, and otherwise it's an enum batadv_tp_meter_reason. so basically zero = we're still going, anything else = we have opinions πŸ”₯
  • finish_work β€” the work item for the finishing procedure, aka the cleanup era ✨
  • finished β€” a completion that gets signaled when a sender thread exits. bye bestie, thread's done πŸ¦‹
  • test_length β€” the test length in milliseconds πŸ“
  • icmp_uid β€” the local ICMP "socket" index (yes, "socket" in quotes, she's quirky like that) πŸ™ˆ
  • cc β€” the congestion control variables, the actual brain cell of this operation 🧠
  • cc_lock β€” the lock that protects cc. don't touch cc without her πŸ”’
  • tot_sent β€” how much data has been sent/ACKed so far. the humble flex counter πŸ“ˆ
  • more_bytes β€” the waiting queue anchor you park on while waiting for more ack/retry timeout ⏳
  • prerandom_offset β€” the offset inside the prerandom buffer 🎯
  • prerandom_lock β€” the spinlock protecting access to prerandom_offset. again: lock first, look second πŸ’…

πŸ”₯ SEE ALSO πŸ”₯

the whole extended friend group, iykyk. Kernel file ./net/batman-adv/types.h plus:

  • 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_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)
  • struct batadv_tvlv_handler(9)
  • enum batadv_tvlv_handler_flags(9)

ngl that reference list is a whole group chat and you will be reading all of it. no skipping, bestie 🫢

and that's the page!! sourced from ./net/batman-adv, dated October 2026, filed under struct batadv_tp_sender(9) β€” slay, go read the kernel now, you're literally built different πŸ’œπŸŒˆπŸ‘‘

πŸ“¦ where this page comes from