batadv_tp_sender_timeout(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’œ 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 the timer_list tucked inside tp_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_threshold to half of the current cwnd β€” half! literally halved! the vibe check has been administered.
  • Reset the cwnd to 3*MSS β€” back down to 3*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