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