linux-headers (unknown)

(root)/
include/
linux/
if_vlan.h
       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/or
       8   *		modify it under the terms of the GNU General Public License
       9   *		as published by the Free Software Foundation; either version
      10   *		2 of the License, or (at your option) any later version.
      11   *
      12   */
      13  
      14  #ifndef _LINUX_IF_VLAN_H_
      15  #define _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. */
      21  enum 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  
      34  enum 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  
      42  enum 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_HIGHEST
      48  };
      49  
      50  struct 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 /* _LINUX_IF_VLAN_H_ */