• Simon Wunderlich's avatar
    batman-adv: forward late OGMs from best next hop · 7c24bbbe
    Simon Wunderlich authored
    When a packet is received from another node first and later from the
    best next hop, this packet is dropped. However the first OGM was sent
    with the BATADV_NOT_BEST_NEXT_HOP flag and thus dropped by neighbors.
    The late OGM from the best neighbor is then dropped because it is a
    duplicate.
    
    If this situation happens constantly, a node might end up not forwarding
    the "valid" OGMs anymore, and nodes behind will starve from not getting
    valid OGMs.
    
    Fix this by refining the duplicate checking behaviour: The actions
    should depend on whether it was a duplicate for a neighbor only or for
    the originator. OGMs which are not duplicates for a specific neighbor
    will now be considered in batadv_iv_ogm_forward(), but only actually
    forwarded for the best next hop. Therefore, late OGMs from the best
    next hop are forwarded now and not dropped as duplicates anymore.
    Signed-off-by: default avatarSimon Wunderlich <simon@open-mesh.com>
    Signed-off-by: default avatarMarek Lindner <lindner_marek@yahoo.de>
    Signed-off-by: default avatarAntonio Quartulli <ordex@autistici.org>
    7c24bbbe
bat_iv_ogm.c 41.8 KB