blob: 32dd9de1d3662eebb54f17f0b873c3cc84338585 [file]
// SPDX-License-Identifier: GPL-2.0
`./defaults.sh
sysctl -q net.ipv4.tcp_invalid_ratelimit=0
`
// Test rejection of data segments carrying excessively old ACKs
0 socket(..., SOCK_STREAM, IPPROTO_TCP) = 3
+0 setsockopt(3, SOL_SOCKET, SO_REUSEADDR, [1], 4) = 0
+0 bind(3, ..., ...) = 0
+0 listen(3, 1024) = 0
// ---------------- Handshake ------------------- //
+0 < S 0:0(0) win 65535
+0 > S. 0:0(0) ack 1 <...>
+0 < . 1:1(0) ack 1 win 65535
+0 accept(3, ..., ...) = 4
// Populate receive memory so the following segment can use
// header prediction.
+0 < P. 1:501(500) ack 1 win 65535
+0 > . 1:1(0) ack 501
// Send an in-sequence data segment carrying an excessively old ACK.
+0 < P. 501:1501(1000) ack 2794967397 win 65535
// Challenge ACK; RCV.NXT must remain 501.
+0 > . 1:1(0) ack 501