root/net/if_pflog.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


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

/* [<][>][^][v][top][bottom][index][help] */