• Jon Paul Maloy's avatar
    tipc: separate link starting event from link timeout event · af9946fd
    Jon Paul Maloy authored
    When a new link instance is created, it is trigged to start by
    sending it a TIPC_STARTING_EVT, whereafter a regular link
    reset is applied to it.
    
    The starting event is codewise treated as a timeout event, and prompts
    a link RESET message to be sent to the peer node, carrying a link
    session identifier. The later link_reset() call nudges this session
    identifier, whereafter all subsequent RESET messages will be sent out
    with the new identifier. The latter session number overrides the former,
    causing the peer to unconditionally accept it irrespective of its
    current working state.
    
    We don't think that this causes any problem, but it is not in accordance
    with the protocol spec, and may cause confusion when debugging TIPC
    sessions.
    
    To avoid this, we make the starting event distinct from the
    subsequent timeout events, by not allowing the former to send
    out any RESET message. This eliminates the described problem.
    Reviewed-by: default avatarErik Hugne <erik.hugne@ericsson.com>
    Reviewed-by: default avatarYing Xue <ying.xue@windriver.com>
    Signed-off-by: default avatarJon Maloy <jon.maloy@ericsson.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    af9946fd
link.c 74.2 KB