Änderungen

Zur Navigation springen Zur Suche springen
8.490 Bytes hinzugefügt ,  21:03, 9. Mär. 2008
+kat
Zeile 25: Zeile 25:     
===Aber?===
 
===Aber?===
*Das Messprotokoll ist zugaenglich und es wird eine Moeglichkeit geben, den Automatismus zu verbieten bzw. eine eigene Vorgabe zu treffen.
+
* 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
 +
* das skript waehlt zwar die richtige antenne, aber ob mehr nachbarn automatisch besser sind?!!
 +
** Antenne A: 14 Total - aber nur 7 vernuenftige Nachbarn mit ETX <=3
 +
** Antenne B: 15 Total - aber nur 1 vernueftiger Nachbarn und 4 mittelmaessige mit ETX <=5
 +
** Das skript waehlt Antenne B, aber antenne A waere besser?!?!?:
 +
<pre>
 +
Sep  4 17:28:28 rex user.notice root: AUTOANT-WAHL: Start...
 +
Sep  4 17:28:28 rex user.notice root: AUTOANT-WAHL: Antenne A einstellen und 500 sek. warten...
 +
Sep  4 17:36:49 rex user.notice root: AUTOANT-WAHL: httpinfo-Plugin (Port 8080) erkannt...
 +
Sep  4 17:36:50 rex user.notice root: AUTOANT-WAHL: 10.63.153.1 0.11 89/100 0.95 9.58
 +
Sep  4 17:36:50 rex user.notice root: AUTOANT-WAHL: 10.63.135.1 0.12 88/100 0.81 10.32
 +
Sep  4 17:36:50 rex user.notice root: AUTOANT-WAHL: 10.63.127.1 0.14 86/100 0.29 24.95
 +
Sep  4 17:36:50 rex user.notice root: AUTOANT-WAHL: 10.63.152.1 0.03 97/100 0.76 44.04
 +
Sep  4 17:36:50 rex user.notice root: AUTOANT-WAHL: 10.63.165.1 0.28 72/100 0.51 7.01
 +
Sep  4 17:36:50 rex user.notice root: AUTOANT-WAHL: 10.63.5.1 0.32 68/100 0.62 5.04
 +
Sep  4 17:36:50 rex user.notice root: AUTOANT-WAHL: 10.63.44.1 0.41 59/100 0.98 2.50
 +
Sep  4 17:36:50 rex user.notice root: AUTOANT-WAHL: 10.63.155.1 0.42 58/100 0.98 2.44
 +
Sep  4 17:36:50 rex user.notice root: AUTOANT-WAHL: 10.63.142.1 0.42 58/100 0.77 3.10
 +
Sep  4 17:36:50 rex user.notice root: AUTOANT-WAHL: 10.63.63.1 0.25 75/100 0.56 7.18
 +
Sep  4 17:36:50 rex user.notice root: AUTOANT-WAHL: 10.63.147.1 0.38 62/100 0.94 2.81
 +
Sep  4 17:36:50 rex user.notice root: AUTOANT-WAHL: 10.63.43.1 0.36 64/100 0.98 2.84
 +
Sep  4 17:36:50 rex user.notice root: AUTOANT-WAHL: 10.63.3.1 0.44 56/100 0.97 2.35
 +
Sep  4 17:36:50 rex user.notice root: AUTOANT-WAHL: 10.63.104.1 0.37 63/100 0.99 2.73
 +
Sep  4 17:36:50 rex user.notice root: AUTOANT-WAHL: Nachbarn,Pakete,ETXsum = 14, 1400, 126.89
 +
Sep  4 17:36:50 rex user.notice root: AUTOANT-WAHL: Antenne B einstellen, OLSR-Neustart erzwingen und 500 sek. warten...
 +
Sep  4 17:45:19 rex user.notice root: AUTOANT-WAHL: 10.63.16.1 0.13 4/5 0.16 51.00
 +
Sep  4 17:45:19 rex user.notice root: AUTOANT-WAHL: 10.63.63.1 0.20 80/100 0.54 9.31
 +
Sep  4 17:45:19 rex user.notice root: AUTOANT-WAHL: 10.63.153.1 0.07 93/100 0.80 17.86
 +
Sep  4 17:45:19 rex user.notice root: AUTOANT-WAHL: 10.63.5.1 0.18 82/100 0.36 15.57
 +
Sep  4 17:45:19 rex user.notice root: AUTOANT-WAHL: 10.63.127.1 0.12 88/100 0.25 33.73
 +
Sep  4 17:45:19 rex user.notice root: AUTOANT-WAHL: 10.63.152.1 0.18 82/100 0.51 10.90
 +
Sep  4 17:45:19 rex user.notice root: AUTOANT-WAHL: 10.63.147.1 0.24 76/100 0.90 4.64
 +
Sep  4 17:45:19 rex user.notice root: AUTOANT-WAHL: 10.63.155.1 0.26 74/100 1.00 3.85
 +
Sep  4 17:45:19 rex user.notice root: AUTOANT-WAHL: 10.63.142.1 0.19 81/100 0.63 8.39
 +
Sep  4 17:45:20 rex user.notice root: AUTOANT-WAHL: 10.63.43.1 0.30 70/100 0.94 3.56
 +
Sep  4 17:45:20 rex user.notice root: AUTOANT-WAHL: 10.63.135.1 0.15 85/100 0.74 9.04
 +
Sep  4 17:45:20 rex user.notice root: AUTOANT-WAHL: 10.63.165.1 0.25 75/100 0.33 12.14
 +
Sep  4 17:45:20 rex user.notice root: AUTOANT-WAHL: 10.63.44.1 0.38 62/100 0.97 2.72
 +
Sep  4 17:45:20 rex user.notice root: AUTOANT-WAHL: 10.63.3.1 0.29 71/100 0.93 3.71
 +
Sep  4 17:45:20 rex user.notice root: AUTOANT-WAHL: 10.63.104.1 0.15 85/100 0.85 7.87
 +
Sep  4 17:45:20 rex user.notice root: AUTOANT-WAHL: Nachbarn,Pakete,ETXsum = 15, 1405, 194.29
 +
Sep  4 17:45:20 rex user.notice root: AUTOANT-WAHL: Nachbaranzahl vergleichen...
 +
Sep  4 17:45:20 rex user.notice root: AUTOANT-WAHL: Antenne B wird genommen (bzw. gelassen)...
 +
Sep  4 17:45:20 rex user.notice root: AUTOANT-WAHL: Ende...
 +
</pre>
 +
 
 +
===Syslog-Ausgabe===
 +
* die Ausgabe im Systemlog sieht ungefaehr so aus:
 +
<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>
    
===Skript===
 
===Skript===
*dieses Skript am besten nach <tt>/etc/init.d/S54antennen_autosensing</tt> kopieren
+
*[http://www.stud.tu-ilmenau.de/~babi-mtr/wirelessweimar/S54antennen_autosensing dieses Skript runterladen] (Version 2006sep04,16uhr31) und am besten nach <tt>/etc/init.d/S54antennen_autosensing</tt> kopieren
 
<pre>
 
<pre>
 
#!/bin/sh
 
#!/bin/sh
   −
WIFIDEV=$(awk 'sub(":","") {print $1}' /proc/net/wireless)
+
#
PAUSE=$(awk '{if($1=="LinkQualityWinSize")s=$2;if($1=="HelloInterval"){print s*$2;exit}}' /etc/olsrd.conf)
+
# Automatische Wahl der richtigen Antenne - Bastian Bittorf /weimarnetz - $VER 2006aug31,12uhr07
 +
#
   −
logger "AUTOANT-WAHL: Antenne A einstellen und $PAUSE sek. warten..."
+
RX=$(nvram get wl0_antdiv)
wl -i $WIFIDEV antdiv 0
+
TX=$(nvram get ff_txant)
wl -i $WIFIDEV txant 0
+
PRE="AUTOANT-WAHL: "
WERTE=$(wget -O - http://127.0.0.1:8080/nodes|awk -F"[< =>]" '{
+
ENDE=0
if(s==1&&$0=="</table>")exit
+
CONF="/etc/olsrd.conf"
if(s==1){
+
PAUSE=$(awk '{if($1=="LinkQualityWinSize")s=$2;if($1=="HelloInterval"){print s*$2;exit}}' $CONF)
  z++
+
eval $(netparam)
  p=p+$21
  −
  etx=etx+$33
  −
  }
  −
if($3=="width")s=1}
  −
END{printf("%i;%i;%i",z,p,etx)}')
  −
NACHBAR1=$(echo "$WERTE"|cut -d";" -f1)
  −
PAKETE1=$(echo "$WERTE"|cut -d";" -f2)
  −
ETXSUM1=$(echo "$WERTE"|cut -d";" -f3)
  −
logger "AUTOANT-WAHL: Nachbarn,Pakete,ETXsum = $NACHBAR1,$PAKETE1,$ETXSUM1"
  −
sleep $PAUSE
     −
logger "AUTOANT-WAHL: Antenne B einstellen und $PAUSE sek. warten..."
+
logger $PRE"Start..."
wl -i $WIFIDEV antdiv 1
  −
wl -i $WIFIDEV txant 1
  −
WERTE=$(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{printf("%i;%i;%i",z,p,etx)}')
  −
NACHBAR2=$(echo "$WERTE"|cut -d";" -f1)
  −
PAKETE2=$(echo "$WERTE"|cut -d";" -f2)
  −
ETXSUM2=$(echo "$WERTE"|cut -d";" -f3)
  −
logger "AUTOANT-WAHL: Nachbarn,Pakete,ETXsum = $NACHBAR2,$PAKETE2,$ETXSUM2"
  −
sleep $PAUSE
     −
if [ "$ENDE" != "1" ];then logger "AUTOANT-WAHL: Nachbaranzahl vergleichen...";fi
+
if [ "$RX" = "-1" ] && [ "$TX" = "-1" ] && [ "$(nvram get ff_httpinfo)" = 1 ]
if [ "$NACHBAR1" -gt "$NACHBAR2" ] && [ "$ENDE" != "1" ];then ENDE=1;ANT=A;fi
+
then
if [ "$NACHBAR1" -lt "$NACHBAR2" ] && [ "$ENDE" != "1" ];then ENDE=1;fi
  −
 
  −
if [ "$ENDE" != "1" ];then logger "AUTOANT-WAHL: Paketanzahl vergleichen...";fi
  −
if [ "$PAKETE1" -gt "$PAKETE2" ] && [ "$ENDE" != "1" ];then ENDE=1;ANT=A;fi
  −
if [ "$PAKETE1" -lt "$PAKETE2" ] && [ "$ENDE" != "1" ];then ENDE=1;fi
     −
if [ "$ENDE" != "1" ];then logger "AUTOANT-WAHL: ETX-Summen vergleichen...";fi
+
#
if [ "$ETXSUM1" -lt "$ETXSUM2" ] && [ "$ENDE" != "1" ];then ENDE=1;ANT=A;fi
+
# Antenne A einstellen, starten einer neuen Messreihe, warten
if [ "$ETXSUM1" -gt "$ETXSUM2" ] && [ "$ENDE" != "1" ];then ENDE=1;fi
+
#
   −
if [ "$ANT" = "A" ]
+
logger $PRE"Antenne A einstellen und $PAUSE sek. warten..."
then
   
  wl -i $WIFIDEV antdiv 0
 
  wl -i $WIFIDEV antdiv 0
 
  wl -i $WIFIDEV txant 0
 
  wl -i $WIFIDEV txant 0
  logger "AUTOANT-WAHL: Antenne A wird genommen..."
+
  sleep $PAUSE
fi
+
 
 +
#
 +
# 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
 
  else
  logger "AUTOANT-WAHL: Antenne B wird genommen (bzw. gelassen)..."
+
  logger $PRE"keine Skriptausfuehrung, Antennenwahl nicht auf Auto oder OLSR-Info-Plugin nicht aktiviert."
 
fi
 
fi
 +
 +
logger $PRE"Ende..."
 +
 +
#
 +
# Ende...
 +
#
 
</pre>
 
</pre>
 +
 +
[[Kategorie:Hardware]]
185

Bearbeitungen

Navigationsmenü