The line_state of the DSL connection is described in the system via a
hexadecimal variable. With this change the hexadecimal is mapped to a decimal
value. With this change it is now possible to store this value in a database,
so that it can be easily evaluated.

This is especially relevant for the collectd and gravana backend.

Signed-off-by: Florian Eckert <f...@dev.tdt.de>
---
 .../base-files/lib/functions/lantiq_dsl.sh    | 82 +++++++++++++------
 1 file changed, 55 insertions(+), 27 deletions(-)

diff --git a/target/linux/lantiq/base-files/lib/functions/lantiq_dsl.sh 
b/target/linux/lantiq/base-files/lib/functions/lantiq_dsl.sh
index 11b02fc4aa..4827d10bc5 100755
--- a/target/linux/lantiq/base-files/lib/functions/lantiq_dsl.sh
+++ b/target/linux/lantiq/base-files/lib/functions/lantiq_dsl.sh
@@ -650,40 +650,68 @@ line_data() {
 line_state() {
        local lsg=$(dsl_cmd lsg)
        local ls=$(dsl_val "$lsg" nLineState);
-       local s;
+       local s n;
 
        case "$ls" in
-               "0x0")          s="not initialized" ;;
-               "0x1")          s="exception" ;;
-               "0x10")         s="not updated" ;;
-               "0xff")         s="idle request" ;;
-               "0x100")        s="idle" ;;
-               "0x1ff")        s="silent request" ;;
-               "0x200")        s="silent" ;;
-               "0x300")        s="handshake" ;;
-               "0x380")        s="full_init" ;;
-               "0x400")        s="discovery" ;;
-               "0x500")        s="training" ;;
-               "0x600")        s="analysis" ;;
-               "0x700")        s="exchange" ;;
-               "0x800")        s="showtime_no_sync" ;;
-               "0x801")        s="showtime_tc_sync" ;;
-               "0x900")        s="fastretrain" ;;
-               "0xa00")        s="lowpower_l2" ;;
-               "0xb00")        s="loopdiagnostic active" ;;
-               "0xb10")        s="loopdiagnostic data exchange" ;;
-               "0xb20")        s="loopdiagnostic data request" ;;
-               "0xc00")        s="loopdiagnostic complete" ;;
-               "0x1000000")    s="test" ;;
-               "0xd00")        s="resync" ;;
-               "0x3c0")        s="short init entry" ;;
-               "")             s="not running daemon"; ls="0xfff" ;;
-               *)              s="unknown" ;;
+               "0x0")          s="not initialized"
+                               n=1 ;;
+               "0x1")          s="exception"
+                               n=2 ;;
+               "0x10")         s="not updated"
+                               n=3 ;;
+               "0xff")         s="idle request"
+                               n=4 ;;
+               "0x100")        s="idle"
+                               n=5 ;;
+               "0x1ff")        s="silent request"
+                               n=6 ;;
+               "0x200")        s="silent"
+                               n=7 ;;
+               "0x300")        s="handshake"
+                               n=8 ;;
+               "0x380")        s="full_init"
+                               n=9 ;;
+               "0x400")        s="discovery"
+                               n=10 ;;
+               "0x500")        s="training"
+                               n=11 ;;
+               "0x600")        s="analysis"
+                               n=12 ;;
+               "0x700")        s="exchange"
+                               n=13 ;;
+               "0x800")        s="showtime_no_sync"
+                               n=14 ;;
+               "0x801")        s="showtime_tc_sync"
+                               n=15 ;;
+               "0x900")        s="fastretrain"
+                               n=16 ;;
+               "0xa00")        s="lowpower_l2"
+                               n=17 ;;
+               "0xb00")        s="loopdiagnostic active"
+                               n=18 ;;
+               "0xb10")        s="loopdiagnostic data exchange"
+                               n=19 ;;
+               "0xb20")        s="loopdiagnostic data request"
+                               n=20 ;;
+               "0xc00")        s="loopdiagnostic complete"
+                               n=21 ;;
+               "0x1000000")    s="test"
+                               n=22 ;;
+               "0xd00")        s="resync"
+                               n=23 ;;
+               "0x3c0")        s="short init entry"
+                               n=24 ;;
+               "")             s="not running daemon"
+                               ls="0xfff"
+                               n=25 ;;
+               *)              s="unknown"
+                               n=26 ;;
        esac
 
        if [ "$action" = "lucistat" ]; then
                echo "dsl.line_state_num=$ls"
                echo "dsl.line_state_detail=\"$s\""
+               echo "dsl.line_state_mapping=$n"
                if [ "$ls" = "0x801" ]; then
                        echo "dsl.line_state=\"UP\""
                else
-- 
2.20.1


_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to