Root/
Source at commit 1547 created 12 years 10 months ago. By blackosx, Added UseKernelCache boot option to svn | |
---|---|
1 | /*␊ |
2 | * Copyright (c) 2009 Apple Inc. All rights reserved.␊ |
3 | *␊ |
4 | * @APPLE_OSREFERENCE_LICENSE_HEADER_START@␊ |
5 | * ␊ |
6 | * This file contains Original Code and/or Modifications of Original Code␊ |
7 | * as defined in and that are subject to the Apple Public Source License␊ |
8 | * Version 2.0 (the 'License'). You may not use this file except in␊ |
9 | * compliance with the License. The rights granted to you under the License␊ |
10 | * may not be used to create, or enable the creation or redistribution of,␊ |
11 | * unlawful or unlicensed copies of an Apple operating system, or to␊ |
12 | * circumvent, violate, or enable the circumvention or violation of, any␊ |
13 | * terms of an Apple operating system software license agreement.␊ |
14 | * ␊ |
15 | * Please obtain a copy of the License at␊ |
16 | * http://www.opensource.apple.com/apsl/ and read it before using this file.␊ |
17 | * ␊ |
18 | * The Original Code and all software distributed under the License are␊ |
19 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER␊ |
20 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,␊ |
21 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,␊ |
22 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.␊ |
23 | * Please see the License for the specific language governing rights and␊ |
24 | * limitations under the License.␊ |
25 | * ␊ |
26 | * @APPLE_OSREFERENCE_LICENSE_HEADER_END@␊ |
27 | */␊ |
28 | ␊ |
29 | /*␉$FreeBSD: src/sys/netinet6/nd6.h,v 1.2.2.3 2001/08/13 01:10:49 simokawa Exp $␉*/␊ |
30 | /*␉$KAME: nd6.h,v 1.55 2001/04/27 15:09:49 itojun Exp $␉*/␊ |
31 | ␊ |
32 | /*␊ |
33 | * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.␊ |
34 | * All rights reserved.␊ |
35 | *␊ |
36 | * Redistribution and use in source and binary forms, with or without␊ |
37 | * modification, are permitted provided that the following conditions␊ |
38 | * are met:␊ |
39 | * 1. Redistributions of source code must retain the above copyright␊ |
40 | * notice, this list of conditions and the following disclaimer.␊ |
41 | * 2. Redistributions in binary form must reproduce the above copyright␊ |
42 | * notice, this list of conditions and the following disclaimer in the␊ |
43 | * documentation and/or other materials provided with the distribution.␊ |
44 | * 3. Neither the name of the project nor the names of its contributors␊ |
45 | * may be used to endorse or promote products derived from this software␊ |
46 | * without specific prior written permission.␊ |
47 | *␊ |
48 | * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND␊ |
49 | * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE␊ |
50 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE␊ |
51 | * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE␊ |
52 | * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL␊ |
53 | * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS␊ |
54 | * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)␊ |
55 | * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT␊ |
56 | * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY␊ |
57 | * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF␊ |
58 | * SUCH DAMAGE.␊ |
59 | */␊ |
60 | ␊ |
61 | #ifndef _NETINET6_ND6_H_␊ |
62 | #define _NETINET6_ND6_H_␊ |
63 | #include <sys/appleapiopts.h>␊ |
64 | ␊ |
65 | /* see net/route.h, or net/if_inarp.h */␊ |
66 | #ifndef RTF_ANNOUNCE␊ |
67 | #define RTF_ANNOUNCE␉RTF_PROTO2␊ |
68 | #endif␊ |
69 | ␊ |
70 | #include <sys/queue.h>␊ |
71 | ␊ |
72 | ␊ |
73 | #define ND6_LLINFO_PURGE␉-3␊ |
74 | #define ND6_LLINFO_NOSTATE␉-2␊ |
75 | /*␊ |
76 | * We don't need the WAITDELETE state any more, but we keep the definition␊ |
77 | * in a comment line instead of removing it. This is necessary to avoid␊ |
78 | * unintentionally reusing the value for another purpose, which might␊ |
79 | * affect backward compatibility with old applications.␊ |
80 | * (20000711 jinmei@kame.net)␊ |
81 | */␊ |
82 | /* #define ND6_LLINFO_WAITDELETE␉-1 */␊ |
83 | #define ND6_LLINFO_INCOMPLETE␉0␊ |
84 | #define ND6_LLINFO_REACHABLE␉1␊ |
85 | #define ND6_LLINFO_STALE␉2␊ |
86 | #define ND6_LLINFO_DELAY␉3␊ |
87 | #define ND6_LLINFO_PROBE␉4␊ |
88 | ␊ |
89 | ␊ |
90 | struct nd_ifinfo {␊ |
91 | ␉u_int32_t linkmtu;␉␉/* LinkMTU */␊ |
92 | ␉u_int32_t maxmtu;␉␉/* Upper bound of LinkMTU */␊ |
93 | ␉u_int32_t basereachable;␉/* BaseReachableTime */␊ |
94 | ␉u_int32_t reachable;␉␉/* Reachable Time */␊ |
95 | ␉u_int32_t retrans;␉␉/* Retrans Timer */␊ |
96 | ␉u_int32_t flags;␉␉/* Flags */␊ |
97 | ␉int recalctm;␉␉␉/* BaseReacable re-calculation timer */␊ |
98 | ␉u_int8_t chlim;␉␉␉/* CurHopLimit */␊ |
99 | ␉u_int8_t receivedra;␊ |
100 | ␉/* the following 3 members are for privacy extension for addrconf */␊ |
101 | ␉u_int8_t randomseed0[8]; /* upper 64 bits of MD5 digest */␊ |
102 | ␉u_int8_t randomseed1[8]; /* lower 64 bits (usually the EUI64 IFID) */␊ |
103 | ␉u_int8_t randomid[8];␉/* current random ID */␊ |
104 | };␊ |
105 | ␊ |
106 | ␊ |
107 | #define ND6_IFF_PERFORMNUD␉0x1␊ |
108 | ␊ |
109 | struct in6_nbrinfo {␊ |
110 | ␉char ifname[IFNAMSIZ];␉/* if name, e.g. "en0" */␊ |
111 | ␉struct in6_addr addr;␉/* IPv6 address of the neighbor */␊ |
112 | ␉long␉asked;␉␉/* number of queries already sent for this addr */␊ |
113 | ␉int␉isrouter;␉/* if it acts as a router */␊ |
114 | ␉int␉state;␉␉/* reachability state */␊ |
115 | ␉int␉expire;␉␉/* lifetime for NDP state transition */␊ |
116 | };␊ |
117 | ␊ |
118 | ␊ |
119 | #define DRLSTSIZ 10␊ |
120 | #define PRLSTSIZ 10␊ |
121 | ␊ |
122 | struct␉in6_drlist {␊ |
123 | ␉char ifname[IFNAMSIZ];␊ |
124 | ␉struct {␊ |
125 | ␉␉struct␉in6_addr rtaddr;␊ |
126 | ␉␉u_char␉flags;␊ |
127 | ␉␉u_short␉rtlifetime;␊ |
128 | ␉␉u_long␉expire;␊ |
129 | ␉␉u_short if_index;␊ |
130 | ␉} defrouter[DRLSTSIZ];␊ |
131 | };␊ |
132 | ␊ |
133 | ␊ |
134 | struct␉in6_defrouter {␊ |
135 | ␉struct␉sockaddr_in6 rtaddr;␊ |
136 | ␉u_char␉flags;␊ |
137 | ␉u_short␉rtlifetime;␊ |
138 | ␉u_long␉expire;␊ |
139 | ␉u_short if_index;␊ |
140 | };␊ |
141 | ␊ |
142 | ␊ |
143 | struct␉in6_prlist {␊ |
144 | ␉char ifname[IFNAMSIZ];␊ |
145 | ␉struct {␊ |
146 | ␉␉struct␉in6_addr prefix;␊ |
147 | ␉␉struct prf_ra raflags;␊ |
148 | ␉␉u_char␉prefixlen;␊ |
149 | ␉␉u_char␉origin;␊ |
150 | ␉␉u_long␉vltime;␊ |
151 | ␉␉u_long␉pltime;␊ |
152 | ␉␉u_long␉expire;␊ |
153 | ␉␉u_short if_index;␊ |
154 | ␉␉u_short advrtrs; /* number of advertisement routers */␊ |
155 | ␉␉struct␉in6_addr advrtr[DRLSTSIZ]; /* XXX: explicit limit */␊ |
156 | ␉} prefix[PRLSTSIZ];␊ |
157 | };␊ |
158 | ␊ |
159 | ␊ |
160 | struct in6_prefix {␊ |
161 | ␉struct␉sockaddr_in6 prefix;␊ |
162 | ␉struct prf_ra raflags;␊ |
163 | ␉u_char␉prefixlen;␊ |
164 | ␉u_char␉origin;␊ |
165 | ␉u_long␉vltime;␊ |
166 | ␉u_long␉pltime;␊ |
167 | ␉u_long␉expire;␊ |
168 | ␉u_int32_t flags;␊ |
169 | ␉int refcnt;␊ |
170 | ␉u_short if_index;␊ |
171 | ␉u_short advrtrs; /* number of advertisement routers */␊ |
172 | ␉/* struct sockaddr_in6 advrtr[] */␊ |
173 | };␊ |
174 | ␊ |
175 | ␊ |
176 | struct␉in6_ondireq {␊ |
177 | ␉char ifname[IFNAMSIZ];␊ |
178 | ␉struct {␊ |
179 | ␉␉u_int32_t linkmtu;␉/* LinkMTU */␊ |
180 | ␉␉u_int32_t maxmtu;␉/* Upper bound of LinkMTU */␊ |
181 | ␉␉u_int32_t basereachable; /* BaseReachableTime */␊ |
182 | ␉␉u_int32_t reachable;␉/* Reachable Time */␊ |
183 | ␉␉u_int32_t retrans;␉/* Retrans Timer */␊ |
184 | ␉␉u_int32_t flags;␉/* Flags */␊ |
185 | ␉␉int recalctm;␉␉/* BaseReacable re-calculation timer */␊ |
186 | ␉␉u_int8_t chlim;␉␉/* CurHopLimit */␊ |
187 | ␉␉u_int8_t receivedra;␊ |
188 | ␉} ndi;␊ |
189 | };␊ |
190 | ␊ |
191 | struct␉in6_ndireq {␊ |
192 | ␉char ifname[IFNAMSIZ];␊ |
193 | ␉struct nd_ifinfo ndi;␊ |
194 | };␊ |
195 | ␊ |
196 | struct␉in6_ndifreq {␊ |
197 | ␉char ifname[IFNAMSIZ];␊ |
198 | ␉u_long ifindex;␊ |
199 | };␊ |
200 | ␊ |
201 | ␊ |
202 | /* Prefix status */␊ |
203 | #define NDPRF_ONLINK␉␉0x1␊ |
204 | #define NDPRF_DETACHED␉␉0x2␊ |
205 | ␊ |
206 | /* protocol constants */␊ |
207 | #define MAX_RTR_SOLICITATION_DELAY␉1␉/*1sec*/␊ |
208 | #define RTR_SOLICITATION_INTERVAL␉4␉/*4sec*/␊ |
209 | #define MAX_RTR_SOLICITATIONS␉␉3␊ |
210 | ␊ |
211 | #define ND6_INFINITE_LIFETIME␉␉0xffffffff␊ |
212 | ␊ |
213 | ␊ |
214 | #endif /* _NETINET6_ND6_H_ */␊ |
215 |