NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/59615: NPF seems to block all traffic with an HEAD (11.99.x) kernel and netbsd-10 userland
> On 6 Sep 2025, at 2:15 PM, Leonardo Taccari via gnats <gnats-admin%NetBSD.org@localhost> wrote:
>
> The following reply was made to PR kern/59615; it has been noted by GNATS.
>
> From: Leonardo Taccari <leot%NetBSD.org@localhost>
> To: gnats-bugs%netbsd.org@localhost
> Cc:
> Subject: Re: kern/59615: NPF seems to block all traffic with an HEAD (11.99.x) kernel and netbsd-10 userland
> Date: Sat, 06 Sep 2025 16:10:23 +0200
>
> Hello Emmanuel,
>
> Emmanuel Nyarko writes:
>>
>
> I have tested it (both the former patch that you have shared off-list
> and I attached here a couple of days ago and this one you have shared
> yesterday) and I can confirm that now the stats looks good:
committing this. @leot
Index: ./sys/net/npf/npf_ruleset.c
===================================================================
RCS file: /cvsroot/src/sys/net/npf/npf_ruleset.c,v
retrieving revision 1.56
diff -u -r1.56 npf_ruleset.c
--- ./sys/net/npf/npf_ruleset.c 1 Jul 2025 18:42:37 -0000 1.56
+++ ./sys/net/npf/npf_ruleset.c 7 Sep 2025 15:47:06 -0000
@@ -925,7 +925,14 @@
const unsigned skip_to = rl->r_skip_to & SKIPTO_MASK;
const uint32_t attr = rl->r_attr;
- if ((attr & layer) == 0) {
+ /*
+ * PR kern/59615
+ * we are skipping rule inspection on two cases
+ * if layer attributes are set but we are on a different layer
+ * or if no layer attributes set (10 userland), don't inspect at layer 2
+ */
+ if ((((attr & (NPF_RULE_LAYER_2 | NPF_RULE_LAYER_3)) && (attr & layer) == 0)) ||
+ (((attr & (NPF_RULE_LAYER_2 | NPF_RULE_LAYER_3)) == 0) && layer == NPF_RULE_LAYER_2)) {
n = skip_to;
continue;
}
RCS file: /cvsroot/src/sys/net/npf/npf.h,v
retrieving revision 1.67
diff -u -r1.67 npf.h
--- sys/net/npf/npf.h 1 Jul 2025 18:42:37 -0000 1.67
+++ sys/net/npf/npf.h 4 Sep 2025 11:41:15 -0000
@@ -355,11 +355,9 @@
NPF_STAT_PASS_DEFAULT,
NPF_STAT_PASS_RULESET,
NPF_STAT_PASS_CONN,
- NPF_ETHER_STAT_PASS,
/* Packets blocked. */
NPF_STAT_BLOCK_DEFAULT,
NPF_STAT_BLOCK_RULESET,
- NPF_ETHER_STAT_BLOCK,
/* Connection and NAT entries. */
NPF_STAT_CONN_CREATE,
NPF_STAT_CONN_DESTROY,
@@ -382,6 +380,9 @@
/* nbuf non-contiguous cases. */
NPF_STAT_NBUF_NONCONTIG,
NPF_STAT_NBUF_CONTIG_FAIL,
+ /* layer 2 statistics */
+ NPF_ETHER_STAT_PASS,
+ NPF_ETHER_STAT_BLOCK,
/* Count (last). */
NPF_STATS_COUNT
} npf_stats_t;
fixes PR.
Emmanuel
Home |
Main Index |
Thread Index |
Old Index