[linux-next] LinuxNextTracking branch, master, updated. next-20111208

batman at open-mesh.org batman at open-mesh.org
Fri Dec 9 00:17:24 CET 2011


The following commit has been merged in the master branch:
commit 03fc3070457dc0e6a717a2e732af93ef1cb2ae51
Author: Antonio Quartulli <ordex at autistici.org>
Date:   Sun Dec 4 12:26:50 2011 +0100

    batman-adv: in case of roaming mark the client with TT_CLIENT_ROAM
    
    In case of a client roaming from node A to node B, the latter have to mark the
    corresponding global entry with TT_CLIENT_ROAM (instead of TT_CLIENT_PENDING).
    
    Marking a global entry with TT_CLIENT_PENDING will end up in keeping such entry
    forever (because this flag is only meant to be used with local entries and it is
    never checked on global ones).
    
    In the worst case (all the clients roaming to the same node A) the local and the
    global table will contain exactly the same clients. Batman-adv will continue to
    work, but the memory usage is duplicated.
    
    Signed-off-by: Antonio Quartulli <ordex at autistici.org>

diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index c7aafc7..c46b140 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -245,9 +245,11 @@ void tt_local_add(struct net_device *soft_iface, const uint8_t *addr,
 	if (tt_global_entry) {
 		/* This node is probably going to update its tt table */
 		tt_global_entry->orig_node->tt_poss_change = true;
-		/* The global entry has to be marked as PENDING and has to be
+		/* The global entry has to be marked as ROAMING and has to be
 		 * kept for consistency purpose */
-		tt_global_entry->flags |= TT_CLIENT_PENDING;
+		tt_global_entry->flags |= TT_CLIENT_ROAM;
+		tt_global_entry->roam_at = jiffies;
+
 		send_roam_adv(bat_priv, tt_global_entry->addr,
 			      tt_global_entry->orig_node);
 	}

-- 
LinuxNextTracking


More information about the linux-merge mailing list