On Tue, Sep 8, 2020 at 4:12 AM Jakub Kicinski kuba@kernel.org wrote:
On Mon, 7 Sep 2020 11:50:10 +0800 Po-Hsu Lin wrote:
The kci_test_encap_fou() test from kci_test_encap() in rtnetlink.sh needs the fou module to work. Otherwise it will fail with:
$ ip netns exec "$testns" ip fou add port 7777 ipproto 47 RTNETLINK answers: No such file or directory Error talking to the kernel
Add the CONFIG_NET_FOU into the config file as well. Which needs at least to be set as a loadable module.
Signed-off-by: Po-Hsu Lin po-hsu.lin@canonical.com
diff --git a/tools/testing/selftests/net/rtnetlink.sh b/tools/testing/selftests/net/rtnetlink.sh index 7c38a90..a711b3e 100755 --- a/tools/testing/selftests/net/rtnetlink.sh +++ b/tools/testing/selftests/net/rtnetlink.sh @@ -520,6 +520,11 @@ kci_test_encap_fou() return $ksft_skip fi
if ! /sbin/modprobe -q -n fou; then
echo "SKIP: module fou is not found"
return $ksft_skip
fi
/sbin/modprobe -q fou ip -netns "$testns" fou add port 7777 ipproto 47 2>/dev/null if [ $? -ne 0 ];then echo "FAIL: can't add fou port 7777, skipping test"
@@ -540,6 +545,7 @@ kci_test_encap_fou() return 1 fi
/sbin/modprobe -q -r fou
I think the common practice is to not remove the module at the end of the test. It may be used by something else than the test itself.
Hello Jakub, Thanks for your feedback.
For this case I think it's safe to remove the module here, as it was never loaded before and thus causing this test to fail. If other tests in this rtnetlink.sh need this fou module, we should be able to spot those failures too, however this is the only failure as I can see. (pmtu.sh will need fou module to run as well, but it will be loaded there.)
Shouldn't we insert the required module whenever the test needs it? So that we can run the test itself directly, without depending on other tests. Also, I can see modules for tests were being unloaded in other tests as well.
Thanks
echo "PASS: fou"
}