qos-scripts update - fix enabling/disabling of interfaces, make the overhead calculat...
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Tue, 24 Apr 2007 19:24:08 +0000 (19:24 +0000)
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>
Tue, 24 Apr 2007 19:24:08 +0000 (19:24 +0000)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@7048 3c298f89-4303-0410-b956-a3cf2f4a3e73

package/qos-scripts/Makefile
package/qos-scripts/files/etc/config/qos
package/qos-scripts/files/usr/lib/qos/generate.sh

index 43225f9..676d4dd 100644 (file)
@@ -9,7 +9,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=qos-scripts
-PKG_VERSION:=1.1.0
+PKG_VERSION:=1.1.1
 PKG_RELEASE:=1
 
 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
index 7d3501c..51959b5 100644 (file)
@@ -4,6 +4,7 @@
 config interface wan
        option classgroup  "Default"
        option enabled      1
+       option overhead     1
        option upload       128
        option download     1024
 
index aceba57..a3c9f17 100755 (executable)
@@ -14,6 +14,7 @@ add_insmod() {
        # only try to parse network config on openwrt
 
        find_ifname() {(
+               reset_cb
                include /lib/network
                scan_interfaces
                config_get "$1" ifname
@@ -162,18 +163,18 @@ config_cb() {
        config_get TYPE "$CONFIG_SECTION" TYPE
        case "$TYPE" in
                interface)
-                       config_get enabled "$CONFIG_SECTION" enabled
-                       config_get download "$CONFIG_SECTION" download
+                       config_get_bool enabled "$CONFIG_SECTION" enabled 1
+                       [ 1 -eq "$enabled" ] || return 0
                        config_get classgroup "$CONFIG_SECTION" classgroup
                        config_set "$CONFIG_SECTION" imqdev "$C"
-                       [ -z "$enabled" -o "$(($enabled))" -eq 0 ] || {
-                               C=$(($C+1))
-                               INTERFACES="$INTERFACES $CONFIG_SECTION"
-                               config_set "$classgroup" enabled 1
-                       }
+                       C=$(($C+1))
+                       append INTERFACES "$CONFIG_SECTION"
+                       config_set "$classgroup" enabled 1
                        config_get device "$CONFIG_SECTION" device
-                       [ -z "$device" ] && device="$(find_ifname ${CONFIG_SECTION})"
-                       config_set "$CONFIG_SECTION" device "${device:-eth0}"
+                       [ -z "$device" ] && {
+                               device="$(find_ifname ${CONFIG_SECTION})"
+                               config_set "$CONFIG_SECTION" device "${device:-eth0}"
+                       }
                ;;
                classgroup) append CG "$CONFIG_SECTION";;
                classify|default|reclassify)
@@ -231,19 +232,23 @@ start_interface() {
        local iface="$1"
        local num_imq="$2"
        config_get device "$iface" device
-       config_get enabled "$iface" enabled
-       [ -z "$device" -o -z "$enabled" ] && exit
+       config_get_bool enabled "$iface" enabled 1
+       [ -z "$device" -o 1 -ne "$enabled" ] && {
+               echo "Interface '$iface' not found or disabled."
+               return 1 
+       }
        config_get upload "$iface" upload
        config_get halfduplex "$iface" halfduplex
        config_get download "$iface" download
        config_get classgroup "$iface" classgroup
+       config_get_bool overhead "$iface" overhead 0
        
        download="${download:-${halfduplex:+$upload}}"
        enum_classes "$classgroup"
        for dir in up${halfduplex} ${download:+down}; do
                case "$dir" in
                        up)
-                               upload=$(($upload * 98 / 100 - (32 * 128 / $upload)))
+                               [ "$overhead" = 1 ] && upload=$(($upload * 98 / 100 - (32 * 128 / $upload)))
                                dev="$device"
                                rate="$upload"
                                dl_mode=""
@@ -252,7 +257,7 @@ start_interface() {
                        down)
                                add_insmod imq numdevs="$num_imq"
                                config_get imqdev "$iface" imqdev
-                               download=$(($download * 98 / 100 - (100 * 1024 / $download)))
+                               [ "$overhead" = 1 ] && download=$(($download * 98 / 100 - (80 * 1024 / $download)))
                                dev="imq$imqdev"
                                rate="$download"
                                dl_mode=1