diff options
Diffstat (limited to 'net/tipc/link.c')
-rw-r--r-- | net/tipc/link.c | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/net/tipc/link.c b/net/tipc/link.c index 1150ba5a648..cce953723dd 100644 --- a/net/tipc/link.c +++ b/net/tipc/link.c | |||
@@ -1501,14 +1501,13 @@ static void link_retransmit_failure(struct tipc_link *l_ptr, | |||
1501 | tipc_node_lock(n_ptr); | 1501 | tipc_node_lock(n_ptr); |
1502 | 1502 | ||
1503 | tipc_addr_string_fill(addr_string, n_ptr->addr); | 1503 | tipc_addr_string_fill(addr_string, n_ptr->addr); |
1504 | info("Multicast link info for %s\n", addr_string); | 1504 | info("Broadcast link info for %s\n", addr_string); |
1505 | info("Supportable: %d, ", n_ptr->bclink.supportable); | 1505 | info("Supportable: %d, ", n_ptr->bclink.supportable); |
1506 | info("Supported: %d, ", n_ptr->bclink.supported); | 1506 | info("Supported: %d, ", n_ptr->bclink.supported); |
1507 | info("Acked: %u\n", n_ptr->bclink.acked); | 1507 | info("Acked: %u\n", n_ptr->bclink.acked); |
1508 | info("Last in: %u, ", n_ptr->bclink.last_in); | 1508 | info("Last in: %u, ", n_ptr->bclink.last_in); |
1509 | info("Gap after: %u, ", n_ptr->bclink.gap_after); | 1509 | info("Oos state: %u, ", n_ptr->bclink.oos_state); |
1510 | info("Gap to: %u\n", n_ptr->bclink.gap_to); | 1510 | info("Last sent: %u\n", n_ptr->bclink.last_sent); |
1511 | info("Nack sync: %u\n\n", n_ptr->bclink.nack_sync); | ||
1512 | 1511 | ||
1513 | tipc_k_signal((Handler)link_reset_all, (unsigned long)n_ptr->addr); | 1512 | tipc_k_signal((Handler)link_reset_all, (unsigned long)n_ptr->addr); |
1514 | 1513 | ||
@@ -1974,7 +1973,7 @@ void tipc_link_send_proto_msg(struct tipc_link *l_ptr, u32 msg_typ, | |||
1974 | 1973 | ||
1975 | msg_set_type(msg, msg_typ); | 1974 | msg_set_type(msg, msg_typ); |
1976 | msg_set_net_plane(msg, l_ptr->b_ptr->net_plane); | 1975 | msg_set_net_plane(msg, l_ptr->b_ptr->net_plane); |
1977 | msg_set_bcast_ack(msg, mod(l_ptr->owner->bclink.last_in)); | 1976 | msg_set_bcast_ack(msg, l_ptr->owner->bclink.last_in); |
1978 | msg_set_last_bcast(msg, tipc_bclink_get_last_sent()); | 1977 | msg_set_last_bcast(msg, tipc_bclink_get_last_sent()); |
1979 | 1978 | ||
1980 | if (msg_typ == STATE_MSG) { | 1979 | if (msg_typ == STATE_MSG) { |
@@ -2133,8 +2132,12 @@ static void link_recv_proto_msg(struct tipc_link *l_ptr, struct sk_buff *buf) | |||
2133 | 2132 | ||
2134 | /* Synchronize broadcast link info, if not done previously */ | 2133 | /* Synchronize broadcast link info, if not done previously */ |
2135 | 2134 | ||
2136 | if (!tipc_node_is_up(l_ptr->owner)) | 2135 | if (!tipc_node_is_up(l_ptr->owner)) { |
2137 | l_ptr->owner->bclink.last_in = msg_last_bcast(msg); | 2136 | l_ptr->owner->bclink.last_sent = |
2137 | l_ptr->owner->bclink.last_in = | ||
2138 | msg_last_bcast(msg); | ||
2139 | l_ptr->owner->bclink.oos_state = 0; | ||
2140 | } | ||
2138 | 2141 | ||
2139 | l_ptr->peer_session = msg_session(msg); | 2142 | l_ptr->peer_session = msg_session(msg); |
2140 | l_ptr->peer_bearer_id = msg_bearer_id(msg); | 2143 | l_ptr->peer_bearer_id = msg_bearer_id(msg); |
@@ -2181,7 +2184,9 @@ static void link_recv_proto_msg(struct tipc_link *l_ptr, struct sk_buff *buf) | |||
2181 | 2184 | ||
2182 | /* Protocol message before retransmits, reduce loss risk */ | 2185 | /* Protocol message before retransmits, reduce loss risk */ |
2183 | 2186 | ||
2184 | tipc_bclink_check_gap(l_ptr->owner, msg_last_bcast(msg)); | 2187 | if (l_ptr->owner->bclink.supported) |
2188 | tipc_bclink_update_link_state(l_ptr->owner, | ||
2189 | msg_last_bcast(msg)); | ||
2185 | 2190 | ||
2186 | if (rec_gap || (msg_probe(msg))) { | 2191 | if (rec_gap || (msg_probe(msg))) { |
2187 | tipc_link_send_proto_msg(l_ptr, STATE_MSG, | 2192 | tipc_link_send_proto_msg(l_ptr, STATE_MSG, |