1/* 2 * Linux VLAN configuration kernel interface 3 * Copyright (c) 2016, Jouni Malinen <j@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 36struct 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