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 --- 44 unchanged lines hidden (view full) --- 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 |
61 * $FreeBSD: head/sys/netinet6/ip6_var.h 241916 2012-10-22 21:49:56Z delphij $ |
62 */ 63 64#ifndef _NETINET6_IP6_VAR_H_ 65#define _NETINET6_IP6_VAR_H_ 66 67/* 68 * IP6 reassembly queue structure. Each fragment 69 * being reassembled is attached to one of these structures. --- 294 unchanged lines hidden (view full) --- 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_ */ |