xref: /openbmc/linux/tools/testing/selftests/net/tcp_fastopen_backup_key.sh (revision 976e3645923bdd2fe7893aae33fd7a21098bfb28)
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