linux/net/tipc
Jon Paul Maloy 0d699f28ee tipc: fix problem with parallel link synchronization mechanism
Currently, we try to accumulate arrived packets in the links's
'deferred' queue during the parallel link syncronization phase.

This entails two problems:

- With an unlucky combination of arriving packets the algorithm
  may go into a lockstep with the out-of-sequence handling function,
  where the synch mechanism is adding a packet to the deferred queue,
  while the out-of-sequence handling is retrieving it again, thus
  ending up in a loop inside the node_lock scope.

- Even if this is avoided, the link will very often send out
  unnecessary protocol messages, in the worst case leading to
  redundant retransmissions.

We fix this by just dropping arriving packets on the upcoming link
during the synchronization phase, thus relying on the retransmission
protocol to resolve the situation once the two links have arrived to
a synchronized state.

Reviewed-by: Erik Hugne <erik.hugne@ericsson.com>
Reviewed-by: Ying Xue <ying.xue@windriver.com>
Signed-off-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
2015-04-29 15:08:59 -04:00
..
addr.c tipc: fix two bugs in secondary destination lookup 2015-03-29 13:47:36 -07:00
addr.h tipc: fix two bugs in secondary destination lookup 2015-03-29 13:47:36 -07:00
bcast.c tipc: simplify link mtu negotiation 2015-04-02 16:27:12 -04:00
bcast.h
bearer.c tipc: remove wrong use of NLM_F_MULTI 2015-04-29 14:59:17 -04:00
bearer.h
core.c tipc: fix a slab object leak 2015-03-31 23:10:08 -04:00
core.h
discover.c tipc: involve reference counter for node structure 2015-03-29 12:40:28 -07:00
discover.h
eth_media.c
ib_media.c
Kconfig
link.c tipc: fix problem with parallel link synchronization mechanism 2015-04-29 15:08:59 -04:00
link.h tipc: simplify link mtu negotiation 2015-04-02 16:27:12 -04:00
Makefile
msg.c tipc: eliminate delayed link deletion at link failover 2015-04-02 16:27:12 -04:00
msg.h tipc: eliminate delayed link deletion at link failover 2015-04-02 16:27:12 -04:00
name_distr.c tipc: involve reference counter for node structure 2015-03-29 12:40:28 -07:00
name_distr.h
name_table.c
name_table.h
net.c
net.h
netlink_compat.c
netlink.c
netlink.h
node.c tipc: simplify link mtu negotiation 2015-04-02 16:27:12 -04:00
node.h tipc: involve reference counter for node structure 2015-03-29 12:40:28 -07:00
server.c tipc: fix topology server broken issue 2015-04-23 11:50:34 -04:00
server.h
socket.c tipc: fix random link reset problem 2015-04-23 11:50:34 -04:00
socket.h
subscr.c
subscr.h
sysctl.c
udp_media.c udp_tunnel: Pass UDP socket down through udp_tunnel{, 6}_xmit_skb(). 2015-04-07 15:29:08 -04:00