#!/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 bbsg hlog qln snr" EXTRA_HELP=" status Get DSL status information lucistat Get status information in lua friendly format" SERVICE_DAEMONIZE=1 SERVICE_WRITE_PID=1 [ -f /root/lantiq_dsl.sh ] && . /root/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 }