DD-WRT: Como posso adivinhar via shell CLI a qualidade do link de cada cliente associado ao wifi?

0

Ao lidar com OpenWRT , eu uso esse método para conhecer a qualidade do link de clientes sem fio associados (modo AP):

root@AP-0:~# iw dev wlan0 station dump
Station 4c:74:03:f2:15:27 (on wlan0)
        inactive time:  5050 ms
        rx bytes:       10053
        rx packets:     70
        tx bytes:       6004
        tx packets:     46
        tx retries:     20
        tx failed:      0
        signal:         -84 [-86, -91] dBm
        signal avg:     -83 [-85, -88] dBm
        tx bitrate:     21.7 MBit/s MCS 2 short GI
        rx bitrate:     6.0 MBit/s
        authorized:     yes
        authenticated:  yes
        preamble:       short
        WMM/WME:        no
        MFP:            no
        TDLS peer:      no

Eu costumo olhar principalmente para os dois campos bitrate , já que um link wifi ruim usa para diminuir a velocidade.

Mas no DD-WRT para o meu Buffalo WHR-HP-G54 só tenho este comando que não gera informações de taxa de bits nem ruído para clientes associados:

~ # /usr/sbin/wl assoclist
assoclist E4:9A:79:5E:F6:DD
assoclist 2C:F0:EE:7B:00:B4
assoclist 84:DB:AC:A6:B4:E6
assoclist B0:34:95:27:F4:B6

Eu sei que através da GUI eu posso obter essa informação, mas alcançá-la via linha de comando é mais útil, desde que eu possa criar scripts e analisar os dados.

Existe alguma maneira de conhecer a qualidade do link para cada cliente wifi conectado?

Dados adicionais:

  • Eu fiz esta pergunta no fórum DD-WRT , sem sorte.
  • O comando wl embedded parece não fornecer essa informação ou não consegui encontrá-la.
por Sopalajo de Arrierez 10.04.2017 / 17:39

1 resposta

0

Encontrou as informações de que você precisa aqui:

for INTERFACE in $(nvram get wl_ifnames)
do
  for CLIENT in $(wl -i $INTERFACE assoclist | sed 's/assoclist//')
  do
    echo $INTERFACE $CLIENT $(wl -i $INTERFACE rssi $CLIENT)
  done
done

OK no código acima recorte o comando nvram obtém os nomes da interface sem fio assim:

# echo $(nvram get wl_ifnames)
eth1 eth2

wl assoclist fornece os endereços MAC de todos os clientes conectados:

# wl -i eth2 assoclist
assoclist 11:11:11:11:11:11
assoclist 22:22:22:22:22:22

use rssi para obter a intensidade do sinal de cada um:

# wl -i eth2 rssi 22:22:22:22:22:22
-64

use sta_info para obter dados adicionais

# wl -i eth2 sta_info 22:22:22:22:22:22
 STA 22:22:22:22:22:22:
         aid:1
         rateset [ 6 9 12 18 24 36 48 54 ]
         idle 2 seconds
         in network 1647 seconds
         state: AUTHENTICATED ASSOCIATED AUTHORIZED
         flags 0x11e13b: BRCM WME PS N_CAP VHT_CAP AMPDU AMSDU
         HT caps 0x6f: LDPC 40MHz SGI20 SGI40
         VHT caps 0x63: LDPC SGI80 SU-BFR SU-BFE
         tx data pkts: 959451
         tx data bytes: 199701001
         tx ucast pkts: 16565
         tx ucast bytes: 40283979
         tx mcast/bcast pkts: 942886
         tx mcast/bcast bytes: 159417022
         tx failures: 0
         rx data pkts: 9659
         rx data bytes: 1144526
         rx ucast pkts: 9650
         rx ucast bytes: 1143442
         rx mcast/bcast pkts: 9
         rx mcast/bcast bytes: 1084
         rate of last tx pkt: 866667 kbps
         rate of last rx pkt: 24000 kbps
         rx decrypt succeeds: 7880
         rx decrypt failures: 1
         tx data pkts retried: 15
         tx data pkts retry exhausted: 0
         per antenna rssi of last rx data frame: -68 -71 -66 0
         per antenna average rssi of rx data frames: -68 -71 -64 0
         per antenna noise floor: -98 -98 -98 0
    
por 18.07.2017 / 16:19