Lines Matching defs:ireq
874 ieee80211_ioctl_getkey(struct ieee80211com *ic, struct ieee80211req *ireq)
883 if (ireq->i_len != sizeof(ik))
885 error = copyin(ireq->i_data, &ik, sizeof(ik));
927 return copyout(&ik, ireq->i_data, sizeof(ik));
931 ieee80211_ioctl_getchanlist(struct ieee80211com *ic, struct ieee80211req *ireq)
933 size_t len = ireq->i_len;
937 return copyout(&ic->ic_chan_active, ireq->i_data, len);
941 ieee80211_ioctl_getchaninfo(struct ieee80211com *ic, struct ieee80211req *ireq)
967 if (space > ireq->i_len)
968 space = ireq->i_len;
969 error = copyout(chans, ireq->i_data, space);
975 ieee80211_ioctl_getwpaie(struct ieee80211com *ic, struct ieee80211req *ireq)
981 if (ireq->i_len < IEEE80211_ADDR_LEN)
983 error = copyin(ireq->i_data, wpaie.wpa_macaddr, IEEE80211_ADDR_LEN);
997 if (ireq->i_len > sizeof(wpaie))
998 ireq->i_len = sizeof(wpaie);
999 return copyout(&wpaie, ireq->i_data, ireq->i_len);
1003 ieee80211_ioctl_getstastats(struct ieee80211com *ic, struct ieee80211req *ireq)
1010 if (ireq->i_len < off)
1012 error = copyin(ireq->i_data, macaddr, IEEE80211_ADDR_LEN);
1018 if (ireq->i_len > sizeof(struct ieee80211req_sta_stats))
1019 ireq->i_len = sizeof(struct ieee80211req_sta_stats);
1021 error = copyout(&ni->ni_stats, (u_int8_t *) ireq->i_data + off,
1022 ireq->i_len - off);
1069 ieee80211_ioctl_getscanresults(struct ieee80211com *ic, struct ieee80211req *ireq)
1082 p = ireq->i_data;
1083 space = ireq->i_len;
1113 ireq->i_len -= space;
1215 ieee80211_ioctl_getstainfo(struct ieee80211com *ic, struct ieee80211req *ireq)
1220 if (ireq->i_len < sizeof(struct stainforeq))
1226 if (req.space > ireq->i_len)
1227 req.space = ireq->i_len;
1236 ireq->i_len = space - req.space;
1237 error = copyout(p, ireq->i_data, ireq->i_len);
1240 ireq->i_len = 0;
1246 ieee80211_ioctl_getstatxpow(struct ieee80211com *ic, struct ieee80211req *ireq)
1252 if (ireq->i_len != sizeof(txpow))
1254 error = copyin(ireq->i_data, &txpow, sizeof(txpow));
1261 error = copyout(&txpow, ireq->i_data, sizeof(txpow));
1267 ieee80211_ioctl_getwmeparam(struct ieee80211com *ic, struct ieee80211req *ireq)
1276 ac = (ireq->i_len & IEEE80211_WMEPARAM_VAL);
1279 if (ireq->i_len & IEEE80211_WMEPARAM_BSS)
1283 switch (ireq->i_type) {
1285 ireq->i_val = wmep->wmep_logcwmin;
1288 ireq->i_val = wmep->wmep_logcwmax;
1291 ireq->i_val = wmep->wmep_aifsn;
1294 ireq->i_val = wmep->wmep_txopLimit;
1298 ireq->i_val = wmep->wmep_acm;
1302 ireq->i_val = !wmep->wmep_noackPolicy;
1309 ieee80211_ioctl_getmaccmd(struct ieee80211com *ic, struct ieee80211req *ireq)
1313 return (acl == NULL ? EINVAL : acl->iac_getioctl(ic, ireq));
1319 struct ieee80211req *ireq)
1328 switch (ireq->i_type) {
1333 ireq->i_len = ic->ic_des_esslen;
1334 memcpy(tmpssid, ic->ic_des_essid, ireq->i_len);
1337 ireq->i_len = ic->ic_bss->ni_esslen;
1339 ireq->i_len);
1342 error = copyout(tmpssid, ireq->i_data, ireq->i_len);
1345 ireq->i_val = 1;
1349 ireq->i_val = IEEE80211_WEP_OFF;
1351 ireq->i_val = IEEE80211_WEP_ON;
1353 ireq->i_val = IEEE80211_WEP_MIXED;
1356 kid = (u_int) ireq->i_val;
1369 ireq->i_len = len;
1370 error = copyout(tmpkey, ireq->i_data, len);
1373 ireq->i_val = IEEE80211_WEP_NKID;
1376 ireq->i_val = ic->ic_def_txkey;
1379 ireq->i_val = ieee80211_chan2ieee(ic, ic->ic_curchan);
1383 ireq->i_val = IEEE80211_POWERSAVE_ON;
1385 ireq->i_val = IEEE80211_POWERSAVE_OFF;
1388 ireq->i_val = ic->ic_lintval;
1391 if (ireq->i_len != IEEE80211_ADDR_LEN)
1396 ireq->i_data, ireq->i_len);
1427 struct ieee80211req *ireq)
1433 switch (ireq->i_type) {
1436 ireq->i_val = IEEE80211_AUTH_WPA;
1438 ireq->i_val = ic->ic_bss->ni_authmode;
1441 ireq->i_val = ic->ic_rtsthreshold;
1444 ireq->i_val = ic->ic_protmode;
1449 ireq->i_val = ic->ic_txpowlimit;
1452 ireq->i_val = rsn->rsn_mcastcipher;
1455 ireq->i_val = rsn->rsn_mcastkeylen;
1458 ireq->i_val = 0;
1461 ireq->i_val |= 1<<cap2cipher(m);
1464 ireq->i_val = rsn->rsn_ucastcipher;
1467 ireq->i_val = rsn->rsn_ucastkeylen;
1470 ireq->i_val = rsn->rsn_keymgmtset;
1473 ireq->i_val = rsn->rsn_caps;
1478 ireq->i_val = 1;
1481 ireq->i_val = 2;
1484 ireq->i_val = 3;
1487 ireq->i_val = 0;
1492 error = ieee80211_ioctl_getchanlist(ic, ireq);
1495 ireq->i_val = ic->ic_roaming;
1498 ireq->i_val = (ic->ic_flags & IEEE80211_F_PRIVACY) != 0;
1501 ireq->i_val = (ic->ic_flags & IEEE80211_F_DROPUNENC) != 0;
1504 ireq->i_val = (ic->ic_flags & IEEE80211_F_COUNTERM) != 0;
1507 ireq->i_val = ic->ic_caps>>16;
1508 ireq->i_len = ic->ic_caps&0xffff;
1511 ireq->i_val = (ic->ic_flags & IEEE80211_F_WME) != 0;
1514 ireq->i_val = (ic->ic_flags & IEEE80211_F_HIDESSID) != 0;
1517 ireq->i_val = (ic->ic_flags & IEEE80211_F_NOBRIDGE) == 0;
1523 if (ireq->i_len > ic->ic_opt_ie_len)
1524 ireq->i_len = ic->ic_opt_ie_len;
1525 error = copyout(ic->ic_opt_ie, ireq->i_data, ireq->i_len);
1528 error = ieee80211_ioctl_getkey(ic, ireq);
1531 error = ieee80211_ioctl_getchaninfo(ic, ireq);
1534 error = ieee80211_ioctl_getwpaie(ic, ireq);
1537 error = ieee80211_ioctl_getscanresults(ic, ireq);
1540 error = ieee80211_ioctl_getstastats(ic, ireq);
1543 ireq->i_val = ic->ic_bss->ni_txpower;
1546 error = ieee80211_ioctl_getstatxpow(ic, ireq);
1549 error = ieee80211_ioctl_getstainfo(ic, ireq);
1557 error = ieee80211_ioctl_getwmeparam(ic, ireq);
1560 ireq->i_val = ic->ic_dtim_period;
1564 ireq->i_val = ic->ic_bss->ni_intval;
1567 ireq->i_val = (ic->ic_flags & IEEE80211_F_PUREG) != 0;
1570 ireq->i_val = ic->ic_mcast_rate;
1573 ireq->i_val = ic->ic_fragthreshold;
1576 error = ieee80211_ioctl_getmaccmd(ic, ireq);
1580 error = ieee80211_ioctl_get80211_fbsd(ic, cmd, ireq);
1590 ieee80211_ioctl_setoptie(struct ieee80211com *ic, struct ieee80211req *ireq)
1603 if (ireq->i_len > IEEE80211_MAX_OPT_IE)
1606 ie = malloc(ireq->i_len, M_DEVBUF, M_WAITOK);
1609 error = copyin(ireq->i_data, ie, ireq->i_len);
1614 ic->ic_opt_ie_len = ireq->i_len;
1619 ieee80211_ioctl_setkey(struct ieee80211com *ic, struct ieee80211req *ireq)
1627 if (ireq->i_len != sizeof(ik))
1629 error = copyin(ireq->i_data, &ik, sizeof(ik));
1684 ieee80211_ioctl_delkey(struct ieee80211com *ic, struct ieee80211req *ireq)
1689 if (ireq->i_len != sizeof(dk))
1691 error = copyin(ireq->i_data, &dk, sizeof(dk));
1741 ieee80211_ioctl_setmlme(struct ieee80211com *ic, struct ieee80211req *ireq)
1747 if (ireq->i_len != sizeof(mlme))
1749 error = copyin(ireq->i_data, &mlme, sizeof(mlme));
1826 ieee80211_ioctl_macmac(struct ieee80211com *ic, struct ieee80211req *ireq)
1832 if (ireq->i_len != sizeof(mac))
1834 error = copyin(ireq->i_data, mac, ireq->i_len);
1843 if (ireq->i_type == IEEE80211_IOC_ADDMAC)
1851 ieee80211_ioctl_setmaccmd(struct ieee80211com *ic, struct ieee80211req *ireq)
1855 switch (ireq->i_val) {
1865 acl->iac_setpolicy(ic, ireq->i_val);
1882 return acl->iac_setioctl(ic, ireq);
1888 ieee80211_ioctl_setchanlist(struct ieee80211com *ic, struct ieee80211req *ireq)
1894 if (ireq->i_len != sizeof(list))
1896 error = copyin(ireq->i_data, &list, sizeof(list));
1932 ieee80211_ioctl_setstatxpow(struct ieee80211com *ic, struct ieee80211req *ireq)
1938 if (ireq->i_len != sizeof(txpow))
1940 error = copyin(ireq->i_data, &txpow, sizeof(txpow));
1952 ieee80211_ioctl_setwmeparam(struct ieee80211com *ic, struct ieee80211req *ireq)
1961 isbss = (ireq->i_len & IEEE80211_WMEPARAM_BSS);
1962 ac = (ireq->i_len & IEEE80211_WMEPARAM_VAL);
1972 switch (ireq->i_type) {
1975 wmep->wmep_logcwmin = ireq->i_val;
1977 chanp->wmep_logcwmin = ireq->i_val;
1980 ireq->i_val;
1985 wmep->wmep_logcwmax = ireq->i_val;
1987 chanp->wmep_logcwmax = ireq->i_val;
1990 ireq->i_val;
1995 wmep->wmep_aifsn = ireq->i_val;
1997 chanp->wmep_aifsn = ireq->i_val;
1999 wmep->wmep_aifsn = chanp->wmep_aifsn = ireq->i_val;
2004 wmep->wmep_txopLimit = ireq->i_val;
2006 chanp->wmep_txopLimit = ireq->i_val;
2009 ireq->i_val;
2013 wmep->wmep_acm = ireq->i_val;
2015 chanp->wmep_acm = ireq->i_val;
2019 (ireq->i_val) == 0;
2041 struct ieee80211req *ireq)
2057 switch (ireq->i_type) {
2060 if (ireq->i_val != 0 ||
2061 ireq->i_len > IEEE80211_NWID_LEN)
2063 error = copyin(ireq->i_data, tmpssid, ireq->i_len);
2067 ic->ic_des_esslen = ireq->i_len;
2068 memcpy(ic->ic_des_essid, tmpssid, ireq->i_len);
2073 switch (ireq->i_val) {
2091 kid = (u_int) ireq->i_val;
2095 if (ireq->i_len == 0) {
2100 if (ireq->i_len > sizeof(tmpkey))
2103 error = copyin(ireq->i_data, tmpkey, ireq->i_len);
2110 k->wk_keylen = ireq->i_len;
2121 kid = (u_int) ireq->i_val;
2130 switch (ireq->i_val) {
2136 auth = ieee80211_authenticator_get(ireq->i_val);
2143 switch (ireq->i_val) {
2146 ireq->i_val = IEEE80211_AUTH_8021X;
2164 ic->ic_bss->ni_authmode = ireq->i_val;
2172 if (ireq->i_val == 0 ||
2173 ireq->i_val == (int16_t) IEEE80211_CHAN_ANY)
2175 else if ((u_int) ireq->i_val > IEEE80211_CHAN_MAX ||
2176 isclr(ic->ic_chan_active, ireq->i_val)) {
2180 &ic->ic_channels[ireq->i_val];
2212 switch (ireq->i_val) {
2233 if (ireq->i_val < 0)
2235 ic->ic_lintval = ireq->i_val;
2240 if (!(IEEE80211_RTS_MIN <= ireq->i_val &&
2241 ireq->i_val <= IEEE80211_RTS_MAX))
2243 ic->ic_rtsthreshold = ireq->i_val;
2247 if (ireq->i_val > IEEE80211_PROT_RTSCTS)
2249 ic->ic_protmode = ireq->i_val;
2257 if (!(IEEE80211_TXPOWER_MIN < ireq->i_val &&
2258 ireq->i_val < IEEE80211_TXPOWER_MAX))
2260 ic->ic_txpowlimit = ireq->i_val;
2264 if (!(IEEE80211_ROAMING_DEVICE <= ireq->i_val &&
2265 ireq->i_val <= IEEE80211_ROAMING_MANUAL))
2267 ic->ic_roaming = ireq->i_val;
2271 if (ireq->i_val) {
2278 if (ireq->i_val)
2284 error = ieee80211_ioctl_setkey(ic, ireq);
2287 error = ieee80211_ioctl_delkey(ic, ireq);
2290 error = ieee80211_ioctl_setmlme(ic, ireq);
2293 error = ieee80211_ioctl_setoptie(ic, ireq);
2296 if (ireq->i_val) {
2304 if (ireq->i_val > 3)
2308 switch (ireq->i_val) {
2322 if (ireq->i_val) {
2331 if (ireq->i_val)
2338 if (ireq->i_val == 0)
2344 if ((ic->ic_caps & cipher2cap(ireq->i_val)) == 0 &&
2345 !ieee80211_crypto_available(ireq->i_val))
2347 rsn->rsn_mcastcipher = ireq->i_val;
2351 if (!(0 < ireq->i_val && ireq->i_val < IEEE80211_KEYBUF_SIZE))
2354 rsn->rsn_mcastkeylen = ireq->i_val;
2367 if ((ireq->i_val & (1<<j)) &&
2379 if ((rsn->rsn_ucastcipherset & cipher2cap(ireq->i_val)) == 0)
2381 rsn->rsn_ucastcipher = ireq->i_val;
2384 if (!(0 < ireq->i_val && ireq->i_val < IEEE80211_KEYBUF_SIZE))
2387 rsn->rsn_ucastkeylen = ireq->i_val;
2391 ic->ic_caps = (((u_int16_t) ireq->i_val) << 16) |
2392 ((u_int16_t) ireq->i_len);
2396 rsn->rsn_keymgmtset = ireq->i_val;
2401 rsn->rsn_caps = ireq->i_val;
2409 if (ireq->i_len != sizeof(tmpbssid))
2411 error = copyin(ireq->i_data, tmpbssid, ireq->i_len);
2423 error = ieee80211_ioctl_setchanlist(ic, ireq);
2434 error = ieee80211_ioctl_macmac(ic, ireq);
2437 error = ieee80211_ioctl_setmaccmd(ic, ireq);
2440 error = ieee80211_ioctl_setstatxpow(ic, ireq);
2448 error = ieee80211_ioctl_setwmeparam(ic, ireq);
2454 if (IEEE80211_DTIM_MIN <= ireq->i_val &&
2455 ireq->i_val <= IEEE80211_DTIM_MAX) {
2456 ic->ic_dtim_period = ireq->i_val;
2465 if (IEEE80211_BINTVAL_MIN <= ireq->i_val &&
2466 ireq->i_val <= IEEE80211_BINTVAL_MAX) {
2467 ic->ic_bintval = ireq->i_val;
2473 if (ireq->i_val)
2482 ic->ic_mcast_rate = ireq->i_val & IEEE80211_RATE_VAL;
2486 ireq->i_val != IEEE80211_FRAG_MAX)
2488 if (!(IEEE80211_FRAG_MIN <= ireq->i_val &&
2489 ireq->i_val <= IEEE80211_FRAG_MAX))
2491 ic->ic_fragthreshold = ireq->i_val;