[RFC] libertas: change quality calculation
Dan Williams
dcbw at redhat.com
Wed Mar 19 11:38:17 EDT 2008
On Wed, 2008-03-19 at 16:25 +0100, Holger Schurig wrote:
> > > I also found that the average noise floor is -86 dBm, not
> > > -96 dBm. So I changed this constant. Maybe this is wrong,
> > > what values do your cards report?
> >
> > When possible, we should use a window-ed average of the cards
> > reported noise from beacons or received frames instead of a
> > constant, that's a further improvement though.
>
> The changed value of MRVDRV_NF_DEFAULT_SCAN_VALUE is only used to
> magically conjure the missing noise value for scan results, see
> my other mail about this.
>
> Okay, it's also used in the case of a failed GET_RSSI command :-)
>
> > Well, when we had the (badly) averaged array values in there,
> > the noise floor was available to the scan reporting.
>
> Something might have been available for scan reporting, but if
> this "something" made sense is a different question. See my
> other mail :-)
>
> > There are tables to map RSSI -> dBm for each part which should
> > be in the firmware spec or seen in the driver code.
>
> I didn't see such a table so far, where is it?
See section 7.3 of the 5.1 spec:
7.3 RSSI and Noise Floor Support
The firmware supports the reporting of RSSI and Noise Floor values:
• RSSI can be derived by adding Noise Floor to SNR value
• Noise Floor is returned in each received packet through the NF field
in the Rx Descriptor (dBm).
• Signal Quality is determined by RSSI and SNR.
Section 3.1 as well (Receive Packet Descriptor):
"RSSI should be calculated in the driver as a summation of the SNR and
NF"
So Marvell doesn't really provide a table, but we'll have to do some
investigation here. The RSSI is almost always a random value defined by
the manufacturer [1] or in dBm. We're not 100% sure what Marvell is
using here, but some investigation will show whether the value is
actually in dBm or in some other units. A quick check of the RSSI
reported by the current BSS in scan results versus the output of
GET_RSSI might show something interesting.
Dan
More information about the libertas-dev
mailing list