Lines Matching defs:ic

172 static int	ipw2200_send(struct ieee80211com *ic, mblk_t *mp, uint8_t type);
181 static int ipw2200_newstate(struct ieee80211com *ic,
198 extern uint8_t ieee80211_crypto_getciphertype(ieee80211com_t *ic);
199 extern void ieee80211_notify_node_join(ieee80211com_t *ic,
201 extern void ieee80211_notify_node_leave(ieee80211com_t *ic,
334 struct ieee80211com *ic;
472 ic = &sc->sc_ic;
473 ic->ic_phytype = IEEE80211_T_OFDM;
474 ic->ic_opmode = IEEE80211_M_STA;
475 ic->ic_state = IEEE80211_S_INIT;
476 ic->ic_maxrssi = 100; /* experimental number */
477 ic->ic_caps =
486 IEEE80211_ADDR_COPY(ic->ic_macaddr, sc->sc_macaddr);
493 ic->ic_sup_rates[IEEE80211_MODE_11A] = ipw2200_rateset_11a;
496 ic->ic_sup_channels[i].ich_freq =
498 ic->ic_sup_channels[i].ich_flags = /* CHAN_A */
502 ic->ic_sup_channels[i].ich_freq =
504 ic->ic_sup_channels[i].ich_flags = /* CHAN_A */
512 ic->ic_sup_rates[IEEE80211_MODE_11B] = ipw2200_rateset_11b;
513 ic->ic_sup_rates[IEEE80211_MODE_11G] = ipw2200_rateset_11g;
519 ic->ic_sup_channels[i].ich_freq =
521 ic->ic_sup_channels[i].ich_flags =
529 ic->ic_ibss_chan = &ic->ic_sup_channels[0];
530 ic->ic_xmit = ipw2200_send;
535 ieee80211_attach(ic);
540 ieee80211_register_door(ic, ddi_driver_name(dip), instance);
545 ieee80211_media_init(ic); /* initial the node table and bss */
546 sc->sc_newstate = ic->ic_newstate;
547 ic->ic_newstate = ipw2200_newstate;
548 ic->ic_def_txkey = 0;
566 wd.wd_opmode = ic->ic_opmode;
567 IEEE80211_ADDR_COPY(wd.wd_bssid, ic->ic_bss->in_bssid);
579 macp->m_src_addr = ic->ic_macaddr;
589 err = mac_register(macp, &ic->ic_mach);
616 mac_link_update(ic->ic_mach, LINK_STATE_DOWN);
632 ieee80211_detach(ic);
764 struct ieee80211com *ic = &sc->sc_ic;
777 ieee80211_new_state(ic, IEEE80211_S_INIT, -1);
788 struct ieee80211com *ic = &sc->sc_ic;
799 if (ic->ic_opmode == IEEE80211_M_IBSS) {
828 ic->ic_macaddr[0], ic->ic_macaddr[1], ic->ic_macaddr[2],
829 ic->ic_macaddr[3], ic->ic_macaddr[4], ic->ic_macaddr[5]));
830 err = ipw2200_cmd(sc, IPW2200_CMD_SET_MAC_ADDRESS, ic->ic_macaddr,
869 rs.nrates = ic->ic_sup_rates[IEEE80211_MODE_11G].ir_nrates;
870 (void) memcpy(rs.rates, ic->ic_sup_rates[IEEE80211_MODE_11G].ir_rates,
880 rs.nrates = ic->ic_sup_rates[IEEE80211_MODE_11A].ir_nrates;
881 (void) memcpy(rs.rates, ic->ic_sup_rates[IEEE80211_MODE_11A].ir_rates,
892 data = LE_32(ic->ic_rtsthreshold);
903 data = LE_32(ic->ic_fragthreshold);
915 if (ic->ic_des_esslen != 0) {
919 ic->ic_des_esslen,
920 ic->ic_des_essid[0], ic->ic_des_essid[1],
921 ic->ic_des_essid[2], ic->ic_des_essid[3],
922 ic->ic_des_essid[4], ic->ic_des_essid[5],
923 ic->ic_des_essid[6], ic->ic_des_essid[7]));
924 err = ipw2200_cmd(sc, IPW2200_CMD_SET_ESSID, ic->ic_des_essid,
925 ic->ic_des_esslen, 0);
944 if (ic->ic_flags & IEEE80211_F_PRIVACY) {
950 wkey.len = ic->ic_nw_keys[i].wk_keylen;
952 if (ic->ic_nw_keys[i].wk_keylen)
954 ic->ic_nw_keys[i].wk_key,
955 ic->ic_nw_keys[i].wk_keylen);
1268 struct ieee80211com *ic = &sc->sc_ic;
1292 ic->ic_stats.is_tx_frags = (uint32_t)buf[5];
1294 ic->ic_stats.is_tx_mcast = (uint32_t)buf[31];
1296 ic->ic_stats.is_tx_retries = (uint32_t)buf[56];
1298 ic->ic_stats.is_tx_failed = (uint32_t)buf[57];
1300 ic->ic_stats.is_tx_bytes = (uint32_t)buf[64];
1570 struct ieee80211com *ic = &sc->sc_ic;
1584 scan.type = (ic->ic_des_esslen != 0) ? IPW2200_SCAN_TYPE_BDIRECTED :
1594 if (IEEE80211_IS_CHAN_5GHZ(&ic->ic_sup_channels[i]) &&
1595 isset(ic->ic_chan_active, i)) {
1608 if (IEEE80211_IS_CHAN_2GHZ(&ic->ic_sup_channels[i]) &&
1609 isset(ic->ic_chan_active, i)) {
1622 struct ieee80211com *ic = &sc->sc_ic;
1623 struct ieee80211_node *in = ic->ic_bss;
1695 if (ic->ic_opt_ie != NULL) {
1697 wpa_level = (uint8_t *)ic->ic_opt_ie;
1724 ic->ic_opt_ie, ic->ic_opt_ie_len, 1);
1746 assoc.chan = ieee80211_chan2ieee(ic, in->in_chan);
1751 if (ic->ic_bss->in_authmode == WL_SHAREDKEY) {
1752 assoc.auth = (ic->ic_def_txkey << 4) | IPW2200_AUTH_SHARED;
1758 if (ic->ic_flags & IEEE80211_F_WPA)
1762 assoc.lintval = LE_16(ic->ic_lintval);
1765 if (ic->ic_opmode == IEEE80211_M_IBSS)
1797 ipw2200_newstate(struct ieee80211com *ic, enum ieee80211_state state, int arg)
1799 struct ipw2200_softc *sc = (struct ipw2200_softc *)ic;
1805 ic->ic_flags |= IEEE80211_F_SCAN | IEEE80211_F_ASCAN;
1822 wd.wd_secalloc = ieee80211_crypto_getciphertype(ic);
1823 wd.wd_opmode = ic->ic_opmode;
1824 IEEE80211_ADDR_COPY(wd.wd_bssid, ic->ic_bss->in_bssid);
1825 (void) mac_pdata_update(ic->ic_mach, &wd, sizeof (wd));
1835 if ((ic->ic_state != IEEE80211_S_RUN) && (state == IEEE80211_S_RUN)) {
1836 ieee80211_notify_node_join(ic, ic->ic_bss);
1837 } else if ((ic->ic_state == IEEE80211_S_RUN) &&
1839 ieee80211_notify_node_leave(ic, ic->ic_bss);
1844 ieee80211_state_name[ic->ic_state],
1847 ic->ic_state = state;
1857 ieee80211com_t *ic = (ieee80211com_t *)arg;
1858 struct ipw2200_softc *sc = (struct ipw2200_softc *)ic;
1868 *val = ic->ic_stats.is_tx_nobuf;
1880 *val = ic->ic_stats.is_rx_bytes;
1883 *val = ic->ic_stats.is_rx_frags;
1886 *val = ic->ic_stats.is_tx_bytes;
1889 *val = ic->ic_stats.is_tx_frags;
1909 return (ieee80211_stat(ic, stat, val));
1938 struct ieee80211com *ic = &sc->sc_ic;
1960 if (ic->ic_mach && (sc->sc_flags & IPW2200_FLAG_LINK_CHANGE)) {
1970 mac_link_update(ic->ic_mach, nlstate);
1977 if (ic->ic_mach &&
1988 ostate = ic->ic_state;
2002 ieee80211_begin_scan(ic, 0);
2035 struct ieee80211com *ic = &sc->sc_ic;
2047 ieee80211_new_state(ic, IEEE80211_S_INIT, -1);
2063 struct ieee80211com *ic = &sc->sc_ic;
2072 ieee80211_new_state(ic, IEEE80211_S_INIT, -1);
2081 struct ieee80211com *ic = &sc->sc_ic;
2093 if (!IEEE80211_ADDR_EQ(ic->ic_macaddr, macaddr)) {
2095 IEEE80211_ADDR_COPY(ic->ic_macaddr, macaddr);
2129 struct ieee80211com *ic = &sc->sc_ic;
2148 if (ic->ic_state != IEEE80211_S_RUN) {
2151 ic->ic_state));
2160 if (ipw2200_send(ic, mp, IEEE80211_FC0_TYPE_DATA) ==
2174 ipw2200_send(ieee80211com_t *ic, mblk_t *mp, uint8_t type)
2176 struct ipw2200_softc *sc = (struct ipw2200_softc *)ic;
2221 ic->ic_stats.is_tx_nobuf++; /* no enough buffer */
2241 ic->ic_stats.is_tx_failed++; /* trans failed */
2256 in = ieee80211_find_txnode(ic, wh->i_addr1);
2259 ic->ic_stats.is_tx_failed++; /* trans failed */
2266 (void) ieee80211_encap(ic, m, in);
2270 k = ieee80211_crypto_encap(ic, m);
2276 ic->ic_stats.is_tx_failed++; /* trans failed */
2311 if (ic->ic_opmode == IEEE80211_M_IBSS) {
2320 if (ic->ic_flags & IEEE80211_F_SHPREAMBLE)
2370 struct ieee80211com *ic = &sc->sc_ic;
2383 err = ieee80211_ioctl(ic, q, m);
2387 (void) ieee80211_new_state(ic,
2566 struct ieee80211com *ic = &sc->sc_ic;
2580 err = ieee80211_getprop(ic, pr_name, wldp_pr_num,
2593 struct ieee80211com *ic = &sc->sc_ic;
2595 ieee80211_propinfo(ic, pr_name, wlpd_pr_num, mph);
2603 struct ieee80211com *ic = &sc->sc_ic;
2620 err = ieee80211_setprop(ic, pr_name, wldp_pr_num, wldp_length,
2628 (void) ieee80211_new_state(ic,
2668 ipw2200_fix_channel(struct ieee80211com *ic, mblk_t *m)
2696 ic->ic_curchan = &ic->ic_sup_channels[frm[2]];
2704 struct ieee80211com *ic = &sc->sc_ic;
2733 if (ic->ic_state == IEEE80211_S_SCAN) {
2734 ic->ic_ibss_chan = &ic->ic_sup_channels[frame->chan];
2735 ipw2200_fix_channel(ic, m);
2739 in = ieee80211_find_rxnode(ic, wh);
2752 (void) ieee80211_input(ic, m, in, frame->rssi_dbm, 0);
2766 struct ieee80211com *ic = &sc->sc_ic;
2786 ieee80211_new_state(ic, IEEE80211_S_RUN, -1);
2790 ieee80211_begin_scan(ic, 1);
2805 ieee80211_new_state(ic, IEEE80211_S_ASSOC, -1);
2834 ieee80211_end_scan(ic);
2856 struct ieee80211com *ic = &sc->sc_ic;
3041 mac_tx_update(ic->ic_mach);