Acked-by: Daniele Venturino <daniele.ventur...@m3s.it> 2014-08-21 1:57 GMT+02:00 Jarno Rajahalme <jrajaha...@nicira.com>:
> Signed-off-by: Jarno Rajahalme <jrajaha...@nicira.com> > --- > lib/rstp-state-machines.c | 398 > +++++++++++++++++++++------------------------ > 1 file changed, 182 insertions(+), 216 deletions(-) > > diff --git a/lib/rstp-state-machines.c b/lib/rstp-state-machines.c > index 3a408b4..e8b8438 100644 > --- a/lib/rstp-state-machines.c > +++ b/lib/rstp-state-machines.c > @@ -109,11 +109,12 @@ process_received_bpdu__(struct rstp_port *p, const > void *bpdu, > { > struct rstp *rstp = p->rstp; > > - if (!p->port_enabled) > + if (!p->port_enabled) { > return; > - if (p->rcvd_bpdu) > + } > + if (p->rcvd_bpdu) { > return; > - > + } > if (validate_received_bpdu(p, bpdu, bpdu_size) == 0) { > p->rcvd_bpdu = true; > p->rx_rstp_bpdu_cnt++; > @@ -129,6 +130,7 @@ process_received_bpdu__(struct rstp_port *p, const > void *bpdu, > } > } > > +/* Returns 0 on success. */ > static int > validate_received_bpdu(struct rstp_port *p, const void *bpdu, size_t > bpdu_size) > OVS_REQUIRES(rstp_mutex) > @@ -141,18 +143,16 @@ validate_received_bpdu(struct rstp_port *p, const > void *bpdu, size_t bpdu_size) > ntohs(temp->protocol_identifier) != 0) { > return -1; > } else { > - if (temp->bpdu_type == CONFIGURATION_BPDU && > - bpdu_size >= CONFIGURATION_BPDU_SIZE && > - (time_decode(temp->message_age) < > time_decode(temp->max_age))) > - { > + if (temp->bpdu_type == CONFIGURATION_BPDU > + && bpdu_size >= CONFIGURATION_BPDU_SIZE > + && (time_decode(temp->message_age) < > time_decode(temp->max_age))) { > if ((ntohll(temp->designated_bridge_id) != > - p->rstp->bridge_identifier) || > - ((ntohll(temp->designated_bridge_id) == > - p->rstp->bridge_identifier) && > - (ntohs(temp->designated_port_id) != p->port_id))) { > + p->rstp->bridge_identifier) > + || ((ntohll(temp->designated_bridge_id) == > + p->rstp->bridge_identifier) > + && (ntohs(temp->designated_port_id) != p->port_id))) { > return 0; > - } > - else { > + } else { > return -1; > } > } else if (temp->bpdu_type == TOPOLOGY_CHANGE_NOTIFICATION_BPDU) { > @@ -160,8 +160,7 @@ validate_received_bpdu(struct rstp_port *p, const void > *bpdu, size_t bpdu_size) > } else if (temp->bpdu_type == RAPID_SPANNING_TREE_BPDU && > bpdu_size >= RAPID_SPANNING_TREE_BPDU_SIZE) { > return 0; > - } > - else { > + } else { > return -1; > } > } > @@ -173,7 +172,7 @@ validate_received_bpdu(struct rstp_port *p, const void > *bpdu, size_t bpdu_size) > * boolean 'changes' is true, meaning that something changed and the SMs > need > * to work to process this change. > * The boolean 'changes' is set every time a SM modifies its state, a > BPDU is > - * received, a timer expires or port down event is detected. If a > parameter is > + * received, a timer expires or port down event is detected. If a > parameter is > * set by management, then 'changes' is set. > */ > #define MAX_RSTP_ITERATIONS 1000 /* safeguard */ > @@ -181,12 +180,14 @@ int > move_rstp__(struct rstp *rstp) > OVS_REQUIRES(rstp_mutex) > { > - struct rstp_port *p; > int num_iterations; > num_iterations = 0; > > while (rstp->changes == true && num_iterations < MAX_RSTP_ITERATIONS) > { > + struct rstp_port *p; > + > VLOG_DBG("%s: move_rstp()", rstp->name); > + > rstp->changes = false; > port_role_selection_sm(rstp); > if (rstp->ports_count > 0) { > @@ -229,7 +230,7 @@ void decrease_rstp_port_timers__(struct rstp *r) > decrement_timer(&p->mdelay_while); > decrement_timer(&p->edge_delay_while); > decrement_timer(&p->tx_count); > - p->uptime+=1; > + p->uptime += 1; > } > } > r->changes = true; > @@ -290,6 +291,7 @@ updt_roles_tree__(struct rstp *r) > LIST_FOR_EACH (p, node, &r->ports) { > uint32_t old_root_path_cost; > uint32_t root_path_cost; > + > if (p->info_is != INFO_IS_RECEIVED) { > continue; > } > @@ -301,8 +303,7 @@ updt_roles_tree__(struct rstp *r) > candidate_vector.root_path_cost = root_path_cost; > > if ((candidate_vector.designated_bridge_id & > 0xffffffffffffULL) == > - (r->bridge_priority.designated_bridge_id & > 0xffffffffffffULL)) > - { > + (r->bridge_priority.designated_bridge_id & > 0xffffffffffffULL)) { > break; > } > if (compare_rstp_priority_vector(&candidate_vector, > &best_vector) > @@ -345,9 +346,10 @@ updt_roles_tree__(struct rstp *r) > break; > case INFO_IS_MINE: > p->selected_role = ROLE_DESIGNATED; > - if ((compare_rstp_priority_vector(&p->port_priority, > - &p->designated_priority_vector) != SAME) || > - !rstp_times_equal(&p->designated_times, > &r->root_times)) { > + if (compare_rstp_priority_vector(&p->port_priority, > + > &p->designated_priority_vector) > + != SAME > + || !rstp_times_equal(&p->designated_times, > &r->root_times)) { > p->updt_info = true; > } > break; > @@ -409,9 +411,10 @@ port_role_selection_sm(struct rstp *r) > > switch (r->port_role_selection_sm_state) { > case PORT_ROLE_SELECTION_SM_INIT: > - if (r->begin) > + if (r->begin) { > r->port_role_selection_sm_state = > PORT_ROLE_SELECTION_SM_INIT_BRIDGE_EXEC; > + } > break; > case PORT_ROLE_SELECTION_SM_INIT_BRIDGE_EXEC: > updt_role_disabled_tree(r); > @@ -540,8 +543,8 @@ port_protocol_migration_sm(struct rstp_port *p) > > switch (p->port_protocol_migration_sm_state) { > case PORT_PROTOCOL_MIGRATION_SM_INIT: > - p->port_protocol_migration_sm_state = > - PORT_PROTOCOL_MIGRATION_SM_CHECKING_RSTP_EXEC; > + p->port_protocol_migration_sm_state = > + PORT_PROTOCOL_MIGRATION_SM_CHECKING_RSTP_EXEC; > /* no break */ > case PORT_PROTOCOL_MIGRATION_SM_CHECKING_RSTP_EXEC: > p->mcheck = false; > @@ -552,16 +555,15 @@ port_protocol_migration_sm(struct rstp_port *p) > /* no break */ > case PORT_PROTOCOL_MIGRATION_SM_CHECKING_RSTP: > if (p->mdelay_while == 0) { > - p->port_protocol_migration_sm_state = > - PORT_PROTOCOL_MIGRATION_SM_SENSING_EXEC; > - } > - else if ((p->mdelay_while != r->migrate_time) && > !p->port_enabled) { > + p->port_protocol_migration_sm_state = > + PORT_PROTOCOL_MIGRATION_SM_SENSING_EXEC; > + } else if ((p->mdelay_while != r->migrate_time) && > !p->port_enabled) { > p->port_protocol_migration_sm_state = > PORT_PROTOCOL_MIGRATION_SM_CHECKING_RSTP_EXEC; > } > break; > case PORT_PROTOCOL_MIGRATION_SM_SELECTING_STP_EXEC: > - p->send_rstp = false; > + p->send_rstp = false; > p->mdelay_while = r->migrate_time; > p->port_protocol_migration_sm_state = > PORT_PROTOCOL_MIGRATION_SM_SELECTING_STP; > @@ -580,11 +582,10 @@ port_protocol_migration_sm(struct rstp_port *p) > /* no break */ > case PORT_PROTOCOL_MIGRATION_SM_SENSING: > if (!p->port_enabled || p->mcheck || ((r->rstp_version) && > - !p->send_rstp && p->rcvd_rstp)) { > + !p->send_rstp && > p->rcvd_rstp)) { > p->port_protocol_migration_sm_state = > PORT_PROTOCOL_MIGRATION_SM_CHECKING_RSTP_EXEC; > - } > - else if (p->send_rstp && p->rcvd_stp) { > + } else if (p->send_rstp && p->rcvd_stp) { > p->port_protocol_migration_sm_state = > PORT_PROTOCOL_MIGRATION_SM_SELECTING_STP_EXEC; > } > @@ -636,8 +637,9 @@ bridge_detection_sm(struct rstp_port *p) > p->bridge_detection_sm_state = BRIDGE_DETECTION_SM_NOT_EDGE; > /* no break */ > case BRIDGE_DETECTION_SM_NOT_EDGE: > - if ((!p->port_enabled && p->admin_edge) || ((p->edge_delay_while > == 0) > - && p->auto_edge && p->send_rstp && p->proposing)) { > + if ((!p->port_enabled && p->admin_edge) > + || ((p->edge_delay_while == 0) && p->auto_edge && p->send_rstp > + && p->proposing)) { > p->bridge_detection_sm_state = BRIDGE_DETECTION_SM_EDGE_EXEC; > } > break; > @@ -689,7 +691,7 @@ record_agreement(struct rstp_port *p) > > r = p->rstp; > if (r->rstp_version && p->oper_point_to_point_mac && > - ((p->received_bpdu_buffer.flags & BPDU_FLAG_AGREEMENT))) { > + ((p->received_bpdu_buffer.flags & BPDU_FLAG_AGREEMENT))) { > p->agreed = true; > p->proposing = false; > } else { > @@ -706,7 +708,7 @@ set_tc_flags(struct rstp_port *p) > * RST BPDU. > */ > if (p->received_bpdu_buffer.bpdu_type == CONFIGURATION_BPDU || > - p->received_bpdu_buffer.bpdu_type == > RAPID_SPANNING_TREE_BPDU) { > + p->received_bpdu_buffer.bpdu_type == RAPID_SPANNING_TREE_BPDU) { > if ((p->received_bpdu_buffer.flags & BPDU_FLAG_TOPCHANGE) != 0) { > p->rcvd_tc = true; > } > @@ -715,8 +717,8 @@ set_tc_flags(struct rstp_port *p) > } > } > /* Sets rcvd_tcn true if the BPDU is a TCN BPDU. */ > - if (p->received_bpdu_buffer.bpdu_type == > - TOPOLOGY_CHANGE_NOTIFICATION_BPDU) { > + if (p->received_bpdu_buffer.bpdu_type > + == TOPOLOGY_CHANGE_NOTIFICATION_BPDU) { > p->rcvd_tcn = true; > } > } > @@ -737,8 +739,9 @@ record_proposal(struct rstp_port *p) > { > enum port_flag role = > ((p->received_bpdu_buffer.flags) & ROLE_FLAG_MASK) >> > ROLE_FLAG_SHIFT; > - if ((role == PORT_DES) && > - ((p->received_bpdu_buffer.flags & BPDU_FLAG_PROPOSAL) != 0)) { > + > + if ((role == PORT_DES) > + && ((p->received_bpdu_buffer.flags & BPDU_FLAG_PROPOSAL) != 0)) { > p->proposed = true; > } > } > @@ -775,9 +778,9 @@ updt_rcvd_info_while(struct rstp_port *p) > */ > if (p->port_times.message_age < p->port_times.max_age) { > p->rcvd_info_while = p->port_times.hello_time * 3; > - } else { > + } else { > p->rcvd_info_while = 0; > - } > + } > } > > /* Times are internally held in seconds, while the protocol uses 1/256 > seconds. > @@ -847,6 +850,7 @@ tx_rstp(struct rstp_port *p) > bpdu.hello_time = time_encode(p->designated_times.hello_time); > bpdu.forward_delay = time_encode(p->designated_times.forward_delay); > bpdu.flags = 0; > + > switch (p->role) { > case ROLE_ROOT: > bpdu.flags = PORT_ROOT << ROLE_FLAG_SHIFT; > @@ -940,24 +944,20 @@ port_transmit_sm(struct rstp_port *p) > VLOG_DBG("%s, port %u: port_transmit_sm ROLE == DISABLED.", > p->rstp->name, p->port_number); > break; > - } > - else if (p->send_rstp && p->new_info && > - (p->tx_count < r->transmit_hold_count) && (p->hello_when > != 0) > - && p->selected && !p->updt_info) { > + } else if (p->send_rstp && p->new_info > + && p->tx_count < r->transmit_hold_count > + && p->hello_when != 0 && p->selected && !p->updt_info) > { > p->port_transmit_sm_state = > PORT_TRANSMIT_SM_TRANSMIT_RSTP_EXEC; > - } > - else if (p->hello_when == 0 && p->selected && !p->updt_info) { > + } else if (p->hello_when == 0 && p->selected && !p->updt_info) { > p->port_transmit_sm_state = > PORT_TRANSMIT_SM_TRANSMIT_PERIODIC_EXEC; > - } > - else if (!p->send_rstp && p->new_info && (p->role == ROLE_ROOT) && > - (p->tx_count < r->transmit_hold_count) && (p->hello_when > != 0) > - && p->selected && !p->updt_info) { > + } else if (!p->send_rstp && p->new_info && p->role == ROLE_ROOT > + && p->tx_count < r->transmit_hold_count > + && p->hello_when != 0 && p->selected && !p->updt_info) > { > p->port_transmit_sm_state = > PORT_TRANSMIT_SM_TRANSMIT_TCN_EXEC; > - } > - else if (!p->send_rstp && p->new_info && (p->role == > ROLE_DESIGNATED) > - && (p->tx_count < r->transmit_hold_count) && > - (p->hello_when != 0) && p->selected && !p->updt_info) { > + } else if (!p->send_rstp && p->new_info && p->role == > ROLE_DESIGNATED > + && p->tx_count < r->transmit_hold_count > + && p->hello_when != 0 && p->selected && !p->updt_info) > { > p->port_transmit_sm_state = > PORT_TRANSMIT_SM_TRANSMIT_CONFIG_EXEC; > } > break; > @@ -1033,7 +1033,7 @@ rcv_info(struct rstp_port *p) > cp = compare_rstp_priority_vector(&p->msg_priority, > &p->port_priority); > ct = rstp_times_equal(&p->port_times, &p->msg_times); > role = > - ((p->received_bpdu_buffer.flags) & ROLE_FLAG_MASK) >> > ROLE_FLAG_SHIFT; > + (p->received_bpdu_buffer.flags & ROLE_FLAG_MASK) >> > ROLE_FLAG_SHIFT; > > /* Returns SuperiorDesignatedInfo if: > * a) The received message conveys a Designated Port Role, and > @@ -1045,41 +1045,35 @@ rcv_info(struct rstp_port *p) > * 17.19.22). > * NOTE: Configuration BPDU explicitly conveys a Designated Port Role. > */ > - if ((role == PORT_DES || > - p->received_bpdu_buffer.bpdu_type == CONFIGURATION_BPDU) && > - ((cp == SUPERIOR) || ((cp == SAME) && ct == false))) { > + if ((role == PORT_DES > + || p->received_bpdu_buffer.bpdu_type == CONFIGURATION_BPDU) > + && (cp == SUPERIOR || (cp == SAME && ct == false))) { > return SUPERIOR_DESIGNATED_INFO; > - } > > - /* Returns RepeatedDesignatedInfo if: > - * b) The received message conveys Designated Port Role, and a message > - * priority vector and timer parameters that are the same as the > Port's > - * port priority vector or timer values. > - */ > - else if ((role == PORT_DES) && (cp == SAME) && (ct == true)) { > + /* Returns RepeatedDesignatedInfo if: > + * b) The received message conveys Designated Port Role, and a > message > + * priority vector and timer parameters that are the same as > the > + * Port's port priority vector or timer values. */ > + } else if (role == PORT_DES && cp == SAME && ct == true) { > return REPEATED_DESIGNATED_INFO; > - } > > - /* Returns InferiorDesignatedInfo if: > - * c) The received message conveys a Designated Port Role, and a > message > - * priority vector that is worse than the Port's port priority > vector. > - */ > - else if ((role == PORT_DES) && (cp == INFERIOR)) { > + /* Returns InferiorDesignatedInfo if: > + * c) The received message conveys a Designated Port Role, and a > + * message priority vector that is worse than the Port's port > + * priority vector. */ > + } else if (role == PORT_DES && cp == INFERIOR) { > return INFERIOR_DESIGNATED_INFO; > - } > > - /* Returns InferiorRootAlternateInfo if: > - * d) The received message conveys a Root Port, Alternate Port, or > Backup > - * Port Role and a message priority that is the same as or worse > than > - * the port priority vector. > - */ > - else if ((role == PORT_ROOT || role == PORT_ALT_BACK) && > - (cp == INFERIOR || cp == SAME)) { > + /* Returns InferiorRootAlternateInfo if: > + * d) The received message conveys a Root Port, Alternate Port, or > + * Backup Port Role and a message priority that is the same as > or > + * worse than the port priority vector. */ > + } else if ((role == PORT_ROOT || role == PORT_ALT_BACK) && > + (cp == INFERIOR || cp == SAME)) { > return INFERIOR_ROOT_ALTERNATE_INFO; > - } > > - /* Otherwise, returns OtherInfo. */ > - else { > + /* Otherwise, returns OtherInfo. */ > + } else { > return OTHER_INFO; > } > } > @@ -1089,12 +1083,13 @@ better_or_same_info(struct rstp_port *p, int > new_info_is) > OVS_REQUIRES(rstp_mutex) > { > /* >= SUPERIOR means that the vector is better or the same. */ > - return ((new_info_is == RECEIVED && p->info_is == INFO_IS_RECEIVED && > - compare_rstp_priority_vector(&p->msg_priority, > - &p->port_priority) >= SUPERIOR) || > - (new_info_is == MINE && p->info_is == INFO_IS_MINE && > - compare_rstp_priority_vector(&p->designated_priority_vector, > - &p->port_priority) >= SUPERIOR)); > + return > + (new_info_is == RECEIVED && p->info_is == INFO_IS_RECEIVED > + && compare_rstp_priority_vector(&p->msg_priority, > + &p->port_priority) >= SUPERIOR) > + || (new_info_is == MINE && p->info_is == INFO_IS_MINE > + && > compare_rstp_priority_vector(&p->designated_priority_vector, > + &p->port_priority) >= > SUPERIOR); > } > > static int > @@ -1107,7 +1102,7 @@ port_information_sm(struct rstp_port *p) > old_state = p->port_information_sm_state; > r = p->rstp; > > - if (!p->port_enabled && (p->info_is != INFO_IS_DISABLED)) { > + if (!p->port_enabled && p->info_is != INFO_IS_DISABLED) { > p->port_information_sm_state = PORT_INFORMATION_SM_DISABLED_EXEC; > } > switch (p->port_information_sm_state) { > @@ -1348,8 +1343,8 @@ static int > check_selected_role_change(struct rstp_port *p, int current_role_state) > OVS_REQUIRES(rstp_mutex) > { > - if (p->selected && !p->updt_info && (p->role != p->selected_role) && > - (p->selected_role != current_role_state)) { > + if (p->selected && !p->updt_info && p->role != p->selected_role > + && p->selected_role != current_role_state) { > VLOG_DBG("%s, port %u: case: current = %s role = %s selected = > %d", > p->rstp->name, p->port_number, > rstp_port_role_name(current_role_state), > @@ -1454,9 +1449,8 @@ port_role_transition_sm(struct rstp_port *p) > case PORT_ROLE_TRANSITION_SM_DISABLE_PORT: > if (check_selected_role_change(p, ROLE_DISABLED)) { > break; > - } > - else if (p->selected && !p->updt_info && !p->learning && > - !p->forwarding) { > + } else if (p->selected && !p->updt_info && !p->learning > + && !p->forwarding) { > p->port_role_transition_sm_state = > PORT_ROLE_TRANSITION_SM_DISABLED_PORT_EXEC; > } > @@ -1472,10 +1466,9 @@ port_role_transition_sm(struct rstp_port *p) > case PORT_ROLE_TRANSITION_SM_DISABLED_PORT: > if (check_selected_role_change(p, ROLE_DISABLED)) { > break; > - } > - else if (p->selected && !p->updt_info && > - ((p->fd_while != p->designated_times.max_age) || p->sync || > - p->re_root || !p->synced)) { > + } else if (p->selected && !p->updt_info > + && (p->fd_while != p->designated_times.max_age || > p->sync > + || p->re_root || !p->synced)) { > p->port_role_transition_sm_state = > PORT_ROLE_TRANSITION_SM_DISABLED_PORT_EXEC; > } > @@ -1488,44 +1481,37 @@ port_role_transition_sm(struct rstp_port *p) > case PORT_ROLE_TRANSITION_SM_ROOT_PORT: > if (check_selected_role_change(p, ROLE_ROOT)) { > break; > - } > - else if (p->selected && !p->updt_info) { > + } else if (p->selected && !p->updt_info) { > if (p->rr_while != p->designated_times.forward_delay) { > p->port_role_transition_sm_state = > PORT_ROLE_TRANSITION_SM_ROOT_PORT_EXEC; > break; > - } > - else if (p->re_root && p->forward) { > + } else if (p->re_root && p->forward) { > p->port_role_transition_sm_state = > PORT_ROLE_TRANSITION_SM_REROOTED_EXEC; > break; > - } > - else if (((p->fd_while == 0) || ((re_rooted(p) && > - (p->rb_while == 0)) && > - (r->rstp_version))) && !p->learn) { > + } else if ((p->fd_while == 0 > + || ((re_rooted(p) && p->rb_while == 0) > + && r->rstp_version)) && !p->learn) { > p->port_role_transition_sm_state = > PORT_ROLE_TRANSITION_SM_ROOT_LEARN_EXEC; > break; > - } > - else if (((p->fd_while == 0) || ((re_rooted(p) && > - (p->rb_while == 0)) && > - (r->rstp_version))) && p->learn && !p->forward) { > + } else if ((p->fd_while == 0 > + || ((re_rooted(p) && p->rb_while == 0) > + && r->rstp_version)) && p->learn && > !p->forward) { > p->port_role_transition_sm_state = > PORT_ROLE_TRANSITION_SM_ROOT_FORWARD_EXEC; > break; > - } > - else if (p->proposed && !p->agree) { > + } else if (p->proposed && !p->agree) { > p->port_role_transition_sm_state = > PORT_ROLE_TRANSITION_SM_ROOT_PROPOSED_EXEC; > break; > - } > - else if ((all_synced(r) && !p->agree) || > - (p->proposed && p->agree)) { > + } else if ((all_synced(r) && !p->agree) || > + (p->proposed && p->agree)) { > p->port_role_transition_sm_state = > PORT_ROLE_TRANSITION_SM_ROOT_AGREED_EXEC; > break; > - } > - else if (!p->forward && !p->re_root) { > + } else if (!p->forward && !p->re_root) { > p->port_role_transition_sm_state = > PORT_ROLE_TRANSITION_SM_REROOT_EXEC; > break; > @@ -1574,38 +1560,33 @@ port_role_transition_sm(struct rstp_port *p) > case PORT_ROLE_TRANSITION_SM_DESIGNATED_PORT: > if (check_selected_role_change(p, ROLE_DESIGNATED)) { > break; > - } > - else if (p->selected && !p->updt_info) { > - if (((p->sync && !p->synced) || (p->re_root && > - (p->rr_while != 0)) || p->disputed) && > - !p->oper_edge && (p->learn || p->forward)) { > - p->port_role_transition_sm_state = > - PORT_ROLE_TRANSITION_SM_DESIGNATED_DISCARD_EXEC; > - } > - else if (((p->fd_while == 0)|| p->agreed || p->oper_edge) && > - ((p->rr_while == 0) || !p->re_root) && > - !p->sync && !p->learn) { > + } else if (p->selected && !p->updt_info) { > + if (((p->sync && !p->synced) > + || (p->re_root && p->rr_while != 0) || p->disputed) > + && !p->oper_edge && (p->learn || p->forward)) { > + p->port_role_transition_sm_state = > + PORT_ROLE_TRANSITION_SM_DESIGNATED_DISCARD_EXEC; > + } else if ((p->fd_while == 0 || p->agreed || p->oper_edge) > + && (p->rr_while == 0 || !p->re_root) > + && !p->sync && !p->learn) { > p->port_role_transition_sm_state = > PORT_ROLE_TRANSITION_SM_DESIGNATED_LEARN_EXEC; > - } > - else if (((p->fd_while == 0) || p->agreed || p->oper_edge) && > - ((p->rr_while == 0) || !p->re_root) && > - !p->sync && (p->learn && !p->forward)) { > + } else if ((p->fd_while == 0 || p->agreed || p->oper_edge) > + && (p->rr_while == 0 || !p->re_root) > + && !p->sync && (p->learn && !p->forward)) { > p->port_role_transition_sm_state = > PORT_ROLE_TRANSITION_SM_DESIGNATED_FORWARD_EXEC; > - } > - else if (!p->forward && !p->agreed && !p->proposing && > - !p->oper_edge) { > + } else if (!p->forward && !p->agreed && !p->proposing && > + !p->oper_edge) { > p->port_role_transition_sm_state = > PORT_ROLE_TRANSITION_SM_DESIGNATED_PROPOSE_EXEC; > - } > - else if ((!p->learning && !p->forwarding && !p->synced) || > - (p->agreed && !p->synced) || (p->oper_edge && !p->synced) > || > - (p->sync && p->synced)) { > + } else if ((!p->learning && !p->forwarding && !p->synced) > + || (p->agreed && !p->synced) > + || (p->oper_edge && !p->synced) > + || (p->sync && p->synced)) { > p->port_role_transition_sm_state = > PORT_ROLE_TRANSITION_SM_DESIGNATED_SYNCED_EXEC; > - } > - else if ((p->rr_while == 0) && p->re_root) { > + } else if (p->rr_while == 0 && p->re_root) { > p->port_role_transition_sm_state = > PORT_ROLE_TRANSITION_SM_DESIGNATED_RETIRED_EXEC; > } > @@ -1660,24 +1641,20 @@ port_role_transition_sm(struct rstp_port *p) > case PORT_ROLE_TRANSITION_SM_ALTERNATE_PORT: > if (check_selected_role_change(p, ROLE_ALTERNATE)) { > break; > - } > - else if (p->selected && !p->updt_info) { > - if ((p->rb_while != (2 * p->designated_times.hello_time)) && > - (p->role == ROLE_BACKUP)) { > + } else if (p->selected && !p->updt_info) { > + if (p->rb_while != 2 * p->designated_times.hello_time > + && p->role == ROLE_BACKUP) { > p->port_role_transition_sm_state = > PORT_ROLE_TRANSITION_SM_BACKUP_PORT_EXEC; > - } > - else if ((p->fd_while != forward_delay(p)) || p->sync || > - p->re_root || !p->synced) { > + } else if ((p->fd_while != forward_delay(p)) || p->sync > + || p->re_root || !p->synced) { > p->port_role_transition_sm_state = > PORT_ROLE_TRANSITION_SM_ALTERNATE_PORT_EXEC; > - } > - else if (p->proposed && !p->agree) { > + } else if (p->proposed && !p->agree) { > p->port_role_transition_sm_state = > PORT_ROLE_TRANSITION_SM_ALTERNATE_PROPOSED_EXEC; > - } > - else if (( all_synced(r) && !p->agree) || > - (p->proposed && p->agree)) { > + } else if ((all_synced(r) && !p->agree) > + || (p->proposed && p->agree)) { > p->port_role_transition_sm_state = > PORT_ROLE_TRANSITION_SM_ALTERNATE_AGREED; > } > @@ -1704,9 +1681,8 @@ port_role_transition_sm(struct rstp_port *p) > case PORT_ROLE_TRANSITION_SM_BLOCK_PORT: > if (check_selected_role_change(p, ROLE_ALTERNATE)) { > break; > - } > - else if (p->selected && !p->updt_info && !p->learning && > - !p->forwarding) { > + } else if (p->selected && !p->updt_info && !p->learning && > + !p->forwarding) { > p->port_role_transition_sm_state = > PORT_ROLE_TRANSITION_SM_ALTERNATE_PORT_EXEC; > } > @@ -1825,8 +1801,7 @@ port_state_transition_sm(struct rstp_port *p) > if (!p->learn) { > p->port_state_transition_sm_state = > PORT_STATE_TRANSITION_SM_DISCARDING_EXEC; > - } > - else if (p->forward) { > + } else if (p->forward) { > p->port_state_transition_sm_state = > PORT_STATE_TRANSITION_SM_FORWARDING_EXEC; > } > @@ -1868,8 +1843,7 @@ new_tc_while(struct rstp_port *p) > if (p->tc_while == 0 && p->send_rstp == true) { > p->tc_while = r->bridge_hello_time + 1; > p->new_info = true; > - } > - else if (p->tc_while == 0 && p->send_rstp == false) { > + } else if (p->tc_while == 0 && p->send_rstp == false) { > p->tc_while = r->bridge_max_age + r->bridge_forward_delay; > } > } > @@ -1937,16 +1911,14 @@ topology_change_sm(struct rstp_port *p) > p->topology_change_sm_state = TOPOLOGY_CHANGE_SM_LEARNING; > /* no break */ > case TOPOLOGY_CHANGE_SM_LEARNING: > - if ((p->role != ROLE_ROOT) && (p->role != ROLE_DESIGNATED) && > + if (p->role != ROLE_ROOT && p->role != ROLE_DESIGNATED && > !(p->learn || p->learning) && !(p->rcvd_tc || p->rcvd_tcn || > - p->rcvd_tc_ack || p->tc_prop)) { > + p->rcvd_tc_ack || > p->tc_prop)) { > p->topology_change_sm_state = > TOPOLOGY_CHANGE_SM_INACTIVE_EXEC; > - } > - else if (p->rcvd_tc || p->rcvd_tcn || p->rcvd_tc_ack || > p->tc_prop) { > + } else if (p->rcvd_tc || p->rcvd_tcn || p->rcvd_tc_ack || > p->tc_prop) { > p->topology_change_sm_state = > TOPOLOGY_CHANGE_SM_LEARNING_EXEC; > - } > - else if (((p->role == ROLE_ROOT) || (p->role == ROLE_DESIGNATED)) > && > - p->forward && !p->oper_edge) { > + } else if ((p->role == ROLE_ROOT || p->role == ROLE_DESIGNATED) > + && p->forward && !p->oper_edge) { > p->topology_change_sm_state = > TOPOLOGY_CHANGE_SM_DETECTED_EXEC; > } > break; > @@ -1960,20 +1932,16 @@ topology_change_sm(struct rstp_port *p) > p->topology_change_sm_state = TOPOLOGY_CHANGE_SM_ACTIVE; > /* no break */ > case TOPOLOGY_CHANGE_SM_ACTIVE: > - if (((p->role != ROLE_ROOT) && (p->role != ROLE_DESIGNATED)) || > - p->oper_edge) { > + if ((p->role != ROLE_ROOT && p->role != ROLE_DESIGNATED) > + || p->oper_edge) { > p->topology_change_sm_state = > TOPOLOGY_CHANGE_SM_LEARNING_EXEC; > - } > - else if (p->rcvd_tcn) { > + } else if (p->rcvd_tcn) { > p->topology_change_sm_state = > TOPOLOGY_CHANGE_SM_NOTIFIED_TCN_EXEC; > - } > - else if (p->rcvd_tc) { > + } else if (p->rcvd_tc) { > p->topology_change_sm_state = > TOPOLOGY_CHANGE_SM_NOTIFIED_TC_EXEC; > - } > - else if (p->tc_prop && !p->oper_edge) { > + } else if (p->tc_prop && !p->oper_edge) { > p->topology_change_sm_state = > TOPOLOGY_CHANGE_SM_PROPAGATING_EXEC; > - } > - else if (p->rcvd_tc_ack) { > + } else if (p->rcvd_tc_ack) { > p->topology_change_sm_state = > TOPOLOGY_CHANGE_SM_ACKNOWLEDGED_EXEC; > } > break; > @@ -2047,51 +2015,49 @@ compare_rstp_priority_vector(struct > rstp_priority_vector *v1, > RSTP_ID_ARGS(v2->root_bridge_id), v2->root_path_cost, > RSTP_ID_ARGS(v2->designated_bridge_id), > v2->designated_port_id); > > - if ((v1->root_bridge_id < v2->root_bridge_id) || > - ((v1->root_bridge_id == v2->root_bridge_id) && > - (v1->root_path_cost < v2->root_path_cost)) || > - ((v1->root_bridge_id == v2->root_bridge_id) && > - (v1->root_path_cost == v2->root_path_cost) && > - (v1->designated_bridge_id < v2->designated_bridge_id)) || > - ((v1->root_bridge_id == v2->root_bridge_id) && > - (v1->root_path_cost == v2->root_path_cost) && > - (v1->designated_bridge_id == v2->designated_bridge_id) && > - (v1->designated_port_id < v2->designated_port_id))) { > + if (v1->root_bridge_id < v2->root_bridge_id > + || (v1->root_bridge_id == v2->root_bridge_id && > + v1->root_path_cost < v2->root_path_cost) > + || (v1->root_bridge_id == v2->root_bridge_id && > + v1->root_path_cost == v2->root_path_cost && > + v1->designated_bridge_id < v2->designated_bridge_id) > + || (v1->root_bridge_id == v2->root_bridge_id && > + v1->root_path_cost == v2->root_path_cost && > + v1->designated_bridge_id == v2->designated_bridge_id && > + v1->designated_port_id < v2->designated_port_id)) { > VLOG_DBG("superior_absolute"); > return SUPERIOR; > - } > - else if (((v1->root_bridge_id > v2->root_bridge_id) || > - ((v1->root_bridge_id == v2->root_bridge_id) && > - (v1->root_path_cost > v2->root_path_cost)) || > - ((v1->root_bridge_id == v2->root_bridge_id) && > - (v1->root_path_cost == v2->root_path_cost) && > - (v1->designated_bridge_id > v2->designated_bridge_id)) || > - ((v1->root_bridge_id == v2->root_bridge_id) && > - (v1->root_path_cost == v2->root_path_cost) && > - (v1->designated_bridge_id == v2->designated_bridge_id) && > - (v1->designated_port_id > v2->designated_port_id))) && > - (v1->designated_bridge_id == v2->designated_bridge_id) && > - (v1->designated_port_id == v2->designated_port_id)) { > + } else if ((v1->root_bridge_id > v2->root_bridge_id > + || (v1->root_bridge_id == v2->root_bridge_id && > + v1->root_path_cost > v2->root_path_cost) > + || (v1->root_bridge_id == v2->root_bridge_id && > + v1->root_path_cost == v2->root_path_cost && > + v1->designated_bridge_id > v2->designated_bridge_id) > + || (v1->root_bridge_id == v2->root_bridge_id && > + v1->root_path_cost == v2->root_path_cost && > + v1->designated_bridge_id == v2->designated_bridge_id > && > + v1->designated_port_id > v2->designated_port_id)) > + && v1->designated_bridge_id == v2->designated_bridge_id > + && v1->designated_port_id == v2->designated_port_id) { > VLOG_DBG("superior_same_des"); > return SUPERIOR; > - } > - else if ((v1->root_bridge_id == v2->root_bridge_id) && > - (v1->root_path_cost == v2->root_path_cost) && > - (v1->designated_bridge_id == v2->designated_bridge_id) && > - (v1->designated_port_id == v2->designated_port_id)) { > + } else if (v1->root_bridge_id == v2->root_bridge_id && > + v1->root_path_cost == v2->root_path_cost && > + v1->designated_bridge_id == v2->designated_bridge_id && > + v1->designated_port_id == v2->designated_port_id) { > VLOG_DBG("same"); > return SAME; > - } > - else { > + } else { > VLOG_DBG("inferior"); > return INFERIOR; > } > } > > static bool > -rstp_times_equal(struct rstp_times *t1, struct rstp_times *t2) { > - return ((t1->forward_delay == t2->forward_delay) && > - (t1->hello_time == t2->hello_time) && > - (t1->max_age == t2->max_age) && > - (t1->message_age == t2->message_age)); > +rstp_times_equal(struct rstp_times *t1, struct rstp_times *t2) > +{ > + return t1->forward_delay == t2->forward_delay > + && t1->hello_time == t2->hello_time > + && t1->max_age == t2->max_age > + && t1->message_age == t2->message_age; > } > -- > 1.7.10.4 > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev