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