• Antonio Quartulli's avatar
    batman-adv: lock around TT operations to avoid sending inconsistent data · a70a9aa9
    Antonio Quartulli authored
    A TT response may be prepared and sent while the local or
    global translation table is getting updated.
    
    The worst case is when one of the tables is accessed after
    its content has been recently updated but the metadata
    (TTVN/CRC) has not yet. In this case the reader will get a
    table content which does not match the TTVN/CRC.
    This will lead to an inconsistent state and so to a TT
    recovery.
    
    To avoid entering this situation, put a lock around those TT
    operations recomputing the metadata and around the TT
    Response creation (the latter is the only reader that
    accesses the metadata together with the table).
    Signed-off-by: default avatarAntonio Quartulli <antonio@open-mesh.com>
    Signed-off-by: default avatarMarek Lindner <lindner_marek@yahoo.de>
    a70a9aa9
translation-table.c 87.9 KB