On Fri, Aug 03, 2007 at 01:02:12AM -0700, Michael Wu wrote: > This doesn't seem quite right. I think ieee80211_rx_h_data is a safer place > for this check (inside the IEEE80211_FCTL_FROMDS case), and allows various > statistics to be updated. ieee80211_rx_h_sta_process is another function that > might work though that would probably involve more code to add all the right > checks. The patch below seems to work for me w/ an otherwise stock F-7 kernel w/ iwl3945. Thoughts? From: John W. Linville <linville@xxxxxxxxxxxxx> [PATCH] mac80211: filter locally-originated multicast frames In STA mode, the AP will echo our traffic. This includes multicast traffice. Receiving these frames confuses some protocols and applications, notably IPv6 Duplicate Address Detection. Signed-off-by: John W. Linville <linville@xxxxxxxxxxxxx> --- net/mac80211/ieee80211.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/net/mac80211/ieee80211.c b/net/mac80211/ieee80211.c index a42e70e..0097b0a 100644 --- a/net/mac80211/ieee80211.c +++ b/net/mac80211/ieee80211.c @@ -3030,9 +3030,10 @@ ieee80211_rx_h_data(struct ieee80211_txrx_data *rx) memcpy(dst, hdr->addr1, ETH_ALEN); memcpy(src, hdr->addr3, ETH_ALEN); - if (sdata->type != IEEE80211_IF_TYPE_STA) { + if (sdata->type != IEEE80211_IF_TYPE_STA || + (is_multicast_ether_addr(dst) && + !compare_ether_addr(src, dev->dev_addr))) return TXRX_DROP; - } break; case 0: /* DA SA BSSID */ -- John W. Linville linville@xxxxxxxxxxxxx - To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html