diff options
author | sam <sam@FreeBSD.org> | 2003-10-17 22:09:20 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2003-10-17 22:09:20 +0000 |
commit | 45942b2f208f5e94f1b4ff569961c42319eab623 (patch) | |
tree | 0649d12cf261d55f6199de032301b3401b4e1129 /sys/net80211/ieee80211_output.c | |
parent | c0c1db86a0e892dec2499bf67d2fc21128dad252 (diff) | |
download | FreeBSD-src-45942b2f208f5e94f1b4ff569961c42319eab623.zip FreeBSD-src-45942b2f208f5e94f1b4ff569961c42319eab623.tar.gz |
include FH/DS parameters element in probe response frames
Diffstat (limited to 'sys/net80211/ieee80211_output.c')
-rw-r--r-- | sys/net80211/ieee80211_output.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/sys/net80211/ieee80211_output.c b/sys/net80211/ieee80211_output.c index c2c7faa..01b87cd 100644 --- a/sys/net80211/ieee80211_output.c +++ b/sys/net80211/ieee80211_output.c @@ -363,6 +363,7 @@ ieee80211_send_mgmt(struct ieee80211com *ic, struct ieee80211_node *ni, * [2] cabability information * [tlv] ssid * [tlv] supported rates + * [tlv] parameter set (FH/DS) * [tlv] parameter set (IBSS) * [tlv] extended supported rates */ @@ -370,6 +371,7 @@ ieee80211_send_mgmt(struct ieee80211com *ic, struct ieee80211_node *ni, 8 + 2 + 2 + 2 + 2 + ni->ni_esslen + 2 + IEEE80211_RATE_SIZE + + (ic->ic_phytype == IEEE80211_T_FH ? 7 : 3) + 6 + 2 + (IEEE80211_RATE_MAXSIZE - IEEE80211_RATE_SIZE)); if (m == NULL) @@ -397,6 +399,22 @@ ieee80211_send_mgmt(struct ieee80211com *ic, struct ieee80211_node *ni, ic->ic_bss->ni_esslen); frm = ieee80211_add_rates(frm, &ic->ic_bss->ni_rates); + if (ic->ic_phytype == IEEE80211_T_FH) { + *frm++ = IEEE80211_ELEMID_FHPARMS; + *frm++ = 5; + *frm++ = ni->ni_fhdwell & 0x00ff; + *frm++ = (ni->ni_fhdwell >> 8) & 0x00ff; + *frm++ = IEEE80211_FH_CHANSET( + ieee80211_chan2ieee(ic, ni->ni_chan)); + *frm++ = IEEE80211_FH_CHANPAT( + ieee80211_chan2ieee(ic, ni->ni_chan)); + *frm++ = ni->ni_fhindex; + } else { + *frm++ = IEEE80211_ELEMID_DSPARMS; + *frm++ = 1; + *frm++ = ieee80211_chan2ieee(ic, ni->ni_chan); + } + if (ic->ic_opmode == IEEE80211_M_IBSS) { *frm++ = IEEE80211_ELEMID_IBSSPARMS; *frm++ = 2; |