aboutsummaryrefslogtreecommitdiff
path: root/tests/sys/netinet6/ndp.sh
diff options
context:
space:
mode:
Diffstat (limited to 'tests/sys/netinet6/ndp.sh')
-rwxr-xr-xtests/sys/netinet6/ndp.sh39
1 files changed, 39 insertions, 0 deletions
diff --git a/tests/sys/netinet6/ndp.sh b/tests/sys/netinet6/ndp.sh
index bac9764ee3c9..21a50cda02ba 100755
--- a/tests/sys/netinet6/ndp.sh
+++ b/tests/sys/netinet6/ndp.sh
@@ -188,9 +188,48 @@ ndp_slaac_default_route_cleanup() {
vnet_cleanup
}
+atf_test_case "ndp_prefix_len_mismatch" "cleanup"
+ndp_prefix_len_mismatch_head() {
+ atf_set descr 'Test RAs on an interface without a /64 lladdr'
+ atf_set require.user root
+ atf_set require.progs python3 scapy
+}
+
+ndp_prefix_len_mismatch_body() {
+ vnet_init
+
+ epair=$(vnet_mkepair)
+
+ vnet_mkjail alcatraz ${epair}a
+
+ jexec alcatraz ifconfig ${epair}a inet6 -auto_linklocal
+ jexec alcatraz ifconfig ${epair}a inet6 -ifdisabled
+ jexec alcatraz ifconfig ${epair}a inet6 accept_rtadv
+ jexec alcatraz ifconfig ${epair}a inet6 fe80::5a9c:fcff:fe10:5d07/127
+ jexec alcatraz ifconfig ${epair}a up
+
+ ifconfig ${epair}b inet6 -ifdisabled
+ ifconfig ${epair}b up
+
+ atf_check -e ignore python3 $(atf_get_srcdir)/ra.py \
+ --sendif ${epair}b \
+ --dst $(ndp_if_lladdr ${epair}a alcatraz) \
+ --src $(ndp_if_lladdr ${epair}b) \
+ --prefix "2001:db8:ffff:1000::" --prefixlen 64
+
+ atf_check \
+ -o match:"inet6 2001:db8:ffff:1000:.* prefixlen 64.*autoconf.*" \
+ jexec alcatraz ifconfig ${epair}a
+}
+
+ndp_prefix_len_mismatch_cleanup() {
+ vnet_cleanup
+}
+
atf_init_test_cases()
{
atf_add_test_case "ndp_add_gu_success"
atf_add_test_case "ndp_del_gu_success"
atf_add_test_case "ndp_slaac_default_route"
+ atf_add_test_case "ndp_prefix_len_mismatch"
}