]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/netinet6/ip6_var.h
xnu-1504.9.17.tar.gz
[apple/xnu.git] / bsd / netinet6 / ip6_var.h
index 96ca4908862e241c6b00dd04b0ecff04c0f08b0e..9aa8e0e3f2e3baa7614262c88d68f988582a771d 100644 (file)
@@ -1,3 +1,31 @@
+/*
+ * Copyright (c) 2008 Apple Inc. All rights reserved.
+ *
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
+ * 
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
+ * 
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
+ * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
+ * 
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
+ */
+
 /*     $FreeBSD: src/sys/netinet6/ip6_var.h,v 1.2.2.2 2001/07/03 11:01:54 ume Exp $    */
 /*     $KAME: ip6_var.h,v 1.62 2001/05/03 14:51:48 itojun Exp $        */
 
@@ -149,6 +177,8 @@ struct      ip6_pktopts {
 
        /* Destination options header (after a routing header) */
        struct  ip6_dest *ip6po_dest2;
+
+       int     ip6po_tclass;   /* traffic class */
 };
 
 /*
@@ -266,7 +296,13 @@ extern int ip6_rr_prune;           /* router renumbering prefix
 #define ip6_mapped_addr_on     (!ip6_v6only)
 extern int     ip6_v6only;
 
+extern int     ip6_neighborgcthresh;   /* Threshold # of NDP entries for GC */
+extern int     ip6_maxifprefixes;      /* Max acceptable prefixes via RA per IF */
+extern int     ip6_maxifdefrouters;    /* Max acceptable def routers via RA */
+extern int     ip6_maxdynroutes;       /* Max # of routes created via redirect */
+#if MROUTING
 extern struct socket *ip6_mrouter;     /* multicast routing daemon */
+#endif
 extern int     ip6_sendredirects;      /* send IP redirects when forwarding? */
 extern int     ip6_maxfragpackets;     /* Maximum packets in reassembly queue */
 extern int      ip6_maxfrags;          /* Maximum fragments in reassembly queue */
@@ -291,15 +327,19 @@ extern int   ip6_lowportmax;              /* maximum reserved port */
 extern int     ip6_use_tempaddr; /* whether to use temporary addresses. */
 
 extern struct  pr_usrreqs rip6_usrreqs;
+extern struct   pr_usrreqs icmp6_dgram_usrreqs;
 struct sockopt;
 
 struct inpcb;
 
-int    icmp6_ctloutput(struct socket *, struct sockopt *sopt);
+int    icmp6_ctloutput(struct socket *, struct sockopt *);
+int    icmp6_dgram_ctloutput(struct socket *, struct sockopt *);
+int    icmp6_dgram_send(struct socket *, int , struct mbuf *, struct sockaddr *, struct mbuf *, struct proc *);
+int    icmp6_dgram_attach(struct socket *, int , struct proc *);
+
 
 struct in6_ifaddr;
 void   ip6_init(void);
-void   ip6intr(void);
 void   ip6_input(struct mbuf *);
 struct in6_ifaddr *ip6_getdstifaddr(struct mbuf *);
 void   ip6_freepcbopts(struct ip6_pktopts *);
@@ -309,8 +349,8 @@ char *      ip6_get_prevhdr(struct mbuf *, int);
 int    ip6_nexthdr(struct mbuf *, int, int, int *);
 int    ip6_lasthdr(struct mbuf *, int, int, int *);
 
-struct mbuf *ip6_addaux(struct mbuf *);
-struct mbuf *ip6_findaux(struct mbuf *);
+struct ip6aux *ip6_addaux(struct mbuf *);
+struct ip6aux *ip6_findaux(struct mbuf *);
 void   ip6_delaux(struct mbuf *);
 
 int    ip6_mforward(struct ip6_hdr *, struct ifnet *, struct mbuf *);
@@ -318,11 +358,7 @@ int        ip6_process_hopopts(struct mbuf *, u_int8_t *, int, u_int32_t *,
                                 u_int32_t *);
 void   ip6_savecontrol(struct inpcb *, struct mbuf **, struct ip6_hdr *,
                             struct mbuf *);
-void   ip6_notify_pmtu(struct inpcb *, struct sockaddr_in6 *,
-                            u_int32_t *);
-int    ip6_sysctl(int *, u_int, void *, size_t *, void *, size_t);
-
-void   ip6_forward(struct mbuf *, int, int);
+void   ip6_forward(struct mbuf *, struct route_in6 *, int, int);
 
 void   ip6_mloopback(struct ifnet *, struct mbuf *, struct sockaddr_in6 *);
 int    ip6_output(struct mbuf *, struct ip6_pktopts *,
@@ -330,7 +366,7 @@ int ip6_output(struct mbuf *, struct ip6_pktopts *,
                        int,
                        struct ip6_moptions *, struct ifnet **, int locked);
 int    ip6_ctloutput(struct socket *, struct sockopt *sopt);
-void   init_ip6pktopts(struct ip6_pktopts *);
+void   ip6_initpktopts(struct ip6_pktopts *);
 int    ip6_setpktoptions(struct mbuf *, struct ip6_pktopts *, int, int);
 void   ip6_clearpktopts(struct ip6_pktopts *, int, int);
 struct ip6_pktopts *ip6_copypktopts(struct ip6_pktopts *, int);
@@ -343,16 +379,12 @@ int       frag6_input(struct mbuf **, int *);
 void   frag6_slowtimo(void);
 void   frag6_drain(void);
 
-void   rip6_init(void);
 int    rip6_input(struct mbuf **mp, int *offset);
 void   rip6_ctlinput(int, struct sockaddr *, void *);
 int    rip6_ctloutput(struct socket *so, struct sockopt *sopt);
 int    rip6_output(struct mbuf *, struct socket *, struct sockaddr_in6 *, struct mbuf *);
-int    rip6_usrreq(struct socket *,
-           int, struct mbuf *, struct mbuf *, struct mbuf *, struct proc *);
 
 int    dest6_input(struct mbuf **, int *);
-int    none_input(struct mbuf **, int *);
 #endif /* KERNEL */
 #endif /* KERNEL_PRIVATE */