forked from Minki/linux
0a0a7e00a2
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: Yonghong Song <yhs@fb.com> Acked-by: Andrey Ignatov <rdna@fb.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
58 lines
1.0 KiB
Bash
Executable File
58 lines
1.0 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
set -eu
|
|
|
|
ping_once()
|
|
{
|
|
ping -${1} -q -c 1 -W 1 ${2%%/*} >/dev/null 2>&1
|
|
}
|
|
|
|
wait_for_ip()
|
|
{
|
|
local _i
|
|
echo -n "Wait for testing IPv4/IPv6 to become available "
|
|
for _i in $(seq ${MAX_PING_TRIES}); do
|
|
echo -n "."
|
|
if ping_once 4 ${TEST_IPv4} && ping_once 6 ${TEST_IPv6}; then
|
|
echo " OK"
|
|
return
|
|
fi
|
|
done
|
|
echo 1>&2 "ERROR: Timeout waiting for test IP to become available."
|
|
exit 1
|
|
}
|
|
|
|
setup()
|
|
{
|
|
# Create testing interfaces not to interfere with current environment.
|
|
ip link add dev ${TEST_IF} type veth peer name ${TEST_IF_PEER}
|
|
ip link set ${TEST_IF} up
|
|
ip link set ${TEST_IF_PEER} up
|
|
|
|
ip -4 addr add ${TEST_IPv4} dev ${TEST_IF}
|
|
ip -6 addr add ${TEST_IPv6} dev ${TEST_IF}
|
|
wait_for_ip
|
|
}
|
|
|
|
cleanup()
|
|
{
|
|
ip link del ${TEST_IF} 2>/dev/null || :
|
|
ip link del ${TEST_IF_PEER} 2>/dev/null || :
|
|
}
|
|
|
|
main()
|
|
{
|
|
trap cleanup EXIT 2 3 6 15
|
|
setup
|
|
./test_sock_addr setup_done
|
|
}
|
|
|
|
BASENAME=$(basename $0 .sh)
|
|
TEST_IF="${BASENAME}1"
|
|
TEST_IF_PEER="${BASENAME}2"
|
|
TEST_IPv4="127.0.0.4/8"
|
|
TEST_IPv6="::6/128"
|
|
MAX_PING_TRIES=5
|
|
|
|
main
|