| From 07bf49401909264a38fa3427c3cce43e8304436a Mon Sep 17 00:00:00 2001 |
| From: Matthieu Baerts <matthieu.baerts@tessares.net> |
| Date: Thu, 8 Jun 2023 18:38:44 +0200 |
| Subject: selftests: mptcp: connect: skip transp tests if not supported |
| |
| From: Matthieu Baerts <matthieu.baerts@tessares.net> |
| |
| commit 07bf49401909264a38fa3427c3cce43e8304436a upstream. |
| |
| Selftests are supposed to run on any kernels, including the old ones not |
| supporting all MPTCP features. |
| |
| One of them is the support of IP(V6)_TRANSPARENT socket option with |
| MPTCP connections introduced by commit c9406a23c116 ("mptcp: sockopt: |
| add SOL_IP freebind & transparent options"). |
| |
| It is possible to look for "__ip_sock_set_tos" in kallsyms because |
| IP(V6)_TRANSPARENT socket option support has been added after TOS |
| support which came with the required infrastructure in MPTCP sockopt |
| code. To support TOS, the following function has been exported (T). Not |
| great but better than checking for a specific kernel version. |
| |
| Link: https://github.com/multipath-tcp/mptcp_net-next/issues/368 |
| Fixes: 5fb62e9cd3ad ("selftests: mptcp: add tproxy test case") |
| Cc: stable@vger.kernel.org |
| Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net> |
| Signed-off-by: Jakub Kicinski <kuba@kernel.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| tools/testing/selftests/net/mptcp/mptcp_connect.sh | 10 ++++++++++ |
| 1 file changed, 10 insertions(+) |
| |
| --- a/tools/testing/selftests/net/mptcp/mptcp_connect.sh |
| +++ b/tools/testing/selftests/net/mptcp/mptcp_connect.sh |
| @@ -144,6 +144,7 @@ cleanup() |
| } |
| |
| mptcp_lib_check_mptcp |
| +mptcp_lib_check_kallsyms |
| |
| ip -Version > /dev/null 2>&1 |
| if [ $? -ne 0 ];then |
| @@ -695,6 +696,15 @@ run_test_transparent() |
| return 0 |
| fi |
| |
| + # IP(V6)_TRANSPARENT has been added after TOS support which came with |
| + # the required infrastructure in MPTCP sockopt code. To support TOS, the |
| + # following function has been exported (T). Not great but better than |
| + # checking for a specific kernel version. |
| + if ! mptcp_lib_kallsyms_has "T __ip_sock_set_tos$"; then |
| + echo "INFO: ${msg} not supported by the kernel: SKIP" |
| + return |
| + fi |
| + |
| ip netns exec "$listener_ns" nft -f /dev/stdin <<"EOF" |
| flush ruleset |
| table inet mangle { |