xref: /utopia/UTPA2-700.0.x/projects/tools/lint/mips-linux-gnu_include/linux/if_bridge.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi /*
2*53ee8cc1Swenshuai.xi  *	Linux ethernet bridge
3*53ee8cc1Swenshuai.xi  *
4*53ee8cc1Swenshuai.xi  *	Authors:
5*53ee8cc1Swenshuai.xi  *	Lennert Buytenhek		<buytenh@gnu.org>
6*53ee8cc1Swenshuai.xi  *
7*53ee8cc1Swenshuai.xi  *	$Id: if_bridge.h,v 1.1 2000/02/18 16:47:01 davem Exp $
8*53ee8cc1Swenshuai.xi  *
9*53ee8cc1Swenshuai.xi  *	This program is free software; you can redistribute it and/or
10*53ee8cc1Swenshuai.xi  *	modify it under the terms of the GNU General Public License
11*53ee8cc1Swenshuai.xi  *	as published by the Free Software Foundation; either version
12*53ee8cc1Swenshuai.xi  *	2 of the License, or (at your option) any later version.
13*53ee8cc1Swenshuai.xi  */
14*53ee8cc1Swenshuai.xi 
15*53ee8cc1Swenshuai.xi #ifndef _LINUX_IF_BRIDGE_H
16*53ee8cc1Swenshuai.xi #define _LINUX_IF_BRIDGE_H
17*53ee8cc1Swenshuai.xi 
18*53ee8cc1Swenshuai.xi #include <linux/types.h>
19*53ee8cc1Swenshuai.xi 
20*53ee8cc1Swenshuai.xi #define SYSFS_BRIDGE_ATTR	"bridge"
21*53ee8cc1Swenshuai.xi #define SYSFS_BRIDGE_FDB	"brforward"
22*53ee8cc1Swenshuai.xi #define SYSFS_BRIDGE_PORT_SUBDIR "brif"
23*53ee8cc1Swenshuai.xi #define SYSFS_BRIDGE_PORT_ATTR	"brport"
24*53ee8cc1Swenshuai.xi #define SYSFS_BRIDGE_PORT_LINK	"bridge"
25*53ee8cc1Swenshuai.xi 
26*53ee8cc1Swenshuai.xi #define BRCTL_VERSION 1
27*53ee8cc1Swenshuai.xi 
28*53ee8cc1Swenshuai.xi #define BRCTL_GET_VERSION 0
29*53ee8cc1Swenshuai.xi #define BRCTL_GET_BRIDGES 1
30*53ee8cc1Swenshuai.xi #define BRCTL_ADD_BRIDGE 2
31*53ee8cc1Swenshuai.xi #define BRCTL_DEL_BRIDGE 3
32*53ee8cc1Swenshuai.xi #define BRCTL_ADD_IF 4
33*53ee8cc1Swenshuai.xi #define BRCTL_DEL_IF 5
34*53ee8cc1Swenshuai.xi #define BRCTL_GET_BRIDGE_INFO 6
35*53ee8cc1Swenshuai.xi #define BRCTL_GET_PORT_LIST 7
36*53ee8cc1Swenshuai.xi #define BRCTL_SET_BRIDGE_FORWARD_DELAY 8
37*53ee8cc1Swenshuai.xi #define BRCTL_SET_BRIDGE_HELLO_TIME 9
38*53ee8cc1Swenshuai.xi #define BRCTL_SET_BRIDGE_MAX_AGE 10
39*53ee8cc1Swenshuai.xi #define BRCTL_SET_AGEING_TIME 11
40*53ee8cc1Swenshuai.xi #define BRCTL_SET_GC_INTERVAL 12
41*53ee8cc1Swenshuai.xi #define BRCTL_GET_PORT_INFO 13
42*53ee8cc1Swenshuai.xi #define BRCTL_SET_BRIDGE_STP_STATE 14
43*53ee8cc1Swenshuai.xi #define BRCTL_SET_BRIDGE_PRIORITY 15
44*53ee8cc1Swenshuai.xi #define BRCTL_SET_PORT_PRIORITY 16
45*53ee8cc1Swenshuai.xi #define BRCTL_SET_PATH_COST 17
46*53ee8cc1Swenshuai.xi #define BRCTL_GET_FDB_ENTRIES 18
47*53ee8cc1Swenshuai.xi 
48*53ee8cc1Swenshuai.xi #define BR_STATE_DISABLED 0
49*53ee8cc1Swenshuai.xi #define BR_STATE_LISTENING 1
50*53ee8cc1Swenshuai.xi #define BR_STATE_LEARNING 2
51*53ee8cc1Swenshuai.xi #define BR_STATE_FORWARDING 3
52*53ee8cc1Swenshuai.xi #define BR_STATE_BLOCKING 4
53*53ee8cc1Swenshuai.xi 
54*53ee8cc1Swenshuai.xi struct __bridge_info
55*53ee8cc1Swenshuai.xi {
56*53ee8cc1Swenshuai.xi 	__u64 designated_root;
57*53ee8cc1Swenshuai.xi 	__u64 bridge_id;
58*53ee8cc1Swenshuai.xi 	__u32 root_path_cost;
59*53ee8cc1Swenshuai.xi 	__u32 max_age;
60*53ee8cc1Swenshuai.xi 	__u32 hello_time;
61*53ee8cc1Swenshuai.xi 	__u32 forward_delay;
62*53ee8cc1Swenshuai.xi 	__u32 bridge_max_age;
63*53ee8cc1Swenshuai.xi 	__u32 bridge_hello_time;
64*53ee8cc1Swenshuai.xi 	__u32 bridge_forward_delay;
65*53ee8cc1Swenshuai.xi 	__u8 topology_change;
66*53ee8cc1Swenshuai.xi 	__u8 topology_change_detected;
67*53ee8cc1Swenshuai.xi 	__u8 root_port;
68*53ee8cc1Swenshuai.xi 	__u8 stp_enabled;
69*53ee8cc1Swenshuai.xi 	__u32 ageing_time;
70*53ee8cc1Swenshuai.xi 	__u32 gc_interval;
71*53ee8cc1Swenshuai.xi 	__u32 hello_timer_value;
72*53ee8cc1Swenshuai.xi 	__u32 tcn_timer_value;
73*53ee8cc1Swenshuai.xi 	__u32 topology_change_timer_value;
74*53ee8cc1Swenshuai.xi 	__u32 gc_timer_value;
75*53ee8cc1Swenshuai.xi };
76*53ee8cc1Swenshuai.xi 
77*53ee8cc1Swenshuai.xi struct __port_info
78*53ee8cc1Swenshuai.xi {
79*53ee8cc1Swenshuai.xi 	__u64 designated_root;
80*53ee8cc1Swenshuai.xi 	__u64 designated_bridge;
81*53ee8cc1Swenshuai.xi 	__u16 port_id;
82*53ee8cc1Swenshuai.xi 	__u16 designated_port;
83*53ee8cc1Swenshuai.xi 	__u32 path_cost;
84*53ee8cc1Swenshuai.xi 	__u32 designated_cost;
85*53ee8cc1Swenshuai.xi 	__u8 state;
86*53ee8cc1Swenshuai.xi 	__u8 top_change_ack;
87*53ee8cc1Swenshuai.xi 	__u8 config_pending;
88*53ee8cc1Swenshuai.xi 	__u8 unused0;
89*53ee8cc1Swenshuai.xi 	__u32 message_age_timer_value;
90*53ee8cc1Swenshuai.xi 	__u32 forward_delay_timer_value;
91*53ee8cc1Swenshuai.xi 	__u32 hold_timer_value;
92*53ee8cc1Swenshuai.xi };
93*53ee8cc1Swenshuai.xi 
94*53ee8cc1Swenshuai.xi struct __fdb_entry
95*53ee8cc1Swenshuai.xi {
96*53ee8cc1Swenshuai.xi 	__u8 mac_addr[6];
97*53ee8cc1Swenshuai.xi 	__u8 port_no;
98*53ee8cc1Swenshuai.xi 	__u8 is_local;
99*53ee8cc1Swenshuai.xi 	__u32 ageing_timer_value;
100*53ee8cc1Swenshuai.xi 	__u8 port_hi;
101*53ee8cc1Swenshuai.xi 	__u8 pad0;
102*53ee8cc1Swenshuai.xi 	__u16 unused;
103*53ee8cc1Swenshuai.xi };
104*53ee8cc1Swenshuai.xi 
105*53ee8cc1Swenshuai.xi 
106*53ee8cc1Swenshuai.xi #endif
107