aboutsummaryrefslogtreecommitdiffstats
path: root/net/bridge/br_private.h
diff options
context:
space:
mode:
Diffstat (limited to 'net/bridge/br_private.h')
-rw-r--r--net/bridge/br_private.h23
1 files changed, 17 insertions, 6 deletions
diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h
index cc3f1c99261a..21bf3a9a03fd 100644
--- a/net/bridge/br_private.h
+++ b/net/bridge/br_private.h
@@ -26,7 +26,10 @@
26#define BR_PORT_BITS 10 26#define BR_PORT_BITS 10
27#define BR_MAX_PORTS (1<<BR_PORT_BITS) 27#define BR_MAX_PORTS (1<<BR_PORT_BITS)
28 28
29#define BR_VERSION "2.2" 29#define BR_VERSION "2.3"
30
31/* Path to usermode spanning tree program */
32#define BR_STP_PROG "/sbin/bridge-stp"
30 33
31typedef struct bridge_id bridge_id; 34typedef struct bridge_id bridge_id;
32typedef struct mac_addr mac_addr; 35typedef struct mac_addr mac_addr;
@@ -107,7 +110,13 @@ struct net_bridge
107 110
108 u8 group_addr[ETH_ALEN]; 111 u8 group_addr[ETH_ALEN];
109 u16 root_port; 112 u16 root_port;
110 unsigned char stp_enabled; 113
114 enum {
115 BR_NO_STP, /* no spanning tree */
116 BR_KERNEL_STP, /* old STP in kernel */
117 BR_USER_STP, /* new RSTP in userspace */
118 } stp_enabled;
119
111 unsigned char topology_change; 120 unsigned char topology_change;
112 unsigned char topology_change_detected; 121 unsigned char topology_change_detected;
113 122
@@ -127,14 +136,14 @@ static inline int br_is_root_bridge(const struct net_bridge *br)
127 return !memcmp(&br->bridge_id, &br->designated_root, 8); 136 return !memcmp(&br->bridge_id, &br->designated_root, 8);
128} 137}
129 138
130
131/* br_device.c */ 139/* br_device.c */
132extern void br_dev_setup(struct net_device *dev); 140extern void br_dev_setup(struct net_device *dev);
133extern int br_dev_xmit(struct sk_buff *skb, struct net_device *dev); 141extern int br_dev_xmit(struct sk_buff *skb, struct net_device *dev);
134 142
135/* br_fdb.c */ 143/* br_fdb.c */
136extern void br_fdb_init(void); 144extern int br_fdb_init(void);
137extern void br_fdb_fini(void); 145extern void br_fdb_fini(void);
146extern void br_fdb_flush(struct net_bridge *br);
138extern void br_fdb_changeaddr(struct net_bridge_port *p, 147extern void br_fdb_changeaddr(struct net_bridge_port *p,
139 const unsigned char *newaddr); 148 const unsigned char *newaddr);
140extern void br_fdb_cleanup(unsigned long arg); 149extern void br_fdb_cleanup(unsigned long arg);
@@ -182,7 +191,8 @@ extern void br_features_recompute(struct net_bridge *br);
182 191
183/* br_input.c */ 192/* br_input.c */
184extern int br_handle_frame_finish(struct sk_buff *skb); 193extern int br_handle_frame_finish(struct sk_buff *skb);
185extern int br_handle_frame(struct net_bridge_port *p, struct sk_buff **pskb); 194extern struct sk_buff *br_handle_frame(struct net_bridge_port *p,
195 struct sk_buff *skb);
186 196
187/* br_ioctl.c */ 197/* br_ioctl.c */
188extern int br_dev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); 198extern int br_dev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd);
@@ -207,6 +217,7 @@ extern void br_become_designated_port(struct net_bridge_port *p);
207/* br_stp_if.c */ 217/* br_stp_if.c */
208extern void br_stp_enable_bridge(struct net_bridge *br); 218extern void br_stp_enable_bridge(struct net_bridge *br);
209extern void br_stp_disable_bridge(struct net_bridge *br); 219extern void br_stp_disable_bridge(struct net_bridge *br);
220extern void br_stp_set_enabled(struct net_bridge *br, unsigned long val);
210extern void br_stp_enable_port(struct net_bridge_port *p); 221extern void br_stp_enable_port(struct net_bridge_port *p);
211extern void br_stp_disable_port(struct net_bridge_port *p); 222extern void br_stp_disable_port(struct net_bridge_port *p);
212extern void br_stp_recalculate_bridge_id(struct net_bridge *br); 223extern void br_stp_recalculate_bridge_id(struct net_bridge *br);
@@ -235,7 +246,7 @@ extern void (*br_fdb_put_hook)(struct net_bridge_fdb_entry *ent);
235 246
236 247
237/* br_netlink.c */ 248/* br_netlink.c */
238extern void br_netlink_init(void); 249extern int br_netlink_init(void);
239extern void br_netlink_fini(void); 250extern void br_netlink_fini(void);
240extern void br_ifinfo_notify(int event, struct net_bridge_port *port); 251extern void br_ifinfo_notify(int event, struct net_bridge_port *port);
241 252