xref: /linux/tools/testing/selftests/net/packetdrill/tcp_fastopen_server_basic-pure-syn-data.pkt (revision ec2e0fb07d789976c601bec19ecced7a501c3705)
1// SPDX-License-Identifier: GPL-2.0
2//
3// Basic TFO server test
4//
5// Test that TFO-enabled server would not respond SYN-ACK with any TFO option
6// when receiving a pure SYN-data. It should respond a pure SYN-ack.
7
8`./defaults.sh`
9
10    0 socket(..., SOCK_STREAM|SOCK_NONBLOCK, IPPROTO_TCP) = 3
11   +0 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
12   +0 bind(3, ..., ...) = 0
13   +0 listen(3, 1) = 0
14   +0 setsockopt(3, SOL_TCP, TCP_FASTOPEN, [1], 4) = 0
15
16   +0 < S 999000:999040(40) win 32792 <mss 1460,sackOK,TS val 100 ecr 100,nop,wscale 6>
17   +0 > S. 1234:1234(0) ack 999001 <mss 1460,sackOK,TS val 100 ecr 100,nop,wscale 8>
18   +0 < . 1:1(0) ack 1 win 100
19   +0 accept(3, ..., ...) = 4
20   +0 %{ assert (tcpi_options & TCPI_OPT_SYN_DATA) == 0, tcpi_options }%
21   +0 close(3) = 0
22
23// Test ECN-setup SYN with ECN disabled because this has happened in reality
24   +0 socket(..., SOCK_STREAM|SOCK_NONBLOCK, IPPROTO_TCP) = 3
25   +0 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
26   +0 bind(3, ..., ...) = 0
27   +0 listen(3, 1) = 0
28   +0 setsockopt(3, SOL_TCP, TCP_FASTOPEN, [1], 4) = 0
29
30   +0 < SEW 999000:999040(40) win 32792 <mss 1460,sackOK,TS val 100 ecr 100,nop,wscale 6>
31   +0 > S. 1234:1234(0) ack 999001 <mss 1460,sackOK,TS val 100 ecr 100,nop,wscale 8>
32   +0 < . 1:1(0) ack 1 win 100
33   +0 accept(3, ..., ...) = 4
34   +0 %{ assert (tcpi_options & TCPI_OPT_SYN_DATA) == 0, tcpi_options }%
35   +0 close(3) = 0
36
37// Test ECN-setup SYN w/ ECN enabled
38   +0 `sysctl -q net.ipv4.tcp_ecn=2`
39   +0 socket(..., SOCK_STREAM|SOCK_NONBLOCK, IPPROTO_TCP) = 3
40   +0 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
41   +0 bind(3, ..., ...) = 0
42   +0 listen(3, 1) = 0
43   +0 setsockopt(3, SOL_TCP, TCP_FASTOPEN, [1], 4) = 0
44
45   +0 < SEW 999000:999040(40) win 32792 <mss 1460,sackOK,TS val 100 ecr 100,nop,wscale 6>
46   +0 > SE. 1234:1234(0) ack 999001 <mss 1460,sackOK,TS val 100 ecr 100,nop,wscale 8>
47   +0 < . 1:1(0) ack 1 win 100
48   +0 accept(3, ..., ...) = 4
49   +0 %{ assert (tcpi_options & TCPI_OPT_SYN_DATA) == 0, tcpi_options }%
50   +0 close(3) = 0
51