Adrian Chadd
2021-03-29 17:26:58 UTC
hm!
spec, right?
I remember they needed to change the flags because existing draft
implementations got the 80+80/160MHz negotiation really badly wrong in
some interop places...
-adrian
This patch corrects ieee80211_vht_get_vhtcap_ie for 160/80P80 channel width recognition.
diff --git a/sys/net80211/ieee80211.h b/sys/net80211/ieee80211.h
index 86ab1459cca..76c43629b33 100644
--- a/sys/net80211/ieee80211.h
+++ b/sys/net80211/ieee80211.h
@@ -811,9 +811,9 @@ struct ieee80211_ie_vht_operation {
#define IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_MASK 0x0000000C
#define IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_MASK_S 2
#define IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_NONE 0
-#define IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_160MHZ 1
-#define IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_160_80P80MHZ 2
-#define IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_RESERVED 3
+#define IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_160MHZ 4
+#define IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_160_80P80MHZ 8
+#define IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_RESERVED 16
#define IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160MHZ(_vhtcaps) \
(_IEEE80211_MASKSHIFT(_vhtcaps, IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_MASK) >= \
This is the flag change from the draft 11ac spec to the released 11acdiff --git a/sys/net80211/ieee80211.h b/sys/net80211/ieee80211.h
index 86ab1459cca..76c43629b33 100644
--- a/sys/net80211/ieee80211.h
+++ b/sys/net80211/ieee80211.h
@@ -811,9 +811,9 @@ struct ieee80211_ie_vht_operation {
#define IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_MASK 0x0000000C
#define IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_MASK_S 2
#define IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_NONE 0
-#define IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_160MHZ 1
-#define IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_160_80P80MHZ 2
-#define IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_RESERVED 3
+#define IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_160MHZ 4
+#define IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_160_80P80MHZ 8
+#define IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_RESERVED 16
#define IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_IS_160MHZ(_vhtcaps) \
(_IEEE80211_MASKSHIFT(_vhtcaps, IEEE80211_VHTCAP_SUPP_CHAN_WIDTH_MASK) >= \
spec, right?
I remember they needed to change the flags because existing draft
implementations got the 80+80/160MHz negotiation really badly wrong in
some interop places...
-adrian
_______________________________________________
https://lists.freebsd.org/mailman/listinfo/freebsd-current
https://lists.freebsd.org/mailman/listinfo/freebsd-current