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 235956 2012-05-25 01:48:15Z bz $
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 __P((struct socket *, struct sockopt *sopt));
373
374struct in6_ifaddr;
375void ip6_init __P((void));
376#ifdef VIMAGE
377void ip6_destroy __P((void));
378#endif
379int ip6proto_register(short);
380int ip6proto_unregister(short);
381
382void ip6_input __P((struct mbuf *));
383struct in6_ifaddr *ip6_getdstifaddr __P((struct mbuf *));
384void ip6_freepcbopts __P((struct ip6_pktopts *));
385
386int ip6_unknown_opt __P((u_int8_t *, struct mbuf *, int));
387char * ip6_get_prevhdr __P((struct mbuf *, int));
388int ip6_nexthdr __P((struct mbuf *, int, int, int *));
389int ip6_lasthdr __P((struct mbuf *, int, int, int *));
390
391#ifdef __notyet__
392struct ip6aux *ip6_findaux __P((struct mbuf *));
393#endif
394
395extern int (*ip6_mforward)(struct ip6_hdr *, struct ifnet *,
396 struct mbuf *);
397
398int ip6_process_hopopts __P((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 __P((struct inpcb *, struct mbuf *, struct mbuf **));
403void ip6_notify_pmtu __P((struct inpcb *, struct sockaddr_in6 *,
404 u_int32_t *));
405int ip6_sysctl __P((int *, u_int, void *, size_t *, void *, size_t));
406
407void ip6_forward __P((struct mbuf *, int));
408
409void ip6_mloopback __P((struct ifnet *, struct mbuf *, struct sockaddr_in6 *));
410int ip6_output __P((struct mbuf *, struct ip6_pktopts *,
411 struct route_in6 *,
412 int,
413 struct ip6_moptions *, struct ifnet **,
414 struct inpcb *));
415int ip6_ctloutput __P((struct socket *, struct sockopt *));
416int ip6_raw_ctloutput __P((struct socket *, struct sockopt *));
417void ip6_initpktopts __P((struct ip6_pktopts *));
418int ip6_setpktopts __P((struct mbuf *, struct ip6_pktopts *,
419 struct ip6_pktopts *, struct ucred *, int));
420void ip6_clearpktopts __P((struct ip6_pktopts *, int));
421struct ip6_pktopts *ip6_copypktopts __P((struct ip6_pktopts *, int));
422int ip6_optlen __P((struct inpcb *));
423
424int route6_input __P((struct mbuf **, int *, int));
425
426void frag6_init __P((void));
427int frag6_input __P((struct mbuf **, int *, int));
428void frag6_slowtimo __P((void));
429void frag6_drain __P((void));
430
431void rip6_init __P((void));
432int rip6_input __P((struct mbuf **, int *, int));
433void rip6_ctlinput __P((int, struct sockaddr *, void *));
434int rip6_ctloutput __P((struct socket *, struct sockopt *));
435int rip6_output __P((struct mbuf *, ...));
436int rip6_usrreq __P((struct socket *,
437 int, struct mbuf *, struct mbuf *, struct mbuf *, struct thread *));
438
439int dest6_input __P((struct mbuf **, int *, int));
440int none_input __P((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 __P((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 __P((void));
452u_int32_t ip6_randomflowlabel __P((void));
453#endif /* _KERNEL */
454
455#endif /* !_NETINET6_IP6_VAR_H_ */
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 235956 2012-05-25 01:48:15Z bz $
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 __P((struct socket *, struct sockopt *sopt));
373
374struct in6_ifaddr;
375void ip6_init __P((void));
376#ifdef VIMAGE
377void ip6_destroy __P((void));
378#endif
379int ip6proto_register(short);
380int ip6proto_unregister(short);
381
382void ip6_input __P((struct mbuf *));
383struct in6_ifaddr *ip6_getdstifaddr __P((struct mbuf *));
384void ip6_freepcbopts __P((struct ip6_pktopts *));
385
386int ip6_unknown_opt __P((u_int8_t *, struct mbuf *, int));
387char * ip6_get_prevhdr __P((struct mbuf *, int));
388int ip6_nexthdr __P((struct mbuf *, int, int, int *));
389int ip6_lasthdr __P((struct mbuf *, int, int, int *));
390
391#ifdef __notyet__
392struct ip6aux *ip6_findaux __P((struct mbuf *));
393#endif
394
395extern int (*ip6_mforward)(struct ip6_hdr *, struct ifnet *,
396 struct mbuf *);
397
398int ip6_process_hopopts __P((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 __P((struct inpcb *, struct mbuf *, struct mbuf **));
403void ip6_notify_pmtu __P((struct inpcb *, struct sockaddr_in6 *,
404 u_int32_t *));
405int ip6_sysctl __P((int *, u_int, void *, size_t *, void *, size_t));
406
407void ip6_forward __P((struct mbuf *, int));
408
409void ip6_mloopback __P((struct ifnet *, struct mbuf *, struct sockaddr_in6 *));
410int ip6_output __P((struct mbuf *, struct ip6_pktopts *,
411 struct route_in6 *,
412 int,
413 struct ip6_moptions *, struct ifnet **,
414 struct inpcb *));
415int ip6_ctloutput __P((struct socket *, struct sockopt *));
416int ip6_raw_ctloutput __P((struct socket *, struct sockopt *));
417void ip6_initpktopts __P((struct ip6_pktopts *));
418int ip6_setpktopts __P((struct mbuf *, struct ip6_pktopts *,
419 struct ip6_pktopts *, struct ucred *, int));
420void ip6_clearpktopts __P((struct ip6_pktopts *, int));
421struct ip6_pktopts *ip6_copypktopts __P((struct ip6_pktopts *, int));
422int ip6_optlen __P((struct inpcb *));
423
424int route6_input __P((struct mbuf **, int *, int));
425
426void frag6_init __P((void));
427int frag6_input __P((struct mbuf **, int *, int));
428void frag6_slowtimo __P((void));
429void frag6_drain __P((void));
430
431void rip6_init __P((void));
432int rip6_input __P((struct mbuf **, int *, int));
433void rip6_ctlinput __P((int, struct sockaddr *, void *));
434int rip6_ctloutput __P((struct socket *, struct sockopt *));
435int rip6_output __P((struct mbuf *, ...));
436int rip6_usrreq __P((struct socket *,
437 int, struct mbuf *, struct mbuf *, struct mbuf *, struct thread *));
438
439int dest6_input __P((struct mbuf **, int *, int));
440int none_input __P((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 __P((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 __P((void));
452u_int32_t ip6_randomflowlabel __P((void));
453#endif /* _KERNEL */
454
455#endif /* !_NETINET6_IP6_VAR_H_ */