[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