Discussion:
Correct net80211 channel flag.
Adrian Chadd
2021-03-29 17:26:58 UTC
Permalink
hm!
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 11ac
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
Adrian Chadd
2021-04-02 04:56:07 UTC
Permalink
Hi!

Oh, so from what I recall, implementations got it wrong in the early
draft days with their interop so the flag values changed.


-adrian
Well, I see.
I am newly to freebsd, thanks for your answering.
I had tried using this section of code and found these flags are not satisfied, after changing them, I can negotiate VHT80, VHT160 fine with iwm, so I pointed out this problem. I am also wondering what's the badly wrong of you said in draft VHT implementation?
thanks
zxystd
Post by Adrian Chadd
hm!
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 11ac
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
Adrian Chadd
2021-04-02 06:44:20 UTC
Permalink
I've got this in my local tree now. I have a note to go dig up which
draft I yanked this from and update it with reference to the draft and
the current spec.

Thanks for pointing this out!


-adrian
Bjoern A. Zeeb
2021-04-02 20:40:54 UTC
Permalink
Post by Adrian Chadd
I've got this in my local tree now.
That’s not a good idea?
Post by Adrian Chadd
I have a note to go dig up which
draft I yanked this from and update it with reference to the draft and
the current spec.
Thanks for pointing this out!
Aehm, am I missing something but I believe everywhere we use these
values
we do properly apply a maskshift apart from
ieee80211_vht_get_vhtcap_ie() where
we apply a shiftmask when setting them again after doing the logic
checks
so changing them will do us no good at all or am I looking at the wrong
tree?

/bz
Adrian Chadd
2021-04-02 20:48:45 UTC
Permalink
lemme go see (again). That's why I wanted to re-review it all before I
landed stuff!


-a

On Fri, 2 Apr 2021 at 13:41, Bjoern A. Zeeb
Post by Bjoern A. Zeeb
Post by Adrian Chadd
I've got this in my local tree now.
That’s not a good idea?
Post by Adrian Chadd
I have a note to go dig up which
draft I yanked this from and update it with reference to the draft and
the current spec.
Thanks for pointing this out!
Aehm, am I missing something but I believe everywhere we use these
values
we do properly apply a maskshift apart from
ieee80211_vht_get_vhtcap_ie() where
we apply a shiftmask when setting them again after doing the logic
checks
so changing them will do us no good at all or am I looking at the wrong
tree?
/bz
Loading...