Deleted Added
full compact
in6_proto.c (149033) in6_proto.c (152242)
1/* $FreeBSD: head/sys/netinet6/in6_proto.c 149033 2005-08-13 19:55:06Z ume $ */
1/* $FreeBSD: head/sys/netinet6/in6_proto.c 152242 2005-11-09 13:29:16Z ru $ */
2/* $KAME: in6_proto.c,v 1.91 2001/05/27 13:28:35 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

--- 136 unchanged lines hidden (view full) ---

146
147extern struct domain inet6domain;
148static struct pr_usrreqs nousrreqs;
149
150#define PR_LISTEN 0
151#define PR_ABRTACPTDIS 0
152
153struct ip6protosw inet6sw[] = {
2/* $KAME: in6_proto.c,v 1.91 2001/05/27 13:28:35 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

--- 136 unchanged lines hidden (view full) ---

146
147extern struct domain inet6domain;
148static struct pr_usrreqs nousrreqs;
149
150#define PR_LISTEN 0
151#define PR_ABRTACPTDIS 0
152
153struct ip6protosw inet6sw[] = {
154{ 0, &inet6domain, IPPROTO_IPV6, 0,
155 0, 0, 0, 0,
156 0,
157 ip6_init, 0, frag6_slowtimo, frag6_drain,
158 &nousrreqs,
154{
155 .pr_type = 0,
156 .pr_domain = &inet6domain,
157 .pr_protocol = IPPROTO_IPV6,
158 .pr_init = ip6_init,
159 .pr_slowtimo = frag6_slowtimo,
160 .pr_drain = frag6_drain,
161 .pr_usrreqs = &nousrreqs,
159},
162},
160{ SOCK_DGRAM, &inet6domain, IPPROTO_UDP, PR_ATOMIC|PR_ADDR,
161 udp6_input, 0, udp6_ctlinput, ip6_ctloutput,
162 0,
163 0, 0, 0, 0,
164 &udp6_usrreqs,
163{
164 .pr_type = SOCK_DGRAM,
165 .pr_domain = &inet6domain,
166 .pr_protocol = IPPROTO_UDP,
167 .pr_flags = PR_ATOMIC|PR_ADDR,
168 .pr_input = udp6_input,
169 .pr_ctlinput = udp6_ctlinput,
170 .pr_ctloutput = ip6_ctloutput,
171 .pr_usrreqs = &udp6_usrreqs,
165},
172},
166{ SOCK_STREAM, &inet6domain, IPPROTO_TCP, PR_CONNREQUIRED|PR_WANTRCVD|PR_LISTEN,
167 tcp6_input, 0, tcp6_ctlinput, tcp_ctloutput,
168 0,
169#ifdef INET /* don't call initialization and timeout routines twice */
170 0, 0, 0, tcp_drain,
171#else
172 tcp_init, tcp_fasttimo, tcp_slowtimo, tcp_drain,
173{
174 .pr_type = SOCK_STREAM,
175 .pr_domain = &inet6domain,
176 .pr_protocol = IPPROTO_TCP,
177 .pr_flags = PR_CONNREQUIRED|PR_WANTRCVD|PR_LISTEN,
178 .pr_input = tcp6_input,
179 .pr_ctlinput = tcp6_ctlinput,
180 .pr_ctloutput = tcp_ctloutput,
181#ifndef INET /* don't call initialization and timeout routines twice */
182 .pr_init = tcp_init,
183 .pr_fasttimo = tcp_fasttimo,
184 .pr_slowtimo = tcp_slowtimo,
173#endif
185#endif
174 &tcp6_usrreqs,
186 .pr_drain = tcp_drain,
187 .pr_usrreqs = &tcp6_usrreqs,
175},
188},
176{ SOCK_RAW, &inet6domain, IPPROTO_RAW, PR_ATOMIC|PR_ADDR,
177 rip6_input, rip6_output, rip6_ctlinput, rip6_ctloutput,
178 0,
179 0, 0, 0, 0,
180 &rip6_usrreqs
189{
190 .pr_type = SOCK_RAW,
191 .pr_domain = &inet6domain,
192 .pr_protocol = IPPROTO_RAW,
193 .pr_flags = PR_ATOMIC|PR_ADDR,
194 .pr_input = rip6_input,
195 .pr_output = rip6_output,
196 .pr_ctlinput = rip6_ctlinput,
197 .pr_ctloutput = rip6_ctloutput,
198 .pr_usrreqs = &rip6_usrreqs
181},
199},
182{ SOCK_RAW, &inet6domain, IPPROTO_ICMPV6, PR_ATOMIC|PR_ADDR|PR_LASTHDR,
183 icmp6_input, rip6_output, rip6_ctlinput, rip6_ctloutput,
184 0,
185 icmp6_init, icmp6_fasttimo, 0, 0,
186 &rip6_usrreqs
200{
201 .pr_type = SOCK_RAW,
202 .pr_domain = &inet6domain,
203 .pr_protocol = IPPROTO_ICMPV6,
204 .pr_flags = PR_ATOMIC|PR_ADDR|PR_LASTHDR,
205 .pr_input = icmp6_input,
206 .pr_output = rip6_output,
207 .pr_ctlinput = rip6_ctlinput,
208 .pr_ctloutput = rip6_ctloutput,
209 .pr_init = icmp6_init,
210 .pr_fasttimo = icmp6_fasttimo,
211 .pr_usrreqs = &rip6_usrreqs
187},
212},
188{ SOCK_RAW, &inet6domain, IPPROTO_DSTOPTS,PR_ATOMIC|PR_ADDR,
189 dest6_input, 0, 0, 0,
190 0,
191 0, 0, 0, 0,
192 &nousrreqs
213{
214 .pr_type = SOCK_RAW,
215 .pr_domain = &inet6domain,
216 .pr_protocol = IPPROTO_DSTOPTS,
217 .pr_flags = PR_ATOMIC|PR_ADDR,
218 .pr_input = dest6_input,
219 .pr_usrreqs = &nousrreqs
193},
220},
194{ SOCK_RAW, &inet6domain, IPPROTO_ROUTING,PR_ATOMIC|PR_ADDR,
195 route6_input, 0, 0, 0,
196 0,
197 0, 0, 0, 0,
198 &nousrreqs
221{
222 .pr_type = SOCK_RAW,
223 .pr_domain = &inet6domain,
224 .pr_protocol = IPPROTO_ROUTING,
225 .pr_flags = PR_ATOMIC|PR_ADDR,
226 .pr_input = route6_input,
227 .pr_usrreqs = &nousrreqs
199},
228},
200{ SOCK_RAW, &inet6domain, IPPROTO_FRAGMENT,PR_ATOMIC|PR_ADDR,
201 frag6_input, 0, 0, 0,
202 0,
203 0, 0, 0, 0,
204 &nousrreqs
229{
230 .pr_type = SOCK_RAW,
231 .pr_domain = &inet6domain,
232 .pr_protocol = IPPROTO_FRAGMENT,
233 .pr_flags = PR_ATOMIC|PR_ADDR,
234 .pr_input = frag6_input,
235 .pr_usrreqs = &nousrreqs
205},
206#ifdef IPSEC
236},
237#ifdef IPSEC
207{ SOCK_RAW, &inet6domain, IPPROTO_AH, PR_ATOMIC|PR_ADDR,
208 ah6_input, 0, 0, 0,
209 0,
210 0, 0, 0, 0,
211 &nousrreqs,
238{
239 .pr_type = SOCK_RAW,
240 .pr_domain = &inet6domain,
241 .pr_protocol = IPPROTO_AH,
242 .pr_flags = PR_ATOMIC|PR_ADDR,
243 .pr_input = ah6_input,
244 .pr_usrreqs = &nousrreqs,
212},
213#ifdef IPSEC_ESP
245},
246#ifdef IPSEC_ESP
214{ SOCK_RAW, &inet6domain, IPPROTO_ESP, PR_ATOMIC|PR_ADDR,
215 esp6_input, 0,
216 esp6_ctlinput,
217 0,
218 0,
219 0, 0, 0, 0,
220 &nousrreqs,
247{
248 .pr_type = SOCK_RAW,
249 .pr_domain = &inet6domain,
250 .pr_protocol = IPPROTO_ESP,
251 .pr_flags = PR_ATOMIC|PR_ADDR,
252 .pr_input = esp6_input,
253 .pr_ctlinput = esp6_ctlinput,
254 .pr_usrreqs = &nousrreqs,
221},
222#endif
255},
256#endif
223{ SOCK_RAW, &inet6domain, IPPROTO_IPCOMP, PR_ATOMIC|PR_ADDR,
224 ipcomp6_input, 0, 0, 0,
225 0,
226 0, 0, 0, 0,
227 &nousrreqs,
257{
258 .pr_type = SOCK_RAW,
259 .pr_domain = &inet6domain,
260 .pr_protocol = IPPROTO_IPCOMP,
261 .pr_flags = PR_ATOMIC|PR_ADDR,
262 .pr_input = ipcomp6_input,
263 .pr_usrreqs = &nousrreqs,
228},
229#endif /* IPSEC */
230#ifdef INET
264},
265#endif /* IPSEC */
266#ifdef INET
231{ SOCK_RAW, &inet6domain, IPPROTO_IPV4, PR_ATOMIC|PR_ADDR|PR_LASTHDR,
232 encap6_input, rip6_output, 0, rip6_ctloutput,
233 0,
234 encap_init, 0, 0, 0,
235 &rip6_usrreqs
267{
268 .pr_type = SOCK_RAW,
269 .pr_domain = &inet6domain,
270 .pr_protocol = IPPROTO_IPV4,
271 .pr_flags = PR_ATOMIC|PR_ADDR|PR_LASTHDR,
272 .pr_input = encap6_input,
273 .pr_output = rip6_output,
274 .pr_ctloutput = rip6_ctloutput,
275 .pr_init = encap_init,
276 .pr_usrreqs = &rip6_usrreqs
236},
237#endif /* INET */
277},
278#endif /* INET */
238{ SOCK_RAW, &inet6domain, IPPROTO_IPV6, PR_ATOMIC|PR_ADDR|PR_LASTHDR,
239 encap6_input, rip6_output, 0, rip6_ctloutput,
240 0,
241 encap_init, 0, 0, 0,
242 &rip6_usrreqs
279{
280 .pr_type = SOCK_RAW,
281 .pr_domain = &inet6domain,
282 .pr_protocol = IPPROTO_IPV6,
283 .pr_flags = PR_ATOMIC|PR_ADDR|PR_LASTHDR,
284 .pr_input = encap6_input,
285 .pr_output = rip6_output,
286 .pr_ctloutput = rip6_ctloutput,
287 .pr_init = encap_init,
288 .pr_usrreqs = &rip6_usrreqs
243},
289},
244{ SOCK_RAW, &inet6domain, IPPROTO_PIM, PR_ATOMIC|PR_ADDR|PR_LASTHDR,
245 pim6_input, rip6_output, 0, rip6_ctloutput,
246 0,
247 0, 0, 0, 0,
248 &rip6_usrreqs
290{
291 .pr_type = SOCK_RAW,
292 .pr_domain = &inet6domain,
293 .pr_protocol = IPPROTO_PIM,
294 .pr_flags = PR_ATOMIC|PR_ADDR|PR_LASTHDR,
295 .pr_input = pim6_input,
296 .pr_output = rip6_output,
297 .pr_ctloutput = rip6_ctloutput,
298 .pr_usrreqs = &rip6_usrreqs
249},
250#ifdef DEV_CARP
299},
300#ifdef DEV_CARP
251{ SOCK_RAW, &inet6domain, IPPROTO_CARP, PR_ATOMIC|PR_ADDR,
252 carp6_input, rip6_output, 0, rip6_ctloutput,
253 0,
254 0, 0, 0, 0,
255 &rip6_usrreqs
301{
302 .pr_type = SOCK_RAW,
303 .pr_domain = &inet6domain,
304 .pr_protocol = IPPROTO_CARP,
305 .pr_flags = PR_ATOMIC|PR_ADDR,
306 .pr_input = carp6_input,
307 .pr_output = rip6_output,
308 .pr_ctloutput = rip6_ctloutput,
309 .pr_usrreqs = &rip6_usrreqs
256},
257#endif /* DEV_CARP */
258/* raw wildcard */
310},
311#endif /* DEV_CARP */
312/* raw wildcard */
259{ SOCK_RAW, &inet6domain, 0, PR_ATOMIC|PR_ADDR,
260 rip6_input, rip6_output, 0, rip6_ctloutput,
261 0,
262 0, 0, 0, 0,
263 &rip6_usrreqs
313{
314 .pr_type = SOCK_RAW,
315 .pr_domain = &inet6domain,
316 .pr_flags = PR_ATOMIC|PR_ADDR,
317 .pr_input = rip6_input,
318 .pr_output = rip6_output,
319 .pr_ctloutput = rip6_ctloutput,
320 .pr_usrreqs = &rip6_usrreqs
264},
265};
266
267extern int in6_inithead __P((void **, int));
268
321},
322};
323
324extern int in6_inithead __P((void **, int));
325
269struct domain inet6domain =
270 { AF_INET6, "internet6", 0, 0, 0,
271 (struct protosw *)inet6sw,
272 (struct protosw *)&inet6sw[sizeof(inet6sw)/sizeof(inet6sw[0])], 0,
273 in6_inithead,
274 offsetof(struct sockaddr_in6, sin6_addr) << 3,
275 sizeof(struct sockaddr_in6),
276 in6_domifattach, in6_domifdetach, };
326struct domain inet6domain = {
327 .dom_family = AF_INET6,
328 .dom_name = "internet6",
329 .dom_protosw = (struct protosw *)inet6sw,
330 .dom_protoswNPROTOSW = (struct protosw *)
331 &inet6sw[sizeof(inet6sw)/sizeof(inet6sw[0])],
332 .dom_rtattach = in6_inithead,
333 .dom_rtoffset = offsetof(struct sockaddr_in6, sin6_addr) << 3,
334 .dom_maxrtkey = sizeof(struct sockaddr_in6),
335 .dom_ifattach = in6_domifattach,
336 .dom_ifdetach = in6_domifdetach
337};
277
278DOMAIN_SET(inet6);
279
280/*
281 * Internet configuration info
282 */
283#ifndef IPV6FORWARDING
284#ifdef GATEWAY6

--- 201 unchanged lines hidden ---
338
339DOMAIN_SET(inet6);
340
341/*
342 * Internet configuration info
343 */
344#ifndef IPV6FORWARDING
345#ifdef GATEWAY6

--- 201 unchanged lines hidden ---