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