batman-adv: avoid temporary routing loops by being strict on forwarded OGMs
authorMarek Lindner <lindner_marek@yahoo.de>
Sat, 10 Mar 2012 22:17:53 +0000 (06:17 +0800)
committerAntonio Quartulli <ordex@autistici.org>
Fri, 11 May 2012 11:56:05 +0000 (13:56 +0200)
commit13b2541b11b1df346805f0869c843635ceb0229f
treebc1c44eaedb0083dac3cb880b8b01e126d57aab7
parent9d853f624691776232a675768bcdb239d7b837ea
batman-adv: avoid temporary routing loops by being strict on forwarded OGMs

batman-adv would forward OGMs from non-besthops while replacing the the TQ
and TTL values with the values from the best hop. In certain corner cases
this leads to a temporary routing loop.
This patch changes this behavior: Only packets from best next hops are
forwarded - TQ and TTL values won't be replaced anymore. However, the protocol
needs to rebroadcast OGMs from single hop neighbors regardless of whether or
not they are the best hop. To handle this case a new flag is introduced to
alert neighboring nodes about the forwarded OGM that is not from my best
next hop. It is to be discarded by all nodes except for the one originating
the OGM.

Signed-off-by: Marek Lindner <lindner_marek@yahoo.de>
Acked-by: Daniele Furlan <daniele.furlan@gmail.com>
Tested-by: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
net/batman-adv/bat_iv_ogm.c
net/batman-adv/packet.h