Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 0a0a7e00 authored by Yonghong Song's avatar Yonghong Song Committed by Daniel Borkmann
Browse files

tools/bpf: fix test_sock and test_sock_addr.sh failure



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 <rdna@fb.com>
Signed-off-by: default avatarYonghong Song <yhs@fb.com>
Acked-by: default avatarAndrey Ignatov <rdna@fb.com>
Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
parent 3a38bb98
Loading
Loading
Loading
Loading
+1 −0
Original line number Original line Diff line number Diff line
@@ -13,6 +13,7 @@
#include <bpf/bpf.h>
#include <bpf/bpf.h>


#include "cgroup_helpers.h"
#include "cgroup_helpers.h"
#include "bpf_rlimit.h"


#ifndef ARRAY_SIZE
#ifndef ARRAY_SIZE
# define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
# define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
+1 −0
Original line number Original line Diff line number Diff line
@@ -15,6 +15,7 @@
#include <bpf/libbpf.h>
#include <bpf/libbpf.h>


#include "cgroup_helpers.h"
#include "cgroup_helpers.h"
#include "bpf_rlimit.h"


#define CG_PATH	"/foo"
#define CG_PATH	"/foo"
#define CONNECT4_PROG_PATH	"./connect4_prog.o"
#define CONNECT4_PROG_PATH	"./connect4_prog.o"
+2 −2
Original line number Original line Diff line number Diff line
@@ -4,7 +4,7 @@ set -eu


ping_once()
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()
wait_for_ip()
@@ -13,7 +13,7 @@ wait_for_ip()
	echo -n "Wait for testing IPv4/IPv6 to become available "
	echo -n "Wait for testing IPv4/IPv6 to become available "
	for _i in $(seq ${MAX_PING_TRIES}); do
	for _i in $(seq ${MAX_PING_TRIES}); do
		echo -n "."
		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"
			echo " OK"
			return
			return
		fi
		fi