Lines Matching defs:ic

61 ieee80211_input(ieee80211com_t *ic, mblk_t *mp, struct ieee80211_node *in,
85 IEEE80211_LOCK(ic);
90 hdrspace = ieee80211_hdrspace(ic, wh); /* optimize */
123 IEEE80211_LOCK(ic);
124 if (!(ic->ic_flags & IEEE80211_F_SCAN)) {
125 switch (ic->ic_opmode) {
151 if (!IEEE80211_ADDR_EQ(bssid, ic->ic_bss->in_bssid) &&
163 if (in == ic->ic_bss &&
164 ic->ic_opmode != IEEE80211_M_HOSTAP &&
170 in = ieee80211_fakeup_adhoc_node(&ic->ic_sta,
188 ic->ic_wme.wme_hipri_traffic++;
208 ic->ic_stats.is_rx_dups++;
217 hdrspace = ieee80211_hdrspace(ic, wh);
223 switch (ic->ic_opmode) {
232 IEEE80211_ADDR_EQ(wh->i_addr3, ic->ic_macaddr)) {
256 ic->ic_opmode);
271 IEEE80211_UNLOCK(ic);
276 IEEE80211_LOCK(ic);
284 if ((ic->ic_flags & IEEE80211_F_PRIVACY) == 0) {
290 ic->ic_stats.is_wep_errors++;
293 key = ieee80211_crypto_decap(ic, mp, hdrspace);
296 ic->ic_stats.is_wep_errors++;
320 mp = ieee80211_defrag(ic, in, mp, hdrspace);
331 if (key != NULL && !ieee80211_crypto_demic(ic, key, mp, 0)) {
346 ic->ic_stats.is_rx_frags++;
347 ic->ic_stats.is_rx_bytes += len;
348 IEEE80211_UNLOCK(ic);
349 mac_rx(ic->ic_mach, NULL, mp);
367 ic->ic_stats.is_wep_errors++;
370 if ((ic->ic_flags & IEEE80211_F_PRIVACY) == 0) {
377 ic->ic_stats.is_wep_errors++;
380 hdrspace = ieee80211_hdrspace(ic, wh);
381 key = ieee80211_crypto_decap(ic, mp, hdrspace);
389 IEEE80211_UNLOCK(ic);
390 ic->ic_recv_mgmt(ic, mp, in, subtype, rssi, rstamp);
394 if (ic->ic_opmode == IEEE80211_M_HOSTAP) {
410 IEEE80211_UNLOCK(ic);
426 ieee80211_defrag(ieee80211com_t *ic, struct ieee80211_node *in, mblk_t *mp,
554 ieee80211_auth_open(ieee80211com_t *ic, struct ieee80211_frame *wh,
557 IEEE80211_LOCK_ASSERT(ic);
563 if (ic->ic_opmode == IEEE80211_M_STA) {
564 if (ic->ic_state != IEEE80211_S_AUTH ||
568 IEEE80211_UNLOCK(ic);
572 if (in != ic->ic_bss)
574 ieee80211_new_state(ic, IEEE80211_S_SCAN, 0);
577 ieee80211_new_state(ic, IEEE80211_S_ASSOC,
580 IEEE80211_LOCK(ic);
583 "bad operating mode %u", ic->ic_opmode);
611 ieee80211_auth_shared(ieee80211com_t *ic, struct ieee80211_frame *wh,
622 IEEE80211_LOCK_ASSERT(ic);
665 switch (ic->ic_opmode) {
667 if (ic->ic_state != IEEE80211_S_AUTH)
681 if (in != ic->ic_bss)
685 IEEE80211_UNLOCK(ic);
686 ieee80211_new_state(ic, IEEE80211_S_ASSOC,
688 IEEE80211_LOCK(ic);
694 IEEE80211_UNLOCK(ic);
695 IEEE80211_SEND_MGMT(ic, in, IEEE80211_FC0_SUBTYPE_AUTH,
697 IEEE80211_LOCK(ic);
709 ic->ic_opmode);
714 if (ic->ic_opmode == IEEE80211_M_STA) {
720 if (ic->ic_state == IEEE80211_S_AUTH) {
721 IEEE80211_UNLOCK(ic);
722 ieee80211_new_state(ic, IEEE80211_S_SCAN, 0);
723 IEEE80211_LOCK(ic);
783 ieee80211_parse_wmeparams(struct ieee80211com *ic, uint8_t *frm,
787 struct ieee80211_wme_state *wme = &ic->ic_wme;
826 ieee80211_recv_beacon(ieee80211com_t *ic, mblk_t *mp, struct ieee80211_node *in,
829 ieee80211_impl_t *im = ic->ic_private;
839 ic->ic_beaconmiss = 0; /* clear beacon miss counter */
849 if (!((ic->ic_flags & IEEE80211_F_SCAN) ||
850 (ic->ic_opmode == IEEE80211_M_STA && in->in_associd != 0) ||
851 ic->ic_opmode == IEEE80211_M_IBSS)) {
880 scan.bchan = ieee80211_chan2ieee(ic, ic->ic_curchan);
903 if (ic->ic_phytype == IEEE80211_T_FH) {
911 if (ic->ic_phytype != IEEE80211_T_FH) {
952 else if (ic->ic_flags_ext & IEEE80211_FEXT_HTCOMPAT) {
980 if (ieee80211_isclr(ic->ic_chan_active, scan.chan)) {
988 ic->ic_phytype != IEEE80211_T_FH) {
1003 ic->ic_phytype, scan.bchan, scan.chan);
1039 if (ic->ic_opmode == IEEE80211_M_STA &&
1041 (!(ic->ic_flags & IEEE80211_F_SCAN) ||
1061 ieee80211_set_shortslottime(ic,
1062 ic->ic_curmode == IEEE80211_MODE_11A ||
1069 ieee80211_parse_wmeparams(ic, scan.wme, wh) > 0) {
1070 ieee80211_wme_updateparams(ic);
1076 if (in->in_chan != ic->ic_curchan) {
1082 ieee80211_setcurchan(ic, in->in_chan);
1092 if (ic->ic_flags & IEEE80211_F_SCAN) {
1093 ieee80211_add_scan(ic, &scan, wh, subtype, rssi,
1101 if (ic->ic_flags & IEEE80211_F_SCAN) {
1102 ieee80211_add_scan(ic, &scan, wh, subtype, rssi, rstamp);
1106 if (ic->ic_opmode == IEEE80211_M_IBSS &&
1112 in = ieee80211_add_neighbor(ic, wh, &scan);
1132 * softc, ic. Tipically ic_recv_mgmt is called within ieee80211_input()
1135 ieee80211_recv_mgmt(ieee80211com_t *ic, mblk_t *mp, struct ieee80211_node *in,
1155 IEEE80211_LOCK(ic);
1162 ieee80211_recv_beacon(ic, mp, in, subtype, rssi, rstamp);
1166 if (ic->ic_opmode == IEEE80211_M_STA ||
1167 ic->ic_state != IEEE80211_S_RUN ||
1201 IEEE80211_VERIFY_SSID(ic->ic_bss, ssid, break);
1202 if (ic->ic_flags & IEEE80211_F_HIDESSID) {
1212 if (in == ic->ic_bss) {
1213 if (ic->ic_opmode != IEEE80211_M_IBSS) {
1214 in = ieee80211_tmp_node(ic, wh->i_addr2);
1224 in = ieee80211_fakeup_adhoc_node(&ic->ic_sta,
1249 IEEE80211_UNLOCK(ic);
1250 IEEE80211_SEND_MGMT(ic, in,
1252 IEEE80211_LOCK(ic);
1280 if (ic->ic_flags & IEEE80211_F_COUNTERM) {
1288 ieee80211_auth_shared(ic, wh, frm + 6, efrm, in,
1292 ieee80211_auth_open(ic, wh, in, seq, status);
1303 if (ic->ic_opmode != IEEE80211_M_STA ||
1304 ic->ic_state != IEEE80211_S_ASSOC)
1320 in = ic->ic_bss;
1328 in = ieee80211_find_node(&ic->ic_scan, wh->i_addr2);
1371 else if (ic->ic_flags_ext &
1403 if (in != ic->ic_bss)
1405 IEEE80211_UNLOCK(ic);
1406 ieee80211_new_state(ic, IEEE80211_S_SCAN, 0);
1413 ieee80211_parse_wmeparams(ic, wme, wh) >= 0) {
1415 ieee80211_wme_updateparams(ic);
1422 if ((ic->ic_htcaps & IEEE80211_HTC_HT) &&
1429 if (in->in_chan != ic->ic_curchan) {
1435 ieee80211_setcurchan(ic, in->in_chan);
1441 if (ic->ic_curmode == IEEE80211_MODE_11A ||
1443 ic->ic_flags |= IEEE80211_F_SHPREAMBLE;
1444 ic->ic_flags &= ~IEEE80211_F_USEBARKER;
1446 ic->ic_flags &= ~IEEE80211_F_SHPREAMBLE;
1447 ic->ic_flags |= IEEE80211_F_USEBARKER;
1449 ieee80211_set_shortslottime(ic,
1450 ic->ic_curmode == IEEE80211_MODE_11A ||
1458 if (ic->ic_curmode == IEEE80211_MODE_11G &&
1460 ic->ic_flags |= IEEE80211_F_USEPROT;
1462 ic->ic_flags &= ~IEEE80211_F_USEPROT;
1465 ic->ic_flags&IEEE80211_F_SHPREAMBLE ? "short" : "long",
1466 ic->ic_flags&IEEE80211_F_SHSLOT ? "short" : "long",
1467 ic->ic_flags&IEEE80211_F_USEPROT ? ", protection" : "",
1469 IEEE80211_UNLOCK(ic);
1470 ieee80211_new_state(ic, IEEE80211_S_RUN, subtype);
1474 if (ic->ic_state == IEEE80211_S_SCAN)
1486 switch (ic->ic_opmode) {
1488 IEEE80211_UNLOCK(ic);
1489 ieee80211_new_state(ic, IEEE80211_S_AUTH,
1498 if (ic->ic_state != IEEE80211_S_RUN &&
1499 ic->ic_state != IEEE80211_S_ASSOC &&
1500 ic->ic_state != IEEE80211_S_AUTH)
1511 switch (ic->ic_opmode) {
1513 IEEE80211_UNLOCK(ic);
1514 ieee80211_new_state(ic, IEEE80211_S_ASSOC,
1523 if (ic->ic_state != IEEE80211_S_RUN &&
1524 ic->ic_state != IEEE80211_S_ASSOC &&
1525 ic->ic_state != IEEE80211_S_AUTH)
1570 ic->ic_recv_action(in, frm, efrm);
1579 IEEE80211_UNLOCK(ic);