Changeset View
Changeset View
Standalone View
Standalone View
sys/net80211/ieee80211_output.c
Show First 20 Lines • Show All 2,429 Lines • ▼ Show 20 Lines | ieee80211_probereq_ie_len(struct ieee80211vap *vap, struct ieee80211com *ic) | ||||
const struct ieee80211_rateset *rs; | const struct ieee80211_rateset *rs; | ||||
rs = ieee80211_get_suprates(ic, ic->ic_curchan); | rs = ieee80211_get_suprates(ic, ic->ic_curchan); | ||||
/* | /* | ||||
* prreq frame format | * prreq frame format | ||||
* [tlv] ssid | * [tlv] ssid | ||||
* [tlv] supported rates | * [tlv] supported rates | ||||
* [tlv] RSN (optional) | |||||
* [tlv] extended supported rates (if needed) | * [tlv] extended supported rates (if needed) | ||||
* [tlv] HT cap (optional) | * [tlv] HT cap (optional) | ||||
* [tlv] VHT cap (optional) | * [tlv] VHT cap (optional) | ||||
* [tlv] WPA (optional) | * [tlv] WPA (optional) | ||||
* [tlv] user-specified ie's | * [tlv] user-specified ie's | ||||
*/ | */ | ||||
return ( 2 + IEEE80211_NWID_LEN | return ( 2 + IEEE80211_NWID_LEN | ||||
+ 2 + IEEE80211_RATE_SIZE | + 2 + IEEE80211_RATE_SIZE | ||||
+ ((vap->iv_flags & IEEE80211_F_WPA2 && vap->iv_rsn_ie != NULL) ? | |||||
vap->iv_rsn_ie[1] : 0) | |||||
+ ((rs->rs_nrates > IEEE80211_RATE_SIZE) ? | + ((rs->rs_nrates > IEEE80211_RATE_SIZE) ? | ||||
2 + (rs->rs_nrates - IEEE80211_RATE_SIZE) : 0) | 2 + (rs->rs_nrates - IEEE80211_RATE_SIZE) : 0) | ||||
+ (((vap->iv_opmode == IEEE80211_M_IBSS) && | + (((vap->iv_opmode == IEEE80211_M_IBSS) && | ||||
(vap->iv_flags_ht & IEEE80211_FHT_HT)) ? | (vap->iv_flags_ht & IEEE80211_FHT_HT)) ? | ||||
sizeof(struct ieee80211_ie_htcap) : 0) | sizeof(struct ieee80211_ie_htcap) : 0) | ||||
#ifdef notyet | #ifdef notyet | ||||
+ sizeof(struct ieee80211_ie_htinfo) /* XXX not needed? */ | + sizeof(struct ieee80211_ie_htinfo) /* XXX not needed? */ | ||||
+ sizeof(struct ieee80211_ie_vhtcap) | + sizeof(struct ieee80211_ie_vhtcap) | ||||
Show All 31 Lines | if (alloc) { | ||||
*frmlen = len; | *frmlen = len; | ||||
} else | } else | ||||
frm = *frmp; | frm = *frmp; | ||||
if (ssidlen != -1) | if (ssidlen != -1) | ||||
frm = ieee80211_add_ssid(frm, ssid, ssidlen); | frm = ieee80211_add_ssid(frm, ssid, ssidlen); | ||||
rs = ieee80211_get_suprates(ic, ic->ic_curchan); | rs = ieee80211_get_suprates(ic, ic->ic_curchan); | ||||
frm = ieee80211_add_rates(frm, rs); | frm = ieee80211_add_rates(frm, rs); | ||||
frm = ieee80211_add_rsn(frm, vap); | |||||
frm = ieee80211_add_xrates(frm, rs); | frm = ieee80211_add_xrates(frm, rs); | ||||
/* | /* | ||||
* Note: we can't use bss; we don't have one yet. | * Note: we can't use bss; we don't have one yet. | ||||
* | * | ||||
* So, we should announce our capabilities | * So, we should announce our capabilities | ||||
* in this channel mode (2g/5g), not the | * in this channel mode (2g/5g), not the | ||||
* channel details itself. | * channel details itself. | ||||
▲ Show 20 Lines • Show All 1,690 Lines • Show Last 20 Lines |