111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/****************************************************************************
211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   This header was automatically generated from a Linux kernel header
511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   of the same name, to make information necessary for userspace to
611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   call into the kernel available to libc.  It contains only constants,
711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   structures, and macros generated from the original header, and thus,
811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***   contains no copyrightable information.
911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ***
1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************
1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/
1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _LINUX_IF_BRIDGE_H
1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _LINUX_IF_BRIDGE_H
1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/types.h>
1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SYSFS_BRIDGE_ATTR "bridge"
1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SYSFS_BRIDGE_FDB "brforward"
1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SYSFS_BRIDGE_PORT_SUBDIR "brif"
2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SYSFS_BRIDGE_PORT_ATTR "brport"
2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SYSFS_BRIDGE_PORT_LINK "bridge"
2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BRCTL_VERSION 1
2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BRCTL_GET_VERSION 0
2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BRCTL_GET_BRIDGES 1
2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BRCTL_ADD_BRIDGE 2
2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BRCTL_DEL_BRIDGE 3
2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BRCTL_ADD_IF 4
3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BRCTL_DEL_IF 5
3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BRCTL_GET_BRIDGE_INFO 6
3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BRCTL_GET_PORT_LIST 7
3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BRCTL_SET_BRIDGE_FORWARD_DELAY 8
3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BRCTL_SET_BRIDGE_HELLO_TIME 9
3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BRCTL_SET_BRIDGE_MAX_AGE 10
3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BRCTL_SET_AGEING_TIME 11
3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BRCTL_SET_GC_INTERVAL 12
3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BRCTL_GET_PORT_INFO 13
3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BRCTL_SET_BRIDGE_STP_STATE 14
4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BRCTL_SET_BRIDGE_PRIORITY 15
4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BRCTL_SET_PORT_PRIORITY 16
4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BRCTL_SET_PATH_COST 17
4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BRCTL_GET_FDB_ENTRIES 18
4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BR_STATE_DISABLED 0
4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BR_STATE_LISTENING 1
4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BR_STATE_LEARNING 2
4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BR_STATE_FORWARDING 3
4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define BR_STATE_BLOCKING 4
5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct __bridge_info
5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{
5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 designated_root;
5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 bridge_id;
5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 root_path_cost;
5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 max_age;
5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 hello_time;
5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 forward_delay;
5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 bridge_max_age;
6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 bridge_hello_time;
6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 bridge_forward_delay;
6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 topology_change;
6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 topology_change_detected;
6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 root_port;
6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 stp_enabled;
6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 ageing_time;
6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 gc_interval;
6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 hello_timer_value;
6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 tcn_timer_value;
7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 topology_change_timer_value;
7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 gc_timer_value;
7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct __port_info
7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{
7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 designated_root;
7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u64 designated_bridge;
7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 port_id;
7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u16 designated_port;
8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 path_cost;
8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 designated_cost;
8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 state;
8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 top_change_ack;
8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 config_pending;
8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 unused0;
8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 message_age_timer_value;
8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 forward_delay_timer_value;
8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 hold_timer_value;
8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct __fdb_entry
9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert{
9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 mac_addr[6];
9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 port_no;
9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u8 is_local;
9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 ageing_timer_value;
9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __u32 unused;
9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert};
9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert
10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif
101