batadv_tp_cwnd(9)
π batadv_tp_cwnd(9) β Kernel API Manual, bestie edition π
okay so this is a page straight out of the Kernel API Manual, and we're about to make congestion windows make sense. no cap, this one's short and sweet, and honestly? iconic behavior. β¨
πΈ NAME πΈ
batadv_tp_cwnd β literally just compute the new cwnd size π«Ά
β SYNOPSIS β
u32 batadv_tp_cwnd (u32 base , u32 increment , u32 min );
(yes bestie, the spacing is exactly like that, we don't touch it, we respect it π)
π¦ ARGUMENTS π¦
baseβ the base cwnd size value, like, your starting point πincrementβ the value you add tobaseto get the new size. the glow-up amount β¨minβ minimum cwnd value (usually MSS), the floor so things never get too tiny π
π§ DESCRIPTION π§
So what does it actually do? It returns the new cwnd size, and it makes sure that baby does not exceed the Advertised Receiver Window size. that's the vibe check right there π
And the way it handles the math? It is wrapped around safely. no sketchy overflow energy, we're being responsible. π₯
For the full lore, refer to Section 3.1 of RFC5681. iykyk π
π RETURN π
The new congestion window size in bytes. that's it, that's the tea β
π SEE ALSO π
okay this list is long and we are NOT skipping a single one, because every single reference is a main character in this story. periodt. π
Kernel file ./net/batman-adv/tp_meter.c, plus:
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_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_sender_timeout(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)
ngl bestie, if you're reading all of those in one sitting, hydrate first ππ
oky so that's the whole page!! this little gem lives in ./net/batman-adv and the doc is dated October 2026 β so yeah, future-flavored knowledge, we love that for us. go forth and window your congestion responsibly, bestie ππΈπ«Άβ¨
π¦ 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