1 /* 2 * Linux VLAN configuration kernel interface 3 * Copyright (c) 2016, Jouni Malinen <j (at) w1.fi> 4 * 5 * This software may be distributed under the terms of the BSD license. 6 * See README for more details. 7 */ 8 9 #ifndef LINUX_VLAN_H 10 #define LINUX_VLAN_H 11 12 /* This ioctl is defined in linux/sockios.h */ 13 14 #ifndef SIOCSIFVLAN 15 #define SIOCSIFVLAN 0x8983 16 #endif /* SIOCSIFVLAN */ 17 18 /* This interface is defined in linux/if_vlan.h */ 19 20 #define ADD_VLAN_CMD 0 21 #define DEL_VLAN_CMD 1 22 #define SET_VLAN_INGRESS_PRIORITY_CMD 2 23 #define SET_VLAN_EGRESS_PRIORITY_CMD 3 24 #define GET_VLAN_INGRESS_PRIORITY_CMD 4 25 #define GET_VLAN_EGRESS_PRIORITY_CMD 5 26 #define SET_VLAN_NAME_TYPE_CMD 6 27 #define SET_VLAN_FLAG_CMD 7 28 #define GET_VLAN_REALDEV_NAME_CMD 8 29 #define GET_VLAN_VID_CMD 9 30 31 #define VLAN_NAME_TYPE_PLUS_VID 0 32 #define VLAN_NAME_TYPE_RAW_PLUS_VID 1 33 #define VLAN_NAME_TYPE_PLUS_VID_NO_PAD 2 34 #define VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD 3 35 36 struct vlan_ioctl_args { 37 int cmd; 38 char device1[24]; 39 40 union { 41 char device2[24]; 42 int VID; 43 unsigned int skb_priority; 44 unsigned int name_type; 45 unsigned int bind_type; 46 unsigned int flag; 47 } u; 48 49 short vlan_qos; 50 }; 51 52 #endif /* LINUX_VLAN_H */ 53