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 #include <linux/in6.h> 24 #define SYSFS_BRIDGE_ATTR "bridge" 25 #define SYSFS_BRIDGE_FDB "brforward" 26 #define SYSFS_BRIDGE_PORT_SUBDIR "brif" 27 #define SYSFS_BRIDGE_PORT_ATTR "brport" 28 #define SYSFS_BRIDGE_PORT_LINK "bridge" 29 #define BRCTL_VERSION 1 30 #define BRCTL_GET_VERSION 0 31 #define BRCTL_GET_BRIDGES 1 32 #define BRCTL_ADD_BRIDGE 2 33 #define BRCTL_DEL_BRIDGE 3 34 #define BRCTL_ADD_IF 4 35 #define BRCTL_DEL_IF 5 36 #define BRCTL_GET_BRIDGE_INFO 6 37 #define BRCTL_GET_PORT_LIST 7 38 #define BRCTL_SET_BRIDGE_FORWARD_DELAY 8 39 #define BRCTL_SET_BRIDGE_HELLO_TIME 9 40 #define BRCTL_SET_BRIDGE_MAX_AGE 10 41 #define BRCTL_SET_AGEING_TIME 11 42 #define BRCTL_SET_GC_INTERVAL 12 43 #define BRCTL_GET_PORT_INFO 13 44 #define BRCTL_SET_BRIDGE_STP_STATE 14 45 #define BRCTL_SET_BRIDGE_PRIORITY 15 46 #define BRCTL_SET_PORT_PRIORITY 16 47 #define BRCTL_SET_PATH_COST 17 48 #define BRCTL_GET_FDB_ENTRIES 18 49 #define BR_STATE_DISABLED 0 50 #define BR_STATE_LISTENING 1 51 #define BR_STATE_LEARNING 2 52 #define BR_STATE_FORWARDING 3 53 #define BR_STATE_BLOCKING 4 54 struct __bridge_info { 55 __u64 designated_root; 56 __u64 bridge_id; 57 __u32 root_path_cost; 58 __u32 max_age; 59 __u32 hello_time; 60 __u32 forward_delay; 61 __u32 bridge_max_age; 62 __u32 bridge_hello_time; 63 __u32 bridge_forward_delay; 64 __u8 topology_change; 65 __u8 topology_change_detected; 66 __u8 root_port; 67 __u8 stp_enabled; 68 __u32 ageing_time; 69 __u32 gc_interval; 70 __u32 hello_timer_value; 71 __u32 tcn_timer_value; 72 __u32 topology_change_timer_value; 73 __u32 gc_timer_value; 74 }; 75 struct __port_info { 76 __u64 designated_root; 77 __u64 designated_bridge; 78 __u16 port_id; 79 __u16 designated_port; 80 __u32 path_cost; 81 __u32 designated_cost; 82 __u8 state; 83 __u8 top_change_ack; 84 __u8 config_pending; 85 __u8 unused0; 86 __u32 message_age_timer_value; 87 __u32 forward_delay_timer_value; 88 __u32 hold_timer_value; 89 }; 90 struct __fdb_entry { 91 __u8 mac_addr[ETH_ALEN]; 92 __u8 port_no; 93 __u8 is_local; 94 __u32 ageing_timer_value; 95 __u8 port_hi; 96 __u8 pad0; 97 __u16 unused; 98 }; 99 #define BRIDGE_FLAGS_MASTER 1 100 #define BRIDGE_FLAGS_SELF 2 101 #define BRIDGE_MODE_VEB 0 102 #define BRIDGE_MODE_VEPA 1 103 #define BRIDGE_MODE_UNDEF 0xFFFF 104 enum { 105 IFLA_BRIDGE_FLAGS, 106 IFLA_BRIDGE_MODE, 107 IFLA_BRIDGE_VLAN_INFO, 108 IFLA_BRIDGE_VLAN_TUNNEL_INFO, 109 IFLA_BRIDGE_MRP, 110 IFLA_BRIDGE_CFM, 111 IFLA_BRIDGE_MST, 112 __IFLA_BRIDGE_MAX, 113 }; 114 #define IFLA_BRIDGE_MAX (__IFLA_BRIDGE_MAX - 1) 115 #define BRIDGE_VLAN_INFO_MASTER (1 << 0) 116 #define BRIDGE_VLAN_INFO_PVID (1 << 1) 117 #define BRIDGE_VLAN_INFO_UNTAGGED (1 << 2) 118 #define BRIDGE_VLAN_INFO_RANGE_BEGIN (1 << 3) 119 #define BRIDGE_VLAN_INFO_RANGE_END (1 << 4) 120 #define BRIDGE_VLAN_INFO_BRENTRY (1 << 5) 121 #define BRIDGE_VLAN_INFO_ONLY_OPTS (1 << 6) 122 struct bridge_vlan_info { 123 __u16 flags; 124 __u16 vid; 125 }; 126 enum { 127 IFLA_BRIDGE_VLAN_TUNNEL_UNSPEC, 128 IFLA_BRIDGE_VLAN_TUNNEL_ID, 129 IFLA_BRIDGE_VLAN_TUNNEL_VID, 130 IFLA_BRIDGE_VLAN_TUNNEL_FLAGS, 131 __IFLA_BRIDGE_VLAN_TUNNEL_MAX, 132 }; 133 #define IFLA_BRIDGE_VLAN_TUNNEL_MAX (__IFLA_BRIDGE_VLAN_TUNNEL_MAX - 1) 134 struct bridge_vlan_xstats { 135 __u64 rx_bytes; 136 __u64 rx_packets; 137 __u64 tx_bytes; 138 __u64 tx_packets; 139 __u16 vid; 140 __u16 flags; 141 __u32 pad2; 142 }; 143 enum { 144 IFLA_BRIDGE_MRP_UNSPEC, 145 IFLA_BRIDGE_MRP_INSTANCE, 146 IFLA_BRIDGE_MRP_PORT_STATE, 147 IFLA_BRIDGE_MRP_PORT_ROLE, 148 IFLA_BRIDGE_MRP_RING_STATE, 149 IFLA_BRIDGE_MRP_RING_ROLE, 150 IFLA_BRIDGE_MRP_START_TEST, 151 IFLA_BRIDGE_MRP_INFO, 152 IFLA_BRIDGE_MRP_IN_ROLE, 153 IFLA_BRIDGE_MRP_IN_STATE, 154 IFLA_BRIDGE_MRP_START_IN_TEST, 155 __IFLA_BRIDGE_MRP_MAX, 156 }; 157 #define IFLA_BRIDGE_MRP_MAX (__IFLA_BRIDGE_MRP_MAX - 1) 158 enum { 159 IFLA_BRIDGE_MRP_INSTANCE_UNSPEC, 160 IFLA_BRIDGE_MRP_INSTANCE_RING_ID, 161 IFLA_BRIDGE_MRP_INSTANCE_P_IFINDEX, 162 IFLA_BRIDGE_MRP_INSTANCE_S_IFINDEX, 163 IFLA_BRIDGE_MRP_INSTANCE_PRIO, 164 __IFLA_BRIDGE_MRP_INSTANCE_MAX, 165 }; 166 #define IFLA_BRIDGE_MRP_INSTANCE_MAX (__IFLA_BRIDGE_MRP_INSTANCE_MAX - 1) 167 enum { 168 IFLA_BRIDGE_MRP_PORT_STATE_UNSPEC, 169 IFLA_BRIDGE_MRP_PORT_STATE_STATE, 170 __IFLA_BRIDGE_MRP_PORT_STATE_MAX, 171 }; 172 #define IFLA_BRIDGE_MRP_PORT_STATE_MAX (__IFLA_BRIDGE_MRP_PORT_STATE_MAX - 1) 173 enum { 174 IFLA_BRIDGE_MRP_PORT_ROLE_UNSPEC, 175 IFLA_BRIDGE_MRP_PORT_ROLE_ROLE, 176 __IFLA_BRIDGE_MRP_PORT_ROLE_MAX, 177 }; 178 #define IFLA_BRIDGE_MRP_PORT_ROLE_MAX (__IFLA_BRIDGE_MRP_PORT_ROLE_MAX - 1) 179 enum { 180 IFLA_BRIDGE_MRP_RING_STATE_UNSPEC, 181 IFLA_BRIDGE_MRP_RING_STATE_RING_ID, 182 IFLA_BRIDGE_MRP_RING_STATE_STATE, 183 __IFLA_BRIDGE_MRP_RING_STATE_MAX, 184 }; 185 #define IFLA_BRIDGE_MRP_RING_STATE_MAX (__IFLA_BRIDGE_MRP_RING_STATE_MAX - 1) 186 enum { 187 IFLA_BRIDGE_MRP_RING_ROLE_UNSPEC, 188 IFLA_BRIDGE_MRP_RING_ROLE_RING_ID, 189 IFLA_BRIDGE_MRP_RING_ROLE_ROLE, 190 __IFLA_BRIDGE_MRP_RING_ROLE_MAX, 191 }; 192 #define IFLA_BRIDGE_MRP_RING_ROLE_MAX (__IFLA_BRIDGE_MRP_RING_ROLE_MAX - 1) 193 enum { 194 IFLA_BRIDGE_MRP_START_TEST_UNSPEC, 195 IFLA_BRIDGE_MRP_START_TEST_RING_ID, 196 IFLA_BRIDGE_MRP_START_TEST_INTERVAL, 197 IFLA_BRIDGE_MRP_START_TEST_MAX_MISS, 198 IFLA_BRIDGE_MRP_START_TEST_PERIOD, 199 IFLA_BRIDGE_MRP_START_TEST_MONITOR, 200 __IFLA_BRIDGE_MRP_START_TEST_MAX, 201 }; 202 #define IFLA_BRIDGE_MRP_START_TEST_MAX (__IFLA_BRIDGE_MRP_START_TEST_MAX - 1) 203 enum { 204 IFLA_BRIDGE_MRP_INFO_UNSPEC, 205 IFLA_BRIDGE_MRP_INFO_RING_ID, 206 IFLA_BRIDGE_MRP_INFO_P_IFINDEX, 207 IFLA_BRIDGE_MRP_INFO_S_IFINDEX, 208 IFLA_BRIDGE_MRP_INFO_PRIO, 209 IFLA_BRIDGE_MRP_INFO_RING_STATE, 210 IFLA_BRIDGE_MRP_INFO_RING_ROLE, 211 IFLA_BRIDGE_MRP_INFO_TEST_INTERVAL, 212 IFLA_BRIDGE_MRP_INFO_TEST_MAX_MISS, 213 IFLA_BRIDGE_MRP_INFO_TEST_MONITOR, 214 IFLA_BRIDGE_MRP_INFO_I_IFINDEX, 215 IFLA_BRIDGE_MRP_INFO_IN_STATE, 216 IFLA_BRIDGE_MRP_INFO_IN_ROLE, 217 IFLA_BRIDGE_MRP_INFO_IN_TEST_INTERVAL, 218 IFLA_BRIDGE_MRP_INFO_IN_TEST_MAX_MISS, 219 __IFLA_BRIDGE_MRP_INFO_MAX, 220 }; 221 #define IFLA_BRIDGE_MRP_INFO_MAX (__IFLA_BRIDGE_MRP_INFO_MAX - 1) 222 enum { 223 IFLA_BRIDGE_MRP_IN_STATE_UNSPEC, 224 IFLA_BRIDGE_MRP_IN_STATE_IN_ID, 225 IFLA_BRIDGE_MRP_IN_STATE_STATE, 226 __IFLA_BRIDGE_MRP_IN_STATE_MAX, 227 }; 228 #define IFLA_BRIDGE_MRP_IN_STATE_MAX (__IFLA_BRIDGE_MRP_IN_STATE_MAX - 1) 229 enum { 230 IFLA_BRIDGE_MRP_IN_ROLE_UNSPEC, 231 IFLA_BRIDGE_MRP_IN_ROLE_RING_ID, 232 IFLA_BRIDGE_MRP_IN_ROLE_IN_ID, 233 IFLA_BRIDGE_MRP_IN_ROLE_ROLE, 234 IFLA_BRIDGE_MRP_IN_ROLE_I_IFINDEX, 235 __IFLA_BRIDGE_MRP_IN_ROLE_MAX, 236 }; 237 #define IFLA_BRIDGE_MRP_IN_ROLE_MAX (__IFLA_BRIDGE_MRP_IN_ROLE_MAX - 1) 238 enum { 239 IFLA_BRIDGE_MRP_START_IN_TEST_UNSPEC, 240 IFLA_BRIDGE_MRP_START_IN_TEST_IN_ID, 241 IFLA_BRIDGE_MRP_START_IN_TEST_INTERVAL, 242 IFLA_BRIDGE_MRP_START_IN_TEST_MAX_MISS, 243 IFLA_BRIDGE_MRP_START_IN_TEST_PERIOD, 244 __IFLA_BRIDGE_MRP_START_IN_TEST_MAX, 245 }; 246 #define IFLA_BRIDGE_MRP_START_IN_TEST_MAX (__IFLA_BRIDGE_MRP_START_IN_TEST_MAX - 1) 247 struct br_mrp_instance { 248 __u32 ring_id; 249 __u32 p_ifindex; 250 __u32 s_ifindex; 251 __u16 prio; 252 }; 253 struct br_mrp_ring_state { 254 __u32 ring_id; 255 __u32 ring_state; 256 }; 257 struct br_mrp_ring_role { 258 __u32 ring_id; 259 __u32 ring_role; 260 }; 261 struct br_mrp_start_test { 262 __u32 ring_id; 263 __u32 interval; 264 __u32 max_miss; 265 __u32 period; 266 __u32 monitor; 267 }; 268 struct br_mrp_in_state { 269 __u32 in_state; 270 __u16 in_id; 271 }; 272 struct br_mrp_in_role { 273 __u32 ring_id; 274 __u32 in_role; 275 __u32 i_ifindex; 276 __u16 in_id; 277 }; 278 struct br_mrp_start_in_test { 279 __u32 interval; 280 __u32 max_miss; 281 __u32 period; 282 __u16 in_id; 283 }; 284 enum { 285 IFLA_BRIDGE_CFM_UNSPEC, 286 IFLA_BRIDGE_CFM_MEP_CREATE, 287 IFLA_BRIDGE_CFM_MEP_DELETE, 288 IFLA_BRIDGE_CFM_MEP_CONFIG, 289 IFLA_BRIDGE_CFM_CC_CONFIG, 290 IFLA_BRIDGE_CFM_CC_PEER_MEP_ADD, 291 IFLA_BRIDGE_CFM_CC_PEER_MEP_REMOVE, 292 IFLA_BRIDGE_CFM_CC_RDI, 293 IFLA_BRIDGE_CFM_CC_CCM_TX, 294 IFLA_BRIDGE_CFM_MEP_CREATE_INFO, 295 IFLA_BRIDGE_CFM_MEP_CONFIG_INFO, 296 IFLA_BRIDGE_CFM_CC_CONFIG_INFO, 297 IFLA_BRIDGE_CFM_CC_RDI_INFO, 298 IFLA_BRIDGE_CFM_CC_CCM_TX_INFO, 299 IFLA_BRIDGE_CFM_CC_PEER_MEP_INFO, 300 IFLA_BRIDGE_CFM_MEP_STATUS_INFO, 301 IFLA_BRIDGE_CFM_CC_PEER_STATUS_INFO, 302 __IFLA_BRIDGE_CFM_MAX, 303 }; 304 #define IFLA_BRIDGE_CFM_MAX (__IFLA_BRIDGE_CFM_MAX - 1) 305 enum { 306 IFLA_BRIDGE_CFM_MEP_CREATE_UNSPEC, 307 IFLA_BRIDGE_CFM_MEP_CREATE_INSTANCE, 308 IFLA_BRIDGE_CFM_MEP_CREATE_DOMAIN, 309 IFLA_BRIDGE_CFM_MEP_CREATE_DIRECTION, 310 IFLA_BRIDGE_CFM_MEP_CREATE_IFINDEX, 311 __IFLA_BRIDGE_CFM_MEP_CREATE_MAX, 312 }; 313 #define IFLA_BRIDGE_CFM_MEP_CREATE_MAX (__IFLA_BRIDGE_CFM_MEP_CREATE_MAX - 1) 314 enum { 315 IFLA_BRIDGE_CFM_MEP_DELETE_UNSPEC, 316 IFLA_BRIDGE_CFM_MEP_DELETE_INSTANCE, 317 __IFLA_BRIDGE_CFM_MEP_DELETE_MAX, 318 }; 319 #define IFLA_BRIDGE_CFM_MEP_DELETE_MAX (__IFLA_BRIDGE_CFM_MEP_DELETE_MAX - 1) 320 enum { 321 IFLA_BRIDGE_CFM_MEP_CONFIG_UNSPEC, 322 IFLA_BRIDGE_CFM_MEP_CONFIG_INSTANCE, 323 IFLA_BRIDGE_CFM_MEP_CONFIG_UNICAST_MAC, 324 IFLA_BRIDGE_CFM_MEP_CONFIG_MDLEVEL, 325 IFLA_BRIDGE_CFM_MEP_CONFIG_MEPID, 326 __IFLA_BRIDGE_CFM_MEP_CONFIG_MAX, 327 }; 328 #define IFLA_BRIDGE_CFM_MEP_CONFIG_MAX (__IFLA_BRIDGE_CFM_MEP_CONFIG_MAX - 1) 329 enum { 330 IFLA_BRIDGE_CFM_CC_CONFIG_UNSPEC, 331 IFLA_BRIDGE_CFM_CC_CONFIG_INSTANCE, 332 IFLA_BRIDGE_CFM_CC_CONFIG_ENABLE, 333 IFLA_BRIDGE_CFM_CC_CONFIG_EXP_INTERVAL, 334 IFLA_BRIDGE_CFM_CC_CONFIG_EXP_MAID, 335 __IFLA_BRIDGE_CFM_CC_CONFIG_MAX, 336 }; 337 #define IFLA_BRIDGE_CFM_CC_CONFIG_MAX (__IFLA_BRIDGE_CFM_CC_CONFIG_MAX - 1) 338 enum { 339 IFLA_BRIDGE_CFM_CC_PEER_MEP_UNSPEC, 340 IFLA_BRIDGE_CFM_CC_PEER_MEP_INSTANCE, 341 IFLA_BRIDGE_CFM_CC_PEER_MEPID, 342 __IFLA_BRIDGE_CFM_CC_PEER_MEP_MAX, 343 }; 344 #define IFLA_BRIDGE_CFM_CC_PEER_MEP_MAX (__IFLA_BRIDGE_CFM_CC_PEER_MEP_MAX - 1) 345 enum { 346 IFLA_BRIDGE_CFM_CC_RDI_UNSPEC, 347 IFLA_BRIDGE_CFM_CC_RDI_INSTANCE, 348 IFLA_BRIDGE_CFM_CC_RDI_RDI, 349 __IFLA_BRIDGE_CFM_CC_RDI_MAX, 350 }; 351 #define IFLA_BRIDGE_CFM_CC_RDI_MAX (__IFLA_BRIDGE_CFM_CC_RDI_MAX - 1) 352 enum { 353 IFLA_BRIDGE_CFM_CC_CCM_TX_UNSPEC, 354 IFLA_BRIDGE_CFM_CC_CCM_TX_INSTANCE, 355 IFLA_BRIDGE_CFM_CC_CCM_TX_DMAC, 356 IFLA_BRIDGE_CFM_CC_CCM_TX_SEQ_NO_UPDATE, 357 IFLA_BRIDGE_CFM_CC_CCM_TX_PERIOD, 358 IFLA_BRIDGE_CFM_CC_CCM_TX_IF_TLV, 359 IFLA_BRIDGE_CFM_CC_CCM_TX_IF_TLV_VALUE, 360 IFLA_BRIDGE_CFM_CC_CCM_TX_PORT_TLV, 361 IFLA_BRIDGE_CFM_CC_CCM_TX_PORT_TLV_VALUE, 362 __IFLA_BRIDGE_CFM_CC_CCM_TX_MAX, 363 }; 364 #define IFLA_BRIDGE_CFM_CC_CCM_TX_MAX (__IFLA_BRIDGE_CFM_CC_CCM_TX_MAX - 1) 365 enum { 366 IFLA_BRIDGE_CFM_MEP_STATUS_UNSPEC, 367 IFLA_BRIDGE_CFM_MEP_STATUS_INSTANCE, 368 IFLA_BRIDGE_CFM_MEP_STATUS_OPCODE_UNEXP_SEEN, 369 IFLA_BRIDGE_CFM_MEP_STATUS_VERSION_UNEXP_SEEN, 370 IFLA_BRIDGE_CFM_MEP_STATUS_RX_LEVEL_LOW_SEEN, 371 __IFLA_BRIDGE_CFM_MEP_STATUS_MAX, 372 }; 373 #define IFLA_BRIDGE_CFM_MEP_STATUS_MAX (__IFLA_BRIDGE_CFM_MEP_STATUS_MAX - 1) 374 enum { 375 IFLA_BRIDGE_CFM_CC_PEER_STATUS_UNSPEC, 376 IFLA_BRIDGE_CFM_CC_PEER_STATUS_INSTANCE, 377 IFLA_BRIDGE_CFM_CC_PEER_STATUS_PEER_MEPID, 378 IFLA_BRIDGE_CFM_CC_PEER_STATUS_CCM_DEFECT, 379 IFLA_BRIDGE_CFM_CC_PEER_STATUS_RDI, 380 IFLA_BRIDGE_CFM_CC_PEER_STATUS_PORT_TLV_VALUE, 381 IFLA_BRIDGE_CFM_CC_PEER_STATUS_IF_TLV_VALUE, 382 IFLA_BRIDGE_CFM_CC_PEER_STATUS_SEEN, 383 IFLA_BRIDGE_CFM_CC_PEER_STATUS_TLV_SEEN, 384 IFLA_BRIDGE_CFM_CC_PEER_STATUS_SEQ_UNEXP_SEEN, 385 __IFLA_BRIDGE_CFM_CC_PEER_STATUS_MAX, 386 }; 387 #define IFLA_BRIDGE_CFM_CC_PEER_STATUS_MAX (__IFLA_BRIDGE_CFM_CC_PEER_STATUS_MAX - 1) 388 enum { 389 IFLA_BRIDGE_MST_UNSPEC, 390 IFLA_BRIDGE_MST_ENTRY, 391 __IFLA_BRIDGE_MST_MAX, 392 }; 393 #define IFLA_BRIDGE_MST_MAX (__IFLA_BRIDGE_MST_MAX - 1) 394 enum { 395 IFLA_BRIDGE_MST_ENTRY_UNSPEC, 396 IFLA_BRIDGE_MST_ENTRY_MSTI, 397 IFLA_BRIDGE_MST_ENTRY_STATE, 398 __IFLA_BRIDGE_MST_ENTRY_MAX, 399 }; 400 #define IFLA_BRIDGE_MST_ENTRY_MAX (__IFLA_BRIDGE_MST_ENTRY_MAX - 1) 401 struct bridge_stp_xstats { 402 __u64 transition_blk; 403 __u64 transition_fwd; 404 __u64 rx_bpdu; 405 __u64 tx_bpdu; 406 __u64 rx_tcn; 407 __u64 tx_tcn; 408 }; 409 struct br_vlan_msg { 410 __u8 family; 411 __u8 reserved1; 412 __u16 reserved2; 413 __u32 ifindex; 414 }; 415 enum { 416 BRIDGE_VLANDB_DUMP_UNSPEC, 417 BRIDGE_VLANDB_DUMP_FLAGS, 418 __BRIDGE_VLANDB_DUMP_MAX, 419 }; 420 #define BRIDGE_VLANDB_DUMP_MAX (__BRIDGE_VLANDB_DUMP_MAX - 1) 421 #define BRIDGE_VLANDB_DUMPF_STATS (1 << 0) 422 #define BRIDGE_VLANDB_DUMPF_GLOBAL (1 << 1) 423 enum { 424 BRIDGE_VLANDB_UNSPEC, 425 BRIDGE_VLANDB_ENTRY, 426 BRIDGE_VLANDB_GLOBAL_OPTIONS, 427 __BRIDGE_VLANDB_MAX, 428 }; 429 #define BRIDGE_VLANDB_MAX (__BRIDGE_VLANDB_MAX - 1) 430 enum { 431 BRIDGE_VLANDB_ENTRY_UNSPEC, 432 BRIDGE_VLANDB_ENTRY_INFO, 433 BRIDGE_VLANDB_ENTRY_RANGE, 434 BRIDGE_VLANDB_ENTRY_STATE, 435 BRIDGE_VLANDB_ENTRY_TUNNEL_INFO, 436 BRIDGE_VLANDB_ENTRY_STATS, 437 BRIDGE_VLANDB_ENTRY_MCAST_ROUTER, 438 __BRIDGE_VLANDB_ENTRY_MAX, 439 }; 440 #define BRIDGE_VLANDB_ENTRY_MAX (__BRIDGE_VLANDB_ENTRY_MAX - 1) 441 enum { 442 BRIDGE_VLANDB_TINFO_UNSPEC, 443 BRIDGE_VLANDB_TINFO_ID, 444 BRIDGE_VLANDB_TINFO_CMD, 445 __BRIDGE_VLANDB_TINFO_MAX, 446 }; 447 #define BRIDGE_VLANDB_TINFO_MAX (__BRIDGE_VLANDB_TINFO_MAX - 1) 448 enum { 449 BRIDGE_VLANDB_STATS_UNSPEC, 450 BRIDGE_VLANDB_STATS_RX_BYTES, 451 BRIDGE_VLANDB_STATS_RX_PACKETS, 452 BRIDGE_VLANDB_STATS_TX_BYTES, 453 BRIDGE_VLANDB_STATS_TX_PACKETS, 454 BRIDGE_VLANDB_STATS_PAD, 455 __BRIDGE_VLANDB_STATS_MAX, 456 }; 457 #define BRIDGE_VLANDB_STATS_MAX (__BRIDGE_VLANDB_STATS_MAX - 1) 458 enum { 459 BRIDGE_VLANDB_GOPTS_UNSPEC, 460 BRIDGE_VLANDB_GOPTS_ID, 461 BRIDGE_VLANDB_GOPTS_RANGE, 462 BRIDGE_VLANDB_GOPTS_MCAST_SNOOPING, 463 BRIDGE_VLANDB_GOPTS_MCAST_IGMP_VERSION, 464 BRIDGE_VLANDB_GOPTS_MCAST_MLD_VERSION, 465 BRIDGE_VLANDB_GOPTS_MCAST_LAST_MEMBER_CNT, 466 BRIDGE_VLANDB_GOPTS_MCAST_STARTUP_QUERY_CNT, 467 BRIDGE_VLANDB_GOPTS_MCAST_LAST_MEMBER_INTVL, 468 BRIDGE_VLANDB_GOPTS_PAD, 469 BRIDGE_VLANDB_GOPTS_MCAST_MEMBERSHIP_INTVL, 470 BRIDGE_VLANDB_GOPTS_MCAST_QUERIER_INTVL, 471 BRIDGE_VLANDB_GOPTS_MCAST_QUERY_INTVL, 472 BRIDGE_VLANDB_GOPTS_MCAST_QUERY_RESPONSE_INTVL, 473 BRIDGE_VLANDB_GOPTS_MCAST_STARTUP_QUERY_INTVL, 474 BRIDGE_VLANDB_GOPTS_MCAST_QUERIER, 475 BRIDGE_VLANDB_GOPTS_MCAST_ROUTER_PORTS, 476 BRIDGE_VLANDB_GOPTS_MCAST_QUERIER_STATE, 477 BRIDGE_VLANDB_GOPTS_MSTI, 478 __BRIDGE_VLANDB_GOPTS_MAX 479 }; 480 #define BRIDGE_VLANDB_GOPTS_MAX (__BRIDGE_VLANDB_GOPTS_MAX - 1) 481 enum { 482 MDBA_UNSPEC, 483 MDBA_MDB, 484 MDBA_ROUTER, 485 __MDBA_MAX, 486 }; 487 #define MDBA_MAX (__MDBA_MAX - 1) 488 enum { 489 MDBA_MDB_UNSPEC, 490 MDBA_MDB_ENTRY, 491 __MDBA_MDB_MAX, 492 }; 493 #define MDBA_MDB_MAX (__MDBA_MDB_MAX - 1) 494 enum { 495 MDBA_MDB_ENTRY_UNSPEC, 496 MDBA_MDB_ENTRY_INFO, 497 __MDBA_MDB_ENTRY_MAX, 498 }; 499 #define MDBA_MDB_ENTRY_MAX (__MDBA_MDB_ENTRY_MAX - 1) 500 enum { 501 MDBA_MDB_EATTR_UNSPEC, 502 MDBA_MDB_EATTR_TIMER, 503 MDBA_MDB_EATTR_SRC_LIST, 504 MDBA_MDB_EATTR_GROUP_MODE, 505 MDBA_MDB_EATTR_SOURCE, 506 MDBA_MDB_EATTR_RTPROT, 507 __MDBA_MDB_EATTR_MAX 508 }; 509 #define MDBA_MDB_EATTR_MAX (__MDBA_MDB_EATTR_MAX - 1) 510 enum { 511 MDBA_MDB_SRCLIST_UNSPEC, 512 MDBA_MDB_SRCLIST_ENTRY, 513 __MDBA_MDB_SRCLIST_MAX 514 }; 515 #define MDBA_MDB_SRCLIST_MAX (__MDBA_MDB_SRCLIST_MAX - 1) 516 enum { 517 MDBA_MDB_SRCATTR_UNSPEC, 518 MDBA_MDB_SRCATTR_ADDRESS, 519 MDBA_MDB_SRCATTR_TIMER, 520 __MDBA_MDB_SRCATTR_MAX 521 }; 522 #define MDBA_MDB_SRCATTR_MAX (__MDBA_MDB_SRCATTR_MAX - 1) 523 enum { 524 MDB_RTR_TYPE_DISABLED, 525 MDB_RTR_TYPE_TEMP_QUERY, 526 MDB_RTR_TYPE_PERM, 527 MDB_RTR_TYPE_TEMP 528 }; 529 enum { 530 MDBA_ROUTER_UNSPEC, 531 MDBA_ROUTER_PORT, 532 __MDBA_ROUTER_MAX, 533 }; 534 #define MDBA_ROUTER_MAX (__MDBA_ROUTER_MAX - 1) 535 enum { 536 MDBA_ROUTER_PATTR_UNSPEC, 537 MDBA_ROUTER_PATTR_TIMER, 538 MDBA_ROUTER_PATTR_TYPE, 539 MDBA_ROUTER_PATTR_INET_TIMER, 540 MDBA_ROUTER_PATTR_INET6_TIMER, 541 MDBA_ROUTER_PATTR_VID, 542 __MDBA_ROUTER_PATTR_MAX 543 }; 544 #define MDBA_ROUTER_PATTR_MAX (__MDBA_ROUTER_PATTR_MAX - 1) 545 struct br_port_msg { 546 __u8 family; 547 __u32 ifindex; 548 }; 549 struct br_mdb_entry { 550 __u32 ifindex; 551 #define MDB_TEMPORARY 0 552 #define MDB_PERMANENT 1 553 __u8 state; 554 #define MDB_FLAGS_OFFLOAD (1 << 0) 555 #define MDB_FLAGS_FAST_LEAVE (1 << 1) 556 #define MDB_FLAGS_STAR_EXCL (1 << 2) 557 #define MDB_FLAGS_BLOCKED (1 << 3) 558 __u8 flags; 559 __u16 vid; 560 struct { 561 union { 562 __be32 ip4; 563 struct in6_addr ip6; 564 unsigned char mac_addr[ETH_ALEN]; 565 } u; 566 __be16 proto; 567 } addr; 568 }; 569 enum { 570 MDBA_SET_ENTRY_UNSPEC, 571 MDBA_SET_ENTRY, 572 MDBA_SET_ENTRY_ATTRS, 573 __MDBA_SET_ENTRY_MAX, 574 }; 575 #define MDBA_SET_ENTRY_MAX (__MDBA_SET_ENTRY_MAX - 1) 576 enum { 577 MDBE_ATTR_UNSPEC, 578 MDBE_ATTR_SOURCE, 579 MDBE_ATTR_SRC_LIST, 580 MDBE_ATTR_GROUP_MODE, 581 MDBE_ATTR_RTPROT, 582 __MDBE_ATTR_MAX, 583 }; 584 #define MDBE_ATTR_MAX (__MDBE_ATTR_MAX - 1) 585 enum { 586 MDBE_SRC_LIST_UNSPEC, 587 MDBE_SRC_LIST_ENTRY, 588 __MDBE_SRC_LIST_MAX, 589 }; 590 #define MDBE_SRC_LIST_MAX (__MDBE_SRC_LIST_MAX - 1) 591 enum { 592 MDBE_SRCATTR_UNSPEC, 593 MDBE_SRCATTR_ADDRESS, 594 __MDBE_SRCATTR_MAX, 595 }; 596 #define MDBE_SRCATTR_MAX (__MDBE_SRCATTR_MAX - 1) 597 enum { 598 BRIDGE_XSTATS_UNSPEC, 599 BRIDGE_XSTATS_VLAN, 600 BRIDGE_XSTATS_MCAST, 601 BRIDGE_XSTATS_PAD, 602 BRIDGE_XSTATS_STP, 603 __BRIDGE_XSTATS_MAX 604 }; 605 #define BRIDGE_XSTATS_MAX (__BRIDGE_XSTATS_MAX - 1) 606 enum { 607 BR_MCAST_DIR_RX, 608 BR_MCAST_DIR_TX, 609 BR_MCAST_DIR_SIZE 610 }; 611 struct br_mcast_stats { 612 __u64 igmp_v1queries[BR_MCAST_DIR_SIZE]; 613 __u64 igmp_v2queries[BR_MCAST_DIR_SIZE]; 614 __u64 igmp_v3queries[BR_MCAST_DIR_SIZE]; 615 __u64 igmp_leaves[BR_MCAST_DIR_SIZE]; 616 __u64 igmp_v1reports[BR_MCAST_DIR_SIZE]; 617 __u64 igmp_v2reports[BR_MCAST_DIR_SIZE]; 618 __u64 igmp_v3reports[BR_MCAST_DIR_SIZE]; 619 __u64 igmp_parse_errors; 620 __u64 mld_v1queries[BR_MCAST_DIR_SIZE]; 621 __u64 mld_v2queries[BR_MCAST_DIR_SIZE]; 622 __u64 mld_leaves[BR_MCAST_DIR_SIZE]; 623 __u64 mld_v1reports[BR_MCAST_DIR_SIZE]; 624 __u64 mld_v2reports[BR_MCAST_DIR_SIZE]; 625 __u64 mld_parse_errors; 626 __u64 mcast_bytes[BR_MCAST_DIR_SIZE]; 627 __u64 mcast_packets[BR_MCAST_DIR_SIZE]; 628 }; 629 enum br_boolopt_id { 630 BR_BOOLOPT_NO_LL_LEARN, 631 BR_BOOLOPT_MCAST_VLAN_SNOOPING, 632 BR_BOOLOPT_MST_ENABLE, 633 BR_BOOLOPT_MAX 634 }; 635 struct br_boolopt_multi { 636 __u32 optval; 637 __u32 optmask; 638 }; 639 enum { 640 BRIDGE_QUERIER_UNSPEC, 641 BRIDGE_QUERIER_IP_ADDRESS, 642 BRIDGE_QUERIER_IP_PORT, 643 BRIDGE_QUERIER_IP_OTHER_TIMER, 644 BRIDGE_QUERIER_PAD, 645 BRIDGE_QUERIER_IPV6_ADDRESS, 646 BRIDGE_QUERIER_IPV6_PORT, 647 BRIDGE_QUERIER_IPV6_OTHER_TIMER, 648 __BRIDGE_QUERIER_MAX 649 }; 650 #define BRIDGE_QUERIER_MAX (__BRIDGE_QUERIER_MAX - 1) 651 #endif 652