Home | History | Annotate | Line # | Download | only in netinet6
udp6_var.h revision 1.3.8.1
      1  1.3.8.1  wrstuden /*	$NetBSD: udp6_var.h,v 1.3.8.1 1999/12/27 18:36:28 wrstuden Exp $	*/
      2      1.3   thorpej 
      3      1.2    itojun /*
      4      1.2    itojun  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
      5      1.2    itojun  * All rights reserved.
      6      1.2    itojun  *
      7      1.2    itojun  * Redistribution and use in source and binary forms, with or without
      8      1.2    itojun  * modification, are permitted provided that the following conditions
      9      1.2    itojun  * are met:
     10      1.2    itojun  * 1. Redistributions of source code must retain the above copyright
     11      1.2    itojun  *    notice, this list of conditions and the following disclaimer.
     12      1.2    itojun  * 2. Redistributions in binary form must reproduce the above copyright
     13      1.2    itojun  *    notice, this list of conditions and the following disclaimer in the
     14      1.2    itojun  *    documentation and/or other materials provided with the distribution.
     15      1.2    itojun  * 3. Neither the name of the project nor the names of its contributors
     16      1.2    itojun  *    may be used to endorse or promote products derived from this software
     17      1.2    itojun  *    without specific prior written permission.
     18      1.2    itojun  *
     19      1.2    itojun  * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
     20      1.2    itojun  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     21      1.2    itojun  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     22      1.2    itojun  * ARE DISCLAIMED.  IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE
     23      1.2    itojun  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     24      1.2    itojun  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     25      1.2    itojun  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     26      1.2    itojun  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     27      1.2    itojun  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     28      1.2    itojun  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     29      1.2    itojun  * SUCH DAMAGE.
     30      1.2    itojun  */
     31      1.2    itojun 
     32      1.2    itojun /*
     33      1.2    itojun  * Copyright (c) 1982, 1986, 1989, 1993
     34      1.2    itojun  *	The Regents of the University of California.  All rights reserved.
     35      1.2    itojun  *
     36      1.2    itojun  * Redistribution and use in source and binary forms, with or without
     37      1.2    itojun  * modification, are permitted provided that the following conditions
     38      1.2    itojun  * are met:
     39      1.2    itojun  * 1. Redistributions of source code must retain the above copyright
     40      1.2    itojun  *    notice, this list of conditions and the following disclaimer.
     41      1.2    itojun  * 2. Redistributions in binary form must reproduce the above copyright
     42      1.2    itojun  *    notice, this list of conditions and the following disclaimer in the
     43      1.2    itojun  *    documentation and/or other materials provided with the distribution.
     44      1.2    itojun  * 3. All advertising materials mentioning features or use of this software
     45      1.2    itojun  *    must display the following acknowledgement:
     46      1.2    itojun  *	This product includes software developed by the University of
     47      1.2    itojun  *	California, Berkeley and its contributors.
     48      1.2    itojun  * 4. Neither the name of the University nor the names of its contributors
     49      1.2    itojun  *    may be used to endorse or promote products derived from this software
     50      1.2    itojun  *    without specific prior written permission.
     51      1.2    itojun  *
     52      1.2    itojun  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
     53      1.2    itojun  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
     54      1.2    itojun  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
     55      1.2    itojun  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
     56      1.2    itojun  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
     57      1.2    itojun  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
     58      1.2    itojun  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
     59      1.2    itojun  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
     60      1.2    itojun  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
     61      1.2    itojun  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
     62      1.2    itojun  * SUCH DAMAGE.
     63      1.2    itojun  *
     64      1.2    itojun  *	@(#)udp_var.h	8.1 (Berkeley) 6/10/93
     65      1.2    itojun  */
     66      1.2    itojun 
     67      1.2    itojun #ifndef _NETINET6_UDP6_VAR_H_
     68      1.2    itojun #define _NETINET6_UDP6_VAR_H_
     69      1.2    itojun 
     70      1.2    itojun /*
     71      1.2    itojun  * UDP Kernel structures and variables.
     72      1.2    itojun  */
     73      1.2    itojun struct	udp6stat {
     74      1.2    itojun 				/* input statistics: */
     75  1.3.8.1  wrstuden 	u_quad_t udp6s_ipackets;	/* total input packets */
     76  1.3.8.1  wrstuden 	u_quad_t udp6s_hdrops;		/* packet shorter than header */
     77  1.3.8.1  wrstuden 	u_quad_t udp6s_badsum;		/* checksum error */
     78  1.3.8.1  wrstuden 	u_quad_t udp6s_nosum;		/* no checksum */
     79  1.3.8.1  wrstuden 	u_quad_t udp6s_badlen;		/* data length larger than packet */
     80  1.3.8.1  wrstuden 	u_quad_t udp6s_noport;		/* no socket on port */
     81  1.3.8.1  wrstuden 	u_quad_t udp6s_noportmcast;	/* of above, arrived as broadcast */
     82  1.3.8.1  wrstuden 	u_quad_t udp6s_fullsock;	/* not delivered, input socket full */
     83  1.3.8.1  wrstuden 	u_quad_t udp6ps_pcbcachemiss;	/* input packets missing pcb cache */
     84      1.2    itojun 				/* output statistics: */
     85  1.3.8.1  wrstuden 	u_quad_t udp6s_opackets;	/* total output packets */
     86      1.2    itojun };
     87      1.2    itojun 
     88  1.3.8.1  wrstuden #if defined(__FreeBSD__) || defined(__NetBSD__)
     89      1.2    itojun /*
     90      1.2    itojun  * Names for UDP sysctl objects
     91      1.2    itojun  */
     92      1.2    itojun #define UDP6CTL_SENDMAX		1	/* default send buffer */
     93      1.2    itojun #define UDP6CTL_RECVSPACE	2	/* default recv buffer */
     94      1.2    itojun #define UDP6CTL_MAXID		3
     95      1.2    itojun 
     96      1.2    itojun #define UDP6CTL_NAMES { \
     97      1.2    itojun 	{ 0, 0 }, \
     98      1.2    itojun 	{ "sendmax", CTLTYPE_INT }, \
     99      1.2    itojun 	{ "recvspace", CTLTYPE_INT }, \
    100      1.2    itojun }
    101      1.2    itojun 
    102      1.2    itojun #define UDP6CTL_VARS { \
    103      1.2    itojun 	0, \
    104      1.2    itojun 	&udp6_sendspace, \
    105      1.2    itojun 	&udp6_recvspace, \
    106      1.2    itojun }
    107      1.2    itojun #endif /*__FreeBSD__||__NetBSD__*/
    108      1.2    itojun #ifdef __bsdi__
    109      1.2    itojun /*
    110      1.2    itojun  * Names for UDP sysctl objects
    111      1.2    itojun  */
    112      1.2    itojun #define UDP6CTL_SENDMAX		2	/* default send buffer */
    113      1.2    itojun #define UDP6CTL_RECVSPACE	3	/* default recv buffer */
    114      1.2    itojun #define UDP6CTL_STATS		4	/* statistics */
    115      1.2    itojun #define UDP6CTL_MAXID		5
    116      1.2    itojun 
    117      1.2    itojun #define UDP6CTL_NAMES { \
    118      1.2    itojun 	{ 0, 0 }, \
    119      1.2    itojun 	{ 0, 0 }, \
    120      1.2    itojun 	{ "sendmax", CTLTYPE_INT }, \
    121      1.2    itojun 	{ "recvspace", CTLTYPE_INT }, \
    122      1.2    itojun 	{ 0, 0 }, \
    123      1.2    itojun }
    124      1.2    itojun 
    125      1.2    itojun #define UDP6CTL_VARS { \
    126      1.2    itojun 	0, \
    127      1.2    itojun 	0, \
    128      1.2    itojun 	&udp6_sendspace, \
    129      1.2    itojun 	&udp6_recvspace, \
    130      1.2    itojun 	0, \
    131      1.2    itojun }
    132      1.2    itojun #endif /*__bsdi__*/
    133      1.2    itojun 
    134      1.2    itojun #ifdef _KERNEL
    135      1.2    itojun struct	in6pcb udb6;
    136      1.2    itojun struct	udp6stat udp6stat;
    137      1.2    itojun 
    138  1.3.8.1  wrstuden void	udp6_ctlinput __P((int, struct sockaddr *, void *));
    139      1.2    itojun void	udp6_init __P((void));
    140      1.2    itojun int	udp6_input __P((struct mbuf **, int *, int));
    141      1.2    itojun int	udp6_output __P((struct in6pcb *,
    142      1.2    itojun 			 struct mbuf *, struct mbuf *, struct mbuf *));
    143      1.2    itojun int	udp6_sysctl __P((int *, u_int, void *, size_t *, void *, size_t));
    144  1.3.8.1  wrstuden #if defined(__NetBSD__) || (defined(__FreeBSD__) && __FreeBSD__ >= 3)
    145  1.3.8.1  wrstuden int	udp6_usrreq __P((struct socket *,
    146  1.3.8.1  wrstuden 			 int, struct mbuf *, struct mbuf *, struct mbuf *,
    147  1.3.8.1  wrstuden 			 struct proc *));
    148  1.3.8.1  wrstuden #else
    149      1.2    itojun int	udp6_usrreq __P((struct socket *,
    150  1.3.8.1  wrstuden 			 int, struct mbuf *, struct mbuf *, struct mbuf *));
    151  1.3.8.1  wrstuden #endif
    152      1.2    itojun #endif /* _KERNEL */
    153      1.2    itojun 
    154      1.2    itojun #endif /*_NETINET6_UDP6_VAR_H_*/
    155