|
|
1.1 ! root 1: /* ! 2: * Copyright (c) 2000 Apple Computer, Inc. All rights reserved. ! 3: * ! 4: * @APPLE_LICENSE_HEADER_START@ ! 5: * ! 6: * The contents of this file constitute Original Code as defined in and ! 7: * are subject to the Apple Public Source License Version 1.1 (the ! 8: * "License"). You may not use this file except in compliance with the ! 9: * License. Please obtain a copy of the License at ! 10: * http://www.apple.com/publicsource and read it before using this file. ! 11: * ! 12: * This Original Code and all software distributed under the License are ! 13: * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER ! 14: * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, ! 15: * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, ! 16: * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the ! 17: * License for the specific language governing rights and limitations ! 18: * under the License. ! 19: * ! 20: * @APPLE_LICENSE_HEADER_END@ ! 21: */ ! 22: /* ! 23: * Copyright 1998 Massachusetts Institute of Technology ! 24: * ! 25: * Permission to use, copy, modify, and distribute this software and ! 26: * its documentation for any purpose and without fee is hereby ! 27: * granted, provided that both the above copyright notice and this ! 28: * permission notice appear in all copies, that both the above ! 29: * copyright notice and this permission notice appear in all ! 30: * supporting documentation, and that the name of M.I.T. not be used ! 31: * in advertising or publicity pertaining to distribution of the ! 32: * software without specific, written prior permission. M.I.T. makes ! 33: * no representations about the suitability of this software for any ! 34: * purpose. It is provided "as is" without express or implied ! 35: * warranty. ! 36: * ! 37: * THIS SOFTWARE IS PROVIDED BY M.I.T. ``AS IS''. M.I.T. DISCLAIMS ! 38: * ALL EXPRESS OR IMPLIED WARRANTIES WITH REGARD TO THIS SOFTWARE, ! 39: * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF ! 40: * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT ! 41: * SHALL M.I.T. BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, ! 42: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT ! 43: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF ! 44: * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ! 45: * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, ! 46: * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT ! 47: * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ! 48: * SUCH DAMAGE. ! 49: * ! 50: */ ! 51: ! 52: #ifndef _NET_IF_VLAN_VAR_H_ ! 53: #define _NET_IF_VLAN_VAR_H_ 1 ! 54: ! 55: #ifdef KERNEL ! 56: struct ifvlan { ! 57: struct arpcom ifv_ac; /* make this an interface */ ! 58: struct ifnet *ifv_p; /* parent inteface of this vlan */ ! 59: struct ifv_linkmib { ! 60: int ifvm_parent; ! 61: u_int16_t ifvm_proto; /* encapsulation ethertype */ ! 62: u_int16_t ifvm_tag; /* tag to apply on packets leaving if */ ! 63: } ifv_mib; ! 64: }; ! 65: #define ifv_if ifv_ac.ac_if ! 66: #define ifv_tag ifv_mib.ifvm_tag ! 67: #endif /* KERNEL */ ! 68: ! 69: struct ether_vlan_header { ! 70: u_char evl_dhost[ETHER_ADDR_LEN]; ! 71: u_char evl_shost[ETHER_ADDR_LEN]; ! 72: u_int16_t evl_encap_proto; ! 73: u_int16_t evl_tag; ! 74: u_int16_t evl_proto; ! 75: }; ! 76: ! 77: #define EVL_VLANOFTAG(tag) ((tag) & 4095) ! 78: #define EVL_PRIOFTAG(tag) (((tag) >> 13) & 7) ! 79: #define EVL_ENCAPLEN 4 /* length in octets of encapsulation */ ! 80: ! 81: /* When these sorts of interfaces get their own identifier... */ ! 82: #define IFT_8021_VLAN IFT_PROPVIRTUAL ! 83: ! 84: /* sysctl(3) tags, for compatibility purposes */ ! 85: #define VLANCTL_PROTO 1 ! 86: #define VLANCTL_MAX 2 ! 87: ! 88: /* ! 89: * Configuration structure for SIOCSETVLAN and SIOCGETVLAN ioctls. ! 90: */ ! 91: struct vlanreq { ! 92: char vlr_parent[IFNAMSIZ]; ! 93: u_short vlr_tag; ! 94: }; ! 95: #define SIOCSETVLAN SIOCSIFGENERIC ! 96: #define SIOCGETVLAN SIOCGIFGENERIC ! 97: ! 98: #ifdef KERNEL ! 99: /* shared with if_ethersubr.c: */ ! 100: extern u_int vlan_proto; ! 101: extern int vlan_input(struct ether_header *eh, struct mbuf *m); ! 102: #endif ! 103: ! 104: #endif /* _NET_IF_VLAN_VAR_H_ */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.