From ed2d4433e680804493503bf71c961433abc8a35e Mon Sep 17 00:00:00 2001 From: Ross Vandegrift Date: Fri, 4 Jul 2014 15:41:45 -0400 Subject: [PATCH] net/softflowd: import from packages and update to latest version Signed-off-by: Ross Vandegrift --- net/softflowd/Makefile | 54 ++++++++++++++++++++ net/softflowd/files/softflowd.config | 14 ++++++ net/softflowd/files/softflowd.init | 74 ++++++++++++++++++++++++++++ 3 files changed, 142 insertions(+) create mode 100644 net/softflowd/Makefile create mode 100644 net/softflowd/files/softflowd.config create mode 100755 net/softflowd/files/softflowd.init diff --git a/net/softflowd/Makefile b/net/softflowd/Makefile new file mode 100644 index 0000000000..a908d3150e --- /dev/null +++ b/net/softflowd/Makefile @@ -0,0 +1,54 @@ +# +# Copyright (C) 2007-2011 OpenWrt.org +# +# This is free software, licensed under the GNU General Public License v2. +# See /LICENSE for more information. +# + +include $(TOPDIR)/rules.mk + +PKG_NAME:=softflowd +PKG_VERSION:=0.9.9 +PKG_RELEASE:=1 + +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz +PKG_SOURCE_URL:=http://softflowd.googlecode.com/files/ +PKG_MD5SUM:=ba83e2715e6250e6645ebcaa9ae1009d +PKG_MAINTAINER:=Ross Vandegrift +PKG_LICENSE:=BSD-3-Clause + +PKG_FIXUP:=autoreconf + +include $(INCLUDE_DIR)/package.mk + +define Package/softflowd + SECTION:=net + CATEGORY:=Network + DEPENDS:=+libpcap + TITLE:=softflowd + URL:=http://code.google.com/p/softflowd/ +endef + +define Package/softflowd/description + Software netflow exporter +endef + +define Build/Compile + $(MAKE) -C $(PKG_BUILD_DIR) DESTDIR="$(PKG_INSTALL_DIR)" softflowd softflowctl +endef + +define Package/softflowd/install + $(INSTALL_DIR) $(1)/usr/sbin + $(INSTALL_BIN) $(PKG_BUILD_DIR)/softflowd $(1)/usr/sbin/ + $(INSTALL_BIN) $(PKG_BUILD_DIR)/softflowctl $(1)/usr/sbin/ + $(INSTALL_DIR) $(1)/etc/config + $(INSTALL_DATA) ./files/$(PKG_NAME).config $(1)/etc/config/$(PKG_NAME) + $(INSTALL_DIR) $(1)/etc/init.d + $(INSTALL_BIN) ./files/$(PKG_NAME).init $(1)/etc/init.d/$(PKG_NAME) +endef + +define Package/softflowd/conffiles +/etc/config/softflowd +endef + +$(eval $(call BuildPackage,softflowd)) diff --git a/net/softflowd/files/softflowd.config b/net/softflowd/files/softflowd.config new file mode 100644 index 0000000000..61a2ee4609 --- /dev/null +++ b/net/softflowd/files/softflowd.config @@ -0,0 +1,14 @@ +config softflowd + option enabled '0' + option interface 'br-lan' + option pcap_file '' + option timeout '' + option max_flows '8192' + option host_port '' + option pid_file '/var/run/softflowd.pid' + option control_socket '/var/run/softflowd.ctl' + option export_version '5' + option hoplimit '' + option tracking_level 'full' + option track_ipv6 '0' + option sampling_rate '100' diff --git a/net/softflowd/files/softflowd.init b/net/softflowd/files/softflowd.init new file mode 100755 index 0000000000..a4956c3508 --- /dev/null +++ b/net/softflowd/files/softflowd.init @@ -0,0 +1,74 @@ +#!/bin/sh /etc/rc.common +# Copyright (C) 2007-2011 OpenWrt.org + +START=50 + +append_bool() { + local section="$1" + local option="$2" + local value="$3" + local _val + config_get_bool _val "$section" "$option" '0' + [ "$_val" -gt 0 ] && append args "$3" +} + +append_string() { + local section="$1" + local option="$2" + local value="$3" + local _val + config_get _val "$section" "$option" + [ -n "$_val" ] && append args "$3 $_val" +} + +start_instance() { + local section="$1" + + config_get_bool enabled "$section" 'enabled' '0' + [ $enabled -gt 0 ] || return 1 + + config_get pid_file "$section" 'pid_file' + + args="" + append_string "$section" 'interface' '-i' + append_string "$section" 'pcap_file' '-r' + append_string "$section" 'timeout' '-t' + append_string "$section" 'max_flows' '-m' + append_string "$section" 'host_port' '-n' + append_string "$section" 'pid_file' '-p' + append_string "$section" 'control_socket' '-c' + append_string "$section" 'export_version' '-v' + append_string "$section" 'hoplimit' '-L' + append_string "$section" 'tracking_level' '-T' + append_string "$section" 'sampling_rate' '-s' + append_bool "$section" track_ipv6 '-6' + + SERVICE_PID_FILE="$pid_file" \ + service_start /usr/sbin/softflowd $args${pid_file:+ -p $pid_file} +} + +stop_instance() { + local section="$1" + + config_get_bool enabled "$section" 'enabled' '0' + [ $enabled -gt 0 ] || return 1 + + config_get control_socket "$section" 'control_socket' + + [ -n "control_socket" -a -S $control_socket ] && { + /usr/sbin/softflowctl -c $control_socket exit + } +} + +start() { + mkdir -m 0755 -p /var/empty + + config_load 'softflowd' + config_foreach start_instance 'softflowd' +} + +stop() { + config_load 'softflowd' + config_foreach stop_instance 'softflowd' + service_stop /usr/sbin/softflowd +}