Lines Matching refs:se

212 	struct sta_entry *se, *next;
214 TAILQ_FOREACH_SAFE(se, &st->st_entry, se_list, next) {
215 TAILQ_REMOVE(&st->st_entry, se, se_list);
216 LIST_REMOVE(se, se_hash);
217 ieee80211_ies_cleanup(&se->base.se_ies);
218 free(se, M_80211_SCAN);
242 struct sta_entry *se;
249 LIST_FOREACH(se, &st->st_hash[hash], se_hash)
250 if (IEEE80211_ADDR_EQ(se->base.se_macaddr, macaddr))
252 se = (struct sta_entry *) malloc(sizeof(struct sta_entry),
254 if (se == NULL) {
258 se->se_scangen = st->st_scaniter-1;
259 se->se_avgrssi = IEEE80211_RSSI_DUMMY_MARKER;
260 IEEE80211_ADDR_COPY(se->base.se_macaddr, macaddr);
261 TAILQ_INSERT_TAIL(&st->st_entry, se, se_list);
262 LIST_INSERT_HEAD(&st->st_hash[hash], se, se_hash);
264 ise = &se->base;
287 IEEE80211_RSSI_LPF(se->se_avgrssi, rssi);
288 ise->se_rssi = IEEE80211_RSSI_GET(se->se_avgrssi);
354 if (se->se_countrygen != st->st_scangen) {
357 se->se_countrygen = st->st_scangen;
367 if (se->se_fails && (ticks - se->se_lastfail) > STA_FAILS_AGE*hz) {
368 se->se_fails = 0;
370 "%s: fails %u", __func__, se->se_fails);
373 se->se_lastupdate = ticks; /* update time */
374 se->se_seen = 1;
375 se->se_notseen = 0;
387 if (PICK1ST(ss) && match_bss(vap, ss, se, IEEE80211_MSG_SCAN) == 0)
763 maxrate(const struct ieee80211_scan_entry *se)
766 (const struct ieee80211_ie_htcap *) se->se_ies.htcap_ie;
801 for (i = 0; i < se->se_rates[1]; i++) {
802 r = se->se_rates[2+i] & IEEE80211_RATE_VAL;
806 for (i = 0; i < se->se_xrates[1]; i++) {
807 r = se->se_xrates[2+i] & IEEE80211_RATE_VAL;
873 const struct ieee80211_scan_entry *se)
883 nrs = se->se_rates[1];
884 rs = se->se_rates+2;
916 if (rs == se->se_rates+2) {
918 nrs = se->se_xrates[1];
919 rs = se->se_xrates+2;
973 struct ieee80211_scan_entry *se = &se0->base;
978 if (isclr(ic->ic_chan_active, ieee80211_chan2ieee(ic, se->se_chan)))
988 (se->se_chan->ic_flags & IEEE80211_CHAN_ALLTURBO) !=
992 if ((se->se_capinfo & IEEE80211_CAPINFO_IBSS) == 0)
1001 if (se->se_capinfo & (IEEE80211_CAPINFO_IBSS|IEEE80211_CAPINFO_ESS))
1010 (const struct ieee80211_tdma_param *)se->se_ies.tdma_ie;
1022 else if (ieee80211_local_address(se->se_macaddr))
1034 if (se->se_capinfo & (IEEE80211_CAPINFO_IBSS|IEEE80211_CAPINFO_ESS))
1036 else if (se->se_meshid[0] != IEEE80211_ELEMID_MESHID)
1039 match_id(se->se_meshid, ms->ms_id, ms->ms_idlen))
1043 if ((se->se_capinfo & IEEE80211_CAPINFO_ESS) == 0)
1054 if ((IEEE80211_IS_CHAN_11D(se->se_chan) ||
1056 se->se_cc[0] != 0 &&
1058 !isocmp(se->se_cc, ic->ic_regdomain.isocc)))
1062 if ((se->se_capinfo & IEEE80211_CAPINFO_PRIVACY) == 0)
1066 if (se->se_capinfo & IEEE80211_CAPINFO_PRIVACY)
1070 rate = check_rate(vap, se->se_chan, se);
1078 if (IEEE80211_IS_CHAN_ANYG(se->se_chan)) {
1079 rate = check_rate(vap, demote11b(vap, se->se_chan), se);
1102 !match_ssid(se->se_ssid, ss->ss_nssid, ss->ss_ssid))
1105 !IEEE80211_ADDR_EQ(vap->iv_des_bssid, se->se_bssid))
1111 if (se->se_rssi < STA_RSSI_MIN)
1127 fail ? '-' : '+', ether_sprintf(se->se_macaddr));
1128 printf(" %s%c", ether_sprintf(se->se_bssid),
1130 printf(" %3d%c", ieee80211_chan2ieee(ic, se->se_chan),
1132 printf(" %+4d%c", se->se_rssi, fail & MATCH_RSSI ? '!' : ' ');
1136 (se->se_capinfo & IEEE80211_CAPINFO_ESS) ? "ess" :
1137 (se->se_capinfo & IEEE80211_CAPINFO_IBSS) ? "ibss" : "",
1140 (se->se_capinfo & IEEE80211_CAPINFO_PRIVACY) ?
1143 ieee80211_print_essid(se->se_ssid+2, se->se_ssid[1]);
1153 struct sta_entry *se;
1156 TAILQ_FOREACH(se, &st->st_entry, se_list) {
1164 if (se->se_seen)
1165 se->se_seen = 0;
1167 se->se_notseen++;
1175 struct sta_entry *se;
1178 TAILQ_FOREACH(se, &st->st_entry, se_list)
1179 if (se->se_fails)
1180 se->se_fails--;
1188 struct sta_entry *se, *selbs = NULL;
1193 TAILQ_FOREACH(se, &st->st_entry, se_list) {
1194 ieee80211_ies_expand(&se->base.se_ies);
1195 if (match_bss(vap, ss, se, debug) == 0) {
1197 selbs = se;
1198 else if (sta_compare(se, selbs) > 0)
1199 selbs = se;
1278 struct sta_entry *se;
1282 LIST_FOREACH(se, &st->st_hash[hash], se_hash)
1283 if (IEEE80211_ADDR_EQ(se->base.se_macaddr, macaddr))
1287 return se; /* NB: unlocked */
1297 struct sta_entry *se, *selbs;
1301 se = sta_lookup(st, ni->ni_macaddr);
1302 if (se == NULL) {
1343 se->base.se_rssi = curRssi;
1345 if (selbs != NULL && selbs != se) {
1399 struct sta_entry *se;
1406 TAILQ_FOREACH(se, &st->st_entry, se_list) {
1407 if (se->se_scangen != gen) {
1408 se->se_scangen = gen;
1410 se->base.se_age = ticks - se->se_lastupdate;
1412 (*f)(arg, &se->base);
1426 struct sta_entry *se;
1428 se = sta_lookup(st, macaddr);
1429 if (se != NULL) {
1430 se->se_fails++;
1431 se->se_lastfail = ticks;
1434 __func__, reason, se->se_fails);
1443 struct sta_entry *se;
1445 se = sta_lookup(st, macaddr);
1446 if (se != NULL) {
1448 se->se_fails = 0;
1451 __func__, se->se_fails);
1453 se->se_lastassoc = ticks;
1526 struct sta_entry *se;
1546 TAILQ_FOREACH(se, &st->st_entry, se_list) {
1547 if (se->base.se_chan != c)
1549 if (se->base.se_rssi > maxrssi)
1550 maxrssi = se->base.se_rssi;
1659 struct sta_entry *se, *next;
1662 TAILQ_FOREACH_SAFE(se, &st->st_entry, se_list, next) {
1663 if (se->se_notseen > STA_PURGE_SCANS) {
1664 TAILQ_REMOVE(&st->st_entry, se, se_list);
1665 LIST_REMOVE(se, se_hash);
1666 ieee80211_ies_cleanup(&se->base.se_ies);
1667 free(se, M_80211_SCAN);