rpcd: iwinfo plugin fixes
[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 }