Lines Matching defs:frm

1100 	uint8_t *frm;
1121 m = ieee80211_getmgtframe(&frm, ic->ic_headroom + hdrlen, 0);
2063 ieee80211_add_rates(uint8_t *frm, const struct ieee80211_rateset *rs)
2067 *frm++ = IEEE80211_ELEMID_RATES;
2071 *frm++ = nrates;
2072 memcpy(frm, rs->rs_rates, nrates);
2073 return frm + nrates;
2080 ieee80211_add_xrates(uint8_t *frm, const struct ieee80211_rateset *rs)
2087 *frm++ = IEEE80211_ELEMID_XRATES;
2088 *frm++ = nrates;
2089 memcpy(frm, rs->rs_rates + IEEE80211_RATE_SIZE, nrates);
2090 frm += nrates;
2092 return frm;
2099 ieee80211_add_ssid(uint8_t *frm, const uint8_t *ssid, u_int len)
2101 *frm++ = IEEE80211_ELEMID_SSID;
2102 *frm++ = len;
2103 memcpy(frm, ssid, len);
2104 return frm + len;
2111 ieee80211_add_erp(uint8_t *frm, struct ieee80211vap *vap)
2116 *frm++ = IEEE80211_ELEMID_ERP;
2117 *frm++ = 1;
2143 *frm++ = erp;
2144 return frm;
2151 ieee80211_add_cfparms(uint8_t *frm, struct ieee80211com *ic)
2153 #define ADDSHORT(frm, v) do { \
2154 le16enc(frm, v); \
2155 frm += 2; \
2157 *frm++ = IEEE80211_ELEMID_CFPARMS;
2158 *frm++ = 6;
2159 *frm++ = 0; /* CFP count */
2160 *frm++ = 2; /* CFP period */
2161 ADDSHORT(frm, 0); /* CFP MaxDuration (TU) */
2162 ADDSHORT(frm, 0); /* CFP CurRemaining (TU) */
2163 return frm;
2168 add_appie(uint8_t *frm, const struct ieee80211_appie *ie)
2170 memcpy(frm, ie->ie_data, ie->ie_len);
2171 return frm + ie->ie_len;
2175 add_ie(uint8_t *frm, const uint8_t *ie)
2177 memcpy(frm, ie, 2 + ie[1]);
2178 return frm + 2 + ie[1];
2186 ieee80211_add_wme_info(uint8_t *frm, struct ieee80211_wme_state *wme,
2192 *frm++ = IEEE80211_ELEMID_VENDOR;
2193 *frm++ = sizeof(struct ieee80211_wme_info) - 2;
2194 memcpy(frm, oui, sizeof(oui));
2195 frm += sizeof(oui);
2196 *frm++ = WME_INFO_OUI_SUBTYPE;
2197 *frm++ = WME_VERSION;
2202 *frm = wme->wme_bssChanParams.cap_info;
2204 *frm |= WME_CAPINFO_UAPSD_EN;
2205 frm++;
2212 *frm++ = vap->iv_uapsdinfo;
2215 *frm++ = 0;
2219 return frm;
2226 ieee80211_add_wme_param(uint8_t *frm, struct ieee80211_wme_state *wme,
2229 #define ADDSHORT(frm, v) do { \
2230 le16enc(frm, v); \
2231 frm += 2; \
2244 memcpy(frm, &param, sizeof(param));
2245 frm += __offsetof(struct ieee80211_wme_info, wme_info);
2246 *frm = wme->wme_bssChanParams.cap_info; /* AC info */
2248 *frm |= WME_CAPINFO_UAPSD_EN;
2249 frm++;
2250 *frm++ = 0; /* reserved field */
2255 *frm++ = _IEEE80211_SHIFTMASK(i, WME_PARAM_ACI)
2259 *frm++ = _IEEE80211_SHIFTMASK(ac->wmep_logcwmax,
2264 ADDSHORT(frm, ac->wmep_txopLimit);
2266 return frm;
2275 ieee80211_add_powerconstraint(uint8_t *frm, struct ieee80211vap *vap)
2281 frm[0] = IEEE80211_ELEMID_PWRCNSTR;
2282 frm[1] = 1;
2283 frm[2] = c->ic_maxregpower > limit ? c->ic_maxregpower - limit : 0;
2284 return frm + 3;
2291 ieee80211_add_powercapability(uint8_t *frm, const struct ieee80211_channel *c)
2293 frm[0] = IEEE80211_ELEMID_PWRCAP;
2294 frm[1] = 2;
2295 frm[2] = c->ic_minpower;
2296 frm[3] = c->ic_maxpower;
2297 return frm + 4;
2304 ieee80211_add_supportedchannels(uint8_t *frm, struct ieee80211com *ic)
2308 frm[0] = IEEE80211_ELEMID_SUPPCHAN;
2309 frm[1] = ielen;
2311 memcpy(frm+2, ic->ic_chan_avail, ielen);
2312 return frm + 2 + ielen;
2319 ieee80211_add_quiet(uint8_t *frm, struct ieee80211vap *vap, int update)
2321 struct ieee80211_quiet_ie *quiet = (struct ieee80211_quiet_ie *) frm;
2346 return frm + sizeof(*quiet);
2356 ieee80211_add_csa(uint8_t *frm, struct ieee80211vap *vap)
2359 struct ieee80211_csa_ie *csa = (struct ieee80211_csa_ie *) frm;
2366 return frm + sizeof(*csa);
2373 ieee80211_add_countryie(uint8_t *frm, struct ieee80211com *ic)
2387 return frm;
2390 return add_appie(frm, ic->ic_countryie);
2394 ieee80211_add_wpa(uint8_t *frm, const struct ieee80211vap *vap)
2397 return (add_ie(frm, vap->iv_wpa_ie));
2400 return (frm);
2405 ieee80211_add_rsn(uint8_t *frm, const struct ieee80211vap *vap)
2408 return (add_ie(frm, vap->iv_rsn_ie));
2411 return (frm);
2416 ieee80211_add_qos(uint8_t *frm, const struct ieee80211_node *ni)
2419 *frm++ = IEEE80211_ELEMID_QOS;
2420 *frm++ = 1;
2421 *frm++ = 0;
2424 return (frm);
2473 uint8_t *frm;
2488 frm = IEEE80211_MALLOC(len, M_80211_VAP,
2490 *frmp = frm;
2493 frm = *frmp;
2496 frm = ieee80211_add_ssid(frm, ssid, ssidlen);
2498 frm = ieee80211_add_rates(frm, rs);
2499 frm = ieee80211_add_xrates(frm, rs);
2518 frm = ieee80211_add_htcap_ch(frm, vap, c);
2532 frm = ieee80211_add_vhtcap_ch(frm, vap, c);
2536 frm = ieee80211_add_wpa(frm, vap);
2538 frm = add_appie(frm, vap->iv_appie_probereq);
2541 *frmp = frm;
2561 uint8_t *frm;
2589 m = ieee80211_getmgtframe(&frm,
2598 ret = ieee80211_probereq_ie(vap, ic, &frm, &frmlen, ssid, ssidlen,
2603 m->m_pkthdr.len = m->m_len = frm - mtod(m, uint8_t *);
2693 uint8_t *frm;
2732 m = ieee80211_getmgtframe(&frm,
2740 ((uint16_t *)frm)[0] =
2743 ((uint16_t *)frm)[1] = htole16(arg); /* sequence number */
2744 ((uint16_t *)frm)[2] = htole16(status);/* status */
2747 ((uint16_t *)frm)[3] =
2750 memcpy(&((uint16_t *)frm)[4], ni->ni_challenge,
2778 m = ieee80211_getmgtframe(&frm,
2783 *(uint16_t *)frm = htole16(arg); /* reason */
2811 m = ieee80211_getmgtframe(&frm,
2854 *(uint16_t *)frm = htole16(capinfo);
2855 frm += 2;
2858 *(uint16_t *)frm = htole16(howmany(ic->ic_lintval,
2860 frm += 2;
2863 IEEE80211_ADDR_COPY(frm, bss->ni_bssid);
2864 frm += IEEE80211_ADDR_LEN;
2867 frm = ieee80211_add_ssid(frm, ni->ni_essid, ni->ni_esslen);
2868 frm = ieee80211_add_rates(frm, &ni->ni_rates);
2869 frm = ieee80211_add_rsn(frm, vap);
2870 frm = ieee80211_add_xrates(frm, &ni->ni_rates);
2872 frm = ieee80211_add_powercapability(frm,
2874 frm = ieee80211_add_supportedchannels(frm, ic);
2886 frm = ieee80211_add_htcap(frm, ni);
2893 frm = ieee80211_add_vhtcap(frm, ni);
2896 frm = ieee80211_add_wpa(frm, vap);
2899 frm = ieee80211_add_wme_info(frm, &ic->ic_wme, ni);
2909 frm = ieee80211_add_htcap_vendor(frm, ni);
2913 frm = ieee80211_add_ath(frm,
2921 frm = add_appie(frm, vap->iv_appie_assocreq);
2922 m->m_pkthdr.len = m->m_len = frm - mtod(m, uint8_t *);
2947 m = ieee80211_getmgtframe(&frm,
2969 *(uint16_t *)frm = htole16(capinfo);
2970 frm += 2;
2972 *(uint16_t *)frm = htole16(arg); /* status */
2973 frm += 2;
2976 *(uint16_t *)frm = htole16(ni->ni_associd);
2980 frm += 2;
2982 frm = ieee80211_add_rates(frm, &ni->ni_rates);
2983 frm = ieee80211_add_xrates(frm, &ni->ni_rates);
2986 frm = ieee80211_add_htcap(frm, ni);
2987 frm = ieee80211_add_htinfo(frm, ni);
2991 frm = ieee80211_add_wme_param(frm, &ic->ic_wme,
2994 frm = ieee80211_add_htcap_vendor(frm, ni);
2995 frm = ieee80211_add_htinfo_vendor(frm, ni);
2998 frm = ieee80211_add_vhtcap(frm, ni);
2999 frm = ieee80211_add_vhtinfo(frm, ni);
3003 frm = ieee80211_add_ath(frm,
3010 frm = add_appie(frm, vap->iv_appie_assocresp);
3011 m->m_pkthdr.len = m->m_len = frm - mtod(m, uint8_t *);
3018 m = ieee80211_getmgtframe(&frm,
3023 *(uint16_t *)frm = htole16(arg); /* reason */
3064 uint8_t *frm;
3094 m = ieee80211_getmgtframe(&frm,
3132 memset(frm, 0, 8); /* timestamp should be filled later */
3133 frm += 8;
3134 *(uint16_t *)frm = htole16(bss->ni_intval);
3135 frm += 2;
3137 *(uint16_t *)frm = htole16(capinfo);
3138 frm += 2;
3140 frm = ieee80211_add_ssid(frm, bss->ni_essid, bss->ni_esslen);
3142 frm = ieee80211_add_rates(frm, rs);
3145 *frm++ = IEEE80211_ELEMID_FHPARMS;
3146 *frm++ = 5;
3147 *frm++ = bss->ni_fhdwell & 0x00ff;
3148 *frm++ = (bss->ni_fhdwell >> 8) & 0x00ff;
3149 *frm++ = IEEE80211_FH_CHANSET(
3151 *frm++ = IEEE80211_FH_CHANPAT(
3153 *frm++ = bss->ni_fhindex;
3155 *frm++ = IEEE80211_ELEMID_DSPARMS;
3156 *frm++ = 1;
3157 *frm++ = ieee80211_chan2ieee(ic, bss->ni_chan);
3161 *frm++ = IEEE80211_ELEMID_IBSSPARMS;
3162 *frm++ = 2;
3163 *frm++ = 0; *frm++ = 0; /* TODO: ATIM window */
3167 frm = ieee80211_add_countryie(frm, ic);
3170 frm = ieee80211_add_powerconstraint(frm, vap);
3172 frm = ieee80211_add_csa(frm, vap);
3178 frm = ieee80211_add_quiet(frm, vap, 0);
3182 frm = ieee80211_add_erp(frm, vap);
3183 frm = ieee80211_add_xrates(frm, rs);
3184 frm = ieee80211_add_rsn(frm, vap);
3193 frm = ieee80211_add_htcap(frm, bss);
3194 frm = ieee80211_add_htinfo(frm, bss);
3198 frm = ieee80211_add_vhtcap(frm, bss);
3199 frm = ieee80211_add_vhtinfo(frm, bss);
3201 frm = ieee80211_add_wpa(frm, vap);
3203 frm = ieee80211_add_wme_param(frm, &ic->ic_wme,
3208 frm = ieee80211_add_htcap_vendor(frm, bss);
3209 frm = ieee80211_add_htinfo_vendor(frm, bss);
3214 frm = ieee80211_add_athcaps(frm, bss);
3217 frm = add_appie(frm, vap->iv_appie_proberesp);
3220 frm = ieee80211_add_meshid(frm, vap);
3221 frm = ieee80211_add_meshconf(frm, vap);
3224 m->m_pkthdr.len = m->m_len = frm - mtod(m, uint8_t *);
3446 ieee80211_beacon_construct(struct mbuf *m, uint8_t *frm,
3514 memset(frm, 0, 8); /* XXX timestamp is set by hardware/driver */
3515 frm += 8;
3516 *(uint16_t *)frm = htole16(ni->ni_intval);
3517 frm += 2;
3519 bo->bo_caps = (uint16_t *)frm;
3520 *(uint16_t *)frm = htole16(capinfo);
3521 frm += 2;
3522 *frm++ = IEEE80211_ELEMID_SSID;
3524 *frm++ = ni->ni_esslen;
3525 memcpy(frm, ni->ni_essid, ni->ni_esslen);
3526 frm += ni->ni_esslen;
3528 *frm++ = 0;
3529 frm = ieee80211_add_rates(frm, rs);
3531 *frm++ = IEEE80211_ELEMID_DSPARMS;
3532 *frm++ = 1;
3533 *frm++ = ieee80211_chan2ieee(ic, ni->ni_chan);
3536 bo->bo_cfp = frm;
3537 frm = ieee80211_add_cfparms(frm, ic);
3539 bo->bo_tim = frm;
3541 *frm++ = IEEE80211_ELEMID_IBSSPARMS;
3542 *frm++ = 2;
3543 *frm++ = 0; *frm++ = 0; /* TODO: ATIM window */
3548 struct ieee80211_tim_ie *tie = (struct ieee80211_tim_ie *) frm;
3556 frm += sizeof(struct ieee80211_tim_ie);
3559 bo->bo_tim_trailer = frm;
3562 frm = ieee80211_add_countryie(frm, ic);
3565 frm = ieee80211_add_powerconstraint(frm, vap);
3566 bo->bo_csa = frm;
3568 frm = ieee80211_add_csa(frm, vap);
3570 bo->bo_csa = frm;
3584 bo->bo_quiet = frm;
3585 frm = ieee80211_add_quiet(frm,vap, 0);
3591 bo->bo_erp = frm;
3592 frm = ieee80211_add_erp(frm, vap);
3594 frm = ieee80211_add_xrates(frm, rs);
3595 frm = ieee80211_add_rsn(frm, vap);
3597 frm = ieee80211_add_htcap(frm, ni);
3598 bo->bo_htinfo = frm;
3599 frm = ieee80211_add_htinfo(frm, ni);
3603 frm = ieee80211_add_vhtcap(frm, ni);
3604 bo->bo_vhtinfo = frm;
3605 frm = ieee80211_add_vhtinfo(frm, ni);
3611 frm = ieee80211_add_wpa(frm, vap);
3613 bo->bo_wme = frm;
3614 frm = ieee80211_add_wme_param(frm, &ic->ic_wme,
3619 frm = ieee80211_add_htcap_vendor(frm, ni);
3620 frm = ieee80211_add_htinfo_vendor(frm, ni);
3625 bo->bo_ath = frm;
3626 frm = ieee80211_add_athcaps(frm, ni);
3631 bo->bo_tdma = frm;
3632 frm = ieee80211_add_tdma(frm, vap);
3636 bo->bo_appie = frm;
3638 frm = add_appie(frm, vap->iv_appie_beacon);
3644 frm = ieee80211_add_meshid(frm, vap);
3645 bo->bo_meshconf = frm;
3646 frm = ieee80211_add_meshconf(frm, vap);
3649 bo->bo_tim_trailer_len = frm - bo->bo_tim_trailer;
3650 bo->bo_csa_trailer_len = frm - bo->bo_csa;
3651 m->m_pkthdr.len = m->m_len = frm - mtod(m, uint8_t *);
3666 uint8_t *frm;
3747 m = ieee80211_getmgtframe(&frm,
3755 ieee80211_beacon_construct(m, frm, ni);
4090 uint8_t *frm;
4106 frm = bo->bo_appie;
4108 frm = add_appie(frm, aie);