diff options
author | Kristof Provost <kp@FreeBSD.org> | 2025-01-20 17:25:37 +0000 |
---|---|---|
committer | Kristof Provost <kp@FreeBSD.org> | 2025-01-24 10:20:30 +0000 |
commit | 0972294ef034d92f59857b8312dd2e1e3a7adc9c (patch) | |
tree | 98b23c194e18e2763a51f3bebdd39b28c81544eb /lib | |
parent | 899e79760dcce8c9358caf2e2bddfe1ba3ad6dee (diff) |
pf: add a dedicated pf pool for route options
As suggested by henning.
Which unbreaks ie route-to after the recent pf changes.
With much help debugging and pointing out of missing bits from claudio@
ok claudio@ "looks good" henning@
Obtained from: OpenBSD, jsg <jsg@openbsd.org>, 7fa5c09028
Sponsored by: Rubicon Communications, LLC ("Netgate")
Diffstat (limited to 'lib')
-rw-r--r-- | lib/libpfctl/libpfctl.c | 2 | ||||
-rw-r--r-- | lib/libpfctl/libpfctl.h | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/lib/libpfctl/libpfctl.c b/lib/libpfctl/libpfctl.c index f0708c8f0439..2297b24d37a0 100644 --- a/lib/libpfctl/libpfctl.c +++ b/lib/libpfctl/libpfctl.c @@ -1227,6 +1227,7 @@ snl_add_msg_attr_pf_rule(struct snl_writer *nw, uint32_t type, const struct pfct snl_add_msg_attr_string(nw, PF_RT_OVERLOAD_TBLNAME, r->overload_tblname); snl_add_msg_attr_rpool(nw, PF_RT_RPOOL_RDR, &r->rdr); snl_add_msg_attr_rpool(nw, PF_RT_RPOOL_NAT, &r->nat); + snl_add_msg_attr_rpool(nw, PF_RT_RPOOL_RT, &r->route); snl_add_msg_attr_u32(nw, PF_RT_OS_FINGERPRINT, r->os_fingerprint); snl_add_msg_attr_u32(nw, PF_RT_RTABLEID, r->rtableid); snl_add_msg_attr_timeouts(nw, PF_RT_TIMEOUT, r->timeout); @@ -1661,6 +1662,7 @@ static struct snl_attr_parser ap_getrule[] = { { .type = PF_RT_MAX_SRC_CONN, .off = _OUT(r.max_src_conn), .cb = snl_attr_get_uint32 }, { .type = PF_RT_RPOOL_NAT, .off = _OUT(r.nat), .arg = &pool_parser, .cb = snl_attr_get_nested }, { .type = PF_RT_NAF, .off = _OUT(r.naf), .cb = snl_attr_get_uint8 }, + { .type = PF_RT_RPOOL_RT, .off = _OUT(r.route), .arg = &pool_parser, .cb = snl_attr_get_nested }, }; #undef _OUT SNL_DECLARE_PARSER(getrule_parser, struct genlmsghdr, snl_f_p_empty, ap_getrule); diff --git a/lib/libpfctl/libpfctl.h b/lib/libpfctl/libpfctl.h index 14ea06fd151a..2532894ffa21 100644 --- a/lib/libpfctl/libpfctl.h +++ b/lib/libpfctl/libpfctl.h @@ -180,6 +180,7 @@ struct pfctl_rule { struct pfctl_pool rpool; struct pfctl_pool rdr; }; + struct pfctl_pool route; uint64_t evaluations; uint64_t packets[2]; |