Lines Matching defs: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_flags & IEEE80211_F_BGSCAN) != 0;
979 ireq->i_val = vap->iv_bgscanidle*hz/1000; /* ms */
982 ireq->i_val = vap->iv_bgscanintvl/hz; /* seconds */
985 ireq->i_val = vap->iv_scanvalid/hz; /* seconds */
988 ireq->i_val = vap->iv_fragthreshold;
991 error = ieee80211_ioctl_getmaccmd(vap, ireq);
994 ireq->i_val = (vap->iv_flags & IEEE80211_F_BURST) != 0;
997 ireq->i_val = vap->iv_bmissthreshold;
1000 error = ieee80211_ioctl_getcurchan(vap, ireq);
1003 ireq->i_val = 0;
1005 ireq->i_val |= IEEE80211_HTCAP_SHORTGI20;
1007 ireq->i_val |= IEEE80211_HTCAP_SHORTGI40;
1010 ireq->i_val = 0;
1012 ireq->i_val |= 1;
1014 ireq->i_val |= 2;
1018 ireq->i_val = vap->iv_ampdu_rxmax;
1020 ireq->i_val = MS(vap->iv_bss->ni_htparam,
1023 ireq->i_val = vap->iv_ampdu_limit;
1028 ireq->i_val = MS(vap->iv_bss->ni_htparam,
1031 ireq->i_val = vap->iv_ampdu_density;
1034 ireq->i_val = 0;
1036 ireq->i_val |= 1;
1038 ireq->i_val |= 2;
1041 ireq->i_val = vap->iv_amsdu_limit; /* XXX truncation? */
1044 ireq->i_val = (vap->iv_flags_ht & IEEE80211_FHT_PUREN) != 0;
1047 ireq->i_val = (vap->iv_flags & IEEE80211_F_DOTH) != 0;
1050 error = ieee80211_ioctl_getregdomain(vap, ireq);
1053 error = ieee80211_ioctl_getroam(vap, ireq);
1056 error = ieee80211_ioctl_gettxparams(vap, ireq);
1059 ireq->i_val = (vap->iv_flags_ht & IEEE80211_FHT_HTCOMPAT) != 0;
1062 ireq->i_val = (vap->iv_flags & IEEE80211_F_DWDS) != 0;
1065 ireq->i_val = (vap->iv_flags_ext & IEEE80211_FEXT_INACT) != 0;
1068 error = ieee80211_ioctl_getappie(vap, ireq);
1071 ireq->i_val = (vap->iv_flags_ext & IEEE80211_FEXT_WPS) != 0;
1074 ireq->i_val = (vap->iv_flags_ext & IEEE80211_FEXT_TSN) != 0;
1077 ireq->i_val = (vap->iv_flags_ext & IEEE80211_FEXT_DFS) != 0;
1080 ireq->i_val = (vap->iv_flags_ext & IEEE80211_FEXT_DOTD) != 0;
1083 error = ieee80211_ioctl_getdevcaps(ic, ireq);
1086 ireq->i_val = ic->ic_htprotmode;
1090 ireq->i_val = 1;
1092 ireq->i_val |= 2;
1094 ireq->i_val = 0;
1097 error = ieee80211_ioctl_getstavlan(vap, ireq);
1103 ireq->i_val = IEEE80211_HTCAP_SMPS_DYNAMIC;
1105 ireq->i_val = IEEE80211_HTCAP_SMPS_ENA;
1107 ireq->i_val = IEEE80211_HTCAP_SMPS_OFF;
1109 ireq->i_val = vap->iv_htcaps & IEEE80211_HTCAP_SMPS;
1114 ireq->i_val =
1117 ireq->i_val =
1121 error = ieee80211_ioctl_getdefault(vap, ireq);
1129 ieee80211_ioctl_setkey(struct ieee80211vap *vap, struct ieee80211req *ireq)
1137 if (ireq->i_len != sizeof(ik))
1139 error = copyin(ireq->i_data, &ik, sizeof(ik));
1203 ieee80211_ioctl_delkey(struct ieee80211vap *vap, struct ieee80211req *ireq)
1208 if (ireq->i_len != sizeof(dk))
1210 error = copyin(ireq->i_data, &dk, sizeof(dk));
1532 ieee80211_ioctl_setmlme(struct ieee80211vap *vap, struct ieee80211req *ireq)
1537 if (ireq->i_len != sizeof(mlme))
1539 error = copyin(ireq->i_data, &mlme, sizeof(mlme));
1555 ieee80211_ioctl_macmac(struct ieee80211vap *vap, struct ieee80211req *ireq)
1561 if (ireq->i_len != sizeof(mac))
1563 error = copyin(ireq->i_data, mac, ireq->i_len);
1572 if (ireq->i_type == IEEE80211_IOC_ADDMAC)
1580 ieee80211_ioctl_setmaccmd(struct ieee80211vap *vap, struct ieee80211req *ireq)
1584 switch (ireq->i_val) {
1595 acl->iac_setpolicy(vap, ireq->i_val);
1612 return acl->iac_setioctl(vap, ireq);
1618 ieee80211_ioctl_setchanlist(struct ieee80211vap *vap, struct ieee80211req *ireq)
1624 if (ireq->i_len > sizeof(ic->ic_chan_active))
1625 ireq->i_len = sizeof(ic->ic_chan_active);
1626 list = malloc(ireq->i_len + IEEE80211_CHAN_BYTES, M_TEMP,
1630 error = copyin(ireq->i_data, list, ireq->i_len);
1636 chanlist = list + ireq->i_len; /* NB: zero'd already */
1637 maxchan = ireq->i_len * NBBY;
1664 ieee80211_ioctl_setstastats(struct ieee80211vap *vap, struct ieee80211req *ireq)
1675 if (ireq->i_len < IEEE80211_ADDR_LEN)
1677 error = copyin(ireq->i_data, macaddr, IEEE80211_ADDR_LEN);
1690 ieee80211_ioctl_setstatxpow(struct ieee80211vap *vap, struct ieee80211req *ireq)
1696 if (ireq->i_len != sizeof(txpow))
1698 error = copyin(ireq->i_data, &txpow, sizeof(txpow));
1710 ieee80211_ioctl_setwmeparam(struct ieee80211vap *vap, struct ieee80211req *ireq)
1720 isbss = (ireq->i_len & IEEE80211_WMEPARAM_BSS);
1721 ac = (ireq->i_len & IEEE80211_WMEPARAM_VAL);
1731 switch (ireq->i_type) {
1734 wmep->wmep_logcwmin = ireq->i_val;
1736 chanp->wmep_logcwmin = ireq->i_val;
1739 ireq->i_val;
1744 wmep->wmep_logcwmax = ireq->i_val;
1746 chanp->wmep_logcwmax = ireq->i_val;
1749 ireq->i_val;
1754 wmep->wmep_aifsn = ireq->i_val;
1756 chanp->wmep_aifsn = ireq->i_val;
1758 wmep->wmep_aifsn = chanp->wmep_aifsn = ireq->i_val;
1763 wmep->wmep_txopLimit = ireq->i_val;
1765 chanp->wmep_txopLimit = ireq->i_val;
1768 ireq->i_val;
1772 wmep->wmep_acm = ireq->i_val;
1774 chanp->wmep_acm = ireq->i_val;
1778 (ireq->i_val) == 0;
1955 const struct ieee80211req *ireq)
1961 if (ireq->i_val == 0 ||
1962 ireq->i_val == (int16_t) IEEE80211_CHAN_ANY) {
1967 c = findchannel(ic, ireq->i_val, vap->iv_des_mode);
1969 c = findchannel(ic, ireq->i_val,
1989 c2 = findchannel(ic, ireq->i_val,
1998 c2 = findchannel(ic, ireq->i_val,
2006 c2 = findchannel(ic, ireq->i_val,
2014 c2 = findchannel(ic, ireq->i_val,
2034 const struct ieee80211req *ireq)
2040 if (ireq->i_len != sizeof(chan))
2042 error = copyin(ireq->i_data, &chan, sizeof(chan));
2058 const struct ieee80211req *ireq)
2063 nchans = 1 + ((ireq->i_len - sizeof(struct ieee80211_regdomain_req)) /
2068 ireq->i_len, nchans);
2078 error = copyin(ireq->i_data, reg, IEEE80211_REGDOMAIN_SIZE(nchans));
2096 const struct ieee80211req *ireq)
2098 if (ireq->i_len != sizeof(vap->iv_roamparms))
2102 return copyin(ireq->i_data, vap->iv_roamparms,
2131 const struct ieee80211req *ireq)
2140 if (ireq->i_len > sizeof(parms))
2142 error = copyin(ireq->i_data, &parms, ireq->i_len);
2145 nmodes = ireq->i_len / sizeof(struct ieee80211_txparam);
2197 setappie(struct ieee80211_appie **aie, const struct ieee80211req *ireq)
2203 if (ireq->i_len == 0) { /* delete any existing ie */
2210 if (!(2 <= ireq->i_len && ireq->i_len <= IEEE80211_MAX_APPIE))
2221 sizeof(struct ieee80211_appie) + ireq->i_len, M_80211_NODE_IE, M_NOWAIT);
2225 error = copyin(ireq->i_data, napp->ie_data, ireq->i_len);
2230 napp->ie_len = ireq->i_len;
2251 const struct ieee80211req *ireq, int fc0)
2264 error = setappie(&vap->iv_appie_beacon, ireq);
2269 error = setappie(&vap->iv_appie_proberesp, ireq);
2273 error = setappie(&vap->iv_appie_assocresp, ireq);
2278 error = setappie(&vap->iv_appie_probereq, ireq);
2282 error = setappie(&vap->iv_appie_assocreq, ireq);
2287 error = setappie(&vap->iv_appie_wpa, ireq);
2329 const struct ieee80211req *ireq)
2335 fc0 = ireq->i_val & 0xff;
2340 error = ieee80211_ioctl_setappie_locked(vap, ireq, fc0);
2346 ieee80211_ioctl_chanswitch(struct ieee80211vap *vap, struct ieee80211req *ireq)
2353 if (ireq->i_len != sizeof(csr))
2355 error = copyin(ireq->i_data, &csr, sizeof(csr));
2482 ieee80211_ioctl_scanreq(struct ieee80211vap *vap, struct ieee80211req *ireq)
2492 if (ireq->i_len != sizeof(sr))
2494 error = copyin(ireq->i_data, &sr, sizeof(sr));
2501 ieee80211_ioctl_setstavlan(struct ieee80211vap *vap, struct ieee80211req *ireq)
2507 if (ireq->i_len != sizeof(vlan))
2509 error = copyin(ireq->i_data, &vlan, sizeof(vlan));
2544 dummy_ioctl_set(struct ieee80211vap *vap, struct ieee80211req *ireq)
2551 ieee80211_ioctl_setdefault(struct ieee80211vap *vap, struct ieee80211req *ireq)
2557 error = (*set)(vap, ireq);
2565 ieee80211_ioctl_set80211(struct ieee80211vap *vap, u_long cmd, struct ieee80211req *ireq)
2578 switch (ireq->i_type) {
2580 if (ireq->i_val != 0 ||
2581 ireq->i_len > IEEE80211_NWID_LEN)
2583 error = copyin(ireq->i_data, tmpssid, ireq->i_len);
2587 vap->iv_des_ssid[0].len = ireq->i_len;
2588 memcpy(vap->iv_des_ssid[0].ssid, tmpssid, ireq->i_len);
2589 vap->iv_des_nssid = (ireq->i_len > 0);
2593 switch (ireq->i_val) {
2610 kid = (u_int) ireq->i_val;
2614 if (ireq->i_len == 0) {
2619 if (ireq->i_len > sizeof(tmpkey))
2622 error = copyin(ireq->i_data, tmpkey, ireq->i_len);
2629 k->wk_keylen = ireq->i_len;
2639 kid = (u_int) ireq->i_val;
2646 switch (ireq->i_val) {
2652 auth = ieee80211_authenticator_get(ireq->i_val);
2659 switch (ireq->i_val) {
2662 ireq->i_val = IEEE80211_AUTH_8021X;
2680 vap->iv_bss->ni_authmode = ireq->i_val;
2686 error = ieee80211_ioctl_setchannel(vap, ireq);
2689 switch (ireq->i_val) {
2710 if (ireq->i_val < 0)
2712 ic->ic_lintval = ireq->i_val;
2716 if (!(IEEE80211_RTS_MIN <= ireq->i_val &&
2717 ireq->i_val <= IEEE80211_RTS_MAX))
2719 vap->iv_rtsthreshold = ireq->i_val;
2723 if (ireq->i_val > IEEE80211_PROT_RTSCTS)
2725 ic->ic_protmode = (enum ieee80211_protmode)ireq->i_val;
2734 if (!(IEEE80211_TXPOWER_MIN <= ireq->i_val &&
2735 ireq->i_val <= IEEE80211_TXPOWER_MAX))
2737 ic->ic_txpowlimit = ireq->i_val;
2741 if (!(IEEE80211_ROAMING_DEVICE <= ireq->i_val &&
2742 ireq->i_val <= IEEE80211_ROAMING_MANUAL))
2744 vap->iv_roaming = (enum ieee80211_roamingmode)ireq->i_val;
2748 if (ireq->i_val) {
2756 if (ireq->i_val)
2763 error = ieee80211_ioctl_setkey(vap, ireq);
2766 error = ieee80211_ioctl_delkey(vap, ireq);
2769 error = ieee80211_ioctl_setmlme(vap, ireq);
2772 if (ireq->i_val) {
2781 if (ireq->i_val > 3)
2785 switch (ireq->i_val) {
2808 if (ireq->i_val) {
2817 if (ireq->i_val)
2824 if (ireq->i_val == 0)
2830 if (ireq->i_len != sizeof(tmpbssid))
2832 error = copyin(ireq->i_data, tmpbssid, ireq->i_len);
2843 error = ieee80211_ioctl_setchanlist(vap, ireq);
2870 error = ieee80211_ioctl_scanreq(vap, ireq);
2878 if (ireq->i_val & 1)
2882 if (ireq->i_val & 2)
2890 error = ieee80211_ioctl_macmac(vap, ireq);
2893 error = ieee80211_ioctl_setmaccmd(vap, ireq);
2896 error = ieee80211_ioctl_setstastats(vap, ireq);
2899 error = ieee80211_ioctl_setstatxpow(vap, ireq);
2907 error = ieee80211_ioctl_setwmeparam(vap, ireq);
2914 if (IEEE80211_DTIM_MIN <= ireq->i_val &&
2915 ireq->i_val <= IEEE80211_DTIM_MAX) {
2916 vap->iv_dtim_period = ireq->i_val;
2926 if (IEEE80211_BINTVAL_MIN <= ireq->i_val &&
2927 ireq->i_val <= IEEE80211_BINTVAL_MAX) {
2928 ic->ic_bintval = ireq->i_val;
2934 if (ireq->i_val)
2943 if (ireq->i_val) {
2951 if (ireq->i_val >= IEEE80211_BGSCAN_IDLE_MIN)
2952 vap->iv_bgscanidle = ireq->i_val*hz/1000;
2957 if (ireq->i_val >= IEEE80211_BGSCAN_INTVAL_MIN)
2958 vap->iv_bgscanintvl = ireq->i_val*hz;
2963 if (ireq->i_val >= IEEE80211_SCAN_VALID_MIN)
2964 vap->iv_scanvalid = ireq->i_val*hz;
2970 ireq->i_val != IEEE80211_FRAG_MAX)
2972 if (!(IEEE80211_FRAG_MIN <= ireq->i_val &&
2973 ireq->i_val <= IEEE80211_FRAG_MAX))
2975 vap->iv_fragthreshold = ireq->i_val;
2979 if (ireq->i_val) {
2988 if (!(IEEE80211_HWBMISS_MIN <= ireq->i_val &&
2989 ireq->i_val <= IEEE80211_HWBMISS_MAX))
2991 vap->iv_bmissthreshold = ireq->i_val;
2995 error = ieee80211_ioctl_setcurchan(vap, ireq);
2998 if (ireq->i_val) {
3001 if (((ireq->i_val ^ vap->iv_htcaps) & IEEE80211_HTCAP_SHORTGI) != 0)
3003 if (ireq->i_val & IEEE80211_HTCAP_SHORTGI20)
3005 if (ireq->i_val & IEEE80211_HTCAP_SHORTGI40)
3014 if (ireq->i_val && (vap->iv_htcaps & IEEE80211_HTC_AMPDU) == 0)
3016 if (ireq->i_val & 1)
3020 if (ireq->i_val & 2)
3029 if (!(IEEE80211_HTCAP_MAXRXAMPDU_8K <= ireq->i_val &&
3030 ireq->i_val <= IEEE80211_HTCAP_MAXRXAMPDU_64K))
3033 vap->iv_ampdu_rxmax = ireq->i_val;
3035 vap->iv_ampdu_limit = ireq->i_val;
3039 if (!(IEEE80211_HTCAP_MPDUDENSITY_NA <= ireq->i_val &&
3040 ireq->i_val <= IEEE80211_HTCAP_MPDUDENSITY_16))
3042 vap->iv_ampdu_density = ireq->i_val;
3046 if (ireq->i_val && (vap->iv_htcaps & IEEE80211_HTC_AMSDU) == 0)
3048 if (ireq->i_val & 1)
3052 if (ireq->i_val & 2)
3062 vap->iv_amsdu_limit = ireq->i_val; /* XXX truncation? */
3065 if (ireq->i_val) {
3076 if (ireq->i_val) {
3088 error = ieee80211_ioctl_setregdomain(vap, ireq);
3091 error = ieee80211_ioctl_setroam(vap, ireq);
3094 error = ieee80211_ioctl_settxparams(vap, ireq);
3097 if (ireq->i_val) {
3108 if (ireq->i_val) {
3126 if (ireq->i_val)
3132 error = ieee80211_ioctl_setappie(vap, ireq);
3135 if (ireq->i_val) {
3143 if (ireq->i_val) {
3151 error = ieee80211_ioctl_chanswitch(vap, ireq);
3154 if (ireq->i_val) {
3165 if (ireq->i_val)
3173 if (ireq->i_val > IEEE80211_PROT_RTSCTS)
3175 ic->ic_htprotmode = ireq->i_val ?
3182 error = ieee80211_ioctl_setstavlan(vap, ireq);
3185 if ((ireq->i_val &~ IEEE80211_HTCAP_SMPS) != 0 ||
3186 ireq->i_val == 0x0008) /* value of 2 is reserved */
3188 if (ireq->i_val != IEEE80211_HTCAP_SMPS_OFF &&
3192 ireq->i_val;
3198 if (ireq->i_val != 0) {
3209 error = ieee80211_ioctl_setdefault(vap, ireq);
3227 vap->iv_reset(vap, ireq->i_type) : 0;