CVS-2-2 NMApplet empty bar explained
- From: Bill Moss <bmoss clemson edu>
- To: networkmanager list <networkmanager-list gnome org>
- Subject: CVS-2-2 NMApplet empty bar explained
- Date: Fri, 04 Feb 2005 01:00:20 -0500
Wireless drivers report two types of quality information: results for an
associated AP and a list of results for scanned AP's. These results are
reported using
struct iw_quality
{
uint8 qual;
uint8 level;
uint8 noise;
}
Unfortunately, as Dan pointed out in
http://www.redhat.com/archives/fedora-devel-list/2004-September/msg00767.html
drivers don't report the data in the same way for associated AP and
scanned AP's. As an example, consider ipw2200-1.0.0 and NM CVS-2-2 on my
T42, with these structures printed from NetworkManagerDevice.c. This is
my home network with only one SMC AP in the scan list.
Feb 3 23:58:45 localhost NetworkManager: Activation (eth1) successful,
device activated.
First, look at the results for the associated AP.
Feb 3 23:58:47 localhost NetworkManager:
nm_device_update_signal_strength stats.qual.qual=76
Feb 3 23:58:47 localhost NetworkManager:
nm_device_update_signal_strength stats.qual.level=203
Feb 3 23:58:47 localhost NetworkManager:
nm_device_update_signal_strength stats.qual.noise=175
These same values show up in /proc/net/wireless
Inter-| sta-| Quality | Discarded packets |
Missed | WE
face | tus | link level noise | nwid crypt frag retry misc |
beacon | 17
eth1: 0000 76. 203. 175. 0 0 0 0 0 0
and in the output of iwconfig
Link Quality=79/100 Signal level=-53 dBm Noise level=-81 dBm
The iwconfig level and noise values in dBm are obtained by substracting
256 from the unsigned values [0 - 255] in the proc file and NM output.
dBm is a measure of power.
The 79 is an RSSI value and 100 is RSSI_MAX. A quality percentage can be
computed as
(100 * RSSI) / RSSI_MAX
Some drivers provide a lookup table to convert from dBm to RSSI along
with RSSI_MAX. The ipw2200 driver does not do this. Instead, it
originally used a linear model to convert from dBm to RSSI but the
developers have accepted a more accurate quadratic model I submitted. I
based by model on matching the percentages reported by the Windows XP
driver for this card. That was the only thing I could think to do.
Now look at the results for the scanned AP's (list of one here). qual
and noise are reported as 0. This is why the CVS-2-2 NMApplet bar is
empty for the ipw2200 driver. NM uses the qual value of zero to create
the bar length. We can convert the level of 198 to -58 dBm but NM has no
idea how ipw2200 would convert this into a percentage. to make matters
worse the dBm range varies from driver to driver. We are stuck. There is
no way the NM nm_wireless_qual_to_percent function can deal with this. A
new nm_wireless_level_to_percent function could be created to do this
conversion but it would be guess work at best and impossible to
normalize across all drivers.
Feb 3 23:58:50 localhost NetworkManager:
nm_device_wireless_process_scan stats.qual.qual=0
Feb 3 23:58:50 localhost NetworkManager:
nm_device_wireless_process_scan stats.qual.level=198
Feb 3 23:58:50 localhost NetworkManager:
nm_device_wireless_process_scan stats.qual.noise=0
So what to do . . .
--
Bill Moss
Professor, Mathematical Sciences
Clemson University
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]