[ "$cfgt" = "interface" ] && config_get "$interface" ifname
}
-config_cb() {
- config_get TYPE "$CONFIG_SECTION" TYPE
+qos_set_device() {
+ config_get TYPE "$1" TYPE
[ "interface" = "$TYPE" ] && {
- config_get device "$CONFIG_SECTION" ifname
- [ -z "$device" ] && device="$(get_ifname ${CONFIG_SECTION})"
- config_set "$CONFIG_SECTION" device "$device"
+ config_get device "$1" ifname
+ [ -z "$device" ] && device="$(get_ifname $1)"
+ config_set "$1" device "$device"
}
}
config_load qos
+config_foreach qos_set_device
print_comments() {
echo ''
option_cb() {
return 0
}
-
- # Section start
case "$1" in
interface)
config_set "$2" "classgroup" "Default"
;;
classify|default|reclassify)
option_cb() {
- append options "$1"
+ append "CONFIG_${CONFIG_SECTION}_options" "$1"
}
;;
esac
+}
- # Section end
- config_get TYPE "$CONFIG_SECTION" TYPE
+qos_parse_config() {
+ config_get TYPE "$1" TYPE
case "$TYPE" in
interface)
- config_get_bool enabled "$CONFIG_SECTION" enabled 1
- [ 1 -eq "$enabled" ] || return 0
- config_get classgroup "$CONFIG_SECTION" classgroup
- config_set "$CONFIG_SECTION" ifbdev "$C"
- 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"
+ config_get_bool enabled "$1" enabled 1
+ [ 1 -eq "$enabled" ] && {
+ config_get classgroup "$1" classgroup
+ config_set "$1" ifbdev "$C"
+ C=$(($C+1))
+ append INTERFACES "$1"
+ config_set "$classgroup" enabled 1
+ config_get device "$1" device
+ [ -z "$device" ] && {
+ device="$(find_ifname $1)"
+ config_set "$1" device "$device"
+ }
}
;;
- classgroup) append CG "$CONFIG_SECTION";;
+ classgroup) append CG "$1";;
classify|default|reclassify)
case "$TYPE" in
classify) var="ctrules";;
*) var="rules";;
esac
- config_get target "$CONFIG_SECTION" target
- config_set "$CONFIG_SECTION" options "$options"
- append "$var" "$CONFIG_SECTION"
- unset options
+ append "$var" "$1"
;;
esac
}
-
enum_classes() {
local c="0"
config_get classes "$1" classes
[ -e ./qos.conf ] && {
. ./qos.conf
config_cb
-} || config_load qos
+} || {
+ config_load qos
+ config_foreach qos_parse_config
+}
C="0"
for iface in $INTERFACES; do