]> git.neil.brown.name Git - history.git/commitdiff
[BRIDGE]: STP unsigned fields.
authorStephen Hemminger <shemminger@osdl.org>
Fri, 16 Apr 2004 07:21:12 +0000 (00:21 -0700)
committerStephen Hemminger <shemminger@osdl.org>
Fri, 16 Apr 2004 07:21:12 +0000 (00:21 -0700)
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

net/bridge/br_private.h
net/bridge/br_stp.c
net/bridge/br_stp_if.c

index a7e7cf38106cd0802be2e7010b01e41b0150fa64..12107da1ee0fe4e13b310437edcd22a9fa99fecb 100644 (file)
@@ -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);
index d69a2faf083e68e22894cbffb7d5a706e2020617..9c5752df9a1508b52f8298edff51bc37768394f5 100644 (file)
@@ -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))
index 59605ae0ad380b68f9421456f95b5bf6b4912919..6fba94c737d9578b6bb9ca4c8d651bffe37f692a 100644 (file)
@@ -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);