1 #!/bin/bash 2 # SPDX-License-Identifier: GPL-2.0 3 # 4 # rotate TFO keys for ipv4/ipv6 and verify that the client does 5 # not present an invalid cookie. 6 7 set +x 8 set -e 9 10 readonly NETNS="ns-$(mktemp -u XXXXXX)" 11 12 setup() { 13 ip netns add "${NETNS}" 14 ip -netns "${NETNS}" link set lo up 15 ip netns exec "${NETNS}" sysctl -w net.ipv4.tcp_fastopen=3 \ 16 >/dev/null 2>&1 17 } 18 19 cleanup() { 20 ip netns del "${NETNS}" 21 } 22 23 trap cleanup EXIT 24 setup 25 26 do_test() { 27 # flush routes before each run, otherwise successive runs can 28 # initially present an old TFO cookie 29 ip netns exec "${NETNS}" ip tcp_metrics flush 30 ip netns exec "${NETNS}" ./tcp_fastopen_backup_key "$1" 31 val=$(ip netns exec "${NETNS}" nstat -az | \ 32 grep TcpExtTCPFastOpenPassiveFail | awk '{print $2}') 33 if [ "$val" != 0 ]; then 34 echo "FAIL: TcpExtTCPFastOpenPassiveFail non-zero" 35 return 1 36 fi 37 } 38 39 do_test "-4" 40 do_test "-6" 41 do_test "-4" 42 do_test "-6" 43 do_test "-4s" 44 do_test "-6s" 45 do_test "-4s" 46 do_test "-6s" 47 do_test "-4r" 48 do_test "-6r" 49 do_test "-4r" 50 do_test "-6r" 51 do_test "-4sr" 52 do_test "-6sr" 53 do_test "-4sr" 54 do_test "-6sr" 55 echo "all tests done"
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.