• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /freebsd-13-stable/sys/net80211/

Lines Matching refs:ireq

75     struct ieee80211req *ireq)
85 if (ireq->i_len != sizeof(ik))
87 error = copyin(ireq->i_data, &ik, sizeof(ik));
127 return copyout(&ik, ireq->i_data, sizeof(ik));
131 ieee80211_ioctl_getchanlist(struct ieee80211vap *vap, struct ieee80211req *ireq)
135 if (sizeof(ic->ic_chan_active) < ireq->i_len)
136 ireq->i_len = sizeof(ic->ic_chan_active);
137 return copyout(&ic->ic_chan_active, ireq->i_data, ireq->i_len);
141 ieee80211_ioctl_getchaninfo(struct ieee80211vap *vap, struct ieee80211req *ireq)
148 if (space > ireq->i_len)
149 space = ireq->i_len;
151 return copyout(&ic->ic_nchans, ireq->i_data, space);
156 struct ieee80211req *ireq, int req)
162 if (ireq->i_len < IEEE80211_ADDR_LEN)
168 error = copyin(ireq->i_data, wpaie->wpa_macaddr, IEEE80211_ADDR_LEN);
189 if (ireq->i_len > sizeof(struct ieee80211req_wpaie2))
190 ireq->i_len = sizeof(struct ieee80211req_wpaie2);
200 if (ireq->i_len > sizeof(struct ieee80211req_wpaie))
201 ireq->i_len = sizeof(struct ieee80211req_wpaie);
204 error = copyout(wpaie, ireq->i_data, ireq->i_len);
211 ieee80211_ioctl_getstastats(struct ieee80211vap *vap, struct ieee80211req *ireq)
218 if (ireq->i_len < off)
220 error = copyin(ireq->i_data, macaddr, IEEE80211_ADDR_LEN);
226 if (ireq->i_len > sizeof(struct ieee80211req_sta_stats))
227 ireq->i_len = sizeof(struct ieee80211req_sta_stats);
229 error = copyout(&ni->ni_stats, (uint8_t *) ireq->i_data + off,
230 ireq->i_len - off);
317 struct ieee80211req *ireq)
322 if (ireq->i_len < sizeof(struct scanreq))
328 if (req.space > ireq->i_len)
329 req.space = ireq->i_len;
342 ireq->i_len = space - req.space;
343 error = copyout(p, ireq->i_data, ireq->i_len);
346 ireq->i_len = 0;
461 getstainfo_common(struct ieee80211vap *vap, struct ieee80211req *ireq,
477 if (req.space > ireq->i_len)
478 req.space = ireq->i_len;
494 ireq->i_len = space - req.space;
495 error = copyout(p, (uint8_t *) ireq->i_data+off, ireq->i_len);
498 ireq->i_len = 0;
506 ieee80211_ioctl_getstainfo(struct ieee80211vap *vap, struct ieee80211req *ireq)
513 if (ireq->i_len < sizeof(struct ieee80211req_sta_req))
515 error = copyin(ireq->i_data, macaddr, IEEE80211_ADDR_LEN);
525 return getstainfo_common(vap, ireq, ni, off);
529 ieee80211_ioctl_getstatxpow(struct ieee80211vap *vap, struct ieee80211req *ireq)
535 if (ireq->i_len != sizeof(txpow))
537 error = copyin(ireq->i_data, &txpow, sizeof(txpow));
544 error = copyout(&txpow, ireq->i_data, sizeof(txpow));
550 ieee80211_ioctl_getwmeparam(struct ieee80211vap *vap, struct ieee80211req *ireq)
560 ac = (ireq->i_len & IEEE80211_WMEPARAM_VAL);
563 if (ireq->i_len & IEEE80211_WMEPARAM_BSS)
567 switch (ireq->i_type) {
569 ireq->i_val = wmep->wmep_logcwmin;
572 ireq->i_val = wmep->wmep_logcwmax;
575 ireq->i_val = wmep->wmep_aifsn;
578 ireq->i_val = wmep->wmep_txopLimit;
582 ireq->i_val = wmep->wmep_acm;
586 ireq->i_val = !wmep->wmep_noackPolicy;
593 ieee80211_ioctl_getmaccmd(struct ieee80211vap *vap, struct ieee80211req *ireq)
597 return (acl == NULL ? EINVAL : acl->iac_getioctl(vap, ireq));
601 ieee80211_ioctl_getcurchan(struct ieee80211vap *vap, struct ieee80211req *ireq)
606 if (ireq->i_len != sizeof(struct ieee80211_channel))
617 return copyout(c, ireq->i_data, sizeof(*c));
621 getappie(const struct ieee80211_appie *aie, struct ieee80211req *ireq)
626 if (ireq->i_len > aie->ie_len)
627 ireq->i_len = aie->ie_len;
628 return copyout(aie->ie_data, ireq->i_data, ireq->i_len);
632 ieee80211_ioctl_getappie(struct ieee80211vap *vap, struct ieee80211req *ireq)
636 fc0 = ireq->i_val & 0xff;
642 return getappie(vap->iv_appie_beacon, ireq);
644 return getappie(vap->iv_appie_proberesp, ireq);
646 return getappie(vap->iv_appie_assocresp, ireq);
648 return getappie(vap->iv_appie_probereq, ireq);
650 return getappie(vap->iv_appie_assocreq, ireq);
652 return getappie(vap->iv_appie_wpa, ireq);
659 const struct ieee80211req *ireq)
663 if (ireq->i_len != sizeof(ic->ic_regdomain))
665 return copyout(&ic->ic_regdomain, ireq->i_data,
671 const struct ieee80211req *ireq)
673 size_t len = ireq->i_len;
677 return copyout(vap->iv_roamparms, ireq->i_data, len);
682 const struct ieee80211req *ireq)
684 size_t len = ireq->i_len;
688 return copyout(vap->iv_txparms, ireq->i_data, len);
693 const struct ieee80211req *ireq)
699 maxchans = 1 + ((ireq->i_len - sizeof(struct ieee80211_devcaps_req)) /
721 error = copyout(dc, ireq->i_data, IEEE80211_DEVCAPS_SPACE(dc));
727 ieee80211_ioctl_getstavlan(struct ieee80211vap *vap, struct ieee80211req *ireq)
733 if (ireq->i_len != sizeof(vlan))
735 error = copyin(ireq->i_data, &vlan, sizeof(vlan));
746 error = copyout(&vlan, ireq->i_data, sizeof(vlan));
755 dummy_ioctl_get(struct ieee80211vap *vap, struct ieee80211req *ireq)
762 ieee80211_ioctl_getdefault(struct ieee80211vap *vap, struct ieee80211req *ireq)
768 error = (*get)(vap, ireq);
777 struct ieee80211req *ireq)
785 switch (ireq->i_type) {
788 if (len > ireq->i_len)
790 ireq->i_len = len;
791 error = copyout(ic->ic_name, ireq->i_data, ireq->i_len);
797 ireq->i_len = vap->iv_des_ssid[0].len;
798 memcpy(tmpssid, vap->iv_des_ssid[0].ssid, ireq->i_len);
801 ireq->i_len = vap->iv_bss->ni_esslen;
802 memcpy(tmpssid, vap->iv_bss->ni_essid, ireq->i_len);
805 error = copyout(tmpssid, ireq->i_data, ireq->i_len);
808 ireq->i_val = 1;
812 ireq->i_val = IEEE80211_WEP_OFF;
814 ireq->i_val = IEEE80211_WEP_ON;
816 ireq->i_val = IEEE80211_WEP_MIXED;
819 kid = (u_int) ireq->i_val;
829 ireq->i_len = len;
830 error = copyout(tmpkey, ireq->i_data, len);
833 ireq->i_val = IEEE80211_WEP_NKID;
836 ireq->i_val = vap->iv_def_txkey;
840 ireq->i_val = IEEE80211_AUTH_WPA;
842 ireq->i_val = vap->iv_bss->ni_authmode;
845 ireq->i_val = ieee80211_chan2ieee(ic, ic->ic_curchan);
849 ireq->i_val = IEEE80211_POWERSAVE_ON;
851 ireq->i_val = IEEE80211_POWERSAVE_OFF;
854 ireq->i_val = ic->ic_lintval;
857 ireq->i_val = vap->iv_rtsthreshold;
860 ireq->i_val = vap->iv_protmode;
870 ireq->i_val = 2*ic->ic_curchan->ic_maxregpower;
871 if (ireq->i_val > ic->ic_txpowlimit)
872 ireq->i_val = ic->ic_txpowlimit;
873 if (ireq->i_val > ic->ic_curchan->ic_maxpower)
874 ireq->i_val = ic->ic_curchan->ic_maxpower;
879 ireq->i_val = 1;
882 ireq->i_val = 2;
885 ireq->i_val = 3;
888 ireq->i_val = 0;
893 error = ieee80211_ioctl_getchanlist(vap, ireq);
896 ireq->i_val = vap->iv_roaming;
899 ireq->i_val = (vap->iv_flags & IEEE80211_F_PRIVACY) != 0;
902 ireq->i_val = (vap->iv_flags & IEEE80211_F_DROPUNENC) != 0;
905 ireq->i_val = (vap->iv_flags & IEEE80211_F_COUNTERM) != 0;
908 ireq->i_val = (vap->iv_flags & IEEE80211_F_WME) != 0;
911 ireq->i_val = (vap->iv_flags & IEEE80211_F_HIDESSID) != 0;
914 ireq->i_val = (vap->iv_flags & IEEE80211_F_NOBRIDGE) == 0;
917 error = ieee80211_ioctl_getkey(cmd, vap, ireq);
920 error = ieee80211_ioctl_getchaninfo(vap, ireq);
923 if (ireq->i_len != IEEE80211_ADDR_LEN)
928 ireq->i_data, ireq->i_len);
930 error = copyout(vap->iv_des_bssid, ireq->i_data,
931 ireq->i_len);
935 error = ieee80211_ioctl_getwpaie(vap, ireq, ireq->i_type);
938 error = ieee80211_ioctl_getscanresults(vap, ireq);
941 error = ieee80211_ioctl_getstastats(vap, ireq);
944 ireq->i_val = vap->iv_bss->ni_txpower;
947 error = ieee80211_ioctl_getstatxpow(vap, ireq);
950 error = ieee80211_ioctl_getstainfo(vap, ireq);
958 error = ieee80211_ioctl_getwmeparam(vap, ireq);
961 ireq->i_val = vap->iv_dtim_period;
965 ireq->i_val = vap->iv_bss->ni_intval;
968 ireq->i_val = (vap->iv_flags & IEEE80211_F_PUREG) != 0;
971 ireq->i_val = vap->iv_quiet;
974 ireq->i_val = vap->iv_quiet_count;
977 ireq->i_val = vap->iv_quiet_period;
980 ireq->i_val = vap->iv_quiet_duration;
983 ireq->i_val = vap->iv_quiet_offset;
986 ireq->i_val = (vap->iv_flags & IEEE80211_F_BGSCAN) != 0;
989 ireq->i_val = vap->iv_bgscanidle*hz/1000; /* ms */
992 ireq->i_val = vap->iv_bgscanintvl/hz; /* seconds */
995 ireq->i_val = vap->iv_scanvalid/hz; /* seconds */
998 ireq->i_val = vap->iv_fragthreshold;
1001 error = ieee80211_ioctl_getmaccmd(vap, ireq);
1004 ireq->i_val = (vap->iv_flags & IEEE80211_F_BURST) != 0;
1007 ireq->i_val = vap->iv_bmissthreshold;
1010 error = ieee80211_ioctl_getcurchan(vap, ireq);
1013 ireq->i_val = 0;
1015 ireq->i_val |= IEEE80211_HTCAP_SHORTGI20;
1017 ireq->i_val |= IEEE80211_HTCAP_SHORTGI40;
1020 ireq->i_val = 0;
1022 ireq->i_val |= 1;
1024 ireq->i_val |= 2;
1029 ireq->i_val = vap->iv_ampdu_rxmax;
1035 ireq->i_val = _IEEE80211_MASKSHIFT( vap->iv_bss->ni_htparam,
1038 ireq->i_val = vap->iv_ampdu_limit;
1048 ireq->i_val = _IEEE80211_MASKSHIFT(vap->iv_bss->ni_htparam,
1051 ireq->i_val = vap->iv_ampdu_density;
1054 ireq->i_val = 0;
1056 ireq->i_val |= 1;
1058 ireq->i_val |= 2;
1061 ireq->i_val = vap->iv_amsdu_limit; /* XXX truncation? */
1064 ireq->i_val = (vap->iv_flags_ht & IEEE80211_FHT_PUREN) != 0;
1067 ireq->i_val = (vap->iv_flags & IEEE80211_F_DOTH) != 0;
1070 error = ieee80211_ioctl_getregdomain(vap, ireq);
1073 error = ieee80211_ioctl_getroam(vap, ireq);
1076 error = ieee80211_ioctl_gettxparams(vap, ireq);
1079 ireq->i_val = (vap->iv_flags_ht & IEEE80211_FHT_HTCOMPAT) != 0;
1082 ireq->i_val = (vap->iv_flags & IEEE80211_F_DWDS) != 0;
1085 ireq->i_val = (vap->iv_flags_ext & IEEE80211_FEXT_INACT) != 0;
1088 error = ieee80211_ioctl_getappie(vap, ireq);
1091 ireq->i_val = (vap->iv_flags_ext & IEEE80211_FEXT_WPS) != 0;
1094 ireq->i_val = (vap->iv_flags_ext & IEEE80211_FEXT_TSN) != 0;
1097 ireq->i_val = (vap->iv_flags_ext & IEEE80211_FEXT_DFS) != 0;
1100 ireq->i_val = (vap->iv_flags_ext & IEEE80211_FEXT_DOTD) != 0;
1103 error = ieee80211_ioctl_getdevcaps(ic, ireq);
1106 ireq->i_val = vap->iv_htprotmode;
1110 ireq->i_val = 1;
1112 ireq->i_val |= 2;
1114 ireq->i_val = 0;
1117 error = ieee80211_ioctl_getstavlan(vap, ireq);
1123 ireq->i_val = IEEE80211_HTCAP_SMPS_DYNAMIC;
1125 ireq->i_val = IEEE80211_HTCAP_SMPS_ENA;
1127 ireq->i_val = IEEE80211_HTCAP_SMPS_OFF;
1129 ireq->i_val = vap->iv_htcaps & IEEE80211_HTCAP_SMPS;
1134 ireq->i_val =
1137 ireq->i_val =
1141 ireq->i_val = 0;
1143 ireq->i_val |= 1;
1145 ireq->i_val |= 2;
1148 ireq->i_val = 0;
1150 ireq->i_val |= 1;
1152 ireq->i_val |= 2;
1155 ireq->i_val = 0;
1157 ireq->i_val = 1;
1160 ireq->i_val = vap->iv_flags_vht & IEEE80211_FVHT_MASK;
1163 error = ieee80211_ioctl_getdefault(vap, ireq);
1170 ieee80211_ioctl_setkey(struct ieee80211vap *vap, struct ieee80211req *ireq)
1178 if (ireq->i_len != sizeof(ik))
1180 error = copyin(ireq->i_data, &ik, sizeof(ik));
1252 ieee80211_ioctl_delkey(struct ieee80211vap *vap, struct ieee80211req *ireq)
1257 if (ireq->i_len != sizeof(dk))
1259 error = copyin(ireq->i_data, &dk, sizeof(dk));
1621 ieee80211_ioctl_setmlme(struct ieee80211vap *vap, struct ieee80211req *ireq)
1626 if (ireq->i_len != sizeof(mlme))
1628 error = copyin(ireq->i_data, &mlme, sizeof(mlme));
1646 ieee80211_ioctl_macmac(struct ieee80211vap *vap, struct ieee80211req *ireq)
1652 if (ireq->i_len != sizeof(mac))
1654 error = copyin(ireq->i_data, mac, ireq->i_len);
1663 if (ireq->i_type == IEEE80211_IOC_ADDMAC)
1671 ieee80211_ioctl_setmaccmd(struct ieee80211vap *vap, struct ieee80211req *ireq)
1675 switch (ireq->i_val) {
1686 acl->iac_setpolicy(vap, ireq->i_val);
1703 return acl->iac_setioctl(vap, ireq);
1709 ieee80211_ioctl_setchanlist(struct ieee80211vap *vap, struct ieee80211req *ireq)
1715 if (ireq->i_len > sizeof(ic->ic_chan_active))
1716 ireq->i_len = sizeof(ic->ic_chan_active);
1717 list = IEEE80211_MALLOC(ireq->i_len + IEEE80211_CHAN_BYTES, M_TEMP,
1721 error = copyin(ireq->i_data, list, ireq->i_len);
1727 chanlist = list + ireq->i_len; /* NB: zero'd already */
1728 maxchan = ireq->i_len * NBBY;
1755 ieee80211_ioctl_setstastats(struct ieee80211vap *vap, struct ieee80211req *ireq)
1766 if (ireq->i_len < IEEE80211_ADDR_LEN)
1768 error = copyin(ireq->i_data, macaddr, IEEE80211_ADDR_LEN);
1781 ieee80211_ioctl_setstatxpow(struct ieee80211vap *vap, struct ieee80211req *ireq)
1787 if (ireq->i_len != sizeof(txpow))
1789 error = copyin(ireq->i_data, &txpow, sizeof(txpow));
1801 ieee80211_ioctl_setwmeparam(struct ieee80211vap *vap, struct ieee80211req *ireq)
1811 isbss = (ireq->i_len & IEEE80211_WMEPARAM_BSS);
1812 ac = (ireq->i_len & IEEE80211_WMEPARAM_VAL);
1823 switch (ireq->i_type) {
1825 wmep->wmep_logcwmin = ireq->i_val;
1827 chanp->wmep_logcwmin = ireq->i_val;
1830 wmep->wmep_logcwmax = ireq->i_val;
1832 chanp->wmep_logcwmax = ireq->i_val;
1835 wmep->wmep_aifsn = ireq->i_val;
1837 chanp->wmep_aifsn = ireq->i_val;
1840 wmep->wmep_txopLimit = ireq->i_val;
1842 chanp->wmep_txopLimit = ireq->i_val;
1845 wmep->wmep_acm = ireq->i_val;
1847 chanp->wmep_acm = ireq->i_val;
1851 (ireq->i_val) == 0;
2047 const struct ieee80211req *ireq)
2053 if (ireq->i_val == 0 ||
2054 ireq->i_val == (int16_t) IEEE80211_CHAN_ANY) {
2059 c = findchannel(ic, ireq->i_val, vap->iv_des_mode);
2061 c = findchannel(ic, ireq->i_val,
2085 c2 = findchannel(ic, ireq->i_val,
2094 c2 = findchannel(ic, ireq->i_val,
2102 c2 = findchannel(ic, ireq->i_val,
2110 c2 = findchannel(ic, ireq->i_val,
2121 c2 = findchannel(ic, ireq->i_val,
2141 const struct ieee80211req *ireq)
2147 if (ireq->i_len != sizeof(chan))
2149 error = copyin(ireq->i_data, &chan, sizeof(chan));
2166 const struct ieee80211req *ireq)
2171 nchans = 1 + ((ireq->i_len - sizeof(struct ieee80211_regdomain_req)) /
2176 ireq->i_len, nchans);
2187 error = copyin(ireq->i_data, reg, IEEE80211_REGDOMAIN_SIZE(nchans));
2234 const struct ieee80211req *ireq)
2243 if (ireq->i_len != sizeof(vap->iv_roamparms))
2251 error = copyin(ireq->i_data, parms, ireq->i_len);
2301 const struct ieee80211req *ireq)
2311 if (ireq->i_len > sizeof(parms))
2313 error = copyin(ireq->i_data, &parms, ireq->i_len);
2316 nmodes = ireq->i_len / sizeof(struct ieee80211_txparam);
2369 setappie(struct ieee80211_appie **aie, const struct ieee80211req *ireq)
2375 if (ireq->i_len == 0) { /* delete any existing ie */
2382 if (!(2 <= ireq->i_len && ireq->i_len <= IEEE80211_MAX_APPIE))
2393 sizeof(struct ieee80211_appie) + ireq->i_len, M_80211_NODE_IE,
2398 error = copyin(ireq->i_data, napp->ie_data, ireq->i_len);
2403 napp->ie_len = ireq->i_len;
2424 const struct ieee80211req *ireq, int fc0)
2437 error = setappie(&vap->iv_appie_beacon, ireq);
2442 error = setappie(&vap->iv_appie_proberesp, ireq);
2446 error = setappie(&vap->iv_appie_assocresp, ireq);
2451 error = setappie(&vap->iv_appie_probereq, ireq);
2455 error = setappie(&vap->iv_appie_assocreq, ireq);
2460 error = setappie(&vap->iv_appie_wpa, ireq);
2502 const struct ieee80211req *ireq)
2508 fc0 = ireq->i_val & 0xff;
2513 error = ieee80211_ioctl_setappie_locked(vap, ireq, fc0);
2519 ieee80211_ioctl_chanswitch(struct ieee80211vap *vap, struct ieee80211req *ireq)
2526 if (ireq->i_len != sizeof(csr))
2528 error = copyin(ireq->i_data, &csr, sizeof(csr));
2652 ieee80211_ioctl_scanreq(struct ieee80211vap *vap, struct ieee80211req *ireq)
2657 if (ireq->i_len != sizeof(*sr))
2663 error = copyin(ireq->i_data, sr, sizeof(*sr));
2673 ieee80211_ioctl_setstavlan(struct ieee80211vap *vap, struct ieee80211req *ireq)
2679 if (ireq->i_len != sizeof(vlan))
2681 error = copyin(ireq->i_data, &vlan, sizeof(vlan));
2716 dummy_ioctl_set(struct ieee80211vap *vap, struct ieee80211req *ireq)
2723 ieee80211_ioctl_setdefault(struct ieee80211vap *vap, struct ieee80211req *ireq)
2729 error = (*set)(vap, ireq);
2737 ieee80211_ioctl_set80211(struct ieee80211vap *vap, u_long cmd, struct ieee80211req *ireq)
2750 switch (ireq->i_type) {
2752 if (ireq->i_val != 0 ||
2753 ireq->i_len > IEEE80211_NWID_LEN)
2755 error = copyin(ireq->i_data, tmpssid, ireq->i_len);
2759 vap->iv_des_ssid[0].len = ireq->i_len;
2760 memcpy(vap->iv_des_ssid[0].ssid, tmpssid, ireq->i_len);
2761 vap->iv_des_nssid = (ireq->i_len > 0);
2765 switch (ireq->i_val) {
2782 kid = (u_int) ireq->i_val;
2786 if (ireq->i_len == 0) {
2791 if (ireq->i_len > sizeof(tmpkey))
2794 error = copyin(ireq->i_data, tmpkey, ireq->i_len);
2801 k->wk_keylen = ireq->i_len;
2811 kid = (u_int) ireq->i_val;
2828 switch (ireq->i_val) {
2834 auth = ieee80211_authenticator_get(ireq->i_val);
2841 switch (ireq->i_val) {
2844 ireq->i_val = IEEE80211_AUTH_8021X;
2862 vap->iv_bss->ni_authmode = ireq->i_val;
2868 error = ieee80211_ioctl_setchannel(vap, ireq);
2871 switch (ireq->i_val) {
2892 if (ireq->i_val < 0)
2894 ic->ic_lintval = ireq->i_val;
2898 if (!(IEEE80211_RTS_MIN <= ireq->i_val &&
2899 ireq->i_val <= IEEE80211_RTS_MAX))
2901 vap->iv_rtsthreshold = ireq->i_val;
2905 if (ireq->i_val > IEEE80211_PROT_RTSCTS)
2907 vap->iv_protmode = (enum ieee80211_protmode)ireq->i_val;
2918 if (!(IEEE80211_TXPOWER_MIN <= ireq->i_val &&
2919 ireq->i_val <= IEEE80211_TXPOWER_MAX))
2921 ic->ic_txpowlimit = ireq->i_val;
2925 if (!(IEEE80211_ROAMING_DEVICE <= ireq->i_val &&
2926 ireq->i_val <= IEEE80211_ROAMING_MANUAL))
2928 vap->iv_roaming = (enum ieee80211_roamingmode)ireq->i_val;
2932 if (ireq->i_val) {
2940 if (ireq->i_val)
2947 error = ieee80211_ioctl_setkey(vap, ireq);
2950 error = ieee80211_ioctl_delkey(vap, ireq);
2953 error = ieee80211_ioctl_setmlme(vap, ireq);
2956 if (ireq->i_val) {
2965 if (ireq->i_val > 3)
2969 switch (ireq->i_val) {
2995 if (ireq->i_val) {
3004 if (ireq->i_val)
3011 if (ireq->i_val == 0)
3017 if (ireq->i_len != sizeof(tmpbssid))
3019 error = copyin(ireq->i_data, tmpbssid, ireq->i_len);
3030 error = ieee80211_ioctl_setchanlist(vap, ireq);
3057 error = ieee80211_ioctl_scanreq(vap, ireq);
3065 if (ireq->i_val & 1)
3069 if (ireq->i_val & 2)
3077 error = ieee80211_ioctl_macmac(vap, ireq);
3080 error = ieee80211_ioctl_setmaccmd(vap, ireq);
3083 error = ieee80211_ioctl_setstastats(vap, ireq);
3086 error = ieee80211_ioctl_setstatxpow(vap, ireq);
3094 error = ieee80211_ioctl_setwmeparam(vap, ireq);
3101 if (IEEE80211_DTIM_MIN <= ireq->i_val &&
3102 ireq->i_val <= IEEE80211_DTIM_MAX) {
3103 vap->iv_dtim_period = ireq->i_val;
3113 if (IEEE80211_BINTVAL_MIN <= ireq->i_val &&
3114 ireq->i_val <= IEEE80211_BINTVAL_MAX) {
3115 ic->ic_bintval = ireq->i_val;
3121 if (ireq->i_val)
3130 vap->iv_quiet= ireq->i_val;
3133 vap->iv_quiet_count=ireq->i_val;
3136 vap->iv_quiet_period=ireq->i_val;
3139 vap->iv_quiet_offset=ireq->i_val;
3142 if(ireq->i_val < vap->iv_bss->ni_intval)
3143 vap->iv_quiet_duration = ireq->i_val;
3148 if (ireq->i_val) {
3156 if (ireq->i_val >= IEEE80211_BGSCAN_IDLE_MIN)
3157 vap->iv_bgscanidle = ireq->i_val*hz/1000;
3162 if (ireq->i_val >= IEEE80211_BGSCAN_INTVAL_MIN)
3163 vap->iv_bgscanintvl = ireq->i_val*hz;
3168 if (ireq->i_val >= IEEE80211_SCAN_VALID_MIN)
3169 vap->iv_scanvalid = ireq->i_val*hz;
3175 ireq->i_val != IEEE80211_FRAG_MAX)
3177 if (!(IEEE80211_FRAG_MIN <= ireq->i_val &&
3178 ireq->i_val <= IEEE80211_FRAG_MAX))
3180 vap->iv_fragthreshold = ireq->i_val;
3184 if (ireq->i_val) {
3193 if (!(IEEE80211_HWBMISS_MIN <= ireq->i_val &&
3194 ireq->i_val <= IEEE80211_HWBMISS_MAX))
3196 vap->iv_bmissthreshold = ireq->i_val;
3200 error = ieee80211_ioctl_setcurchan(vap, ireq);
3203 if (ireq->i_val) {
3206 if (((ireq->i_val ^ vap->iv_htcaps) & IEEE80211_HTCAP_SHORTGI) != 0)
3208 if (ireq->i_val & IEEE80211_HTCAP_SHORTGI20)
3210 if (ireq->i_val & IEEE80211_HTCAP_SHORTGI40)
3219 if (ireq->i_val && (vap->iv_htcaps & IEEE80211_HTC_AMPDU) == 0)
3221 if (ireq->i_val & 1)
3225 if (ireq->i_val & 2)
3235 if (!(IEEE80211_HTCAP_MAXRXAMPDU_8K <= ireq->i_val &&
3236 ireq->i_val <= IEEE80211_HTCAP_MAXRXAMPDU_64K))
3239 vap->iv_ampdu_rxmax = ireq->i_val;
3241 vap->iv_ampdu_limit = ireq->i_val;
3245 if (!(IEEE80211_HTCAP_MPDUDENSITY_NA <= ireq->i_val &&
3246 ireq->i_val <= IEEE80211_HTCAP_MPDUDENSITY_16))
3248 vap->iv_ampdu_density = ireq->i_val;
3252 if (ireq->i_val && (vap->iv_htcaps & IEEE80211_HTC_AMSDU) == 0)
3254 if (ireq->i_val & 1)
3258 if (ireq->i_val & 2)
3268 vap->iv_amsdu_limit = ireq->i_val; /* XXX truncation? */
3271 if (ireq->i_val) {
3282 if (ireq->i_val) {
3294 error = ieee80211_ioctl_setregdomain(vap, ireq);
3297 error = ieee80211_ioctl_setroam(vap, ireq);
3300 error = ieee80211_ioctl_settxparams(vap, ireq);
3303 if (ireq->i_val) {
3314 if (ireq->i_val) {
3332 if (ireq->i_val)
3338 error = ieee80211_ioctl_setappie(vap, ireq);
3341 if (ireq->i_val) {
3349 if (ireq->i_val) {
3357 error = ieee80211_ioctl_chanswitch(vap, ireq);
3360 if (ireq->i_val) {
3371 if (ireq->i_val)
3379 if (ireq->i_val > IEEE80211_PROT_RTSCTS)
3381 vap->iv_htprotmode = ireq->i_val ?
3390 error = ieee80211_ioctl_setstavlan(vap, ireq);
3393 if ((ireq->i_val &~ IEEE80211_HTCAP_SMPS) != 0 ||
3394 ireq->i_val == 0x0008) /* value of 2 is reserved */
3396 if (ireq->i_val != IEEE80211_HTCAP_SMPS_OFF &&
3400 ireq->i_val;
3406 if (ireq->i_val != 0) {
3418 if ((ireq->i_val & 1) &&
3421 if ((ireq->i_val & 2) &&
3426 if (ireq->i_val & 1)
3432 if (ireq->i_val & 2)
3443 if ((ireq->i_val & 1) &&
3446 if ((ireq->i_val & 2) &&
3451 if (ireq->i_val & 1)
3457 if (ireq->i_val & 2)
3469 if (ireq->i_val == 0)
3471 else if (ireq->i_val == 1)
3479 if (ireq->i_val & IEEE80211_FVHT_VHT)
3484 if (ireq->i_val & IEEE80211_FVHT_USEVHT40)
3489 if (ireq->i_val & IEEE80211_FVHT_USEVHT80)
3494 if (ireq->i_val & IEEE80211_FVHT_USEVHT160)
3499 if (ireq->i_val & IEEE80211_FVHT_USEVHT80P80)
3508 error = ieee80211_ioctl_setdefault(vap, ireq);
3526 vap->iv_reset(vap, ireq->i_type) : 0;