fe098d793737763b4c671f81771fb250e71ebae6
[openwrt/svn-archive/archive.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 # ITU-T G.997.1 Amendment 2 (04/2013) - Section 2.1 - (Vectoring mode enable (VECTORMODE_ENABLE))
17 #
18 # G.992.1 Annex A
19 # G.992.3 Annex A / L-US1 / L_US-2 / M
20 # G.992.5 Annex A / M
21 # G.993.2 Annex A/B/C
22 # G.993.5 Annex A/B/C
23 xtse_xdsl_a="04_00_04_00_4C_01_04_0F"
24
25 # G.992.1 Annex B
26 # G.992.3 Annex B
27 # G.992.5 Annex B
28 # G.993.2 Annex A/B/C
29 # G.993.5 Annex A/B/C
30 xtse_xdsl_b="10_00_10_00_00_04_00_0F"
31
32 # G.992.1 Annex B
33 # G.992.3 Annex B
34 # G.992.3 Annex J
35 # G.992.5 Annex B
36 # G.992.5 Annex J
37 # G.993.2 Annex A/B/C
38 # G.993.5 Annex A/B/C
39 xtse_xdsl_j="10_00_10_40_00_04_01_0F"
40
41 service_triggers() {
42 procd_add_reload_trigger network
43 }
44
45 start_service() {
46 local annex
47 local firmware
48 local xtse
49 local mode
50
51 config_load network
52 config_get annex dsl annex
53 config_get firmware dsl firmware
54 config_get xfer_mode dsl xfer_mode
55
56 [ -z "${xfer_mode}" ] && xfer_mode=ptm
57
58 case "${xfer_mode}" in
59 atm)
60 LOAD=ltq_atm_vr9
61 UNLOAD=ltq_ptm_vr9
62 mode=1
63 ;;
64 *)
65 LOAD=ltq_ptm_vr9
66 UNLOAD=ltq_atm_vr9
67 mode=2
68 ;;
69 esac
70
71 eval "xtse=\"\${xtse_xdsl_$annex}\""
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 }