[1/2] batman-adv: do not add loop detection mac addresses to global tt

Message ID 20170601151126.20708-1-sw@simonwunderlich.de (mailing list archive)
State Accepted, archived
Commit 1f1b6c0d96129e6445652061d93a7fb1f0476fa3
Delegated to: Sven Eckelmann
Headers
Series [1/2] batman-adv: do not add loop detection mac addresses to global tt |

Commit Message

Simon Wunderlich June 1, 2017, 3:11 p.m. UTC
  This change has been made for local TT already, add another one for
global TT - but only for temporary entries (aka speedy join), to prevent
inconsistencies between local and global tables in case an older
batman-adv version is still announcing those entries from its local
table.

Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
---
 net/batman-adv/translation-table.c | 6 ++++++
 1 file changed, 6 insertions(+)
  

Comments

Sven Eckelmann June 9, 2017, 8:29 a.m. UTC | #1
On Donnerstag, 1. Juni 2017 17:11:24 CEST Simon Wunderlich wrote:
> This change has been made for local TT already, add another one for
> global TT - but only for temporary entries (aka speedy join), to prevent
> inconsistencies between local and global tables in case an older
> batman-adv version is still announcing those entries from its local
> table.
> 
> Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
> ---
>  net/batman-adv/translation-table.c | 6 ++++++
>  1 file changed, 6 insertions(+)

Added both patches as 1f1b6c0d9612 [1] and 746ee78cd190 [2].

Thanks,
	Sven

[1] https://git.open-mesh.org/batman-adv.git/commit/1f1b6c0d96129e6445652061d93a7fb1f0476fa3
[2] https://git.open-mesh.org/batman-adv.git/commit/746ee78cd190b7ec9eeb15feaaa32fc6811320d0
  

Patch

diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index e75b4937..4b64a9a6 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -4012,6 +4012,12 @@  bool batadv_tt_add_temporary_global_entry(struct batadv_priv *bat_priv,
 {
 	bool ret = false;
 
+	/* ignore loop detect macs, they are not supposed to be in the tt local
+	 * data as well.
+	 */
+	if (batadv_bla_is_loopdetect_mac(addr))
+		return false;
+
 	if (!batadv_tt_global_add(bat_priv, orig_node, addr, vid,
 				  BATADV_TT_CLIENT_TEMP,
 				  atomic_read(&orig_node->last_ttvn)))