diff options
author | sam <sam@FreeBSD.org> | 2007-09-18 21:07:41 +0000 |
---|---|---|
committer | sam <sam@FreeBSD.org> | 2007-09-18 21:07:41 +0000 |
commit | 70cb2f861479e6a08ed2e43c2993bdfd21ec9945 (patch) | |
tree | caf7f186b060ab53607cfbc36954c57719db1a4a /sys | |
parent | a965065ed54e1f0c47dacf8e8b597fd78296691a (diff) | |
download | FreeBSD-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.c | 6 |
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); |