Merge tag 'trace-printf-v6.13' of git://git.kernel.org/pub/scm/linux/kernel/git/trace...
[drm/drm-misc.git] / tools / testing / selftests / net / packetdrill / tcp_slow_start_slow-start-after-idle.pkt
blob11b213be113845849e5f4ab659af8f82d2058cb9
1 // SPDX-License-Identifier: GPL-2.0
2 // Test of slow start after idle
3 // This test expects tso size to be at least initial cwnd * mss
5 `./defaults.sh
6 ./set_sysctls.py /proc/sys/net/ipv4/tcp_slow_start_after_idle=1 \
7                  /proc/sys/net/ipv4/tcp_min_tso_segs=10`
9     0 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
10    +0 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
11    +0 bind(3, ..., ...) = 0
12    +0 listen(3, 1) = 0
14    +0 < S 0:0(0) win 65535 <mss 1000,sackOK,nop,nop,nop,wscale 7>
15    +0 > S. 0:0(0) ack 1 <mss 1460,nop,nop,sackOK,nop,wscale 8>
16   +.1 < . 1:1(0) ack 1 win 511
17    +0 accept(3, ..., ...) = 4
18    +0 setsockopt(4, SOL_SOCKET, SO_SNDBUF, [200000], 4) = 0
20    +0 write(4, ..., 26000) = 26000
21    +0 > P. 1:5001(5000) ack 1
22    +0 > P. 5001:10001(5000) ack 1
23    +0 %{ assert tcpi_snd_cwnd == 10, tcpi_snd_cwnd }%
25   +.1 < . 1:1(0) ack 10001 win 511
26    +0 %{ assert tcpi_snd_cwnd == 20, tcpi_snd_cwnd }%
27    +0 > P. 10001:20001(10000) ack 1
28    +0 > P. 20001:26001(6000) ack 1
30   +.1 < . 1:1(0) ack 26001 win 511
31    +0 %{ assert tcpi_snd_cwnd == 36, tcpi_snd_cwnd }%
33    +2 write(4, ..., 20000) = 20000
34 // If slow start after idle works properly, we should send 5 MSS here (cwnd/2)
35    +0 > P. 26001:31001(5000) ack 1
36    +0 %{ assert tcpi_snd_cwnd == 10, tcpi_snd_cwnd }%
38 // Reset sysctls
39 `/tmp/sysctl_restore_${PPID}.sh`