Lines Matching defs:frm
1233 u_int8_t *frm, u_int8_t *efrm, struct ieee80211_node *ni, int rssi,
1272 if (frm + 1 < efrm) {
1273 if ((frm[1] + 2) > (efrm - frm)) {
1277 frm[0], (frm[1] + 2) - (efrm - frm));
1282 if (*frm == IEEE80211_ELEMID_CHALLENGE)
1283 challenge = frm;
1284 frm += frm[1] + 2;
1544 iswpaoui(const u_int8_t *frm)
1546 return frm[1] > 3 && LE_READ_4(frm+2) == ((WPA_OUI_TYPE<<24)|WPA_OUI);
1550 iswmeoui(const u_int8_t *frm)
1552 return frm[1] > 3 && LE_READ_4(frm+2) == ((WME_OUI_TYPE<<24)|WME_OUI);
1556 iswmeparam(const u_int8_t *frm)
1558 return frm[1] > 5 && LE_READ_4(frm+2) == ((WME_OUI_TYPE<<24)|WME_OUI) &&
1559 frm[6] == WME_PARAM_OUI_SUBTYPE;
1563 iswmeinfo(const u_int8_t *frm)
1565 return frm[1] > 5 && LE_READ_4(frm+2) == ((WME_OUI_TYPE<<24)|WME_OUI) &&
1566 frm[6] == WME_INFO_OUI_SUBTYPE;
1628 ieee80211_parse_wpa(struct ieee80211com *ic, u_int8_t *frm,
1631 u_int8_t len = frm[1];
1654 frm += 2; /* beginning of payload */
1655 frm += 4, len -= 4;
1658 w = LE_READ_2(frm);
1665 frm += 2, len -= 2;
1668 w = wpa_cipher(frm, &rsn->rsn_mcastkeylen);
1676 frm += 4, len -= 4;
1679 n = LE_READ_2(frm);
1680 frm += 2, len -= 2;
1690 w |= 1 << wpa_cipher(frm, &rsn->rsn_ucastkeylen);
1691 frm += 4, len -= 4;
1706 n = LE_READ_2(frm);
1707 frm += 2, len -= 2;
1717 w |= wpa_keymgmt(frm);
1718 frm += 4, len -= 4;
1733 rsn->rsn_caps = LE_READ_2(frm);
1799 ieee80211_parse_rsn(struct ieee80211com *ic, u_int8_t *frm,
1802 u_int8_t len = frm[1];
1825 frm += 2; /* beginning of payload */
1826 w = LE_READ_2(frm);
1833 frm += 2, len -= 2;
1836 w = rsn_cipher(frm, &rsn->rsn_mcastkeylen);
1844 frm += 4, len -= 4;
1847 n = LE_READ_2(frm);
1848 frm += 2, len -= 2;
1858 w |= 1 << rsn_cipher(frm, &rsn->rsn_ucastkeylen);
1859 frm += 4, len -= 4;
1874 n = LE_READ_2(frm);
1875 frm += 2, len -= 2;
1885 w |= rsn_keymgmt(frm);
1886 frm += 4, len -= 4;
1902 rsn->rsn_caps = LE_READ_2(frm);
1909 ieee80211_parse_wmeparams(struct ieee80211com *ic, u_int8_t *frm,
1914 u_int len = frm[1], qosinfo;
1924 qosinfo = frm[offsetof(struct ieee80211_wme_param, param_qosInfo)];
1931 frm += offsetof(struct ieee80211_wme_param, params_acParams);
1936 wmep->wmep_acm = MS(frm[0], WME_PARAM_ACM);
1937 wmep->wmep_aifsn = MS(frm[0], WME_PARAM_AIFSN);
1938 wmep->wmep_logcwmin = MS(frm[1], WME_PARAM_LOGCWMIN);
1939 wmep->wmep_logcwmax = MS(frm[1], WME_PARAM_LOGCWMAX);
1940 wmep->wmep_txopLimit = LE_READ_2(frm+2);
1941 frm += 4;
2064 u_int8_t *frm, *efrm;
2069 frm = (u_int8_t *)(wh + 1);
2101 IEEE80211_VERIFY_LENGTH(efrm - frm, 12);
2103 scan.sp_tstamp = frm; frm += 8;
2104 scan.sp_bintval = le16toh(*(u_int16_t *)frm); frm += 2;
2105 scan.sp_capinfo = le16toh(*(u_int16_t *)frm); frm += 2;
2109 while (frm + 1 < efrm) {
2110 IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1] + 2);
2112 switch (*frm) {
2115 scan.sp_ssid = frm;
2119 scan.sp_rates = frm;
2123 scan.sp_country = frm;
2126 IEEE80211_VERIFY_LENGTH(frm[1], 5);
2128 scan.sp_fhdwell = LE_READ_2(&frm[2]);
2129 scan.sp_chan = IEEE80211_FH_CHAN(frm[4], frm[5]);
2130 scan.sp_fhindex = frm[6];
2138 IEEE80211_VERIFY_LENGTH(frm[1], 1);
2140 scan.sp_chan = frm[2];
2144 IEEE80211_VERIFY_LENGTH(frm[1], 4);
2145 scan.sp_tim = frm;
2146 scan.sp_timoff = frm - mtod(m0, u_int8_t *);
2151 scan.sp_xrates = frm;
2154 if (frm[1] != 1) {
2156 wh, "ERP", "bad len %u", frm[1]);
2160 scan.sp_erp = frm[2];
2164 scan.sp_wpa = frm;
2168 if (iswpaoui(frm))
2169 scan.sp_wpa = frm;
2170 else if (iswmeparam(frm) || iswmeinfo(frm))
2171 scan.sp_wme = frm;
2176 wh, "unhandled", "id %u, len %u", *frm, frm[1]);
2181 frm += frm[1] + 2;
2343 u_int8_t *frm, *efrm;
2350 frm = (u_int8_t *)(wh + 1);
2371 while (frm + 1 < efrm) {
2372 IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1] + 2);
2374 switch (*frm) {
2376 ssid = frm;
2379 rates = frm;
2382 xrates = frm;
2386 frm += frm[1] + 2;
2452 u_int8_t *frm, *efrm;
2457 frm = (u_int8_t *)(wh + 1);
2467 IEEE80211_VERIFY_LENGTH(efrm - frm, 6);
2468 algo = le16toh(*(u_int16_t *)frm);
2469 seq = le16toh(*(u_int16_t *)(frm + 2));
2470 status = le16toh(*(u_int16_t *)(frm + 4));
2507 ieee80211_auth_shared(ic, wh, frm + 6, efrm, ni, rssi,
2531 u_int8_t *frm, *efrm;
2541 frm = (u_int8_t *)(wh + 1);
2568 IEEE80211_VERIFY_LENGTH(efrm - frm, (reassoc ? 10 : 4));
2579 capinfo = le16toh(*(u_int16_t *)frm); frm += 2;
2580 lintval = le16toh(*(u_int16_t *)frm); frm += 2;
2582 frm += 6; /* ignore current AP info */
2585 while (frm + 1 < efrm) {
2586 IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1] + 2);
2588 switch (*frm) {
2590 ssid = frm;
2593 rates = frm;
2596 xrates = frm;
2600 wpa = frm;
2603 if (iswpaoui(frm))
2604 wpa = frm;
2605 else if (iswmeinfo(frm))
2606 wme = frm;
2611 frm += frm[1] + 2;
2774 u_int8_t *frm, *efrm;
2782 frm = (u_int8_t *)(wh + 1);
2800 IEEE80211_VERIFY_LENGTH(efrm - frm, 6);
2802 capinfo = le16toh(*(u_int16_t *)frm);
2803 frm += 2;
2804 status = le16toh(*(u_int16_t *)frm);
2805 frm += 2;
2816 associd = le16toh(*(u_int16_t *)frm);
2817 frm += 2;
2820 while (frm + 1 < efrm) {
2821 IEEE80211_VERIFY_LENGTH(efrm - frm, frm[1] + 2);
2823 switch (*frm) {
2825 rates = frm;
2828 xrates = frm;
2831 if (iswmeoui(frm))
2832 wme = frm;
2837 frm += frm[1] + 2;
2915 u_int8_t *frm, *efrm;
2920 frm = (u_int8_t *)(wh + 1);
2932 IEEE80211_VERIFY_LENGTH(efrm - frm, 2);
2933 reason = le16toh(*(u_int16_t *)frm);
2970 u_int8_t *frm, *efrm;
2975 frm = (u_int8_t *)(wh + 1);
2989 IEEE80211_VERIFY_LENGTH(efrm - frm, 2);
2990 reason = le16toh(*(u_int16_t *)frm);