aboutsummaryrefslogtreecommitdiff
path: root/sys/net/pfvar.h
diff options
context:
space:
mode:
authorKristof Provost <kp@FreeBSD.org>2018-11-02 16:57:23 +0000
committerKristof Provost <kp@FreeBSD.org>2018-11-02 16:57:23 +0000
commitfbbf436d56a307944c0cd0097492ddcb70b57490 (patch)
treeccf34b511e1d9a5197d2b406a3bf315bd2a3d791 /sys/net/pfvar.h
parent26549dfcad9a017dbab72bb306c65ce99bace946 (diff)
downloadsrc-fbbf436d56a307944c0cd0097492ddcb70b57490.tar.gz
src-fbbf436d56a307944c0cd0097492ddcb70b57490.zip
pfsync: Handle syncdev going away
If the syncdev is removed we no longer need to clean up the multicast entry we've got set up for that device. Pass the ifnet detach event through pf to pfsync, and remove our multicast handle, and mark us as no longer having a syncdev. Note that this callback is always installed, even if the pfsync interface is disabled (and thus it's not a per-vnet callback pointer). MFC after: 2 weeks Sponsored by: Orange Business Services Differential Revision: https://reviews.freebsd.org/D17502
Notes
Notes: svn path=/head/; revision=340068
Diffstat (limited to 'sys/net/pfvar.h')
-rw-r--r--sys/net/pfvar.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/net/pfvar.h b/sys/net/pfvar.h
index 9ace26e49d0c..2924c06dbc43 100644
--- a/sys/net/pfvar.h
+++ b/sys/net/pfvar.h
@@ -824,6 +824,7 @@ typedef void pfsync_update_state_t(struct pf_state *);
typedef void pfsync_delete_state_t(struct pf_state *);
typedef void pfsync_clear_states_t(u_int32_t, const char *);
typedef int pfsync_defer_t(struct pf_state *, struct mbuf *);
+typedef void pfsync_detach_ifnet_t(struct ifnet *);
VNET_DECLARE(pfsync_state_import_t *, pfsync_state_import_ptr);
#define V_pfsync_state_import_ptr VNET(pfsync_state_import_ptr)
@@ -837,6 +838,7 @@ VNET_DECLARE(pfsync_clear_states_t *, pfsync_clear_states_ptr);
#define V_pfsync_clear_states_ptr VNET(pfsync_clear_states_ptr)
VNET_DECLARE(pfsync_defer_t *, pfsync_defer_ptr);
#define V_pfsync_defer_ptr VNET(pfsync_defer_ptr)
+extern pfsync_detach_ifnet_t *pfsync_detach_ifnet_ptr;
void pfsync_state_export(struct pfsync_state *,
struct pf_state *);