svn commit: r232043 - projects/pf/head/sys/contrib/pf/net

Gleb Smirnoff glebius at FreeBSD.org
Thu Feb 23 10:18:29 UTC 2012


Author: glebius
Date: Thu Feb 23 10:18:28 2012
New Revision: 232043
URL: http://svn.freebsd.org/changeset/base/232043

Log:
  - Cleanup #ifdef.
  - Remove spl(9) calls.
  - Remove #defines that mask FreeBSD API: use uma(9) implicitly,
    use correct malloc(9) flags, etc..
  - Minor cleanups.
  
  Only compile tested.

Modified:
  projects/pf/head/sys/contrib/pf/net/if_pflog.c
  projects/pf/head/sys/contrib/pf/net/if_pflog.h
  projects/pf/head/sys/contrib/pf/net/if_pflow.h
  projects/pf/head/sys/contrib/pf/net/if_pfsync.c
  projects/pf/head/sys/contrib/pf/net/if_pfsync.h
  projects/pf/head/sys/contrib/pf/net/pf.c
  projects/pf/head/sys/contrib/pf/net/pf_if.c
  projects/pf/head/sys/contrib/pf/net/pf_ioctl.c
  projects/pf/head/sys/contrib/pf/net/pf_lb.c
  projects/pf/head/sys/contrib/pf/net/pf_norm.c
  projects/pf/head/sys/contrib/pf/net/pf_osfp.c
  projects/pf/head/sys/contrib/pf/net/pf_ruleset.c
  projects/pf/head/sys/contrib/pf/net/pf_table.c
  projects/pf/head/sys/contrib/pf/net/pfvar.h

Modified: projects/pf/head/sys/contrib/pf/net/if_pflog.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/if_pflog.c	Thu Feb 23 09:23:10 2012	(r232042)
+++ projects/pf/head/sys/contrib/pf/net/if_pflog.c	Thu Feb 23 10:18:28 2012	(r232043)
@@ -33,7 +33,6 @@
  * PURPOSE.
  */
 
-#ifdef __FreeBSD__
 #include "opt_inet.h"
 #include "opt_inet6.h"
 #include "opt_bpf.h"
@@ -54,30 +53,20 @@ __FBSDID("$FreeBSD$");
 #define	NPFLOG		0
 #endif
 
-#else /* ! __FreeBSD__ */
-#include "bpfilter.h"
-#include "pflog.h"
-#endif /* __FreeBSD__ */
 
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/mbuf.h>
 #include <sys/proc.h>
 #include <sys/socket.h>
-#ifdef __FreeBSD__
 #include <sys/kernel.h>
 #include <sys/limits.h>
 #include <sys/malloc.h>
 #include <sys/module.h>
 #include <sys/sockio.h>
-#else
-#include <sys/ioctl.h>
-#endif
 
 #include <net/if.h>
-#ifdef __FreeBSD__
 #include <net/if_clone.h>
-#endif
 #include <net/if_types.h>
 #include <net/route.h>
 #include <net/bpf.h>
@@ -99,11 +88,9 @@ __FBSDID("$FreeBSD$");
 #include <net/pfvar.h>
 #include <net/if_pflog.h>
 
-#ifdef __FreeBSD__
 #ifdef INET
 #include <machine/in_cksum.h>
 #endif /* INET */
-#endif /* __FreeBSD__ */
 
 #define PFLOGMTU	(32768 + MHLEN + MLEN)
 
@@ -115,28 +102,14 @@ __FBSDID("$FreeBSD$");
 
 void	pflogattach(int);
 int	pflogoutput(struct ifnet *, struct mbuf *, struct sockaddr *,
-#ifdef __FreeBSD__
 	    struct route *);
-#else
-	    struct rtentry *);
-#endif
 int	pflogioctl(struct ifnet *, u_long, caddr_t);
 void	pflogstart(struct ifnet *);
-#ifdef __FreeBSD__
 static int pflog_clone_create(struct if_clone *, int, caddr_t);
 static void pflog_clone_destroy(struct ifnet *);
-#else
-int	pflog_clone_create(struct if_clone *, int);
-int	pflog_clone_destroy(struct ifnet *);
-#endif
 
 LIST_HEAD(, pflog_softc)	pflogif_list;
-#ifdef __FreeBSD__
 IFC_SIMPLE_DECLARE(pflog, 1);
-#else
-struct if_clone	pflog_cloner =
-    IF_CLONE_INITIALIZER("pflog", pflog_clone_create, pflog_clone_destroy);
-#endif
 
 struct ifnet	*pflogifs[PFLOGIFS_MAX];	/* for fast access */
 
@@ -150,17 +123,11 @@ pflogattach(int npflog)
 	if_clone_attach(&pflog_cloner);
 }
 
-#ifdef __FreeBSD__
 static int
 pflog_clone_create(struct if_clone *ifc, int unit, caddr_t param)
-#else
-int
-pflog_clone_create(struct if_clone *ifc, int unit)
-#endif
 {
 	struct ifnet *ifp;
 	struct pflog_softc *pflogif;
-	int s;
 
 	if (unit >= PFLOGIFS_MAX)
 		return (EINVAL);
@@ -170,88 +137,50 @@ pflog_clone_create(struct if_clone *ifc,
 		return (ENOMEM);
 
 	pflogif->sc_unit = unit;
-#ifdef __FreeBSD__
 	ifp = pflogif->sc_ifp = if_alloc(IFT_PFLOG);
 	if (ifp == NULL) {
 		free(pflogif, M_DEVBUF);
 		return (ENOSPC);
 	}
 	if_initname(ifp, ifc->ifc_name, unit);
-#else
-	ifp = &pflogif->sc_if;
-	snprintf(ifp->if_xname, sizeof ifp->if_xname, "pflog%d", unit);
-#endif
 	ifp->if_softc = pflogif;
 	ifp->if_mtu = PFLOGMTU;
 	ifp->if_ioctl = pflogioctl;
 	ifp->if_output = pflogoutput;
 	ifp->if_start = pflogstart;
-#ifndef __FreeBSD__
-	ifp->if_type = IFT_PFLOG;
-#endif
 	ifp->if_snd.ifq_maxlen = ifqmaxlen;
 	ifp->if_hdrlen = PFLOG_HDRLEN;
 	if_attach(ifp);
-#ifndef __FreeBSD__
-	if_alloc_sadl(ifp);
-#endif
 
 #if NBPFILTER > 0
-#ifdef __FreeBSD__
 	bpfattach(ifp, DLT_PFLOG, PFLOG_HDRLEN);
-#else
-	bpfattach(&pflogif->sc_if.if_bpf, ifp, DLT_PFLOG, PFLOG_HDRLEN);
-#endif
 #endif
 
-	s = splnet();
-#ifdef __FreeBSD__
 	/* XXX: Why pf(4) lock?! Better add a pflog lock?! */
 	PF_LOCK();
-#endif
 	LIST_INSERT_HEAD(&pflogif_list, pflogif, sc_list);
 	pflogifs[unit] = ifp;
-#ifdef __FreeBSD__
 	PF_UNLOCK();
-#endif
-	splx(s);
 
 	return (0);
 }
 
-#ifdef __FreeBSD__
 static void
 pflog_clone_destroy(struct ifnet *ifp)
-#else
-int
-pflog_clone_destroy(struct ifnet *ifp)
-#endif
 {
 	struct pflog_softc	*pflogif = ifp->if_softc;
-	int			 s;
 
-	s = splnet();
-#ifdef __FreeBSD__
 	PF_LOCK();
-#endif
 	pflogifs[pflogif->sc_unit] = NULL;
 	LIST_REMOVE(pflogif, sc_list);
-#ifdef __FreeBSD__
 	PF_UNLOCK();
-#endif
-	splx(s);
 
 #if NBPFILTER > 0
 	bpfdetach(ifp);
 #endif
 	if_detach(ifp);
-#ifdef __FreeBSD__
 	if_free(ifp);
-#endif
 	free(pflogif, M_DEVBUF);
-#ifndef __FreeBSD__
-	return (0);
-#endif
 }
 
 /*
@@ -261,22 +190,12 @@ void
 pflogstart(struct ifnet *ifp)
 {
 	struct mbuf *m;
-#ifndef __FreeBSD__
-	int s;
-#endif
 
 	for (;;) {
-#ifdef __FreeBSD__
 		IF_LOCK(&ifp->if_snd);
 		_IF_DROP(&ifp->if_snd);
 		_IF_DEQUEUE(&ifp->if_snd, m);
 		IF_UNLOCK(&ifp->if_snd);
-#else
-		s = splnet();
-		IF_DROP(&ifp->if_snd);
-		IF_DEQUEUE(&ifp->if_snd, m);
-		splx(s);
-#endif
 
 		if (m == NULL)
 			return;
@@ -287,11 +206,7 @@ pflogstart(struct ifnet *ifp)
 
 int
 pflogoutput(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst,
-#ifdef __FreeBSD__
 	struct route *rt)
-#else
-	struct rtentry *rt)
-#endif
 {
 	m_freem(m);
 	return (0);
@@ -303,17 +218,10 @@ pflogioctl(struct ifnet *ifp, u_long cmd
 {
 	switch (cmd) {
 	case SIOCSIFFLAGS:
-#ifdef __FreeBSD__
 		if (ifp->if_flags & IFF_UP)
 			ifp->if_drv_flags |= IFF_DRV_RUNNING;
 		else
 			ifp->if_drv_flags &= ~IFF_DRV_RUNNING;
-#else
-		if (ifp->if_flags & IFF_UP)
-			ifp->if_flags |= IFF_RUNNING;
-		else
-			ifp->if_flags &= ~IFF_RUNNING;
-#endif
 		break;
 	default:
 		return (ENOTTY);
@@ -355,15 +263,11 @@ pflog_packet(struct pfi_kif *kif, struct
 			    sizeof(hdr.ruleset));
 	}
 	if (rm->log & PF_LOG_SOCKET_LOOKUP && !pd->lookup.done)
-#ifdef __FreeBSD__
 		/*
 		 * XXX: This should not happen as we force an early lookup
 		 * via debug.pfugidhack
 		 */
 		; /* empty */
-#else
-		pd->lookup.done = pf_socket_lookup(dir, pd);
-#endif
 	if (pd->lookup.done > 0) {
 		hdr.uid = pd->lookup.uid;
 		hdr.pid = pd->lookup.pid;
@@ -387,18 +291,12 @@ pflog_packet(struct pfi_kif *kif, struct
 
 	ifn->if_opackets++;
 	ifn->if_obytes += m->m_pkthdr.len;
-#ifdef __FreeBSD__
 	BPF_MTAP2(ifn, &hdr, PFLOG_HDRLEN, m);
-#else
-	bpf_mtap_hdr(ifn->if_bpf, (char *)&hdr, PFLOG_HDRLEN, m,
-	    BPF_DIRECTION_OUT);
-#endif
 #endif
 
 	return (0);
 }
 
-#ifdef __FreeBSD__
 static int
 pflog_modevent(module_t mod, int type, void *data)
 {
@@ -432,4 +330,3 @@ static moduledata_t pflog_mod = { "pflog
 DECLARE_MODULE(pflog, pflog_mod, SI_SUB_PSEUDO, SI_ORDER_ANY);
 MODULE_VERSION(pflog, PFLOG_MODVER);
 MODULE_DEPEND(pflog, pf, PF_MODVER, PF_MODVER, PF_MODVER);
-#endif /* __FreeBSD__ */

Modified: projects/pf/head/sys/contrib/pf/net/if_pflog.h
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/if_pflog.h	Thu Feb 23 09:23:10 2012	(r232042)
+++ projects/pf/head/sys/contrib/pf/net/if_pflog.h	Thu Feb 23 10:18:28 2012	(r232043)
@@ -30,11 +30,7 @@
 #define	PFLOGIFS_MAX	16
 
 struct pflog_softc {
-#ifdef __FreeBSD__
 	struct ifnet		*sc_ifp;	/* the interface pointer */
-#else
-	struct ifnet		sc_if;		/* the interface */
-#endif
 	int			sc_unit;
 	LIST_ENTRY(pflog_softc)	sc_list;
 };
@@ -74,28 +70,14 @@ struct old_pfloghdr {
 #define	OLD_PFLOG_HDRLEN	sizeof(struct old_pfloghdr)
 
 #ifdef _KERNEL
-#ifdef __FreeBSD__
 struct pf_rule;
 struct pf_ruleset;
 struct pfi_kif;
 struct pf_pdesc;
 
-#if 0
-typedef int pflog_packet_t(struct pfi_kif *, struct mbuf *, sa_family_t,
-    u_int8_t, u_int8_t, struct pf_rule *, struct pf_rule *,
-    struct pf_ruleset *, struct pf_pdesc *);
-extern pflog_packet_t *pflog_packet_ptr;
-#endif
 #define	PFLOG_PACKET(i,x,a,b,c,d,e,f,g,h) do {		\
 	if (pflog_packet_ptr != NULL)			\
 		pflog_packet_ptr(i,a,b,c,d,e,f,g,h);    \
 } while (0)
-#else /* ! __FreeBSD__ */
-#if NPFLOG > 0
-#define	PFLOG_PACKET(i,x,a,b,c,d,e,f,g,h) pflog_packet(i,a,b,c,d,e,f,g,h)
-#else
-#define	PFLOG_PACKET(i,x,a,b,c,d,e,f,g,h) ((void)0)
-#endif /* NPFLOG > 0 */
-#endif
 #endif /* _KERNEL */
 #endif /* _NET_IF_PFLOG_H_ */

Modified: projects/pf/head/sys/contrib/pf/net/if_pflow.h
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/if_pflow.h	Thu Feb 23 09:23:10 2012	(r232042)
+++ projects/pf/head/sys/contrib/pf/net/if_pflow.h	Thu Feb 23 10:18:28 2012	(r232043)
@@ -66,11 +66,7 @@ struct pflow_softc {
 	unsigned int		 sc_maxcount;
 	u_int64_t		 sc_gcounter;
 	struct ip_moptions	 sc_imo;
-#ifdef __FreeBSD__
 	struct callout		 sc_tmo;
-#else
-	struct timeout		 sc_tmo;
-#endif
 	struct in_addr		 sc_sender_ip;
 	u_int16_t		 sc_sender_port;
 	struct in_addr		 sc_receiver_ip;

Modified: projects/pf/head/sys/contrib/pf/net/if_pfsync.c
==============================================================================
--- projects/pf/head/sys/contrib/pf/net/if_pfsync.c	Thu Feb 23 09:23:10 2012	(r232042)
+++ projects/pf/head/sys/contrib/pf/net/if_pfsync.c	Thu Feb 23 10:18:28 2012	(r232043)
@@ -51,7 +51,6 @@
  * 1.170 - SIOCSIFMTU checks
  */
 
-#ifdef __FreeBSD__
 #include "opt_inet.h"
 #include "opt_inet6.h"
 #include "opt_pf.h"
@@ -60,21 +59,17 @@
 __FBSDID("$FreeBSD$");
 
 #define	NBPFILTER	1
-#endif /* __FreeBSD__ */
 
 #include <sys/param.h>
 #include <sys/kernel.h>
-#ifdef __FreeBSD__
 #include <sys/bus.h>
 #include <sys/interrupt.h>
 #include <sys/priv.h>
-#endif
 #include <sys/proc.h>
 #include <sys/systm.h>
 #include <sys/time.h>
 #include <sys/mbuf.h>
 #include <sys/socket.h>
-#ifdef __FreeBSD__
 #include <sys/endian.h>
 #include <sys/malloc.h>
 #include <sys/module.h>
@@ -83,26 +78,15 @@ __FBSDID("$FreeBSD$");
 #include <sys/lock.h>
 #include <sys/mutex.h>
 #include <sys/protosw.h>
-#else
-#include <sys/ioctl.h>
-#include <sys/timeout.h>
-#endif
 #include <sys/sysctl.h>
-#ifndef __FreeBSD__
-#include <sys/pool.h>
-#endif
 
 #include <net/if.h>
-#ifdef __FreeBSD__
 #include <net/if_clone.h>
-#endif
 #include <net/if_types.h>
 #include <net/route.h>
 #include <net/bpf.h>
 #include <net/netisr.h>
-#ifdef __FreeBSD__
 #include <net/vnet.h>
-#endif
 
 #include <netinet/in.h>
 #include <netinet/if_ether.h>
@@ -120,22 +104,11 @@ __FBSDID("$FreeBSD$");
 #include <netinet6/nd6.h>
 #endif /* INET6 */
 
-#ifdef __FreeBSD__
 #include <netinet/ip_carp.h>
-#else
-#include "carp.h"
-#if NCARP > 0
-#include <netinet/ip_carp.h>
-#endif
-#endif
 
 #include <net/pfvar.h>
 #include <net/if_pfsync.h>
 
-#ifndef __FreeBSD__
-#include "bpfilter.h"
-#include "pfsync.h"
-#endif
 
 #define PFSYNC_MINPKT ( \
 	sizeof(struct ip) + \
@@ -217,11 +190,7 @@ struct pfsync_deferral {
 	TAILQ_ENTRY(pfsync_deferral)		 pd_entry;
 	struct pf_state				*pd_st;
 	struct mbuf				*pd_m;
-#ifdef __FreeBSD__
 	struct callout				 pd_tmo;
-#else
-	struct timeout				 pd_tmo;
-#endif
 };
 TAILQ_HEAD(pfsync_deferrals, pfsync_deferral);
 
@@ -233,26 +202,16 @@ int	pfsync_out_tdb(struct tdb *, struct 
 #endif
 
 struct pfsync_softc {
-#ifdef __FreeBSD__
 	struct ifnet		*sc_ifp;
-#else
-	struct ifnet		 sc_if;
-#endif
 	struct ifnet		*sc_sync_if;
 
-#ifdef __FreeBSD__
 	uma_zone_t		 sc_pool;
-#else
-	struct pool		 sc_pool;
-#endif
 
 	struct ip_moptions	 sc_imo;
 
 	struct in_addr		 sc_sync_peer;
 	u_int8_t		 sc_maxupdates;
-#ifdef __FreeBSD__
 	int			 pfsync_sync_ok;
-#endif
 
 	struct ip		 sc_template;
 
@@ -269,31 +228,18 @@ struct pfsync_softc {
 
 	u_int32_t		 sc_ureq_sent;
 	int			 sc_bulk_tries;
-#ifdef __FreeBSD__
 	struct callout		 sc_bulkfail_tmo;
-#else
-	struct timeout		 sc_bulkfail_tmo;
-#endif
 
 	u_int32_t		 sc_ureq_received;
 	struct pf_state		*sc_bulk_next;
 	struct pf_state		*sc_bulk_last;
-#ifdef __FreeBSD__
 	struct callout		 sc_bulk_tmo;
-#else
-	struct timeout		 sc_bulk_tmo;
-#endif
 
 	TAILQ_HEAD(, tdb)	 sc_tdb_q;
 
-#ifdef __FreeBSD__
 	struct callout		 sc_tmo;
-#else
-	struct timeout		 sc_tmo;
-#endif
 };
 
-#ifdef __FreeBSD__
 static MALLOC_DEFINE(M_PFSYNC, "pfsync", "pfsync data");
 static VNET_DEFINE(struct pfsync_softc	*, pfsyncif) = NULL;
 #define	V_pfsyncif		VNET(pfsyncif)
@@ -319,29 +265,15 @@ SYSCTL_VNET_STRUCT(_net_pfsync, OID_AUTO
     "PFSYNC statistics (struct pfsyncstats, net/if_pfsync.h)");
 SYSCTL_INT(_net_pfsync, OID_AUTO, carp_demotion_factor, CTLFLAG_RW,
     &VNET_NAME(pfsync_carp_adj), 0, "pfsync's CARP demotion factor adjustment");
-#else
-struct pfsync_softc	*pfsyncif = NULL;
-struct pfsyncstats	 pfsyncstats;
-#define	V_pfsyncstats	 pfsyncstats
-#endif
 
 void	pfsyncattach(int);
-#ifdef __FreeBSD__
 int	pfsync_clone_create(struct if_clone *, int, caddr_t);
 void	pfsync_clone_destroy(struct ifnet *);
-#else
-int	pfsync_clone_create(struct if_clone *, int);
-int	pfsync_clone_destroy(struct ifnet *);
-#endif
 int	pfsync_alloc_scrub_memory(struct pfsync_state_peer *,
 	    struct pf_state_peer *);
 void	pfsync_update_net_tdb(struct pfsync_tdb *);
 int	pfsyncoutput(struct ifnet *, struct mbuf *, struct sockaddr *,
-#ifdef __FreeBSD__
 	    struct route *);
-#else
-	    struct rtentry *);
-#endif
 int	pfsyncioctl(struct ifnet *, u_long, caddr_t);
 void	pfsyncstart(struct ifnet *);
 
@@ -365,27 +297,13 @@ void	pfsync_bulk_status(u_int8_t);
 void	pfsync_bulk_update(void *);
 void	pfsync_bulk_fail(void *);
 
-#ifdef __FreeBSD__
-/* XXX: ugly */
-#define	betoh64		(unsigned long long)be64toh
-#define	timeout_del	callout_stop
-#endif
-
 #define PFSYNC_MAX_BULKTRIES	12
-#ifndef __FreeBSD__
-int	pfsync_sync_ok;
-#endif
 
-#ifdef __FreeBSD__
 VNET_DEFINE(struct ifc_simple_data, pfsync_cloner_data);
 VNET_DEFINE(struct if_clone, pfsync_cloner);
 #define	V_pfsync_cloner_data	VNET(pfsync_cloner_data)
 #define	V_pfsync_cloner		VNET(pfsync_cloner)
 IFC_SIMPLE_DECLARE(pfsync, 1);
-#else
-struct if_clone	pfsync_cloner =
-    IF_CLONE_INITIALIZER("pfsync", pfsync_clone_create, pfsync_clone_destroy);
-#endif
 
 void
 pfsyncattach(int npfsync)
@@ -393,11 +311,7 @@ pfsyncattach(int npfsync)
 	if_clone_attach(&pfsync_cloner);
 }
 int
-#ifdef __FreeBSD__
 pfsync_clone_create(struct if_clone *ifc, int unit, caddr_t param)
-#else
-pfsync_clone_create(struct if_clone *ifc, int unit)
-#endif
 {
 	struct pfsync_softc *sc;
 	struct ifnet *ifp;
@@ -406,23 +320,14 @@ pfsync_clone_create(struct if_clone *ifc
 	if (unit != 0)
 		return (EINVAL);
 
-#ifdef __FreeBSD__
 	sc = malloc(sizeof(struct pfsync_softc), M_PFSYNC, M_WAITOK | M_ZERO);
 	sc->pfsync_sync_ok = 1;
-#else
-	pfsync_sync_ok = 1;
-	sc = malloc(sizeof(*pfsyncif), M_DEVBUF, M_NOWAIT | M_ZERO);
-#endif
 
 	for (q = 0; q < PFSYNC_S_COUNT; q++)
 		TAILQ_INIT(&sc->sc_qs[q]);
 
-#ifdef __FreeBSD__
 	sc->sc_pool = uma_zcreate("pfsync", PFSYNC_PLSIZE, NULL, NULL, NULL,
 	    NULL, UMA_ALIGN_PTR, 0);
-#else
-	pool_init(&sc->sc_pool, PFSYNC_PLSIZE, 0, 0, 0, "pfsync", NULL);
-#endif
 	TAILQ_INIT(&sc->sc_upd_req_list);
 	TAILQ_INIT(&sc->sc_deferrals);
 	sc->sc_deferred = 0;
@@ -432,14 +337,7 @@ pfsync_clone_create(struct if_clone *ifc
 	sc->sc_len = PFSYNC_MINPKT;
 	sc->sc_maxupdates = 128;
 
-#ifndef __FreeBSD__
-	sc->sc_imo.imo_membership = (struct in_multi **)malloc(
-	    (sizeof(struct in_multi *) * IP_MIN_MEMBERSHIPS), M_IPMOPTS,
-	    M_WAITOK | M_ZERO);
-	sc->sc_imo.imo_max_memberships = IP_MIN_MEMBERSHIPS;
-#endif
 
-#ifdef __FreeBSD__
 	ifp = sc->sc_ifp = if_alloc(IFT_PFSYNC);
 	if (ifp == NULL) {
 		uma_zdestroy(sc->sc_pool);
@@ -447,10 +345,6 @@ pfsync_clone_create(struct if_clone *ifc
 		return (ENOSPC);
 	}
 	if_initname(ifp, ifc->ifc_name, unit);
-#else
-	ifp = &sc->sc_if;
-	snprintf(ifp->if_xname, sizeof ifp->if_xname, "pfsync%d", unit);
-#endif
 	ifp->if_softc = sc;
 	ifp->if_ioctl = pfsyncioctl;
 	ifp->if_output = pfsyncoutput;
@@ -459,67 +353,33 @@ pfsync_clone_create(struct if_clone *ifc
 	ifp->if_snd.ifq_maxlen = ifqmaxlen;
 	ifp->if_hdrlen = sizeof(struct pfsync_header);
 	ifp->if_mtu = ETHERMTU;
-#ifdef __FreeBSD__
 	callout_init(&sc->sc_tmo, CALLOUT_MPSAFE);
 	callout_init_mtx(&sc->sc_bulk_tmo, &pf_task_mtx, 0);
 	callout_init(&sc->sc_bulkfail_tmo, CALLOUT_MPSAFE);
-#else
-	timeout_set(&sc->sc_tmo, pfsync_timeout, sc);
-	timeout_set(&sc->sc_bulk_tmo, pfsync_bulk_update, sc);
-	timeout_set(&sc->sc_bulkfail_tmo, pfsync_bulk_fail, sc);
-#endif
 
 	if_attach(ifp);
-#ifndef __FreeBSD__
-	if_alloc_sadl(ifp);
-
-#if NCARP > 0
-	if_addgroup(ifp, "carp");
-#endif
-#endif
 
 #if NBPFILTER > 0
-#ifdef __FreeBSD__
 	bpfattach(ifp, DLT_PFSYNC, PFSYNC_HDRLEN);
-#else
-	bpfattach(&sc->sc_if.if_bpf, ifp, DLT_PFSYNC, PFSYNC_HDRLEN);
-#endif
 #endif
 
-#ifdef __FreeBSD__
 	V_pfsyncif = sc;
-#else
-	pfsyncif = sc;
-#endif
 
 	return (0);
 }
 
-#ifdef __FreeBSD__
 void
-#else
-int
-#endif
 pfsync_clone_destroy(struct ifnet *ifp)
 {
 	struct pfsync_softc *sc = ifp->if_softc;
 
-#ifdef __FreeBSD__
 	PF_LOCK();
-#endif
-	timeout_del(&sc->sc_bulkfail_tmo);
-	timeout_del(&sc->sc_bulk_tmo);
-	timeout_del(&sc->sc_tmo);
-#ifdef __FreeBSD__
+	callout_stop(&sc->sc_bulkfail_tmo);
+	callout_stop(&sc->sc_bulk_tmo);
+	callout_stop(&sc->sc_tmo);
 	PF_UNLOCK();
 	if (!sc->pfsync_sync_ok && carp_demote_adj_p)
 		(*carp_demote_adj_p)(-V_pfsync_carp_adj, "pfsync destroy");
-#else
-#if NCARP > 0
-	if (!pfsync_sync_ok)
-		carp_group_demote_adj(&sc->sc_if, -1);
-#endif
-#endif
 #if NBPFILTER > 0
 	bpfdetach(ifp);
 #endif
@@ -530,50 +390,25 @@ pfsync_clone_destroy(struct ifnet *ifp)
 	while (sc->sc_deferred > 0)
 		pfsync_undefer(TAILQ_FIRST(&sc->sc_deferrals), 0);
 
-#ifdef __FreeBSD__
-	UMA_DESTROY(sc->sc_pool);
-#else
-	pool_destroy(&sc->sc_pool);
-#endif
-#ifdef __FreeBSD__
+	uma_zdestroy(sc->sc_pool);
 	if_free(ifp);
 	if (sc->sc_imo.imo_membership)
 		pfsync_multicast_cleanup(sc);
 	free(sc, M_PFSYNC);
-#else
-	free(sc->sc_imo.imo_membership, M_IPMOPTS);
-	free(sc, M_DEVBUF);
-#endif
 
-#ifdef __FreeBSD__
 	V_pfsyncif = NULL;
-#else
-	pfsyncif = NULL;
-#endif
 
-#ifndef __FreeBSD__
-	return (0);
-#endif
 }
 
 struct mbuf *
 pfsync_if_dequeue(struct ifnet *ifp)
 {
 	struct mbuf *m;
-#ifndef __FreeBSD__
-	int s;
-#endif
 
-#ifdef __FreeBSD__
 	IF_LOCK(&ifp->if_snd);
 	_IF_DROP(&ifp->if_snd);
 	_IF_DEQUEUE(&ifp->if_snd, m);
 	IF_UNLOCK(&ifp->if_snd);
-#else
-	s = splnet();
-	IF_DEQUEUE(&ifp->if_snd, m);
-	splx(s);
-#endif
 
 	return (m);
 }
@@ -587,9 +422,6 @@ pfsyncstart(struct ifnet *ifp)
 	struct mbuf *m;
 
 	while ((m = pfsync_if_dequeue(ifp)) != NULL) {
-#ifndef __FreeBSD__
-		IF_DROP(&ifp->if_snd);
-#endif
 		m_freem(m);
 	}
 }
@@ -599,11 +431,7 @@ pfsync_alloc_scrub_memory(struct pfsync_
     struct pf_state_peer *d)
 {
 	if (s->scrub.scrub_flag && d->scrub == NULL) {
-#ifdef __FreeBSD__
-		d->scrub = pool_get(&V_pf_state_scrub_pl, PR_NOWAIT | PR_ZERO);
-#else
-		d->scrub = pool_get(&pf_state_scrub_pl, PR_NOWAIT | PR_ZERO);
-#endif
+		d->scrub = uma_zalloc(V_pf_state_scrub_pl, M_NOWAIT | M_ZERO);
 		if (d->scrub == NULL)
 			return (ENOMEM);
 	}
@@ -611,68 +439,6 @@ pfsync_alloc_scrub_memory(struct pfsync_
 	return (0);
 }
 
-#ifndef __FreeBSD__
-void
-pfsync_state_export(struct pfsync_state *sp, struct pf_state *st)
-{
-	bzero(sp, sizeof(struct pfsync_state));
-
-	/* copy from state key */
-	sp->key[PF_SK_WIRE].addr[0] = st->key[PF_SK_WIRE]->addr[0];
-	sp->key[PF_SK_WIRE].addr[1] = st->key[PF_SK_WIRE]->addr[1];
-	sp->key[PF_SK_WIRE].port[0] = st->key[PF_SK_WIRE]->port[0];
-	sp->key[PF_SK_WIRE].port[1] = st->key[PF_SK_WIRE]->port[1];
-	sp->key[PF_SK_STACK].addr[0] = st->key[PF_SK_STACK]->addr[0];
-	sp->key[PF_SK_STACK].addr[1] = st->key[PF_SK_STACK]->addr[1];
-	sp->key[PF_SK_STACK].port[0] = st->key[PF_SK_STACK]->port[0];
-	sp->key[PF_SK_STACK].port[1] = st->key[PF_SK_STACK]->port[1];
-	sp->proto = st->key[PF_SK_WIRE]->proto;
-	sp->af = st->key[PF_SK_WIRE]->af;
-
-	/* copy from state */
-	strlcpy(sp->ifname, st->kif->pfik_name, sizeof(sp->ifname));
-	bcopy(&st->rt_addr, &sp->rt_addr, sizeof(sp->rt_addr));
-	sp->creation = htonl(time_uptime - st->creation);
-	sp->expire = pf_state_expires(st);
-	if (sp->expire <= time_second)
-		sp->expire = htonl(0);
-	else
-		sp->expire = htonl(sp->expire - time_second);
-
-	sp->direction = st->direction;
-	sp->log = st->log;
-	sp->timeout = st->timeout;
-	sp->state_flags = st->state_flags;
-	if (st->src_node)
-		sp->sync_flags |= PFSYNC_FLAG_SRCNODE;
-	if (st->nat_src_node)
-		sp->sync_flags |= PFSYNC_FLAG_NATSRCNODE;
-
-	bcopy(&st->id, &sp->id, sizeof(sp->id));
-	sp->creatorid = st->creatorid;
-	pf_state_peer_hton(&st->src, &sp->src);
-	pf_state_peer_hton(&st->dst, &sp->dst);
-
-	if (st->rule.ptr == NULL)
-		sp->rule = htonl(-1);
-	else
-		sp->rule = htonl(st->rule.ptr->nr);
-	if (st->anchor.ptr == NULL)
-		sp->anchor = htonl(-1);
-	else
-		sp->anchor = htonl(st->anchor.ptr->nr);
-	if (st->nat_rule.ptr == NULL)
-		sp->nat_rule = htonl(-1);
-	else
-		sp->nat_rule = htonl(st->nat_rule.ptr->nr);
-
-	pf_state_counter_hton(st->packets[0], sp->packets[0]);
-	pf_state_counter_hton(st->packets[1], sp->packets[1]);
-	pf_state_counter_hton(st->bytes[0], sp->bytes[0]);
-	pf_state_counter_hton(st->bytes[1], sp->bytes[1]);
-
-}
-#endif
 
 int
 pfsync_state_import(struct pfsync_state *sp, u_int8_t flags)
@@ -684,24 +450,16 @@ pfsync_state_import(struct pfsync_state 
 	int pool_flags;
 	int error;
 
-#ifdef __FreeBSD__
 	PF_LOCK_ASSERT();
 
 	if (sp->creatorid == 0 && V_pf_status.debug >= PF_DEBUG_MISC) {
-#else
-	if (sp->creatorid == 0 && pf_status.debug >= PF_DEBUG_MISC) {
-#endif
 		printf("pfsync_state_import: invalid creator id:"
 		    " %08x\n", ntohl(sp->creatorid));
 		return (EINVAL);
 	}
 
 	if ((kif = pfi_kif_get(sp->ifname)) == NULL) {
-#ifdef __FreeBSD__
 		if (V_pf_status.debug >= PF_DEBUG_MISC)
-#else
-		if (pf_status.debug >= PF_DEBUG_MISC)
-#endif
 			printf("pfsync_state_import: "
 			    "unknown interface: %s\n", sp->ifname);
 		if (flags & PFSYNC_SI_IOCTL)
@@ -719,32 +477,18 @@ pfsync_state_import(struct pfsync_state 
 		r = pf_main_ruleset.rules[
 		    PF_RULESET_FILTER].active.ptr_array[ntohl(sp->rule)];
 	else
-#ifdef __FreeBSD__
 		r = &V_pf_default_rule;
-#else
-		r = &pf_default_rule;
-#endif
 
 	if ((r->max_states && r->states_cur >= r->max_states))
 		goto cleanup;
 
-#ifdef __FreeBSD__
-	if (flags & PFSYNC_SI_IOCTL)
-		pool_flags = PR_WAITOK | PR_ZERO;
-	else
-		pool_flags = PR_NOWAIT | PR_ZERO;
-
-	if ((st = pool_get(&V_pf_state_pl, pool_flags)) == NULL)
-		goto cleanup;
-#else
 	if (flags & PFSYNC_SI_IOCTL)
-		pool_flags = PR_WAITOK | PR_LIMITFAIL | PR_ZERO;
+		pool_flags = M_WAITOK | M_ZERO;
 	else
-		pool_flags = PR_LIMITFAIL | PR_ZERO;
+		pool_flags = M_NOWAIT | M_ZERO;
 
-	if ((st = pool_get(&pf_state_pl, pool_flags)) == NULL)
+	if ((st = uma_zalloc(V_pf_state_pl, pool_flags)) == NULL)
 		goto cleanup;
-#endif
 
 	if ((skw = pf_alloc_state_key(pool_flags)) == NULL)
 		goto cleanup;
@@ -837,49 +581,26 @@ cleanup:
 	error = ENOMEM;
 	if (skw == sks)
 		sks = NULL;
-#ifdef __FreeBSD__
-	if (skw != NULL)
-		pool_put(&V_pf_state_key_pl, skw);
-	if (sks != NULL)
-		pool_put(&V_pf_state_key_pl, sks);
-#else
 	if (skw != NULL)
-		pool_put(&pf_state_key_pl, skw);
+		uma_zfree(V_pf_state_key_pl, skw);
 	if (sks != NULL)
-		pool_put(&pf_state_key_pl, sks);
-#endif
+		uma_zfree(V_pf_state_key_pl, sks);
 
 cleanup_state:	/* pf_state_insert frees the state keys */
 	if (st) {
-#ifdef __FreeBSD__
-		if (st->dst.scrub)
-			pool_put(&V_pf_state_scrub_pl, st->dst.scrub);
-		if (st->src.scrub)
-			pool_put(&V_pf_state_scrub_pl, st->src.scrub);
-		pool_put(&V_pf_state_pl, st);
-#else
 		if (st->dst.scrub)
-			pool_put(&pf_state_scrub_pl, st->dst.scrub);
+			uma_zfree(V_pf_state_scrub_pl, st->dst.scrub);
 		if (st->src.scrub)
-			pool_put(&pf_state_scrub_pl, st->src.scrub);
-		pool_put(&pf_state_pl, st);
-#endif
+			uma_zfree(V_pf_state_scrub_pl, st->src.scrub);
+		uma_zfree(V_pf_state_pl, st);
 	}
 	return (error);
 }
 
 void
-#ifdef __FreeBSD__
 pfsync_input(struct mbuf *m, __unused int off)
-#else
-pfsync_input(struct mbuf *m, ...)
-#endif
 {
-#ifdef __FreeBSD__
 	struct pfsync_softc *sc = V_pfsyncif;
-#else
-	struct pfsync_softc *sc = pfsyncif;
-#endif
 	struct pfsync_pkt pkt;
 	struct ip *ip = mtod(m, struct ip *);
 	struct pfsync_header *ph;
@@ -891,11 +612,7 @@ pfsync_input(struct mbuf *m, ...)
 	V_pfsyncstats.pfsyncs_ipackets++;
 
 	/* verify that we have a sync interface configured */
-#ifdef __FreeBSD__
 	if (!sc || !sc->sc_sync_if || !V_pf_status.running)
-#else
-	if (!sc || !sc->sc_sync_if || !pf_status.running)
-#endif
 		goto done;
 
 	/* verify that the packet came in on the right interface */
@@ -904,13 +621,8 @@ pfsync_input(struct mbuf *m, ...)
 		goto done;
 	}
 
-#ifdef __FreeBSD__
 	sc->sc_ifp->if_ipackets++;
 	sc->sc_ifp->if_ibytes += m->m_pkthdr.len;
-#else
-	sc->sc_if.if_ipackets++;
-	sc->sc_if.if_ibytes += m->m_pkthdr.len;
-#endif
 	/* verify that the IP TTL is 255. */
 	if (ip->ip_ttl != PFSYNC_DFLTTL) {
 		V_pfsyncstats.pfsyncs_badttl++;
@@ -950,11 +662,7 @@ pfsync_input(struct mbuf *m, ...)
 	pkt.src = ip->ip_src;
 	pkt.flags = 0;
 
-#ifdef __FreeBSD__
 	if (!bcmp(&ph->pfcksum, &V_pf_status.pf_chksum, PF_MD5_DIGEST_LENGTH))
-#else
-	if (!bcmp(&ph->pfcksum, &pf_status.pf_chksum, PF_MD5_DIGEST_LENGTH))
-#endif
 		pkt.flags |= PFSYNC_SI_CKSUM;
 
 	offset += sizeof(*ph);
@@ -991,7 +699,6 @@ pfsync_in_clr(struct pfsync_pkt *pkt, st
 	struct pf_state_key *sk, *nextsk;
 	struct pf_state_item *si;
 	u_int32_t creatorid;
-	int s;
 
 	mp = m_pulldown(m, offset, len, &offp);
 	if (mp == NULL) {
@@ -1000,23 +707,14 @@ pfsync_in_clr(struct pfsync_pkt *pkt, st
 	}
 	clr = (struct pfsync_clr *)(mp->m_data + offp);
 
-	s = splsoftnet();
-#ifdef __FreeBSD__
 	PF_LOCK();
-#endif
 	for (i = 0; i < count; i++) {
 		creatorid = clr[i].creatorid;
 

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***


More information about the svn-src-projects mailing list