[OLSR-users] experiences with LinkQualityMult limits
Andreas Petersson
(spam-protected)
Sat Feb 26 04:51:42 CET 2005
hi!
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
andreas
----------------
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...
----------------------------
#!/bin/sh
#take values from "wl rate" and calulate LinkQualityMult values
#
#by Andreas Petersson
configfile=/etc/olsrd.conf
restartevery=300
multfactor=5
precfactor=100
invmultfactor=$(($precfactor - $multfactor))
samples=20
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
cnt=0
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&
fi
done
More information about the Olsr-users
mailing list