diff options
| author | Stephen Hemminger <shemminger@osdl.org> | 2004-04-16 00:21:12 -0700 |
|---|---|---|
| committer | Stephen Hemminger <shemminger@osdl.org> | 2004-04-16 00:21:12 -0700 |
| commit | 48134e548024d265edb113b6170e76d2a67622b2 (patch) | |
| tree | cf128dd54b9e73a3892f74f8879d4d76961db016 | |
| parent | 5c648dca17cbe6be1b1a0f3fe5f0542cf79c65cd (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.h | 50 | ||||
| -rw-r--r-- | net/bridge/br_stp.c | 8 | ||||
| -rw-r--r-- | net/bridge/br_stp_if.c | 6 |
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); |
