From dfe42a2505e655ee80e862c72a78a15802a76a71 Mon Sep 17 00:00:00 2001 From: nbd Date: Wed, 10 Jun 2009 14:37:36 +0000 Subject: 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 --- package/wprobe/files/wprobe.init | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) (limited to 'package/wprobe/files/wprobe.init') diff --git a/package/wprobe/files/wprobe.init b/package/wprobe/files/wprobe.init index 3c62a0306..cf0b16218 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 } -- cgit v1.2.3