diff options
author | Johannes Berg <johannes.berg@intel.com> | 2014-10-07 10:38:50 +0300 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2014-10-22 10:42:09 +0200 |
commit | 02219b3abca59fca81711bfe7ee78df7abad97ce (patch) | |
tree | afaa7b17ffde140c2791a87c9dde1a489a949f36 /net/mac80211/status.c | |
parent | f409079bb678600be0201cd03afb4731f0480b4e (diff) | |
download | blackbird-op-linux-02219b3abca59fca81711bfe7ee78df7abad97ce.tar.gz blackbird-op-linux-02219b3abca59fca81711bfe7ee78df7abad97ce.zip |
mac80211: add WMM admission control support
Use the currently existing APIs between mac80211 and the low
level driver to implement WMM admission control.
The low level driver needs to report the media time used by
each transmitted packet in ieee80211_tx_status. Based on that
information, mac80211 will modify the QoS parameters of the
admission controlled Access Category when the limit is
reached. Once the original QoS parameters can be restored,
mac80211 will do so.
One issue with this approach is that management frames will
also erroneously be downgraded, but the upside is that the
implementation is simple. In the future, it can be extended
to driver- or device-based implementations that are better.
Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/status.c')
-rw-r--r-- | net/mac80211/status.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/net/mac80211/status.c b/net/mac80211/status.c index 89290e33dafe..9612d89fad56 100644 --- a/net/mac80211/status.c +++ b/net/mac80211/status.c @@ -704,7 +704,8 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb) if ((sta->sdata->vif.type == NL80211_IFTYPE_STATION) && (local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS)) - ieee80211_sta_tx_notify(sta->sdata, (void *) skb->data, acked); + ieee80211_sta_tx_notify(sta->sdata, (void *) skb->data, + acked, info->status.tx_time); if (local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS) { if (info->flags & IEEE80211_TX_STAT_ACK) { |