22d775cf3996912885ec51f4150c55430ab2be19
[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 #
15 # ITU-T G.997.1 (06/2012) - Section 7.3.1.1.1 (xTU transmission system enabling (XTSE))
16 #
17 # G.992.1 Annex A
18 # G.992.3 Annex A / L-US1 / L_US-2 / M
19 # G.992.5 Annex A / M
20 # G.993.2 Annex A/B/C
21 xtse_xdsl_a="04_00_04_00_4C_01_04_07"
22
23 # G.992.1 Annex B
24 # G.992.3 Annex B
25 # G.992.5 Annex B
26 # G.993.2 Annex A/B/C
27 xtse_adsl_b="10_00_10_00_00_04_00_07"
28
29 # G.992.1 Annex B
30 # G.992.3 Annex B
31 # G.992.3 Annex J
32 # G.992.5 Annex B
33 # G.992.5 Annex J
34 # G.993.2 Annex A/B/C
35 xtse_adsl_j="10_00_10_40_00_04_01_07"
36
37 xtse_vdsl="00_00_00_00_00_00_00_07"
38
39 service_triggers() {
40         procd_add_reload_trigger network
41 }
42
43 start_service() {
44         local annex
45         local firmware
46         local xtse
47         local mode
48
49         config_load network
50         config_get annex dsl annex
51         config_get firmware dsl firmware
52         config_get xfer_mode dsl xfer_mode
53
54         [ -z "${xfer_mode}" ] && xfer_mode=ptm
55
56         case "${xfer_mode}" in
57         atm)
58                 LOAD=ltq_atm_vr9
59                 UNLOAD=ltq_ptm_vr9
60                 mode=1
61                 ;;
62         *)
63                 LOAD=ltq_ptm_vr9
64                 UNLOAD=ltq_atm_vr9
65                 mode=2
66                 ;;
67         esac
68
69         eval "xtse=\"\${xtse_xdsl_$annex}\""
70         [ -z "${xtse}" ] && xtse=$xtse_vdsl
71
72         [ -z "${firmware}" ] && firmware=/lib/firmware/vdsl.bin
73         [ -f "${firmware}" ] || {
74                 echo failed to find $firmware
75                 return 1
76         }
77
78         procd_open_instance
79         procd_set_param command /sbin/vdsl_cpe_control_wrapper \
80                         -i$xtse \
81                         -n /sbin/dsl_notify.sh \
82                         -f ${firmware} \
83                         -M ${mode}
84         procd_append_param env "LOAD=$LOAD" "UNLOAD=$UNLOAD"
85         procd_close_instance
86 }
87
88 stop_service() {
89         DSL_NOTIFICATION_TYPE="DSL_INTERFACE_STATUS" \
90         DSL_INTERFACE_STATUS="DOWN" \
91                 /sbin/dsl_notify.sh
92 }