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