Messages in this thread | | | Subject | Re: 31-rc3-mmotm0716 - wonky wireless statistics.. | From | Johannes Berg <> | Date | Wed, 29 Jul 2009 09:19:12 +0200 |
| |
On Wed, 2009-07-29 at 09:31 +0800, Zhu Yi wrote:
> > # cat /proc/net/wireless > > Inter-| sta-| Quality | Discarded packets | Missed | WE > > face | tus | link level noise | nwid crypt frag retry misc | beacon | 22 > > wlan0: 0000 63. -47. -256 0 0 0 0 0 0 > > wlan1: 0000 0 0 0 0 0 0 0 0 0 > > wlan2: 0000 0 0 0 0 0 0 0 0 0 > > > > Where did that -256 for "noise" come from? It ends up confusing the > > gkrellm-wifi plugin, it reports a S/N of 219dB ;) > > This should be related to http://git.kernel.org/?p=linux/kernel/git/linville/wireless-testing.git;a=commit;h=fdb897ea5c77836f890033d563336ab0c94c9222 > > But I don't think this is an ABI broken. User space should parse the > trailing '.' to see if a field is updated or not because there are cards > not capable to report hardware noise level anyway. Johannes?
So I had to look at the code to figure out wtf is going on.
Then the value shown is calculated as: ((__s32) stats->qual.noise) - ((stats->qual.updated & IW_QUAL_DBM) ? 0x100 : 0)
and since we have dBm for the signal strength (and dBm is "all or nothing") you get -256 since we don't fill noise right now.
However, it goes on like this: stats->qual.updated & IW_QUAL_NOISE_UPDATED ? '.' : ' '
so you're right -- the tool shouldn't be using the value unless followed by a dot (".").
Thus, your analysis is correct as far as I can tell -- it's a userspace bug and your userspace just happened to work correctly with this card, but would have been broken with almost all other wireless cards.
johannes [unhandled content-type:application/pgp-signature] | |