For a host in the mesh network, the batman layer should be transparent. However, we had one exception, data packets within the mesh network which have the same destination as a originator are being routed to that node, although there is no host that node's bat0 interface and therefore gets dropped anyway. This commit removes this exception.
Signed-off-by: Linus Lüssing linus.luessing@ascom.ch --- unicast.c | 22 +++------------------- 1 files changed, 3 insertions(+), 19 deletions(-)
diff --git a/batman-adv/unicast.c b/batman-adv/unicast.c index 6a9ab61..9b13565 100644 --- a/batman-adv/unicast.c +++ b/batman-adv/unicast.c @@ -295,28 +295,12 @@ int unicast_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv) /* get routing information */ if (is_multicast_ether_addr(ethhdr->h_dest)) { orig_node = (struct orig_node *)gw_get_selected(bat_priv); - if (!orig_node) - goto trans_search; - - kref_get(&orig_node->refcount); - goto find_router; - } else { - rcu_read_lock(); - orig_node = ((struct orig_node *)hash_find(bat_priv->orig_hash, - compare_orig, - choose_orig, - ethhdr->h_dest)); - if (!orig_node) { - rcu_read_unlock(); - goto trans_search; + if (orig_node) { + kref_get(&orig_node->refcount); + goto find_router; } - - kref_get(&orig_node->refcount); - rcu_read_unlock(); - goto find_router; }
-trans_search: /* check for hna host - increases orig_node refcount */ orig_node = transtable_search(bat_priv, ethhdr->h_dest);
On Thursday 03 February 2011 15:41:03 Linus Lüssing wrote:
For a host in the mesh network, the batman layer should be transparent. However, we had one exception, data packets within the mesh network which have the same destination as a originator are being routed to that node, although there is no host that node's bat0 interface and therefore gets dropped anyway. This commit removes this exception.
Applied in revision 1934.
Thanks, Marek
b.a.t.m.a.n@lists.open-mesh.org