Re: CVS-2-2 NMApplet signal bar



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




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]