On Wed, May 25, 2022 at 11:18:19AM +0800, Yun Lu wrote:
From: luyun luyun@kylinos.cn
The psock_snd test sends and recieves packets over loopback, and the test results depend on parameter settings: Set rp_filter=0, or set rp_filter=1 and accept_local=1 so that the test will pass. Otherwise, this test will fail with Resource temporarily unavailable: sudo ./psock_snd.sh dgram tx: 128 rx: 142 ./psock_snd: recv: Resource temporarily unavailable
For most distro kernel releases(like Ubuntu or Centos), the parameter rp_filter is enabled by default, so it's necessary to enable the parameter lo.accept_local in psock_snd test. And this test runs inside a netns, changing a sysctl is fine.
v2: add detailed description.
Suggested-by: Willem de Bruijn willemdebruijn.kernel@gmail.com Signed-off-by: luyun luyun@kylinos.cn Reviewed-by: Jackie Liu liuyun01@kylinos.cn
tools/testing/selftests/net/psock_snd.c | 2 ++ 1 file changed, 2 insertions(+)
diff --git a/tools/testing/selftests/net/psock_snd.c b/tools/testing/selftests/net/psock_snd.c index 7d15e10a9fb6..edf1e6f80d41 100644 --- a/tools/testing/selftests/net/psock_snd.c +++ b/tools/testing/selftests/net/psock_snd.c @@ -389,6 +389,8 @@ int main(int argc, char **argv) error(1, errno, "ip link set mtu"); if (system("ip addr add dev lo 172.17.0.1/24")) error(1, errno, "ip addr add");
- if (system("sysctl -w net.ipv4.conf.lo.accept_local=1"))
error(1, errno, "sysctl lo.accept_local");
run_test(); -- 2.25.1
Great, this also fixed my problem. Please feel free to add my
Tested-by: Hangbin Liu liuhangbin@gmail.com