batadv_tp_sender_timeout(9)
π batadv_tp_sender_timeout(9) β the Kernel API Manual page your group chat needed
okay so this is batadv_tp_sender_timeout, straight out of the Kernel API Manual, and bestie let me tell you, it's a whole mood. It's a timer callback. It fires when packets go missing. That's the tea. π«
β¨ NAME β¨
batadv_tp_sender_timeout β the timer that fires in case of packet loss π
Like, literally that's its whole job. It sits there. It waits. And when a packet gets yeeted into the void, it wakes up and starts fixing things.
π SYNOPSIS π
void batadv_tp_sender_timeout (struct timer_list *t );
Periodt. One argument, void return, no drama. π
πΈ ARGUMENTS πΈ
tβ this is the address to thetimer_listtucked insidetp_vars. That's it. That's the one job. It's giving "point me at the timer struct and I'll handle the rest" energy. π
π¦ DESCRIPTION π¦
okay so picture this: the timer goes off, right? That's not a good vibe. If it fired, it means that there was packet loss. π No cap. Something got dropped and the network is being messy.
So here's what it does about it, in order, and yes I'm listing it because it matters:
- Switch to Slow Start β dramatic but necessary, like hitting the brakes because your bestie's driving.
- Set the
ss_thresholdto half of the currentcwndβ half! literally halved! the vibe check has been administered. - Reset the
cwndto3*MSSβ back down to3*MSS, which is... humbling, ngl. But we rebuild. We always rebuild. πͺ
That's the entire comeback arc. Loss detected β slow down β recover. Iconic honestly. π
π SEE ALSO π
okay this part is a LOT, so buckle up bestie, because the cross-reference list is long and I am not skipping a single one β every name here, exactly as written:
Kernel file ./net/batman-adv/tp_meter.c BATADV_TP_DEF_TEST_LENGTH(9), BATADV_TP_AWND(9), BATADV_TP_RECV_TIMEOUT(9), BATADV_TP_MAX_RTO(9), BATADV_TP_FIRST_SEQ(9), BATADV_TP_PLEN(9), BATADV_TP_MAX_UNACKED(9), batadv_tp_session_cookie(9), batadv_tp_cwnd(9), batadv_tp_update_cwnd(9), batadv_tp_update_rto(9), batadv_tp_batctl_notify(9), batadv_tp_batctl_error_notify(9), batadv_tp_list_find_sender(9), batadv_tp_list_active(9), batadv_tp_list_find_sender_session(9), batadv_tp_sender_release(9), batadv_tp_sender_put(9), batadv_tp_list_detach(9), batadv_tp_sender_cleanup(9), batadv_tp_sender_end(9), batadv_tp_sender_shutdown(9), batadv_tp_sender_stopped(9), batadv_tp_sender_finish(9), batadv_tp_reset_sender_timer(9), batadv_tp_fill_prerandom(9), batadv_tp_send_msg(9), enum batadv_tp_ack_reaction(9), batadv_tp_handle_ack(9), batadv_tp_recv_ack(9), batadv_tp_avail(9), batadv_tp_wait_available(9), batadv_tp_send(9), batadv_tp_start_kthread(9), batadv_tp_start(9), batadv_tp_stop(9), batadv_tp_list_find_receiver_session(9), batadv_tp_receiver_release(9), batadv_tp_receiver_put(9), batadv_tp_reset_receiver_timer(9), batadv_tp_receiver_shutdown(9), batadv_tp_send_ack(9), batadv_tp_handle_out_of_order(9), batadv_tp_ack_unordered(9), batadv_tp_init_recv(9), batadv_tp_recv_msg(9), batadv_tp_meter_recv(9), batadv_tp_stop_all(9), batadv_tp_meter_init(9)
yeah. fifty-ish entries. I told you I wasn't skipping any. go read them. iykyk πβ¨
quick note babe: this is a kernel-internal function, so there's no "just run it in your shell" moment here β it's a timer callback, not a command. respect the kernel. π
and that's the page!! mwah π this lil beauty lives in the source tree at ./net/batman-adv, dated October 2026, and the whole thing is filed under batadv_tp_sender_timeout(9) in the Kernel API Manual. slay, go fix your packet loss. ππ§π
π¦ 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