Lines Matching defs:frm
1238 u_int8_t *frm, u_int8_t *efrm, struct ieee80211_node *ni, int rssi,
1277 if (frm + 1 < efrm) {
1278 if ((frm[1] + 2) > (efrm - frm)) {
1282 frm[0], (frm[1] + 2) - (efrm - frm));
1287 if (*frm == IEEE80211_ELEMID_CHALLENGE)
1288 challenge = frm;
1289 frm += frm[1] + 2;
1549 iswpaoui(const u_int8_t *frm)
1551 return frm[1] > 3 && LE_READ_4(frm+2) == ((WPA_OUI_TYPE<<24)|WPA_OUI);
1555 iswmeoui(const u_int8_t *frm)
1557 return frm[1] > 3 && LE_READ_4(frm+2) == ((WME_OUI_TYPE<<24)|WME_OUI);
1561 iswmeparam(const u_int8_t *frm)
1563 return frm[1] > 5 && LE_READ_4(frm+2) == ((WME_OUI_TYPE<<24)|WME_OUI) &&
1564 frm[6] == WME_PARAM_OUI_SUBTYPE;
1568 iswmeinfo(const u_int8_t *frm)
1570 return frm[1] > 5 && LE_READ_4(frm+2) == ((WME_OUI_TYPE<<24)|WME_OUI) &&
1571 frm[6] == WME_INFO_OUI_SUBTYPE;
1633 ieee80211_parse_wpa(struct ieee80211com *ic, u_int8_t *frm,
1636 u_int8_t len = frm[1];
1659 frm += 2; /* beginning of payload */
1660 frm += 4, len -= 4;
1663 w = LE_READ_2(frm);
1670 frm += 2, len -= 2;
1673 w = wpa_cipher(frm, &rsn->rsn_mcastkeylen);
1681 frm += 4, len -= 4;
1684 n = LE_READ_2(frm);
1685 frm += 2, len -= 2;
1695 w |= 1 << wpa_cipher(frm, &rsn->rsn_ucastkeylen);
1696 frm += 4, len -= 4;
1711 n = LE_READ_2(frm);
1712 frm += 2, len -= 2;
1722 w |= wpa_keymgmt(frm);
1723 frm += 4, len -= 4;
1738 rsn->rsn_caps = LE_READ_2(frm);
1804 ieee80211_parse_rsn(struct ieee80211com *ic, u_int8_t *frm,
1807 u_int8_t len = frm[1];
1830 frm += 2; /* beginning of payload */
1831 w = LE_READ_2(frm);
1838 frm += 2, len -= 2;
1841 w = rsn_cipher(frm, &rsn->rsn_mcastkeylen);
1849 frm += 4, len -= 4;
1852 n = LE_READ_2(frm);
1853 frm += 2, len -= 2;
1863 w |= 1 << rsn_cipher(frm, &rsn->rsn_ucastkeylen);
1864 frm += 4, len -= 4;
1879 n = LE_READ_2(frm);
1880 frm += 2, len -= 2;
1890 w |= rsn_keymgmt(frm);
1891 frm += 4, len -= 4;
1907 rsn->rsn_caps = LE_READ_2(frm);
1914 ieee80211_parse_wmeparams(struct ieee80211com *ic, u_int8_t *frm,
1919 u_int len = frm[1], qosinfo;
1929 qosinfo = frm[offsetof(struct ieee80211_wme_param, param_qosInfo)];
1936 frm += offsetof(struct ieee80211_wme_param, params_acParams);
1941 wmep->wmep_acm = MS(frm[0], WME_PARAM_ACM);
1942 wmep->wmep_aifsn = MS(frm[0], WME_PARAM_AIFSN);
1943 wmep->wmep_logcwmin = MS(frm[1], WME_PARAM_LOGCWMIN);
1944 wmep->wmep_logcwmax = MS(frm[1], WME_PARAM_LOGCWMAX);
1945 wmep->wmep_txopLimit = LE_READ_2(frm+2);
1946 frm += 4;
2069 u_int8_t *frm, *efrm;
2074 frm = (u_int8_t *)(wh + 1);
2106 IEEE80211_VERIFY_LENGTH(efrm - frm, 12);
2108 scan.sp_tstamp = frm; frm += 8;
2109 scan.sp_bintval = le16toh(*(u_int16_t *)frm); frm += 2;
2110 scan.sp_capinfo = le16toh(*(u_int16_t *)frm); frm += 2;
2114 while (frm + 1 < efrm) {
2115 IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1] + 2);
2117 switch (*frm) {
2120 scan.sp_ssid = frm;
2124 scan.sp_rates = frm;
2128 scan.sp_country = frm;
2131 IEEE80211_VERIFY_LENGTH(frm[1], 5);
2133 scan.sp_fhdwell = LE_READ_2(&frm[2]);
2134 scan.sp_chan = IEEE80211_FH_CHAN(frm[4], frm[5]);
2135 scan.sp_fhindex = frm[6];
2143 IEEE80211_VERIFY_LENGTH(frm[1], 1);
2145 scan.sp_chan = frm[2];
2149 IEEE80211_VERIFY_LENGTH(frm[1], 4);
2150 scan.sp_tim = frm;
2151 scan.sp_timoff = frm - mtod(m0, u_int8_t *);
2156 scan.sp_xrates = frm;
2159 if (frm[1] != 1) {
2161 wh, "ERP", "bad len %u", frm[1]);
2165 scan.sp_erp = frm[2];
2169 scan.sp_wpa = frm;
2173 if (iswpaoui(frm))
2174 scan.sp_wpa = frm;
2175 else if (iswmeparam(frm) || iswmeinfo(frm))
2176 scan.sp_wme = frm;
2181 wh, "unhandled", "id %u, len %u", *frm, frm[1]);
2186 frm += frm[1] + 2;
2348 u_int8_t *frm, *efrm;
2355 frm = (u_int8_t *)(wh + 1);
2376 while (frm + 1 < efrm) {
2377 IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1] + 2);
2379 switch (*frm) {
2381 ssid = frm;
2384 rates = frm;
2387 xrates = frm;
2391 frm += frm[1] + 2;
2457 u_int8_t *frm, *efrm;
2462 frm = (u_int8_t *)(wh + 1);
2472 IEEE80211_VERIFY_LENGTH(efrm - frm, 6);
2473 algo = le16toh(*(u_int16_t *)frm);
2474 seq = le16toh(*(u_int16_t *)(frm + 2));
2475 status = le16toh(*(u_int16_t *)(frm + 4));
2512 ieee80211_auth_shared(ic, wh, frm + 6, efrm, ni, rssi,
2536 u_int8_t *frm, *efrm;
2546 frm = (u_int8_t *)(wh + 1);
2573 IEEE80211_VERIFY_LENGTH(efrm - frm, (reassoc ? 10 : 4));
2584 capinfo = le16toh(*(u_int16_t *)frm); frm += 2;
2585 lintval = le16toh(*(u_int16_t *)frm); frm += 2;
2587 frm += 6; /* ignore current AP info */
2590 while (frm + 1 < efrm) {
2591 IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1] + 2);
2593 switch (*frm) {
2595 ssid = frm;
2598 rates = frm;
2601 xrates = frm;
2605 wpa = frm;
2608 if (iswpaoui(frm))
2609 wpa = frm;
2610 else if (iswmeinfo(frm))
2611 wme = frm;
2616 frm += frm[1] + 2;
2779 u_int8_t *frm, *efrm;
2787 frm = (u_int8_t *)(wh + 1);
2805 IEEE80211_VERIFY_LENGTH(efrm - frm, 6);
2807 capinfo = le16toh(*(u_int16_t *)frm);
2808 frm += 2;
2809 status = le16toh(*(u_int16_t *)frm);
2810 frm += 2;
2821 associd = le16toh(*(u_int16_t *)frm);
2822 frm += 2;
2825 while (frm + 1 < efrm) {
2826 IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1] + 2);
2828 switch (*frm) {
2830 rates = frm;
2833 xrates = frm;
2836 if (iswmeoui(frm))
2837 wme = frm;
2842 frm += frm[1] + 2;
2920 u_int8_t *frm, *efrm;
2925 frm = (u_int8_t *)(wh + 1);
2937 IEEE80211_VERIFY_LENGTH(efrm - frm, 2);
2938 reason = le16toh(*(u_int16_t *)frm);
2975 u_int8_t *frm, *efrm;
2980 frm = (u_int8_t *)(wh + 1);
2994 IEEE80211_VERIFY_LENGTH(efrm - frm, 2);
2995 reason = le16toh(*(u_int16_t *)frm);