I came up with this small patch. Not so sure if it's the best way to do it but 
it works for our use cases.

commit b6441caa22f2cc2f76c141cd3998715893c603d6
Author: Francois Gervais <[email protected]>
Date:   Thu Apr 23 11:07:24 2015 -0400

    Frame duplicate fix candidate

diff --git a/net/mac80211/rx.c b//net/mac80211/rx.c
index 441a34d..8f844ca 100755
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -3184,6 +3184,9 @@ static bool prepare_for_handlers(struct ieee80211_rx_data 
*rx,
        case NL80211_IFTYPE_MESH_POINT:
                if (!multicast &&
                    !ether_addr_equal(sdata->vif.addr, hdr->addr1)) {
+                       /* This is our frame but sent to a hop, drop it */
+                       if (ether_addr_equal(sdata->vif.addr, hdr->addr3))
+                               return false;
                        if (!(sdata->dev->flags & IFF_PROMISC))
                                return false;

François Gervais
Firmware Designer
_______________________________________________
Devel mailing list
[email protected]
http://lists.open80211s.org/cgi-bin/mailman/listinfo/devel

Reply via email to