diff options
author | Stefan Sperling <stsp@cvs.openbsd.org> | 2015-12-12 12:22:15 +0000 |
---|---|---|
committer | Stefan Sperling <stsp@cvs.openbsd.org> | 2015-12-12 12:22:15 +0000 |
commit | 3b701985760d489427cd827efafe0b2cfacc9897 (patch) | |
tree | b498049a5d0f63441efac92fbb730076f40b3bd6 | |
parent | a0414e6e72f84f3627b6dbea4a43acf91e0f57cc (diff) |
Flag AP as QoS capable when EDCA or WME information elements occur in beacons
or probe responses. Makes 11n negotiation with Linux iwlwifi AP succeed.
ok mpi@
-rw-r--r-- | sys/net80211/ieee80211_input.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/sys/net80211/ieee80211_input.c b/sys/net80211/ieee80211_input.c index c1b05365d6b..76ffe2ebcd1 100644 --- a/sys/net80211/ieee80211_input.c +++ b/sys/net80211/ieee80211_input.c @@ -1,4 +1,4 @@ -/* $OpenBSD: ieee80211_input.c,v 1.143 2015/12/12 11:25:46 stsp Exp $ */ +/* $OpenBSD: ieee80211_input.c,v 1.144 2015/12/12 12:22:14 stsp Exp $ */ /*- * Copyright (c) 2001 Atsushi Onoe @@ -1585,10 +1585,13 @@ ieee80211_recv_probe_resp(struct ieee80211com *ic, struct mbuf *m, */ if (ni->ni_flags & IEEE80211_NODE_QOS) { /* always prefer EDCA IE over Wi-Fi Alliance WMM IE */ - if (edcaie != NULL) - ieee80211_parse_edca_params(ic, edcaie); - else if (wmmie != NULL) - ieee80211_parse_wmm_params(ic, wmmie); + if ((edcaie != NULL && + ieee80211_parse_edca_params(ic, edcaie) == 0) || + (wmmie != NULL && + ieee80211_parse_wmm_params(ic, wmmie) == 0)) + ni->ni_flags |= IEEE80211_NODE_QOS; + else + ni->ni_flags &= ~IEEE80211_NODE_QOS; } if (ic->ic_state == IEEE80211_S_SCAN |