| // 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 |