diff options
Diffstat (limited to 'net/bridge/br_private.h')
-rw-r--r-- | net/bridge/br_private.h | 23 |
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 | ||
31 | typedef struct bridge_id bridge_id; | 34 | typedef struct bridge_id bridge_id; |
32 | typedef struct mac_addr mac_addr; | 35 | typedef 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 */ |
132 | extern void br_dev_setup(struct net_device *dev); | 140 | extern void br_dev_setup(struct net_device *dev); |
133 | extern int br_dev_xmit(struct sk_buff *skb, struct net_device *dev); | 141 | extern int br_dev_xmit(struct sk_buff *skb, struct net_device *dev); |
134 | 142 | ||
135 | /* br_fdb.c */ | 143 | /* br_fdb.c */ |
136 | extern void br_fdb_init(void); | 144 | extern int br_fdb_init(void); |
137 | extern void br_fdb_fini(void); | 145 | extern void br_fdb_fini(void); |
146 | extern void br_fdb_flush(struct net_bridge *br); | ||
138 | extern void br_fdb_changeaddr(struct net_bridge_port *p, | 147 | extern void br_fdb_changeaddr(struct net_bridge_port *p, |
139 | const unsigned char *newaddr); | 148 | const unsigned char *newaddr); |
140 | extern void br_fdb_cleanup(unsigned long arg); | 149 | extern 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 */ |
184 | extern int br_handle_frame_finish(struct sk_buff *skb); | 193 | extern int br_handle_frame_finish(struct sk_buff *skb); |
185 | extern int br_handle_frame(struct net_bridge_port *p, struct sk_buff **pskb); | 194 | extern 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 */ |
188 | extern int br_dev_ioctl(struct net_device *dev, struct ifreq *rq, int cmd); | 198 | extern 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 */ |
208 | extern void br_stp_enable_bridge(struct net_bridge *br); | 218 | extern void br_stp_enable_bridge(struct net_bridge *br); |
209 | extern void br_stp_disable_bridge(struct net_bridge *br); | 219 | extern void br_stp_disable_bridge(struct net_bridge *br); |
220 | extern void br_stp_set_enabled(struct net_bridge *br, unsigned long val); | ||
210 | extern void br_stp_enable_port(struct net_bridge_port *p); | 221 | extern void br_stp_enable_port(struct net_bridge_port *p); |
211 | extern void br_stp_disable_port(struct net_bridge_port *p); | 222 | extern void br_stp_disable_port(struct net_bridge_port *p); |
212 | extern void br_stp_recalculate_bridge_id(struct net_bridge *br); | 223 | extern 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 */ |
238 | extern void br_netlink_init(void); | 249 | extern int br_netlink_init(void); |
239 | extern void br_netlink_fini(void); | 250 | extern void br_netlink_fini(void); |
240 | extern void br_ifinfo_notify(int event, struct net_bridge_port *port); | 251 | extern void br_ifinfo_notify(int event, struct net_bridge_port *port); |
241 | 252 | ||