diff options
author | Cambda Zhu <cambda@linux.alibaba.com> | 2020-12-08 12:19:10 +0300 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2020-12-15 04:34:54 +0300 |
commit | 6d4634d1b09172a9f5863d8c4cec8f82fbecdf15 (patch) | |
tree | a82f821173acdbffd6a8a7eae71c2e9f794cecd7 /tools/testing/selftests/net/test_vxlan_under_vrf.sh | |
parent | ebf322822cc93259316480266afeb889dd65522a (diff) | |
download | linux-6d4634d1b09172a9f5863d8c4cec8f82fbecdf15.tar.xz |
net: Limit logical shift left of TCP probe0 timeout
For each TCP zero window probe, the icsk_backoff is increased by one and
its max value is tcp_retries2. If tcp_retries2 is greater than 63, the
probe0 timeout shift may exceed its max bits. On x86_64/ARMv8/MIPS, the
shift count would be masked to range 0 to 63. And on ARMv7 the result is
zero. If the shift count is masked, only several probes will be sent
with timeout shorter than TCP_RTO_MAX. But if the timeout is zero, it
needs tcp_retries2 times probes to end this false timeout. Besides,
bitwise shift greater than or equal to the width is an undefined
behavior.
This patch adds a limit to the backoff. The max value of max_when is
TCP_RTO_MAX and the min value of timeout base is TCP_RTO_MIN. The limit
is the backoff from TCP_RTO_MIN to TCP_RTO_MAX.
Signed-off-by: Cambda Zhu <cambda@linux.alibaba.com>
Link: https://lore.kernel.org/r/20201208091910.37618-1-cambda@linux.alibaba.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Diffstat (limited to 'tools/testing/selftests/net/test_vxlan_under_vrf.sh')
0 files changed, 0 insertions, 0 deletions