2013-10-26 23:56:29

by Adrian Chadd

[permalink] [raw]
Subject: iwlegacy (4965) - what would 0x8000 as the completed TX rate indicate?

Hi all,

I'm debugging some issues that i see with the 4965 driver on FreeBSD. I
figure maybe someone here with experience with the iwlegacy driver may know.

I've set it up to do non-aggregate 11abg only traffic in my tests and I do
occasionally see the TX rate control completion status show the rate is
0x8000. I don't know to interpret it. It typically happens with the retry
count being non-zero, but there are also completed frames with non-zero
retry and normal rate results. The returned status is OK.

Here's an example:

Oct 26 16:06:11 lucy kernel: iwn4965_tx_done: qid 0 idx 210 retries 0 nkill
0 rate 4003 duration 294 status 201
Oct 26 16:06:11 lucy kernel: iwn4965_tx_done: qid 0 idx 211 retries 0 nkill
0 rate 4003 duration 182 status 201
Oct 26 16:06:11 lucy kernel: iwn4965_tx_done: qid 0 idx 212 retries 1 nkill
0 rate 8000 duration 616 status 201
Oct 26 16:06:12 lucy kernel: iwn4965_tx_done: qid 0 idx 213 retries 0 nkill
0 rate 4003 duration 294 status 201
Oct 26 16:06:12 lucy kernel: iwn4965_tx_done: qid 0 idx 214 retries 1 nkill
0 rate 8000 duration 292 status 201
Oct 26 16:06:12 lucy kernel: iwn4965_tx_done: qid 0 idx 215 retries 0 nkill
0 rate 4003 duration 86 status 201
Oct 26 16:06:12 lucy kernel: iwn4965_tx_done: qid 0 idx 216 retries 0 nkill
0 rate 4003 duration 86 status 201

I definitely am programming the initial rate control fine and the flags
field doesn't have the linkq stuff set, so it should be transmitting only
at that rate.

The status indicates things are transmitting and completing fine.

So, any ideas what that 0x8000 rate in the rate completion means?

Thanks!


-adrian


2013-10-30 08:04:14

by Johannes Berg

[permalink] [raw]
Subject: Re: iwlegacy (4965) - what would 0x8000 as the completed TX rate indicate?

On Tue, 2013-10-29 at 20:59 -0700, Adrian Chadd wrote:
> On 29 October 2013 01:03, Johannes Berg <[email protected]> wrote:
>
> >> Well, what's rate=0 mean?
> >>
> >> And 0x8000 is bit 11 set, which is HT40. I definitely don't have HT40 enabled.
> >
> > 0x8000 is bit 15 set, which means "antenna B", I think?
>
> Duh, sorry. was tired. :(
>
> > But then I can't seem to figure out what rate=0 means either. Should be
> > an OFDM rate (bit 9 not set) but 0 isn't a valid OFDM rate value. Hmm.
>
> That's why I'm confused too.
>
> I'm seeing some odd behaviour here where sometimes the NIC behaves
> fine, and sometimes it just gets long transmit failures on OFDM frames
> but is fine with CCK frames. That's why I'm digging into this.
>
> I also see the sensitivity tuning code lose the plot over time as OFDM
> errors are returned by the receiver and it keeps trying to compensate
> until it's maxed out the sensitivity tuning parameters. If I restart
> the NIC, it all comes back to normal for a while.
>
> Do any of these ring a bell?

Sorry, no.

johannes


2013-10-28 14:02:49

by Johannes Berg

[permalink] [raw]
Subject: Re: iwlegacy (4965) - what would 0x8000 as the completed TX rate indicate?

On Sat, 2013-10-26 at 16:56 -0700, Adrian Chadd wrote:
> Hi all,
>
> I'm debugging some issues that i see with the 4965 driver on FreeBSD. I
> figure maybe someone here with experience with the iwlegacy driver may know.

My 4965 knowledge is rusty ...

> I've set it up to do non-aggregate 11abg only traffic in my tests and I do
> occasionally see the TX rate control completion status show the rate is
> 0x8000. I don't know to interpret it. It typically happens with the retry
> count being non-zero, but there are also completed frames with non-zero
> retry and normal rate results. The returned status is OK.

> Oct 26 16:06:11 lucy kernel: iwn4965_tx_done: qid 0 idx 210 retries 0 nkill 0 rate 4003 duration 294 status 201
> Oct 26 16:06:11 lucy kernel: iwn4965_tx_done: qid 0 idx 211 retries 0 nkill 0 rate 4003 duration 182 status 201
> Oct 26 16:06:11 lucy kernel: iwn4965_tx_done: qid 0 idx 212 retries 1 nkill 0 rate 8000 duration 616 status 201
> Oct 26 16:06:12 lucy kernel: iwn4965_tx_done: qid 0 idx 213 retries 0 nkill 0 rate 4003 duration 294 status 201
> Oct 26 16:06:12 lucy kernel: iwn4965_tx_done: qid 0 idx 214 retries 1 nkill 0 rate 8000 duration 292 status 201
> Oct 26 16:06:12 lucy kernel: iwn4965_tx_done: qid 0 idx 215 retries 0 nkill 0 rate 4003 duration 86 status 201
> Oct 26 16:06:12 lucy kernel: iwn4965_tx_done: qid 0 idx 216 retries 0 nkill 0 rate 4003 duration 86 status 201
>
> I definitely am programming the initial rate control fine and the flags
> field doesn't have the linkq stuff set, so it should be transmitting only
> at that rate.
>
> The status indicates things are transmitting and completing fine.
>
> So, any ideas what that 0x8000 rate in the rate completion means?

I think that just means it used the other antenna and rate 0, since the
bits 0x1c000 contain the antenna bitmap that was used (up to three can
be used for each transmission)

johannes


2013-10-28 19:24:40

by Adrian Chadd

[permalink] [raw]
Subject: Re: iwlegacy (4965) - what would 0x8000 as the completed TX rate indicate?

Hi!

On 28 October 2013 07:02, Johannes Berg <[email protected]> wrote:

[snip]

>> The status indicates things are transmitting and completing fine.
>>
>> So, any ideas what that 0x8000 rate in the rate completion means?
>
> I think that just means it used the other antenna and rate 0, since the
> bits 0x1c000 contain the antenna bitmap that was used (up to three can
> be used for each transmission)

Well, what's rate=0 mean?

And 0x8000 is bit 11 set, which is HT40. I definitely don't have HT40 enabled.


-a

2013-10-30 03:59:32

by Adrian Chadd

[permalink] [raw]
Subject: Re: iwlegacy (4965) - what would 0x8000 as the completed TX rate indicate?

On 29 October 2013 01:03, Johannes Berg <[email protected]> wrote:

>> Well, what's rate=0 mean?
>>
>> And 0x8000 is bit 11 set, which is HT40. I definitely don't have HT40 enabled.
>
> 0x8000 is bit 15 set, which means "antenna B", I think?

Duh, sorry. was tired. :(

> But then I can't seem to figure out what rate=0 means either. Should be
> an OFDM rate (bit 9 not set) but 0 isn't a valid OFDM rate value. Hmm.

That's why I'm confused too.

I'm seeing some odd behaviour here where sometimes the NIC behaves
fine, and sometimes it just gets long transmit failures on OFDM frames
but is fine with CCK frames. That's why I'm digging into this.

I also see the sensitivity tuning code lose the plot over time as OFDM
errors are returned by the receiver and it keeps trying to compensate
until it's maxed out the sensitivity tuning parameters. If I restart
the NIC, it all comes back to normal for a while.

Do any of these ring a bell?

Thanks,


-adrian

2013-10-29 08:03:47

by Johannes Berg

[permalink] [raw]
Subject: Re: iwlegacy (4965) - what would 0x8000 as the completed TX rate indicate?

On Mon, 2013-10-28 at 12:24 -0700, Adrian Chadd wrote:

> >> So, any ideas what that 0x8000 rate in the rate completion means?
> >
> > I think that just means it used the other antenna and rate 0, since the
> > bits 0x1c000 contain the antenna bitmap that was used (up to three can
> > be used for each transmission)
>
> Well, what's rate=0 mean?
>
> And 0x8000 is bit 11 set, which is HT40. I definitely don't have HT40 enabled.

0x8000 is bit 15 set, which means "antenna B", I think?

But then I can't seem to figure out what rate=0 means either. Should be
an OFDM rate (bit 9 not set) but 0 isn't a valid OFDM rate value. Hmm.

johannes