All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC v3] mac80211: Send nullfunc frames at lower rate
@ 2011-09-26 12:23 Rajkumar Manoharan
  2011-09-26 13:34 ` Felix Fietkau
  0 siblings, 1 reply; 6+ messages in thread
From: Rajkumar Manoharan @ 2011-09-26 12:23 UTC (permalink / raw)
  To: johannes; +Cc: linville, linux-wireless, Rajkumar Manoharan, stable

Recently mac80211 was changed to use nullfunc instead of probe
request for connection monitoring for tx ack status reporting
hardwares. These nullfunc data frames are being sent at higer
rates and also as aggregated ones. This could probably delays
the nullfunc ack so the connection is more frequently getting
disconnected as max retries are reached. In order to improve
the connectivity send the nullfunc at lower rate.

Cc: stable@kernel.org
Signed-off-by: Rajkumar Manoharan <rmanohar@qca.qualcomm.com>
---
v2: update commit log
v3: rename rc_no_data_or_no_ack & Ccd stable
 net/mac80211/rate.c |    7 ++++---
 1 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c
index f61244c..240a24d 100644
--- a/net/mac80211/rate.c
+++ b/net/mac80211/rate.c
@@ -199,7 +199,7 @@ static void rate_control_release(struct kref *kref)
 	kfree(ctrl_ref);
 }
 
-static bool rc_no_data_or_no_ack(struct ieee80211_tx_rate_control *txrc)
+static bool rc_no_non_nulldata_or_no_ack(struct ieee80211_tx_rate_control *txrc)
 {
 	struct sk_buff *skb = txrc->skb;
 	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *) skb->data;
@@ -208,7 +208,8 @@ static bool rc_no_data_or_no_ack(struct ieee80211_tx_rate_control *txrc)
 
 	fc = hdr->frame_control;
 
-	return (info->flags & IEEE80211_TX_CTL_NO_ACK) || !ieee80211_is_data(fc);
+	return (info->flags & IEEE80211_TX_CTL_NO_ACK) ||
+		!ieee80211_is_data(fc) || ieee80211_is_nullfunc(fc);
 }
 
 static void rc_send_low_broadcast(s8 *idx, u32 basic_rates,
@@ -262,7 +263,7 @@ bool rate_control_send_low(struct ieee80211_sta *sta,
 	struct ieee80211_supported_band *sband = txrc->sband;
 	int mcast_rate;
 
-	if (!sta || !priv_sta || rc_no_data_or_no_ack(txrc)) {
+	if (!sta || !priv_sta || rc_no_non_nulldata_or_no_ack(txrc)) {
 		if ((sband->band != IEEE80211_BAND_2GHZ) ||
 		    !(info->flags & IEEE80211_TX_CTL_NO_CCK_RATE))
 			info->control.rates[0].idx =
-- 
1.7.6.4


^ permalink raw reply related	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2011-09-27 13:53 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2011-09-26 12:23 [RFC v3] mac80211: Send nullfunc frames at lower rate Rajkumar Manoharan
2011-09-26 13:34 ` Felix Fietkau
2011-09-26 13:45   ` Stanislaw Gruszka
2011-09-26 15:09     ` Rajkumar Manoharan
2011-09-26 15:07   ` Rajkumar Manoharan
2011-09-27 13:54   ` Rajkumar Manoharan

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.