lantiq: restore netdev trigger of dsl led on line up
[openwrt/openwrt.git] / target / linux / lantiq / base-files / sbin / dsl_notify.sh
index b514e257d4b8e256f0cdb82a6d23463f6d628a15..4804e2ab82fefbce9dc2a3ebbbd73b3b5bbd5dd0 100755 (executable)
 . /lib/functions.sh
 . /lib/functions/leds.sh
 
+led_dsl_up() {
+       case "$(config_get led_dsl trigger)" in
+       "netdev")
+               led_set_attr $1 "trigger" "netdev"
+               led_set_attr $1 "device_name" "$(config_get led_dsl dev)"
+               led_set_attr $1 "mode" "$(config_get led_dsl mode)"
+               ;;
+       *)
+               led_on $1
+               ;;
+       esac
+}
+
 include /lib/network
 scan_interfaces
 
-local default
 config_load system
-config_get default led_adsl default
-if [ "$default" != 1 ]; then
+config_get led led_dsl sysfs
+if [ -n "$led" ]; then
        case "$DSL_INTERFACE_STATUS" in
-         "HANDSHAKE")  led_timer dsl 500 500;;
-         "TRAINING")   led_timer dsl 200 200;;
-         "UP")         led_on dsl;;
-         *)            led_off dsl
+         "HANDSHAKE")  led_timer $led 500 500;;
+         "TRAINING")   led_timer $led 200 200;;
+         "UP")         led_dsl_up $led;;
+         *)            led_off $led
        esac
 fi
 
-local interfaces=`ubus list network.interface.\* | cut -d"." -f3`
-local ifc
+interfaces=`ubus list network.interface.\* | cut -d"." -f3`
 for ifc in $interfaces; do
 
-       local up
        json_load "$(ifstatus $ifc)"
-       json_get_var up up
-
-       local auto
-       config_get_bool auto "$ifc" auto 1
 
-       local proto
        json_get_var proto proto
+       if [ "$proto" != "pppoa" ]; then
+               continue
+       fi
 
+       json_get_var up up
+       config_get_bool auto "$ifc" auto 1
        if [ "$DSL_INTERFACE_STATUS" = "UP" ]; then
-               if [ "$proto" = "pppoa" ] && [ "$up" != 1 ] && [ "$auto" = 1 ]; then
+               if [ "$up" != 1 ] && [ "$auto" = 1 ]; then
                        ( sleep 1; ifup "$ifc" ) &
                fi
        else
-               if [ "$proto" = "pppoa" ] && [ "$up" = 1 ] && [ "$auto" = 1 ]; then
+               if [ "$up" = 1 ] && [ "$auto" = 1 ]; then
                        ( sleep 1; ifdown "$ifc" ) &
                else
                        json_get_var autostart autostart
-                       if [ "$proto" = "pppoa" ] && [ "$up" != 1 ] && [ "$autostart" = 1 ]; then
+                       if [ "$up" != 1 ] && [ "$autostart" = 1 ]; then
                                ( sleep 1; ifdown "$ifc" ) &
                        fi
                fi