ltq-vdsl-app: use the final xtse format
[openwrt.git] / package / network / config / ltq-vdsl-app / files / dsl_control
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2012 OpenWrt.org
3
4 # needs to start before the atm layer which starts at 50
5 START=48
6 USE_PROCD=1
7
8 EXTRA_COMMANDS="status lucistat"
9 EXTRA_HELP="    status  Get DSL status information
10         lucistat  Get status information if lua friendly format"
11
12 [ -f /lib/functions/lantiq_dsl.sh ] && . /lib/functions/lantiq_dsl.sh
13
14 # G.992.1 Annex A
15 # G.992.3 Annex A / L-US1 / L_US-2 / M
16 # G.992.5 Annex A / M
17 xtse_adsl_a="04_00_04_00_4C_01_04_00"
18
19 # G.992.1 Annex B
20 # G.992.3 Annex B
21 # G.992.5 Annex B
22 # G.993.2 Annex A/B/C
23 xtse_adsl_b="10_00_10_00_00_04_00_00"
24
25 # G.992.1 Annex B
26 # G.992.3 Annex B
27 # G.992.3 Annex J
28 # G.992.5 Annex B
29 # G.992.5 Annex J
30 # G.993.2 Annex A/B/C
31 xtse_adsl_j="10_00_10_40_00_04_01_00"
32
33 xtse_vdsl="00_00_00_00_00_00_00_07"
34
35 service_triggers() {
36         procd_add_reload_trigger network
37 }
38
39 start_service() {
40         local annex
41         local firmware
42         local xtse
43         local xtse_adsl
44         local mode
45
46         config_load network
47         config_get annex dsl annex
48         config_get firmware dsl firmware
49         config_get xfer_mode dsl xfer_mode
50
51         [ -z "${xfer_mode}" ] && xfer_mode=ptm
52
53         case "${xfer_mode}" in
54         atm)
55                 LOAD=ltq_atm_vr9
56                 UNLOAD=ltq_ptm_vr9
57                 mode=1
58                 ;;
59         *)
60                 LOAD=ltq_ptm_vr9
61                 UNLOAD=ltq_atm_vr9
62                 mode=2
63                 ;;
64         esac
65
66         eval "xtse_adsl=\"\${xtse_adsl_$annex}\""
67         if [ "${xtse_adsl}" ]; then
68                 xtse=$xtse_adsl
69         else
70                 xtse=$xtse_vdsl
71         fi
72
73         [ -z "${firmware}" ] && firmware=/lib/firmware/vdsl.bin
74         [ -f "${firmware}" ] || {
75                 echo failed to find $firmware
76                 return 1
77         }
78
79         procd_open_instance
80         procd_set_param command /sbin/vdsl_cpe_control_wrapper \
81                         -i$xtse \
82                         -n /sbin/dsl_notify.sh \
83                         -f ${firmware} \
84                         -M ${mode}
85         procd_append_param env "LOAD=$LOAD" "UNLOAD=$UNLOAD"
86         procd_close_instance
87 }
88
89 stop_service() {
90         DSL_NOTIFICATION_TYPE="DSL_INTERFACE_STATUS" \
91         DSL_INTERFACE_STATUS="DOWN" \
92                 /sbin/dsl_notify.sh
93 }