diff mbox series

[v2] selftests/net: enable lo.accept_local in psock_snd test

Message ID 20220525031819.866684-1-luyun_611@163.com (mailing list archive)
State Accepted
Commit 215cd9897afbce9a964d4afbeec58c086d6cb170
Headers show
Series [v2] selftests/net: enable lo.accept_local in psock_snd test | expand

Commit Message

Yun Lu May 25, 2022, 3:18 a.m. UTC
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(+)

Comments

Hangbin Liu May 25, 2022, 7:20 a.m. UTC | #1
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>
Willem de Bruijn May 25, 2022, 12:34 p.m. UTC | #2
On Wed, May 25, 2022 at 3:20 AM Hangbin Liu <liuhangbin@gmail.com> wrote:
>
> 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>

Acked-by: Willem de Bruijn <willemb@google.com>

ps: I did not really suggest this fix, but no need to respin just to remove that
patchwork-bot+netdevbpf@kernel.org May 26, 2022, 5:10 a.m. UTC | #3
Hello:

This patch was applied to netdev/net.git (master)
by Jakub Kicinski <kuba@kernel.org>:

On Wed, 25 May 2022 11:18:19 +0800 you 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
> 
> [...]

Here is the summary with links:
  - [v2] selftests/net: enable lo.accept_local in psock_snd test
    https://git.kernel.org/netdev/net/c/215cd9897afb

You are awesome, thank you!
diff mbox series

Patch

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();