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
tipc: fix potential deadlock when all links are reset
2015-03-29 12:40:27 -07:00
bearer.c
tipc: remove wrong use of NLM_F_MULTI
2015-04-29 14:59:17 -04:00
bearer.h
tipc: add ip/udp media type
2015-03-05 22:08:42 -05:00
core.c
tipc: fix a slab object leak
2015-03-31 23:10:08 -04:00
core.h
tipc: remove tipc_snprintf
2015-02-09 13:20:49 -08:00
discover.c
tipc: involve reference counter for node structure
2015-03-29 12:40:28 -07:00
discover.h
tipc: involve namespace infrastructure
2015-01-12 16:24:32 -05:00
eth_media.c
tipc: make media address offset a common define
2015-02-27 18:18:48 -05:00
ib_media.c
tipc: rename media/msg related definitions
2015-02-27 18:18:48 -05:00
Kconfig
tipc: add ip/udp media type
2015-03-05 22:08:42 -05:00
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
tipc: add ip/udp media type
2015-03-05 22:08:42 -05:00
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
tipc: resolve race problem at unicast message reception
2015-02-05 16:00:02 -08:00
name_table.c
tipc: fix a potential deadlock when nametable is purged
2015-03-17 22:11:26 -04:00
name_table.h
tipc: convert legacy nl name table dump to nl compat
2015-02-09 13:20:48 -08:00
net.c
tipc: nl compat add noop and remove legacy nl framework
2015-02-09 13:20:49 -08:00
net.h
tipc: make tipc node table aware of net namespace
2015-01-12 16:24:32 -05:00
netlink.c
tipc: move and rename the legacy nl api to "nl compat"
2015-02-09 13:20:47 -08:00
netlink.h
tipc: move and rename the legacy nl api to "nl compat"
2015-02-09 13:20:47 -08:00
netlink_compat.c
tipc: nl compat add noop and remove legacy nl framework
2015-02-09 13:20:49 -08:00
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
tipc: make subscriber server support net namespace
2015-01-12 16:24:33 -05:00
socket.c
tipc: fix random link reset problem
2015-04-23 11:50:34 -04:00
socket.h
tipc: fix netns refcnt leak
2015-03-17 22:11:26 -04:00
subscr.c
tipc: fix nullpointer bug when subscribing to events
2015-02-27 18:18:47 -05:00
subscr.h
tipc: make subscriber server support net namespace
2015-01-12 16:24:33 -05:00
sysctl.c
tipc: add name distributor resiliency queue
2014-09-01 17:51:48 -07:00
udp_media.c
udp_tunnel: Pass UDP socket down through udp_tunnel{, 6}_xmit_skb().
2015-04-07 15:29:08 -04:00