diff options
author | sam <sam@FreeBSD.org> | 2007-09-18 20:46:36 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2007-09-18 20:46:36 +0000 |
commit | 98df412892bf899d090d35473f7531efc7dff0d5 (patch) | |
tree | 44f6dd3e3645ee9223aaf6b6d10ddb712ea004a6 /sys/net80211/ieee80211.c | |
parent | 20c40e534c1aa754aca8d819824e7844e8c28b41 (diff) | |
download | FreeBSD-src-98df412892bf899d090d35473f7531efc7dff0d5.zip FreeBSD-src-98df412892bf899d090d35473f7531efc7dff0d5.tar.gz |
o add IEEE80211_RATE_MCS to use instead of naked constant (for marking MCS)
o correct ieee80211_rate2media handling of MCS
o correct rate HT announcements for 11n devices
Approved by: re (blanket wireless)
Diffstat (limited to 'sys/net80211/ieee80211.c')
-rw-r--r-- | sys/net80211/ieee80211.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/net80211/ieee80211.c b/sys/net80211/ieee80211.c index 7e929b1..ab09256 100644 --- a/sys/net80211/ieee80211.c +++ b/sys/net80211/ieee80211.c @@ -1119,14 +1119,16 @@ ieee80211_rate2media(struct ieee80211com *ic, int rate, enum ieee80211_phymode m * Check 11n rates first for match as an MCS. */ if (mode == IEEE80211_MODE_11NA) { - if ((rate & IEEE80211_RATE_BASIC) == 0) { + if (rate & IEEE80211_RATE_MCS) { + rate &= ~IEEE80211_RATE_MCS; m = findmedia(htrates, N(htrates), rate); if (m != IFM_AUTO) return m | IFM_IEEE80211_11NA; } } else if (mode == IEEE80211_MODE_11NG) { /* NB: 12 is ambiguous, it will be treated as an MCS */ - if ((rate & IEEE80211_RATE_BASIC) == 0) { + if (rate & IEEE80211_RATE_MCS) { + rate &= ~IEEE80211_RATE_MCS; m = findmedia(htrates, N(htrates), rate); if (m != IFM_AUTO) return m | IFM_IEEE80211_11NG; |