linux/net/tipc
Allan Stephens 169073db44 tipc: Prevent broadcast link stalling when another node fails
Ensure that broadcast link messages that have not been acknowledged
by a newly failed node do not get an implied acknowledgement until the
failed node is removed from the broadcast link's map of reachable nodes.

Previously, a race condition allowed a new broadcast link message to be
sent after the implicit acknowledgement processing was completed, but
before the map of reachable nodes was updated, resulting in the message
having an expected acknowledgement count that required the failed node
to explicitly acknowledge the message. Since this would never occur
the new message would remain in the broadcast link's transmit queue
forever, eventually causing the link to become congested and "stall".
Delaying the implicit acknowledgement processing until after the update
of the map of reachable nodes eliminates this race condition and prevents
stalling.

Signed-off-by: Allan Stephens <allan.stephens@windriver.com>
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
2011-09-01 11:16:36 -04:00
..
Kconfig tipc: Eliminate configuration for maximum number of cluster nodes 2011-03-13 16:35:17 -04:00
Makefile tipc: rename dbg.[ch] to log.[ch] 2011-01-01 13:57:51 -08:00
addr.c tipc: Eliminate configuration for maximum number of cluster nodes 2011-03-13 16:35:17 -04:00
addr.h tipc: make zone/cluster mask constants a define 2011-05-10 16:03:54 -04:00
bcast.c tipc: Remove non-executable code to handle broadcast bearer congestion 2011-09-01 11:16:36 -04:00
bcast.h tipc: Remove non-executable code to handle broadcast bearer congestion 2011-09-01 11:16:36 -04:00
bearer.c tipc: Remove non-executable code to handle broadcast bearer congestion 2011-09-01 11:16:36 -04:00
bearer.h tipc: Eliminate unused field in bearer structure 2011-06-24 16:18:16 -04:00
config.c tipc: Correct misnamed references to neighbor discovery domain 2011-03-13 16:35:18 -04:00
config.h tipc: Remove obsolete inclusions of header files 2010-12-02 13:34:02 -08:00
core.c tipc: Drop __TIME__ usage 2011-05-10 10:31:03 -04:00
core.h atomic: use <linux/atomic.h> 2011-07-26 16:49:47 -07:00
discover.c tipc: Revise timings used when sending link request messages 2011-05-10 16:04:02 -04:00
discover.h tipc: Add monitoring of number of nodes discovered by bearer 2011-05-10 16:04:01 -04:00
eth_media.c tipc: remove zeroing assignments to static global variables 2011-01-01 13:57:57 -08:00
handler.c tipc: remove zeroing assignments to static global variables 2011-01-01 13:57:57 -08:00
link.c tipc: Enhance filtering of out-dated link reset messages 2011-09-01 11:16:35 -04:00
link.h tipc: Avoid recomputation of outgoing message length 2011-05-10 16:03:57 -04:00
log.c tipc: Finish streamlining of debugging code 2011-01-01 13:57:54 -08:00
log.h tipc: update log.h re-include protection to reflect new name 2011-01-01 14:56:18 -08:00
msg.c tipc: Eliminate useless check when creating internal message 2011-06-24 16:18:17 -04:00
msg.h tipc: Cleanup of message header size terminology 2011-06-24 16:18:17 -04:00
name_distr.c tipc: Cleanup of message header size terminology 2011-06-24 16:18:17 -04:00
name_distr.h [NET] TIPC: Fix whitespace errors. 2007-02-10 23:20:15 -08:00
name_table.c tipc: Eliminate checks for empty zone list during name translation 2011-06-24 16:18:16 -04:00
name_table.h tipc: Convert name table publication lists to standard kernel lists 2011-06-24 16:18:16 -04:00
net.c tipc: Remove obsolete manipulation of message re-route count field 2011-09-01 11:16:35 -04:00
net.h tipc: manually inline net_start/stop, make assoc. vars static 2011-03-13 16:35:17 -04:00
netlink.c genetlink: make netns aware 2009-07-12 14:03:27 -07:00
node.c tipc: Prevent broadcast link stalling when another node fails 2011-09-01 11:16:36 -04:00
node.h tipc: Optimizations to link creation code 2011-03-13 16:35:18 -04:00
node_subscr.c tipc: Cosmetic changes to node subscription code 2011-03-13 16:35:16 -04:00
node_subscr.h tipc: Cosmetic changes to node subscription code 2011-03-13 16:35:16 -04:00
port.c tipc: Optimize creation of connection protocol messages 2011-06-24 16:18:18 -04:00
port.h tipc: Avoid recomputation of outgoing message length 2011-05-10 16:03:57 -04:00
ref.c tipc: remove zeroing assignments to static global variables 2011-01-01 13:57:57 -08:00
ref.h tipc: cleanup function namespace 2010-10-16 11:13:24 -07:00
socket.c tipc: Remove unnecessary includes in socket code 2011-06-24 16:18:16 -04:00
subscr.c tipc: Avoid recomputation of outgoing message length 2011-05-10 16:03:57 -04:00
subscr.h Revert d88dca79d3 2010-10-21 04:11:08 -07:00