Gw-Selection Config KleeV2
Tom Green
koe_fue at gmx.de
So Apr 10 20:34:21 CEST 2016
Hallo Zusammen,
eine kurze Info, wie sich kleev2 im Moment konfiguriert ist, sollte sich
jemand wundern.
Das GW bedient z.Zt. Würzburg und die Aux-Hood. Die über die
GW-Selection announcierte Bandbreite wird entsprechend der eth0
Auslastung zurückgefahren. Zusätzlich wird für die Aux (Nicht für Wue)
bei erschöpfter Bandbreite die Gateway Selection ausgeschaltet und bei
wieder vorhandener Bandbreite ein. Ausgewertet wird dies im 5
Minuten-Mittel. Die Abschaltung erfolgt nur, sofern es noch ein GW in
der Hood gibt, das die GW-Selection eingeschaltet hat.
Dies machen ich weil:
-> kleev2 sonst nach 3 Wochen in seine vertragliche 20 TB/Monat Grenze läuft
-> Das Volumenlimit für fra1 erhöht wurde
Zur Info und ggf. für Tobias interessant, da ich die neuen Clients auf
diese Art und Weise fra1 und bbg zuschiebe.
Gruß
Green
QnD script dump:
---
#!/bin/bash
gwsel_lockfile="/tmp/gwsel_lockfile" # lockfile to allow for low
bandwidth settings
if [ -z "$1" ]; then
echo
echo "usage: $0 <network-interface> <update_interval [sec]>
<total BW up [Mbit/sec]> <total BW down [Mbit/sec]>"
echo
echo "e.g. $0 eth0 60 10 10"
echo
exit
fi
while true
do
if [ ! -e ${gwsel_lockfile} ]; then # lockfile not present
# Bandwidth currently used (time averaged)
R1=$(cat "/sys/class/net/$1/statistics/rx_bytes")
T1=$(cat "/sys/class/net/$1/statistics/tx_bytes")
sleep "$2"
R2=$(cat "/sys/class/net/$1/statistics/rx_bytes")
T2=$(cat "/sys/class/net/$1/statistics/tx_bytes")
TkbitPS=$(echo "scale=0; ($T2 - $T1) / 1024 * 8 / $2" | bc -l)
RkbitPS=$(echo "scale=0; ($R2 - $R1) / 1024 * 8 / $2" | bc -l)
# echo "BW used -- up $1: $TkbitPS kBit/s; down $1: $RkbitPS
kBit/s"
# Remaining bandwidth available; cut-off negative values
Tavail_kbitPS=$(echo "scale=0; if (($3 * 1024 - $TkbitPS) >0)
($3 * 1024 - $TkbitPS) else 0" | bc -l)
Ravail_kbitPS=$(echo "scale=0; if (($4 * 1024 - $RkbitPS) >0)
($4 * 1024 - $RkbitPS) else 0" | bc -l)
# echo "BW available -- up $1: $Tavail_kbitPS kBit/s; down $1:
$Ravail_kbitPS kBit/s"
else # lockfile present
Tavail_kbitPS=0
Ravail_kbitPS=0
sleep "$2"
fi
for bat in /sys/class/net/bat*; do
iface=${bat##*/}
no_of_gwsel=$(batctl -m $iface gwl | wc -l) # no of lines
incl. header. Own GW is not counted
# echo ${no_of_gwsel}
if [ "${Tavail_kbitPS}" -eq 0 ] || [ "${Ravail_kbitPS}"
-eq 0 ]; then
if [ "${no_of_gwsel}" -gt 1 ]; then
# batctl -m $iface gw_mode off
batctl -m bat2 gw_mode off
else
batctl -m $iface gw_mode server
"${Ravail_kbitPS}kbit/${Tavail_kbitPS}kbit"
fi
else
batctl -m $iface gw_mode server
"${Ravail_kbitPS}kbit/${Tavail_kbitPS}kbit"
fi
done
done
Mehr Informationen über die Mailingliste franken-dev