OSDN Git Service

batman-adv: Disallow originator addressing within mesh layer
authorLinus Lüssing <linus.luessing@ascom.ch>
Mon, 7 Feb 2011 00:14:40 +0000 (00:14 +0000)
committerSven Eckelmann <sven@narfation.org>
Fri, 11 Feb 2011 22:30:33 +0000 (23:30 +0100)
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>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
net/batman-adv/unicast.c

index 6c92eef..1b5e761 100644 (file)
@@ -281,7 +281,7 @@ int unicast_send_skb(struct sk_buff *skb, struct bat_priv *bat_priv)
 {
        struct ethhdr *ethhdr = (struct ethhdr *)skb->data;
        struct unicast_packet *unicast_packet;
-       struct orig_node *orig_node;
+       struct orig_node *orig_node = NULL;
        struct batman_if *batman_if;
        struct neigh_node *router;
        int data_len = skb->len;
@@ -292,11 +292,6 @@ 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);
-       else
-               orig_node = ((struct orig_node *)hash_find(bat_priv->orig_hash,
-                                                          compare_orig,
-                                                          choose_orig,
-                                                          ethhdr->h_dest));
 
        /* check for hna host */
        if (!orig_node)