: vlan support
Subsystems (2)
This is a resend of the iproute VLAN patch with the if_link.h changes edited out since the headers are already synced.
[IPROUTE]: VLAN support
Signed-off-by Patrick McHardy <[email protected]>
---
commit 90727b2bf5b4a7ef9d0638ca80206083b965a0b5
tree 173722acd855b7fe1eb1a5f22cf7706814f72c8f
parent 4feb48d12295eb41850c39996f3a8c1dd7909ed5
author Patrick McHardy <[email protected]> Wed, 13 Jun 2007 18:46:21 +0200 committer Patrick McHardy <[email protected]> Wed, 13 Jun 2007 18:46:21 +0200
include/linux/if_link.h | 34 +++++++++ include/linux/if_vlan.h | 61 ++++++++++++++++ ip/Makefile | 2 + ip/iplink_vlan.c | 184 +++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 281 insertions(+), 0 deletions(-)
include/linux/if_vlan.h new file +61 -0
@@ -0,0 +1,61 @@ +/* +* VLAN An implementation of 802.1Q VLAN tagging. +* +* Authors: Ben Greear <[email protected]> +* +* This program is free software; you can redistribute it and/or +* modify it under the terms of the GNU General Public License +* as published by the Free Software Foundation; either version +* 2 of the License, or (at your option) any later version. +* +*/ + +#ifndef _LINUX_IF_VLAN_H_ +#define _LINUX_IF_VLAN_H_ + + +/* VLAN IOCTLs are found in sockios.h */ + +/* Passed in vlan_ioctl_args structure to determine behaviour. */ +enum vlan_ioctl_cmds { +ADD_VLAN_CMD , +DEL_VLAN_CMD , +SET_VLAN_INGRESS_PRIORITY_CMD , +SET_VLAN_EGRESS_PRIORITY_CMD , +GET_VLAN_INGRESS_PRIORITY_CMD , +GET_VLAN_EGRESS_PRIORITY_CMD , +SET_VLAN_NAME_TYPE_CMD , +SET_VLAN_FLAG_CMD , +GET_VLAN_REALDEV_NAME_CMD ,/* If this works, you know it's a VLAN device, btw */ +GET_VLAN_VID_CMD /* Get the VID of this VLAN (specified by name) */ +}; + +enum vlan_flags { +VLAN_FLAG_REORDER_HDR =0x1 , +}; + +enum vlan_name_types { +VLAN_NAME_TYPE_PLUS_VID ,/* Name will look like: vlan0005 */ +VLAN_NAME_TYPE_RAW_PLUS_VID ,/* name will look like: eth1.0005 */ +VLAN_NAME_TYPE_PLUS_VID_NO_PAD ,/* Name will look like: vlan5 */ +VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD ,/* Name will look like: eth0.5 */ +VLAN_NAME_TYPE_HIGHEST +}; + +struct vlan_ioctl_args { +int cmd;/* Should be one of the vlan_ioctl_cmds enum above. */ +char device1[24 ]; + +union { +char device2[24 ]; +int VID; +unsigned int skb_priority; +unsigned int name_type; +unsigned int bind_type; +unsigned int flag;/* Matches vlan_dev_info flags */ + } u; + +short vlan_qos; +}; + +#endif /* !(_LINUX_IF_VLAN_H_) */
ip/Makefile +2 -0
@@ -3,6 +3,8 @@ IPOBJ=ip.o ipaddress.o iproute.o iprule.o \ ipmaddr.o ipmonitor.o ipmroute.o ipprefix.o \ ipxfrm.o xfrm_state.o xfrm_policy.o xfrm_monitor.o +IPOBJ += iplink_vlan.o + RTMONOBJ=rtmon.o ALLOBJ=$(IPOBJ) $(RTMONOBJ)
ip/iplink_vlan.c new file +184 -0
184 lines not on this page · raw message