STRUCT BATADV_TP_SENDER(9)
π 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 sharedbatadv_tp_vars_commonbits, 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 at0while sending is still ongoing, and otherwise it's anenum 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 protectscc. don't touchccwithout 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 toprerandom_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
- 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