diff options
author | adrian <adrian@FreeBSD.org> | 2011-11-08 04:00:24 +0000 |
---|---|---|
committer | adrian <adrian@FreeBSD.org> | 2011-11-08 04:00:24 +0000 |
commit | 1a3216b0414a93a36aa9bbf154f8e323454f5ac4 (patch) | |
tree | 496f530d1aaf071e9027c713f25bab37278804e4 /sys/net80211/ieee80211_ioctl.c | |
parent | 476761abc0abdd48513d660ddbe8ce091975f133 (diff) | |
download | FreeBSD-src-1a3216b0414a93a36aa9bbf154f8e323454f5ac4.zip FreeBSD-src-1a3216b0414a93a36aa9bbf154f8e323454f5ac4.tar.gz |
Add 802.11h quiet time element support into net80211.
This supports both station and hostap modes:
* Station mode quiet time element support listens to quiet time
IE's and modifies the local quiet time configuration as appropriate;
* Hostap mode both obeys the locally configured quiet time period
and includes it in beacon frames so stations also can obey as needed.
Submitted by: Himali Patel <himali.patel@sibridgetech.com>
Sponsored by: Sibridge Technologies
Diffstat (limited to 'sys/net80211/ieee80211_ioctl.c')
-rw-r--r-- | sys/net80211/ieee80211_ioctl.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/sys/net80211/ieee80211_ioctl.c b/sys/net80211/ieee80211_ioctl.c index f8e1785..2e388ae 100644 --- a/sys/net80211/ieee80211_ioctl.c +++ b/sys/net80211/ieee80211_ioctl.c @@ -972,6 +972,21 @@ ieee80211_ioctl_get80211(struct ieee80211vap *vap, u_long cmd, case IEEE80211_IOC_PUREG: ireq->i_val = (vap->iv_flags & IEEE80211_F_PUREG) != 0; break; + case IEEE80211_IOC_QUIET: + ireq->i_val = vap->iv_quiet; + break; + case IEEE80211_IOC_QUIET_COUNT: + ireq->i_val = vap->iv_quiet_count; + break; + case IEEE80211_IOC_QUIET_PERIOD: + ireq->i_val = vap->iv_quiet_period; + break; + case IEEE80211_IOC_QUIET_DUR: + ireq->i_val = vap->iv_quiet_duration; + break; + case IEEE80211_IOC_QUIET_OFFSET: + ireq->i_val = vap->iv_quiet_offset; + break; case IEEE80211_IOC_BGSCAN: ireq->i_val = (vap->iv_flags & IEEE80211_F_BGSCAN) != 0; break; @@ -2939,6 +2954,24 @@ ieee80211_ioctl_set80211(struct ieee80211vap *vap, u_long cmd, struct ieee80211r if (isvap11g(vap)) error = ENETRESET; break; + case IEEE80211_IOC_QUIET: + vap->iv_quiet= ireq->i_val; + break; + case IEEE80211_IOC_QUIET_COUNT: + vap->iv_quiet_count=ireq->i_val; + break; + case IEEE80211_IOC_QUIET_PERIOD: + vap->iv_quiet_period=ireq->i_val; + break; + case IEEE80211_IOC_QUIET_OFFSET: + vap->iv_quiet_offset=ireq->i_val; + break; + case IEEE80211_IOC_QUIET_DUR: + if(ireq->i_val < vap->iv_bss->ni_intval) + vap->iv_quiet_duration = ireq->i_val; + else + error = EINVAL; + break; case IEEE80211_IOC_BGSCAN: if (ireq->i_val) { if ((vap->iv_caps & IEEE80211_C_BGSCAN) == 0) |