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