xref: /linux/tools/testing/selftests/net/packetdrill/tcp_fastopen_server_basic-zero-payload.pkt (revision 2ace52718376fdb56aca863da2eebe70d7e2ddb1)
1*0b8f164eSKuniyuki Iwashima// SPDX-License-Identifier: GPL-2.0
2*0b8f164eSKuniyuki Iwashima//
3*0b8f164eSKuniyuki Iwashima// Basic TFO server test
4*0b8f164eSKuniyuki Iwashima//
5*0b8f164eSKuniyuki Iwashima// Test zero-payload packet w/ valid TFO cookie - a TFO socket will
6*0b8f164eSKuniyuki Iwashima// still be created and accepted but read() will not return until a
7*0b8f164eSKuniyuki Iwashima// later pkt with 10 byte.
8*0b8f164eSKuniyuki Iwashima
9*0b8f164eSKuniyuki Iwashima`./defaults.sh`
10*0b8f164eSKuniyuki Iwashima
11*0b8f164eSKuniyuki Iwashima    0 socket(..., SOCK_STREAM|SOCK_NONBLOCK, IPPROTO_TCP) = 3
12*0b8f164eSKuniyuki Iwashima   +0 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
13*0b8f164eSKuniyuki Iwashima   +0 bind(3, ..., ...) = 0
14*0b8f164eSKuniyuki Iwashima   +0 listen(3, 1) = 0
15*0b8f164eSKuniyuki Iwashima   +0 setsockopt(3, SOL_TCP, TCP_FASTOPEN, [1], 4) = 0
16*0b8f164eSKuniyuki Iwashima
17*0b8f164eSKuniyuki Iwashima   +0 < S 0:0(0) win 32792 <mss 1460,sackOK,nop,nop,FO TFO_COOKIE,nop,nop>
18*0b8f164eSKuniyuki Iwashima   +0 > S. 0:0(0) ack 1 <mss 1460,nop,nop,sackOK>
19*0b8f164eSKuniyuki Iwashima   +0 accept(3, ..., ...) = 4
20*0b8f164eSKuniyuki Iwashima   +0 %{ assert (tcpi_options & TCPI_OPT_SYN_DATA) == 0, tcpi_options }%
21*0b8f164eSKuniyuki Iwashima
22*0b8f164eSKuniyuki Iwashima// A TFO socket is created and is writable.
23*0b8f164eSKuniyuki Iwashima   +0 write(4, ..., 100) = 100
24*0b8f164eSKuniyuki Iwashima   +0 > P. 1:101(100) ack 1
25*0b8f164eSKuniyuki Iwashima   +0...0.300 read(4, ..., 512) = 10
26*0b8f164eSKuniyuki Iwashima  +.3 < P. 1:11(10) ack 1 win 5840
27