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