summaryrefslogtreecommitdiff
path: root/package/network/config/ltq-adsl-app/files/dsl_control
blob: cf945ac23d6f60c3db36d3e08f0308ea506203c2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/bin/sh /etc/rc.common
# Copyright (C) 2012 OpenWrt.org

START=99

EXTRA_COMMANDS="status lucistat"
EXTRA_HELP="	status  Get DSL status information
	lucistat  Get status information if lua friendly format"

SERVICE_DAEMONIZE=1
SERVICE_WRITE_PID=1

[ -f /lib/functions/lantiq_dsl.sh ] && . /lib/functions/lantiq_dsl.sh

annex_b=10_00_10_00_00_04_00_00
annex_bdmt=10_00_00_00_00_00_00_00
annex_b2=00_00_10_00_00_00_00_00
annex_b2p=00_00_00_00_00_04_00_00
annex_a=05_01_04_00_4C_01_04_00
annex_at1=01_00_00_00_00_00_00_00
annex_alite=00_01_00_00_00_00_00_00
annex_admt=04_00_00_00_00_00_00_00
annex_a2=00_00_04_00_00_00_00_00
annex_a2p=00_00_00_00_00_01_00_00
annex_l=00_00_00_00_0C_00_00_00
annex_m=00_00_00_00_40_00_04_00
annex_m2=00_00_00_00_40_00_00_00
annex_m2p=00_00_00_00_00_00_04_00
annex_j=10_00_10_40_00_04_01_00

start() {
	local annex
	local firmware
	local xtu
	config_load network
	config_get annex dsl annex
	config_get firmware dsl firmware

	eval "xtu=\"\${annex_$annex}\""

	[ -z "${firmware}" ] &&
		firmware=/lib/firmware/adsl.bin
	[ -f "${firmware}" ] || {
		echo failed to find $firmware
		return 1
	}

	esi $(printf '%012X' $((1+0x$(tr -d : </sys/class/net/eth0/address))))

	service_start /sbin/dsl_cpe_control -i${xtu} \
			-n /sbin/dsl_notify.sh \
			-f ${firmware}
}

stop() {
	DSL_NOTIFICATION_TYPE="DSL_INTERFACE_STATUS" \
	DSL_INTERFACE_STATUS="DOWN" \
		/sbin/dsl_notify.sh

	service_stop /sbin/dsl_cpe_control
}