tcp: Use BPF timeout setting for SYN ACK RTO
authorAkhmat Karakotov <hmukos@yandex-team.ru>
Fri, 28 Jan 2022 19:26:21 +0000 (22:26 +0300)
committerDavid S. Miller <davem@davemloft.net>
Wed, 2 Feb 2022 14:45:18 +0000 (14:45 +0000)
commit5903123f662ed18483f05cac3f9e800a074c29ff
tree33c2c972f30b2175af4a445c1c8462a9c78bd99e
parent0b6b0d3113eba39d679cd799dafacf3af5500544
tcp: Use BPF timeout setting for SYN ACK RTO

When setting RTO through BPF program, some SYN ACK packets were unaffected
and continued to use TCP_TIMEOUT_INIT constant. This patch adds timeout
option to struct request_sock. Option is initialized with TCP_TIMEOUT_INIT
and is reassigned through BPF using tcp_timeout_init call. SYN ACK
retransmits now use newly added timeout option.

Signed-off-by: Akhmat Karakotov <hmukos@yandex-team.ru>
Acked-by: Martin KaFai Lau <kafai@fb.com>
v2:
- Add timeout option to struct request_sock. Do not call
  tcp_timeout_init on every syn ack retransmit.

v3:
- Use unsigned long for min. Bound tcp_timeout_init to TCP_RTO_MAX.

v4:
- Refactor duplicate code by adding reqsk_timeout function.
Signed-off-by: David S. Miller <davem@davemloft.net>
include/net/inet_connection_sock.h
include/net/request_sock.h
include/net/tcp.h
net/ipv4/inet_connection_sock.c
net/ipv4/tcp_input.c
net/ipv4/tcp_minisocks.c