batadv_tp_handle_ack(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… batadv_tp_handle_ack(9) β€” the kernel API manual, but make it make sense

okay bestie, so this is a page from the Kernel API Manual and it's called batadv_tp_handle_ack β€” no cap, that's the whole name up top, we're just folding it in here so it doesn't look all formal and weird πŸ’–


✨ NAME ✨

batadv_tp_handle_ack β€” the function that calculates the reaction to an ACK and updates congestion control. that's it, that's the vibe πŸ¦‹


🌸 SYNOPSIS 🌸

enum batadv_tp_ack_reaction batadv_tp_handle_ack (struct batadv_priv
*bat_priv , struct batadv_tp_sender *tp_vars , u32 recv_ack , size_t mss
);

lowkey iconic signature, honestly. it hands you back an enum batadv_tp_ack_reaction and takes four things πŸ‘‘


πŸŽ€ ARGUMENTS πŸŽ€

  • bat_priv β€” the bat priv with all the mesh interface information. it's giving "everything you ever wanted to know about the mesh", fr fr.
  • tp_vars β€” the private data of the current TP meter session. this session's personal little diary πŸ“
  • recv_ack β€” received ACK seqno. the sequence number of the ACK we just got, bestie.
  • mss β€” maximum segment size for transmission. big "how chunky can my segments be" energy.

⭐ RETURN ⭐

returns the expected reaction to this ack. that's the whole deal β€” the answer is a reaction, and it's an enum batadv_tp_ack_reaction. slay πŸ’…


πŸ”₯ SEE ALSO πŸ”₯

okay this list is long and it ate, so buckle up bestie, we're going through all of it πŸ™ˆ

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_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_sender_timeout(9), batadv_tp_fill_prerandom(9), batadv_tp_send_msg(9), enum batadv_tp_ack_reaction(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)

like, every single one of them. we don't skip refs in this house πŸ’€


🧚 cute lil sign-off 🧚

this page lives in ./net/batman-adv, and it's dated October 2026 β€” yes, the future, she's ahead of her time ✨ and the header/footer name for the whole thing is batadv_tp_handle_ack(9), so now you know where to find her again. bye bestie, go update that congestion control πŸŒˆπŸ«ΆπŸ’œ

πŸ“¦ where this page comes from