diff options
author | Felix Fietkau <nbd@openwrt.org> | 2009-06-10 14:37:36 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2009-06-10 14:37:36 +0000 |
commit | ab92fede810d5a494797142193fa61f02df521dd (patch) | |
tree | f249aaeb346f0b0991059630e2096f0f56e2838f /package/wprobe/files/wprobe.init | |
parent | 2af80938958beee4ed581ad3948384c2155726c2 (diff) | |
download | master-187ad058-ab92fede810d5a494797142193fa61f02df521dd.tar.gz master-187ad058-ab92fede810d5a494797142193fa61f02df521dd.tar.bz2 master-187ad058-ab92fede810d5a494797142193fa61f02df521dd.zip |
wprobe: move measurement task to the kernel, add some configurability (work in progress)
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@16402 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package/wprobe/files/wprobe.init')
-rwxr-xr-x | package/wprobe/files/wprobe.init | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/package/wprobe/files/wprobe.init b/package/wprobe/files/wprobe.init index 3c62a03066..cf0b162181 100755 --- a/package/wprobe/files/wprobe.init +++ b/package/wprobe/files/wprobe.init @@ -1,10 +1,11 @@ #!/bin/sh /etc/rc.common START=90 +EXPORTER=/usr/sbin/wprobe-ipfix wprobe_ssd() { local cfg="$1"; shift local cmd="$1"; shift - start-stop-daemon "$cmd" -p "/var/run/wprobe-$cfg.pid" -b -x /sbin/wprobe-export -m -- "$@" + start-stop-daemon "$cmd" -p "/var/run/wprobe-$cfg.pid" -b -x "$EXPORTER" -m -- "$@" } stop_wprobe() { @@ -13,7 +14,14 @@ stop_wprobe() { rm -f "/var/run/wprobe-$cfg.pid" } -start_wprobe() { +config_wprobe() { + config_get ifname "$cfg" ifname + config_get interval "$cfg" interval + [ -n "$interval" ] || interval=100 + wprobe-info "$ifname" -c -i "$interval" +} + +start_ipfix() { local cfg="$1" config_get ifname "$cfg" interface config_get host "$cfg" host @@ -29,9 +37,17 @@ start_wprobe() { echo "wprobe-export: missing host or interface name in config $cfg" return } + config_wprobe "$cfg" wprobe_ssd "$cfg" -S "$proto" -i "$ifname" -c "$host" -p "${port:-4739}" } +start_export() { + config_get export_type "$cfg" type + case "$export_type" in + ipfix) start_ipfix "$cfg";; + esac +} + stop() { for f in /var/run/wprobe-*.pid; do CFG="${f%%.pid}" @@ -42,5 +58,6 @@ stop() { start() { config_load wprobe - config_foreach start_wprobe wprobe + config_foreach config_wprobe interface + [ -x "$EXPORTER" ] && config_foreach start_export export } |