How to get Channel Condition Estimate from Cisco Aironet Driver

( Zhibin Wu)



A IEEE woirking group document about RSSI value


1. RSSI value ( Status_rid: normalized signal strength)
2. Retry count ( Stat_rid.vals[89] )
 

1. RSSI value

The RSSI value is read from the MAC controller registers.
It's still unknown that how often are those values are updated. By inquiry this value in the driver level, we can get different valuse withn one seconds, which means that this value is updaed in a rather high frequecncy.
But, the fundamentalquestion: Is RSSI value relevant to the estimate of channel condition ?
Is it a good indicator of incoming or happening fading which results a packet loss?
The graph showed below seems that even SNR is high ( this is  tested by channel throughput), the RSSI value is vibrating from 0 to 100.
 Test data is collected in Apr.4 1pm-3pm, every second 20 packets of variable length form 50B-1550B are transmited.

Some data are beyond the 0-100 range becasue there are some pike noise, and also value 49 is another typical noise ( reason unknown?).

To observe the exavt pattern of RSSI varaiation, the small graph is in some detail:
rssi_detail

Another interesting question is that what does RSSI mean when the signal itself sends a packet, the transmitting power is also measured by RSSI, or RSSI measurer is deaf to that?
 

2. Retry Count

This value is a statistic from the driver hardware, it would be more steady than the ever-changing RSSI value, the count is only increment when a packet-loss happened. And only reset to zero when the hardware is reset.
Test data is also collected in Apr.4 1pm-3pm, every second 20 packets of variable length form 50B-1550B are transmited.
../image/img_retry.jpg
 
 

3. The way to let user-space progran to know those values in driver :

1) ioctl
2) appending those values to a UDP packet, just modify the packet and replace the last several bytes of data content with RSSI value and Retry-count.
 

4. DATA file stored in: retry_0404.dat  rssi_0404.dat




To exchange packets in MAC level

The driver is only used by two device, Socket and ARP protocol,
the driver will accept packets frm ARP device  with dev.type = 802.11_ARPHDR
the default device is the IP socket.
 
 


+ /*
+  * The card provides an 8-bit signal strength value (RSSI), which can
+  * be converted to a dBm power value (or a percent) using a table in
+  * the card's firmware (when available).  The tables are slightly
+  * different in individual cards, even of the same model.  If the
+  * table is not available, the mapping can be approximated by dBm =
+  * RSSI - 100.  This approximation can be seen by plotting a few
+  * tables, and also matches some info on the Intersil web site (I
+  * think they make the RF front end for the cards.  However, the linux
+  * driver uses the approximation dBm = RSSI/2 - 95.  I think that is
+  * just wrong. 
+  */