Lines Matching defs:ic

660 lkpi_get_lkpi80211_chan(struct ieee80211com *ic, struct ieee80211_node *ni)
669 else if (ic->ic_bsschan != IEEE80211_CHAN_ANYC)
670 c = ic->ic_bsschan;
671 else if (ic->ic_curchan != IEEE80211_CHAN_ANYC)
672 c = ic->ic_curchan;
677 lhw = ic->ic_softc;
714 struct ieee80211com *ic;
726 ic = vap->iv_ic;
727 lhw = ic->ic_softc;
767 ic_printf(ic, "%s: set_key failed: %d\n", __func__, error);
770 ic_printf(ic, "%s: set_key succeeded: keyidx %u hw_key_idx %u "
828 lkpi_update_mcast_filter(struct ieee80211com *ic, bool force)
839 lhw = ic->ic_softc;
851 if (ic->ic_allmulti == 0) {
852 TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next)
956 IEEE80211_UNLOCK(lhw->ic);
969 IEEE80211_LOCK(lhw->ic);
972 ic_printf(lhw->ic, "%s: failed to cancel scan: %d (%p, %p)\n",
991 ic_printf(lhw->ic, "ERROR: %s: config %#0x returned %d\n",
1007 lkpi_update_mcast_filter(lhw->ic, true);
2457 struct ieee80211com *ic;
2465 ic = vap->iv_ic;
2466 IEEE80211_LOCK_ASSERT(ic);
2477 lhw = ic->ic_softc;
2576 struct ieee80211com *ic;
2606 ic = lhw->ic;
2607 ieee80211_wme_ic_getparams(ic, &chp);
2608 IEEE80211_LOCK(ic);
2611 IEEE80211_UNLOCK(ic);
2630 ic_printf(ic, "%s: conf_tx ac %u failed %d\n",
2643 lkpi_ic_wme_update(struct ieee80211com *ic)
2650 vap = TAILQ_FIRST(&ic->ic_vaps);
2654 lhw = ic->ic_softc;
2662 lkpi_ic_vap_create(struct ieee80211com *ic, const char name[IFNAMSIZ],
2678 if (!TAILQ_EMPTY(&ic->ic_vaps)) /* 1 so far. Add <n> once this works. */
2681 lhw = ic->ic_softc;
2731 vif->bss_conf.beacon_int = ic->ic_bintval;
2761 ic_printf(ic, "%s: failed to start hw: %d\n", __func__, error);
2770 ic_printf(ic, "%s: failed to add interface: %d\n", __func__, error);
2796 ic_printf(ic, "%s: conf_tx ac %u failed %d\n",
2804 lkpi_update_mcast_filter(ic, true);
2808 ieee80211_vap_setup(ic, vap, name, unit, opmode, flags, bssid);
2835 hw->max_listen_interval = 7 * (ic->ic_lintval / ic->ic_bintval);
2837 ic->ic_set_channel(ic);
2870 struct ieee80211com *ic;
2878 ic = vap->iv_ic;
2879 lhw = ic->ic_softc;
2901 lkpi_ic_update_mcast(struct ieee80211com *ic)
2904 lkpi_update_mcast_filter(ic, false);
2909 lkpi_ic_update_promisc(struct ieee80211com *ic)
2916 lkpi_ic_update_chw(struct ieee80211com *ic)
2924 lkpi_ic_parent(struct ieee80211com *ic)
2935 lhw = ic->ic_softc;
2941 /* IEEE80211_UNLOCK(ic); */
2943 if (ic->ic_nrunning > 0) {
2955 /* IEEE80211_LOCK(ic); */
2958 ieee80211_start_all(ic);
3002 struct ieee80211com *ic;
3008 ic = vap->iv_ic;
3029 chan = ieee80211_find_channel(ic,
3040 rs = ieee80211_get_suprates(ic, chan); /* calls chan2mode */
3048 c = ieee80211_ht_adjust_channel(ic, ic->ic_curchan,
3057 c = ieee80211_ht_adjust_channel(ic, ic->ic_curchan,
3059 c = ieee80211_vht_adjust_channel(ic, c,
3088 lkpi_ic_scan_start(struct ieee80211com *ic)
3099 lhw = ic->ic_softc;
3109 ss = ic->ic_scan;
3181 ic_printf(ic, "WARNING: %s: common_ie_len %d > "
3259 KASSERT(lhw->hw_req == NULL, ("%s: ic %p lhw %p hw_req %p "
3260 "!= NULL\n", __func__, ic, lhw, lhw->hw_req));
3323 ic_printf(ic, "ERROR: %s: hw_scan returned %d\n",
3330 lkpi_ic_scan_end(struct ieee80211com *ic)
3335 lhw = ic->ic_softc;
3351 ss = ic->ic_scan;
3396 lkpi_ic_set_channel(struct ieee80211com *ic)
3405 lhw = ic->ic_softc;
3420 c = ic->ic_curchan;
3422 ic_printf(ic, "%s: c %p ops->config %p\n", __func__,
3429 ic_printf(ic, "%s: c %p chan %p\n", __func__,
3440 (ic->ic_htcaps & IEEE80211_HTC_HT) ? 0 :
3446 ic_printf(ic, "ERROR: %s: config %#0x returned %d\n",
3465 ic_printf(ic, "ERROR: %s: config %#0x returned "
3475 struct ieee80211com *ic;
3481 ic = vap->iv_ic;
3482 lhw = ic->ic_softc;
3506 struct ieee80211com *ic;
3510 ic = ni->ni_ic;
3511 lhw = ic->ic_softc;
3528 struct ieee80211com *ic;
3531 ic = ni->ni_ic;
3532 lhw = ic->ic_softc;
3544 struct ieee80211com *ic;
3548 ic = ni->ni_ic;
3549 lhw = ic->ic_softc;
3606 struct ieee80211com *ic;
3642 ic = ni->ni_ic;
3643 lhw = ic->ic_softc;
3674 ic_printf(ic, "ERROR %s: skb alloc failed\n", __func__);
3720 c = ic->ic_curchan;
3826 lkpi_ic_transmit(struct ieee80211com *ic, struct mbuf *m)
3844 struct ieee80211com *ic;
3847 ic = ni->ni_ic;
3848 lhw = ic->ic_softc;
3858 struct ieee80211com *ic;
3861 ic = ni->ni_ic;
3862 lhw = ic->ic_softc;
3873 struct ieee80211com *ic;
3876 ic = ni->ni_ic;
3877 lhw = ic->ic_softc;
3888 struct ieee80211com *ic;
3891 ic = ni->ni_ic;
3892 lhw = ic->ic_softc;
3903 struct ieee80211com *ic;
3906 ic = ni->ni_ic;
3907 lhw = ic->ic_softc;
3917 struct ieee80211com *ic;
3920 ic = ni->ni_ic;
3921 lhw = ic->ic_softc;
3931 struct ieee80211com *ic;
3934 ic = ni->ni_ic;
3935 lhw = ic->ic_softc;
3946 struct ieee80211com *ic;
3949 ic = ni->ni_ic;
3950 lhw = ic->ic_softc;
3961 struct ieee80211com *ic;
3972 ic = ni->ni_ic;
3973 lhw = ic->ic_softc;
4000 ic_printf(ic, "%s: mo_ampdu_action returned %d. ni %p rap %p\n",
4013 struct ieee80211com *ic;
4025 ic = ni->ni_ic;
4026 lhw = ic->ic_softc;
4063 ic_printf(ic, "%s: mo_ampdu_action returned %d. ni %p rap %p\n",
4072 lkpi_ic_getradiocaps_ht(struct ieee80211com *ic, struct ieee80211_hw *hw,
4094 ic->ic_htcaps = IEEE80211_HTC_HT; /* HT operation */
4101 ic->ic_htcaps |= ht_cap->cap;
4105 ic->ic_htcaps |= IEEE80211_HTC_AMPDU;
4108 ic->ic_htcaps |= IEEE80211_HTC_AMSDU;
4110 ic->ic_htcaps |= (IEEE80211_HTC_RX_AMSDU_AMPDU |
4115 ic->ic_htcaps |= IEEE80211_HTCAP_SMPS_OFF;
4118 if ((ic->ic_htcaps & IEEE80211_HTCAP_CHWIDTH40) != 0 &&
4125 lkpi_ic_getradiocaps(struct ieee80211com *ic, int maxchan,
4135 lhw = ic->ic_softc;
4151 lkpi_ic_getradiocaps_ht(ic, hw, bands, &chan_flags,
4160 ic_printf(ic, "%s: Skipping disabled chan "
4184 ic_printf(ic, "%s: Adding chan %u/%u/%#x/%#x/%#x/%#x "
4203 lkpi_ic_getradiocaps_ht(ic, hw, bands, &chan_flags,
4209 ic->ic_flags_ext |= IEEE80211_FEXT_VHT;
4210 ic->ic_vht_cap.vht_cap_info =
4216 ic->ic_vht_cap.vht_cap_info))
4219 ic->ic_vht_cap.vht_cap_info))
4230 ic_printf(ic, "%s: Skipping disabled chan "
4254 ic_printf(ic, "%s: Adding chan %u/%u/%#x/%#x/%#x/%#x "
4268 struct ieee80211com *ic;
4270 ic = malloc(sizeof(*ic), M_LKPI80211, M_WAITOK | M_ZERO);
4271 if (ic == NULL)
4275 ic->ic_softc = NULL;
4276 ic->ic_name = "linuxkpi";
4278 return (ic);
4323 lhw->ic = lkpi_ieee80211_ifalloc();
4324 if (lhw->ic == NULL) {
4341 free(lhw->ic, M_LKPI80211);
4342 lhw->ic = NULL;
4386 struct ieee80211com *ic;
4389 ic = lhw->ic;
4392 ic->ic_softc = lhw;
4393 ic->ic_name = name;
4410 struct ieee80211com *ic;
4412 ic = lhw->ic;
4413 ieee80211_radiotap_attach(ic,
4423 struct ieee80211com *ic;
4428 ic = lhw->ic;
4437 IEEE80211_ADDR_COPY(ic->ic_macaddr,
4441 IEEE80211_ADDR_COPY(ic->ic_macaddr,
4444 ic_printf(ic, "%s: warning, no hardware address!\n", __func__);
4449 ic->ic_headroom = hw->extra_tx_headroom;
4452 ic->ic_phytype = IEEE80211_T_OFDM; /* not only, but not used */
4453 ic->ic_opmode = IEEE80211_M_STA;
4457 ic->ic_caps =
4472 ic->ic_caps |= IEEE80211_C_BGSCAN;
4482 ic->ic_flags_ext |= IEEE80211_FEXT_SCAN_OFFLOAD;
4497 ic->ic_rxstream = bitcount32(rxs);
4498 ic->ic_txstream = bitcount32(txs);
4502 ic->ic_cryptocaps = 0;
4506 ic->ic_cryptocaps |= lkpi_l80211_to_net80211_cyphers(
4511 lkpi_ic_getradiocaps(ic, IEEE80211_CHAN_MAX, &ic->ic_nchans,
4512 ic->ic_channels);
4514 ieee80211_ifattach(ic);
4516 ic->ic_update_mcast = lkpi_ic_update_mcast;
4517 ic->ic_update_promisc = lkpi_ic_update_promisc;
4518 ic->ic_update_chw = lkpi_ic_update_chw;
4519 ic->ic_parent = lkpi_ic_parent;
4520 ic->ic_scan_start = lkpi_ic_scan_start;
4521 ic->ic_scan_end = lkpi_ic_scan_end;
4522 ic->ic_set_channel = lkpi_ic_set_channel;
4523 ic->ic_transmit = lkpi_ic_transmit;
4524 ic->ic_raw_xmit = lkpi_ic_raw_xmit;
4525 ic->ic_vap_create = lkpi_ic_vap_create;
4526 ic->ic_vap_delete = lkpi_ic_vap_delete;
4527 ic->ic_getradiocaps = lkpi_ic_getradiocaps;
4528 ic->ic_wme.wme_update = lkpi_ic_wme_update;
4530 lhw->ic_scan_curchan = ic->ic_scan_curchan;
4531 ic->ic_scan_curchan = lkpi_ic_scan_curchan;
4532 lhw->ic_scan_mindwell = ic->ic_scan_mindwell;
4533 ic->ic_scan_mindwell = lkpi_ic_scan_mindwell;
4535 lhw->ic_node_alloc = ic->ic_node_alloc;
4536 ic->ic_node_alloc = lkpi_ic_node_alloc;
4537 lhw->ic_node_init = ic->ic_node_init;
4538 ic->ic_node_init = lkpi_ic_node_init;
4539 lhw->ic_node_cleanup = ic->ic_node_cleanup;
4540 ic->ic_node_cleanup = lkpi_ic_node_cleanup;
4541 lhw->ic_node_free = ic->ic_node_free;
4542 ic->ic_node_free = lkpi_ic_node_free;
4545 lhw->ic_recv_action = ic->ic_recv_action;
4546 ic->ic_recv_action = lkpi_ic_recv_action;
4547 lhw->ic_send_action = ic->ic_send_action;
4548 ic->ic_send_action = lkpi_ic_send_action;
4550 lhw->ic_ampdu_enable = ic->ic_ampdu_enable;
4551 ic->ic_ampdu_enable = lkpi_ic_ampdu_enable;
4553 lhw->ic_addba_request = ic->ic_addba_request;
4554 ic->ic_addba_request = lkpi_ic_addba_request;
4555 lhw->ic_addba_response = ic->ic_addba_response;
4556 ic->ic_addba_response = lkpi_ic_addba_response;
4557 lhw->ic_addba_stop = ic->ic_addba_stop;
4558 ic->ic_addba_stop = lkpi_ic_addba_stop;
4559 lhw->ic_addba_response_timeout = ic->ic_addba_response_timeout;
4560 ic->ic_addba_response_timeout = lkpi_ic_addba_response_timeout;
4562 lhw->ic_bar_response = ic->ic_bar_response;
4563 ic->ic_bar_response = lkpi_ic_bar_response;
4565 lhw->ic_ampdu_rx_start = ic->ic_ampdu_rx_start;
4566 ic->ic_ampdu_rx_start = lkpi_ic_ampdu_rx_start;
4567 lhw->ic_ampdu_rx_stop = ic->ic_ampdu_rx_stop;
4568 ic->ic_ampdu_rx_stop = lkpi_ic_ampdu_rx_stop;
4603 (ic->ic_htcaps & IEEE80211_HTC_HT) ? 0 :
4614 ic_printf(ic, "%s: limiting max_rates %d to %d!\n", __func__,
4640 if ((ic->ic_htcaps & IEEE80211_HTC_HT) != 0)
4644 if ((ic->ic_flags_ext & IEEE80211_FEXT_VHT) != 0)
4656 ieee80211_announce(ic);
4668 struct ieee80211com *ic;
4671 ic = lhw->ic;
4672 ieee80211_ifdetach(ic);
4692 ic_printf(lhw->ic, "XXX TODO %s flags(%#x) not yet supported.\n",
4826 struct ieee80211com *ic;
4830 ic = lhw->ic;
4832 rd = &ic->ic_regdomain;
4849 struct ieee80211com *ic;
4853 ic = lhw->ic;
4854 ss = ic->ic_scan;
4890 ok = ieee80211_input_mimo_all(lhw->ic, m);
4935 struct ieee80211com *ic;
5048 ic = lhw->ic;
5053 counter_u64_add(ic->ic_ierrors, 1);
5064 ni = ieee80211_find_rxnode(ic, wh);
5076 vap = TAILQ_FIRST(&ic->ic_vaps);
5131 if (ic->ic_curchan->ic_ieee == rx_stats.c_ieee)
5132 rtap->wr_chan_flags = htole16(ic->ic_curchan->ic_flags);
5770 ic_printf(lhw->ic, "%s:%d: lhw %p hw %p "
5828 ic_printf(lhw->ic, "%s:%d: lhw %p hw %p "
6094 ic_printf(lhw->ic, "%s: alloc failed.\n", __func__);
6109 vap = TAILQ_FIRST(&lhw->ic->ic_vaps);
6138 struct ieee80211com *ic;
6142 ic = lhw->ic;
6148 if (ic == NULL ||
6153 IEEE80211_LOCK(ic);
6154 TAILQ_FOREACH(vap, &ic->ic_vaps, iv_next)
6156 IEEE80211_UNLOCK(ic);