aboutsummaryrefslogtreecommitdiffstats
path: root/net/batman-adv/translation-table.c
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2012-11-17 22:00:43 -0500
committerDavid S. Miller <davem@davemloft.net>2012-11-17 22:00:43 -0500
commit67f4efdce7d85282fbd5832cddc80a07eb89b6d6 (patch)
tree9a1771ef13b27abdf8cf172e5b7556ab93e5c48c /net/batman-adv/translation-table.c
parentc53aa5058ad5ca8876a47d6639ad4d4f2c5ed584 (diff)
parentf4a75d2eb7b1e2206094b901be09adb31ba63681 (diff)
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
Minor line offset auto-merges. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/batman-adv/translation-table.c')
-rw-r--r--net/batman-adv/translation-table.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
index 9f5705fcf426..582f13405df9 100644
--- a/net/batman-adv/translation-table.c
+++ b/net/batman-adv/translation-table.c
@@ -861,6 +861,12 @@ int batadv_tt_global_add(struct batadv_priv *bat_priv,
861 */ 861 */
862 common->flags &= ~BATADV_TT_CLIENT_TEMP; 862 common->flags &= ~BATADV_TT_CLIENT_TEMP;
863 863
864 /* the change can carry possible "attribute" flags like the
865 * TT_CLIENT_WIFI, therefore they have to be copied in the
866 * client entry
867 */
868 tt_global_entry->common.flags |= flags;
869
864 /* If there is the BATADV_TT_CLIENT_ROAM flag set, there is only 870 /* If there is the BATADV_TT_CLIENT_ROAM flag set, there is only
865 * one originator left in the list and we previously received a 871 * one originator left in the list and we previously received a
866 * delete + roaming change for this originator. 872 * delete + roaming change for this originator.
@@ -1574,7 +1580,7 @@ batadv_tt_response_fill_table(uint16_t tt_len, uint8_t ttvn,
1574 1580
1575 memcpy(tt_change->addr, tt_common_entry->addr, 1581 memcpy(tt_change->addr, tt_common_entry->addr,
1576 ETH_ALEN); 1582 ETH_ALEN);
1577 tt_change->flags = BATADV_NO_FLAGS; 1583 tt_change->flags = tt_common_entry->flags;
1578 1584
1579 tt_count++; 1585 tt_count++;
1580 tt_change++; 1586 tt_change++;
@@ -2545,6 +2551,13 @@ bool batadv_tt_add_temporary_global_entry(struct batadv_priv *bat_priv,
2545{ 2551{
2546 bool ret = false; 2552 bool ret = false;
2547 2553
2554 /* if the originator is a backbone node (meaning it belongs to the same
2555 * LAN of this node) the temporary client must not be added because to
2556 * reach such destination the node must use the LAN instead of the mesh
2557 */
2558 if (batadv_bla_is_backbone_gw_orig(bat_priv, orig_node->orig))
2559 goto out;
2560
2548 if (!batadv_tt_global_add(bat_priv, orig_node, addr, 2561 if (!batadv_tt_global_add(bat_priv, orig_node, addr,
2549 BATADV_TT_CLIENT_TEMP, 2562 BATADV_TT_CLIENT_TEMP,
2550 atomic_read(&orig_node->last_ttvn))) 2563 atomic_read(&orig_node->last_ttvn)))