Subject: Re: [softmac-dev] [PATCH] ieee80211_rx_any: filter out packets, call ieee80211_rx or ieee80211_rx_mgt

From: Johannes Berg <[email-masked]>
Date: Mon, 23 Jan 2006 15:32:32 +0100

On Sun, 2006-01-22 at 14:04 +0200, Denis Vlasenko wrote:
> +       hdr = (struct ieee80211_hdr_4addr *)skb->data;: 
> +       fc = le16_to_cpu(hdr->frame_ctl);: 
> +: 
> +       switch (fc & IEEE80211_FCTL_FTYPE) {: 
> +       case IEEE80211_FTYPE_MGMT: 
> +               ieee80211_rx_mgt(ieee, hdr, stats);: 
> +               return 0;: 

Shouldn't you BSS-filter management packets too?

> +       is_packet_for_us = 0;: 
> +       switch (ieee->iw_mode) {: 
> +       case IW_MODE_ADHOC: 
> +               /* promisc: get all */
> +               if (ieee->dev->flags & IFF_PROMISC): 
> +                       is_packet_for_us = 1;

And I still think BSS-filtering is correct even in the promisc case. Any
other opinions why either way is right or not? [I think we should filter
because upper layers won't know the packet wasn't for us if it was
broadcast in another BSSID]

johannes