summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorsam <sam@FreeBSD.org>2007-09-18 21:07:41 +0000
committersam <sam@FreeBSD.org>2007-09-18 21:07:41 +0000
commit70cb2f861479e6a08ed2e43c2993bdfd21ec9945 (patch)
treecaf7f186b060ab53607cfbc36954c57719db1a4a /sys
parenta965065ed54e1f0c47dacf8e8b597fd78296691a (diff)
downloadFreeBSD-src-70cb2f861479e6a08ed2e43c2993bdfd21ec9945.zip
FreeBSD-src-70cb2f861479e6a08ed2e43c2993bdfd21ec9945.tar.gz
tag mgmt and null data frames w/ a WME priority so drivers can assume
only data frames require classification Approved by: re (blanket wireless)
Diffstat (limited to 'sys')
-rw-r--r--sys/net80211/ieee80211_output.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/net80211/ieee80211_output.c b/sys/net80211/ieee80211_output.c
index ea159f8..ad2a5f3 100644
--- a/sys/net80211/ieee80211_output.c
+++ b/sys/net80211/ieee80211_output.c
@@ -191,6 +191,11 @@ ieee80211_mgmt_output(struct ieee80211com *ic, struct ieee80211_node *ni,
ether_sprintf(wh->i_addr1), __func__);
wh->i_fc[1] |= IEEE80211_FC1_WEP;
}
+ if (ni->ni_flags & IEEE80211_NODE_QOS) {
+ /* NB: force all management frames to the highest queue */
+ M_WME_SETAC(m, WME_AC_VO);
+ } else
+ M_WME_SETAC(m, WME_AC_BE);
#ifdef IEEE80211_DEBUG
/* avoid printing too many frames */
if ((ieee80211_msg_debug(ic) && doprint(ic, type)) ||
@@ -370,6 +375,7 @@ ieee80211_send_nulldata(struct ieee80211_node *ni)
ic->ic_opmode != IEEE80211_M_WDS)
wh->i_fc[1] |= IEEE80211_FC1_PWR_MGT;
m->m_len = m->m_pkthdr.len = sizeof(struct ieee80211_frame);
+ M_WME_SETAC(m, WME_AC_BE);
IEEE80211_NODE_STAT(ni, tx_data);
OpenPOWER on IntegriCloud