1/*- 2 * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 3. Neither the name of the project nor the names of its contributors 14 * may be used to endorse or promote products derived from this software 15 * without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND 18 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE 21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27 * SUCH DAMAGE. 28 * 29 * $KAME: ip6_var.h,v 1.62 2001/05/03 14:51:48 itojun Exp $ 30 */ 31 32/*- 33 * Copyright (c) 1982, 1986, 1993 34 * The Regents of the University of California. 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 * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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 * @(#)ip_var.h 8.1 (Berkeley) 6/10/93
| 1/*- 2 * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer. 10 * 2. Redistributions in binary form must reproduce the above copyright 11 * notice, this list of conditions and the following disclaimer in the 12 * documentation and/or other materials provided with the distribution. 13 * 3. Neither the name of the project nor the names of its contributors 14 * may be used to endorse or promote products derived from this software 15 * without specific prior written permission. 16 * 17 * THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND 18 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 20 * ARE DISCLAIMED. IN NO EVENT SHALL THE PROJECT OR CONTRIBUTORS BE LIABLE 21 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 22 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 23 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 24 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 25 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 26 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 27 * SUCH DAMAGE. 28 * 29 * $KAME: ip6_var.h,v 1.62 2001/05/03 14:51:48 itojun Exp $ 30 */ 31 32/*- 33 * Copyright (c) 1982, 1986, 1993 34 * The Regents of the University of California. 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 * 4. Neither the name of the University 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 REGENTS 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 REGENTS 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 * @(#)ip_var.h 8.1 (Berkeley) 6/10/93
|
288#ifdef __NO_STRICT_ALIGNMENT 289#define IP6_HDR_ALIGNED_P(ip) 1 290#else 291#define IP6_HDR_ALIGNED_P(ip) ((((intptr_t) (ip)) & 3) == 0) 292#endif 293 294VNET_DECLARE(struct ip6stat, ip6stat); /* statistics */ 295VNET_DECLARE(int, ip6_defhlim); /* default hop limit */ 296VNET_DECLARE(int, ip6_defmcasthlim); /* default multicast hop limit */ 297VNET_DECLARE(int, ip6_forwarding); /* act as router? */ 298VNET_DECLARE(int, ip6_use_deprecated); /* allow deprecated addr as source */ 299VNET_DECLARE(int, ip6_rr_prune); /* router renumbering prefix 300 * walk list every 5 sec. */ 301VNET_DECLARE(int, ip6_mcast_pmtu); /* enable pMTU discovery for multicast? */ 302VNET_DECLARE(int, ip6_v6only); 303#define V_ip6stat VNET(ip6stat) 304#define V_ip6_defhlim VNET(ip6_defhlim) 305#define V_ip6_defmcasthlim VNET(ip6_defmcasthlim) 306#define V_ip6_forwarding VNET(ip6_forwarding) 307#define V_ip6_use_deprecated VNET(ip6_use_deprecated) 308#define V_ip6_rr_prune VNET(ip6_rr_prune) 309#define V_ip6_mcast_pmtu VNET(ip6_mcast_pmtu) 310#define V_ip6_v6only VNET(ip6_v6only) 311 312VNET_DECLARE(struct socket *, ip6_mrouter); /* multicast routing daemon */ 313VNET_DECLARE(int, ip6_sendredirects); /* send IP redirects when forwarding? */ 314VNET_DECLARE(int, ip6_maxfragpackets); /* Maximum packets in reassembly 315 * queue */ 316VNET_DECLARE(int, ip6_maxfrags); /* Maximum fragments in reassembly 317 * queue */ 318VNET_DECLARE(int, ip6_accept_rtadv); /* Acts as a host not a router */ 319VNET_DECLARE(int, ip6_no_radr); /* No defroute from RA */ 320VNET_DECLARE(int, ip6_norbit_raif); /* Disable R-bit in NA on RA 321 * receiving IF. */ 322VNET_DECLARE(int, ip6_rfc6204w3); /* Accept defroute from RA even when 323 forwarding enabled */ 324VNET_DECLARE(int, ip6_keepfaith); /* Firewall Aided Internet Translator */ 325VNET_DECLARE(int, ip6_log_interval); 326VNET_DECLARE(time_t, ip6_log_time); 327VNET_DECLARE(int, ip6_hdrnestlimit); /* upper limit of # of extension 328 * headers */ 329VNET_DECLARE(int, ip6_dad_count); /* DupAddrDetectionTransmits */ 330#define V_ip6_mrouter VNET(ip6_mrouter) 331#define V_ip6_sendredirects VNET(ip6_sendredirects) 332#define V_ip6_maxfragpackets VNET(ip6_maxfragpackets) 333#define V_ip6_maxfrags VNET(ip6_maxfrags) 334#define V_ip6_accept_rtadv VNET(ip6_accept_rtadv) 335#define V_ip6_no_radr VNET(ip6_no_radr) 336#define V_ip6_norbit_raif VNET(ip6_norbit_raif) 337#define V_ip6_rfc6204w3 VNET(ip6_rfc6204w3) 338#define V_ip6_keepfaith VNET(ip6_keepfaith) 339#define V_ip6_log_interval VNET(ip6_log_interval) 340#define V_ip6_log_time VNET(ip6_log_time) 341#define V_ip6_hdrnestlimit VNET(ip6_hdrnestlimit) 342#define V_ip6_dad_count VNET(ip6_dad_count) 343 344VNET_DECLARE(int, ip6_auto_flowlabel); 345VNET_DECLARE(int, ip6_auto_linklocal); 346#define V_ip6_auto_flowlabel VNET(ip6_auto_flowlabel) 347#define V_ip6_auto_linklocal VNET(ip6_auto_linklocal) 348 349VNET_DECLARE(int, ip6_use_tempaddr); /* Whether to use temporary addresses */ 350VNET_DECLARE(int, ip6_prefer_tempaddr); /* Whether to prefer temporary 351 * addresses in the source address 352 * selection */ 353#define V_ip6_use_tempaddr VNET(ip6_use_tempaddr) 354#define V_ip6_prefer_tempaddr VNET(ip6_prefer_tempaddr) 355 356VNET_DECLARE(int, ip6_use_defzone); /* Whether to use the default scope 357 * zone when unspecified */ 358#define V_ip6_use_defzone VNET(ip6_use_defzone) 359 360VNET_DECLARE (struct pfil_head, inet6_pfil_hook); /* packet filter hooks */ 361#define V_inet6_pfil_hook VNET(inet6_pfil_hook) 362#ifdef IPSTEALTH 363VNET_DECLARE(int, ip6stealth); 364#define V_ip6stealth VNET(ip6stealth) 365#endif 366 367extern struct pr_usrreqs rip6_usrreqs; 368struct sockopt; 369 370struct inpcb; 371 372int icmp6_ctloutput(struct socket *, struct sockopt *sopt); 373 374struct in6_ifaddr; 375void ip6_init(void); 376#ifdef VIMAGE 377void ip6_destroy(void); 378#endif 379int ip6proto_register(short); 380int ip6proto_unregister(short); 381 382void ip6_input(struct mbuf *); 383struct in6_ifaddr *ip6_getdstifaddr(struct mbuf *); 384void ip6_freepcbopts(struct ip6_pktopts *); 385 386int ip6_unknown_opt(u_int8_t *, struct mbuf *, int); 387char * ip6_get_prevhdr(struct mbuf *, int); 388int ip6_nexthdr(struct mbuf *, int, int, int *); 389int ip6_lasthdr(struct mbuf *, int, int, int *); 390 391#ifdef __notyet__ 392struct ip6aux *ip6_findaux(struct mbuf *); 393#endif 394 395extern int (*ip6_mforward)(struct ip6_hdr *, struct ifnet *, 396 struct mbuf *); 397 398int ip6_process_hopopts(struct mbuf *, u_int8_t *, int, u_int32_t *, 399 u_int32_t *); 400struct mbuf **ip6_savecontrol_v4(struct inpcb *, struct mbuf *, 401 struct mbuf **, int *); 402void ip6_savecontrol(struct inpcb *, struct mbuf *, struct mbuf **); 403void ip6_notify_pmtu(struct inpcb *, struct sockaddr_in6 *, 404 u_int32_t *); 405int ip6_sysctl(int *, u_int, void *, size_t *, void *, size_t); 406 407void ip6_forward(struct mbuf *, int); 408 409void ip6_mloopback(struct ifnet *, struct mbuf *, struct sockaddr_in6 *); 410int ip6_output(struct mbuf *, struct ip6_pktopts *, 411 struct route_in6 *, 412 int, 413 struct ip6_moptions *, struct ifnet **, 414 struct inpcb *); 415int ip6_ctloutput(struct socket *, struct sockopt *); 416int ip6_raw_ctloutput(struct socket *, struct sockopt *); 417void ip6_initpktopts(struct ip6_pktopts *); 418int ip6_setpktopts(struct mbuf *, struct ip6_pktopts *, 419 struct ip6_pktopts *, struct ucred *, int); 420void ip6_clearpktopts(struct ip6_pktopts *, int); 421struct ip6_pktopts *ip6_copypktopts(struct ip6_pktopts *, int); 422int ip6_optlen(struct inpcb *); 423 424int route6_input(struct mbuf **, int *, int); 425 426void frag6_init(void); 427int frag6_input(struct mbuf **, int *, int); 428void frag6_slowtimo(void); 429void frag6_drain(void); 430 431void rip6_init(void); 432int rip6_input(struct mbuf **, int *, int); 433void rip6_ctlinput(int, struct sockaddr *, void *); 434int rip6_ctloutput(struct socket *, struct sockopt *); 435int rip6_output(struct mbuf *, ...); 436int rip6_usrreq(struct socket *, 437 int, struct mbuf *, struct mbuf *, struct mbuf *, struct thread *); 438 439int dest6_input(struct mbuf **, int *, int); 440int none_input(struct mbuf **, int *, int); 441 442int in6_selectsrc(struct sockaddr_in6 *, struct ip6_pktopts *, 443 struct inpcb *inp, struct route_in6 *, struct ucred *cred, 444 struct ifnet **, struct in6_addr *); 445int in6_selectroute(struct sockaddr_in6 *, struct ip6_pktopts *, 446 struct ip6_moptions *, struct route_in6 *, struct ifnet **, 447 struct rtentry **); 448int in6_selectroute_fib(struct sockaddr_in6 *, struct ip6_pktopts *, 449 struct ip6_moptions *, struct route_in6 *, struct ifnet **, 450 struct rtentry **, u_int); 451u_int32_t ip6_randomid(void); 452u_int32_t ip6_randomflowlabel(void); 453#endif /* _KERNEL */ 454 455#endif /* !_NETINET6_IP6_VAR_H_ */
| 290#ifdef __NO_STRICT_ALIGNMENT 291#define IP6_HDR_ALIGNED_P(ip) 1 292#else 293#define IP6_HDR_ALIGNED_P(ip) ((((intptr_t) (ip)) & 3) == 0) 294#endif 295 296VNET_DECLARE(struct ip6stat, ip6stat); /* statistics */ 297VNET_DECLARE(int, ip6_defhlim); /* default hop limit */ 298VNET_DECLARE(int, ip6_defmcasthlim); /* default multicast hop limit */ 299VNET_DECLARE(int, ip6_forwarding); /* act as router? */ 300VNET_DECLARE(int, ip6_use_deprecated); /* allow deprecated addr as source */ 301VNET_DECLARE(int, ip6_rr_prune); /* router renumbering prefix 302 * walk list every 5 sec. */ 303VNET_DECLARE(int, ip6_mcast_pmtu); /* enable pMTU discovery for multicast? */ 304VNET_DECLARE(int, ip6_v6only); 305#define V_ip6stat VNET(ip6stat) 306#define V_ip6_defhlim VNET(ip6_defhlim) 307#define V_ip6_defmcasthlim VNET(ip6_defmcasthlim) 308#define V_ip6_forwarding VNET(ip6_forwarding) 309#define V_ip6_use_deprecated VNET(ip6_use_deprecated) 310#define V_ip6_rr_prune VNET(ip6_rr_prune) 311#define V_ip6_mcast_pmtu VNET(ip6_mcast_pmtu) 312#define V_ip6_v6only VNET(ip6_v6only) 313 314VNET_DECLARE(struct socket *, ip6_mrouter); /* multicast routing daemon */ 315VNET_DECLARE(int, ip6_sendredirects); /* send IP redirects when forwarding? */ 316VNET_DECLARE(int, ip6_maxfragpackets); /* Maximum packets in reassembly 317 * queue */ 318VNET_DECLARE(int, ip6_maxfrags); /* Maximum fragments in reassembly 319 * queue */ 320VNET_DECLARE(int, ip6_accept_rtadv); /* Acts as a host not a router */ 321VNET_DECLARE(int, ip6_no_radr); /* No defroute from RA */ 322VNET_DECLARE(int, ip6_norbit_raif); /* Disable R-bit in NA on RA 323 * receiving IF. */ 324VNET_DECLARE(int, ip6_rfc6204w3); /* Accept defroute from RA even when 325 forwarding enabled */ 326VNET_DECLARE(int, ip6_keepfaith); /* Firewall Aided Internet Translator */ 327VNET_DECLARE(int, ip6_log_interval); 328VNET_DECLARE(time_t, ip6_log_time); 329VNET_DECLARE(int, ip6_hdrnestlimit); /* upper limit of # of extension 330 * headers */ 331VNET_DECLARE(int, ip6_dad_count); /* DupAddrDetectionTransmits */ 332#define V_ip6_mrouter VNET(ip6_mrouter) 333#define V_ip6_sendredirects VNET(ip6_sendredirects) 334#define V_ip6_maxfragpackets VNET(ip6_maxfragpackets) 335#define V_ip6_maxfrags VNET(ip6_maxfrags) 336#define V_ip6_accept_rtadv VNET(ip6_accept_rtadv) 337#define V_ip6_no_radr VNET(ip6_no_radr) 338#define V_ip6_norbit_raif VNET(ip6_norbit_raif) 339#define V_ip6_rfc6204w3 VNET(ip6_rfc6204w3) 340#define V_ip6_keepfaith VNET(ip6_keepfaith) 341#define V_ip6_log_interval VNET(ip6_log_interval) 342#define V_ip6_log_time VNET(ip6_log_time) 343#define V_ip6_hdrnestlimit VNET(ip6_hdrnestlimit) 344#define V_ip6_dad_count VNET(ip6_dad_count) 345 346VNET_DECLARE(int, ip6_auto_flowlabel); 347VNET_DECLARE(int, ip6_auto_linklocal); 348#define V_ip6_auto_flowlabel VNET(ip6_auto_flowlabel) 349#define V_ip6_auto_linklocal VNET(ip6_auto_linklocal) 350 351VNET_DECLARE(int, ip6_use_tempaddr); /* Whether to use temporary addresses */ 352VNET_DECLARE(int, ip6_prefer_tempaddr); /* Whether to prefer temporary 353 * addresses in the source address 354 * selection */ 355#define V_ip6_use_tempaddr VNET(ip6_use_tempaddr) 356#define V_ip6_prefer_tempaddr VNET(ip6_prefer_tempaddr) 357 358VNET_DECLARE(int, ip6_use_defzone); /* Whether to use the default scope 359 * zone when unspecified */ 360#define V_ip6_use_defzone VNET(ip6_use_defzone) 361 362VNET_DECLARE (struct pfil_head, inet6_pfil_hook); /* packet filter hooks */ 363#define V_inet6_pfil_hook VNET(inet6_pfil_hook) 364#ifdef IPSTEALTH 365VNET_DECLARE(int, ip6stealth); 366#define V_ip6stealth VNET(ip6stealth) 367#endif 368 369extern struct pr_usrreqs rip6_usrreqs; 370struct sockopt; 371 372struct inpcb; 373 374int icmp6_ctloutput(struct socket *, struct sockopt *sopt); 375 376struct in6_ifaddr; 377void ip6_init(void); 378#ifdef VIMAGE 379void ip6_destroy(void); 380#endif 381int ip6proto_register(short); 382int ip6proto_unregister(short); 383 384void ip6_input(struct mbuf *); 385struct in6_ifaddr *ip6_getdstifaddr(struct mbuf *); 386void ip6_freepcbopts(struct ip6_pktopts *); 387 388int ip6_unknown_opt(u_int8_t *, struct mbuf *, int); 389char * ip6_get_prevhdr(struct mbuf *, int); 390int ip6_nexthdr(struct mbuf *, int, int, int *); 391int ip6_lasthdr(struct mbuf *, int, int, int *); 392 393#ifdef __notyet__ 394struct ip6aux *ip6_findaux(struct mbuf *); 395#endif 396 397extern int (*ip6_mforward)(struct ip6_hdr *, struct ifnet *, 398 struct mbuf *); 399 400int ip6_process_hopopts(struct mbuf *, u_int8_t *, int, u_int32_t *, 401 u_int32_t *); 402struct mbuf **ip6_savecontrol_v4(struct inpcb *, struct mbuf *, 403 struct mbuf **, int *); 404void ip6_savecontrol(struct inpcb *, struct mbuf *, struct mbuf **); 405void ip6_notify_pmtu(struct inpcb *, struct sockaddr_in6 *, 406 u_int32_t *); 407int ip6_sysctl(int *, u_int, void *, size_t *, void *, size_t); 408 409void ip6_forward(struct mbuf *, int); 410 411void ip6_mloopback(struct ifnet *, struct mbuf *, struct sockaddr_in6 *); 412int ip6_output(struct mbuf *, struct ip6_pktopts *, 413 struct route_in6 *, 414 int, 415 struct ip6_moptions *, struct ifnet **, 416 struct inpcb *); 417int ip6_ctloutput(struct socket *, struct sockopt *); 418int ip6_raw_ctloutput(struct socket *, struct sockopt *); 419void ip6_initpktopts(struct ip6_pktopts *); 420int ip6_setpktopts(struct mbuf *, struct ip6_pktopts *, 421 struct ip6_pktopts *, struct ucred *, int); 422void ip6_clearpktopts(struct ip6_pktopts *, int); 423struct ip6_pktopts *ip6_copypktopts(struct ip6_pktopts *, int); 424int ip6_optlen(struct inpcb *); 425 426int route6_input(struct mbuf **, int *, int); 427 428void frag6_init(void); 429int frag6_input(struct mbuf **, int *, int); 430void frag6_slowtimo(void); 431void frag6_drain(void); 432 433void rip6_init(void); 434int rip6_input(struct mbuf **, int *, int); 435void rip6_ctlinput(int, struct sockaddr *, void *); 436int rip6_ctloutput(struct socket *, struct sockopt *); 437int rip6_output(struct mbuf *, ...); 438int rip6_usrreq(struct socket *, 439 int, struct mbuf *, struct mbuf *, struct mbuf *, struct thread *); 440 441int dest6_input(struct mbuf **, int *, int); 442int none_input(struct mbuf **, int *, int); 443 444int in6_selectsrc(struct sockaddr_in6 *, struct ip6_pktopts *, 445 struct inpcb *inp, struct route_in6 *, struct ucred *cred, 446 struct ifnet **, struct in6_addr *); 447int in6_selectroute(struct sockaddr_in6 *, struct ip6_pktopts *, 448 struct ip6_moptions *, struct route_in6 *, struct ifnet **, 449 struct rtentry **); 450int in6_selectroute_fib(struct sockaddr_in6 *, struct ip6_pktopts *, 451 struct ip6_moptions *, struct route_in6 *, struct ifnet **, 452 struct rtentry **, u_int); 453u_int32_t ip6_randomid(void); 454u_int32_t ip6_randomflowlabel(void); 455#endif /* _KERNEL */ 456 457#endif /* !_NETINET6_IP6_VAR_H_ */
|