• Jon Paul Maloy's avatar
    tipc: ensure binding table initial distribution is sent via first link · c49a0a84
    Jon Paul Maloy authored
    Correct synchronization of the broadcast link at first contact between
    two nodes is dependent on the assumption that the binding table "bulk"
    update passes via the same link as the initial broadcast syncronization
    message, i.e., via the first link that is established.
    
    This is not guaranteed in the current implementation. If two link
    come up very close to each other in time, the "bulk" may quite well
    pass via the second link, and hence void the guarantee of a correct
    initial synchronization before the broadcast link is opened.
    
    This commit makes two small changes to strengthen this guarantee.
    
    1) We let the second established link occupy slot 1 of the
       "active_links" array, while the first link will retain slot 0.
       (This is in reality a cosmetic change, we could just as well keep
        the current, opposite order)
    
    2) We let the name distributor always use link selector/slot 0 when
       it sends it binding table updates.
    
    The extra traffic bias on the first link caused by this change should
    be negligible, since binding table updates constitutes a very small
    fraction of the total traffic.
    Signed-off-by: default avatarJon Maloy <jon.maloy@ericsson.com>
    Reviewed-by: default avatarYing Xue <ying.xue@windriver.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    c49a0a84
node.c 36.8 KB