[PATCH v4 13/17] mac80211: receive and process S1G beacons

Thomas Pedersen thomas at adapt-ip.com
Tue Dec 8 13:19:52 EST 2020


Hi Wen,

On 2020-12-07 23:44, Wen Gong wrote:
> On 2020-09-22 10:28, Thomas Pedersen wrote:
>> S1G beacons are 802.11 Extension Frames, so the fixed
>> header part differs from regular beacons.
>> 
>> Add a handler to process S1G beacons and abstract out the
>> fetching of BSSID and element start locations in the
>> beacon body handler.
>> 
>> Signed-off-by: Thomas Pedersen <thomas at adapt-ip.com>
>> ---
>>  net/mac80211/ieee80211_i.h |  4 ++
>>  net/mac80211/iface.c       |  5 +++
>>  net/mac80211/mlme.c        | 84 
>> +++++++++++++++++++++++++++++---------
>>  net/mac80211/rx.c          | 84 
>> ++++++++++++++++----------------------
>>  net/mac80211/util.c        | 52 +++++++++++++++++++++++
>>  5 files changed, 162 insertions(+), 67 deletions(-)
>> 
> ...
>> @@ -1801,7 +1756,8 @@ ieee80211_rx_h_sta_process(struct 
>> ieee80211_rx_data *rx)
>>  		}
>>  	} else if (rx->sdata->vif.type == NL80211_IFTYPE_OCB) {
>>  		sta->rx_stats.last_rx = jiffies;
>> -	} else if (!is_multicast_ether_addr(hdr->addr1)) {
>> +	} else if (!ieee80211_is_s1g_beacon(hdr->frame_control) &&
>> +		   is_multicast_ether_addr(hdr->addr1)) {
> is this a typo mistake?
> it removed ! for is_multicast_ether_addr(!is_multicast_ether_addr ==>
> is_multicast_ether_addr)

Yes that does look like a typo, it should be:

	} else if (!ieee80211_is_s1g_beacon(hdr->frame_control) &&
		   !is_multicast_ether_addr(hdr->addr1)) {

(because is_multicast_ether_addr() evaluates to true for s1g beacons).

Do you have a patch or would you like me to send a fixup?

Thanks,

-- 
thomas



More information about the ath10k mailing list