• Jon Paul Maloy's avatar
    tipc: update node FSM when peer RESET message is received · c8199300
    Jon Paul Maloy authored
    The change made in the previous commit revealed a small flaw in the way
    the node FSM is updated. When the function tipc_node_link_down() is
    called for the last link to a node, we should check whether this was
    caused by a local reset or by a received RESET message from the peer.
    In the latter case, we can directly issue a PEER_LOST_CONTACT_EVT to
    the node FSM, so that it is ready to re-establish contact. If this is
    not done, the peer node will sometimes have to go through a second
    establish cycle before the link becomes stable.
    
    We fix this in this commit by conditionally issuing the mentioned
    event in the function tipc_node_link_down(). We also move LINK_RESET
    FSM even away from the link_reset() function and into the caller
    function, partially because it is easier to follow the code when state
    changes are gathered at a limited number of locations, partially
    because there will be cases in future commits where we don't want the
    link to go RESET mode when link_reset() is called.
    Signed-off-by: default avatarJon Maloy <jon.maloy@ericsson.com>
    Acked-by: default avatarYing Xue <ying.xue@windriver.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c8199300
link.c 51 KB