Antennen Autosensing: Unterschied zwischen den Versionen

Aus Weimarnetz Wiki
Zur Navigation springen Zur Suche springen
Zeile 32: Zeile 32:
 
* die Ausgabe im Systemlog sieht ungefaehr so aus:
 
* die Ausgabe im Systemlog sieht ungefaehr so aus:
 
<pre>
 
<pre>
 
+
Aug 31 13:13:08 frauentor3 user.notice root: AUTOANT-WAHL: Start...
 +
Aug 31 13:13:08 frauentor3 user.notice root: AUTOANT-WAHL: Antenne A einstellen und 500 sek. warten...
 +
Aug 31 13:21:28 frauentor3 user.notice root: AUTOANT-WAHL: httpinfo-Plugin (Port 8080) erkannt...
 +
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.70.1 0.05 51 54 0.00 0.00
 +
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.33.1 0.22 78 100 0.17 26.96
 +
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.82.1 0.16 84 100 0.23 27.48
 +
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.71.1 0.36 64 100 0.11 25.30
 +
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.99.1 0.58 42 100 0.35 4.94
 +
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.95.1 0.42 58 100 0.00 0.00
 +
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.45.1 0.35 65 100 0.80 3.57
 +
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.140.1 0.13 87 100 0.57 13.53
 +
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.116.1 0.26 74 100 0.92 4.19
 +
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.5.1 0.71 29 100 0.85 1.66
 +
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.63.1 0.34 66 100 0.00 0.00
 +
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.164.1 0.40 60 100 0.12 21.25
 +
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: Nachbarn,Pakete,ETXsum = 12, 758, 128.88
 +
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: Antenne B einstellen, OLSR-Neustart erzwingen und 500 sek. warten...
 +
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.54.1 0.05 95 100 0.00 0.00
 +
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.73.1 0.03 97 100 0.00 0.00
 +
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.70.1 0.08 92 100 0.01 1593.75
 +
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.140.1 0.24 76 100 0.55 7.59
 +
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.116.1 0.28 72 100 0.25 14.46
 +
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.82.1 0.21 79 100 0.22 21.68
 +
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.95.1 0.43 57 100 0.00 0.00
 +
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.5.1 0.72 28 100 0.93 1.49
 +
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.63.1 0.25 75 100 0.00 0.00
 +
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.45.1 0.42 58 100 0.74 3.23
 +
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.164.1 0.35 65 100 0.18 16.19
 +
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.71.1 0.39 61 100 0.06 43.59
 +
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.33.1 0.19 81 100 0.26 20.33
 +
Aug 31 13:29:56 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.99.1 0.66 34 100 0.36 4.25
 +
Aug 31 13:29:56 frauentor3 user.notice root: AUTOANT-WAHL: Nachbarn,Pakete,ETXsum = 14, 970, 1726.56
 +
Aug 31 13:29:56 frauentor3 user.notice root: AUTOANT-WAHL: Nachbaranzahl vergleichen...
 +
Aug 31 13:29:56 frauentor3 user.notice root: AUTOANT-WAHL: Antenne B wird genommen (bzw. gelassen)...
 +
Aug 31 13:29:56 frauentor3 user.notice root: AUTOANT-WAHL: Ende...
 
</pre>
 
</pre>
  

Version vom 31. August 2006, 13:33 Uhr

Warum

  • hat man _eine_ bessere Antenne an sein Geraet geschraubt, hat man folgendes Problem:
  • Es ist immer wieder problematisch herauszufinden, welcher Antennenanschluss nun tatsaechlich auf welche Antenne zeigt. Antenne A ist manchmal links und manchmal rechts, je nach dem welche Wurst die Frau am Linksys-Fliessband zum Fruehstueck auf dem Broetchen hatte

Wie

  • einmal beim start des routes wird folgendes erledigt:
    • Antenne A einstellen.
    • eine komplette Windowsize warten
    • messen:
      • wieviel nachbarn
      • wieviel olsr-pakete
      • summe aller etx-werte
    • Antenne B einstellen.
    • eine komplette Windowsize warten
    • messen:
      • wieviel nachbarn
      • wieviel olsr-pakete
      • summe aller etx-werte
  • Vergleich von
    • Nachbaranzahl -> bessere Antenne hat mehr Nachbarn -> fertig
    • wenn Nachbarzahl gleich:
    • OLSR-Pakete -> bessere Antenne hat mehr Pakete empfangen -> fertig
    • wenn OLSR-Pakete gleich:
    • Summe ETX-Werte -> bessere Antenne hat geringere Summe -> fertig

Aber?

  • das Skript wird nur durchlaufen, wenn die Antenneneinstellung auf "Auto" steht
  • das Skript baut Mist, wenn man eine Richtantenne montiert hat. Es wirkt also nur bei 2 verschieden guten Rundstrahlern, aber das wird noch behoben.
  • es wird AWK benoetigt - das wird aber noch wegrationalisiert

Syslog-Ausgabe

  • die Ausgabe im Systemlog sieht ungefaehr so aus:
Aug 31 13:13:08 frauentor3 user.notice root: AUTOANT-WAHL: Start...
Aug 31 13:13:08 frauentor3 user.notice root: AUTOANT-WAHL: Antenne A einstellen und 500 sek. warten...
Aug 31 13:21:28 frauentor3 user.notice root: AUTOANT-WAHL: httpinfo-Plugin (Port 8080) erkannt...
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.70.1 0.05 51 54 0.00 0.00
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.33.1 0.22 78 100 0.17 26.96
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.82.1 0.16 84 100 0.23 27.48
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.71.1 0.36 64 100 0.11 25.30
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.99.1 0.58 42 100 0.35 4.94
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.95.1 0.42 58 100 0.00 0.00
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.45.1 0.35 65 100 0.80 3.57
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.140.1 0.13 87 100 0.57 13.53
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.116.1 0.26 74 100 0.92 4.19
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.5.1 0.71 29 100 0.85 1.66
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.63.1 0.34 66 100 0.00 0.00
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.164.1 0.40 60 100 0.12 21.25
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: Nachbarn,Pakete,ETXsum = 12, 758, 128.88
Aug 31 13:21:29 frauentor3 user.notice root: AUTOANT-WAHL: Antenne B einstellen, OLSR-Neustart erzwingen und 500 sek. warten...
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.54.1 0.05 95 100 0.00 0.00
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.73.1 0.03 97 100 0.00 0.00
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.70.1 0.08 92 100 0.01 1593.75
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.140.1 0.24 76 100 0.55 7.59
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.116.1 0.28 72 100 0.25 14.46
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.82.1 0.21 79 100 0.22 21.68
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.95.1 0.43 57 100 0.00 0.00
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.5.1 0.72 28 100 0.93 1.49
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.63.1 0.25 75 100 0.00 0.00
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.45.1 0.42 58 100 0.74 3.23
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.164.1 0.35 65 100 0.18 16.19
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.71.1 0.39 61 100 0.06 43.59
Aug 31 13:29:55 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.33.1 0.19 81 100 0.26 20.33
Aug 31 13:29:56 frauentor3 user.notice root: AUTOANT-WAHL: 10.63.99.1 0.66 34 100 0.36 4.25
Aug 31 13:29:56 frauentor3 user.notice root: AUTOANT-WAHL: Nachbarn,Pakete,ETXsum = 14, 970, 1726.56
Aug 31 13:29:56 frauentor3 user.notice root: AUTOANT-WAHL: Nachbaranzahl vergleichen...
Aug 31 13:29:56 frauentor3 user.notice root: AUTOANT-WAHL: Antenne B wird genommen (bzw. gelassen)...
Aug 31 13:29:56 frauentor3 user.notice root: AUTOANT-WAHL: Ende...

Skript

#!/bin/sh

#
# Automatische Wahl der richtigen Antenne - Bastian Bittorf /weimarnetz - $VER 2006aug31,12uhr07
#

RX=$(nvram get wl0_antdiv)
TX=$(nvram get ff_txant)
PRE="AUTOANT-WAHL: "
ENDE=0
CONF="/etc/olsrd.conf"
PAUSE=$(awk '{if($1=="LinkQualityWinSize")s=$2;if($1=="HelloInterval"){print s*$2;exit}}' $CONF)
eval $(netparam)

logger $PRE"Start..."

if [ "$RX" = "-1" ] && [ "$TX" = "-1" ] && [ "$(nvram get ff_httpinfo)" = 1 ]
 then

#
# Antenne A einstellen, starten einer neuen Messreihe, warten 
#

 logger $PRE"Antenne A einstellen und $PAUSE sek. warten..."
 wl -i $WIFIDEV antdiv 0
 wl -i $WIFIDEV txant 0
 sleep $PAUSE

#
# Erfassen der Messwerte je nach Plugin unterschiedlich
#

 if [ -n "$(grep httpinfo $CONF)" ]
  then
  logger $PRE"httpinfo-Plugin (Port 8080) erkannt..."
  eval $(wget -O - http://127.0.0.1:8080/nodes|awk -F"[< =>]" '{
   if(s==1&&$0=="</table>")exit
   if(s==1){z++;p=p+$21;etx=etx+$33}
   if($3=="width")s=1}
   END{print "NACHBAR1="z";PAKETE1="p";ETXSUM1="etx*100";ETXSUM="etx}')
 fi

 if [ -n "$(grep txtinfo $CONF)" ]
  then
  logger $PRE"txtinfo-Plugin (Port 2006) erkannt..."
  eval $(wget -O - http://127.0.0.1:2006/neighbours|grep $WIFIADR|awk '{
   z++;p=p+$6;etx=etx+$8}
   END{print "NACHBAR1="z";PAKETE1="p";ETXSUM1="etx*100";ETXSUM="etx}')
 fi

 logger $PRE"Nachbarn,Pakete,ETXsum = $NACHBAR1, $PAKETE1, $ETXSUM"

#
# Antenne B einstellen, starten einer neuen Messreihe, warten
#

 logger "AUTOANT-WAHL: Antenne B einstellen, OLSR-Neustart erzwingen und $PAUSE sek. warten..."
 wl -i $WIFIDEV antdiv 1
 wl -i $WIFIDEV txant 1
 /etc/init.d/S53olsrd restart
 sleep $PAUSE

#
# Erfassen der Messwerte je nach Plugin unterschiedlich
#

 if [ -n "$(grep httpinfo $CONF)" ]
  then
  eval $(wget -O - http://127.0.0.1:8080/nodes|awk -F"[< =>]" '{
   if(s==1&&$0=="</table>")exit
   if(s==1){z++;p=p+$21;etx=etx+$33}
   if($3=="width")s=1}
   END{print "NACHBAR1="z";PAKETE1="p";ETXSUM1="etx*100";ETXSUM="etx}')
 fi 

 if [ -n "$(grep txtinfo $CONF)" ]
  then
  eval $(wget -O - http://127.0.0.1:2006/neighbours|grep $WIFIADR|awk '{
   z++;p=p+$6;etx=etx+$8}
   END{print "NACHBAR2="z";PAKETE2="p";ETXSUM2="etx*100";ETXSUM="etx}')
 fi

#
# Vergleiche & Auswertungen
#

 logger $PRE"Nachbarn,Pakete,ETXsum = $NACHBAR2, $PAKETE2, $ETXSUM"

 if [ "$ENDE" = 0 ];then logger "AUTOANT-WAHL: Nachbaranzahl vergleichen...";fi
 if [ "$NACHBAR1" -gt "$NACHBAR2" ] && [ "$ENDE" = 0 ];then ENDE=1;ANT=A;fi
 if [ "$NACHBAR1" -lt "$NACHBAR2" ] && [ "$ENDE" = 0 ];then ENDE=1;fi 

 if [ "$ENDE" = 0 ];then logger "AUTOANT-WAHL: Paketanzahl vergleichen...";fi
 if [ "$PAKETE1" -gt "$PAKETE2" ] && [ "$ENDE" = 0 ];then ENDE=1;ANT=A;fi
 if [ "$PAKETE1" -lt "$PAKETE2" ] && [ "$ENDE" = 0 ];then ENDE=1;fi

 if [ "$ENDE" = 0 ];then logger "AUTOANT-WAHL: ETX-Summen vergleichen...";fi
 if [ "$ETXSUM1" -lt "$ETXSUM2" ] && [ "$ENDE" = 0 ];then ENDE=1;ANT=A;fi
 if [ "$ETXSUM1" -gt "$ETXSUM2" ] && [ "$ENDE" = 0 ];then ENDE=1;fi

#
# Umsetzungen der Schlussfolgerung
#

 if [ "$ANT" = "A" ]
  then
  wl -i $WIFIDEV antdiv 0
  wl -i $WIFIDEV txant 0
  logger $PRE"Antenne A wird genommen..."
  else
  logger $PRE"Antenne B wird genommen (bzw. gelassen)..."
 fi

 else
 logger $PRE"keine Skriptausfuehrung, Antennenwahl nicht auf Auto oder OLSR-Info-Plugin nicht aktiviert."
fi

logger $PRE"Ende..."

#
# Ende...
#