aboutsummaryrefslogtreecommitdiff
path: root/net/ipv4/tcp_output.c
diff options
context:
space:
mode:
authorGravatar Martin KaFai Lau <kafai@fb.com> 2020-08-20 12:00:21 -0700
committerGravatar Alexei Starovoitov <ast@kernel.org> 2020-08-24 14:34:59 -0700
commit2b8ee4f05d4f6a6c427ad30dd6c1bb49eb2efd3b (patch)
treef09853ff821ef7331b9efdfce55e56d98f28e7ee /net/ipv4/tcp_output.c
parenttcp: Use a struct to represent a saved_syn (diff)
downloadlinux-2b8ee4f05d4f6a6c427ad30dd6c1bb49eb2efd3b.tar.gz
linux-2b8ee4f05d4f6a6c427ad30dd6c1bb49eb2efd3b.tar.bz2
linux-2b8ee4f05d4f6a6c427ad30dd6c1bb49eb2efd3b.zip
tcp: bpf: Add TCP_BPF_DELACK_MAX setsockopt
This change is mostly from an internal patch and adapts it from sysctl config to the bpf_setsockopt setup. The bpf_prog can set the max delay ack by using bpf_setsockopt(TCP_BPF_DELACK_MAX). This max delay ack can be communicated to its peer through bpf header option. The receiving peer can then use this max delay ack and set a potentially lower rto by using bpf_setsockopt(TCP_BPF_RTO_MIN) which will be introduced in the next patch. Another later selftest patch will also use it like the above to show how to write and parse bpf tcp header option. Signed-off-by: Martin KaFai Lau <kafai@fb.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Reviewed-by: Eric Dumazet <edumazet@google.com> Acked-by: John Fastabend <john.fastabend@gmail.com> Link: https://lore.kernel.org/bpf/20200820190021.2884000-1-kafai@fb.com
Diffstat (limited to 'net/ipv4/tcp_output.c')
-rw-r--r--net/ipv4/tcp_output.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
index 85ff417bda7f..44ffa4891beb 100644
--- a/net/ipv4/tcp_output.c
+++ b/net/ipv4/tcp_output.c
@@ -3741,6 +3741,8 @@ void tcp_send_delayed_ack(struct sock *sk)
ato = min(ato, max_ato);
}
+ ato = min_t(u32, ato, inet_csk(sk)->icsk_delack_max);
+
/* Stay within the limit we were given */
timeout = jiffies + ato;