Back to home page

OSCL-LXR

 
 

    


0001 #!/bin/bash
0002 # SPDX-License-Identifier: GPL-2.0
0003 #
0004 # rotate TFO keys for ipv4/ipv6 and verify that the client does
0005 # not present an invalid cookie.
0006 
0007 set +x
0008 set -e
0009 
0010 readonly NETNS="ns-$(mktemp -u XXXXXX)"
0011 
0012 setup() {
0013         ip netns add "${NETNS}"
0014         ip -netns "${NETNS}" link set lo up
0015         ip netns exec "${NETNS}" sysctl -w net.ipv4.tcp_fastopen=3 \
0016                 >/dev/null 2>&1
0017 }
0018 
0019 cleanup() {
0020         ip netns del "${NETNS}"
0021 }
0022 
0023 trap cleanup EXIT
0024 setup
0025 
0026 do_test() {
0027         # flush routes before each run, otherwise successive runs can
0028         # initially present an old TFO cookie
0029         ip netns exec "${NETNS}" ip tcp_metrics flush
0030         ip netns exec "${NETNS}" ./tcp_fastopen_backup_key "$1"
0031         val=$(ip netns exec "${NETNS}" nstat -az | \
0032                 grep TcpExtTCPFastOpenPassiveFail | awk '{print $2}')
0033         if [ "$val" != 0 ]; then
0034                 echo "FAIL: TcpExtTCPFastOpenPassiveFail non-zero"
0035                 return 1
0036         fi
0037 }
0038 
0039 do_test "-4"
0040 do_test "-6"
0041 do_test "-4"
0042 do_test "-6"
0043 do_test "-4s"
0044 do_test "-6s"
0045 do_test "-4s"
0046 do_test "-6s"
0047 do_test "-4r"
0048 do_test "-6r"
0049 do_test "-4r"
0050 do_test "-6r"
0051 do_test "-4sr"
0052 do_test "-6sr"
0053 do_test "-4sr"
0054 do_test "-6sr"
0055 echo "all tests done"