]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/net/if_vlan_var.h
xnu-2050.18.24.tar.gz
[apple/xnu.git] / bsd / net / if_vlan_var.h
index 338d6ef87c1d2e50a627a2893b660d277b65a9eb..069a81d92a1064730458ad338c08e4bf57f71ce5 100644 (file)
@@ -1,16 +1,19 @@
 /*
- * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
+ * Copyright (c) 2003 Apple Computer, Inc. All rights reserved.
  *
- * @APPLE_LICENSE_HEADER_START@
- * 
- * Copyright (c) 1999-2003 Apple Computer, 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. Please obtain a copy of the License at
- * http://www.opensource.apple.com/apsl/ and read it before using this
- * file.
+ * 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
@@ -20,7 +23,7 @@
  * Please see the License for the specific language governing rights and
  * limitations under the License.
  * 
- * @APPLE_LICENSE_HEADER_END@
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
  */
 /*
  * Copyright 1998 Massachusetts Institute of Technology
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  * SUCH DAMAGE.
  *
+ * $FreeBSD: src/sys/net/if_vlan_var.h,v 1.16 2003/07/08 21:54:20 wpaul Exp $
  */
 
 #ifndef _NET_IF_VLAN_VAR_H_
 #define        _NET_IF_VLAN_VAR_H_     1
-#include <sys/appleapiopts.h>
-
-#ifdef __APPLE_API_PRIVATE
-#ifdef KERNEL
-struct ifvlan {
-       struct  arpcom ifv_ac;  /* make this an interface */
-       struct  ifnet *ifv_p;   /* parent inteface of this vlan */
-       struct  ifv_linkmib {
-               int     ifvm_parent;
-               u_int16_t ifvm_proto; /* encapsulation ethertype */
-               u_int16_t ifvm_tag; /* tag to apply on packets leaving if */
-       }       ifv_mib;
-};
-#define        ifv_if  ifv_ac.ac_if
-#define        ifv_tag ifv_mib.ifvm_tag
-#endif /* KERNEL */
 
+#define        ETHER_VLAN_ENCAP_LEN    4       /* len of 802.1Q VLAN encapsulation */
 struct ether_vlan_header {
        u_char  evl_dhost[ETHER_ADDR_LEN];
        u_char  evl_shost[ETHER_ADDR_LEN];
@@ -79,16 +68,15 @@ struct      ether_vlan_header {
        u_int16_t evl_proto;
 };
 
-#define        EVL_VLANOFTAG(tag) ((tag) & 4095)
+#define EVL_VLID_MASK  0x0FFF
+#define        EVL_VLANOFTAG(tag) ((tag) & EVL_VLID_MASK)
 #define        EVL_PRIOFTAG(tag) (((tag) >> 13) & 7)
-#define        EVL_ENCAPLEN    4       /* length in octets of encapsulation */
-
-/* When these sorts of interfaces get their own identifier... */
-#define        IFT_8021_VLAN   IFT_PROPVIRTUAL
 
+#if 0
 /* sysctl(3) tags, for compatibility purposes */
 #define        VLANCTL_PROTO   1
 #define        VLANCTL_MAX     2
+#endif
 
 /*
  * Configuration structure for SIOCSETVLAN and SIOCGETVLAN ioctls.
@@ -97,14 +85,8 @@ struct       vlanreq {
        char    vlr_parent[IFNAMSIZ];
        u_short vlr_tag;
 };
-#define        SIOCSETVLAN     SIOCSIFGENERIC
-#define        SIOCGETVLAN     SIOCGIFGENERIC
-
-#ifdef KERNEL
-/* shared with if_ethersubr.c: */
-extern u_int vlan_proto;
-extern int vlan_input(struct ether_header *eh, struct mbuf *m);
-#endif
 
-#endif /* __APPLE_API_PRIVATE */
+#ifdef KERNEL_PRIVATE
+int vlan_family_init(void) __attribute__((section("__TEXT, initcode")));
+#endif /* KERNEL_PRIVATE */
 #endif /* _NET_IF_VLAN_VAR_H_ */