[PATCH mptcp-next v5 8/8] selftests: mptcp: sockopt: add TCP_MD5SIG test cases

Geliang Tang posted 8 patches 1 month, 1 week ago
[PATCH mptcp-next v5 8/8] selftests: mptcp: sockopt: add TCP_MD5SIG test cases
Posted by Geliang Tang 1 month, 1 week ago
From: Geliang Tang <tanggeliang@kylinos.cn>

Implement automated tests for TCP_MD5SIG and TCP_MD5SIG_EXT:
1. Enable required kernel config options
2. Add test execution framework
3. Implement IPv4/IPv6 test cases
4. Add VRF interface handling for extended MD5 tests
5. Integrate tests into existing test suite

Signed-off-by: Geliang Tang <tanggeliang@kylinos.cn>
---
 tools/testing/selftests/net/mptcp/config      |  3 ++
 .../selftests/net/mptcp/mptcp_sockopt.sh      | 49 +++++++++++++++++++
 2 files changed, 52 insertions(+)

diff --git a/tools/testing/selftests/net/mptcp/config b/tools/testing/selftests/net/mptcp/config
index 968d440c03fe..efb402d6c2c8 100644
--- a/tools/testing/selftests/net/mptcp/config
+++ b/tools/testing/selftests/net/mptcp/config
@@ -34,3 +34,6 @@ CONFIG_NET_ACT_PEDIT=m
 CONFIG_NET_CLS_ACT=y
 CONFIG_NET_CLS_FW=m
 CONFIG_NET_SCH_INGRESS=m
+CONFIG_TCP_MD5SIG=y
+CONFIG_NET_L3_MASTER_DEV=y
+CONFIG_NET_VRF=y
diff --git a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh
index 41201c5fa6af..969ad1e9cbf2 100755
--- a/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh
+++ b/tools/testing/selftests/net/mptcp/mptcp_sockopt.sh
@@ -348,6 +348,54 @@ do_tcpinq_tests()
 	return $?
 }
 
+do_tcpmd5_test()
+{
+	print_title "TCP_MD5 $*"
+	ip netns exec "$ns_sbox" ./mptcp_sockopt "$@"
+	local lret=$?
+	if [ $lret -ne 0 ];then
+		ret=$lret
+		mptcp_lib_pr_fail
+		mptcp_lib_result_fail "TCP_MD5: $*"
+		return $lret
+	fi
+
+	mptcp_lib_pr_ok
+	mptcp_lib_result_pass "TCP_MD5: $*"
+	return $lret
+}
+
+do_tcpmd5_tests()
+{
+	local lret=0
+
+	do_tcpmd5_test -m "md5,key=123456"
+	lret=$?
+	if [ $lret -ne 0 ] ; then
+		return $lret
+	fi
+	do_tcpmd5_test -6 -m "md5,key=123456"
+	lret=$?
+	if [ $lret -ne 0 ] ; then
+		return $lret
+	fi
+
+	ip netns exec "$ns_sbox" ip link add vrf-test type vrf table 100
+	vrf=$(ip netns exec "$ns_sbox" ip link show vrf-test |
+				       awk -F':' '{print $1; exit}')
+	do_tcpmd5_test -m "md5ext,prefix=1,index=$vrf,key=654321"
+	lret=$?
+	if [ $lret -ne 0 ] ; then
+		ip netns exec "$ns_sbox" ip link del vrf-test
+		return $lret
+	fi
+	do_tcpmd5_test -6 -m "md5ext,prefix=1,index=$vrf,key=654321"
+	lret=$?
+
+	ip netns exec "$ns_sbox" ip link del vrf-test
+	return $lret
+}
+
 sin=$(mktemp)
 sout=$(mktemp)
 cin=$(mktemp)
@@ -363,6 +411,7 @@ run_tests $ns1 $ns2 dead:beef:1::1
 
 do_mptcp_sockopt_tests
 do_tcpinq_tests
+do_tcpmd5_tests
 
 mptcp_lib_result_print_all_tap
 exit $ret
-- 
2.48.1