[packages] multiwan: Tweaked probability for random packet selection
authorcraigc <craigc@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 10 May 2010 15:19:34 +0000 (15:19 +0000)
committercraigc <craigc@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Mon, 10 May 2010 15:19:34 +0000 (15:19 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/packages@21415 3c298f89-4303-0410-b956-a3cf2f4a3e73

net/multiwan/Makefile
net/multiwan/files/usr/bin/multiwan

index 9948753..d7c98df 100644 (file)
@@ -8,7 +8,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=multiwan
-PKG_VERSION:=1.0.6
+PKG_VERSION:=1.0.7
 PKG_RELEASE:=1
 
 include $(INCLUDE_DIR)/package.mk
index 78eb86c..7e5a735 100755 (executable)
@@ -636,6 +636,7 @@ local weight
 local nexthop
 local pre_nexthop_chk
 local rand_probability
+local last_probability
 local total_weight
 local i
 
@@ -657,6 +658,7 @@ ip route flush table 123 > /dev/null 2>&1
          done
 
 total_weight=0
+last_probability=0
 
 iptables -F MultiWanLoadBalancer -t mangle
 
@@ -685,7 +687,8 @@ weight=`uci -q -P /var/state get multiwan.${group}.weight`
 
 if [ "$gateway" != "x" -a "$ifname" != "x" -a "$failchk" != "x" -a "$weight" != "disable" ]; then
 nexthop="$nexthop nexthop via $gateway dev $ifname weight $weight"
-rand_probability=$(expr $(expr $weight \* 100) / $total_weight)
+rand_probability=$(expr $(expr $weight \* 100) / $total_weight + $last_probability)
+last_probability=$rand_probability
 
         if [ $rand_probability -lt 10 ]; then
                 rand_probability="0.0${rand_probability}"