Lines Matching refs:ss

72 #define	SCAN_PRIVATE(ss)	((struct scan_state *) ss)
99 struct ieee80211_scan_state *ss = ic->ic_scan;
101 if (ss != NULL) {
102 scan_signal(ss, ISCAN_ABORT);
103 ieee80211_draintask(ic, &SCAN_PRIVATE(ss)->ss_scan_start);
105 &SCAN_PRIVATE(ss)->ss_scan_curchan);
116 if (ss->ss_ops != NULL) {
117 ss->ss_ops->scan_detach(ss);
118 ss->ss_ops = NULL;
121 IEEE80211_FREE(SCAN_PRIVATE(ss), M_80211_SCAN);
139 struct ieee80211_scan_state *ss = ic->ic_scan;
143 if (ss != NULL && ss->ss_vap == vap &&
145 scan_signal_locked(ss, ISCAN_ABORT);
152 struct ieee80211_scan_state *ss = ic->ic_scan;
157 SCAN_PRIVATE(ss)->ss_iflags |= ISCAN_DISCARD;
158 SCAN_PRIVATE(ss)->ss_duration = duration;
171 struct ieee80211_scan_state *ss = ic->ic_scan;
194 if (ss->ss_ops != NULL) {
196 ieee80211_scan_copy_ssid(vap, ss, nssid, ssids);
199 ss->ss_flags = flags & 0xfff;
200 if (ss->ss_flags & IEEE80211_SCAN_ACTIVE)
205 ss->ss_ops->scan_flush(ss);
212 ss->ss_next = 0;
213 ss->ss_mindwell = mindwell;
214 ss->ss_maxdwell = maxdwell;
216 ss->ss_ops->scan_start(ss, vap);
219 ieee80211_scan_dump(ss);
224 ieee80211_runtask(ic, &SCAN_PRIVATE(ss)->ss_scan_start);
230 ss->ss_flags & IEEE80211_SCAN_ACTIVE ? "active" : "passive");
274 struct ieee80211_scan_state *ss = ic->ic_scan;
279 if (ss->ss_ops != NULL) {
286 ieee80211_scan_copy_ssid(vap, ss, nssid, ssids);
305 SCAN_PRIVATE(ss)->ss_iflags |= ISCAN_DISCARD;
309 ss->ss_flags = flags & 0xff;
310 result = ss->ss_ops->scan_end(ss, vap);
313 SCAN_PRIVATE(ss)->ss_iflags &= ~ISCAN_DISCARD;
337 struct ieee80211_scan_state *ss = ic->ic_scan;
355 ss->ss_flags & IEEE80211_SCAN_ACTIVE ? "active" : "passive",
359 if (ss->ss_ops != NULL) {
360 ss->ss_vap = vap;
375 ss->ss_flags |= IEEE80211_SCAN_NOPICK
380 if (ss->ss_next >= ss->ss_last) {
381 if (ss->ss_flags & IEEE80211_SCAN_ACTIVE)
390 ss->ss_next = 0;
391 if (ss->ss_last != 0)
392 ss->ss_ops->scan_restart(ss, vap);
394 ss->ss_ops->scan_start(ss, vap);
397 ieee80211_scan_dump(ss);
402 ss->ss_maxdwell = duration;
406 &SCAN_PRIVATE(ss)->ss_scan_start);
413 ss->ss_flags & IEEE80211_SCAN_ACTIVE ? "active" : "passive");
431 struct ieee80211_scan_state *ss = ic->ic_scan;
432 struct scan_state *ss_priv = SCAN_PRIVATE(ss);
438 (any || ss->ss_vap == vap) &&
443 ss->ss_flags & IEEE80211_SCAN_ACTIVE ?
447 ss->ss_flags &= ~IEEE80211_SCAN_NOPICK;
449 scan_signal_locked(ss, signal);
455 (ss->ss_vap == vap ? "match" : "nomatch"),
492 struct ieee80211_scan_state *ss = vap->iv_ic->ic_scan;
497 scan_signal(ss, 0);
509 struct ieee80211_scan_state *ss = ic->ic_scan;
513 scan_signal_locked(ss, 0);
527 struct ieee80211_scan_state *ss = ic->ic_scan;
542 for (i = 0; i < ss->ss_nssid; i++)
546 ss->ss_ssid[i].ssid, ss->ss_ssid[i].len);
547 if ((ss->ss_flags & IEEE80211_SCAN_NOBCAST) == 0)
560 scan_curchan(struct ieee80211_scan_state *ss, unsigned long maxdwell)
562 struct ieee80211vap *vap = ss->ss_vap;
563 struct ieee80211com *ic = ss->ss_ic;
570 if (ss->ss_flags & IEEE80211_SCAN_ACTIVE)
573 &SCAN_PRIVATE(ss)->ss_scan_curchan, maxdwell);
578 scan_signal(struct ieee80211_scan_state *ss, int iflags)
580 struct ieee80211com *ic = ss->ss_ic;
585 scan_signal_locked(ss, iflags);
590 scan_signal_locked(struct ieee80211_scan_state *ss, int iflags)
592 struct scan_state *ss_priv = SCAN_PRIVATE(ss);
594 struct ieee80211com *ic = ss->ss_ic;
610 scan_mindwell(struct ieee80211_scan_state *ss)
613 IEEE80211_DPRINTF(ss->ss_vap, IEEE80211_MSG_SCAN, "%s: called\n",
616 scan_signal(ss, 0);
623 struct ieee80211_scan_state *ss = (struct ieee80211_scan_state *) arg;
624 struct scan_state *ss_priv = SCAN_PRIVATE(ss);
625 struct ieee80211vap *vap = ss->ss_vap;
626 struct ieee80211com *ic = ss->ss_ic;
632 scan_done(ss, 0);
636 if (ss->ss_next == ss->ss_last) {
639 scan_done(ss, 1);
659 scan_done(ss, 0);
673 scan_curchan_task(ss, 0);
679 struct ieee80211_scan_state *ss = arg;
680 struct scan_state *ss_priv = SCAN_PRIVATE(ss);
681 struct ieee80211com *ic = ss->ss_ic;
693 * call scan_end(ss, 1) if we're just PAUSEing the scan.
695 scandone = (ss->ss_next >= ss->ss_last) ||
697 scanstop = (ss->ss_next >= ss->ss_last) ||
700 IEEE80211_DPRINTF(ss->ss_vap, IEEE80211_MSG_SCAN,
706 (uint32_t) ss->ss_next,
707 (uint32_t) ss->ss_last);
709 if (scanstop || (ss->ss_flags & IEEE80211_SCAN_GOTPICK) ||
711 ieee80211_time_after(ticks + ss->ss_mindwell, ss_priv->ss_scanend)) {
713 scan_end(ss, scandone);
718 chan = ss->ss_chans[ss->ss_next++];
723 if (ieee80211_time_after(ticks + ss->ss_maxdwell, ss_priv->ss_scanend))
726 maxdwell = ss->ss_maxdwell;
728 IEEE80211_DPRINTF(ss->ss_vap, IEEE80211_MSG_SCAN,
735 (ss->ss_flags & IEEE80211_SCAN_ACTIVE) &&
738 ticks_to_msecs(ss->ss_mindwell), ticks_to_msecs(maxdwell));
764 ic->ic_scan_curchan(ss, maxdwell);
769 ss_priv->ss_chanmindwell = ticks + ss->ss_mindwell;
779 IEEE80211_DPRINTF(ss->ss_vap, IEEE80211_MSG_SCAN, "%s: waiting\n",
785 scan_end(struct ieee80211_scan_state *ss, int scandone)
787 struct scan_state *ss_priv = SCAN_PRIVATE(ss);
788 struct ieee80211vap *vap = ss->ss_vap;
789 struct ieee80211com *ic = ss->ss_ic;
796 scan_done(ss, scandone);
836 ss->ss_flags &= ~IEEE80211_SCAN_GOTPICK;
846 !ss->ss_ops->scan_end(ss, vap) &&
847 (ss->ss_flags & IEEE80211_SCAN_ONCE) == 0 &&
848 ieee80211_time_before(ticks + ss->ss_mindwell, ss_priv->ss_scanend)) {
853 ticks, ss->ss_mindwell, ss_priv->ss_scanend);
854 ss->ss_next = 0; /* reset to beginning */
855 if (ss->ss_flags & IEEE80211_SCAN_ACTIVE)
860 ss->ss_ops->scan_restart(ss, vap); /* XXX? */
867 if ((ss->ss_flags & IEEE80211_SCAN_BGSCAN) == 0)
873 ticks, ss->ss_mindwell, ss_priv->ss_scanend);
888 scan_done(ss, scandone);
892 scan_done(struct ieee80211_scan_state *ss, int scandone)
894 struct scan_state *ss_priv = SCAN_PRIVATE(ss);
895 struct ieee80211com *ic = ss->ss_ic;
896 struct ieee80211vap *vap = ss->ss_vap;
924 if (ss->ss_next >= ss->ss_last) {
928 (uint32_t) ss->ss_next,
929 (uint32_t) ss->ss_last);
935 (ss->ss_next >= ss->ss_last))
940 ss->ss_flags &= ~(IEEE80211_SCAN_ONCE | IEEE80211_SCAN_PICK1ST);
956 struct ieee80211_scan_state *ss = ic->ic_scan;
966 if (SCAN_PRIVATE(ss)->ss_iflags & ISCAN_DISCARD)
972 if (ss->ss_ops != NULL &&
973 ss->ss_ops->scan_add(ss, curchan, sp, wh, subtype, rssi, noise)) {
978 if ((SCAN_PRIVATE(ss)->ss_iflags & ISCAN_MINDWELL) == 0 &&
979 ieee80211_time_after_eq(ticks, SCAN_PRIVATE(ss)->ss_chanmindwell)) {
985 ticks, SCAN_PRIVATE(ss)->ss_chanmindwell);
986 SCAN_PRIVATE(ss)->ss_iflags |= ISCAN_MINDWELL;
991 ic->ic_scan_mindwell(ss);
1019 struct scan_state *ss;
1027 ss = (struct scan_state *) IEEE80211_MALLOC(sizeof(struct scan_state),
1029 if (ss == NULL) {
1033 TASK_INIT(&ss->ss_scan_start, 0, scan_start, ss);
1034 TIMEOUT_TASK_INIT(ic->ic_tq, &ss->ss_scan_curchan, 0,
1035 scan_curchan_task, ss);
1037 ic->ic_scan = &ss->base;
1038 ss->base.ss_ic = ic;