summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Hemminger <shemminger@osdl.org>2004-04-16 00:21:12 -0700
committerStephen Hemminger <shemminger@osdl.org>2004-04-16 00:21:12 -0700
commit48134e548024d265edb113b6170e76d2a67622b2 (patch)
treecf128dd54b9e73a3892f74f8879d4d76961db016
parent5c648dca17cbe6be1b1a0f3fe5f0542cf79c65cd (diff)
[BRIDGE]: STP unsigned fields.
Use correct types for fields related to spanning tree protocols. * costs are 32 bit unsigned * ports are 16 bit unsigned * booleans are bytes rather than bitfield * arrange for better packing
-rw-r--r--net/bridge/br_private.h50
-rw-r--r--net/bridge/br_stp.c8
-rw-r--r--net/bridge/br_stp_if.c6
3 files changed, 31 insertions, 33 deletions
diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h
index a7e7cf38106c..12107da1ee0f 100644
--- a/net/bridge/br_private.h
+++ b/net/bridge/br_private.h
@@ -56,19 +56,19 @@ struct net_bridge_port
struct net_bridge *br;
struct net_device *dev;
struct list_head list;
- __u8 port_no;
- __u8 priority;
/* STP */
+ u8 priority;
+ u8 state;
+ u16 port_no;
+ unsigned char topology_change_ack;
+ unsigned char config_pending;
port_id port_id;
- int state;
- int path_cost;
+ port_id designated_port;
bridge_id designated_root;
- int designated_cost;
bridge_id designated_bridge;
- port_id designated_port;
- unsigned topology_change_ack:1;
- unsigned config_pending:1;
+ u32 path_cost;
+ u32 designated_cost;
struct timer_list forward_delay_timer;
struct timer_list hold_timer;
@@ -88,25 +88,25 @@ struct net_bridge
/* STP */
bridge_id designated_root;
- int root_path_cost;
- int root_port;
- int max_age;
- int hello_time;
- int forward_delay;
bridge_id bridge_id;
- int bridge_max_age;
- int bridge_hello_time;
- int bridge_forward_delay;
- unsigned stp_enabled:1;
- unsigned topology_change:1;
- unsigned topology_change_detected:1;
+ u32 root_path_cost;
+ unsigned long max_age;
+ unsigned long hello_time;
+ unsigned long forward_delay;
+ unsigned long bridge_max_age;
+ unsigned long ageing_time;
+ unsigned long bridge_hello_time;
+ unsigned long bridge_forward_delay;
+
+ u16 root_port;
+ unsigned char stp_enabled;
+ unsigned char topology_change;
+ unsigned char topology_change_detected;
struct timer_list hello_timer;
struct timer_list tcn_timer;
struct timer_list topology_change_timer;
struct timer_list gc_timer;
-
- int ageing_time;
};
extern struct notifier_block br_device_notifier;
@@ -187,7 +187,7 @@ extern void br_netfilter_fini(void);
/* br_stp.c */
extern void br_log_state(const struct net_bridge_port *p);
extern struct net_bridge_port *br_get_port(struct net_bridge *br,
- int port_no);
+ u16 port_no);
extern void br_init_port(struct net_bridge_port *p);
extern void br_become_designated_port(struct net_bridge_port *p);
@@ -198,11 +198,11 @@ extern void br_stp_enable_port(struct net_bridge_port *p);
extern void br_stp_disable_port(struct net_bridge_port *p);
extern void br_stp_recalculate_bridge_id(struct net_bridge *br);
extern void br_stp_set_bridge_priority(struct net_bridge *br,
- int newprio);
+ u16 newprio);
extern void br_stp_set_port_priority(struct net_bridge_port *p,
- int newprio);
+ u8 newprio);
extern void br_stp_set_path_cost(struct net_bridge_port *p,
- int path_cost);
+ u32 path_cost);
/* br_stp_bpdu.c */
extern int br_stp_handle_bpdu(struct sk_buff *skb);
diff --git a/net/bridge/br_stp.c b/net/bridge/br_stp.c
index d69a2faf083e..9c5752df9a15 100644
--- a/net/bridge/br_stp.c
+++ b/net/bridge/br_stp.c
@@ -35,7 +35,7 @@ void br_log_state(const struct net_bridge_port *p)
}
/* called under bridge lock */
-struct net_bridge_port *br_get_port(struct net_bridge *br, int port_no)
+struct net_bridge_port *br_get_port(struct net_bridge *br, u16 port_no)
{
struct net_bridge_port *p;
@@ -49,7 +49,7 @@ struct net_bridge_port *br_get_port(struct net_bridge *br, int port_no)
/* called under bridge lock */
static int br_should_become_root_port(const struct net_bridge_port *p,
- int root_port)
+ u16 root_port)
{
struct net_bridge *br;
struct net_bridge_port *rp;
@@ -102,9 +102,7 @@ static int br_should_become_root_port(const struct net_bridge_port *p,
static void br_root_selection(struct net_bridge *br)
{
struct net_bridge_port *p;
- int root_port;
-
- root_port = 0;
+ u16 root_port = 0;
list_for_each_entry(p, &br->port_list, list) {
if (br_should_become_root_port(p, root_port))
diff --git a/net/bridge/br_stp_if.c b/net/bridge/br_stp_if.c
index 59605ae0ad38..6fba94c737d9 100644
--- a/net/bridge/br_stp_if.c
+++ b/net/bridge/br_stp_if.c
@@ -158,7 +158,7 @@ void br_stp_recalculate_bridge_id(struct net_bridge *br)
}
/* called under bridge lock */
-void br_stp_set_bridge_priority(struct net_bridge *br, int newprio)
+void br_stp_set_bridge_priority(struct net_bridge *br, u16 newprio)
{
struct net_bridge_port *p;
int wasroot;
@@ -183,7 +183,7 @@ void br_stp_set_bridge_priority(struct net_bridge *br, int newprio)
}
/* called under bridge lock */
-void br_stp_set_port_priority(struct net_bridge_port *p, int newprio)
+void br_stp_set_port_priority(struct net_bridge_port *p, u8 newprio)
{
__u16 new_port_id;
@@ -202,7 +202,7 @@ void br_stp_set_port_priority(struct net_bridge_port *p, int newprio)
}
/* called under bridge lock */
-void br_stp_set_path_cost(struct net_bridge_port *p, int path_cost)
+void br_stp_set_path_cost(struct net_bridge_port *p, u32 path_cost)
{
p->path_cost = path_cost;
br_configuration_update(p->br);