ltq-vdsl-app: add support for auto xfer_mode and auto line_mode
authorMartin Schiller <ms@dev.tdt.de>
Thu, 3 Aug 2017 07:55:00 +0000 (09:55 +0200)
committerMathias Kresin <dev@kresin.me>
Sun, 6 Aug 2017 07:22:03 +0000 (09:22 +0200)
If xfer_mode is set to auto the vdsl_cpe_control daemon assumes that
ATM should be used for ADSL and PTM for VDSL.

xfer_mode and line_mode can be set to fixed value independantly from
each other.

The syntax for the tc_layer argument of vdsl_cpe_control is as follow:

-T<TcADSL>:<TcCfgUsADSL>:<TcCfgDsADSL>_<TcVDSL>:<TcCfgUsVDSL>:<TcCfgDsVDSL>

where TcADSL and TcVDSL can be: 1=ATM, 2=PTM/EFM, 4=Auto TC-Layer

and TcCfgUsADSL, TcCfgUsVDSL, TcCfgDsADSL, TcCfgDsVDSL can be:
1=64/65-octet encapsulation supported
2=64/65-octet encapsulation with pre-emption
3=64/65-octet encapsulation with short packets

Default: In case of no '-T' option is given, ADSL will be configured
in ATM and VDSL in PTM/EFM: -T1:0x1:0x1_2:0x1:0x1

The '-M' argument of dsl_cpe_control defines the initial DSL mode
(NextMode) for ADSL/VDSL multimode handling.

Possible Values: 0=API-default, 1=ADSL, 2=VDSL

Default: In case of no '-M' option is given, '0' (API-default) will
be selected.

Signed-off-by: Martin Schiller <ms@dev.tdt.de>
package/network/config/ltq-vdsl-app/files/dsl_control

index bd5f0b8..425208a 100644 (file)
@@ -180,6 +180,7 @@ start_service() {
        local xtse
        local xfer_mode
        local line_mode
        local xtse
        local xfer_mode
        local line_mode
+       local tc_layer
        local mode
        local lowlevel
        local snr
        local mode
        local lowlevel
        local snr
@@ -194,28 +195,24 @@ start_service() {
 
        eval "xtse=\"\${xtse_xdsl_$annex}\""
 
 
        eval "xtse=\"\${xtse_xdsl_$annex}\""
 
-       [ -z "${xfer_mode}" ] && xfer_mode=ptm
-
        case "${xfer_mode}" in
        atm)
        case "${xfer_mode}" in
        atm)
-               # in most cases atm is used on top of adsl
-               [ -z "${line_mode}" ] && line_mode=adsl
+               tc_layer="-T1:0x1:0x1_1:0x1:0x1"
                ;;
                ;;
-       *)
-               # in most cases ptm is used on top of vdsl
-               [ -z "${line_mode}" ] && line_mode=vdsl
+       ptm)
+               tc_layer="-T2:0x1:0x1_2:0x1:0x1"
                ;;
        esac
 
        case "${line_mode}" in
        adsl)
                ;;
        esac
 
        case "${line_mode}" in
        adsl)
-               mode=1
+               mode="-M1"
 
                # mask out VDSL bits when ADSL is requested
                xtse="${xtse%_*}_00"
                ;;
 
                # mask out VDSL bits when ADSL is requested
                xtse="${xtse%_*}_00"
                ;;
-       *)
-               mode=2
+       vdsl)
+               mode="-M2"
 
                # mask out ADSL bits when VDSL is requested
                xtse="00_00_00_00_00_00_00_${xtse##*_}"
 
                # mask out ADSL bits when VDSL is requested
                xtse="00_00_00_00_00_00_00_${xtse##*_}"
@@ -303,7 +300,8 @@ start_service() {
                        -n /sbin/dsl_notify.sh \
                        -f ${firmware} \
                        $lowlevel \
                        -n /sbin/dsl_notify.sh \
                        -f ${firmware} \
                        $lowlevel \
-                       -M ${mode} \
+                       ${mode} \
+                       ${tc_layer} \
                        $autoboot
        procd_close_instance
 }
                        $autoboot
        procd_close_instance
 }