0fa86bdefde9471a0505a11470b15944567bd628
[openwrt/openwrt.git] / package / network / utils / linux-atm / files / br2684ctl
1 #!/bin/sh /etc/rc.common
2
3 START=50
4 USE_PROCD=1
5
6 start_daemon() {
7 local cfg="$1"
8
9 local atmdev disabled
10
11 config_get_bool disabled "$cfg" disabled 0
12 [ "$disabled" -eq 1 ] && return
13
14 config_get atmdev "$cfg" atmdev 0
15
16 local unit
17 config_get unit "$cfg" unit 0
18
19 local vpi
20 config_get vpi "$cfg" vpi 8
21
22 local vci
23 config_get vci "$cfg" vci 35
24
25 local encaps
26 config_get encaps "$cfg" encaps
27
28 case "$encaps" in
29 1|vc) encaps=1;;
30 *) encaps=0;;
31 esac
32
33 local payload
34 config_get payload "$cfg" payload
35
36 case "$payload" in
37 0|routed) payload=0;;
38 *) payload=1;;
39 esac
40
41 local qos
42 config_get qos "$cfg" qos
43
44 local sendsize
45 config_get sendsize "$cfg" sendsize
46
47 found=
48 for device in /sys/class/atm/*; do
49 [ -d "$device" ] || break
50 [ "$(cat $device/atmindex)" = "$atmdev" ] || continue
51 found=1
52 break
53 done
54
55 [ -n "$found" ] || return
56
57 local circuit="$atmdev.$vpi.$vci"
58
59 procd_open_instance
60 procd_set_param command \
61 /usr/sbin/br2684ctl_wrap "nas$unit" \
62 -c "$unit" -e "$encaps" -p "$payload" \
63 -a "$circuit" ${qos:+-q "$qos"} ${sendsize:+-s "$sendsize"} \
64 -S /lib/netifd/br2684-up
65 procd_close_instance
66 }
67
68 service_triggers() {
69 local script=$(readlink "$initscript")
70 local name=$(basename ${script:-$initscript})
71
72 procd_open_trigger
73 procd_add_raw_trigger hotplug.atm 2000 /etc/init.d/$name reload
74 procd_add_config_trigger "config.change" "network" /etc/init.d/$name reload
75 procd_close_trigger
76 }
77
78 start_service() {
79 config_load network
80 config_foreach start_daemon atm-bridge
81 }