Re: [PATCH bpf] tools/bpf: fix test_sock and test_sock_addr.sh failure

2018-04-18 Thread Daniel Borkmann
On 04/18/2018 08:10 PM, Andrey Ignatov wrote:
> The patch looks good to me.
> 
> Acked-by: Andrey Ignatov 

Applied to bpf tree, thanks Yonghong!


Re: [PATCH bpf] tools/bpf: fix test_sock and test_sock_addr.sh failure

2018-04-18 Thread Andrey Ignatov
The patch looks good to me.

Acked-by: Andrey Ignatov 

Thanks for improving the tests, Yonghong!

Yonghong Song  [Wed, 2018-04-18 10:49 -0700]:
> The bpf selftests test_sock and test_sock_addr.sh failed
> in my test machine. The failure looks like:
> $ ./test_sock
> Test case: bind4 load with invalid access: src_ip6 .. [PASS]
> Test case: bind4 load with invalid access: mark .. [PASS]
> Test case: bind6 load with invalid access: src_ip4 .. [PASS]
> Test case: sock_create load with invalid access: src_port .. [PASS]
> Test case: sock_create load w/o expected_attach_type (compat mode) .. 
> [FAIL]
> Test case: sock_create load w/ expected_attach_type .. [FAIL]
> Test case: attach type mismatch bind4 vs bind6 .. [FAIL]
> ...
> Summary: 4 PASSED, 12 FAILED
> $ ./test_sock_addr.sh
> Wait for testing IPv4/IPv6 to become available .
> ERROR: Timeout waiting for test IP to become available.
> 
> In test_sock, bpf program loads failed due to hitting memlock limits.
> In test_sock_addr.sh, my test machine is a ipv6 only test box and using
> "ping" without specifying address family for an ipv6 address does not work.
> 
> This patch fixed the issue by including header bpf_rlimit.h in test_sock.c
> and test_sock_addr.c, and specifying address family for ping command.
> 
> Cc: Andrey Ignatov 
> Signed-off-by: Yonghong Song 
> ---
>  tools/testing/selftests/bpf/test_sock.c   | 1 +
>  tools/testing/selftests/bpf/test_sock_addr.c  | 1 +
>  tools/testing/selftests/bpf/test_sock_addr.sh | 4 ++--
>  3 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/testing/selftests/bpf/test_sock.c 
> b/tools/testing/selftests/bpf/test_sock.c
> index 73bb20c..f4d99fa 100644
> --- a/tools/testing/selftests/bpf/test_sock.c
> +++ b/tools/testing/selftests/bpf/test_sock.c
> @@ -13,6 +13,7 @@
>  #include 
>  
>  #include "cgroup_helpers.h"
> +#include "bpf_rlimit.h"
>  
>  #ifndef ARRAY_SIZE
>  # define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
> diff --git a/tools/testing/selftests/bpf/test_sock_addr.c 
> b/tools/testing/selftests/bpf/test_sock_addr.c
> index d488f20..2950f80 100644
> --- a/tools/testing/selftests/bpf/test_sock_addr.c
> +++ b/tools/testing/selftests/bpf/test_sock_addr.c
> @@ -15,6 +15,7 @@
>  #include 
>  
>  #include "cgroup_helpers.h"
> +#include "bpf_rlimit.h"
>  
>  #define CG_PATH  "/foo"
>  #define CONNECT4_PROG_PATH   "./connect4_prog.o"
> diff --git a/tools/testing/selftests/bpf/test_sock_addr.sh 
> b/tools/testing/selftests/bpf/test_sock_addr.sh
> index c6e1dcf..9832a87 100755
> --- a/tools/testing/selftests/bpf/test_sock_addr.sh
> +++ b/tools/testing/selftests/bpf/test_sock_addr.sh
> @@ -4,7 +4,7 @@ set -eu
>  
>  ping_once()
>  {
> - ping -q -c 1 -W 1 ${1%%/*} >/dev/null 2>&1
> + ping -${1} -q -c 1 -W 1 ${2%%/*} >/dev/null 2>&1
>  }
>  
>  wait_for_ip()
> @@ -13,7 +13,7 @@ wait_for_ip()
>   echo -n "Wait for testing IPv4/IPv6 to become available "
>   for _i in $(seq ${MAX_PING_TRIES}); do
>   echo -n "."
> - if ping_once ${TEST_IPv4} && ping_once ${TEST_IPv6}; then
> + if ping_once 4 ${TEST_IPv4} && ping_once 6 ${TEST_IPv6}; then
>   echo " OK"
>   return
>   fi
> -- 
> 2.9.5
> 

-- 
Andrey Ignatov


[PATCH bpf] tools/bpf: fix test_sock and test_sock_addr.sh failure

2018-04-18 Thread Yonghong Song
The bpf selftests test_sock and test_sock_addr.sh failed
in my test machine. The failure looks like:
$ ./test_sock
Test case: bind4 load with invalid access: src_ip6 .. [PASS]
Test case: bind4 load with invalid access: mark .. [PASS]
Test case: bind6 load with invalid access: src_ip4 .. [PASS]
Test case: sock_create load with invalid access: src_port .. [PASS]
Test case: sock_create load w/o expected_attach_type (compat mode) .. [FAIL]
Test case: sock_create load w/ expected_attach_type .. [FAIL]
Test case: attach type mismatch bind4 vs bind6 .. [FAIL]
...
Summary: 4 PASSED, 12 FAILED
$ ./test_sock_addr.sh
Wait for testing IPv4/IPv6 to become available .
ERROR: Timeout waiting for test IP to become available.

In test_sock, bpf program loads failed due to hitting memlock limits.
In test_sock_addr.sh, my test machine is a ipv6 only test box and using
"ping" without specifying address family for an ipv6 address does not work.

This patch fixed the issue by including header bpf_rlimit.h in test_sock.c
and test_sock_addr.c, and specifying address family for ping command.

Cc: Andrey Ignatov 
Signed-off-by: Yonghong Song 
---
 tools/testing/selftests/bpf/test_sock.c   | 1 +
 tools/testing/selftests/bpf/test_sock_addr.c  | 1 +
 tools/testing/selftests/bpf/test_sock_addr.sh | 4 ++--
 3 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/tools/testing/selftests/bpf/test_sock.c 
b/tools/testing/selftests/bpf/test_sock.c
index 73bb20c..f4d99fa 100644
--- a/tools/testing/selftests/bpf/test_sock.c
+++ b/tools/testing/selftests/bpf/test_sock.c
@@ -13,6 +13,7 @@
 #include 
 
 #include "cgroup_helpers.h"
+#include "bpf_rlimit.h"
 
 #ifndef ARRAY_SIZE
 # define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
diff --git a/tools/testing/selftests/bpf/test_sock_addr.c 
b/tools/testing/selftests/bpf/test_sock_addr.c
index d488f20..2950f80 100644
--- a/tools/testing/selftests/bpf/test_sock_addr.c
+++ b/tools/testing/selftests/bpf/test_sock_addr.c
@@ -15,6 +15,7 @@
 #include 
 
 #include "cgroup_helpers.h"
+#include "bpf_rlimit.h"
 
 #define CG_PATH"/foo"
 #define CONNECT4_PROG_PATH "./connect4_prog.o"
diff --git a/tools/testing/selftests/bpf/test_sock_addr.sh 
b/tools/testing/selftests/bpf/test_sock_addr.sh
index c6e1dcf..9832a87 100755
--- a/tools/testing/selftests/bpf/test_sock_addr.sh
+++ b/tools/testing/selftests/bpf/test_sock_addr.sh
@@ -4,7 +4,7 @@ set -eu
 
 ping_once()
 {
-   ping -q -c 1 -W 1 ${1%%/*} >/dev/null 2>&1
+   ping -${1} -q -c 1 -W 1 ${2%%/*} >/dev/null 2>&1
 }
 
 wait_for_ip()
@@ -13,7 +13,7 @@ wait_for_ip()
echo -n "Wait for testing IPv4/IPv6 to become available "
for _i in $(seq ${MAX_PING_TRIES}); do
echo -n "."
-   if ping_once ${TEST_IPv4} && ping_once ${TEST_IPv6}; then
+   if ping_once 4 ${TEST_IPv4} && ping_once 6 ${TEST_IPv6}; then
echo " OK"
return
fi
-- 
2.9.5