[OLSR-users] experiences with LinkQualityMult limits

Andreas Petersson (spam-protected)
Sat Feb 26 04:51:42 CET 2005


i have been testing olsrd 0.4.9 with LinkQualityMult a single node in 
our ~30-node mesh. (the other nodes run mostly 0.4.8 with etx)

i am trying to implement the discussed Expected Transmission Time metric.

to avoid any self-interference and oscillating behavior, i will keep 
away from using round trip times and other measurements which depend on 
the network load.

i use exponetial weighted values from the wireless driver to guess the 
current bandwidth of the wireless device.
my LinkQualityMult value for is calculated as MBit/100, then divided by 
2, since it is half-duplex.

i assume 100mbit for non-wlan ethernet links, which correspond to a 
LinkQualityMult value of 1.0.

i assign the known fixed values from the openvpn tunnels manually, since 
they are relatively fixed and almost impossible to guess automatically. 
(especially if under load) the upstream of my adsl connection is for 
example 128 kbit. this results in a LinkQualityMult value of 0.00128.

but if i use such a low value, and i create the nework graph with the 
dot-draw plugin, it displays a value of 0.0 for the link and not as 
expected 781.25.
it seems to me as if there exists an artificial cutoff constant for the 
etx value.
or is it just in the dot-draw plugin? i don't think so, since i get no 
routes when this happenes.

it would be nice to remove these caps if they exist.

greetings from funkfeuer/vienna

if anyone is interested, here is the scripts wich calculates the 
LinkQualityMult value for the wireless interface

it would be nice if i could reconfigure this value without restarting 
olsrd. could i write a plugin to achieve this? or is this not really 
possible right now?
warning:do not copy-paste this script. you will need to turn on your 
brain and adapt it to your needs, or else...
#take values from "wl rate" and calulate LinkQualityMult values
#by Andreas Petersson



invmultfactor=$(($precfactor - $multfactor))

startbitrate=`wl rate|awk '{print$3}'`

val=$(($startbitrate * $precfactor))

samplewait=$(( $restartevery / $samples ))

cnt=$(($samples - 1))

while [ true ]; do
cnt=`expr $cnt + 1`
         #echo "waiting "$samplewait
         sleep $samplewait
         thisrate=`wl rate|awk '{print $3}'`
         thisrate=$(($thisrate * $precfactor))
         #echo "new rate: "$thisrate
         val=$(((((($val * $invmultfactor)) / $precfactor )) + 
(((($thisrate * $multfactor)) / $precfactor))))
         #echo "average: "$val
         #echo " num: "$cnt
         if [ $cnt -eq $samples ] ; then
                 cat olsrd.conf.header > $configfile
                 publish=`echo "0000"$(((($val / 2)) / $precfactor))|awk 
'{print substr($0,length($0)-1)}'`
                 echo "publishing: 0."$publish
                 echo "LinkQualityMult default 0."$publish >> $configfile
                 cat olsrd.conf.footer >> $configfile
                 killall olsrd
                 olsrd -d 0&

More information about the Olsr-users mailing list