Repository : ssh://git@open-mesh.org/batman-adv
On branch : maint
commit 4dba2215b3b1cb7e61431165a1db1adef5c1f9e5 Author: Antonio Quartulli ordex@autistici.org Date: Thu Nov 8 21:55:30 2012 +0100
batman-adv: process broadcast packets in BLA earlier
The logic in the BLA mechanism may decide to drop broadcast packets because the node may still be in the setup phase. For this reason, further broadcast processing like the early client detection mechanism must be done only after the BLA check.
This patches moves the invocation to BLA before any other broadcast processing.
This was introduced by 724d05c8215e4e8186097121595ef20b6ba601b7 ("batman-adv: detect not yet announced clients")
Reported-by: Glen Page glen.page@thet.net Signed-off-by: Simon Wunderlich siwu@hrz.tu-chemnitz.de Signed-off-by: Antonio Quartulli ordex@autistici.org Signed-off-by: Marek Lindner lindner_marek@yahoo.de
4dba2215b3b1cb7e61431165a1db1adef5c1f9e5 soft-interface.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/soft-interface.c b/soft-interface.c index b9a28d2..ce0684a 100644 --- a/soft-interface.c +++ b/soft-interface.c @@ -325,6 +325,12 @@ void batadv_interface_rx(struct net_device *soft_iface,
soft_iface->last_rx = jiffies;
+ /* Let the bridge loop avoidance check the packet. If will + * not handle it, we can safely push it up. + */ + if (batadv_bla_rx(bat_priv, skb, vid, is_bcast)) + goto out; + if (orig_node) batadv_tt_add_temporary_global_entry(bat_priv, orig_node, ethhdr->h_source); @@ -332,12 +338,6 @@ void batadv_interface_rx(struct net_device *soft_iface, if (batadv_is_ap_isolated(bat_priv, ethhdr->h_source, ethhdr->h_dest)) goto dropped;
- /* Let the bridge loop avoidance check the packet. If will - * not handle it, we can safely push it up. - */ - if (batadv_bla_rx(bat_priv, skb, vid, is_bcast)) - goto out; - netif_rx(skb); goto out;