Linux wireless drivers development
 help / color / mirror / Atom feed
* [PATCH] mac80211: fill start-sequence-number for BA session start
@ 2008-08-06 19:45 Johannes Berg
  2008-08-06 22:42 ` Tomas Winkler
  0 siblings, 1 reply; 5+ messages in thread
From: Johannes Berg @ 2008-08-06 19:45 UTC (permalink / raw)
  To: John Linville; +Cc: linux-wireless

Otherwise, drivers are required to keep track of the sequence numbers
themselves, and they really shouldn't be since we already do it for
them. I'll fix the race once we figure out how this code should work
at all, it's currently disabled.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
---
 net/mac80211/ht.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

--- everything.orig/net/mac80211/ht.c	2008-08-06 21:40:24.000000000 +0200
+++ everything/net/mac80211/ht.c	2008-08-06 21:43:42.000000000 +0200
@@ -78,7 +78,7 @@ int ieee80211_start_tx_ba_session(struct
 	struct ieee80211_local *local = hw_to_local(hw);
 	struct sta_info *sta;
 	struct ieee80211_sub_if_data *sdata;
-	u16 start_seq_num = 0;
+	u16 start_seq_num;
 	u8 *state;
 	int ret;
 	DECLARE_MAC_BUF(mac);
@@ -158,6 +158,9 @@ int ieee80211_start_tx_ba_session(struct
 	 * call back right away, it must see that the flow has begun */
 	*state |= HT_ADDBA_REQUESTED_MSK;
 
+	/* This is slightly racy because the queue isn't stopped */
+	start_seq_num = sta->tid_seq[tid];
+
 	if (local->ops->ampdu_action)
 		ret = local->ops->ampdu_action(hw, IEEE80211_AMPDU_TX_START,
 						ra, tid, &start_seq_num);



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

* Re: [PATCH] mac80211: fill start-sequence-number for BA session start
  2008-08-06 19:45 [PATCH] mac80211: fill start-sequence-number for BA session start Johannes Berg
@ 2008-08-06 22:42 ` Tomas Winkler
  2008-08-07  6:33   ` Johannes Berg
  0 siblings, 1 reply; 5+ messages in thread
From: Tomas Winkler @ 2008-08-06 22:42 UTC (permalink / raw)
  To: Johannes Berg; +Cc: John Linville, linux-wireless

On Wed, Aug 6, 2008 at 10:45 PM, Johannes Berg
<johannes@sipsolutions.net> wrote:
> Otherwise, drivers are required to keep track of the sequence numbers
> themselves, and they really shouldn't be since we already do it for
> them. I'll fix the race once we figure out how this code should work
> at all, it's currently disabled.
>
> Signed-off-by: Johannes Berg <johannes@sipsolutions.net>

Finally I know why nothing works in iwlwifi. This is most crucial
point of correct driver behavior.
There is direct  mapping between hw queue indexes and sequence numbers....
This is bad.

> ---
>  net/mac80211/ht.c |    5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)
>
> --- everything.orig/net/mac80211/ht.c   2008-08-06 21:40:24.000000000 +0200
> +++ everything/net/mac80211/ht.c        2008-08-06 21:43:42.000000000 +0200
> @@ -78,7 +78,7 @@ int ieee80211_start_tx_ba_session(struct
>        struct ieee80211_local *local = hw_to_local(hw);
>        struct sta_info *sta;
>        struct ieee80211_sub_if_data *sdata;
> -       u16 start_seq_num = 0;
> +       u16 start_seq_num;
>        u8 *state;
>        int ret;
>        DECLARE_MAC_BUF(mac);
> @@ -158,6 +158,9 @@ int ieee80211_start_tx_ba_session(struct
>         * call back right away, it must see that the flow has begun */
>        *state |= HT_ADDBA_REQUESTED_MSK;
>
> +       /* This is slightly racy because the queue isn't stopped */
> +       start_seq_num = sta->tid_seq[tid];
> +
>        if (local->ops->ampdu_action)
>                ret = local->ops->ampdu_action(hw, IEEE80211_AMPDU_TX_START,
>                                                ra, tid, &start_seq_num);
>
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>

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

* Re: [PATCH] mac80211: fill start-sequence-number for BA session start
  2008-08-06 22:42 ` Tomas Winkler
@ 2008-08-07  6:33   ` Johannes Berg
  2008-08-07 16:45     ` Tomas Winkler
  0 siblings, 1 reply; 5+ messages in thread
From: Johannes Berg @ 2008-08-07  6:33 UTC (permalink / raw)
  To: Tomas Winkler; +Cc: John Linville, linux-wireless

[-- Attachment #1: Type: text/plain, Size: 811 bytes --]

On Thu, 2008-08-07 at 01:42 +0300, Tomas Winkler wrote:
> On Wed, Aug 6, 2008 at 10:45 PM, Johannes Berg
> <johannes@sipsolutions.net> wrote:
> > Otherwise, drivers are required to keep track of the sequence numbers
> > themselves, and they really shouldn't be since we already do it for
> > them. I'll fix the race once we figure out how this code should work
> > at all, it's currently disabled.
> >
> > Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
> 
> Finally I know why nothing works in iwlwifi. This is most crucial
> point of correct driver behavior.
> There is direct  mapping between hw queue indexes and sequence numbers....
> This is bad.

Eh, this particular patch has nothing to do with iwlwifi at all because
iwlwifi overrides all sequence numbers anyway.

johannes

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

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

* Re: [PATCH] mac80211: fill start-sequence-number for BA session start
  2008-08-07  6:33   ` Johannes Berg
@ 2008-08-07 16:45     ` Tomas Winkler
  2008-08-07 16:56       ` Johannes Berg
  0 siblings, 1 reply; 5+ messages in thread
From: Tomas Winkler @ 2008-08-07 16:45 UTC (permalink / raw)
  To: Johannes Berg; +Cc: John Linville, linux-wireless

On Thu, Aug 7, 2008 at 9:33 AM, Johannes Berg <johannes@sipsolutions.net> wrote:
> On Thu, 2008-08-07 at 01:42 +0300, Tomas Winkler wrote:
>> On Wed, Aug 6, 2008 at 10:45 PM, Johannes Berg
>> <johannes@sipsolutions.net> wrote:
>> > Otherwise, drivers are required to keep track of the sequence numbers
>> > themselves, and they really shouldn't be since we already do it for
>> > them. I'll fix the race once we figure out how this code should work
>> > at all, it's currently disabled.
>> >
>> > Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
>>
>> Finally I know why nothing works in iwlwifi. This is most crucial
>> point of correct driver behavior.
>> There is direct  mapping between hw queue indexes and sequence numbers....
>> This is bad.
>
> Eh, this particular patch has nothing to do with iwlwifi at all because
> iwlwifi overrides all sequence numbers anyway.

I'm not referring to this patch but to expected behavior that was broken.
Second I'm not sure mac should keep track of sequence numbers. In
theory driver can drop packets in processing
and this may confuse sequence progress. I've already wrote about it...

Tomas

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

* Re: [PATCH] mac80211: fill start-sequence-number for BA session start
  2008-08-07 16:45     ` Tomas Winkler
@ 2008-08-07 16:56       ` Johannes Berg
  0 siblings, 0 replies; 5+ messages in thread
From: Johannes Berg @ 2008-08-07 16:56 UTC (permalink / raw)
  To: Tomas Winkler; +Cc: John Linville, linux-wireless

[-- Attachment #1: Type: text/plain, Size: 718 bytes --]

On Thu, 2008-08-07 at 19:45 +0300, Tomas Winkler wrote:

> I'm not referring to this patch but to expected behavior that was broken.

Ok.

> Second I'm not sure mac should keep track of sequence numbers. In
> theory driver can drop packets in processing
> and this may confuse sequence progress. I've already wrote about it...

Yeah, and that's why I've taken care to not change anything that would
affect iwlwifi although I'd like to :) But this would make it possible
to have ath9k not use its own sequence numbers if it doesn't drop frames
(and iwlwifi doesn't really drop frames any more anyway, so here's to
hoping you can at some point use the mac80211 provided sequence numbers
too)

johannes

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

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

end of thread, other threads:[~2008-08-07 16:57 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-08-06 19:45 [PATCH] mac80211: fill start-sequence-number for BA session start Johannes Berg
2008-08-06 22:42 ` Tomas Winkler
2008-08-07  6:33   ` Johannes Berg
2008-08-07 16:45     ` Tomas Winkler
2008-08-07 16:56       ` Johannes Berg

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