batman-adv: Don't handle address updates when bla is disabled
authorSimon Wunderlich <simon@open-mesh.com>
Fri, 7 Jun 2013 14:52:05 +0000 (16:52 +0200)
committerAntonio Quartulli <ordex@autistici.org>
Mon, 10 Jun 2013 06:42:18 +0000 (08:42 +0200)
The bridge loop avoidance has a hook to handle address updates of the
originator. These should not be handled when bridge loop avoidance is
disabled - it might send some bridge loop avoidance packets which should
not appear if bla is disabled.

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/bridge_loop_avoidance.c

index 379061c725491ec0801940265aedd21245e4ccf1..de27b3175cfd0b3ff6e12603e5666de61522633e 100644 (file)
@@ -1067,6 +1067,10 @@ void batadv_bla_update_orig_address(struct batadv_priv *bat_priv,
        group = htons(crc16(0, primary_if->net_dev->dev_addr, ETH_ALEN));
        bat_priv->bla.claim_dest.group = group;
 
+       /* purge everything when bridge loop avoidance is turned off */
+       if (!atomic_read(&bat_priv->bridge_loop_avoidance))
+               oldif = NULL;
+
        if (!oldif) {
                batadv_bla_purge_claims(bat_priv, NULL, 1);
                batadv_bla_purge_backbone_gw(bat_priv, 1);