Lines Matching refs:ireq

77 ieee80211_ioctl_getkey(struct ieee80211vap *vap, struct ieee80211req *ireq)
87 if (ireq->i_len != sizeof(ik))
89 error = copyin(ireq->i_data, &ik, sizeof(ik));
129 return copyout(&ik, ireq->i_data, sizeof(ik));
133 ieee80211_ioctl_getchanlist(struct ieee80211vap *vap, struct ieee80211req *ireq)
137 if (sizeof(ic->ic_chan_active) < ireq->i_len)
138 ireq->i_len = sizeof(ic->ic_chan_active);
139 return copyout(&ic->ic_chan_active, ireq->i_data, ireq->i_len);
143 ieee80211_ioctl_getchaninfo(struct ieee80211vap *vap, struct ieee80211req *ireq)
150 if (space > ireq->i_len)
151 space = ireq->i_len;
153 return copyout(&ic->ic_nchans, ireq->i_data, space);
158 struct ieee80211req *ireq, int req)
164 if (ireq->i_len < IEEE80211_ADDR_LEN)
166 error = copyin(ireq->i_data, wpaie.wpa_macaddr, IEEE80211_ADDR_LEN);
187 if (ireq->i_len > sizeof(struct ieee80211req_wpaie2))
188 ireq->i_len = sizeof(struct ieee80211req_wpaie2);
198 if (ireq->i_len > sizeof(struct ieee80211req_wpaie))
199 ireq->i_len = sizeof(struct ieee80211req_wpaie);
202 return copyout(&wpaie, ireq->i_data, ireq->i_len);
206 ieee80211_ioctl_getstastats(struct ieee80211vap *vap, struct ieee80211req *ireq)
213 if (ireq->i_len < off)
215 error = copyin(ireq->i_data, macaddr, IEEE80211_ADDR_LEN);
221 if (ireq->i_len > sizeof(struct ieee80211req_sta_stats))
222 ireq->i_len = sizeof(struct ieee80211req_sta_stats);
224 error = copyout(&ni->ni_stats, (uint8_t *) ireq->i_data + off,
225 ireq->i_len - off);
312 struct ieee80211req *ireq)
317 if (ireq->i_len < sizeof(struct scanreq))
323 if (req.space > ireq->i_len)
324 req.space = ireq->i_len;
336 ireq->i_len = space - req.space;
337 error = copyout(p, ireq->i_data, ireq->i_len);
340 ireq->i_len = 0;
460 getstainfo_common(struct ieee80211vap *vap, struct ieee80211req *ireq,
476 if (req.space > ireq->i_len)
477 req.space = ireq->i_len;
491 ireq->i_len = space - req.space;
492 error = copyout(p, (uint8_t *) ireq->i_data+off, ireq->i_len);
495 ireq->i_len = 0;
503 ieee80211_ioctl_getstainfo(struct ieee80211vap *vap, struct ieee80211req *ireq)
510 if (ireq->i_len < sizeof(struct ieee80211req_sta_req))
512 error = copyin(ireq->i_data, macaddr, IEEE80211_ADDR_LEN);
522 return getstainfo_common(vap, ireq, ni, off);
526 ieee80211_ioctl_getstatxpow(struct ieee80211vap *vap, struct ieee80211req *ireq)
532 if (ireq->i_len != sizeof(txpow))
534 error = copyin(ireq->i_data, &txpow, sizeof(txpow));
541 error = copyout(&txpow, ireq->i_data, sizeof(txpow));
547 ieee80211_ioctl_getwmeparam(struct ieee80211vap *vap, struct ieee80211req *ireq)
557 ac = (ireq->i_len & IEEE80211_WMEPARAM_VAL);
560 if (ireq->i_len & IEEE80211_WMEPARAM_BSS)
564 switch (ireq->i_type) {
566 ireq->i_val = wmep->wmep_logcwmin;
569 ireq->i_val = wmep->wmep_logcwmax;
572 ireq->i_val = wmep->wmep_aifsn;
575 ireq->i_val = wmep->wmep_txopLimit;
579 ireq->i_val = wmep->wmep_acm;
583 ireq->i_val = !wmep->wmep_noackPolicy;
590 ieee80211_ioctl_getmaccmd(struct ieee80211vap *vap, struct ieee80211req *ireq)
594 return (acl == NULL ? EINVAL : acl->iac_getioctl(vap, ireq));
598 ieee80211_ioctl_getcurchan(struct ieee80211vap *vap, struct ieee80211req *ireq)
603 if (ireq->i_len != sizeof(struct ieee80211_channel))
614 return copyout(c, ireq->i_data, sizeof(*c));
618 getappie(const struct ieee80211_appie *aie, struct ieee80211req *ireq)
623 if (ireq->i_len > aie->ie_len)
624 ireq->i_len = aie->ie_len;
625 return copyout(aie->ie_data, ireq->i_data, ireq->i_len);
629 ieee80211_ioctl_getappie(struct ieee80211vap *vap, struct ieee80211req *ireq)
633 fc0 = ireq->i_val & 0xff;
639 return getappie(vap->iv_appie_beacon, ireq);
641 return getappie(vap->iv_appie_proberesp, ireq);
643 return getappie(vap->iv_appie_assocresp, ireq);
645 return getappie(vap->iv_appie_probereq, ireq);
647 return getappie(vap->iv_appie_assocreq, ireq);
649 return getappie(vap->iv_appie_wpa, ireq);
656 const struct ieee80211req *ireq)
660 if (ireq->i_len != sizeof(ic->ic_regdomain))
662 return copyout(&ic->ic_regdomain, ireq->i_data,
668 const struct ieee80211req *ireq)
670 size_t len = ireq->i_len;
674 return copyout(vap->iv_roamparms, ireq->i_data, len);
679 const struct ieee80211req *ireq)
681 size_t len = ireq->i_len;
685 return copyout(vap->iv_txparms, ireq->i_data, len);
690 const struct ieee80211req *ireq)
696 maxchans = 1 + ((ireq->i_len - sizeof(struct ieee80211_devcaps_req)) /
716 error = copyout(dc, ireq->i_data, IEEE80211_DEVCAPS_SPACE(dc));
722 ieee80211_ioctl_getstavlan(struct ieee80211vap *vap, struct ieee80211req *ireq)
728 if (ireq->i_len != sizeof(vlan))
730 error = copyin(ireq->i_data, &vlan, sizeof(vlan));
741 error = copyout(&vlan, ireq->i_data, sizeof(vlan));
750 dummy_ioctl_get(struct ieee80211vap *vap, struct ieee80211req *ireq)
757 ieee80211_ioctl_getdefault(struct ieee80211vap *vap, struct ieee80211req *ireq)
763 error = (*get)(vap, ireq);
788 struct ieee80211req *ireq)
797 switch (ireq->i_type) {
802 ireq->i_len = vap->iv_des_ssid[0].len;
803 memcpy(tmpssid, vap->iv_des_ssid[0].ssid, ireq->i_len);
806 ireq->i_len = vap->iv_bss->ni_esslen;
807 memcpy(tmpssid, vap->iv_bss->ni_essid, ireq->i_len);
810 error = copyout(tmpssid, ireq->i_data, ireq->i_len);
813 ireq->i_val = 1;
817 ireq->i_val = IEEE80211_WEP_OFF;
819 ireq->i_val = IEEE80211_WEP_ON;
821 ireq->i_val = IEEE80211_WEP_MIXED;
824 kid = (u_int) ireq->i_val;
834 ireq->i_len = len;
835 error = copyout(tmpkey, ireq->i_data, len);
838 ireq->i_val = IEEE80211_WEP_NKID;
841 ireq->i_val = vap->iv_def_txkey;
845 ireq->i_val = IEEE80211_AUTH_WPA;
847 ireq->i_val = vap->iv_bss->ni_authmode;
850 ireq->i_val = ieee80211_chan2ieee(ic, ic->ic_curchan);
854 ireq->i_val = IEEE80211_POWERSAVE_ON;
856 ireq->i_val = IEEE80211_POWERSAVE_OFF;
859 ireq->i_val = ic->ic_lintval;
862 ireq->i_val = vap->iv_rtsthreshold;
865 ireq->i_val = ic->ic_protmode;
873 ireq->i_val = 2*ic->ic_curchan->ic_maxregpower;
874 if (ireq->i_val > ic->ic_txpowlimit)
875 ireq->i_val = ic->ic_txpowlimit;
876 if (ireq->i_val > ic->ic_curchan->ic_maxpower)
877 ireq->i_val = ic->ic_curchan->ic_maxpower;
882 ireq->i_val = 1;
885 ireq->i_val = 2;
888 ireq->i_val = 3;
891 ireq->i_val = 0;
896 error = ieee80211_ioctl_getchanlist(vap, ireq);
899 ireq->i_val = vap->iv_roaming;
902 ireq->i_val = (vap->iv_flags & IEEE80211_F_PRIVACY) != 0;
905 ireq->i_val = (vap->iv_flags & IEEE80211_F_DROPUNENC) != 0;
908 ireq->i_val = (vap->iv_flags & IEEE80211_F_COUNTERM) != 0;
911 ireq->i_val = (vap->iv_flags & IEEE80211_F_WME) != 0;
914 ireq->i_val = (vap->iv_flags & IEEE80211_F_HIDESSID) != 0;
917 ireq->i_val = (vap->iv_flags & IEEE80211_F_NOBRIDGE) == 0;
920 error = ieee80211_ioctl_getkey(vap, ireq);
923 error = ieee80211_ioctl_getchaninfo(vap, ireq);
926 if (ireq->i_len != IEEE80211_ADDR_LEN)
931 ireq->i_data, ireq->i_len);
933 error = copyout(vap->iv_des_bssid, ireq->i_data,
934 ireq->i_len);
937 error = ieee80211_ioctl_getwpaie(vap, ireq, ireq->i_type);
940 error = ieee80211_ioctl_getwpaie(vap, ireq, ireq->i_type);
943 error = ieee80211_ioctl_getscanresults(vap, ireq);
946 error = ieee80211_ioctl_getstastats(vap, ireq);
949 ireq->i_val = vap->iv_bss->ni_txpower;
952 error = ieee80211_ioctl_getstatxpow(vap, ireq);
955 error = ieee80211_ioctl_getstainfo(vap, ireq);
963 error = ieee80211_ioctl_getwmeparam(vap, ireq);
966 ireq->i_val = vap->iv_dtim_period;
970 ireq->i_val = vap->iv_bss->ni_intval;
973 ireq->i_val = (vap->iv_flags & IEEE80211_F_PUREG) != 0;
976 ireq->i_val = vap->iv_quiet;
979 ireq->i_val = vap->iv_quiet_count;
982 ireq->i_val = vap->iv_quiet_period;
985 ireq->i_val = vap->iv_quiet_duration;
988 ireq->i_val = vap->iv_quiet_offset;
991 ireq->i_val = (vap->iv_flags & IEEE80211_F_BGSCAN) != 0;
994 ireq->i_val = vap->iv_bgscanidle*hz/1000; /* ms */
997 ireq->i_val = vap->iv_bgscanintvl/hz; /* seconds */
1000 ireq->i_val = vap->iv_scanvalid/hz; /* seconds */
1003 ireq->i_val = vap->iv_fragthreshold;
1006 error = ieee80211_ioctl_getmaccmd(vap, ireq);
1009 ireq->i_val = (vap->iv_flags & IEEE80211_F_BURST) != 0;
1012 ireq->i_val = vap->iv_bmissthreshold;
1015 error = ieee80211_ioctl_getcurchan(vap, ireq);
1018 ireq->i_val = 0;
1020 ireq->i_val |= IEEE80211_HTCAP_SHORTGI20;
1022 ireq->i_val |= IEEE80211_HTCAP_SHORTGI40;
1025 ireq->i_val = 0;
1027 ireq->i_val |= 1;
1029 ireq->i_val |= 2;
1033 ireq->i_val = vap->iv_ampdu_rxmax;
1035 ireq->i_val = MS(vap->iv_bss->ni_htparam,
1038 ireq->i_val = vap->iv_ampdu_limit;
1043 ireq->i_val = MS(vap->iv_bss->ni_htparam,
1046 ireq->i_val = vap->iv_ampdu_density;
1049 ireq->i_val = 0;
1051 ireq->i_val |= 1;
1053 ireq->i_val |= 2;
1056 ireq->i_val = vap->iv_amsdu_limit; /* XXX truncation? */
1059 ireq->i_val = (vap->iv_flags_ht & IEEE80211_FHT_PUREN) != 0;
1062 ireq->i_val = (vap->iv_flags & IEEE80211_F_DOTH) != 0;
1065 error = ieee80211_ioctl_getregdomain(vap, ireq);
1068 error = ieee80211_ioctl_getroam(vap, ireq);
1071 error = ieee80211_ioctl_gettxparams(vap, ireq);
1074 ireq->i_val = (vap->iv_flags_ht & IEEE80211_FHT_HTCOMPAT) != 0;
1077 ireq->i_val = (vap->iv_flags & IEEE80211_F_DWDS) != 0;
1080 ireq->i_val = (vap->iv_flags_ext & IEEE80211_FEXT_INACT) != 0;
1083 error = ieee80211_ioctl_getappie(vap, ireq);
1086 ireq->i_val = (vap->iv_flags_ext & IEEE80211_FEXT_WPS) != 0;
1089 ireq->i_val = (vap->iv_flags_ext & IEEE80211_FEXT_TSN) != 0;
1092 ireq->i_val = (vap->iv_flags_ext & IEEE80211_FEXT_DFS) != 0;
1095 ireq->i_val = (vap->iv_flags_ext & IEEE80211_FEXT_DOTD) != 0;
1098 error = ieee80211_ioctl_getdevcaps(ic, ireq);
1101 ireq->i_val = ic->ic_htprotmode;
1105 ireq->i_val = 1;
1107 ireq->i_val |= 2;
1109 ireq->i_val = 0;
1112 error = ieee80211_ioctl_getstavlan(vap, ireq);
1118 ireq->i_val = IEEE80211_HTCAP_SMPS_DYNAMIC;
1120 ireq->i_val = IEEE80211_HTCAP_SMPS_ENA;
1122 ireq->i_val = IEEE80211_HTCAP_SMPS_OFF;
1124 ireq->i_val = vap->iv_htcaps & IEEE80211_HTCAP_SMPS;
1129 ireq->i_val =
1132 ireq->i_val =
1136 error = ieee80211_ioctl_getdefault(vap, ireq);
1144 ieee80211_ioctl_setkey(struct ieee80211vap *vap, struct ieee80211req *ireq)
1152 if (ireq->i_len != sizeof(ik))
1154 error = copyin(ireq->i_data, &ik, sizeof(ik));
1218 ieee80211_ioctl_delkey(struct ieee80211vap *vap, struct ieee80211req *ireq)
1223 if (ireq->i_len != sizeof(dk))
1225 error = copyin(ireq->i_data, &dk, sizeof(dk));
1578 ieee80211_ioctl_setmlme(struct ieee80211vap *vap, struct ieee80211req *ireq)
1583 if (ireq->i_len != sizeof(mlme))
1585 error = copyin(ireq->i_data, &mlme, sizeof(mlme));
1603 ieee80211_ioctl_macmac(struct ieee80211vap *vap, struct ieee80211req *ireq)
1609 if (ireq->i_len != sizeof(mac))
1611 error = copyin(ireq->i_data, mac, ireq->i_len);
1620 if (ireq->i_type == IEEE80211_IOC_ADDMAC)
1628 ieee80211_ioctl_setmaccmd(struct ieee80211vap *vap, struct ieee80211req *ireq)
1632 switch (ireq->i_val) {
1643 acl->iac_setpolicy(vap, ireq->i_val);
1660 return acl->iac_setioctl(vap, ireq);
1666 ieee80211_ioctl_setchanlist(struct ieee80211vap *vap, struct ieee80211req *ireq)
1672 if (ireq->i_len > sizeof(ic->ic_chan_active))
1673 ireq->i_len = sizeof(ic->ic_chan_active);
1674 list = malloc(ireq->i_len + IEEE80211_CHAN_BYTES, M_TEMP,
1678 error = copyin(ireq->i_data, list, ireq->i_len);
1684 chanlist = list + ireq->i_len; /* NB: zero'd already */
1685 maxchan = ireq->i_len * NBBY;
1712 ieee80211_ioctl_setstastats(struct ieee80211vap *vap, struct ieee80211req *ireq)
1723 if (ireq->i_len < IEEE80211_ADDR_LEN)
1725 error = copyin(ireq->i_data, macaddr, IEEE80211_ADDR_LEN);
1738 ieee80211_ioctl_setstatxpow(struct ieee80211vap *vap, struct ieee80211req *ireq)
1744 if (ireq->i_len != sizeof(txpow))
1746 error = copyin(ireq->i_data, &txpow, sizeof(txpow));
1758 ieee80211_ioctl_setwmeparam(struct ieee80211vap *vap, struct ieee80211req *ireq)
1768 isbss = (ireq->i_len & IEEE80211_WMEPARAM_BSS);
1769 ac = (ireq->i_len & IEEE80211_WMEPARAM_VAL);
1779 switch (ireq->i_type) {
1782 wmep->wmep_logcwmin = ireq->i_val;
1784 chanp->wmep_logcwmin = ireq->i_val;
1787 ireq->i_val;
1792 wmep->wmep_logcwmax = ireq->i_val;
1794 chanp->wmep_logcwmax = ireq->i_val;
1797 ireq->i_val;
1802 wmep->wmep_aifsn = ireq->i_val;
1804 chanp->wmep_aifsn = ireq->i_val;
1806 wmep->wmep_aifsn = chanp->wmep_aifsn = ireq->i_val;
1811 wmep->wmep_txopLimit = ireq->i_val;
1813 chanp->wmep_txopLimit = ireq->i_val;
1816 ireq->i_val;
1820 wmep->wmep_acm = ireq->i_val;
1822 chanp->wmep_acm = ireq->i_val;
1826 (ireq->i_val) == 0;
2003 const struct ieee80211req *ireq)
2009 if (ireq->i_val == 0 ||
2010 ireq->i_val == (int16_t) IEEE80211_CHAN_ANY) {
2015 c = findchannel(ic, ireq->i_val, vap->iv_des_mode);
2017 c = findchannel(ic, ireq->i_val,
2037 c2 = findchannel(ic, ireq->i_val,
2046 c2 = findchannel(ic, ireq->i_val,
2054 c2 = findchannel(ic, ireq->i_val,
2062 c2 = findchannel(ic, ireq->i_val,
2082 const struct ieee80211req *ireq)
2088 if (ireq->i_len != sizeof(chan))
2090 error = copyin(ireq->i_data, &chan, sizeof(chan));
2106 const struct ieee80211req *ireq)
2111 nchans = 1 + ((ireq->i_len - sizeof(struct ieee80211_regdomain_req)) /
2116 ireq->i_len, nchans);
2126 error = copyin(ireq->i_data, reg, IEEE80211_REGDOMAIN_SIZE(nchans));
2144 const struct ieee80211req *ireq)
2146 if (ireq->i_len != sizeof(vap->iv_roamparms))
2150 return copyin(ireq->i_data, vap->iv_roamparms,
2179 const struct ieee80211req *ireq)
2188 if (ireq->i_len > sizeof(parms))
2190 error = copyin(ireq->i_data, &parms, ireq->i_len);
2193 nmodes = ireq->i_len / sizeof(struct ieee80211_txparam);
2245 setappie(struct ieee80211_appie **aie, const struct ieee80211req *ireq)
2251 if (ireq->i_len == 0) { /* delete any existing ie */
2258 if (!(2 <= ireq->i_len && ireq->i_len <= IEEE80211_MAX_APPIE))
2269 sizeof(struct ieee80211_appie) + ireq->i_len, M_80211_NODE_IE, M_NOWAIT);
2273 error = copyin(ireq->i_data, napp->ie_data, ireq->i_len);
2278 napp->ie_len = ireq->i_len;
2299 const struct ieee80211req *ireq, int fc0)
2312 error = setappie(&vap->iv_appie_beacon, ireq);
2317 error = setappie(&vap->iv_appie_proberesp, ireq);
2321 error = setappie(&vap->iv_appie_assocresp, ireq);
2326 error = setappie(&vap->iv_appie_probereq, ireq);
2330 error = setappie(&vap->iv_appie_assocreq, ireq);
2335 error = setappie(&vap->iv_appie_wpa, ireq);
2377 const struct ieee80211req *ireq)
2383 fc0 = ireq->i_val & 0xff;
2388 error = ieee80211_ioctl_setappie_locked(vap, ireq, fc0);
2394 ieee80211_ioctl_chanswitch(struct ieee80211vap *vap, struct ieee80211req *ireq)
2401 if (ireq->i_len != sizeof(csr))
2403 error = copyin(ireq->i_data, &csr, sizeof(csr));
2530 ieee80211_ioctl_scanreq(struct ieee80211vap *vap, struct ieee80211req *ireq)
2540 if (ireq->i_len != sizeof(sr))
2542 error = copyin(ireq->i_data, &sr, sizeof(sr));
2549 ieee80211_ioctl_setstavlan(struct ieee80211vap *vap, struct ieee80211req *ireq)
2555 if (ireq->i_len != sizeof(vlan))
2557 error = copyin(ireq->i_data, &vlan, sizeof(vlan));
2592 dummy_ioctl_set(struct ieee80211vap *vap, struct ieee80211req *ireq)
2599 ieee80211_ioctl_setdefault(struct ieee80211vap *vap, struct ieee80211req *ireq)
2605 error = (*set)(vap, ireq);
2613 ieee80211_ioctl_set80211(struct ieee80211vap *vap, u_long cmd, struct ieee80211req *ireq)
2626 switch (ireq->i_type) {
2628 if (ireq->i_val != 0 ||
2629 ireq->i_len > IEEE80211_NWID_LEN)
2631 error = copyin(ireq->i_data, tmpssid, ireq->i_len);
2635 vap->iv_des_ssid[0].len = ireq->i_len;
2636 memcpy(vap->iv_des_ssid[0].ssid, tmpssid, ireq->i_len);
2637 vap->iv_des_nssid = (ireq->i_len > 0);
2641 switch (ireq->i_val) {
2658 kid = (u_int) ireq->i_val;
2662 if (ireq->i_len == 0) {
2667 if (ireq->i_len > sizeof(tmpkey))
2670 error = copyin(ireq->i_data, tmpkey, ireq->i_len);
2677 k->wk_keylen = ireq->i_len;
2687 kid = (u_int) ireq->i_val;
2694 switch (ireq->i_val) {
2700 auth = ieee80211_authenticator_get(ireq->i_val);
2707 switch (ireq->i_val) {
2710 ireq->i_val = IEEE80211_AUTH_8021X;
2728 vap->iv_bss->ni_authmode = ireq->i_val;
2734 error = ieee80211_ioctl_setchannel(vap, ireq);
2737 switch (ireq->i_val) {
2758 if (ireq->i_val < 0)
2760 ic->ic_lintval = ireq->i_val;
2764 if (!(IEEE80211_RTS_MIN <= ireq->i_val &&
2765 ireq->i_val <= IEEE80211_RTS_MAX))
2767 vap->iv_rtsthreshold = ireq->i_val;
2771 if (ireq->i_val > IEEE80211_PROT_RTSCTS)
2773 ic->ic_protmode = (enum ieee80211_protmode)ireq->i_val;
2782 if (!(IEEE80211_TXPOWER_MIN <= ireq->i_val &&
2783 ireq->i_val <= IEEE80211_TXPOWER_MAX))
2785 ic->ic_txpowlimit = ireq->i_val;
2789 if (!(IEEE80211_ROAMING_DEVICE <= ireq->i_val &&
2790 ireq->i_val <= IEEE80211_ROAMING_MANUAL))
2792 vap->iv_roaming = (enum ieee80211_roamingmode)ireq->i_val;
2796 if (ireq->i_val) {
2804 if (ireq->i_val)
2811 error = ieee80211_ioctl_setkey(vap, ireq);
2814 error = ieee80211_ioctl_delkey(vap, ireq);
2817 error = ieee80211_ioctl_setmlme(vap, ireq);
2820 if (ireq->i_val) {
2829 if (ireq->i_val > 3)
2833 switch (ireq->i_val) {
2856 if (ireq->i_val) {
2865 if (ireq->i_val)
2872 if (ireq->i_val == 0)
2878 if (ireq->i_len != sizeof(tmpbssid))
2880 error = copyin(ireq->i_data, tmpbssid, ireq->i_len);
2891 error = ieee80211_ioctl_setchanlist(vap, ireq);
2918 error = ieee80211_ioctl_scanreq(vap, ireq);
2926 if (ireq->i_val & 1)
2930 if (ireq->i_val & 2)
2938 error = ieee80211_ioctl_macmac(vap, ireq);
2941 error = ieee80211_ioctl_setmaccmd(vap, ireq);
2944 error = ieee80211_ioctl_setstastats(vap, ireq);
2947 error = ieee80211_ioctl_setstatxpow(vap, ireq);
2955 error = ieee80211_ioctl_setwmeparam(vap, ireq);
2962 if (IEEE80211_DTIM_MIN <= ireq->i_val &&
2963 ireq->i_val <= IEEE80211_DTIM_MAX) {
2964 vap->iv_dtim_period = ireq->i_val;
2974 if (IEEE80211_BINTVAL_MIN <= ireq->i_val &&
2975 ireq->i_val <= IEEE80211_BINTVAL_MAX) {
2976 ic->ic_bintval = ireq->i_val;
2982 if (ireq->i_val)
2991 vap->iv_quiet= ireq->i_val;
2994 vap->iv_quiet_count=ireq->i_val;
2997 vap->iv_quiet_period=ireq->i_val;
3000 vap->iv_quiet_offset=ireq->i_val;
3003 if(ireq->i_val < vap->iv_bss->ni_intval)
3004 vap->iv_quiet_duration = ireq->i_val;
3009 if (ireq->i_val) {
3017 if (ireq->i_val >= IEEE80211_BGSCAN_IDLE_MIN)
3018 vap->iv_bgscanidle = ireq->i_val*hz/1000;
3023 if (ireq->i_val >= IEEE80211_BGSCAN_INTVAL_MIN)
3024 vap->iv_bgscanintvl = ireq->i_val*hz;
3029 if (ireq->i_val >= IEEE80211_SCAN_VALID_MIN)
3030 vap->iv_scanvalid = ireq->i_val*hz;
3036 ireq->i_val != IEEE80211_FRAG_MAX)
3038 if (!(IEEE80211_FRAG_MIN <= ireq->i_val &&
3039 ireq->i_val <= IEEE80211_FRAG_MAX))
3041 vap->iv_fragthreshold = ireq->i_val;
3045 if (ireq->i_val) {
3054 if (!(IEEE80211_HWBMISS_MIN <= ireq->i_val &&
3055 ireq->i_val <= IEEE80211_HWBMISS_MAX))
3057 vap->iv_bmissthreshold = ireq->i_val;
3061 error = ieee80211_ioctl_setcurchan(vap, ireq);
3064 if (ireq->i_val) {
3067 if (((ireq->i_val ^ vap->iv_htcaps) & IEEE80211_HTCAP_SHORTGI) != 0)
3069 if (ireq->i_val & IEEE80211_HTCAP_SHORTGI20)
3071 if (ireq->i_val & IEEE80211_HTCAP_SHORTGI40)
3080 if (ireq->i_val && (vap->iv_htcaps & IEEE80211_HTC_AMPDU) == 0)
3082 if (ireq->i_val & 1)
3086 if (ireq->i_val & 2)
3095 if (!(IEEE80211_HTCAP_MAXRXAMPDU_8K <= ireq->i_val &&
3096 ireq->i_val <= IEEE80211_HTCAP_MAXRXAMPDU_64K))
3099 vap->iv_ampdu_rxmax = ireq->i_val;
3101 vap->iv_ampdu_limit = ireq->i_val;
3105 if (!(IEEE80211_HTCAP_MPDUDENSITY_NA <= ireq->i_val &&
3106 ireq->i_val <= IEEE80211_HTCAP_MPDUDENSITY_16))
3108 vap->iv_ampdu_density = ireq->i_val;
3112 if (ireq->i_val && (vap->iv_htcaps & IEEE80211_HTC_AMSDU) == 0)
3114 if (ireq->i_val & 1)
3118 if (ireq->i_val & 2)
3128 vap->iv_amsdu_limit = ireq->i_val; /* XXX truncation? */
3131 if (ireq->i_val) {
3142 if (ireq->i_val) {
3154 error = ieee80211_ioctl_setregdomain(vap, ireq);
3157 error = ieee80211_ioctl_setroam(vap, ireq);
3160 error = ieee80211_ioctl_settxparams(vap, ireq);
3163 if (ireq->i_val) {
3174 if (ireq->i_val) {
3192 if (ireq->i_val)
3198 error = ieee80211_ioctl_setappie(vap, ireq);
3201 if (ireq->i_val) {
3209 if (ireq->i_val) {
3217 error = ieee80211_ioctl_chanswitch(vap, ireq);
3220 if (ireq->i_val) {
3231 if (ireq->i_val)
3239 if (ireq->i_val > IEEE80211_PROT_RTSCTS)
3241 ic->ic_htprotmode = ireq->i_val ?
3248 error = ieee80211_ioctl_setstavlan(vap, ireq);
3251 if ((ireq->i_val &~ IEEE80211_HTCAP_SMPS) != 0 ||
3252 ireq->i_val == 0x0008) /* value of 2 is reserved */
3254 if (ireq->i_val != IEEE80211_HTCAP_SMPS_OFF &&
3258 ireq->i_val;
3264 if (ireq->i_val != 0) {
3275 error = ieee80211_ioctl_setdefault(vap, ireq);
3293 vap->iv_reset(vap, ireq->i_type) : 0;