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@xxxxxxxxxxxx>
---
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)
/*
* Mesh beacons will update last_rx when if they are found to
* match the current local configuration when processed.
...