svn commit: r232043 - projects/pf/head/sys/contrib/pf/net
Ermal Luçi
eri at freebsd.org
Fri Feb 24 16:58:33 UTC 2012
Any reason behind doing this work?
On Thu, Feb 23, 2012 at 10:18 AM, Gleb Smirnoff <glebius at freebsd.org> wrote:
> 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 ***
--
Ermal
More information about the svn-src-projects
mailing list