xref: /linux/tools/testing/selftests/net/packetdrill/tcp_close_close-on-syn-sent.pkt (revision 0ad9617c78acbc71373fb341a6f75d4012b01d69)
1*88395c07SSoham Chakradeo// SPDX-License-Identifier: GPL-2.0
2*88395c07SSoham Chakradeo// Test to make sure no RST is being sent when close()
3*88395c07SSoham Chakradeo// is called on a socket with SYN_SENT state.
4*88395c07SSoham Chakradeo
5*88395c07SSoham Chakradeo`./defaults.sh`
6*88395c07SSoham Chakradeo
7*88395c07SSoham Chakradeo    0 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
8*88395c07SSoham Chakradeo   +0 fcntl(3, F_SETFL, O_RDWR|O_NONBLOCK) = 0
9*88395c07SSoham Chakradeo
10*88395c07SSoham Chakradeo   +0 connect(3, ..., ...) = -1 EINPROGRESS (Operation now in progress)
11*88395c07SSoham Chakradeo   +0 > S 0:0(0) <...>
12*88395c07SSoham Chakradeo
13*88395c07SSoham Chakradeo// Application decideds to close the socket in SYN_SENT state
14*88395c07SSoham Chakradeo// Make sure no RST is sent after close().
15*88395c07SSoham Chakradeo   +0 close(3) = 0
16*88395c07SSoham Chakradeo
17*88395c07SSoham Chakradeo// Receive syn-ack to trigger the send side packet examination:
18*88395c07SSoham Chakradeo// If a RESET were sent right after close(), it would have failed with
19*88395c07SSoham Chakradeo// a mismatched timestamp.
20*88395c07SSoham Chakradeo  +.1 < S. 0:0(0) ack 1 win 32000 <mss 1460,nop,wscale 7>
21*88395c07SSoham Chakradeo   +0 > R 1:1(0)
22