]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/netinet/ip_encap.c
xnu-4570.51.1.tar.gz
[apple/xnu.git] / bsd / netinet / ip_encap.c
index f0dfd14de6c6536daedf9164c5e85ce9f1f92163..5276504a9b4ce8dcf78f585bbedaad658b0a864c 100644 (file)
@@ -1,8 +1,8 @@
 /*
 /*
- * Copyright (c) 2000-2012 Apple Inc. All rights reserved.
+ * Copyright (c) 2000-2016 Apple Inc. All rights reserved.
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  *
  * @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
  * 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
  * 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.
  * 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.
  * 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,
  * 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,
@@ -22,7 +22,7 @@
  * 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.
  * 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/netinet/ip_encap.c,v 1.1.2.2 2001/07/03 11:01:46 ume Exp $    */
  * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
  */
 /*     $FreeBSD: src/sys/netinet/ip_encap.c,v 1.1.2.2 2001/07/03 11:01:46 ume Exp $    */
 #include <netinet/ip.h>
 #include <netinet/ip_var.h>
 #include <netinet/ip_encap.h>
 #include <netinet/ip.h>
 #include <netinet/ip_var.h>
 #include <netinet/ip_encap.h>
-#if MROUTING
-#include <netinet/ip_mroute.h>
-#endif /* MROUTING */
 
 #if INET6
 #include <netinet/ip6.h>
 
 #if INET6
 #include <netinet/ip6.h>
@@ -172,9 +169,7 @@ encap6_init(struct ip6protosw *pp, struct domain *dp)
 
 #if INET
 void
 
 #if INET
 void
-encap4_input(m, off)
-       struct mbuf *m;
-       int off;
+encap4_input(struct mbuf *m, int off)
 {
        int proto;
        struct ip *ip;
 {
        int proto;
        struct ip *ip;
@@ -262,18 +257,6 @@ encap4_input(m, off)
                return;
        }
 
                return;
        }
 
-       /* for backward compatibility */
-# if MROUTING
-#  define COMPATFUNC   ipip_input
-# endif /*MROUTING*/
-
-#if COMPATFUNC
-       if (proto == IPPROTO_IPV4) {
-               COMPATFUNC(m, off);
-               return;
-       }
-#endif
-
        /* last resort: inject to raw socket */
        rip_input(m, off);
 }
        /* last resort: inject to raw socket */
        rip_input(m, off);
 }
@@ -348,10 +331,8 @@ encap6_input(struct mbuf **mp, int *offp, int proto)
 #endif
 
 static void
 #endif
 
 static void
-encap_add(ep)
-       struct encaptab *ep;
+encap_add(struct encaptab *ep)
 {
 {
-
        LIST_INSERT_HEAD(&encaptab, ep, chain);
 }
 
        LIST_INSERT_HEAD(&encaptab, ep, chain);
 }
 
@@ -361,13 +342,9 @@ encap_add(ep)
  * Return value will be necessary as input (cookie) for encap_detach().
  */
 const struct encaptab *
  * Return value will be necessary as input (cookie) for encap_detach().
  */
 const struct encaptab *
-encap_attach(af, proto, sp, sm, dp, dm, psw, arg)
-       int af;
-       int proto;
-       const struct sockaddr *sp, *sm;
-       const struct sockaddr *dp, *dm;
-       const struct protosw *psw;
-       void *arg;
+encap_attach(int af, int proto, const struct sockaddr *sp,
+       const struct sockaddr *sm, const struct sockaddr *dp,
+       const struct sockaddr *dm, const struct protosw *psw, void *arg)
 {
        struct encaptab *ep;
        int error;
 {
        struct encaptab *ep;
        int error;
@@ -405,12 +382,11 @@ encap_attach(af, proto, sp, sm, dp, dm, psw, arg)
                goto fail;
        }
 
                goto fail;
        }
 
-       ep = _MALLOC(sizeof(*ep), M_NETADDR, M_WAITOK); /*XXX*/
+       ep = _MALLOC(sizeof(*ep), M_NETADDR, M_WAITOK | M_ZERO); /* XXX */
        if (ep == NULL) {
                error = ENOBUFS;
                goto fail;
        }
        if (ep == NULL) {
                error = ENOBUFS;
                goto fail;
        }
-       bzero(ep, sizeof(*ep));
 
        ep->af = af;
        ep->proto = proto;
 
        ep->af = af;
        ep->proto = proto;
@@ -431,12 +407,9 @@ fail:
 }
 
 const struct encaptab *
 }
 
 const struct encaptab *
-encap_attach_func(af, proto, func, psw, arg)
-       int af;
-       int proto;
-       int (*func)(const struct mbuf *, int, int, void *);
-       const struct protosw *psw;
-       void *arg;
+encap_attach_func( int af, int proto,
+       int (*func)(const struct mbuf *, int, int, void *),
+       const struct protosw *psw, void *arg)
 {
        struct encaptab *ep;
        int error;
 {
        struct encaptab *ep;
        int error;
@@ -447,12 +420,11 @@ encap_attach_func(af, proto, func, psw, arg)
                goto fail;
        }
 
                goto fail;
        }
 
-       ep = _MALLOC(sizeof(*ep), M_NETADDR, M_WAITOK); /*XXX*/
+       ep = _MALLOC(sizeof(*ep), M_NETADDR, M_WAITOK | M_ZERO); /* XXX */
        if (ep == NULL) {
                error = ENOBUFS;
                goto fail;
        }
        if (ep == NULL) {
                error = ENOBUFS;
                goto fail;
        }
-       bzero(ep, sizeof(*ep));
 
        ep->af = af;
        ep->proto = proto;
 
        ep->af = af;
        ep->proto = proto;
@@ -470,8 +442,7 @@ fail:
 }
 
 int
 }
 
 int
-encap_detach(cookie)
-       const struct encaptab *cookie;
+encap_detach(const struct encaptab *cookie)
 {
        const struct encaptab *ep = cookie;
        struct encaptab *p;
 {
        const struct encaptab *ep = cookie;
        struct encaptab *p;
@@ -488,10 +459,8 @@ encap_detach(cookie)
 }
 
 static int
 }
 
 static int
-mask_match(ep, sp, dp)
-       const struct encaptab *ep;
-       const struct sockaddr *sp;
-       const struct sockaddr *dp;
+mask_match(const struct encaptab *ep, const struct sockaddr *sp,
+       const struct sockaddr *dp)
 {
        struct sockaddr_storage s;
        struct sockaddr_storage d;
 {
        struct sockaddr_storage s;
        struct sockaddr_storage d;
@@ -563,8 +532,7 @@ encap_fillarg(
 }
 
 void *
 }
 
 void *
-encap_getarg(m)
-       struct mbuf *m;
+encap_getarg(struct mbuf *m)
 {
        struct m_tag    *tag;
        struct encaptabtag *et;
 {
        struct m_tag    *tag;
        struct encaptabtag *et;