home *** CD-ROM | disk | FTP | other *** search
- /* $KAME: natpt_log.h,v 1.5 2000/03/25 07:23:55 sumikawa Exp $ */
-
- /*
- * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- * 3. Neither the name of the project nor the names of its contributors
- * may be used to endorse or promote products derived from this software
- * without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
- * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
- * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
- * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
- * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
- * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
- * SUCH DAMAGE.
- */
-
- #ifndef _NATPT_LOG_H
- #define _NATPT_LOG_H
-
-
- #if (defined(KERNEL)) || (defined(_KERNEL))
-
- /* Header at beginning of logged packet. */
-
- struct l_pkt
- {
- char ifName[IFNAMSIZ];
- char __buf[4];
- };
-
-
- /* Header at beginning of active Transration Table */
-
- struct l_att
- {
- u_int _stub;
- #define ATT_ALLOC (0)
- #define ATT_REMOVE (1)
- #define ATT_FASTEN (2)
- #define ATT_UNFASTEN (3)
- #define ATT_REGIST (4)
- caddr_t _addr;
- #if 0
- struct _aTT _att;
- struct _tcpstate _state;
- #endif
- };
- #endif /* defined(KERNEL) */
-
-
- /* Header at beginning of each lbuf. */
-
- #ifndef IN6ADDRSZ
- #define IN6ADDRSZ 16 /* IPv6 T_AAAA */
- #define INT16SZ 2 /* for systems without 16-bit ints */
- #endif /* !defined(IN6ADDRSZ) */
-
- #define LBFSZ (MHLEN - sizeof(struct l_hdr)) /* LBUF payload within MBUF */
- #define MSGSZ (LBFSZ - IN6ADDRSZ) /* max message size */
-
-
- enum
- {
- LOG_MSG,
- LOG_MBUF,
- LOG_IP4,
- LOG_IP6,
- LOG_IN4ADDR,
- LOG_IN6ADDR,
- LOG_CSLOT,
- LOG_TSLOT,
- LOG_RULE
- };
-
-
- struct l_hdr
- {
- u_short lh_type; /* Type of data in this lbuf */
- u_short lh_pri; /* Priorities of thie message */
- size_t lh_size; /* Amount of data in this lbuf */
- u_long lh_sec; /* Timestamp in second */
- u_long lh_usec; /* Timestamp in microsecond */
- };
-
-
- struct l_addr
- {
- char in6addr[IN6ADDRSZ];
- char __msg[MSGSZ];
- };
-
-
- /* Definition of whole lbuf */
-
- struct lbuf
- {
- struct l_hdr l_hdr;
- union
- {
- #ifdef _KERNEL
- struct l_pkt l_pkt;
- struct l_att l_att;
- #endif /* defined(_KERNEL) */
- struct l_addr __laddr;
- char __buf[LBFSZ];
- } l_dat;
- };
-
-
- #define l_addr l_dat.__laddr
- #define l_msg l_dat.__laddr.__msg
-
-
- #endif /* !_NATPT_LOG_H */
-