Re: Signal Strength on Atheros?



On Sun, 2006-04-30 at 21:35 -0400, Darren Albers wrote:
> This was discussed in the past, the end result was that the Atheros
> card reports signal strength differently than other cards.  I think
> Robert Love posted a patch for it but it was not implemented since the
> NM devs want to avoid making special case exceptions.
> 
> Here are some links to previous discussions on the subject:
> http://mail.gnome.org/archives/networkmanager-list/2005-February/msg00063.html
> http://mail.gnome.org/archives/networkmanager-list/2006-January/msg00141.html
> 
> Here is the madwifi teams take on the subject:
> http://madwifi.org/wiki/UserDocs/RSSI

Current signal strength reporting for madwifi-ng is bogus and completely
broken WRT to the WE spec.

max_qual is set to the theoretical max value of the variable (a u8
type), and not the real-world max of the card.

The 'qual' field of the WE quality is for link "quality", which is
subjective, while the "level" field is for the link's actual radio
levels.

There are two options for the driver:

1) Actually use "quality": qual->qual must be bounded by 0 and
max_qual->qual, and must change in a linear fashion.  It is defined as a
relative value, and therefore is a percentage.  ipw2100 uses a signal
quality of 0 -> 100%, which is a combination of RSSI/dBm, packet loss,
link speed, missed beacons, etc.  That is good.

2) Use the absolute or relative "levels" values: max_qual->level is 0
and qual->level is a valid RSSI/dBm value, and qual->noise and/or
max_qual->noise is valid.  OR: max_qual->level > 0, and qual->level is
valid.

At least, that was the state when I last looked at the quality for
madwifi-ng, which was on Jan 26 2006, and also for r1475 from early
April.

My comments in the NM strength calculation are:

	/* If the driver doesn't specify a complete and valid quality, we have two options:
	 *
	 * 1) dBm: driver must specify max_qual->level = 0, and have valid values for
	 *        qual->level and (qual->noise OR max_qual->noise)
	 * 2) raw RSSI: driver must specify max_qual->level > 0, and have valid values for
	 *        qual->level and max_qual->level

Just leaving it in RSSI without doing the proper encoding is a cop-out.
It's not up to userspace to figure out WTF the quality is, it's up to
the driver to present a sane view of it to the world, because only the
driver knows about the variations between chipsets and radios that each
card uses.  Manufacturers have tables of how RSSI for their chipset and
radio map to dBm, and if the driver writers don't know that, then they
need to pick some empirical values and fake it.  Stick your antenna
right next to an access point, and see what the highest RSSI is.  Call
that 100%.  Walk away until the signal drops.  Call that 0%.  If you're
in RSSI, you don't have to do anything else; that's your 0 -> 100%
range.  If it's dBm, you have to code it from quadratic to linear.  But
that's pretty simple.  Madwifi kind of chickened out here.

But the patch wouldn't be all that big.  In reality, they've got bigger
problems, like not being upstream in the kernel and not using one of the
two softmac stacks that are now in the kernel (ipw+softmac and
devicescape).  Madwifi is the black sheep and getting more so every
month...

Dan

> On 4/30/06, Pat Suwalski <pat suwalski net> wrote:
> > Hello,
> >
> > My ath_pci card is showing signal strength at about half of what it
> > should be. This is consistent with how iwlist shows it, but the GNOME
> > wireless applet has always shown it correctly.
> >
> > I don't know off-hand if it's always special cased, but it looks like it
> > might have to be. Maybe when they support the wireless extensions this
> > will be fixed.
> >
> > Any ideas?
> >
> > --Pat
> > _______________________________________________
> > NetworkManager-list mailing list
> > NetworkManager-list gnome org
> > http://mail.gnome.org/mailman/listinfo/networkmanager-list
> >
> _______________________________________________
> NetworkManager-list mailing list
> NetworkManager-list gnome org
> http://mail.gnome.org/mailman/listinfo/networkmanager-list




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