1 /* $NetBSD: udp6_var.h,v 1.11 2002/05/12 20:33:52 matt Exp $ */ 2 /* $KAME: udp6_var.h,v 1.11 2000/06/05 00:14:31 itojun 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 /* 34 * Copyright (c) 1982, 1986, 1989, 1993 35 * The Regents of the University of California. All rights reserved. 36 * 37 * Redistribution and use in source and binary forms, with or without 38 * modification, are permitted provided that the following conditions 39 * are met: 40 * 1. Redistributions of source code must retain the above copyright 41 * notice, this list of conditions and the following disclaimer. 42 * 2. Redistributions in binary form must reproduce the above copyright 43 * notice, this list of conditions and the following disclaimer in the 44 * documentation and/or other materials provided with the distribution. 45 * 3. All advertising materials mentioning features or use of this software 46 * must display the following acknowledgement: 47 * This product includes software developed by the University of 48 * California, Berkeley and its contributors. 49 * 4. Neither the name of the University nor the names of its contributors 50 * may be used to endorse or promote products derived from this software 51 * without specific prior written permission. 52 * 53 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 54 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 55 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 56 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 57 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 58 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 59 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 60 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 61 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 62 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 63 * SUCH DAMAGE. 64 * 65 * @(#)udp_var.h 8.1 (Berkeley) 6/10/93 66 */ 67 68 #ifndef _NETINET6_UDP6_VAR_H_ 69 #define _NETINET6_UDP6_VAR_H_ 70 71 /* 72 * UDP Kernel structures and variables. 73 */ 74 struct udp6stat { 75 /* input statistics: */ 76 u_quad_t udp6s_ipackets; /* total input packets */ 77 u_quad_t udp6s_hdrops; /* packet shorter than header */ 78 u_quad_t udp6s_badsum; /* checksum error */ 79 u_quad_t udp6s_nosum; /* no checksum */ 80 u_quad_t udp6s_badlen; /* data length larger than packet */ 81 u_quad_t udp6s_noport; /* no socket on port */ 82 u_quad_t udp6s_noportmcast; /* of above, arrived as broadcast */ 83 u_quad_t udp6s_fullsock; /* not delivered, input socket full */ 84 u_quad_t udp6ps_pcbcachemiss; /* input packets missing pcb cache */ 85 /* output statistics: */ 86 u_quad_t udp6s_opackets; /* total output packets */ 87 }; 88 89 /* 90 * Names for UDP sysctl objects 91 */ 92 #define UDP6CTL_SENDSPACE 1 /* default send buffer */ 93 #define UDP6CTL_RECVSPACE 2 /* default recv buffer */ 94 #define UDP6CTL_MAXID 3 95 96 #define UDP6CTL_NAMES { \ 97 { 0, 0 }, \ 98 { "sendspace", CTLTYPE_INT }, \ 99 { "recvspace", CTLTYPE_INT }, \ 100 } 101 102 #ifdef _KERNEL 103 extern struct in6pcb udb6; 104 extern struct udp6stat udp6stat; 105 106 void udp6_ctlinput __P((int, struct sockaddr *, void *)); 107 void udp6_init __P((void)); 108 int udp6_input __P((struct mbuf **, int *, int)); 109 int udp6_output __P((struct in6pcb *, struct mbuf *, struct mbuf *, 110 struct mbuf *, struct proc *)); 111 int udp6_sysctl __P((int *, u_int, void *, size_t *, void *, size_t)); 112 int udp6_usrreq __P((struct socket *, 113 int, struct mbuf *, struct mbuf *, struct mbuf *, 114 struct proc *)); 115 #endif /* _KERNEL */ 116 117 #endif /* _NETINET6_UDP6_VAR_H_ */ 118