Linux wireless drivers development
 help / color / mirror / Atom feed
* [PATCH 1/3] mac80211: make ieee802_1d_to_ac avilable to drivers
@ 2010-11-23  1:23 Luis R. Rodriguez
  2010-11-23  1:23 ` [PATCH 2/3] ath9k: avoid aggregation for VO traffic Luis R. Rodriguez
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Luis R. Rodriguez @ 2010-11-23  1:23 UTC (permalink / raw)
  To: johannes; +Cc: linux-wireless, Luis R. Rodriguez

This will be used by ath9k's RC next.

Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
---
 include/net/mac80211.h |   15 +++++++++++++++
 net/mac80211/wme.c     |   14 --------------
 net/mac80211/wme.h     |    2 --
 3 files changed, 15 insertions(+), 16 deletions(-)

diff --git a/include/net/mac80211.h b/include/net/mac80211.h
index 5b0fff2..209c858 100644
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
@@ -110,6 +110,21 @@ enum ieee80211_ac_numbers {
 	IEEE80211_AC_BK		= 3,
 };
 
+/*
+ * Default mapping in classifier to work with default
+ * queue setup.
+ */
+static const int ieee802_1d_to_ac[8] = {
+	IEEE80211_AC_BE,
+	IEEE80211_AC_BK,
+	IEEE80211_AC_BK,
+	IEEE80211_AC_BE,
+	IEEE80211_AC_VI,
+	IEEE80211_AC_VI,
+	IEEE80211_AC_VO,
+	IEEE80211_AC_VO
+};
+
 /**
  * struct ieee80211_tx_queue_params - transmit queue configuration
  *
diff --git a/net/mac80211/wme.c b/net/mac80211/wme.c
index 58e75bb..43d9a0e 100644
--- a/net/mac80211/wme.c
+++ b/net/mac80211/wme.c
@@ -18,20 +18,6 @@
 #include "ieee80211_i.h"
 #include "wme.h"
 
-/* Default mapping in classifier to work with default
- * queue setup.
- */
-const int ieee802_1d_to_ac[8] = {
-	IEEE80211_AC_BE,
-	IEEE80211_AC_BK,
-	IEEE80211_AC_BK,
-	IEEE80211_AC_BE,
-	IEEE80211_AC_VI,
-	IEEE80211_AC_VI,
-	IEEE80211_AC_VO,
-	IEEE80211_AC_VO
-};
-
 static int wme_downgrade_ac(struct sk_buff *skb)
 {
 	switch (skb->priority) {
diff --git a/net/mac80211/wme.h b/net/mac80211/wme.h
index 6053b1c..c5501b5 100644
--- a/net/mac80211/wme.h
+++ b/net/mac80211/wme.h
@@ -18,8 +18,6 @@
 
 #define QOS_CONTROL_ACK_POLICY_SHIFT 5
 
-extern const int ieee802_1d_to_ac[8];
-
 u16 ieee80211_select_queue(struct ieee80211_sub_if_data *sdata,
 			   struct sk_buff *skb);
 void ieee80211_set_qos_hdr(struct ieee80211_local *local, struct sk_buff *skb);
-- 
1.7.3.2.90.gd4c43


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

* [PATCH 2/3] ath9k: avoid aggregation for VO traffic
  2010-11-23  1:23 [PATCH 1/3] mac80211: make ieee802_1d_to_ac avilable to drivers Luis R. Rodriguez
@ 2010-11-23  1:23 ` Luis R. Rodriguez
  2010-11-23  3:02   ` Johannes Berg
  2010-11-23 12:14   ` Björn Smedman
  2010-11-23  1:23 ` [PATCH 3/3] mac80211: " Luis R. Rodriguez
  2010-11-23  3:01 ` [PATCH 1/3] mac80211: make ieee802_1d_to_ac avilable to drivers Johannes Berg
  2 siblings, 2 replies; 9+ messages in thread
From: Luis R. Rodriguez @ 2010-11-23  1:23 UTC (permalink / raw)
  To: johannes
  Cc: linux-wireless, Luis R. Rodriguez, Matt Smith,
	Senthil Balasubramanian

This should help with latency issues which can happen when
using aggregation.

Cc: Matt Smith <matt.smith@atheros.com>
Cc: Senthil Balasubramanian <senthilkumar@atheros.com>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
---
 drivers/net/wireless/ath/ath9k/rc.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/rc.c b/drivers/net/wireless/ath/ath9k/rc.c
index 33bb33b..f1c1a93 100644
--- a/drivers/net/wireless/ath/ath9k/rc.c
+++ b/drivers/net/wireless/ath/ath9k/rc.c
@@ -1363,7 +1363,8 @@ static void ath_tx_status(void *priv, struct ieee80211_supported_band *sband,
 	/* Check if aggregation has to be enabled for this tid */
 	if (conf_is_ht(&sc->hw->conf) &&
 	    !(skb->protocol == cpu_to_be16(ETH_P_PAE))) {
-		if (ieee80211_is_data_qos(fc)) {
+		if (ieee80211_is_data_qos(fc) &&
+		    (ieee802_1d_to_ac[skb->priority] != IEEE80211_AC_VO)) {
 			u8 *qc, tid;
 			struct ath_node *an;
 
-- 
1.7.3.2.90.gd4c43


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

* [PATCH 3/3] mac80211: avoid aggregation for VO traffic
  2010-11-23  1:23 [PATCH 1/3] mac80211: make ieee802_1d_to_ac avilable to drivers Luis R. Rodriguez
  2010-11-23  1:23 ` [PATCH 2/3] ath9k: avoid aggregation for VO traffic Luis R. Rodriguez
@ 2010-11-23  1:23 ` Luis R. Rodriguez
  2010-11-23  3:01 ` [PATCH 1/3] mac80211: make ieee802_1d_to_ac avilable to drivers Johannes Berg
  2 siblings, 0 replies; 9+ messages in thread
From: Luis R. Rodriguez @ 2010-11-23  1:23 UTC (permalink / raw)
  To: johannes
  Cc: linux-wireless, Luis R. Rodriguez, Felix Fietkau, Matt Smith,
	Senthil Balasubramanian

This should help with latency issues which can happen when
using aggregation.

Cc: Felix Fietkau <nbd@openwrt.org>
Cc: Matt Smith <matt.smith@atheros.com>
Cc: Senthil Balasubramanian <senthilkumar@atheros.com>
Signed-off-by: Luis R. Rodriguez <lrodriguez@atheros.com>
---
 net/mac80211/rc80211_minstrel_ht.c |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/net/mac80211/rc80211_minstrel_ht.c b/net/mac80211/rc80211_minstrel_ht.c
index 2d6f025..84b13b0 100644
--- a/net/mac80211/rc80211_minstrel_ht.c
+++ b/net/mac80211/rc80211_minstrel_ht.c
@@ -371,6 +371,9 @@ minstrel_aggr_check(struct minstrel_priv *mp, struct ieee80211_sta *pubsta, stru
 	if (likely(sta->ampdu_mlme.tid_tx[tid]))
 		return;
 
+	if (ieee802_1d_to_ac[skb->priority] == IEEE80211_AC_VO)
+		return;
+
 	ieee80211_start_tx_ba_session(pubsta, tid);
 }
 
-- 
1.7.3.2.90.gd4c43


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

* Re: [PATCH 1/3] mac80211: make ieee802_1d_to_ac avilable to drivers
  2010-11-23  1:23 [PATCH 1/3] mac80211: make ieee802_1d_to_ac avilable to drivers Luis R. Rodriguez
  2010-11-23  1:23 ` [PATCH 2/3] ath9k: avoid aggregation for VO traffic Luis R. Rodriguez
  2010-11-23  1:23 ` [PATCH 3/3] mac80211: " Luis R. Rodriguez
@ 2010-11-23  3:01 ` Johannes Berg
  2 siblings, 0 replies; 9+ messages in thread
From: Johannes Berg @ 2010-11-23  3:01 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: linux-wireless

> +++ b/include/net/mac80211.h

> +static const int ieee802_1d_to_ac[8] = {

this will duplicate the table in every file including the header, and sparse might warn, are you sure that's a good plan?

Johannes

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

* Re: [PATCH 2/3] ath9k: avoid aggregation for VO traffic
  2010-11-23  1:23 ` [PATCH 2/3] ath9k: avoid aggregation for VO traffic Luis R. Rodriguez
@ 2010-11-23  3:02   ` Johannes Berg
  2010-11-23  6:00     ` Johannes Berg
  2010-11-23 12:14   ` Björn Smedman
  1 sibling, 1 reply; 9+ messages in thread
From: Johannes Berg @ 2010-11-23  3:02 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: linux-wireless, Matt Smith, Senthil Balasubramanian

> -        if (ieee80211_is_data_qos(fc)) {
> +        if (ieee80211_is_data_qos(fc) &&
> +               (ieee802_1d_to_ac[skb->priority] != IEEE80211_AC_VO)) {

Isn't skb queue mapping set up already so you could use that?

Johannes

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

* Re: [PATCH 2/3] ath9k: avoid aggregation for VO traffic
  2010-11-23  3:02   ` Johannes Berg
@ 2010-11-23  6:00     ` Johannes Berg
  0 siblings, 0 replies; 9+ messages in thread
From: Johannes Berg @ 2010-11-23  6:00 UTC (permalink / raw)
  To: Luis R. Rodriguez; +Cc: linux-wireless, Matt Smith, Senthil Balasubramanian

On Tue, 2010-11-23 at 04:02 +0100, Johannes Berg wrote:
> > -        if (ieee80211_is_data_qos(fc)) {
> > +        if (ieee80211_is_data_qos(fc) &&
> > +               (ieee802_1d_to_ac[skb->priority] != IEEE80211_AC_VO)) {
> 
> Isn't skb queue mapping set up already so you could use that?

It must be set up, so you should use that, compare it to AC_VO, and drop
patch 1.

johannes


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

* Re: [PATCH 2/3] ath9k: avoid aggregation for VO traffic
  2010-11-23  1:23 ` [PATCH 2/3] ath9k: avoid aggregation for VO traffic Luis R. Rodriguez
  2010-11-23  3:02   ` Johannes Berg
@ 2010-11-23 12:14   ` Björn Smedman
  2010-11-23 12:56     ` Felix Fietkau
  1 sibling, 1 reply; 9+ messages in thread
From: Björn Smedman @ 2010-11-23 12:14 UTC (permalink / raw)
  To: Luis R. Rodriguez
  Cc: johannes, linux-wireless, Matt Smith, Senthil Balasubramanian

On Tue, Nov 23, 2010 at 2:23 AM, Luis R. Rodriguez
<lrodriguez@atheros.com> wrote:
> This should help with latency issues which can happen when
> using aggregation.

Wouldn't it be better to fix the TXOP limit handling in
ath_lookup_rate() instead?

>From xmit.c:

        /*
         * Find the lowest frame length among the rate series that will have a
         * 4ms transmit duration.
         * TODO - TXOP limit needs to be considered.
         */
        max_4ms_framelen = ATH_AMPDU_LIMIT_MAX;

/Björn

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

* Re: [PATCH 2/3] ath9k: avoid aggregation for VO traffic
  2010-11-23 12:14   ` Björn Smedman
@ 2010-11-23 12:56     ` Felix Fietkau
  2010-11-23 13:40       ` Björn Smedman
  0 siblings, 1 reply; 9+ messages in thread
From: Felix Fietkau @ 2010-11-23 12:56 UTC (permalink / raw)
  To: Björn Smedman
  Cc: Luis R. Rodriguez, johannes, linux-wireless, Matt Smith,
	Senthil Balasubramanian

On 2010-11-23 1:14 PM, Björn Smedman wrote:
> On Tue, Nov 23, 2010 at 2:23 AM, Luis R. Rodriguez
> <lrodriguez@atheros.com> wrote:
>> This should help with latency issues which can happen when
>> using aggregation.
> 
> Wouldn't it be better to fix the TXOP limit handling in
> ath_lookup_rate() instead?
That wouldn't help with latency caused by receiver-side reordering.

- Felix

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

* Re: [PATCH 2/3] ath9k: avoid aggregation for VO traffic
  2010-11-23 12:56     ` Felix Fietkau
@ 2010-11-23 13:40       ` Björn Smedman
  0 siblings, 0 replies; 9+ messages in thread
From: Björn Smedman @ 2010-11-23 13:40 UTC (permalink / raw)
  To: Felix Fietkau
  Cc: Luis R. Rodriguez, johannes, linux-wireless, Matt Smith,
	Senthil Balasubramanian

2010/11/23 Felix Fietkau <nbd@openwrt.org>:
> On 2010-11-23 1:14 PM, Björn Smedman wrote:
>> On Tue, Nov 23, 2010 at 2:23 AM, Luis R. Rodriguez
>> <lrodriguez@atheros.com> wrote:
>>> This should help with latency issues which can happen when
>>> using aggregation.
>>
>> Wouldn't it be better to fix the TXOP limit handling in
>> ath_lookup_rate() instead?
> That wouldn't help with latency caused by receiver-side reordering.

Aha, good reason. :)

/Björn

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

end of thread, other threads:[~2010-11-23 13:40 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-11-23  1:23 [PATCH 1/3] mac80211: make ieee802_1d_to_ac avilable to drivers Luis R. Rodriguez
2010-11-23  1:23 ` [PATCH 2/3] ath9k: avoid aggregation for VO traffic Luis R. Rodriguez
2010-11-23  3:02   ` Johannes Berg
2010-11-23  6:00     ` Johannes Berg
2010-11-23 12:14   ` Björn Smedman
2010-11-23 12:56     ` Felix Fietkau
2010-11-23 13:40       ` Björn Smedman
2010-11-23  1:23 ` [PATCH 3/3] mac80211: " Luis R. Rodriguez
2010-11-23  3:01 ` [PATCH 1/3] mac80211: make ieee802_1d_to_ac avilable to drivers Johannes Berg

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox