110fbcdd1SJason Baron#!/bin/bash 210fbcdd1SJason Baron# SPDX-License-Identifier: GPL-2.0 310fbcdd1SJason Baron# 410fbcdd1SJason Baron# rotate TFO keys for ipv4/ipv6 and verify that the client does 510fbcdd1SJason Baron# not present an invalid cookie. 610fbcdd1SJason Baron 710fbcdd1SJason Baronset +x 810fbcdd1SJason Baronset -e 910fbcdd1SJason Baron 1010fbcdd1SJason Baronreadonly NETNS="ns-$(mktemp -u XXXXXX)" 1110fbcdd1SJason Baron 1210fbcdd1SJason Baronsetup() { 1310fbcdd1SJason Baron ip netns add "${NETNS}" 1410fbcdd1SJason Baron ip -netns "${NETNS}" link set lo up 1510fbcdd1SJason Baron ip netns exec "${NETNS}" sysctl -w net.ipv4.tcp_fastopen=3 \ 1610fbcdd1SJason Baron >/dev/null 2>&1 1710fbcdd1SJason Baron} 1810fbcdd1SJason Baron 1910fbcdd1SJason Baroncleanup() { 2010fbcdd1SJason Baron ip netns del "${NETNS}" 2110fbcdd1SJason Baron} 2210fbcdd1SJason Baron 2310fbcdd1SJason Barontrap cleanup EXIT 2410fbcdd1SJason Baronsetup 2510fbcdd1SJason Baron 2610fbcdd1SJason Barondo_test() { 2710fbcdd1SJason Baron # flush routes before each run, otherwise successive runs can 2810fbcdd1SJason Baron # initially present an old TFO cookie 2910fbcdd1SJason Baron ip netns exec "${NETNS}" ip tcp_metrics flush 3010fbcdd1SJason Baron ip netns exec "${NETNS}" ./tcp_fastopen_backup_key "$1" 3110fbcdd1SJason Baron val=$(ip netns exec "${NETNS}" nstat -az | \ 3210fbcdd1SJason Baron grep TcpExtTCPFastOpenPassiveFail | awk '{print $2}') 33*2aafdf5aSAnders Roxell if [ "$val" != 0 ]; then 3410fbcdd1SJason Baron echo "FAIL: TcpExtTCPFastOpenPassiveFail non-zero" 3510fbcdd1SJason Baron return 1 3610fbcdd1SJason Baron fi 3710fbcdd1SJason Baron} 3810fbcdd1SJason Baron 3910fbcdd1SJason Barondo_test "-4" 4010fbcdd1SJason Barondo_test "-6" 4110fbcdd1SJason Barondo_test "-4" 4210fbcdd1SJason Barondo_test "-6" 4310fbcdd1SJason Barondo_test "-4s" 4410fbcdd1SJason Barondo_test "-6s" 4510fbcdd1SJason Barondo_test "-4s" 4610fbcdd1SJason Barondo_test "-6s" 4710fbcdd1SJason Barondo_test "-4r" 4810fbcdd1SJason Barondo_test "-6r" 4910fbcdd1SJason Barondo_test "-4r" 5010fbcdd1SJason Barondo_test "-6r" 5110fbcdd1SJason Barondo_test "-4sr" 5210fbcdd1SJason Barondo_test "-6sr" 5310fbcdd1SJason Barondo_test "-4sr" 5410fbcdd1SJason Barondo_test "-6sr" 5510fbcdd1SJason Baronecho "all tests done" 56