Module Name: src Committed By: riastradh Date: Wed Oct 30 10:12:32 UTC 2024
Modified Files: src/tests/net/npf: t_npf.sh src/usr.sbin/npf/npftest: npftest.conf src/usr.sbin/npf/npftest/libnpftest: npf_rule_test.c Log Message: npftest: Fix newly added test. - Adapt new test to actually exercise new rules. - Mark the right test xfail. PR bin/55403: npfctl miscompiles IPv6 rules To generate a diff of this commit: cvs rdiff -u -r1.5 -r1.6 src/tests/net/npf/t_npf.sh cvs rdiff -u -r1.10 -r1.11 src/usr.sbin/npf/npftest/npftest.conf cvs rdiff -u -r1.21 -r1.22 \ src/usr.sbin/npf/npftest/libnpftest/npf_rule_test.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/tests/net/npf/t_npf.sh diff -u src/tests/net/npf/t_npf.sh:1.5 src/tests/net/npf/t_npf.sh:1.6 --- src/tests/net/npf/t_npf.sh:1.5 Tue Oct 29 22:24:30 2024 +++ src/tests/net/npf/t_npf.sh Wed Oct 30 10:12:31 2024 @@ -1,4 +1,4 @@ -# $NetBSD: t_npf.sh,v 1.5 2024/10/29 22:24:30 riastradh Exp $ +# $NetBSD: t_npf.sh,v 1.6 2024/10/30 10:12:31 riastradh Exp $ # # Copyright (c) 2008, 2010 The NetBSD Foundation, Inc. # All rights reserved. @@ -30,7 +30,7 @@ run_test() local name="${1}" case $name in - npf_rule) + rule) atf_expect_fail "PR bin/55403: npfctl miscompiles IPv6 rules" ;; esac Index: src/usr.sbin/npf/npftest/npftest.conf diff -u src/usr.sbin/npf/npftest/npftest.conf:1.10 src/usr.sbin/npf/npftest/npftest.conf:1.11 --- src/usr.sbin/npf/npftest/npftest.conf:1.10 Tue Oct 29 22:24:30 2024 +++ src/usr.sbin/npf/npftest/npftest.conf Wed Oct 30 10:12:32 2024 @@ -1,4 +1,4 @@ -# $NetBSD: npftest.conf,v 1.10 2024/10/29 22:24:30 riastradh Exp $ +# $NetBSD: npftest.conf,v 1.11 2024/10/30 10:12:32 riastradh Exp $ $ext_if = "npftest0" $int_if = "npftest1" @@ -56,8 +56,6 @@ group "ext" on $ext_if { pass stateful in final to any port $ports pass stateful in final proto icmp all - pass in final family inet6 proto tcp from $net6_pr55403 - block all } @@ -66,6 +64,9 @@ group "int" on $int_if { pass stateful out final to $local_ip2 pass out final to $local_ip3 block final to $local_ip4 + + pass in final family inet6 proto udp from $net6_pr55403 + pass in final family inet6 proto udp from ! $net6_pr55403 to $net6_pr55403 } group default { Index: src/usr.sbin/npf/npftest/libnpftest/npf_rule_test.c diff -u src/usr.sbin/npf/npftest/libnpftest/npf_rule_test.c:1.21 src/usr.sbin/npf/npftest/libnpftest/npf_rule_test.c:1.22 --- src/usr.sbin/npf/npftest/libnpftest/npf_rule_test.c:1.21 Tue Oct 29 22:24:30 2024 +++ src/usr.sbin/npf/npftest/libnpftest/npf_rule_test.c Wed Oct 30 10:12:32 2024 @@ -53,25 +53,47 @@ static const struct test_case { }, /* - * Pass any of the { fe80::1, fe80::2 } group but nothing else - * in fe80::/112. + * Pass in any of the { fe80::1, fe80::2 } group. */ { .af = AF_INET6, .src = "fe80::1", .dst = "fe80::adec:c91c:d116:7592", - .ifname = IFNAME_EXT, .di = PFIL_IN, + .ifname = IFNAME_INT, .di = PFIL_IN, .stateful_ret = RESULT_PASS, .ret = RESULT_PASS }, { .af = AF_INET6, .src = "fe80::2", .dst = "fe80::adec:c91c:d116:7592", - .ifname = IFNAME_EXT, .di = PFIL_IN, + .ifname = IFNAME_INT, .di = PFIL_IN, .stateful_ret = RESULT_PASS, .ret = RESULT_PASS }, { .af = AF_INET6, .src = "fe80::3", .dst = "fe80::adec:c91c:d116:7592", - .ifname = IFNAME_EXT, .di = PFIL_IN, + .ifname = IFNAME_INT, .di = PFIL_IN, + .stateful_ret = RESULT_BLOCK, .ret = RESULT_BLOCK + }, + + /* + * Pass in anything _not_ in the group { fe80::1, fe80::2 }, as + * long as it is to that group. + */ + { + .af = AF_INET6, + .src = "fe80::adec:c91c:d116:7592", .dst = "fe80::1", + .ifname = IFNAME_INT, .di = PFIL_IN, + .stateful_ret = RESULT_PASS, .ret = RESULT_PASS + }, + { + .af = AF_INET6, + .src = "fe80::adec:c91c:d116:7592", .dst = "fe80::2", + .ifname = IFNAME_INT, .di = PFIL_IN, + .stateful_ret = RESULT_PASS, .ret = RESULT_PASS + }, + { + .af = AF_INET6, + .src = "fe80::adec:c91c:d116:7592", .dst = "fe80::3", + .ifname = IFNAME_INT, .di = PFIL_IN, .stateful_ret = RESULT_BLOCK, .ret = RESULT_BLOCK },