Home | History | Annotate | Download | only in net80211

Lines Matching defs:frm

1005 ieee80211_add_rates(u_int8_t *frm, const struct ieee80211_rateset *rs)
1009 *frm++ = IEEE80211_ELEMID_RATES;
1013 *frm++ = nrates;
1014 memcpy(frm, rs->rs_rates, nrates);
1015 return frm + nrates;
1022 ieee80211_add_xrates(u_int8_t *frm, const struct ieee80211_rateset *rs)
1029 *frm++ = IEEE80211_ELEMID_XRATES;
1030 *frm++ = nrates;
1031 memcpy(frm, rs->rs_rates + IEEE80211_RATE_SIZE, nrates);
1032 frm += nrates;
1034 return frm;
1041 ieee80211_add_ssid(u_int8_t *frm, const u_int8_t *ssid, u_int len)
1043 *frm++ = IEEE80211_ELEMID_SSID;
1044 *frm++ = len;
1045 memcpy(frm, ssid, len);
1046 return frm + len;
1053 ieee80211_add_erp(u_int8_t *frm, struct ieee80211com *ic)
1057 *frm++ = IEEE80211_ELEMID_ERP;
1058 *frm++ = 1;
1066 *frm++ = erp;
1067 return frm;
1074 #define ADDSHORT(frm, v) do { \
1075 frm[0] = (v) & 0xff; \
1076 frm[1] = (v) >> 8; \
1077 frm += 2; \
1079 #define ADDSELECTOR(frm, sel) do { \
1080 memcpy(frm, sel, 4); \
1081 frm += 4; \
1099 u_int8_t *frm = ie;
1102 *frm++ = IEEE80211_ELEMID_VENDOR;
1103 *frm++ = 0; /* length filled in below */
1104 memcpy(frm, oui, sizeof(oui)); /* WPA OUI */
1105 frm += sizeof(oui);
1106 ADDSHORT(frm, WPA_VERSION);
1113 ADDSELECTOR(frm, wep104_suite);
1115 ADDSELECTOR(frm, cipher_suite[rsn->rsn_mcastcipher]);
1118 selcnt = frm;
1119 ADDSHORT(frm, 0); /* selector count */
1122 ADDSELECTOR(frm, cipher_suite[IEEE80211_CIPHER_AES_CCM]);
1126 ADDSELECTOR(frm, cipher_suite[IEEE80211_CIPHER_TKIP]);
1130 selcnt = frm;
1131 ADDSHORT(frm, 0); /* selector count */
1134 ADDSELECTOR(frm, key_mgt_unspec);
1138 ADDSELECTOR(frm, key_mgt_psk);
1143 ADDSHORT(frm, rsn->rsn_caps);
1146 ie[1] = frm - ie - 2;
1150 return frm;
1160 #define ADDSHORT(frm, v) do { \
1161 frm[0] = (v) & 0xff; \
1162 frm[1] = (v) >> 8; \
1163 frm += 2; \
1165 #define ADDSELECTOR(frm, sel) do { \
1166 memcpy(frm, sel, 4); \
1167 frm += 4; \
1184 u_int8_t *frm = ie;
1187 *frm++ = IEEE80211_ELEMID_RSN;
1188 *frm++ = 0; /* length filled in below */
1189 ADDSHORT(frm, RSN_VERSION);
1196 ADDSELECTOR(frm, wep104_suite);
1198 ADDSELECTOR(frm, cipher_suite[rsn->rsn_mcastcipher]);
1201 selcnt = frm;
1202 ADDSHORT(frm, 0); /* selector count */
1205 ADDSELECTOR(frm, cipher_suite[IEEE80211_CIPHER_AES_CCM]);
1209 ADDSELECTOR(frm, cipher_suite[IEEE80211_CIPHER_TKIP]);
1213 selcnt = frm;
1214 ADDSHORT(frm, 0); /* selector count */
1217 ADDSELECTOR(frm, key_mgt_unspec);
1221 ADDSELECTOR(frm, key_mgt_psk);
1225 ADDSHORT(frm, rsn->rsn_caps);
1229 ie[1] = frm - ie - 2;
1233 return frm;
1243 ieee80211_add_wpa(u_int8_t *frm, struct ieee80211com *ic)
1248 frm = ieee80211_setup_rsn_ie(ic, frm);
1250 frm = ieee80211_setup_wpa_ie(ic, frm);
1251 return frm;
1259 ieee80211_add_wme_info(u_int8_t *frm, struct ieee80211_wme_state *wme)
1270 memcpy(frm, &info, sizeof(info));
1271 return frm + sizeof(info);
1278 ieee80211_add_wme_param(u_int8_t *frm, struct ieee80211_wme_state *wme)
1281 #define ADDSHORT(frm, v) do { \
1282 frm[0] = (v) & 0xff; \
1283 frm[1] = (v) >> 8; \
1284 frm += 2; \
1297 memcpy(frm, &param, sizeof(param));
1298 frm += offsetof(struct ieee80211_wme_info, wme_info);
1299 *frm++ = wme->wme_bssChanParams.cap_info; /* AC info */
1300 *frm++ = 0; /* reserved field */
1304 *frm++ = SM(i, WME_PARAM_ACI) |
1307 *frm++ = SM(ac->wmep_logcwmax, WME_PARAM_LOGCWMAX) |
1309 ADDSHORT(frm, ac->wmep_txopLimit);
1312 return frm;
1334 u_int8_t *frm;
1355 m = ieee80211_getmgtframe(&frm,
1367 frm = ieee80211_add_ssid(frm, ssid, ssidlen);
1369 frm = ieee80211_add_rates(frm, &ic->ic_sup_rates[mode]);
1370 frm = ieee80211_add_xrates(frm, &ic->ic_sup_rates[mode]);
1373 memcpy(frm, optie, optielen);
1374 frm += optielen;
1376 m->m_pkthdr.len = m->m_len = frm - mtod(m, u_int8_t *);
1416 u_int8_t *frm;
1453 m = ieee80211_getmgtframe(&frm,
1471 memset(frm, 0, 8);
1472 frm += 8;
1475 *(u_int16_t *)frm = htole16(ic->ic_bss->ni_intval);
1476 frm += 2;
1490 *(u_int16_t *)frm = htole16(capinfo);
1491 frm += 2;
1494 frm = ieee80211_add_ssid(frm, ic->ic_bss->ni_essid,
1498 frm = ieee80211_add_rates(frm, &ni->ni_rates);
1502 *frm++ = IEEE80211_ELEMID_FHPARMS;
1503 *frm++ = 5;
1504 *frm++ = ni->ni_fhdwell & 0x00ff;
1505 *frm++ = (ni->ni_fhdwell >> 8) & 0x00ff;
1506 *frm++ = IEEE80211_FH_CHANSET(
1508 *frm++ = IEEE80211_FH_CHANPAT(
1510 *frm++ = ni->ni_fhindex;
1512 *frm++ = IEEE80211_ELEMID_DSPARMS;
1513 *frm++ = 1;
1514 *frm++ = ieee80211_chan2ieee(ic, ic->ic_curchan);
1519 *frm++ = IEEE80211_ELEMID_IBSSPARMS;
1520 *frm++ = 2;
1521 *frm++ = 0; *frm++ = 0; /* TODO: ATIM window */
1526 frm = ieee80211_add_wpa(frm, ic);
1530 frm = ieee80211_add_erp(frm, ic);
1533 frm = ieee80211_add_xrates(frm, &ni->ni_rates);
1537 frm = ieee80211_add_wme_param(frm, &ic->ic_wme);
1539 m->m_pkthdr.len = m->m_len = frm - mtod(m, u_int8_t *);
1570 m = ieee80211_getmgtframe(&frm, frm_size);
1574 ((u_int16_t *)frm)[0] =
1577 ((u_int16_t *)frm)[1] = htole16(arg); /* sequence number */
1578 ((u_int16_t *)frm)[2] = htole16(status);/* status */
1581 ((u_int16_t *)frm)[3] =
1584 memcpy(&((u_int16_t *)frm)[4], ni->ni_challenge,
1612 m = ieee80211_getmgtframe(&frm, sizeof(u_int16_t));
1615 *(u_int16_t *)frm = htole16(arg); /* reason */
1637 m = ieee80211_getmgtframe(&frm,
1667 *(u_int16_t *)frm = htole16(capinfo);
1668 frm += 2;
1670 *(u_int16_t *)frm = htole16(ic->ic_lintval);
1671 frm += 2;
1674 IEEE80211_ADDR_COPY(frm, ic->ic_bss->ni_bssid);
1675 frm += IEEE80211_ADDR_LEN;
1678 frm = ieee80211_add_ssid(frm, ni->ni_essid, ni->ni_esslen);
1679 frm = ieee80211_add_rates(frm, &ni->ni_rates);
1680 frm = ieee80211_add_xrates(frm, &ni->ni_rates);
1682 frm = ieee80211_add_wme_info(frm, &ic->ic_wme);
1684 memcpy(frm, ic->ic_opt_ie, ic->ic_opt_ie_len);
1685 frm += ic->ic_opt_ie_len;
1687 m->m_pkthdr.len = m->m_len = frm - mtod(m, u_int8_t *);
1703 m = ieee80211_getmgtframe(&frm,
1722 *(u_int16_t *)frm = htole16(capinfo);
1723 frm += 2;
1725 *(u_int16_t *)frm = htole16(arg); /* status */
1726 frm += 2;
1729 *(u_int16_t *)frm = htole16(ni->ni_associd);
1732 *(u_int16_t *)frm = 0;
1735 frm += 2;
1737 frm = ieee80211_add_rates(frm, &ni->ni_rates);
1738 frm = ieee80211_add_xrates(frm, &ni->ni_rates);
1740 frm = ieee80211_add_wme_param(frm, &ic->ic_wme);
1741 m->m_pkthdr.len = m->m_len = frm - mtod(m, u_int8_t *);
1748 m = ieee80211_getmgtframe(&frm, sizeof(u_int16_t));
1751 *(u_int16_t *)frm = htole16(arg); /* reason */
1837 u_int8_t *frm, *efrm;
1875 m = ieee80211_getmgtframe(&frm, pktlen);
1883 memset(frm, 0, 8); /* XXX timestamp is set by hardware/driver */
1884 frm += 8;
1886 *(u_int16_t *)frm = htole16(ni->ni_intval);
1887 frm += 2;
1900 bo->bo_caps = (u_int16_t *)frm;
1901 *(u_int16_t *)frm = htole16(capinfo);
1902 frm += 2;
1904 *frm++ = IEEE80211_ELEMID_SSID;
1906 *frm++ = ni->ni_esslen;
1907 memcpy(frm, ni->ni_essid, ni->ni_esslen);
1908 frm += ni->ni_esslen;
1910 *frm++ = 0;
1912 frm = ieee80211_add_rates(frm, rs);
1915 *frm++ = IEEE80211_ELEMID_DSPARMS;
1916 *frm++ = 1;
1917 *frm++ = ieee80211_chan2ieee(ic, ni->ni_chan);
1920 bo->bo_tim = frm;
1922 *frm++ = IEEE80211_ELEMID_IBSSPARMS;
1923 *frm++ = 2;
1924 *frm++ = 0; *frm++ = 0; /* TODO: ATIM window */
1927 struct ieee80211_tim_ie *tie = (struct ieee80211_tim_ie *)frm;
1935 frm += sizeof(struct ieee80211_tim_ie);
1939 bo->bo_trailer = frm;
1941 bo->bo_wme = frm;
1942 frm = ieee80211_add_wme_param(frm, &ic->ic_wme);
1947 frm = ieee80211_add_wpa(frm, ic);
1950 frm = ieee80211_add_erp(frm, ic);
1952 efrm = ieee80211_add_xrates(frm, rs);