svn commit: r288643 - head/sys/net80211
Adrian Chadd
adrian at FreeBSD.org
Sat Oct 3 22:38:09 UTC 2015
Author: adrian
Date: Sat Oct 3 22:38:08 2015
New Revision: 288643
URL: https://svnweb.freebsd.org/changeset/base/288643
Log:
net80211: reduce code duplication in the ieee80211_ioctl_setwmeparam() + fix comments.
Submitted by: <s3erios at gmail.com>
Differential Revision: https://reviews.freebsd.org/D3701
Modified:
head/sys/net80211/ieee80211_ioctl.c
Modified: head/sys/net80211/ieee80211_ioctl.c
==============================================================================
--- head/sys/net80211/ieee80211_ioctl.c Sat Oct 3 22:35:37 2015 (r288642)
+++ head/sys/net80211/ieee80211_ioctl.c Sat Oct 3 22:38:08 2015 (r288643)
@@ -957,7 +957,7 @@ ieee80211_ioctl_get80211(struct ieee8021
case IEEE80211_IOC_WME_AIFS: /* WME: AIFS */
case IEEE80211_IOC_WME_TXOPLIMIT: /* WME: txops limit */
case IEEE80211_IOC_WME_ACM: /* WME: ACM (bss only) */
- case IEEE80211_IOC_WME_ACKPOLICY: /* WME: ACK policy (bss only) */
+ case IEEE80211_IOC_WME_ACKPOLICY: /* WME: ACK policy (!bss only) */
error = ieee80211_ioctl_getwmeparam(vap, ireq);
break;
case IEEE80211_IOC_DTIM_PERIOD:
@@ -1757,13 +1757,14 @@ ieee80211_ioctl_setwmeparam(struct ieee8
struct ieee80211com *ic = vap->iv_ic;
struct ieee80211_wme_state *wme = &ic->ic_wme;
struct wmeParams *wmep, *chanp;
- int isbss, ac;
+ int isbss, ac, aggrmode;
if ((ic->ic_caps & IEEE80211_C_WME) == 0)
return EOPNOTSUPP;
isbss = (ireq->i_len & IEEE80211_WMEPARAM_BSS);
ac = (ireq->i_len & IEEE80211_WMEPARAM_VAL);
+ aggrmode = (wme->wme_flags & WME_F_AGGRMODE);
if (ac >= WME_NUM_AC)
ac = WME_AC_BE;
if (isbss) {
@@ -1775,47 +1776,28 @@ ieee80211_ioctl_setwmeparam(struct ieee8
}
switch (ireq->i_type) {
case IEEE80211_IOC_WME_CWMIN: /* WME: CWmin */
- if (isbss) {
- wmep->wmep_logcwmin = ireq->i_val;
- if ((wme->wme_flags & WME_F_AGGRMODE) == 0)
- chanp->wmep_logcwmin = ireq->i_val;
- } else {
- wmep->wmep_logcwmin = chanp->wmep_logcwmin =
- ireq->i_val;
- }
+ wmep->wmep_logcwmin = ireq->i_val;
+ if (!isbss || !aggrmode)
+ chanp->wmep_logcwmin = ireq->i_val;
break;
case IEEE80211_IOC_WME_CWMAX: /* WME: CWmax */
- if (isbss) {
- wmep->wmep_logcwmax = ireq->i_val;
- if ((wme->wme_flags & WME_F_AGGRMODE) == 0)
- chanp->wmep_logcwmax = ireq->i_val;
- } else {
- wmep->wmep_logcwmax = chanp->wmep_logcwmax =
- ireq->i_val;
- }
+ wmep->wmep_logcwmax = ireq->i_val;
+ if (!isbss || !aggrmode)
+ chanp->wmep_logcwmax = ireq->i_val;
break;
case IEEE80211_IOC_WME_AIFS: /* WME: AIFS */
- if (isbss) {
- wmep->wmep_aifsn = ireq->i_val;
- if ((wme->wme_flags & WME_F_AGGRMODE) == 0)
- chanp->wmep_aifsn = ireq->i_val;
- } else {
- wmep->wmep_aifsn = chanp->wmep_aifsn = ireq->i_val;
- }
+ wmep->wmep_aifsn = ireq->i_val;
+ if (!isbss || !aggrmode)
+ chanp->wmep_aifsn = ireq->i_val;
break;
case IEEE80211_IOC_WME_TXOPLIMIT: /* WME: txops limit */
- if (isbss) {
- wmep->wmep_txopLimit = ireq->i_val;
- if ((wme->wme_flags & WME_F_AGGRMODE) == 0)
- chanp->wmep_txopLimit = ireq->i_val;
- } else {
- wmep->wmep_txopLimit = chanp->wmep_txopLimit =
- ireq->i_val;
- }
+ wmep->wmep_txopLimit = ireq->i_val;
+ if (!isbss || !aggrmode)
+ chanp->wmep_txopLimit = ireq->i_val;
break;
case IEEE80211_IOC_WME_ACM: /* WME: ACM (bss only) */
wmep->wmep_acm = ireq->i_val;
- if ((wme->wme_flags & WME_F_AGGRMODE) == 0)
+ if (!aggrmode)
chanp->wmep_acm = ireq->i_val;
break;
case IEEE80211_IOC_WME_ACKPOLICY: /* WME: ACK policy (!bss only)*/
@@ -2945,7 +2927,7 @@ ieee80211_ioctl_set80211(struct ieee8021
case IEEE80211_IOC_WME_AIFS: /* WME: AIFS */
case IEEE80211_IOC_WME_TXOPLIMIT: /* WME: txops limit */
case IEEE80211_IOC_WME_ACM: /* WME: ACM (bss only) */
- case IEEE80211_IOC_WME_ACKPOLICY: /* WME: ACK policy (bss only) */
+ case IEEE80211_IOC_WME_ACKPOLICY: /* WME: ACK policy (!bss only) */
error = ieee80211_ioctl_setwmeparam(vap, ireq);
break;
case IEEE80211_IOC_DTIM_PERIOD:
More information about the svn-src-head
mailing list