1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef _UAPI_LINUX_IF_BRIDGE_H
20 #define _UAPI_LINUX_IF_BRIDGE_H
21 #include <linux/types.h>
22 #include <linux/if_ether.h>
23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24 #include <linux/in6.h>
25 #define SYSFS_BRIDGE_ATTR "bridge"
26 #define SYSFS_BRIDGE_FDB "brforward"
27 #define SYSFS_BRIDGE_PORT_SUBDIR "brif"
28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29 #define SYSFS_BRIDGE_PORT_ATTR "brport"
30 #define SYSFS_BRIDGE_PORT_LINK "bridge"
31 #define BRCTL_VERSION 1
32 #define BRCTL_GET_VERSION 0
33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34 #define BRCTL_GET_BRIDGES 1
35 #define BRCTL_ADD_BRIDGE 2
36 #define BRCTL_DEL_BRIDGE 3
37 #define BRCTL_ADD_IF 4
38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39 #define BRCTL_DEL_IF 5
40 #define BRCTL_GET_BRIDGE_INFO 6
41 #define BRCTL_GET_PORT_LIST 7
42 #define BRCTL_SET_BRIDGE_FORWARD_DELAY 8
43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44 #define BRCTL_SET_BRIDGE_HELLO_TIME 9
45 #define BRCTL_SET_BRIDGE_MAX_AGE 10
46 #define BRCTL_SET_AGEING_TIME 11
47 #define BRCTL_SET_GC_INTERVAL 12
48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49 #define BRCTL_GET_PORT_INFO 13
50 #define BRCTL_SET_BRIDGE_STP_STATE 14
51 #define BRCTL_SET_BRIDGE_PRIORITY 15
52 #define BRCTL_SET_PORT_PRIORITY 16
53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54 #define BRCTL_SET_PATH_COST 17
55 #define BRCTL_GET_FDB_ENTRIES 18
56 #define BR_STATE_DISABLED 0
57 #define BR_STATE_LISTENING 1
58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59 #define BR_STATE_LEARNING 2
60 #define BR_STATE_FORWARDING 3
61 #define BR_STATE_BLOCKING 4
62 struct __bridge_info {
63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64   __u64 designated_root;
65   __u64 bridge_id;
66   __u32 root_path_cost;
67   __u32 max_age;
68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69   __u32 hello_time;
70   __u32 forward_delay;
71   __u32 bridge_max_age;
72   __u32 bridge_hello_time;
73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74   __u32 bridge_forward_delay;
75   __u8 topology_change;
76   __u8 topology_change_detected;
77   __u8 root_port;
78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79   __u8 stp_enabled;
80   __u32 ageing_time;
81   __u32 gc_interval;
82   __u32 hello_timer_value;
83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84   __u32 tcn_timer_value;
85   __u32 topology_change_timer_value;
86   __u32 gc_timer_value;
87 };
88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89 struct __port_info {
90   __u64 designated_root;
91   __u64 designated_bridge;
92   __u16 port_id;
93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94   __u16 designated_port;
95   __u32 path_cost;
96   __u32 designated_cost;
97   __u8 state;
98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99   __u8 top_change_ack;
100   __u8 config_pending;
101   __u8 unused0;
102   __u32 message_age_timer_value;
103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104   __u32 forward_delay_timer_value;
105   __u32 hold_timer_value;
106 };
107 struct __fdb_entry {
108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109   __u8 mac_addr[ETH_ALEN];
110   __u8 port_no;
111   __u8 is_local;
112   __u32 ageing_timer_value;
113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114   __u8 port_hi;
115   __u8 pad0;
116   __u16 unused;
117 };
118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119 #define BRIDGE_FLAGS_MASTER 1
120 #define BRIDGE_FLAGS_SELF 2
121 #define BRIDGE_MODE_VEB 0
122 #define BRIDGE_MODE_VEPA 1
123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124 #define BRIDGE_MODE_UNDEF 0xFFFF
125 enum {
126   IFLA_BRIDGE_FLAGS,
127   IFLA_BRIDGE_MODE,
128 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
129   IFLA_BRIDGE_VLAN_INFO,
130   __IFLA_BRIDGE_MAX,
131 };
132 #define IFLA_BRIDGE_MAX (__IFLA_BRIDGE_MAX - 1)
133 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
134 #define BRIDGE_VLAN_INFO_MASTER (1 << 0)
135 #define BRIDGE_VLAN_INFO_PVID (1 << 1)
136 #define BRIDGE_VLAN_INFO_UNTAGGED (1 << 2)
137 #define BRIDGE_VLAN_INFO_RANGE_BEGIN (1 << 3)
138 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
139 #define BRIDGE_VLAN_INFO_RANGE_END (1 << 4)
140 #define BRIDGE_VLAN_INFO_BRENTRY (1 << 5)
141 struct bridge_vlan_info {
142   __u16 flags;
143 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
144   __u16 vid;
145 };
146 struct bridge_vlan_xstats {
147   __u64 rx_bytes;
148 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
149   __u64 rx_packets;
150   __u64 tx_bytes;
151   __u64 tx_packets;
152   __u16 vid;
153 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
154   __u16 flags;
155   __u32 pad2;
156 };
157 enum {
158 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
159   MDBA_UNSPEC,
160   MDBA_MDB,
161   MDBA_ROUTER,
162   __MDBA_MAX,
163 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
164 };
165 #define MDBA_MAX (__MDBA_MAX - 1)
166 enum {
167   MDBA_MDB_UNSPEC,
168 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
169   MDBA_MDB_ENTRY,
170   __MDBA_MDB_MAX,
171 };
172 #define MDBA_MDB_MAX (__MDBA_MDB_MAX - 1)
173 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
174 enum {
175   MDBA_MDB_ENTRY_UNSPEC,
176   MDBA_MDB_ENTRY_INFO,
177   __MDBA_MDB_ENTRY_MAX,
178 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
179 };
180 #define MDBA_MDB_ENTRY_MAX (__MDBA_MDB_ENTRY_MAX - 1)
181 enum {
182   MDBA_MDB_EATTR_UNSPEC,
183 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
184   MDBA_MDB_EATTR_TIMER,
185   __MDBA_MDB_EATTR_MAX
186 };
187 #define MDBA_MDB_EATTR_MAX (__MDBA_MDB_EATTR_MAX - 1)
188 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
189 enum {
190   MDB_RTR_TYPE_DISABLED,
191   MDB_RTR_TYPE_TEMP_QUERY,
192   MDB_RTR_TYPE_PERM,
193 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
194   MDB_RTR_TYPE_TEMP
195 };
196 enum {
197   MDBA_ROUTER_UNSPEC,
198 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
199   MDBA_ROUTER_PORT,
200   __MDBA_ROUTER_MAX,
201 };
202 #define MDBA_ROUTER_MAX (__MDBA_ROUTER_MAX - 1)
203 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
204 enum {
205   MDBA_ROUTER_PATTR_UNSPEC,
206   MDBA_ROUTER_PATTR_TIMER,
207   MDBA_ROUTER_PATTR_TYPE,
208 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
209   __MDBA_ROUTER_PATTR_MAX
210 };
211 #define MDBA_ROUTER_PATTR_MAX (__MDBA_ROUTER_PATTR_MAX - 1)
212 struct br_port_msg {
213 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
214   __u8 family;
215   __u32 ifindex;
216 };
217 struct br_mdb_entry {
218 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
219   __u32 ifindex;
220 #define MDB_TEMPORARY 0
221 #define MDB_PERMANENT 1
222   __u8 state;
223 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
224 #define MDB_FLAGS_OFFLOAD (1 << 0)
225   __u8 flags;
226   __u16 vid;
227   struct {
228 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
229     union {
230       __be32 ip4;
231       struct in6_addr ip6;
232     } u;
233 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
234     __be16 proto;
235   } addr;
236 };
237 enum {
238 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
239   MDBA_SET_ENTRY_UNSPEC,
240   MDBA_SET_ENTRY,
241   __MDBA_SET_ENTRY_MAX,
242 };
243 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
244 #define MDBA_SET_ENTRY_MAX (__MDBA_SET_ENTRY_MAX - 1)
245 enum {
246   BRIDGE_XSTATS_UNSPEC,
247   BRIDGE_XSTATS_VLAN,
248 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
249   BRIDGE_XSTATS_MCAST,
250   BRIDGE_XSTATS_PAD,
251   __BRIDGE_XSTATS_MAX
252 };
253 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
254 #define BRIDGE_XSTATS_MAX (__BRIDGE_XSTATS_MAX - 1)
255 enum {
256   BR_MCAST_DIR_RX,
257   BR_MCAST_DIR_TX,
258 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
259   BR_MCAST_DIR_SIZE
260 };
261 struct br_mcast_stats {
262   __u64 igmp_v1queries[BR_MCAST_DIR_SIZE];
263 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
264   __u64 igmp_v2queries[BR_MCAST_DIR_SIZE];
265   __u64 igmp_v3queries[BR_MCAST_DIR_SIZE];
266   __u64 igmp_leaves[BR_MCAST_DIR_SIZE];
267   __u64 igmp_v1reports[BR_MCAST_DIR_SIZE];
268 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
269   __u64 igmp_v2reports[BR_MCAST_DIR_SIZE];
270   __u64 igmp_v3reports[BR_MCAST_DIR_SIZE];
271   __u64 igmp_parse_errors;
272   __u64 mld_v1queries[BR_MCAST_DIR_SIZE];
273 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
274   __u64 mld_v2queries[BR_MCAST_DIR_SIZE];
275   __u64 mld_leaves[BR_MCAST_DIR_SIZE];
276   __u64 mld_v1reports[BR_MCAST_DIR_SIZE];
277   __u64 mld_v2reports[BR_MCAST_DIR_SIZE];
278 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
279   __u64 mld_parse_errors;
280   __u64 mcast_bytes[BR_MCAST_DIR_SIZE];
281   __u64 mcast_packets[BR_MCAST_DIR_SIZE];
282 };
283 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
284 #endif
285