All of lore.kernel.org
 help / color / mirror / Atom feed
* [ath9k-devel] Unrealistic RSSI values being reported
@ 2011-11-03 19:28 Daniel Smith
  2011-11-03 23:10 ` Mohammed Shafi
  0 siblings, 1 reply; 16+ messages in thread
From: Daniel Smith @ 2011-11-03 19:28 UTC (permalink / raw)
  To: ath9k-devel

I recently upgraded to compat-wireless-3.1-rc8 from 
compat-wireless-2.6.39-1-sn and have discovered an interesting behavior. 
When in monitor mode I use the signal strength field reported in 
radiotap and with 3.1 I am now getting a range of values. The more 
interesting ones are all the frames reporting a signal of 110+ dBm. To 
see what is being pulled from the descriptors I dumped rs->rs_rssi to 
klog when the value was larger than 95. Below is a snippet showing the 
ranging values,

Nov  3 15:00:03 dpsmith-dev-system kernel: [ 5319.907908] [ath9k]: RSSI 107
Nov  3 15:00:03 dpsmith-dev-system kernel: [ 5319.911697] [ath9k]: RSSI -61
Nov  3 15:00:03 dpsmith-dev-system kernel: [ 5319.913553] [ath9k]: RSSI -119
Nov  3 15:00:03 dpsmith-dev-system kernel: [ 5319.913562] [ath9k]: RSSI -59
Nov  3 15:00:03 dpsmith-dev-system kernel: [ 5319.913570] [ath9k]: RSSI -94
Nov  3 15:00:03 dpsmith-dev-system kernel: [ 5319.915880] [ath9k]: RSSI 119
Nov  3 15:00:03 dpsmith-dev-system kernel: [ 5319.915890] [ath9k]: RSSI -109
Nov  3 15:00:03 dpsmith-dev-system kernel: [ 5319.915898] [ath9k]: RSSI 123
Nov  3 15:00:03 dpsmith-dev-system kernel: [ 5319.917743] [ath9k]: RSSI 101

A couple of data points,
  1. I have tested two different cards, one having AR9106+AR9160 and one 
with an AR9382.

  2. It appears that it is always the same devices that this occurs for, 
e.g. pretty confident there are some devices that I collected that I did 
not see anything out of the 3-10dBm range

I know 2.6.39 -> 3.1 is a bit of a jump, but I wanted to push this to 
the community to see if there are some thoughts or opinions while I dig 
deeper. My next step is to see if it occurs in 3.0 which should help 
give me a narrow set of patches to review/bisect to see at what point 
this was introduced. I would suspect it to be an initval issue, but the 
two chips I have should have different initval sets. Any thoughts or 
suggestions would be greatly appreciated.

dps

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

* [ath9k-devel] Unrealistic RSSI values being reported
  2011-11-03 19:28 [ath9k-devel] Unrealistic RSSI values being reported Daniel Smith
@ 2011-11-03 23:10 ` Mohammed Shafi
  2011-11-04 11:27   ` Daniel Smith
  2011-11-04 17:50   ` Daniel Smith
  0 siblings, 2 replies; 16+ messages in thread
From: Mohammed Shafi @ 2011-11-03 23:10 UTC (permalink / raw)
  To: ath9k-devel

Hi Daniel,

On Fri, Nov 4, 2011 at 12:58 AM, Daniel Smith <viscous.liquid@gmail.com> wrote:
> I recently upgraded to compat-wireless-3.1-rc8 from
> compat-wireless-2.6.39-1-sn and have discovered an interesting behavior.
> When in monitor mode I use the signal strength field reported in
> radiotap and with 3.1 I am now getting a range of values. The more
> interesting ones are all the frames reporting a signal of 110+ dBm. To
> see what is being pulled from the descriptors I dumped rs->rs_rssi to
> klog when the value was larger than 95. Below is a snippet showing the
> ranging values,

i tried with the AR9382 card in 3.1.0-wl with the attached debug
patch, can you please give a sample log with the patch applied and
putting the interface in monitor mode. did you print/check rs_rssi
somewhere else?
did you also try with the latest package
http://linuxwireless.org/download/compat-wireless-2.6/

>
> Nov ?3 15:00:03 dpsmith-dev-system kernel: [ 5319.907908] [ath9k]: RSSI 107
> Nov ?3 15:00:03 dpsmith-dev-system kernel: [ 5319.911697] [ath9k]: RSSI -61
> Nov ?3 15:00:03 dpsmith-dev-system kernel: [ 5319.913553] [ath9k]: RSSI -119
> Nov ?3 15:00:03 dpsmith-dev-system kernel: [ 5319.913562] [ath9k]: RSSI -59
> Nov ?3 15:00:03 dpsmith-dev-system kernel: [ 5319.913570] [ath9k]: RSSI -94
> Nov ?3 15:00:03 dpsmith-dev-system kernel: [ 5319.915880] [ath9k]: RSSI 119
> Nov ?3 15:00:03 dpsmith-dev-system kernel: [ 5319.915890] [ath9k]: RSSI -109
> Nov ?3 15:00:03 dpsmith-dev-system kernel: [ 5319.915898] [ath9k]: RSSI 123
> Nov ?3 15:00:03 dpsmith-dev-system kernel: [ 5319.917743] [ath9k]: RSSI 101
>
> A couple of data points,
> ?1. I have tested two different cards, one having AR9106+AR9160 and one
> with an AR9382.
>
> ?2. It appears that it is always the same devices that this occurs for,
> e.g. pretty confident there are some devices that I collected that I did
> not see anything out of the 3-10dBm range
>
> I know 2.6.39 -> 3.1 is a bit of a jump, but I wanted to push this to
> the community to see if there are some thoughts or opinions while I dig
> deeper. My next step is to see if it occurs in 3.0 which should help
> give me a narrow set of patches to review/bisect to see at what point
> this was introduced. I would suspect it to be an initval issue, but the
> two chips I have should have different initval sets. Any thoughts or
> suggestions would be greatly appreciated.
>
> dps
>
> _______________________________________________
> ath9k-devel mailing list
> ath9k-devel at lists.ath9k.org
> https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>



-- 
shafi
-------------- next part --------------
A non-text attachment was scrubbed...
Name: print-rssi.patch
Type: text/x-diff
Size: 631 bytes
Desc: not available
Url : http://lists.ath9k.org/pipermail/ath9k-devel/attachments/20111104/2a7fa2e3/attachment.patch 

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

* [ath9k-devel] Unrealistic RSSI values being reported
  2011-11-03 23:10 ` Mohammed Shafi
@ 2011-11-04 11:27   ` Daniel Smith
  2011-11-04 12:44     ` Mohammed Shafi
  2011-11-23  6:06     ` Mohammed Shafi
  2011-11-04 17:50   ` Daniel Smith
  1 sibling, 2 replies; 16+ messages in thread
From: Daniel Smith @ 2011-11-04 11:27 UTC (permalink / raw)
  To: ath9k-devel

On 11/3/2011 7:10 PM, Mohammed Shafi wrote:
> Hi Daniel,
>
> On Fri, Nov 4, 2011 at 12:58 AM, Daniel Smith<viscous.liquid@gmail.com>  wrote:
>> I recently upgraded to compat-wireless-3.1-rc8 from
>> compat-wireless-2.6.39-1-sn and have discovered an interesting behavior.
>> When in monitor mode I use the signal strength field reported in
>> radiotap and with 3.1 I am now getting a range of values. The more
>> interesting ones are all the frames reporting a signal of 110+ dBm. To
>> see what is being pulled from the descriptors I dumped rs->rs_rssi to
>> klog when the value was larger than 95. Below is a snippet showing the
>> ranging values,
> i tried with the AR9382 card in 3.1.0-wl with the attached debug
> patch, can you please give a sample log with the patch applied and
> putting the interface in monitor mode. did you print/check rs_rssi
> somewhere else?
> did you also try with the latest package
> http://linuxwireless.org/download/compat-wireless-2.6/

First I apologize as I forgot to mention I am putting the channel into 
HT40 mode and the frames coming in are non-HT as that is the stated that 
the issue was reported to me. I have not ran test yet to see if it 
occurs with the channel in HT20 and non-ht mode. Also I have one more 
test to run on compat-wireless-3.0-2 but it looks like I am not seeing 
any issue with it.

For reference here is the patch from my change, very similar to yours 
except that I didn't dump signal or noise.

@@ -1015,6 +1015,8 @@ static int ath9k_rx_skb_preprocess(struct 
ath_common *common,
         rx_status->snr = rx_stats->rs_rssi;
         rx_status->antenna = rx_stats->rs_antenna;
         rx_status->flag |= RX_FLAG_MACTIME_MPDU;
+       if (rx_stats->rs_rssi > 95 || rx_stats->rs_rssi < 0)
+               printk("[ath9k]: RSSI %hhd\n", rx_stats->rs_rssi);

         return 0;
  }

I will rerun it with your additions so you can see those values as well. 
Yes I can also test it with a nightly package to see if it has been 
resolved.

Thanks for the Help!

dps

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

* [ath9k-devel] Unrealistic RSSI values being reported
  2011-11-04 11:27   ` Daniel Smith
@ 2011-11-04 12:44     ` Mohammed Shafi
  2011-11-23  6:06     ` Mohammed Shafi
  1 sibling, 0 replies; 16+ messages in thread
From: Mohammed Shafi @ 2011-11-04 12:44 UTC (permalink / raw)
  To: ath9k-devel

On Fri, Nov 4, 2011 at 4:57 PM, Daniel Smith <viscous.liquid@gmail.com> wrote:
> On 11/3/2011 7:10 PM, Mohammed Shafi wrote:
>> Hi Daniel,
>>
>> On Fri, Nov 4, 2011 at 12:58 AM, Daniel Smith<viscous.liquid@gmail.com> ?wrote:
>>> I recently upgraded to compat-wireless-3.1-rc8 from
>>> compat-wireless-2.6.39-1-sn and have discovered an interesting behavior.
>>> When in monitor mode I use the signal strength field reported in
>>> radiotap and with 3.1 I am now getting a range of values. The more
>>> interesting ones are all the frames reporting a signal of 110+ dBm. To
>>> see what is being pulled from the descriptors I dumped rs->rs_rssi to
>>> klog when the value was larger than 95. Below is a snippet showing the
>>> ranging values,
>> i tried with the AR9382 card in 3.1.0-wl with the attached debug
>> patch, can you please give a sample log with the patch applied and
>> putting the interface in monitor mode. did you print/check rs_rssi
>> somewhere else?
>> did you also try with the latest package
>> http://linuxwireless.org/download/compat-wireless-2.6/
>
> First I apologize as I forgot to mention I am putting the channel into
> HT40 mode and the frames coming in are non-HT as that is the stated that
> the issue was reported to me. I have not ran test yet to see if it
> occurs with the channel in HT20 and non-ht mode. Also I have one more
> test to run on compat-wireless-3.0-2 but it looks like I am not seeing
> any issue with it.
>
> For reference here is the patch from my change, very similar to yours
> except that I didn't dump signal or noise.
>
> @@ -1015,6 +1015,8 @@ static int ath9k_rx_skb_preprocess(struct
> ath_common *common,
> ? ? ? ? rx_status->snr = rx_stats->rs_rssi;
> ? ? ? ? rx_status->antenna = rx_stats->rs_antenna;
> ? ? ? ? rx_status->flag |= RX_FLAG_MACTIME_MPDU;
> + ? ? ? if (rx_stats->rs_rssi > 95 || rx_stats->rs_rssi < 0)
> + ? ? ? ? ? ? ? printk("[ath9k]: RSSI %hhd\n", rx_stats->rs_rssi);

hi Daniel,

some values i got
signal = noise + rs_rssi

noise = -95 , rs_rssi = 55, signal = -40
rs_rssi has values like 65, 57, 52, 29, 53, 55, 21 , 35 , 50.
sure values > 95 does not seems to occur for me.  sure i can try with
HT40 mode and put these prints
will be out of station for 3 days, will try to debug once , hope some
other developers might provide more inputs


>
> ? ? ? ? return 0;
> ?}
>
> I will rerun it with your additions so you can see those values as well.
> Yes I can also test it with a nightly package to see if it has been
> resolved.
>
> Thanks for the Help!
>
> dps
>
> _______________________________________________
> ath9k-devel mailing list
> ath9k-devel at lists.ath9k.org
> https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>



-- 
shafi

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

* [ath9k-devel] Unrealistic RSSI values being reported
  2011-11-03 23:10 ` Mohammed Shafi
  2011-11-04 11:27   ` Daniel Smith
@ 2011-11-04 17:50   ` Daniel Smith
  2011-11-08 15:04     ` Mohammed Shafi
  1 sibling, 1 reply; 16+ messages in thread
From: Daniel Smith @ 2011-11-04 17:50 UTC (permalink / raw)
  To: ath9k-devel

On 11/3/2011 7:10 PM, Mohammed Shafi wrote:
> Hi Daniel,
>
> i tried with the AR9382 card in 3.1.0-wl with the attached debug
> patch, can you please give a sample log with the patch applied and
> putting the interface in monitor mode. did you print/check rs_rssi
> somewhere else?
> did you also try with the latest package
> http://linuxwireless.org/download/compat-wireless-2.6/
>

Alright, so I built compat-wireless-2011-11-03 (the latest when I looked 
this morning), although in klog it reported as 
compat-wireless-2011-10-14. Below are snippets from the logs. Some 
things I noticed is that for beacons and probes I am get acceptable 
values, but traffic(data) frames are the ones that have the unrealistic 
values,. Although if the AR9832 really had a RX sensitivity of -198dB, 
as it claims on one of the frames, we could set some serious distance 
records (^_^).

Configuration commands,
iw wlan9 set type monitor
iw wlan9 set channel 4 HT40+

Version info:
Nov  4 12:37:23 dpsmith-dev-system kernel: [83160.841129] 
Compat-wireless backport release: compat-wireless-2011-10-14
Nov  4 12:37:23 dpsmith-dev-system kernel: [83160.841138] Backport based 
on linux-next.git next-20111025


The AR9382 card:
Nov  4 12:37:24 dpsmith-dev-system kernel: [83160.930301] ieee80211 
phy0: Atheros AR9300 Rev:3 mem=0xfd7c0000, irq=16
Nov  4 12:37:24 dpsmith-dev-system kernel: [83160.930337] ath9k 
0000:0c:08.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18


The AR9160 card:
Nov  4 12:37:25 dpsmith-dev-system kernel: [83162.531047] ieee80211 
phy1: Atheros AR9160 MAC/BB Rev:1 AR5133 RF Rev:b0 mem=0xfd800000, irq=18
Nov  4 12:37:25 dpsmith-dev-system kernel: [83162.531072] ath9k 
0000:0c:09.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19


AR9160 beacons and probes,
Nov  4 12:38:09 dpsmith-dev-system kernel: [83205.921245] noise = -88, 
rs_rssi = 43, signal =-45
Nov  4 12:38:09 dpsmith-dev-system kernel: [83206.023657] noise = -88, 
rs_rssi = 40, signal =-48
Nov  4 12:38:09 dpsmith-dev-system kernel: [83206.126067] noise = -88, 
rs_rssi = 40, signal =-48
Nov  4 12:38:09 dpsmith-dev-system kernel: [83206.161743] noise = -88, 
rs_rssi = 39, signal =-49
Nov  4 12:38:09 dpsmith-dev-system kernel: [83206.224044] noise = -88, 
rs_rssi = 41, signal =-47
Nov  4 12:38:09 dpsmith-dev-system kernel: [83206.224052] noise = -88, 
rs_rssi = 6, signal =-82
Nov  4 12:38:09 dpsmith-dev-system kernel: [83206.228482] noise = -88, 
rs_rssi = 39, signal =-49
Nov  4 12:38:09 dpsmith-dev-system kernel: [83206.330891] noise = -88, 
rs_rssi = 41, signal =-47
Nov  4 12:38:09 dpsmith-dev-system kernel: [83206.433304] noise = -88, 
rs_rssi = 41, signal =-47
Nov  4 12:38:09 dpsmith-dev-system kernel: [83206.535713] noise = -88, 
rs_rssi = 42, signal =-46


AR9160 large values (obtained with: cat kern.log-wlan9-11-03 |grep 
'noise' | grep -v '=-'),
Nov  4 12:48:44 dpsmith-dev-system kernel: [83841.704886] noise = -88, 
rs_rssi = 99, signal =11
Nov  4 12:48:44 dpsmith-dev-system kernel: [83841.707048] noise = -88, 
rs_rssi = 114, signal =26
Nov  4 12:48:44 dpsmith-dev-system kernel: [83841.707061] noise = -88, 
rs_rssi = 107, signal =19
Nov  4 12:48:44 dpsmith-dev-system kernel: [83841.713837] noise = -88, 
rs_rssi = 121, signal =33
Nov  4 12:48:44 dpsmith-dev-system kernel: [83841.800813] noise = -88, 
rs_rssi = 114, signal =26
Nov  4 12:48:44 dpsmith-dev-system kernel: [83841.800849] noise = -88, 
rs_rssi = 114, signal =26
Nov  4 12:48:44 dpsmith-dev-system kernel: [83841.803943] noise = -88, 
rs_rssi = 114, signal =26
Nov  4 12:48:44 dpsmith-dev-system kernel: [83841.812570] noise = -88, 
rs_rssi = 91, signal =3
Nov  4 12:48:44 dpsmith-dev-system kernel: [83841.833527] noise = -88, 
rs_rssi = 91, signal =3
Nov  4 12:48:44 dpsmith-dev-system kernel: [83841.852020] noise = -88, 
rs_rssi = 122, signal =34
Nov  4 12:48:44 dpsmith-dev-system kernel: [83841.867188] noise = -88, 
rs_rssi = 97, signal =9
Nov  4 12:48:44 dpsmith-dev-system kernel: [83841.883733] noise = -88, 
rs_rssi = 124, signal =36
Nov  4 12:48:44 dpsmith-dev-system kernel: [83841.887835] noise = -88, 
rs_rssi = 124, signal =36

Nov  4 12:48:45 dpsmith-dev-system kernel: [83842.222768] noise = -88, 
rs_rssi = -70, signal =-158
Nov  4 12:48:45 dpsmith-dev-system kernel: [83842.225734] noise = -88, 
rs_rssi = -57, signal =-145
Nov  4 12:48:45 dpsmith-dev-system kernel: [83842.225744] noise = -88, 
rs_rssi = -100, signal =-188
Nov  4 12:48:45 dpsmith-dev-system kernel: [83842.228756] noise = -88, 
rs_rssi = -41, signal =-129
Nov  4 12:48:45 dpsmith-dev-system kernel: [83842.228766] noise = -88, 
rs_rssi = -50, signal =-138
Nov  4 12:48:45 dpsmith-dev-system kernel: [83842.238307] noise = -88, 
rs_rssi = -59, signal =-147
Nov  4 12:48:45 dpsmith-dev-system kernel: [83842.238317] noise = -88, 
rs_rssi = -41, signal =-129
Nov  4 12:48:45 dpsmith-dev-system kernel: [83842.239728] noise = -88, 
rs_rssi = -80, signal =-168
Nov  4 12:48:45 dpsmith-dev-system kernel: [83842.349986] noise = -88, 
rs_rssi = -92, signal =-180
Nov  4 12:48:45 dpsmith-dev-system kernel: [83842.349999] noise = -88, 
rs_rssi = -92, signal =-180
Nov  4 12:48:45 dpsmith-dev-system kernel: [83842.350009] noise = -88, 
rs_rssi = -18, signal =-106


AR9382 beacons and probes,
Nov  4 13:02:48 dpsmith-dev-system kernel: [84685.575367] noise = -95, 
rs_rssi = 28, signal =-67
Nov  4 13:02:48 dpsmith-dev-system kernel: [84685.577432] noise = -95, 
rs_rssi = 44, signal =-51
Nov  4 13:02:48 dpsmith-dev-system kernel: [84685.577445] noise = -95, 
rs_rssi = 48, signal =-47
Nov  4 13:02:48 dpsmith-dev-system kernel: [84685.578581] noise = -95, 
rs_rssi = 44, signal =-51
Nov  4 13:02:48 dpsmith-dev-system kernel: [84685.580742] noise = -95, 
rs_rssi = 45, signal =-50
Nov  4 13:02:48 dpsmith-dev-system kernel: [84685.580753] noise = -95, 
rs_rssi = 45, signal =-50
Nov  4 13:02:48 dpsmith-dev-system kernel: [84685.581369] noise = -95, 
rs_rssi = 47, signal =-48
Nov  4 13:02:48 dpsmith-dev-system kernel: [84685.582133] noise = -95, 
rs_rssi = 48, signal =-47
Nov  4 13:02:48 dpsmith-dev-system kernel: [84685.582771] noise = -95, 
rs_rssi = 48, signal =-47
Nov  4 13:02:48 dpsmith-dev-system kernel: [84685.582780] noise = -95, 
rs_rssi = 28, signal =-67
Nov  4 13:02:48 dpsmith-dev-system kernel: [84685.582788] noise = -95, 
rs_rssi = 49, signal =-46


AR9382 large values,
Nov  4 13:02:49 dpsmith-dev-system kernel: [84686.866417] noise = -95, 
rs_rssi = 117, signal =22
Nov  4 13:02:49 dpsmith-dev-system kernel: [84686.867481] noise = -95, 
rs_rssi = 100, signal =5
Nov  4 13:02:50 dpsmith-dev-system kernel: [84687.056185] noise = -95, 
rs_rssi = 108, signal =13
Nov  4 13:02:51 dpsmith-dev-system kernel: [84688.101812] noise = -95, 
rs_rssi = 121, signal =26
Nov  4 13:02:51 dpsmith-dev-system kernel: [84688.184731] noise = -95, 
rs_rssi = 118, signal =23
Nov  4 13:02:53 dpsmith-dev-system kernel: [84690.676674] noise = -95, 
rs_rssi = 116, signal =21
Nov  4 13:02:58 dpsmith-dev-system kernel: [84695.616568] noise = -95, 
rs_rssi = 120, signal =25
Nov  4 13:02:58 dpsmith-dev-system kernel: [84695.616578] noise = -95, 
rs_rssi = 102, signal =7
Nov  4 13:02:58 dpsmith-dev-system kernel: [84695.737242] noise = -95, 
rs_rssi = 106, signal =11
Nov  4 13:02:58 dpsmith-dev-system kernel: [84695.741015] noise = -95, 
rs_rssi = 109, signal =14

Nov  4 13:06:39 dpsmith-dev-system kernel: [84916.016861] noise = -95, 
rs_rssi = -103, signal =-198
Nov  4 13:06:39 dpsmith-dev-system kernel: [84916.017702] noise = -95, 
rs_rssi = -6, signal =-101
Nov  4 13:06:39 dpsmith-dev-system kernel: [84916.437538] noise = -95, 
rs_rssi = -91, signal =-186
Nov  4 13:06:39 dpsmith-dev-system kernel: [84916.443453] noise = -95, 
rs_rssi = -47, signal =-142
Nov  4 13:06:39 dpsmith-dev-system kernel: [84916.444890] noise = -95, 
rs_rssi = -59, signal =-154
Nov  4 13:06:39 dpsmith-dev-system kernel: [84916.446049] noise = -95, 
rs_rssi = -94, signal =-189
Nov  4 13:06:39 dpsmith-dev-system kernel: [84916.447909] noise = -95, 
rs_rssi = -22, signal =-117
Nov  4 13:06:39 dpsmith-dev-system kernel: [84916.452528] noise = -95, 
rs_rssi = -55, signal =-150
Nov  4 13:06:39 dpsmith-dev-system kernel: [84916.813274] noise = -95, 
rs_rssi = -43, signal =-138

v/r,
dps

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

* [ath9k-devel] Unrealistic RSSI values being reported
  2011-11-04 17:50   ` Daniel Smith
@ 2011-11-08 15:04     ` Mohammed Shafi
  2011-11-21 17:35       ` Daniel Smith
  0 siblings, 1 reply; 16+ messages in thread
From: Mohammed Shafi @ 2011-11-08 15:04 UTC (permalink / raw)
  To: ath9k-devel

On Fri, Nov 4, 2011 at 11:20 PM, Daniel Smith <viscous.liquid@gmail.com> wrote:
> On 11/3/2011 7:10 PM, Mohammed Shafi wrote:
>> Hi Daniel,
>>
>> i tried with the AR9382 card in 3.1.0-wl with the attached debug
>> patch, can you please give a sample log with the patch applied and
>> putting the interface in monitor mode. did you print/check rs_rssi
>> somewhere else?
>> did you also try with the latest package
>> http://linuxwireless.org/download/compat-wireless-2.6/
>>
>
> Alright, so I built compat-wireless-2011-11-03 (the latest when I looked
> this morning), although in klog it reported as
> compat-wireless-2011-10-14. Below are snippets from the logs. Some
> things I noticed is that for beacons and probes I am get acceptable
> values, but traffic(data) frames are the ones that have the unrealistic
> values,. Although if the AR9832 really had a RX sensitivity of -198dB,
> as it claims on one of the frames, we could set some serious distance
> records (^_^).
>
> Configuration commands,
> iw wlan9 set type monitor
> iw wlan9 set channel 4 HT40+
>
> Version info:
> Nov ?4 12:37:23 dpsmith-dev-system kernel: [83160.841129]
> Compat-wireless backport release: compat-wireless-2011-10-14
> Nov ?4 12:37:23 dpsmith-dev-system kernel: [83160.841138] Backport based
> on linux-next.git next-20111025
>
>
> The AR9382 card:
> Nov ?4 12:37:24 dpsmith-dev-system kernel: [83160.930301] ieee80211
> phy0: Atheros AR9300 Rev:3 mem=0xfd7c0000, irq=16
> Nov ?4 12:37:24 dpsmith-dev-system kernel: [83160.930337] ath9k
> 0000:0c:08.0: PCI INT A -> GSI 18 (level, low) -> IRQ 18
>
>
> The AR9160 card:
> Nov ?4 12:37:25 dpsmith-dev-system kernel: [83162.531047] ieee80211
> phy1: Atheros AR9160 MAC/BB Rev:1 AR5133 RF Rev:b0 mem=0xfd800000, irq=18
> Nov ?4 12:37:25 dpsmith-dev-system kernel: [83162.531072] ath9k
> 0000:0c:09.0: PCI INT A -> GSI 19 (level, low) -> IRQ 19
>
>
> AR9160 beacons and probes,
> Nov ?4 12:38:09 dpsmith-dev-system kernel: [83205.921245] noise = -88,
> rs_rssi = 43, signal =-45
> Nov ?4 12:38:09 dpsmith-dev-system kernel: [83206.023657] noise = -88,
> rs_rssi = 40, signal =-48
> Nov ?4 12:38:09 dpsmith-dev-system kernel: [83206.126067] noise = -88,
> rs_rssi = 40, signal =-48
> Nov ?4 12:38:09 dpsmith-dev-system kernel: [83206.161743] noise = -88,
> rs_rssi = 39, signal =-49
> Nov ?4 12:38:09 dpsmith-dev-system kernel: [83206.224044] noise = -88,
> rs_rssi = 41, signal =-47
> Nov ?4 12:38:09 dpsmith-dev-system kernel: [83206.224052] noise = -88,
> rs_rssi = 6, signal =-82
> Nov ?4 12:38:09 dpsmith-dev-system kernel: [83206.228482] noise = -88,
> rs_rssi = 39, signal =-49
> Nov ?4 12:38:09 dpsmith-dev-system kernel: [83206.330891] noise = -88,
> rs_rssi = 41, signal =-47
> Nov ?4 12:38:09 dpsmith-dev-system kernel: [83206.433304] noise = -88,
> rs_rssi = 41, signal =-47
> Nov ?4 12:38:09 dpsmith-dev-system kernel: [83206.535713] noise = -88,
> rs_rssi = 42, signal =-46
>
>
> AR9160 large values (obtained with: cat kern.log-wlan9-11-03 |grep
> 'noise' | grep -v '=-'),
> Nov ?4 12:48:44 dpsmith-dev-system kernel: [83841.704886] noise = -88,
> rs_rssi = 99, signal =11
> Nov ?4 12:48:44 dpsmith-dev-system kernel: [83841.707048] noise = -88,
> rs_rssi = 114, signal =26
> Nov ?4 12:48:44 dpsmith-dev-system kernel: [83841.707061] noise = -88,
> rs_rssi = 107, signal =19
> Nov ?4 12:48:44 dpsmith-dev-system kernel: [83841.713837] noise = -88,
> rs_rssi = 121, signal =33
> Nov ?4 12:48:44 dpsmith-dev-system kernel: [83841.800813] noise = -88,
> rs_rssi = 114, signal =26
> Nov ?4 12:48:44 dpsmith-dev-system kernel: [83841.800849] noise = -88,
> rs_rssi = 114, signal =26
> Nov ?4 12:48:44 dpsmith-dev-system kernel: [83841.803943] noise = -88,
> rs_rssi = 114, signal =26
> Nov ?4 12:48:44 dpsmith-dev-system kernel: [83841.812570] noise = -88,
> rs_rssi = 91, signal =3
> Nov ?4 12:48:44 dpsmith-dev-system kernel: [83841.833527] noise = -88,
> rs_rssi = 91, signal =3
> Nov ?4 12:48:44 dpsmith-dev-system kernel: [83841.852020] noise = -88,
> rs_rssi = 122, signal =34
> Nov ?4 12:48:44 dpsmith-dev-system kernel: [83841.867188] noise = -88,
> rs_rssi = 97, signal =9
> Nov ?4 12:48:44 dpsmith-dev-system kernel: [83841.883733] noise = -88,
> rs_rssi = 124, signal =36
> Nov ?4 12:48:44 dpsmith-dev-system kernel: [83841.887835] noise = -88,
> rs_rssi = 124, signal =36
>
> Nov ?4 12:48:45 dpsmith-dev-system kernel: [83842.222768] noise = -88,
> rs_rssi = -70, signal =-158
> Nov ?4 12:48:45 dpsmith-dev-system kernel: [83842.225734] noise = -88,
> rs_rssi = -57, signal =-145
> Nov ?4 12:48:45 dpsmith-dev-system kernel: [83842.225744] noise = -88,
> rs_rssi = -100, signal =-188
> Nov ?4 12:48:45 dpsmith-dev-system kernel: [83842.228756] noise = -88,
> rs_rssi = -41, signal =-129
> Nov ?4 12:48:45 dpsmith-dev-system kernel: [83842.228766] noise = -88,
> rs_rssi = -50, signal =-138
> Nov ?4 12:48:45 dpsmith-dev-system kernel: [83842.238307] noise = -88,
> rs_rssi = -59, signal =-147
> Nov ?4 12:48:45 dpsmith-dev-system kernel: [83842.238317] noise = -88,
> rs_rssi = -41, signal =-129
> Nov ?4 12:48:45 dpsmith-dev-system kernel: [83842.239728] noise = -88,
> rs_rssi = -80, signal =-168
> Nov ?4 12:48:45 dpsmith-dev-system kernel: [83842.349986] noise = -88,
> rs_rssi = -92, signal =-180
> Nov ?4 12:48:45 dpsmith-dev-system kernel: [83842.349999] noise = -88,
> rs_rssi = -92, signal =-180
> Nov ?4 12:48:45 dpsmith-dev-system kernel: [83842.350009] noise = -88,
> rs_rssi = -18, signal =-106
>
>
> AR9382 beacons and probes,
> Nov ?4 13:02:48 dpsmith-dev-system kernel: [84685.575367] noise = -95,
> rs_rssi = 28, signal =-67
> Nov ?4 13:02:48 dpsmith-dev-system kernel: [84685.577432] noise = -95,
> rs_rssi = 44, signal =-51
> Nov ?4 13:02:48 dpsmith-dev-system kernel: [84685.577445] noise = -95,
> rs_rssi = 48, signal =-47
> Nov ?4 13:02:48 dpsmith-dev-system kernel: [84685.578581] noise = -95,
> rs_rssi = 44, signal =-51
> Nov ?4 13:02:48 dpsmith-dev-system kernel: [84685.580742] noise = -95,
> rs_rssi = 45, signal =-50
> Nov ?4 13:02:48 dpsmith-dev-system kernel: [84685.580753] noise = -95,
> rs_rssi = 45, signal =-50
> Nov ?4 13:02:48 dpsmith-dev-system kernel: [84685.581369] noise = -95,
> rs_rssi = 47, signal =-48
> Nov ?4 13:02:48 dpsmith-dev-system kernel: [84685.582133] noise = -95,
> rs_rssi = 48, signal =-47
> Nov ?4 13:02:48 dpsmith-dev-system kernel: [84685.582771] noise = -95,
> rs_rssi = 48, signal =-47
> Nov ?4 13:02:48 dpsmith-dev-system kernel: [84685.582780] noise = -95,
> rs_rssi = 28, signal =-67
> Nov ?4 13:02:48 dpsmith-dev-system kernel: [84685.582788] noise = -95,
> rs_rssi = 49, signal =-46
>
>
> AR9382 large values,
> Nov ?4 13:02:49 dpsmith-dev-system kernel: [84686.866417] noise = -95,
> rs_rssi = 117, signal =22
> Nov ?4 13:02:49 dpsmith-dev-system kernel: [84686.867481] noise = -95,
> rs_rssi = 100, signal =5
> Nov ?4 13:02:50 dpsmith-dev-system kernel: [84687.056185] noise = -95,
> rs_rssi = 108, signal =13
> Nov ?4 13:02:51 dpsmith-dev-system kernel: [84688.101812] noise = -95,
> rs_rssi = 121, signal =26
> Nov ?4 13:02:51 dpsmith-dev-system kernel: [84688.184731] noise = -95,
> rs_rssi = 118, signal =23
> Nov ?4 13:02:53 dpsmith-dev-system kernel: [84690.676674] noise = -95,
> rs_rssi = 116, signal =21
> Nov ?4 13:02:58 dpsmith-dev-system kernel: [84695.616568] noise = -95,
> rs_rssi = 120, signal =25
> Nov ?4 13:02:58 dpsmith-dev-system kernel: [84695.616578] noise = -95,
> rs_rssi = 102, signal =7
> Nov ?4 13:02:58 dpsmith-dev-system kernel: [84695.737242] noise = -95,
> rs_rssi = 106, signal =11
> Nov ?4 13:02:58 dpsmith-dev-system kernel: [84695.741015] noise = -95,
> rs_rssi = 109, signal =14
>
> Nov ?4 13:06:39 dpsmith-dev-system kernel: [84916.016861] noise = -95,
> rs_rssi = -103, signal =-198
> Nov ?4 13:06:39 dpsmith-dev-system kernel: [84916.017702] noise = -95,
> rs_rssi = -6, signal =-101
> Nov ?4 13:06:39 dpsmith-dev-system kernel: [84916.437538] noise = -95,
> rs_rssi = -91, signal =-186
> Nov ?4 13:06:39 dpsmith-dev-system kernel: [84916.443453] noise = -95,
> rs_rssi = -47, signal =-142
> Nov ?4 13:06:39 dpsmith-dev-system kernel: [84916.444890] noise = -95,
> rs_rssi = -59, signal =-154
> Nov ?4 13:06:39 dpsmith-dev-system kernel: [84916.446049] noise = -95,
> rs_rssi = -94, signal =-189
> Nov ?4 13:06:39 dpsmith-dev-system kernel: [84916.447909] noise = -95,
> rs_rssi = -22, signal =-117
> Nov ?4 13:06:39 dpsmith-dev-system kernel: [84916.452528] noise = -95,
> rs_rssi = -55, signal =-150
> Nov ?4 13:06:39 dpsmith-dev-system kernel: [84916.813274] noise = -95,
> rs_rssi = -43, signal =-138
>


Daniel,

thanks for the detail info. i will just do this. run a ping traffic
betweem some AP and another card say AR9280 and sniff those data
packets in my AR9382 to recreate what you are saying.

> v/r,
> dps
>
> _______________________________________________
> ath9k-devel mailing list
> ath9k-devel at lists.ath9k.org
> https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>



-- 
shafi

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

* [ath9k-devel] Unrealistic RSSI values being reported
  2011-11-08 15:04     ` Mohammed Shafi
@ 2011-11-21 17:35       ` Daniel Smith
  2011-11-21 20:09         ` Adrian Chadd
  0 siblings, 1 reply; 16+ messages in thread
From: Daniel Smith @ 2011-11-21 17:35 UTC (permalink / raw)
  To: ath9k-devel

Just wanted to follow-up to let everyone know the status and for
anyone people that may stumble on this from a search. Also, I have a
pcap file from one of the captures done with 2.6.39-1-sn if anyone
wants to inspect the frames themselves, just email me directly if
would like it.

Some observations made in limited testing across various version of
compat-wireless.
 * found that 2.6.39-1-sn exhibited the same behavior
 * it always seemed that it was HT traffic that this would occur with
 * tested an 802.11g client right next to the collection antenna, no frames
     from that client would trigger an invalid value
 * it was always the same two devices, an HTC phone and a Motorola phone
 * found that the per chain RSSIs were always valid even when the combined
     RSSI was not
 * when the combined RSSI was valid and not equal to the max per chain
     RSSI, it was typically was 7 dB or less

So with 2.6.39 demonstrating the behavior as well I did not want to expend
the effort to find a version that this bug did not occur in to do a bisect. To
that end I incorporated a fix-up/work-around/hack to attempt to detect
when a bad combined RSSI, and if so then substitute in the max per
chain RSSI.


@@ -566,9 +566,20 @@ EXPORT_SYMBOL(ath9k_hw_resettxqueue);
 int ath9k_hw_rxprocdesc(struct ath_hw *ah, struct ath_desc *ds,
                        struct ath_rx_status *rs, u64 tsf)
 {
+/* shamelessly stole from linux.h */
+#define max3(x, y, z) ({                        \
+       typeof(x) _max1 = (x);                  \
+       typeof(y) _max2 = (y);                  \
+       typeof(z) _max3 = (z);                  \
+       (void) (&_max1 == &_max2);              \
+       (void) (&_max1 == &_max3);              \
+       _max1 > _max2 ? (_max1 > _max3 ? _max1 : _max3) : \
+       (_max2 > _max3 ? _max2 : _max3); })
+
        struct ar5416_desc ads;
        struct ar5416_desc *adsp = AR5416DESC(ds);
        u32 phyerr;
+       int8_t max_rssi;

        if ((adsp->ds_rxstatus8 & AR_RxDone) == 0)
                return -EINPROGRESS;
@@ -604,6 +615,9 @@ int ath9k_hw_rxprocdesc(struct ath_hw *ah, struct
ath_desc *ds,
                rs->rs_rssi_ext2 = MS(ads.ds_rxstatus4,
                                                AR_RxRSSIAnt12);
        }
+       max_rssi = max3(rs->rs_rssi_ctl0,rs->rs_rssi_ctl1,rs->rs_rssi_ctl2);
+       if (unlikely( abs(rs->rs_rssi - max_rssi) > 10))
+               rs->rs_rssi = max_rssi;
        if (ads.ds_rxstatus8 & AR_RxKeyIdxValid)
                rs->rs_keyix = MS(ads.ds_rxstatus8, AR_KeyIdx);
        else
@@ -650,6 +664,7 @@ int ath9k_hw_rxprocdesc(struct ath_hw *ah, struct
ath_desc *ds,
        }

        return 0;
+#undef max3
 }
 EXPORT_SYMBOL(ath9k_hw_rxprocdesc);

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

* [ath9k-devel] Unrealistic RSSI values being reported
  2011-11-21 17:35       ` Daniel Smith
@ 2011-11-21 20:09         ` Adrian Chadd
  2011-11-22 17:42           ` Daniel Smith
  0 siblings, 1 reply; 16+ messages in thread
From: Adrian Chadd @ 2011-11-21 20:09 UTC (permalink / raw)
  To: ath9k-devel

Hi,

See if those valid or invalid RSSI's coincide with aggregate frames.

ath9k_process_rssi() has a bit of logic which only considers frames
that aren't part of continuing aggregate:

        if (rx_stats->rs_rssi != ATH9K_RSSI_BAD && !rx_stats->rs_moreaggr)
                ATH_RSSI_LPF(sc->last_rssi, rx_stats->rs_rssi);

.. ie, rs_moreaggr is set if the frame is part of an aggregate, clear
if it's not an aggregate or is the last frame in an aggregate.


Adrian

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

* [ath9k-devel] Unrealistic RSSI values being reported
  2011-11-21 20:09         ` Adrian Chadd
@ 2011-11-22 17:42           ` Daniel Smith
  2011-11-22 23:05             ` Adrian Chadd
  0 siblings, 1 reply; 16+ messages in thread
From: Daniel Smith @ 2011-11-22 17:42 UTC (permalink / raw)
  To: ath9k-devel

On 11/21/2011 3:09 PM, Adrian Chadd wrote:
> Hi,
>
> See if those valid or invalid RSSI's coincide with aggregate frames.
>
> ath9k_process_rssi() has a bit of logic which only considers frames
> that aren't part of continuing aggregate:
>
>          if (rx_stats->rs_rssi != ATH9K_RSSI_BAD&&  !rx_stats->rs_moreaggr)
>                  ATH_RSSI_LPF(sc->last_rssi, rx_stats->rs_rssi);
>
> .. ie, rs_moreaggr is set if the frame is part of an aggregate, clear
> if it's not an aggregate or is the last frame in an aggregate.
>
>
> Adrian


Hey Adrian!


Excellent call! So in mac.c:ath9k_hw_rxprocdesc() I put a three printk 
(in the following order) for when I detect the out-of-bounds rssi, an 
aggregate, and if there is more to the aggregate. As you can see below 
when my check is triggered on aggregate frames only.

Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.298868] [ath9k] frame 
is aggr: false
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.300420] [ath9k] 
overriding RSSI
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.300422] [ath9k] frame 
is aggr: true
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.300426] [ath9k] frame 
has more aggr: true
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.300433] [ath9k] 
overriding RSSI
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.300435] [ath9k] frame 
is aggr: true
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.300439] [ath9k] frame 
has more aggr: true
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.300444] [ath9k] 
overriding RSSI
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.300446] [ath9k] frame 
is aggr: true
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.300450] [ath9k] frame 
has more aggr: true
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.300456] [ath9k] frame 
is aggr: true
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.300460] [ath9k] frame 
has more aggr: true
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.302637] [ath9k] 
overriding RSSI
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.302641] [ath9k] frame 
is aggr: true
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.302645] [ath9k] frame 
has more aggr: true
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.302654] [ath9k] 
overriding RSSI
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.302657] [ath9k] frame 
is aggr: true
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.302662] [ath9k] frame 
has more aggr: true
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.302670] [ath9k] 
overriding RSSI
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.302674] [ath9k] frame 
is aggr: true
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.302679] [ath9k] frame 
has more aggr: true
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.302687] [ath9k] frame 
is aggr: true
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.302692] [ath9k] frame 
has more aggr: true
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.302700] [ath9k] frame 
is aggr: false
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.302707] [ath9k] frame 
is aggr: false
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.302714] [ath9k] 
overriding RSSI
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.302717] [ath9k] frame 
is aggr: true
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.302722] [ath9k] frame 
has more aggr: true
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.304683] [ath9k] 
overriding RSSI
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.304686] [ath9k] frame 
is aggr: true
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.304689] [ath9k] frame 
has more aggr: true
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.304696] [ath9k] 
overriding RSSI
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.304698] [ath9k] frame 
is aggr: true
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.304701] [ath9k] frame 
has more aggr: true
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.304707] [ath9k] frame 
is aggr: true
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.304710] [ath9k] frame 
has more aggr: true
Nov 22 12:20:03 dpsmith-dev-system kernel: [357695.304716] [ath9k] frame 
is aggr: false

To verify that it was only tripped on aggregate frames,

$ grep -A 1 overriding /var/log/kern.log|grep -B 1 false
Nov 22 08:09:09 dpsmith-dev-system kernel: [342641.360141] [ath9k] 
overriding RSSI
Nov 22 08:09:09 dpsmith-dev-system kernel: [342641.360145] [ath9k] frame 
is aggr: false
--
Nov 22 08:14:53 dpsmith-dev-system kernel: [342985.292829] [ath9k] 
overriding RSSI
Nov 22 08:14:53 dpsmith-dev-system kernel: [342985.292834] [ath9k] frame 
is aggr: false
--
Nov 22 08:21:23 dpsmith-dev-system kernel: [343375.366725] [ath9k] 
overriding RSSI
Nov 22 08:21:23 dpsmith-dev-system kernel: [343375.366729] [ath9k] frame 
is aggr: false
--
Nov 22 12:25:06 dpsmith-dev-system kernel: [357998.381999] [ath9k] 
overriding RSSI
Nov 22 12:25:06 dpsmith-dev-system kernel: [357998.382004] [ath9k] frame 
is aggr: false

I did not print the combined and max RSSI, but I think these four are 
anomalies where abs(combined - max) was slightly over 10. Which probably 
was valid as 10 was chosen as a guesstimate more than a scientifically 
proven value.

So the question I have is that, is there a reason not to run 
ath9k_process_rssi on frames from a monitor interface? From what I read 
of that function as long as last_rssi != ATH_RSSI_DUMMY_MARKER then 
rs->rs_rssi will get set to last_rssi, which gets recalculated just 
before one of these incidents.

Thanks for the help!

Daniel

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

* [ath9k-devel] Unrealistic RSSI values being reported
  2011-11-22 17:42           ` Daniel Smith
@ 2011-11-22 23:05             ` Adrian Chadd
  2011-11-23 13:44               ` Daniel Smith
  0 siblings, 1 reply; 16+ messages in thread
From: Adrian Chadd @ 2011-11-22 23:05 UTC (permalink / raw)
  To: ath9k-devel

On 23 November 2011 01:42, Daniel Smith <viscous.liquid@gmail.com> wrote:

> Excellent call! So in mac.c:ath9k_hw_rxprocdesc() I put a three printk
> (in the following order) for when I detect the out-of-bounds rssi, an
> aggregate, and if there is more to the aggregate. As you can see below
> when my check is triggered on aggregate frames only.

Ok. Does it trigger on aggregation frames w/ more, or not w/ more, or both?



adrian

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

* [ath9k-devel] Unrealistic RSSI values being reported
  2011-11-04 11:27   ` Daniel Smith
  2011-11-04 12:44     ` Mohammed Shafi
@ 2011-11-23  6:06     ` Mohammed Shafi
  2011-11-23 14:08       ` Daniel Smith
  1 sibling, 1 reply; 16+ messages in thread
From: Mohammed Shafi @ 2011-11-23  6:06 UTC (permalink / raw)
  To: ath9k-devel

On Fri, Nov 4, 2011 at 4:57 PM, Daniel Smith <viscous.liquid@gmail.com> wrote:
> On 11/3/2011 7:10 PM, Mohammed Shafi wrote:
>> Hi Daniel,
>>
>> On Fri, Nov 4, 2011 at 12:58 AM, Daniel Smith<viscous.liquid@gmail.com> ?wrote:
>>> I recently upgraded to compat-wireless-3.1-rc8 from
>>> compat-wireless-2.6.39-1-sn and have discovered an interesting behavior.
>>> When in monitor mode I use the signal strength field reported in
>>> radiotap and with 3.1 I am now getting a range of values. The more
>>> interesting ones are all the frames reporting a signal of 110+ dBm. To
>>> see what is being pulled from the descriptors I dumped rs->rs_rssi to
>>> klog when the value was larger than 95. Below is a snippet showing the
>>> ranging values,
>> i tried with the AR9382 card in 3.1.0-wl with the attached debug
>> patch, can you please give a sample log with the patch applied and
>> putting the interface in monitor mode. did you print/check rs_rssi
>> somewhere else?
>> did you also try with the latest package
>> http://linuxwireless.org/download/compat-wireless-2.6/
>
> First I apologize as I forgot to mention I am putting the channel into
> HT40 mode and the frames coming in are non-HT as that is the stated that
> the issue was reported to me. I have not ran test yet to see if it
> occurs with the channel in HT20 and non-ht mode. Also I have one more
> test to run on compat-wireless-3.0-2 but it looks like I am not seeing
> any issue with it.
>
> For reference here is the patch from my change, very similar to yours
> except that I didn't dump signal or noise.
>
> @@ -1015,6 +1015,8 @@ static int ath9k_rx_skb_preprocess(struct
> ath_common *common,
> ? ? ? ? rx_status->snr = rx_stats->rs_rssi;
> ? ? ? ? rx_status->antenna = rx_stats->rs_antenna;
> ? ? ? ? rx_status->flag |= RX_FLAG_MACTIME_MPDU;
> + ? ? ? if (rx_stats->rs_rssi > 95 || rx_stats->rs_rssi < 0)
> + ? ? ? ? ? ? ? printk("[ath9k]: RSSI %hhd\n", rx_stats->rs_rssi);
>
> ? ? ? ? return 0;
> ?}
>
> I will rerun it with your additions so you can see those values as well.
> Yes I can also test it with a nightly package to see if it has been
> resolved.

Hi Daniel,

sorry was busy with some other urgent work. a value upto 127 seems to
be valid for Atheros chipsets, bad -128
http://en.wikipedia.org/wiki/Received_signal_strength_indication  :)
further the negative value should be caught by the check in
ath9k_process_rssi unless my_beacon is 'false' hope i had not missed something.

        if (rx_stats->rs_rssi < 0)
                rx_stats->rs_rssi = 0;

i will test this behavior and do further investigation.


>
> Thanks for the Help!
>
> dps
>
> _______________________________________________
> ath9k-devel mailing list
> ath9k-devel at lists.ath9k.org
> https://lists.ath9k.org/mailman/listinfo/ath9k-devel
>



-- 
shafi

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

* [ath9k-devel] Unrealistic RSSI values being reported
  2011-11-22 23:05             ` Adrian Chadd
@ 2011-11-23 13:44               ` Daniel Smith
  2011-11-23 14:14                 ` Adrian Chadd
  0 siblings, 1 reply; 16+ messages in thread
From: Daniel Smith @ 2011-11-23 13:44 UTC (permalink / raw)
  To: ath9k-devel

On 11/22/2011 6:05 PM, Adrian Chadd wrote:
>
> Ok. Does it trigger on aggregation frames w/ more, or not w/ more, or both?
>
>
>
> adrian

So here is the observed patterns,
   * When the RSSI override is triggered, rs_isaggr and rs_moreaggr is 
set(true)
   * When rs_isaggr and rs_moreaggr is set, overwhelmingly of those had the
         RSSI overridden but there were a few that were not
   * When rs_isaggr is set and rs_moreaggr is not set, the RSSI was 
never overridden.

Based on this and thinking about how ath9k_process_rssi works I don't 
see any other way but to leave my fix-up. The alternative would be in 
user-space I will have to remember that the signal strength for an 
aggregate series will come from the last frame in the aggregate. Is 
there another way that I am not thinking of?

Daniel

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

* [ath9k-devel] Unrealistic RSSI values being reported
  2011-11-23  6:06     ` Mohammed Shafi
@ 2011-11-23 14:08       ` Daniel Smith
  0 siblings, 0 replies; 16+ messages in thread
From: Daniel Smith @ 2011-11-23 14:08 UTC (permalink / raw)
  To: ath9k-devel

On 11/23/2011 1:06 AM, Mohammed Shafi wrote:
>
> Hi Daniel,
>
> sorry was busy with some other urgent work. a value upto 127 seems to
> be valid for Atheros chipsets, bad -128
> http://en.wikipedia.org/wiki/Received_signal_strength_indication  :)
> further the negative value should be caught by the check in
> ath9k_process_rssi unless my_beacon is 'false' hope i had not missed something.
>
>          if (rx_stats->rs_rssi<  0)
>                  rx_stats->rs_rssi = 0;
>
> i will test this behavior and do further investigation.
>
>

Hey Shafi,

No worries, I completely understand.

So while 127 is a valid value for the chip, the reality is that it would 
not be (legally) possible. if the noise floor is -90dBm and the RSSI was 
127 then the signal power at the antenna would have been 37dBm. Even if 
the TX antenna was right next to the RX antenna that would still be more 
powerful than what is legally allowed by the FCC. In this case the 
devices creating the offending traffic are Android smartphones (a HTC 
and a Motorola; based off of MAC), which typically have a max tx power 
around 15dBm, which again with a -90dBm noise floor would have a RSSI of 
105 in a zero-loss free space. All those numbers are theoretical so for 
a baseline I set a Nokia N900 right next to the antenna (antenna is ~5' 
away and has a 6' coax whip) the largest signal strength (rssi + noise) 
I saw was -29dBm.

For testing, take a look at the analysis that Adrian and I have been 
pursuing. It seems that the invalid RSSI occur for aggregate frames when 
there are still additional frames left in the aggregate, i.e. rs_isaggr 
and rs_moreaggr are both set.

Thanks for taking some time to help look at this!

Daniel

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

* [ath9k-devel] Unrealistic RSSI values being reported
  2011-11-23 13:44               ` Daniel Smith
@ 2011-11-23 14:14                 ` Adrian Chadd
  2011-11-23 14:24                   ` Felix Fietkau
  0 siblings, 1 reply; 16+ messages in thread
From: Adrian Chadd @ 2011-11-23 14:14 UTC (permalink / raw)
  To: ath9k-devel

Ok, cool. So I was right. :)

Yes, the nice solution would be to expose those aggregate frame
boundary delimiters to userland and then only marking those frames
with valid RSSI .. well, somehow.

The nicer solution would be to buffer those frames in an aggregate and
then assign them all a common RSSI. But ew.



Adrian

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

* [ath9k-devel] Unrealistic RSSI values being reported
  2011-11-23 14:14                 ` Adrian Chadd
@ 2011-11-23 14:24                   ` Felix Fietkau
  2011-11-23 15:18                     ` Daniel Smith
  0 siblings, 1 reply; 16+ messages in thread
From: Felix Fietkau @ 2011-11-23 14:24 UTC (permalink / raw)
  To: ath9k-devel

On 2011-11-23 9:14 PM, Adrian Chadd wrote:
> Ok, cool. So I was right. :)
> 
> Yes, the nice solution would be to expose those aggregate frame
> boundary delimiters to userland and then only marking those frames
> with valid RSSI .. well, somehow.
> 
> The nicer solution would be to buffer those frames in an aggregate and
> then assign them all a common RSSI. But ew.
No need to buffer them in the driver, just do a lookahead on the DMA
ring. If necessary, defer processing until the last part of the
aggregate has been completed.

- Felix

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

* [ath9k-devel] Unrealistic RSSI values being reported
  2011-11-23 14:24                   ` Felix Fietkau
@ 2011-11-23 15:18                     ` Daniel Smith
  0 siblings, 0 replies; 16+ messages in thread
From: Daniel Smith @ 2011-11-23 15:18 UTC (permalink / raw)
  To: ath9k-devel

On Wed, Nov 23, 2011 at 9:24 AM, Felix Fietkau <nbd@openwrt.org> wrote:
> On 2011-11-23 9:14 PM, Adrian Chadd wrote:
>> Ok, cool. So I was right. :)
>>
>> Yes, the nice solution would be to expose those aggregate frame
>> boundary delimiters to userland and then only marking those frames
>> with valid RSSI .. well, somehow.
>>
>> The nicer solution would be to buffer those frames in an aggregate and
>> then assign them all a common RSSI. But ew.
> No need to buffer them in the driver, just do a lookahead on the DMA
> ring. If necessary, defer processing until the last part of the
> aggregate has been completed.
>
> - Felix


Adrian,
Yes you were right, excellent call on your part. m(_ _)m

Felix,
I think the former would be more straight forward. The question I have
is what is the cost/benefit of doing either. I think the situation is
a rare corner case that only affects the unique solution I support.
The main thing for me is that I now know it is just the way the
hardware handles aggregates and not something that is caused by the
driver. So for me i don't think the benefit of doing a look ahead,
ensure AR_RxDone  for the frame and then peak at the rssi versus just
doing a max3 and a small comparison to get a close approximation is
worth the cost of coding and a possible increased delay in processing
frames. Perhaps there is a more elegant way for the former, but I am
still not certain if the effort to code it is worth the reward of an
rssi that may or may not be any more accurate then the max of the
individual chains. But hey, I am willing to be convince otherwise.

Thanks for all the help, it is much appreciated.

Daniel

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

end of thread, other threads:[~2011-11-23 15:18 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-11-03 19:28 [ath9k-devel] Unrealistic RSSI values being reported Daniel Smith
2011-11-03 23:10 ` Mohammed Shafi
2011-11-04 11:27   ` Daniel Smith
2011-11-04 12:44     ` Mohammed Shafi
2011-11-23  6:06     ` Mohammed Shafi
2011-11-23 14:08       ` Daniel Smith
2011-11-04 17:50   ` Daniel Smith
2011-11-08 15:04     ` Mohammed Shafi
2011-11-21 17:35       ` Daniel Smith
2011-11-21 20:09         ` Adrian Chadd
2011-11-22 17:42           ` Daniel Smith
2011-11-22 23:05             ` Adrian Chadd
2011-11-23 13:44               ` Daniel Smith
2011-11-23 14:14                 ` Adrian Chadd
2011-11-23 14:24                   ` Felix Fietkau
2011-11-23 15:18                     ` Daniel Smith

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.