On Thu, 2005-02-03 at 09:28 -0500, Sven wrote: > since CVS-1-31 NM seems to use values for "Link Quality=x/y" (as in > seen iwconfig), and NM computes a percentage signal strength as x / y * > 100 (at least for me). earlier NM versions had ln x / ln y * 100. both > methods seem to be used in applets (eg, gwlan uses the logarithmic > method). now, being close my AP, gwlan reports 90%, while NM says 60%. i > understand the drivers also use different algorithms to come up with th
Something to remember is that WEXT allows drivers to report two different types of quality information. First, a subjective "quality" that may be composed of a number of attributes, like signal strength, noise threshold, dropped packets, transmission errors, collisions, etc. The second are the "level" and "noise" values, which are supposed to be raw RSSI (Relative Signal Strength Indicator) or dBm. Often cards will convert the rssi into dBm for you via magic numbers which are specific to the chipset's ability to measure the electrical power on the receive circuit. The "quality" value can be any number, but to be useful drivers must give a maximum quality value, otherwise you have no idea what the quality value is supposed to be. If you are given level, but no noise or maximum level, you are also out of luck. It doesn't do well to run % = log a / log b * 100, because drivers that report a pure percentage value for the "quality" value (like the atmel driver does), which is perfectly valid, would yield wierd results. For example, when I'm near the access point (but not next to it) on the atmel driver: Qual: 93 Max qual: 100 93/100 * 100 = 93% log (93) / log (100) * 100 = 98% Far away: Qual: 10 Max Qual: 100 10/100 = 10% log (10) / log (100) * 100 = 50% The driver is already telling us the quality and its quite useless to try to modify that value, even if you ignore that trying to do log() on % values is wrong. Drivers should _always_ fill in the maximum quality value if they report quality, but that value might change with each chipset revision or with each different RMFD that the card-builders use. It's more appropriate to use logarithmic functions on the level/noise numbers which are hopefully in dBm. But if the driver reports quality and max_quality, that's the value NetworkManager will prefer for good reason. If that value is wrong, the driver needs to be fixed. > signal/link quality numbers. i would be very grateful if somebody > (Bill?) could explain to me (off the list is fine) where these numbers > come from (signal - noise?, power?) and what they signify. and > ultimately, what a "correct" way of getting a % from these is. again, > it's probably driver specific, but i would be happy to have an answer > for a specific example (eg, ipw2200). for my card and driver, the x in > iwconfig's Link Quality seems to be just Noise Level - Signal Level. prism54 does this too, they use a simple "qual = signal - noise". Which is, IMHO, wrong. This stuff really just needs to get figured out and pushed upstream to driver people like Bill and I have been doing to the ipw2200 and atmel drivers, respectively. Dan _______________________________________________ NetworkManager-list mailing list [email protected] http://mail.gnome.org/mailman/listinfo/networkmanager-list
