Lines Matching refs:ic

240 	struct ieee80211com *ic = &sc->sc_ic;
311 error = wi_read_rid(sc, WI_RID_MAC_NODE, &ic->ic_macaddr, &buflen);
314 error = wi_read_rid(sc, WI_RID_MAC_NODE, &ic->ic_macaddr,
317 if (error || IEEE80211_ADDR_EQ(&ic->ic_macaddr, empty_macaddr)) {
328 ic->ic_softc = sc;
329 ic->ic_name = device_get_nameunit(dev);
330 ic->ic_phytype = IEEE80211_T_DS;
331 ic->ic_opmode = IEEE80211_M_STA;
332 ic->ic_caps = IEEE80211_C_STA
342 wi_getradiocaps(ic, IEEE80211_CHAN_MAX, &ic->ic_nchans,
343 ic->ic_channels);
351 ic->ic_caps |= IEEE80211_C_IBSS;
370 ic->ic_caps |= IEEE80211_C_IBSS;
377 ic->ic_caps |= IEEE80211_C_HOSTAP;
385 ic->ic_caps |= IEEE80211_C_WPA;
402 ic->ic_cryptocaps |= IEEE80211_CRYPTO_WEP;
406 rs = &ic->ic_sup_rates[IEEE80211_MODE_11B];
427 ieee80211_ifattach(ic);
428 ic->ic_raw_xmit = wi_raw_xmit;
429 ic->ic_scan_start = wi_scan_start;
430 ic->ic_scan_end = wi_scan_end;
431 ic->ic_getradiocaps = wi_getradiocaps;
432 ic->ic_set_channel = wi_set_channel;
433 ic->ic_vap_create = wi_vap_create;
434 ic->ic_vap_delete = wi_vap_delete;
435 ic->ic_update_mcast = wi_update_mcast;
436 ic->ic_update_promisc = wi_update_promisc;
437 ic->ic_transmit = wi_transmit;
438 ic->ic_parent = wi_parent;
440 ieee80211_radiotap_attach(ic,
447 ieee80211_announce(ic);
453 ieee80211_ifdetach(ic);
465 struct ieee80211com *ic = &sc->sc_ic;
474 ieee80211_ifdetach(ic);
484 wi_vap_create(struct ieee80211com *ic, const char name[IFNAMSIZ], int unit,
489 struct wi_softc *sc = ic->ic_softc;
493 if (!TAILQ_EMPTY(&ic->ic_vaps)) /* only one at a time */
498 ieee80211_vap_setup(ic, vap, name, unit, opmode, flags, bssid);
533 ic->ic_opmode = opmode;
690 wi_getradiocaps(struct ieee80211com *ic,
693 struct wi_softc *sc = ic->ic_softc;
710 wi_set_channel(struct ieee80211com *ic)
712 struct wi_softc *sc = ic->ic_softc;
715 ieee80211_chan2ieee(ic, ic->ic_curchan),
716 ic->ic_flags & IEEE80211_F_SCAN ? "" : "!"));
720 ieee80211_chan2ieee(ic, ic->ic_curchan));
725 wi_scan_start(struct ieee80211com *ic)
727 struct wi_softc *sc = ic->ic_softc;
728 struct ieee80211_scan_state *ss = ic->ic_scan;
748 wi_scan_end(struct ieee80211com *ic)
750 struct wi_softc *sc = ic->ic_softc;
782 struct ieee80211com *ic = vap->iv_ic;
784 struct wi_softc *sc = ic->ic_softc;
795 wi_write_val(sc, WI_RID_MAX_SLEEP, ic->ic_lintval);
807 ieee80211_chan2ieee(ic, bss->ni_chan));
810 if (ic->ic_cryptocaps & IEEE80211_CRYPTO_WEP)
832 ieee80211_chan2ieee(ic, bss->ni_chan));
851 struct ieee80211com *ic = vap->iv_ic;
853 struct wi_softc *sc = ic->ic_softc;
869 ieee80211_chan2ieee(ic, bss->ni_chan));
899 if (ic->ic_cryptocaps & IEEE80211_CRYPTO_WEP)
911 wi_transmit(struct ieee80211com *ic, struct mbuf *m)
913 struct wi_softc *sc = ic->ic_softc;
1037 struct ieee80211com *ic = ni->ni_ic;
1039 struct wi_softc *sc = ic->ic_softc;
1150 wi_parent(struct ieee80211com *ic)
1152 struct wi_softc *sc = ic->ic_softc;
1161 if (ic->ic_nrunning > 0) {
1162 if (ic->ic_opmode != IEEE80211_M_HOSTAP &&
1164 if (ic->ic_promisc > 0 &&
1168 } else if (ic->ic_promisc == 0 &&
1186 ieee80211_start_all(ic);
1193 struct ieee80211com *ic = vap->iv_ic;
1194 struct wi_softc *sc = ic->ic_softc;
1222 struct ieee80211com *ic = &sc->sc_ic;
1223 struct ieee80211vap *vap = TAILQ_FIRST(&ic->ic_vaps);
1236 if (ic->ic_promisc > 0 &&
1250 ieee80211_sta_join(ic, ieee80211_ref_node(ni));
1257 struct ieee80211com *ic = &sc->sc_ic;
1272 counter_u64_add(ic->ic_ierrors, 1);
1283 counter_u64_add(ic->ic_ierrors, 1);
1296 if (ic->ic_opmode != IEEE80211_M_MONITOR) {
1298 counter_u64_add(ic->ic_ierrors, 1);
1311 counter_u64_add(ic->ic_ierrors, 1);
1325 if (ieee80211_radiotap_active(ic)) {
1346 if (ic->ic_opmode == IEEE80211_M_IBSS && dir == IEEE80211_FC1_DIR_NODS)
1351 ni = ieee80211_find_rxnode(ic, mtod(m, struct ieee80211_frame_min *));
1356 (void) ieee80211_input_all(ic, m, rssi, nf);
1435 struct ieee80211com *ic = &sc->sc_ic;
1436 struct ieee80211vap *vap = TAILQ_FIRST(&ic->ic_vaps);
1460 IEEE80211_LOCK(ic);
1463 IEEE80211_UNLOCK(ic);
1469 IEEE80211_LOCK(ic);
1473 IEEE80211_UNLOCK(ic);
1477 ieee80211_beacon_miss(ic);
1512 struct ieee80211com *ic = &sc->sc_ic;
1517 if (ic->ic_allmulti > 0 || ic->ic_promisc > 0) {
1525 TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next) {
1547 wi_update_mcast(struct ieee80211com *ic)
1550 wi_write_multi(ic->ic_softc);
1554 wi_update_promisc(struct ieee80211com *ic)
1556 struct wi_softc *sc = ic->ic_softc;
1561 (ic->ic_opmode == IEEE80211_M_MONITOR ||
1562 (ic->ic_promisc > 0)));
1678 struct ieee80211com *ic = vap->iv_ic;
1681 tp = &vap->iv_txparms[ieee80211_chan2mode(ic->ic_bsschan)];