#!/bin/sh /etc/rc.common # Copyright (C) 2012 OpenWrt.org # needs to start before the atm layer which starts at 50 START=48 USE_PROCD=1 EXTRA_COMMANDS="status lucistat" EXTRA_HELP=" status Get DSL status information lucistat Get status information if lua friendly format" [ -f /lib/functions/lantiq_dsl.sh ] && . /lib/functions/lantiq_dsl.sh # G.992.1 Annex A # G.992.3 Annex A / L-US1 / L_US-2 / M # G.992.5 Annex A / M xtse_adsl_a="04_00_04_00_4C_01_04_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" service_triggers() { procd_add_reload_trigger network } start_service() { 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) LOAD=ltq_atm_vr9 UNLOAD=ltq_ptm_vr9 mode=1 ;; *) LOAD=ltq_ptm_vr9 UNLOAD=ltq_atm_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 } procd_open_instance procd_set_param command /sbin/vdsl_cpe_control_wrapper \ -i$xtse \ -n /sbin/dsl_notify.sh \ -f ${firmware} \ -M ${mode} procd_append_param env "LOAD=$LOAD" "UNLOAD=$UNLOAD" procd_close_instance } stop_service() { DSL_NOTIFICATION_TYPE="DSL_INTERFACE_STATUS" \ DSL_INTERFACE_STATUS="DOWN" \ /sbin/dsl_notify.sh }