Skip to content

Commit

Permalink
net-tcp_bbr: v2: record app-limited status of TLP-repaired flight
Browse files Browse the repository at this point in the history
When sending a TLP retransmit, record whether the outstanding flight
of data is application limited. This is important for congestion
control modules that want to respond to losses repaired by TLP
retransmits. This is important because the following scenarios convey
very different information:
 (1) a packet loss with a small number of packets in flight;
 (2) a packet loss with the maximum amount of data in flight allowed
     by the CC module;

Effort: net-tcp_bbr
Change-Id: Ic8ae567caa4e4bfd5fd82c3d4be12a5d9171655e
Signed-off-by: Alexandre Frade <kernel@xanmod.org>
  • Loading branch information
jianfenw authored and xanmod committed Aug 16, 2023
1 parent 974b44c commit 8a3478c
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 1 deletion.
3 changes: 2 additions & 1 deletion include/linux/tcp.h
Expand Up @@ -256,7 +256,8 @@ struct tcp_sock {
u8 dup_ack_counter:2,
tlp_retrans:1, /* TLP is a retransmission */
fast_ack_mode:2, /* which fast ack mode ? */
unused:3;
tlp_orig_data_app_limited:1, /* app-limited before TLP rtx? */
unused:2;
u32 chrono_start; /* Start time in jiffies of a TCP chrono */
u32 chrono_stat[3]; /* Time in jiffies for chrono_stat stats */
u8 chrono_type:2, /* current chronograph type */
Expand Down
1 change: 1 addition & 0 deletions net/ipv4/tcp_output.c
Expand Up @@ -2875,6 +2875,7 @@ void tcp_send_loss_probe(struct sock *sk)
if (WARN_ON(!skb || !tcp_skb_pcount(skb)))
goto rearm_timer;

tp->tlp_orig_data_app_limited = TCP_SKB_CB(skb)->tx.is_app_limited;
if (__tcp_retransmit_skb(sk, skb, 1))
goto rearm_timer;

Expand Down

0 comments on commit 8a3478c

Please sign in to comment.