diff options
| author | Sam Leffler <sam@FreeBSD.org> | 2003-09-14 22:34:24 +0000 |
|---|---|---|
| committer | Sam Leffler <sam@FreeBSD.org> | 2003-09-14 22:34:24 +0000 |
| commit | 4f2e09c4b26e2662fbd342f29d063d6c172e084f (patch) | |
| tree | 4990558f5b61559fa7b2160622ba9d0ac48abeca | |
| parent | a0efa60dc9e4a6cd187384d7a6b4256139bcfbde (diff) | |
Notes
| -rw-r--r-- | sys/net80211/ieee80211_output.c | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/sys/net80211/ieee80211_output.c b/sys/net80211/ieee80211_output.c index ccf09b395f79..0b0735fcd7f4 100644 --- a/sys/net80211/ieee80211_output.c +++ b/sys/net80211/ieee80211_output.c @@ -376,6 +376,9 @@ ieee80211_send_mgmt(struct ieee80211com *ic, struct ieee80211_node *ni, capinfo = IEEE80211_CAPINFO_ESS; if (ic->ic_flags & IEEE80211_F_WEPON) capinfo |= IEEE80211_CAPINFO_PRIVACY; + if ((ic->ic_flags & IEEE80211_F_SHPREAMBLE) && + IEEE80211_IS_CHAN_2GHZ(ni->ni_chan)) + capinfo |= IEEE80211_CAPINFO_SHORT_PREAMBLE; *(u_int16_t *)frm = htole16(capinfo); frm += 2; @@ -457,7 +460,12 @@ ieee80211_send_mgmt(struct ieee80211com *ic, struct ieee80211_node *ni, capinfo |= IEEE80211_CAPINFO_ESS; if (ic->ic_flags & IEEE80211_F_WEPON) capinfo |= IEEE80211_CAPINFO_PRIVACY; - if (ic->ic_flags & IEEE80211_F_SHPREAMBLE) + /* + * NB: Some 11a AP's reject the request when + * short premable is set. + */ + if ((ic->ic_flags & IEEE80211_F_SHPREAMBLE) && + IEEE80211_IS_CHAN_2GHZ(ni->ni_chan)) capinfo |= IEEE80211_CAPINFO_SHORT_PREAMBLE; if (ic->ic_flags & IEEE80211_F_SHSLOT) capinfo |= IEEE80211_CAPINFO_SHORT_SLOTTIME; @@ -504,6 +512,9 @@ ieee80211_send_mgmt(struct ieee80211com *ic, struct ieee80211_node *ni, capinfo = IEEE80211_CAPINFO_ESS; if (ic->ic_flags & IEEE80211_F_WEPON) capinfo |= IEEE80211_CAPINFO_PRIVACY; + if ((ic->ic_flags & IEEE80211_F_SHPREAMBLE) && + IEEE80211_IS_CHAN_2GHZ(ni->ni_chan)) + capinfo |= IEEE80211_CAPINFO_SHORT_PREAMBLE; *(u_int16_t *)frm = htole16(capinfo); frm += 2; |
