Repository : ssh://git@open-mesh.org/batman-adv
On branch : master
>---------------------------------------------------------------
commit 7bfb1387d4a768195cc6eb2322782e7581b61813
Merge: 0fff84d 7678d5d
Author: Marek Lindner <mareklindner(a)neomailbox.ch>
Date: Wed Dec 25 22:12:18 2013 +0800
Merge branch 'next'
>---------------------------------------------------------------
7bfb1387d4a768195cc6eb2322782e7581b61813
soft-interface.c | 13 +++++--------
soft-interface.h | 16 ----------------
2 files changed, 5 insertions(+), 24 deletions(-)
diff --cc soft-interface.c
index 2190466,875a702..2f1e843
--- a/soft-interface.c
+++ b/soft-interface.c
@@@ -394,32 -394,10 +399,24 @@@ void batadv_interface_rx(struct net_dev
batadv_tt_add_temporary_global_entry(bat_priv, orig_node,
ethhdr->h_source, vid);
- if (batadv_is_ap_isolated(bat_priv, ethhdr->h_source, ethhdr->h_dest,
- vid))
+ if (is_multicast_ether_addr(ethhdr->h_dest)) {
+ /* set the mark on broadcast packets if AP isolation is ON and
+ * the packet is coming from an "isolated" client
+ */
+ if (batadv_vlan_ap_isola_get(bat_priv, vid) &&
+ batadv_tt_global_is_isolated(bat_priv, ethhdr->h_source,
+ vid)) {
+ /* save bits in skb->mark not covered by the mask and
+ * apply the mark on the rest
+ */
+ skb->mark &= ~bat_priv->isolation_mark_mask;
+ skb->mark |= bat_priv->isolation_mark;
+ }
+ } else if (batadv_is_ap_isolated(bat_priv, ethhdr->h_source,
+ ethhdr->h_dest, vid)) {
goto dropped;
+ }
- /* Clean the netfilter state before delivering the skb.
- * This packet may have traversed a bridge when it was encapsulated into
- * the batman header. Now that the header has been removed, the
- * netfilter state must be cleaned up to avoid to mess up with a
- * possible second bridge
- */
- batadv_nf_bridge_skb_free(skb);
-
netif_rx(skb);
goto out;