[package] br2684ctl from linux-atm
[openwrt.git] / package / linux-atm / files / br2684ctl
diff --git a/package/linux-atm/files/br2684ctl b/package/linux-atm/files/br2684ctl
new file mode 100755 (executable)
index 0000000..929e2b8
--- /dev/null
@@ -0,0 +1,60 @@
+#!/bin/sh /etc/rc.common
+START=50
+
+start_daemon() {
+       local cfg="$1"
+
+       local atmdev
+       config_get atmdev "$cfg" atmdev 0
+
+       local unit
+       config_get unit "$cfg" unit 0
+
+       local vpi
+       config_get vpi "$cfg" vpi 8
+
+       local vci
+       config_get vci "$cfg" vci 35
+
+       local encaps
+       config_get encaps "$cfg" encaps
+
+       case "$encaps" in
+               1|vc) encaps=1;;
+               *) encaps=0;;
+       esac
+
+       local payload
+       config_get payload "$cfg" payload
+
+       case "$payload" in
+               0|routed) payload=0;;
+               *) payload=1;;
+       esac
+
+       local qos
+       config_get qos "$cfg" qos
+
+       local circuit="$atmdev.$vpi.$vci"
+       local pid="/var/run/br2684ctl-$circuit.pid"
+
+       start-stop-daemon -S -b -x /usr/sbin/br2684ctl -m -p "$pid" -- \
+               -c "$unit" -e "$encaps" -p "$payload" \
+               -a "$circuit" ${qos:+-q "$qos"}
+}
+
+start() {
+       insmod br2684 >/dev/null 2>/dev/null
+       config_load network
+       config_foreach start_daemon atm-bridge
+}
+
+stop() {
+       local pid
+       for pid in /var/run/br2684ctl-*.pid; do
+               if [ -f "$pid" ]; then
+                       service_kill br2684ctl "$pid"
+                       rm -f "$pid"
+               fi
+       done
+}
This page took 0.023836 seconds and 4 git commands to generate.