• Tung Nguyen's avatar
    tipc: fix unexpected link reset due to discovery messages · c244c092
    Tung Nguyen authored
    This unexpected behavior is observed:
    
    node 1                    | node 2
    ------                    | ------
    link is established       | link is established
    reboot                    | link is reset
    up                        | send discovery message
    receive discovery message |
    link is established       | link is established
    send discovery message    |
                              | receive discovery message
                              | link is reset (unexpected)
                              | send reset message
    link is reset             |
    
    It is due to delayed re-discovery as described in function
    tipc_node_check_dest(): "this link endpoint has already reset
    and re-established contact with the peer, before receiving a
    discovery message from that node."
    
    However, commit 598411d7 has changed the condition for calling
    tipc_node_link_down() which was the acceptance of new media address.
    
    This commit fixes this by restoring the old and correct behavior.
    
    Fixes: 598411d7 ("tipc: make resetting of links non-atomic")
    Acked-by: default avatarJon Maloy <jmaloy@redhat.com>
    Signed-off-by: default avatarTung Nguyen <tung.q.nguyen@dektech.com.au>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c244c092
node.c 79.2 KB