1e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy/* 2e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy * VLAN An implementation of 802.1Q VLAN tagging. 3e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy * 4e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy * Authors: Ben Greear <greearb@candelatech.com> 5e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy * 6e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy * This program is free software; you can redistribute it and/or 7e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy * modify it under the terms of the GNU General Public License 8e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy * as published by the Free Software Foundation; either version 9e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy * 2 of the License, or (at your option) any later version. 10e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy * 11e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy */ 12e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy 13e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy#ifndef _LINUX_IF_VLAN_H_ 14e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy#define _LINUX_IF_VLAN_H_ 15e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy 16e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy 17e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy/* VLAN IOCTLs are found in sockios.h */ 18e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy 19e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy/* Passed in vlan_ioctl_args structure to determine behaviour. */ 20e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardyenum vlan_ioctl_cmds { 21e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy ADD_VLAN_CMD, 22e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy DEL_VLAN_CMD, 23e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy SET_VLAN_INGRESS_PRIORITY_CMD, 24e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy SET_VLAN_EGRESS_PRIORITY_CMD, 25e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy GET_VLAN_INGRESS_PRIORITY_CMD, 26e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy GET_VLAN_EGRESS_PRIORITY_CMD, 27e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy SET_VLAN_NAME_TYPE_CMD, 28e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy SET_VLAN_FLAG_CMD, 29e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy GET_VLAN_REALDEV_NAME_CMD, /* If this works, you know it's a VLAN device, btw */ 30e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy GET_VLAN_VID_CMD /* Get the VID of this VLAN (specified by name) */ 31e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy}; 32e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy 33e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardyenum vlan_flags { 34e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy VLAN_FLAG_REORDER_HDR = 0x1, 35e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy}; 36e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy 37e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardyenum vlan_name_types { 38e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy VLAN_NAME_TYPE_PLUS_VID, /* Name will look like: vlan0005 */ 39e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy VLAN_NAME_TYPE_RAW_PLUS_VID, /* name will look like: eth1.0005 */ 40e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy VLAN_NAME_TYPE_PLUS_VID_NO_PAD, /* Name will look like: vlan5 */ 41e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD, /* Name will look like: eth0.5 */ 42e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy VLAN_NAME_TYPE_HIGHEST 43e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy}; 44e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy 45e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardystruct vlan_ioctl_args { 46e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy int cmd; /* Should be one of the vlan_ioctl_cmds enum above. */ 47e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy char device1[24]; 48e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy 49e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy union { 50e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy char device2[24]; 51e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy int VID; 52e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy unsigned int skb_priority; 53e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy unsigned int name_type; 54e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy unsigned int bind_type; 55e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy unsigned int flag; /* Matches vlan_dev_info flags */ 56e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy } u; 57e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy 58e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy short vlan_qos; 59e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy}; 60e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy 61e91bb2ffb090955d443e643a25b250bf3d33534aPatrick McHardy#endif /* !(_LINUX_IF_VLAN_H_) */ 62