Deleted Added
full compact
if_pflog.c (241394) if_pflog.c (241610)
1/* $OpenBSD: if_pflog.c,v 1.26 2007/10/18 21:58:18 mpf Exp $ */
2/*
3 * The authors of this code are John Ioannidis (ji@tla.org),
4 * Angelos D. Keromytis (kermit@csd.uch.gr) and
5 * Niels Provos (provos@physnet.uni-hamburg.de).
6 *
7 * This code was written by John Ioannidis for BSD/OS in Athens, Greece,
8 * in November 1995.

--- 20 unchanged lines hidden (view full) ---

29 * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR
30 * IMPLIED WARRANTY. IN PARTICULAR, NONE OF THE AUTHORS MAKES ANY
31 * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE
32 * MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR
33 * PURPOSE.
34 */
35
36#include <sys/cdefs.h>
1/* $OpenBSD: if_pflog.c,v 1.26 2007/10/18 21:58:18 mpf Exp $ */
2/*
3 * The authors of this code are John Ioannidis (ji@tla.org),
4 * Angelos D. Keromytis (kermit@csd.uch.gr) and
5 * Niels Provos (provos@physnet.uni-hamburg.de).
6 *
7 * This code was written by John Ioannidis for BSD/OS in Athens, Greece,
8 * in November 1995.

--- 20 unchanged lines hidden (view full) ---

29 * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR
30 * IMPLIED WARRANTY. IN PARTICULAR, NONE OF THE AUTHORS MAKES ANY
31 * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE
32 * MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR
33 * PURPOSE.
34 */
35
36#include <sys/cdefs.h>
37__FBSDID("$FreeBSD: head/sys/netpfil/pf/if_pflog.c 241394 2012-10-10 08:36:38Z kevlo $");
37__FBSDID("$FreeBSD: head/sys/netpfil/pf/if_pflog.c 241610 2012-10-16 13:37:54Z glebius $");
38
39#include "opt_inet.h"
40#include "opt_inet6.h"
41#include "opt_bpf.h"
42#include "opt_pf.h"
43
44#include <sys/param.h>
45#include <sys/kernel.h>

--- 37 unchanged lines hidden (view full) ---

83
84static int pflogoutput(struct ifnet *, struct mbuf *, struct sockaddr *,
85 struct route *);
86static void pflogattach(int);
87static int pflogioctl(struct ifnet *, u_long, caddr_t);
88static void pflogstart(struct ifnet *);
89static int pflog_clone_create(struct if_clone *, int, caddr_t);
90static void pflog_clone_destroy(struct ifnet *);
38
39#include "opt_inet.h"
40#include "opt_inet6.h"
41#include "opt_bpf.h"
42#include "opt_pf.h"
43
44#include <sys/param.h>
45#include <sys/kernel.h>

--- 37 unchanged lines hidden (view full) ---

83
84static int pflogoutput(struct ifnet *, struct mbuf *, struct sockaddr *,
85 struct route *);
86static void pflogattach(int);
87static int pflogioctl(struct ifnet *, u_long, caddr_t);
88static void pflogstart(struct ifnet *);
89static int pflog_clone_create(struct if_clone *, int, caddr_t);
90static void pflog_clone_destroy(struct ifnet *);
91static struct if_clone *pflog_cloner;
91
92
92IFC_SIMPLE_DECLARE(pflog, 1);
93static const char pflogname[] = "pflog";
93
94struct ifnet *pflogifs[PFLOGIFS_MAX]; /* for fast access */
95
96static void
97pflogattach(int npflog)
98{
99 int i;
100 for (i = 0; i < PFLOGIFS_MAX; i++)
101 pflogifs[i] = NULL;
94
95struct ifnet *pflogifs[PFLOGIFS_MAX]; /* for fast access */
96
97static void
98pflogattach(int npflog)
99{
100 int i;
101 for (i = 0; i < PFLOGIFS_MAX; i++)
102 pflogifs[i] = NULL;
102 if_clone_attach(&pflog_cloner);
103 pflog_cloner = if_clone_simple(pflogname, pflog_clone_create,
104 pflog_clone_destroy, 1);
103}
104
105static int
106pflog_clone_create(struct if_clone *ifc, int unit, caddr_t param)
107{
108 struct ifnet *ifp;
109
110 if (unit >= PFLOGIFS_MAX)
111 return (EINVAL);
112
113 ifp = if_alloc(IFT_PFLOG);
114 if (ifp == NULL) {
115 return (ENOSPC);
116 }
105}
106
107static int
108pflog_clone_create(struct if_clone *ifc, int unit, caddr_t param)
109{
110 struct ifnet *ifp;
111
112 if (unit >= PFLOGIFS_MAX)
113 return (EINVAL);
114
115 ifp = if_alloc(IFT_PFLOG);
116 if (ifp == NULL) {
117 return (ENOSPC);
118 }
117 if_initname(ifp, ifc->ifc_name, unit);
119 if_initname(ifp, pflogname, unit);
118 ifp->if_mtu = PFLOGMTU;
119 ifp->if_ioctl = pflogioctl;
120 ifp->if_output = pflogoutput;
121 ifp->if_start = pflogstart;
122 ifp->if_snd.ifq_maxlen = ifqmaxlen;
123 ifp->if_hdrlen = PFLOG_HDRLEN;
124 if_attach(ifp);
125

--- 140 unchanged lines hidden (view full) ---

266 PF_RULES_WLOCK();
267 pflog_packet_ptr = pflog_packet;
268 PF_RULES_WUNLOCK();
269 break;
270 case MOD_UNLOAD:
271 PF_RULES_WLOCK();
272 pflog_packet_ptr = NULL;
273 PF_RULES_WUNLOCK();
120 ifp->if_mtu = PFLOGMTU;
121 ifp->if_ioctl = pflogioctl;
122 ifp->if_output = pflogoutput;
123 ifp->if_start = pflogstart;
124 ifp->if_snd.ifq_maxlen = ifqmaxlen;
125 ifp->if_hdrlen = PFLOG_HDRLEN;
126 if_attach(ifp);
127

--- 140 unchanged lines hidden (view full) ---

268 PF_RULES_WLOCK();
269 pflog_packet_ptr = pflog_packet;
270 PF_RULES_WUNLOCK();
271 break;
272 case MOD_UNLOAD:
273 PF_RULES_WLOCK();
274 pflog_packet_ptr = NULL;
275 PF_RULES_WUNLOCK();
274 if_clone_detach(&pflog_cloner);
276 if_clone_detach(pflog_cloner);
275 break;
276 default:
277 error = EINVAL;
278 break;
279 }
280
281 return error;
282}
283
277 break;
278 default:
279 error = EINVAL;
280 break;
281 }
282
283 return error;
284}
285
284static moduledata_t pflog_mod = { "pflog", pflog_modevent, 0 };
286static moduledata_t pflog_mod = { pflogname, pflog_modevent, 0 };
285
286#define PFLOG_MODVER 1
287
288DECLARE_MODULE(pflog, pflog_mod, SI_SUB_PSEUDO, SI_ORDER_ANY);
289MODULE_VERSION(pflog, PFLOG_MODVER);
290MODULE_DEPEND(pflog, pf, PF_MODVER, PF_MODVER, PF_MODVER);
287
288#define PFLOG_MODVER 1
289
290DECLARE_MODULE(pflog, pflog_mod, SI_SUB_PSEUDO, SI_ORDER_ANY);
291MODULE_VERSION(pflog, PFLOG_MODVER);
292MODULE_DEPEND(pflog, pf, PF_MODVER, PF_MODVER, PF_MODVER);