• Allan Stephens's avatar
    tipc: Ensure broadcast link re-acquires node after link failure · 93499313
    Allan Stephens authored
    Fix a bug that can prevent TIPC from sending broadcast messages to a node
    if contact with the node is lost and then regained. The problem occurs if
    the broadcast link first clears the flag indicating the node is part of the
    link's distribution set (when it loses contact with the node), and later
    fails to restore the flag (when contact is regained); restoration fails
    if contact with the node is regained by implicit unicast link activation
    triggered by the arrival of a data message, rather than explicitly by the
    arrival of a link activation message.
    
    The broadcast link now uses separate fields to track whether a node is
    theoretically capable of receiving broadcast messages versus whether it is
    actually part of the link's distribution set. The former member is updated
    by the receipt of link protocol messages, which can occur at any time; the
    latter member is updated only when contact with the node is gained or lost.
    This change also permits the simplification of several conditional
    expressions since the broadcast link's "supported" field can now only be
    set if there are working links to the associated node.
    Signed-off-by: default avatarAllan Stephens <allan.stephens@windriver.com>
    Signed-off-by: default avatarPaul Gortmaker <paul.gortmaker@windriver.com>
    93499313
link.c 81.3 KB