openwrt/package/network/config/ltq-vdsl-app/files/dsl_control

92 lines
1.7 KiB
Bash

#!/bin/sh /etc/rc.common
# Copyright (C) 2012 OpenWrt.org
# needs to start before the atm layer which starts at 50
START=48
EXTRA_COMMANDS="status lucistat"
EXTRA_HELP=" status Get DSL status information
lucistat Get status information if lua friendly format"
SERVICE_DAEMONIZE=1
SERVICE_WRITE_PID=1
[ -f /lib/functions/lantiq_dsl.sh ] && . /lib/functions/lantiq_dsl.sh
# G.992.1 Annex A
# G.992.2 Annex A
# G.992.3 Annex A
# G.992.4 Annex A
# G.992.5 Annex A
# G.993.2 Annex A/B/C
xtse_adsl_a="04 01 04 01 00 01 00 00"
# G.992.1 Annex B
# G.992.3 Annex B
# G.992.5 Annex B
# G.993.2 Annex A/B/C
xtse_adsl_b="10 00 10 00 00 04 00 00"
# G.992.1 Annex B
# G.992.3 Annex B
# G.992.3 Annex J
# G.992.5 Annex B
# G.992.5 Annex J
# G.993.2 Annex A/B/C
xtse_adsl_j="10 00 10 40 00 04 01 00"
xtse_vdsl="00 00 00 00 00 00 00 07"
start() {
local annex
local firmware
local xtse
local xtse_adsl
local mode
config_load network
config_get annex dsl annex
config_get firmware dsl firmware
config_get xfer_mode dsl xfer_mode
[ -z "${xfer_mode}" ] && xfer_mode=ptm
case "${xfer_mode}" in
atm)
insmod ltq_atm_vr9
mode=1
;;
*)
insmod ltq_ptm_vr9
mode=2
;;
esac
eval "xtse_adsl=\"\${xtse_adsl_$annex}\""
if [ "${xtse_adsl}" ]; then
xtse=$xtse_adsl
else
xtse=$xtse_vdsl
fi
[ -z "${firmware}" ] && firmware=/lib/firmware/vdsl.bin
[ -f "${firmware}" ] || {
echo failed to find $firmware
return 1
}
service_start /sbin/vdsl_cpe_control \
-i `echo $xtse | sed "s/ /_/g"` \
-n /sbin/dsl_notify.sh \
-f ${firmware} \
-M ${mode}
}
stop() {
DSL_NOTIFICATION_TYPE="DSL_INTERFACE_STATUS" \
DSL_INTERFACE_STATUS="DOWN" \
/sbin/dsl_notify.sh
service_stop /sbin/vdsl_cpe_control
}