PDA

Bekijk de volledige versie : Simple clients signal level measuring



pekr
27-02-2005, 04:22
Here is simle script for measuring signal level from clients as seen at the AP radio.

Instalation:
> login using telnet to AP
cd /tmp/local
vi rssi
> press 'a' and paste rssi.txt
> press ESC and enter ':wq'
vi rssi2
> press 'a' and paste rssi2.txt
> press ESC and enter ':wq'
chmod +x rssi*
flashfs save
flashfs commit
flashfs enable

Now the script is saved in flash and you can run it with:
/tmp/local/rssi

Signal level is (probably) updated whenever AP receive packet from client.
I found it usefull for troubleshooting poor radio performace - low signal level from one client makes radio transmit at lower rate whenever it talks to this client.
Maybe Oleg should put something like this in the new FW release?
It would be nice to see the results via web management too ;-)


Here is a little 'screenshot':
-------------------------------------------------------
rate is 54 Mbps
xx:xx:xx:xx:xx:xx -80 ********************
xx:xx:xx:xx:xx:xx -76 ************************
xx:xx:xx:xx:xx:xx -85 ***************
xx:xx:xx:xx:xx:xx -71 *****************************
-------------------------------------------------------
MACs are replaced with xx for some reason.

And yes, this script can be executed remotely via telnet wireless connection to the AP as it doesn't switch off radio.

tomilius
10-03-2005, 01:35
Thanks :D!

WlanMan
10-03-2005, 15:48
Hi

Cool thing, no way.
How about reverse lookup in the dhcp table to get IPīs ? :rolleyes:

Greets

Quoing
16-03-2005, 19:58
Hi
Cool thing, no way. How about reverse lookup in the dhcp table to get IPīs ? :rolleyes:
Greets

I modified scripts above a bit. It is single script and it shows also IP address assigned to MAC by dnsmasq.



#/bin/sh

while (true); do
echo -e "\033[2J" #clear screen
al=`wl assoclist | sed s/assoclist\ //`
wl rate #write wifi rate

for i in $al; do
echo -n "$i |"
sig=`wl rssi $i | sed s/rssi\ is\ //`
if [ $sig -eq "0" ]; then echo -n " "; sig="N/A";
else
if [ $sig -gt "-90" ]; then echo -n "*"; else echo -n " "; fi
if [ $sig -gt "-80" ]; then echo -n "*"; else echo -n " "; fi
if [ $sig -gt "-70" ]; then echo -n "*"; else echo -n " "; fi
if [ $sig -gt "-60" ]; then echo -n "*"; else echo -n " "; fi
if [ $sig -gt "-50" ]; then echo -n "*"; else echo -n " "; fi
fi
echo -n "| $sig | "

#get IP from dnsmasq dhcp log
ip=`cat /tmp/dnsmasq.log | grep -i $i`
if [ "$ip" != "" ]; then
i=0 #index
for field in $ip; do
i=`expr $i + 1` #increment index
if [ $i -eq "3" ]; then #third field is IP address
echo $field
fi
done
fi
done
sleep 1
done


Output looks like this:


rate is 11 Mbps
XX:XX:XX:XX:XX:XX |* | -86 | 192.168.1.1
XX:XX:XX:XX:XX:XX |** | -76 | 192.168.1.2

britnet
18-03-2005, 09:33
Nice script!

Thank you

WlanMan
18-03-2005, 13:54
Verry well done, thank you ! :cool:

sadmax
26-09-2005, 15:53
How does dhcp table look like? :o

Cool script!!

nerodark
26-09-2005, 22:22
here is a little bug i found while executing rss2:


[root@wl500gx root]$ ./rssi2
eth1: Invalid argument
rssi Get the current RSSI val, for an AP you must specify the mac addr of the STA

[: 0: unknown operand
[: -90: unknown operand
[: -80: unknown operand
[: -70: unknown operand
[: -60: unknown operand
[: -50: unknown operand

what i had at this moment was: wl ap = 1
now i turned it off: wl ap = 0
then it worked

maybe update your script by adding the line:
if [ -z ${rssi} ] ; then exit ; fi
right after the first set of the variable rssi, to prevent this error or turn ap off on script startup

thanx

Miki
20-12-2005, 05:15
Here is simle script for measuring signal level from clients as seen at the AP radio.

Nice idea!

I took the liberty of speeding up rssi2 and adding support for WDS peers to rssi.

rssi2 is now easily fast enough to do a simple 'sat-finder' type running display, nice for aligning antennas. This is in rssitest.

Upload the same way as in pekr's post