Openwrt/package/linux-atm/files/br2684ctl
Felix Fietkau 7b7242564a linux-atm: Solos card requires explicit buffer size to br2684ctl
The default send buffer size of 8192 potentially can run past the end of the buffer (skb) and trash memory.
Explicitly setting a limit is required.

(Patch by Philip Prindeville)

SVN-Revision: 26242
2011-03-20 01:21:49 +00:00

64 lines
1.1 KiB
Bash
Executable File

#!/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 sendsize
config_get sendsize "$cfg" sendsize
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"} ${sendsize:+-s "$sendsize"}
}
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
}