[BACK]Return to ip_encap.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / netinet

Annotation of src/sys/netinet/ip_encap.h, Revision 1.1.10.1

1.1.10.1! thorpej     1: /*     $NetBSD: ip_encap.h,v 1.2 2001/12/21 06:30:43 itojun Exp $      */
1.1       itojun      2: /*     $KAME: ip_encap.h,v 1.7 2000/03/25 07:23:37 sumikawa Exp $      */
                      3:
                      4: /*
                      5:  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
                      6:  * All rights reserved.
                      7:  *
                      8:  * Redistribution and use in source and binary forms, with or without
                      9:  * modification, are permitted provided that the following conditions
                     10:  * are met:
                     11:  * 1. Redistributions of source code must retain the above copyright
                     12:  *    notice, this list of conditions and the following disclaimer.
                     13:  * 2. Redistributions in binary form must reproduce the above copyright
                     14:  *    notice, this list of conditions and the following disclaimer in the
                     15:  *    documentation and/or other materials provided with the distribution.
                     16:  * 3. Neither the name of the project nor the names of its contributors
                     17:  *    may be used to endorse or promote products derived from this software
                     18:  *    without specific prior written permission.
                     19:  *
                     20:  * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
                     21:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
                     22:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
                     23:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
                     24:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
                     25:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
                     26:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
                     27:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
                     28:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
                     29:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
                     30:  * SUCH DAMAGE.
                     31:  */
                     32:
                     33: #ifndef _NETINET_IP_ENCAP_H_
                     34: #define _NETINET_IP_ENCAP_H_
                     35:
                     36: #ifdef _KERNEL
                     37:
1.1.10.1! thorpej    38: #ifndef RNF_NORMAL
        !            39: #include <net/radix.h>
        !            40: #endif
        !            41:
1.1       itojun     42: struct encaptab {
1.1.10.1! thorpej    43:        struct radix_node nodes[2];
1.1       itojun     44:        LIST_ENTRY(encaptab) chain;
                     45:        int af;
                     46:        int proto;                      /* -1: don't care, I'll check myself */
1.1.10.1! thorpej    47:        struct sockaddr *addrpack;      /* malloc'ed, for radix lookup */
        !            48:        struct sockaddr *maskpack;      /* ditto */
        !            49:        struct sockaddr *src;           /* my addr */
        !            50:        struct sockaddr *srcmask;
        !            51:        struct sockaddr *dst;           /* remote addr */
        !            52:        struct sockaddr *dstmask;
1.1       itojun     53:        int (*func) __P((const struct mbuf *, int, int, void *));
                     54:        const struct protosw *psw;      /* only pr_input will be used */
                     55:        void *arg;                      /* passed via m->m_pkthdr.aux */
                     56: };
                     57:
                     58: void   encap_init __P((void));
                     59: void   encap4_input __P((struct mbuf *, ...));
                     60: int    encap6_input __P((struct mbuf **, int *, int));
                     61: const struct encaptab *encap_attach __P((int, int, const struct sockaddr *,
                     62:        const struct sockaddr *, const struct sockaddr *,
                     63:        const struct sockaddr *, const struct protosw *, void *));
                     64: const struct encaptab *encap_attach_func __P((int, int,
                     65:        int (*) __P((const struct mbuf *, int, int, void *)),
                     66:        const struct protosw *, void *));
1.1.10.1! thorpej    67: void   encap6_ctlinput __P((int, struct sockaddr *, void *));
1.1       itojun     68: int    encap_detach __P((const struct encaptab *));
                     69: void   *encap_getarg __P((struct mbuf *));
                     70: #endif
                     71:
                     72: #endif /*_NETINET_IP_ENCAP_H_*/

CVSweb <webmaster@jp.NetBSD.org>