Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
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