summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjulian <julian@FreeBSD.org>1999-10-25 22:36:39 +0000
committerjulian <julian@FreeBSD.org>1999-10-25 22:36:39 +0000
commitf963ed1eaf88e7fb4830899bc81aa767ab87be90 (patch)
tree77357d882e6d08181471370e3fec161cbab8619e
parent50524ff0ef3d318788225449aedad8cdca684d26 (diff)
downloadFreeBSD-src-f963ed1eaf88e7fb4830899bc81aa767ab87be90.zip
FreeBSD-src-f963ed1eaf88e7fb4830899bc81aa767ab87be90.tar.gz
Bring ng_iface up-to-date with what has happenned to the bpf code.
-rw-r--r--sys/netgraph/ng_iface.c47
1 files changed, 17 insertions, 30 deletions
diff --git a/sys/netgraph/ng_iface.c b/sys/netgraph/ng_iface.c
index d487749..d849be1 100644
--- a/sys/netgraph/ng_iface.c
+++ b/sys/netgraph/ng_iface.c
@@ -103,12 +103,7 @@
#include <netns/ns_if.h>
#endif
-#include "bpfilter.h"
-
-#if NBPFILTER > 0
#include <net/bpf.h>
-#include <net/bpfdesc.h>
-#endif
/* This struct describes one address family */
struct iffam {
@@ -135,7 +130,7 @@ const static struct iffam gFamilies[] = {
NG_IFACE_HOOK_INET,
AF_INET,
NETISR_NONE,
- ip_input
+ { ip_input }
},
#endif
#ifdef NETATALK
@@ -143,7 +138,7 @@ const static struct iffam gFamilies[] = {
NG_IFACE_HOOK_ATALK,
AF_APPLETALK,
NETISR_ATALK,
- &atintrq2
+ { &atintrq2 }
},
#endif
#ifdef IPX
@@ -151,7 +146,7 @@ const static struct iffam gFamilies[] = {
NG_IFACE_HOOK_IPX,
AF_IPX,
NETISR_IPX,
- &ipxintrq
+ { &ipxintrq }
},
#endif
#ifdef NS
@@ -159,7 +154,7 @@ const static struct iffam gFamilies[] = {
NG_IFACE_HOOK_NS,
AF_NS,
NETISR_NS,
- &nsintrq
+ { &nsintrq }
},
#endif
};
@@ -179,9 +174,7 @@ static void ng_iface_start(struct ifnet *ifp);
static int ng_iface_ioctl(struct ifnet *ifp, u_long cmd, caddr_t data);
static int ng_iface_output(struct ifnet *ifp, struct mbuf *m0,
struct sockaddr *dst, struct rtentry *rt0);
-#if NBPFILTER > 0
static void ng_iface_bpftap(struct ifnet *ifp, struct mbuf *m, u_int af);
-#endif
#ifdef DEBUG
static void ng_iface_print_ioctl(struct ifnet *ifp, int cmd, caddr_t data);
#endif
@@ -373,9 +366,7 @@ ng_iface_output(struct ifnet *ifp, struct mbuf *m,
}
/* Berkeley packet filter */
-#if NBPFILTER > 0
ng_iface_bpftap(ifp, m, dst->sa_family);
-#endif
/* Check address family to determine hook (if known) */
if (iffam == NULL) {
@@ -409,7 +400,6 @@ ng_iface_start(struct ifnet *ifp)
printf("%s%d: %s called?", ifp->if_name, ifp->if_unit, __FUNCTION__);
}
-#if NBPFILTER > 0
/*
* Flash a packet by the BPF (requires prepending 4 byte AF header)
* Note the phoney mbuf; this is OK because BPF treats it read-only.
@@ -419,20 +409,21 @@ ng_iface_bpftap(struct ifnet *ifp, struct mbuf *m, u_int af)
{
struct mbuf m2;
- if (af == AF_UNSPEC) {
- af = *(mtod(m, int *));
- m->m_len -= sizeof(int);
- m->m_pkthdr.len -= sizeof(int);
- m->m_data += sizeof(int);
+ if (ifp->if_bpf) {
+ if (af == AF_UNSPEC) {
+ af = *(mtod(m, int *));
+ m->m_len -= sizeof(int);
+ m->m_pkthdr.len -= sizeof(int);
+ m->m_data += sizeof(int);
+ }
+ if (!ifp->if_bpf)
+ return;
+ m2.m_next = m;
+ m2.m_len = 4;
+ m2.m_data = (char *) &af;
+ bpf_mtap(ifp, &m2);
}
- if (!ifp->if_bpf)
- return;
- m2.m_next = m;
- m2.m_len = 4;
- m2.m_data = (char *) &af;
- bpf_mtap(ifp, &m2);
}
-#endif /* NBPFILTER > 0 */
#ifdef DEBUG
/*
@@ -536,9 +527,7 @@ ng_iface_constructor(node_p *nodep)
/* Attach the interface */
if_attach(ifp);
-#if NBPFILTER > 0
bpfattach(ifp, DLT_NULL, sizeof(u_int));
-#endif
/* Done */
return (0);
@@ -713,10 +702,8 @@ ng_iface_rcvdata(hook_p hook, struct mbuf *m, meta_p meta)
/* Note receiving interface */
m->m_pkthdr.rcvif = ifp;
-#if NBPFILTER > 0
/* Berkeley packet filter */
ng_iface_bpftap(ifp, m, iffam->af);
-#endif
/* Ignore any meta-data */
NG_FREE_META(meta);
OpenPOWER on IntegriCloud