xref: /utopia/UTPA2-700.0.x/projects/tools/lint/mips-linux-gnu_include/linux/if_vlan.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi /*
2*53ee8cc1Swenshuai.xi  * VLAN		An implementation of 802.1Q VLAN tagging.
3*53ee8cc1Swenshuai.xi  *
4*53ee8cc1Swenshuai.xi  * Authors:	Ben Greear <greearb@candelatech.com>
5*53ee8cc1Swenshuai.xi  *
6*53ee8cc1Swenshuai.xi  *		This program is free software; you can redistribute it and/or
7*53ee8cc1Swenshuai.xi  *		modify it under the terms of the GNU General Public License
8*53ee8cc1Swenshuai.xi  *		as published by the Free Software Foundation; either version
9*53ee8cc1Swenshuai.xi  *		2 of the License, or (at your option) any later version.
10*53ee8cc1Swenshuai.xi  *
11*53ee8cc1Swenshuai.xi  */
12*53ee8cc1Swenshuai.xi 
13*53ee8cc1Swenshuai.xi #ifndef _LINUX_IF_VLAN_H_
14*53ee8cc1Swenshuai.xi #define _LINUX_IF_VLAN_H_
15*53ee8cc1Swenshuai.xi 
16*53ee8cc1Swenshuai.xi 
17*53ee8cc1Swenshuai.xi /* VLAN IOCTLs are found in sockios.h */
18*53ee8cc1Swenshuai.xi 
19*53ee8cc1Swenshuai.xi /* Passed in vlan_ioctl_args structure to determine behaviour. */
20*53ee8cc1Swenshuai.xi enum vlan_ioctl_cmds {
21*53ee8cc1Swenshuai.xi 	ADD_VLAN_CMD,
22*53ee8cc1Swenshuai.xi 	DEL_VLAN_CMD,
23*53ee8cc1Swenshuai.xi 	SET_VLAN_INGRESS_PRIORITY_CMD,
24*53ee8cc1Swenshuai.xi 	SET_VLAN_EGRESS_PRIORITY_CMD,
25*53ee8cc1Swenshuai.xi 	GET_VLAN_INGRESS_PRIORITY_CMD,
26*53ee8cc1Swenshuai.xi 	GET_VLAN_EGRESS_PRIORITY_CMD,
27*53ee8cc1Swenshuai.xi 	SET_VLAN_NAME_TYPE_CMD,
28*53ee8cc1Swenshuai.xi 	SET_VLAN_FLAG_CMD,
29*53ee8cc1Swenshuai.xi 	GET_VLAN_REALDEV_NAME_CMD, /* If this works, you know it's a VLAN device, btw */
30*53ee8cc1Swenshuai.xi 	GET_VLAN_VID_CMD /* Get the VID of this VLAN (specified by name) */
31*53ee8cc1Swenshuai.xi };
32*53ee8cc1Swenshuai.xi 
33*53ee8cc1Swenshuai.xi enum vlan_flags {
34*53ee8cc1Swenshuai.xi 	VLAN_FLAG_REORDER_HDR	= 0x1,
35*53ee8cc1Swenshuai.xi };
36*53ee8cc1Swenshuai.xi 
37*53ee8cc1Swenshuai.xi enum vlan_name_types {
38*53ee8cc1Swenshuai.xi 	VLAN_NAME_TYPE_PLUS_VID, /* Name will look like:  vlan0005 */
39*53ee8cc1Swenshuai.xi 	VLAN_NAME_TYPE_RAW_PLUS_VID, /* name will look like:  eth1.0005 */
40*53ee8cc1Swenshuai.xi 	VLAN_NAME_TYPE_PLUS_VID_NO_PAD, /* Name will look like:  vlan5 */
41*53ee8cc1Swenshuai.xi 	VLAN_NAME_TYPE_RAW_PLUS_VID_NO_PAD, /* Name will look like:  eth0.5 */
42*53ee8cc1Swenshuai.xi 	VLAN_NAME_TYPE_HIGHEST
43*53ee8cc1Swenshuai.xi };
44*53ee8cc1Swenshuai.xi 
45*53ee8cc1Swenshuai.xi struct vlan_ioctl_args {
46*53ee8cc1Swenshuai.xi 	int cmd; /* Should be one of the vlan_ioctl_cmds enum above. */
47*53ee8cc1Swenshuai.xi 	char device1[24];
48*53ee8cc1Swenshuai.xi 
49*53ee8cc1Swenshuai.xi         union {
50*53ee8cc1Swenshuai.xi 		char device2[24];
51*53ee8cc1Swenshuai.xi 		int VID;
52*53ee8cc1Swenshuai.xi 		unsigned int skb_priority;
53*53ee8cc1Swenshuai.xi 		unsigned int name_type;
54*53ee8cc1Swenshuai.xi 		unsigned int bind_type;
55*53ee8cc1Swenshuai.xi 		unsigned int flag; /* Matches vlan_dev_info flags */
56*53ee8cc1Swenshuai.xi         } u;
57*53ee8cc1Swenshuai.xi 
58*53ee8cc1Swenshuai.xi 	short vlan_qos;
59*53ee8cc1Swenshuai.xi };
60*53ee8cc1Swenshuai.xi 
61*53ee8cc1Swenshuai.xi #endif /* !(_LINUX_IF_VLAN_H_) */
62