source: rtems-libbsd/contrib/pf/rtems/freebsd/net/if_pflog.h @ 9a8e3e0

4.1155-freebsd-126-freebsd-12freebsd-9.3
Last change on this file since 9a8e3e0 was 9a8e3e0, checked in by Joel Sherrill <joel.sherrill@…>, on 03/08/12 at 14:17:55

Revert move of contrib until more sorted out

  • Property mode set to 100644
File size: 3.1 KB
Line 
1/* $FreeBSD$ */
2/* $OpenBSD: if_pflog.h,v 1.14 2006/10/25 11:27:01 henning Exp $ */
3/*
4 * Copyright 2001 Niels Provos <provos@citi.umich.edu>
5 * All rights reserved.
6 *
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
9 * are met:
10 * 1. Redistributions of source code must retain the above copyright
11 *    notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 *    notice, this list of conditions and the following disclaimer in the
14 *    documentation and/or other materials provided with the distribution.
15 *
16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
17 * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
18 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
19 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
20 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
21 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
22 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
23 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
25 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28#ifndef _NET_IF_PFLOG_HH_
29#define _NET_IF_PFLOG_HH_
30
31#define PFLOGIFS_MAX    16
32
33#ifdef _KERNEL
34struct pflog_softc {
35#ifdef __FreeBSD__
36        struct ifnet            *sc_ifp;        /* the interface pointer */
37#else
38        struct ifnet            sc_if;          /* the interface */
39#endif
40        int                     sc_unit;
41        LIST_ENTRY(pflog_softc) sc_list;
42};
43#endif /* _KERNEL */
44
45#define PFLOG_RULESET_NAME_SIZE 16
46
47struct pfloghdr {
48        u_int8_t        length;
49        sa_family_t     af;
50        u_int8_t        action;
51        u_int8_t        reason;
52        char            ifname[IFNAMSIZ];
53        char            ruleset[PFLOG_RULESET_NAME_SIZE];
54        u_int32_t       rulenr;
55        u_int32_t       subrulenr;
56        uid_t           uid;
57        pid_t           pid;
58        uid_t           rule_uid;
59        pid_t           rule_pid;
60        u_int8_t        dir;
61        u_int8_t        pad[3];
62};
63
64#define PFLOG_HDRLEN            sizeof(struct pfloghdr)
65/* minus pad, also used as a signature */
66#define PFLOG_REAL_HDRLEN       offsetof(struct pfloghdr, pad)
67
68/* XXX remove later when old format logs are no longer needed */
69struct old_pfloghdr {
70        u_int32_t af;
71        char ifname[IFNAMSIZ];
72        short rnr;
73        u_short reason;
74        u_short action;
75        u_short dir;
76};
77#define OLD_PFLOG_HDRLEN        sizeof(struct old_pfloghdr)
78
79#ifdef _KERNEL
80
81#ifdef __FreeBSD__
82struct pf_rule;
83struct pf_ruleset;
84struct pfi_kif;
85struct pf_pdesc;
86
87typedef int pflog_packet_t(struct pfi_kif *, struct mbuf *, sa_family_t,
88    u_int8_t, u_int8_t, struct pf_rule *, struct pf_rule *,
89    struct pf_ruleset *, struct pf_pdesc *);
90extern pflog_packet_t *pflog_packet_ptr;
91#define PFLOG_PACKET(i,x,a,b,c,d,e,f,g,h) do {  \
92        if (pflog_packet_ptr != NULL)           \
93        pflog_packet_ptr(i,a,b,c,d,e,f,g,h);    \
94} while (0)
95#else /* ! __FreeBSD__ */
96#if NPFLOG > 0
97#define PFLOG_PACKET(i,x,a,b,c,d,e,f,g,h) pflog_packet(i,a,b,c,d,e,f,g,h)
98#else
99#define PFLOG_PACKET(i,x,a,b,c,d,e,f,g,h) ((void)0)
100#endif /* NPFLOG > 0 */
101#endif /* __FreeBSD__ */
102#endif /* _KERNEL */
103#endif /* _NET_IF_PFLOG_HH_ */
Note: See TracBrowser for help on using the repository browser.