Changeset 21900
- Timestamp:
- 2010-06-26T10:02:46+02:00 (8 years ago)
- Location:
- packages/net/multiwan
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
packages/net/multiwan/Makefile
r21839 r21900 9 9 10 10 PKG_NAME:=multiwan 11 PKG_VERSION:=1.0.1 312 PKG_RELEASE:= 311 PKG_VERSION:=1.0.14 12 PKG_RELEASE:=1 13 13 14 14 include $(INCLUDE_DIR)/package.mk -
packages/net/multiwan/files/usr/bin/multiwan
r21839 r21900 180 180 if [ -z $check_old_map ]; then 181 181 wancount=`expr $wancount + 1` 182 if [ $wancount -gt 20 ]; then 183 wancount=20 184 return 185 fi 182 186 wan_if_map="$wan_if_map${1}[${ifname}]" 183 187 wan_id_map="$wan_id_map${1}[${wancount}]" … … 358 362 359 363 ifname=$(query_config ifname $1) 360 iprule=$(expr $2 \* 10)361 364 362 365 if [ "$ifname" == "x" ]; then … … 389 392 i=0 390 393 while [ $i -lt $queue_count ]; do 391 echo "s/\(0x$i \|0x$i\/0xffffffff\)/0x$(expr $ iprule+ $i) /g" >> /tmp/.mwan/qos.$1.sedfilter394 echo "s/\(0x$i \|0x$i\/0xffffffff\)/0x$(expr $2 \* 10 + $i) /g" >> /tmp/.mwan/qos.$1.sedfilter 392 395 i=`expr $i + 1` 393 396 done … … 409 412 i=0 410 413 while [ $i -lt $queue_count ]; do 411 p=`expr $i + $(expr $2 \* 10) + 300`412 414 if [ $i -lt $(expr $queue_count - 1) ]; then 413 ip rule add fwmark 0x$(expr $ p + 1 - 300) table $(expr $iprule + 300) prio $(expr $p+ 2)414 fi 415 iptables -t mangle -A MultiWanQoS -m mark --mark 0x$(expr $ p - 300) -j qos_${1}415 ip rule add fwmark 0x$(expr $2 \* 10 + $i + 1) table $(expr $2 + 170) prio $(expr $2 \* 10 + $i + 2) 416 fi 417 iptables -t mangle -A MultiWanQoS -m mark --mark 0x$(expr $2 \* 10 + $i) -j qos_${1} 416 418 i=`expr $i + 1` 417 419 done … … 665 667 echo "## Refreshing Load Balancer ##" 666 668 667 CHKIPROUTE=`cat /etc/iproute2/rt_tables | grep LoadBalancer` 668 if [ -z "$CHKIPROUTE" ]; then 669 echo "300 LoadBalancer" >> /etc/iproute2/rt_tables 670 fi 671 ip rule del prio 300 > /dev/null 2>&1 672 ip route flush table 300 > /dev/null 2>&1 673 674 for TABLE in 300 669 ip rule del prio 9 > /dev/null 2>&1 670 ip route flush table 170 > /dev/null 2>&1 671 672 for TABLE in 170 675 673 do 676 674 ip route | grep link | grep -Ev ^default | while read ROUTE … … 730 728 pre_nexthop_chk=`echo $nexthop | awk -F "nexthop" '{print NF-1}'` 731 729 if [ "$pre_nexthop_chk" == "1" ]; then 732 ip route add default via $(echo $nexthop | awk -F " " '{print $3}') dev $(echo $nexthop | awk -F " " '{print $5}') proto static table 300730 ip route add default via $(echo $nexthop | awk -F " " '{print $3}') dev $(echo $nexthop | awk -F " " '{print $5}') proto static table 170 733 731 elif [ "$pre_nexthop_chk" -gt "1" ]; then 734 ip route add proto static table 300 default scope global $nexthop735 fi 736 737 ip rule add fwmark 0x1 table 300 prio 300732 ip route add proto static table 170 default scope global $nexthop 733 fi 734 735 ip rule add fwmark 0x1 table 170 prio 9 738 736 ip route flush cache 739 737 } … … 758 756 ipaddr=$(query_config ipaddr $group) 759 757 760 iprule=$(expr $(expr $i \* 10) + 300) 761 ip route flush table $iprule > /dev/null 2>&1 762 763 for TABLE in $iprule 758 ip route flush table $(expr $i + 170) > /dev/null 2>&1 759 760 for TABLE in $(expr $i + 170) 764 761 do 765 762 ip route | grep link | grep -Ev ^default | while read ROUTE … … 770 767 771 768 if [ "$gateway" != "x" -a "$ipaddr" != "x" -a "$ifname" != "x" ]; then 772 ip route add default via $gateway table $ iprulesrc $ipaddr proto static769 ip route add default via $gateway table $(expr $i + 170) src $ipaddr proto static 773 770 route add default gw $gateway dev $ifname 774 771 fi … … 785 782 local ipaddr 786 783 787 iprule=$(expr $(expr $1 \* 10) + 300)788 784 group=$(query_config group $1) 789 785 gateway=$(query_config gateway $group) … … 792 788 CHKIPROUTE=`cat /etc/iproute2/rt_tables | grep MWAN${1}` 793 789 if [ -z "$CHKIPROUTE" ]; then 794 echo "$ ipruleMWAN${1}" >> /etc/iproute2/rt_tables790 echo "$(expr $1 + 170) MWAN${1}" >> /etc/iproute2/rt_tables 795 791 fi 796 792 797 ip rule del prio $ iprule> /dev/null 2>&1798 ip rule del prio $(expr $ iprule+ 1) > /dev/null 2>&1793 ip rule del prio $(expr $1 \* 10) > /dev/null 2>&1 794 ip rule del prio $(expr $1 \* 10 + 1) > /dev/null 2>&1 799 795 800 796 if [ "$gateway" != "x" -a "$ipaddr" != "x" ]; then 801 ip rule add from $ipaddr table $ iprule prio $iprule802 ip rule add fwmark 0x$(expr $ iprule - 300) table $iprule prio $(expr $iprule+ 1)797 ip rule add from $ipaddr table $(expr $1 + 170) prio $(expr $1 \* 10) 798 ip rule add fwmark 0x$(expr $1 \* 10) table $(expr $1 + 170) prio $(expr $(expr $1 \* 10) + 1) 803 799 fi 804 800 } 805 801 806 802 flush() { 807 local iprule808 803 local i 809 804 … … 814 809 ip rule add lookup default prio 32767 > /dev/null 2>&1 815 810 816 ip route flush table 300 > /dev/null811 ip route flush table 170 > /dev/null 817 812 818 813 i=0 819 814 while [ $i -lt $wancount ]; do 820 815 i=`expr $i + 1` 821 iprule=$(expr $i \* 10)822 816 ip route del default > /dev/null 2>&1 823 ip route flush table $ iprule> /dev/null 2>&1817 ip route flush table $(expr $i + 170) > /dev/null 2>&1 824 818 done 825 819 … … 845 839 846 840 echo "## IP Rules Initialization ##" 841 842 CHKIPROUTE=`cat /etc/iproute2/rt_tables | grep LoadBalancer` 843 if [ -z "$CHKIPROUTE" ]; then 844 echo "#" >> /etc/iproute2/rt_tables 845 echo "170 LoadBalancer" >> /etc/iproute2/rt_tables 846 fi 847 847 848 i=0 848 849 while [ $i -lt $wancount ]; do
Note: See TracChangeset
for help on using the changeset viewer.