From: Jon Maloy <jon.ma...@ericsson.com> Date: Tue, 13 Oct 2015 12:41:51 -0400
> In commit 6e498158a827 ("tipc: move link synch and failover to link > aggregation level") > we introduced a new mechanism for performing link failover and > synchronization. We have now detected a bug in this mechanism. > > During link synchronization we use the arrival of any packet on > the tunnel link to trig a check for whether it has reached the > synchronization point or not. This has turned out to be too > permissive, since it may cause an arriving non-last SYNCH packet to > end the synch state, just to see the next SYNCH packet initiate a > new synch state with a new, higher synch point. This is not fatal, > but should be avoided, because it may significantly extend the > synchronization period, while at the same time we are not allowed > to send NACKs if packets are lost. In the worst case, a low-traffic > user may see its traffic stall until a LINK_PROTOCOL state message > trigs the link to leave synchronization state. > > At the same time, LINK_PROTOCOL packets which happen to have a (non- > valid) sequence number lower than the tunnel link's rcv_nxt value will > be consistently dropped, and will never be able to resolve the situation > described above. > > We fix this by exempting LINK_PROTOCOL packets from the sequence number > check, as they should be. We also reduce (but don't completely > eliminate) the risk of entering multiple synchronization states by only > allowing the (logically) first SYNCH packet to initiate a synchronization > state. This works independently of actual packet arrival order. > > Fixes: commit 6e498158a827 ("tipc: move link synch and failover to link > aggregation level") > > Signed-off-by: Jon Maloy <jon.ma...@ericsson.com> > Acked-by: Ying Xue <ying....@windriver.com> Applied, thanks. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html