aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArik Nemtsov <arik@wizery.com>2011-04-18 07:22:28 -0400
committerJohn W. Linville <linville@tuxdriver.com>2011-04-28 14:50:00 -0400
commit8178d38b704f0a08a74b030c35e6eca5f5019d3d (patch)
tree08b328c679baf16f6d52c457ae6b40656dba2524
parentc989bb15e95a93e20fc86783264f6298116e8651 (diff)
mac80211: allow low level drivers to report packet loss
Add API that allows low level drivers to notify mac80211 about TX packet loss. This is useful when there are FW triggers to notify the low level driver about these events. Signed-off-by: Arik Nemtsov <arik@wizery.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--include/net/mac80211.h11
-rw-r--r--net/mac80211/status.c8
2 files changed, 19 insertions, 0 deletions
diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 162363b6cb62..8aad6b37c689 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -2292,6 +2292,17 @@ void ieee80211_tx_status_irqsafe(struct ieee80211_hw *hw,
2292 struct sk_buff *skb); 2292 struct sk_buff *skb);
2293 2293
2294/** 2294/**
2295 * ieee80211_report_low_ack - report non-responding station
2296 *
2297 * When operating in AP-mode, call this function to report a non-responding
2298 * connected STA.
2299 *
2300 * @sta: the non-responding connected sta
2301 * @num_packets: number of packets sent to @sta without a response
2302 */
2303void ieee80211_report_low_ack(struct ieee80211_sta *sta, u32 num_packets);
2304
2305/**
2295 * ieee80211_beacon_get_tim - beacon generation function 2306 * ieee80211_beacon_get_tim - beacon generation function
2296 * @hw: pointer obtained from ieee80211_alloc_hw(). 2307 * @hw: pointer obtained from ieee80211_alloc_hw().
2297 * @vif: &struct ieee80211_vif pointer from the add_interface callback. 2308 * @vif: &struct ieee80211_vif pointer from the add_interface callback.
diff --git a/net/mac80211/status.c b/net/mac80211/status.c
index 3ed3c835fbbf..1658efaa2e8e 100644
--- a/net/mac80211/status.c
+++ b/net/mac80211/status.c
@@ -446,3 +446,11 @@ void ieee80211_tx_status(struct ieee80211_hw *hw, struct sk_buff *skb)
446 dev_kfree_skb(skb); 446 dev_kfree_skb(skb);
447} 447}
448EXPORT_SYMBOL(ieee80211_tx_status); 448EXPORT_SYMBOL(ieee80211_tx_status);
449
450void ieee80211_report_low_ack(struct ieee80211_sta *pubsta, u32 num_packets)
451{
452 struct sta_info *sta = container_of(pubsta, struct sta_info, sta);
453 cfg80211_cqm_pktloss_notify(sta->sdata->dev, sta->sta.addr,
454 num_packets, GFP_ATOMIC);
455}
456EXPORT_SYMBOL(ieee80211_report_low_ack);