linux-atm: add br2684ctl option to specify the netdev name
[openwrt/staging/pepe2k.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 nameprefix
17 config_get nameprefix "$cfg" nameprefix "nas"
18
19 local unit
20 config_get unit "$cfg" unit 0
21
22 local vpi
23 config_get vpi "$cfg" vpi 8
24
25 local vci
26 config_get vci "$cfg" vci 35
27
28 local encaps
29 config_get encaps "$cfg" encaps
30
31 case "$encaps" in
32 1|vc) encaps=1;;
33 *) encaps=0;;
34 esac
35
36 local payload
37 config_get payload "$cfg" payload
38
39 case "$payload" in
40 0|routed) payload=0;;
41 *) payload=1;;
42 esac
43
44 local qos
45 config_get qos "$cfg" qos
46
47 local sendsize
48 config_get sendsize "$cfg" sendsize
49
50 found=
51 for device in /sys/class/atm/*; do
52 [ -d "$device" ] || break
53 [ "$(cat $device/atmindex)" = "$atmdev" ] || continue
54 found=1
55 break
56 done
57
58 [ -n "$found" ] || return
59
60 local circuit="$atmdev.$vpi.$vci"
61
62 procd_open_instance
63 procd_set_param command \
64 /usr/sbin/br2684ctl_wrap "${nameprefix}${unit}" \
65 -n "$nameprefix" -c "$unit" -e "$encaps" -p "$payload" \
66 -a "$circuit" ${qos:+-q "$qos"} ${sendsize:+-s "$sendsize"} \
67 -S /lib/netifd/br2684-up
68 procd_close_instance
69 }
70
71 service_triggers() {
72 local script=$(readlink "$initscript")
73 local name=$(basename ${script:-$initscript})
74
75 procd_open_trigger
76 procd_add_raw_trigger hotplug.atm 2000 /etc/init.d/$name reload
77 procd_add_config_trigger "config.change" "network" /etc/init.d/$name reload
78 procd_close_trigger
79 }
80
81 start_service() {
82 config_load network
83 config_foreach start_daemon atm-bridge
84 }