Skip to content

Commit 25bd462

Browse files
idoschdavem330
authored andcommitted
selftests: fib_test: Add a test case for IPv4 broadcast neighbours
Test that resolved neighbours for IPv4 broadcast addresses are unaffected by the configuration of matching broadcast routes, whereas unresolved neighbours are invalidated. Without previous patch: # ./fib_tests.sh -t ipv4_bcast_neigh IPv4 broadcast neighbour tests TEST: Resolved neighbour for broadcast address [ OK ] TEST: Resolved neighbour for network broadcast address [ OK ] TEST: Unresolved neighbour for broadcast address [FAIL] TEST: Unresolved neighbour for network broadcast address [FAIL] Tests passed: 2 Tests failed: 2 With previous patch: # ./fib_tests.sh -t ipv4_bcast_neigh IPv4 broadcast neighbour tests TEST: Resolved neighbour for broadcast address [ OK ] TEST: Resolved neighbour for network broadcast address [ OK ] TEST: Unresolved neighbour for broadcast address [ OK ] TEST: Unresolved neighbour for network broadcast address [ OK ] Tests passed: 4 Tests failed: 0 Signed-off-by: Ido Schimmel <[email protected]> Signed-off-by: David S. Miller <[email protected]>
1 parent 0c51e12 commit 25bd462

File tree

1 file changed

+57
-1
lines changed

1 file changed

+57
-1
lines changed

tools/testing/selftests/net/fib_tests.sh

Lines changed: 57 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ ret=0
99
ksft_skip=4
1010

1111
# all tests in this script. Can be overridden with -t option
12-
TESTS="unregister down carrier nexthop suppress ipv6_rt ipv4_rt ipv6_addr_metric ipv4_addr_metric ipv6_route_metrics ipv4_route_metrics ipv4_route_v6_gw rp_filter ipv4_del_addr ipv4_mangle ipv6_mangle"
12+
TESTS="unregister down carrier nexthop suppress ipv6_rt ipv4_rt ipv6_addr_metric ipv4_addr_metric ipv6_route_metrics ipv4_route_metrics ipv4_route_v6_gw rp_filter ipv4_del_addr ipv4_mangle ipv6_mangle ipv4_bcast_neigh"
1313

1414
VERBOSE=0
1515
PAUSE_ON_FAIL=no
@@ -1954,6 +1954,61 @@ ipv6_mangle_test()
19541954
route_cleanup
19551955
}
19561956

1957+
ip_neigh_get_check()
1958+
{
1959+
ip neigh help 2>&1 | grep -q 'ip neigh get'
1960+
if [ $? -ne 0 ]; then
1961+
echo "iproute2 command does not support neigh get. Skipping test"
1962+
return 1
1963+
fi
1964+
1965+
return 0
1966+
}
1967+
1968+
ipv4_bcast_neigh_test()
1969+
{
1970+
local rc
1971+
1972+
echo
1973+
echo "IPv4 broadcast neighbour tests"
1974+
1975+
ip_neigh_get_check || return 1
1976+
1977+
setup
1978+
1979+
set -e
1980+
run_cmd "$IP neigh add 192.0.2.111 lladdr 00:11:22:33:44:55 nud perm dev dummy0"
1981+
run_cmd "$IP neigh add 192.0.2.255 lladdr 00:11:22:33:44:55 nud perm dev dummy0"
1982+
1983+
run_cmd "$IP neigh get 192.0.2.111 dev dummy0"
1984+
run_cmd "$IP neigh get 192.0.2.255 dev dummy0"
1985+
1986+
run_cmd "$IP address add 192.0.2.1/24 broadcast 192.0.2.111 dev dummy0"
1987+
1988+
run_cmd "$IP neigh add 203.0.113.111 nud failed dev dummy0"
1989+
run_cmd "$IP neigh add 203.0.113.255 nud failed dev dummy0"
1990+
1991+
run_cmd "$IP neigh get 203.0.113.111 dev dummy0"
1992+
run_cmd "$IP neigh get 203.0.113.255 dev dummy0"
1993+
1994+
run_cmd "$IP address add 203.0.113.1/24 broadcast 203.0.113.111 dev dummy0"
1995+
set +e
1996+
1997+
run_cmd "$IP neigh get 192.0.2.111 dev dummy0"
1998+
log_test $? 0 "Resolved neighbour for broadcast address"
1999+
2000+
run_cmd "$IP neigh get 192.0.2.255 dev dummy0"
2001+
log_test $? 0 "Resolved neighbour for network broadcast address"
2002+
2003+
run_cmd "$IP neigh get 203.0.113.111 dev dummy0"
2004+
log_test $? 2 "Unresolved neighbour for broadcast address"
2005+
2006+
run_cmd "$IP neigh get 203.0.113.255 dev dummy0"
2007+
log_test $? 2 "Unresolved neighbour for network broadcast address"
2008+
2009+
cleanup
2010+
}
2011+
19572012
################################################################################
19582013
# usage
19592014

@@ -2028,6 +2083,7 @@ do
20282083
ipv4_route_v6_gw) ipv4_route_v6_gw_test;;
20292084
ipv4_mangle) ipv4_mangle_test;;
20302085
ipv6_mangle) ipv6_mangle_test;;
2086+
ipv4_bcast_neigh) ipv4_bcast_neigh_test;;
20312087

20322088
help) echo "Test names: $TESTS"; exit 0;;
20332089
esac

0 commit comments

Comments
 (0)