Lines Matching full:scan
519 struct ieee80211_channel *rxchan, struct ieee80211_scanparams *scan) in ieee80211_parse_beacon() argument
529 scan->status = 0; in ieee80211_parse_beacon()
555 return (scan->status = IEEE80211_BPARSE_BADIELEN)); in ieee80211_parse_beacon()
556 memset(scan, 0, sizeof(*scan)); in ieee80211_parse_beacon()
557 scan->tstamp = frm; frm += 8; in ieee80211_parse_beacon()
558 scan->bintval = le16toh(*(uint16_t *)frm); frm += 2; in ieee80211_parse_beacon()
559 scan->capinfo = le16toh(*(uint16_t *)frm); frm += 2; in ieee80211_parse_beacon()
560 scan->bchan = ieee80211_chan2ieee(ic, rxchan); in ieee80211_parse_beacon()
561 scan->chan = scan->bchan; in ieee80211_parse_beacon()
562 scan->ies = frm; in ieee80211_parse_beacon()
563 scan->ies_len = efrm - frm; in ieee80211_parse_beacon()
567 return (scan->status = IEEE80211_BPARSE_BADIELEN)); in ieee80211_parse_beacon()
570 scan->ssid = frm; in ieee80211_parse_beacon()
573 scan->rates = frm; in ieee80211_parse_beacon()
576 scan->country = frm; in ieee80211_parse_beacon()
579 scan->csa = frm; in ieee80211_parse_beacon()
582 scan->quiet = frm; in ieee80211_parse_beacon()
586 scan->fhdwell = le16dec(&frm[2]); in ieee80211_parse_beacon()
587 scan->chan = IEEE80211_FH_CHAN(frm[4], frm[5]); in ieee80211_parse_beacon()
588 scan->fhindex = frm[6]; in ieee80211_parse_beacon()
597 scan->chan = frm[2]; in ieee80211_parse_beacon()
601 scan->tim = frm; in ieee80211_parse_beacon()
602 scan->timoff = frm - mtod(m, uint8_t *); in ieee80211_parse_beacon()
612 scan->xrates = frm; in ieee80211_parse_beacon()
622 scan->erp = frm[2] | 0x100; in ieee80211_parse_beacon()
625 scan->htcap = frm; in ieee80211_parse_beacon()
628 scan->vhtcap = frm; in ieee80211_parse_beacon()
631 scan->vhtopmode = frm; in ieee80211_parse_beacon()
634 scan->rsn = frm; in ieee80211_parse_beacon()
637 scan->htinfo = frm; in ieee80211_parse_beacon()
641 scan->meshid = frm; in ieee80211_parse_beacon()
644 scan->meshconf = frm; in ieee80211_parse_beacon()
652 scan->wpa = frm; in ieee80211_parse_beacon()
654 scan->wme = frm; in ieee80211_parse_beacon()
657 scan->ath = frm; in ieee80211_parse_beacon()
661 scan->tdma = frm; in ieee80211_parse_beacon()
669 if (scan->htcap == NULL) in ieee80211_parse_beacon()
670 scan->htcap = frm; in ieee80211_parse_beacon()
672 if (scan->htinfo == NULL) in ieee80211_parse_beacon()
673 scan->htcap = frm; in ieee80211_parse_beacon()
686 IEEE80211_VERIFY_ELEMENT(scan->rates, IEEE80211_RATE_MAXSIZE, in ieee80211_parse_beacon()
687 scan->status |= IEEE80211_BPARSE_RATES_INVALID); in ieee80211_parse_beacon()
688 if (scan->rates != NULL && scan->xrates != NULL) { in ieee80211_parse_beacon()
695 IEEE80211_VERIFY_ELEMENT(scan->xrates, in ieee80211_parse_beacon()
696 IEEE80211_RATE_MAXSIZE - scan->rates[1], in ieee80211_parse_beacon()
697 scan->status |= IEEE80211_BPARSE_XRATES_INVALID); in ieee80211_parse_beacon()
699 IEEE80211_VERIFY_ELEMENT(scan->ssid, IEEE80211_NWID_LEN, in ieee80211_parse_beacon()
700 scan->status |= IEEE80211_BPARSE_SSID_INVALID); in ieee80211_parse_beacon()
701 if (scan->chan != scan->bchan && ic->ic_phytype != IEEE80211_T_FH) { in ieee80211_parse_beacon()
715 scan->chan, scan->bchan); in ieee80211_parse_beacon()
717 scan->status |= IEEE80211_BPARSE_OFFCHAN; in ieee80211_parse_beacon()
719 if (!(IEEE80211_BINTVAL_MIN <= scan->bintval && in ieee80211_parse_beacon()
720 scan->bintval <= IEEE80211_BINTVAL_MAX)) { in ieee80211_parse_beacon()
724 (int) scan->bintval); in ieee80211_parse_beacon()
726 scan->status |= IEEE80211_BPARSE_BINTVAL_INVALID; in ieee80211_parse_beacon()
728 if (scan->country != NULL) { in ieee80211_parse_beacon()
736 IEEE80211_VERIFY_LENGTH(scan->country[1], 3 * sizeof(uint8_t), in ieee80211_parse_beacon()
737 scan->country = NULL); in ieee80211_parse_beacon()
739 if (scan->csa != NULL) { in ieee80211_parse_beacon()
744 IEEE80211_VERIFY_LENGTH(scan->csa[1], 3 * sizeof(uint8_t), in ieee80211_parse_beacon()
745 scan->status |= IEEE80211_BPARSE_CSA_INVALID); in ieee80211_parse_beacon()
748 if (scan->meshid != NULL) { in ieee80211_parse_beacon()
749 IEEE80211_VERIFY_ELEMENT(scan->meshid, IEEE80211_MESHID_LEN, in ieee80211_parse_beacon()
750 scan->status |= IEEE80211_BPARSE_MESHID_INVALID); in ieee80211_parse_beacon()
758 if (scan->htcap != NULL) { in ieee80211_parse_beacon()
759 IEEE80211_VERIFY_LENGTH(scan->htcap[1], in ieee80211_parse_beacon()
760 scan->htcap[0] == IEEE80211_ELEMID_VENDOR ? in ieee80211_parse_beacon()
763 scan->htcap = NULL); in ieee80211_parse_beacon()
765 if (scan->htinfo != NULL) { in ieee80211_parse_beacon()
766 IEEE80211_VERIFY_LENGTH(scan->htinfo[1], in ieee80211_parse_beacon()
767 scan->htinfo[0] == IEEE80211_ELEMID_VENDOR ? in ieee80211_parse_beacon()
770 scan->htinfo = NULL); in ieee80211_parse_beacon()
774 if (scan->vhtcap != NULL) { in ieee80211_parse_beacon()
775 IEEE80211_VERIFY_LENGTH(scan->vhtcap[1], in ieee80211_parse_beacon()
777 scan->vhtcap = NULL); in ieee80211_parse_beacon()
779 if (scan->vhtopmode != NULL) { in ieee80211_parse_beacon()
780 IEEE80211_VERIFY_LENGTH(scan->vhtopmode[1], in ieee80211_parse_beacon()
782 scan->vhtopmode = NULL); in ieee80211_parse_beacon()
785 return scan->status; in ieee80211_parse_beacon()