Project

General

Profile

Statistics
| Revision:

root / lab4 / .minix-src / include / netinet6 / udp6_var.h @ 13

History | View | Annotate | Download (5.19 KB)

1
/*        $NetBSD: udp6_var.h,v 1.28 2015/05/02 17:18:03 rtr 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. Neither the name of the University nor the names of its contributors
46
 *    may be used to endorse or promote products derived from this software
47
 *    without specific prior written permission.
48
 *
49
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
50
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
51
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
52
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
53
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
54
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
55
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
56
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
57
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
58
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
59
 * SUCH DAMAGE.
60
 *
61
 *        @(#)udp_var.h        8.1 (Berkeley) 6/10/93
62
 */
63

    
64
#ifndef _NETINET6_UDP6_VAR_H_
65
#define _NETINET6_UDP6_VAR_H_
66

    
67
/*
68
 * UDP Kernel structures and variables.
69
 */
70

    
71
#define        UDP6_STAT_IPACKETS        0        /* total input packets */
72
#define        UDP6_STAT_HDROPS        1        /* packet shorter than header */
73
#define        UDP6_STAT_BADSUM        2        /* checksum error */
74
#define        UDP6_STAT_NOSUM                3        /* no checksum */
75
#define        UDP6_STAT_BADLEN        4        /* data length larger than packet */
76
#define        UDP6_STAT_NOPORT        5        /* no socket on port */
77
#define        UDP6_STAT_NOPORTMCAST        6        /* of above, arrived as multicast */
78
#define        UDP6_STAT_FULLSOCK        7        /* not delivered, input socket full */
79
#define        UDP6_STAT_PCBCACHEMISS        8        /* input packets missing pcb cache */
80
#define        UDP6_STAT_OPACKETS        9        /* total output packets */
81

    
82
#define        UDP6_NSTATS                10
83

    
84
/*
85
 * Names for UDP6 sysctl objects
86
 */
87
#define        UDP6CTL_SENDSPACE        1        /* default send buffer */
88
#define        UDP6CTL_RECVSPACE        2        /* default recv buffer */
89
#define        UDP6CTL_LOOPBACKCKSUM        3        /* do UDP checksum on loopback? */
90
#define        UDP6CTL_STATS                4        /* udp6 statistics */
91
#define        UDP6CTL_MAXID                5
92

    
93
#define UDP6CTL_NAMES { \
94
        { 0, 0 }, \
95
        { "sendspace", CTLTYPE_INT }, \
96
        { "recvspace", CTLTYPE_INT }, \
97
        { "do_loopback_cksum", CTLTYPE_INT }, \
98
        { "stats", CTLTYPE_STRUCT }, \
99
}
100

    
101
#ifdef _KERNEL
102

    
103
extern const struct pr_usrreqs udp6_usrreqs;
104

    
105
void        *udp6_ctlinput(int, const struct sockaddr *, void *);
106
int        udp6_ctloutput(int, struct socket *, struct sockopt *);
107
void        udp6_init(void);
108
int        udp6_input(struct mbuf **, int *, int);
109
int        udp6_output(struct in6pcb *, struct mbuf *, struct sockaddr_in6 *,
110
    struct mbuf *, struct lwp *);
111
int        udp6_sysctl(int *, u_int, void *, size_t *, void *, size_t);
112
int        udp6_usrreq(struct socket *, int, struct mbuf *, struct mbuf *,
113
    struct mbuf *, struct lwp *);
114
int        udp6_realinput(int, struct sockaddr_in6 *, struct sockaddr_in6 *,
115
    struct mbuf *, int);
116
int        udp6_input_checksum(struct mbuf *, const struct udphdr *, int, int);
117

    
118
void        udp6_statinc(u_int);
119
#endif /* _KERNEL */
120

    
121
#endif /* !_NETINET6_UDP6_VAR_H_ */