diff options
Diffstat (limited to 'sys/net')
-rw-r--r-- | sys/net/if_vlan.c | 3 | ||||
-rw-r--r-- | sys/net/if_vlan_var.h | 10 |
2 files changed, 11 insertions, 2 deletions
diff --git a/sys/net/if_vlan.c b/sys/net/if_vlan.c index 3960ee0..880b157 100644 --- a/sys/net/if_vlan.c +++ b/sys/net/if_vlan.c @@ -26,7 +26,7 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: if_vlan.c,v 1.9 1999/03/15 00:33:02 wpaul Exp $ + * $Id: if_vlan.c,v 1.5 1999/03/15 01:17:26 wpaul Exp $ */ /* @@ -40,6 +40,7 @@ * if_start(), rewrite them for use by the real outgoing interface, * and ask it to send them. * + * * XXX It's incorrect to assume that we must always kludge up * headers on the physical device's behalf: some devices support * VLAN tag insersion and extraction in firmware. For these cases, diff --git a/sys/net/if_vlan_var.h b/sys/net/if_vlan_var.h index 83bb41b..7498cbf 100644 --- a/sys/net/if_vlan_var.h +++ b/sys/net/if_vlan_var.h @@ -26,13 +26,18 @@ * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id$ + * $Id: if_vlan_var.h,v 1.3 1999/03/15 00:33:02 wpaul Exp $ */ #ifndef _NET_IF_VLAN_VAR_H_ #define _NET_IF_VLAN_VAR_H_ 1 #ifdef KERNEL +struct vlan_mc_entry { + struct ether_addr mc_addr; + SLIST_ENTRY(vlan_mc_entry) mc_entries; +}; + struct ifvlan { struct arpcom ifv_ac; /* make this an interface */ struct ifnet *ifv_p; /* parent inteface of this vlan */ @@ -41,6 +46,7 @@ struct ifvlan { u_int16_t ifvm_proto; /* encapsulation ethertype */ u_int16_t ifvm_tag; /* tag to apply on packets leaving if */ } ifv_mib; + SLIST_HEAD(__vlan_mchead, vlan_mc_entry) vlan_mc_listhead; }; #define ifv_if ifv_ac.ac_if #define ifv_tag ifv_mib.ifvm_tag @@ -79,6 +85,8 @@ struct vlanreq { /* shared with if_ethersubr.c: */ extern u_int vlan_proto; extern int vlan_input(struct ether_header *eh, struct mbuf *m); +extern void vlan_input_tag(struct ether_header *eh, + struct mbuf *m, u_int16_t t); #endif #endif /* _NET_IF_VLAN_VAR_H_ */ |