batman-adv: forward late OGMs from best next hop
authorSimon Wunderlich <simon@open-mesh.com>
Thu, 23 May 2013 11:07:42 +0000 (13:07 +0200)
committerAntonio Quartulli <ordex@autistici.org>
Mon, 10 Jun 2013 06:42:17 +0000 (08:42 +0200)
commit7c24bbbeab4159f924b65b1e94878e597b762714
tree599e4e13220b5cbd25992923b375bd3b31300505
parentac16d1484efd5d2d9077c55453b1f8abff49fc18
batman-adv: forward late OGMs from best next hop

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: Simon Wunderlich <simon@open-mesh.com>
Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
Signed-off-by: Antonio Quartulli <ordex@autistici.org>
net/batman-adv/bat_iv_ogm.c