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