ltq-vdsl-app: add support for auto xfer_mode and auto line_mode

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>
openwrt-18.06
Martin Schiller 2017-08-03 09:55:00 +02:00 committed by Mathias Kresin
parent f6254a215e
commit 2da6c85c80
1 changed files with 9 additions and 11 deletions

View File

@ -180,6 +180,7 @@ start_service() {
local xtse
local xfer_mode
local line_mode
local tc_layer
local mode
local lowlevel
local snr
@ -194,28 +195,24 @@ start_service() {
eval "xtse=\"\${xtse_xdsl_$annex}\""
[ -z "${xfer_mode}" ] && xfer_mode=ptm
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)
mode=1
mode="-M1"
# 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##*_}"
@ -303,7 +300,8 @@ start_service() {
-n /sbin/dsl_notify.sh \
-f ${firmware} \
$lowlevel \
-M ${mode} \
${mode} \
${tc_layer} \
$autoboot
procd_close_instance
}