Add softflowd package (#2748)
authorOliver Ertl <oliver@ertl-net.net>
Sat, 24 Nov 2007 21:10:15 +0000 (21:10 +0000)
committerOliver Ertl <oliver@ertl-net.net>
Sat, 24 Nov 2007 21:10:15 +0000 (21:10 +0000)
SVN-Revision: 9594

net/softflowd/Makefile [new file with mode: 0644]
net/softflowd/files/softflowd.config [new file with mode: 0644]
net/softflowd/files/softflowd.init [new file with mode: 0644]

diff --git a/net/softflowd/Makefile b/net/softflowd/Makefile
new file mode 100644 (file)
index 0000000..0070783
--- /dev/null
@@ -0,0 +1,53 @@
+#
+# Copyright (C) 2007 OpenWrt.org
+#
+# This is free software, licensed under the GNU General Public License v2.
+# See /LICENSE for more information.
+#
+# $Id$
+
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=softflowd
+PKG_VERSION:=0.9.8
+PKG_RELEASE:=1
+
+PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
+PKG_SOURCE_URL:=http://www.mindrot.org/files/softflowd/
+PKG_MD5SUM:=0054d1c80494396cc15edb0a1c7748b1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/softflowd
+  SECTION:=net
+  CATEGORY:=Network
+  DEPENDS:=+libpcap
+  TITLE:=softflowd
+  URL:=http://www.mindrot.org/projects/softflowd/
+endef
+
+define Package/softflowd/description
+       Software netflow exporter
+endef
+
+define Build/Configure
+       $(call Build/Configure/Default)
+       $(call libtool_disable_rpath)
+endef
+
+define Build/Compile
+       $(call libtool_fixup_libdir,$(PKG_INSTALL_DIR))
+       $(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
+
+$(eval $(call BuildPackage,softflowd))
diff --git a/net/softflowd/files/softflowd.config b/net/softflowd/files/softflowd.config
new file mode 100644 (file)
index 0000000..974d99e
--- /dev/null
@@ -0,0 +1,13 @@
+config softflowd
+       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 enabled        '0'
diff --git a/net/softflowd/files/softflowd.init b/net/softflowd/files/softflowd.init
new file mode 100644 (file)
index 0000000..e09493d
--- /dev/null
@@ -0,0 +1,66 @@
+#!/bin/sh /etc/rc.common
+# Copyright (C) 2007 OpenWrt.org
+START=50
+
+NAME=softflowd
+BIN_F=/usr/sbin/$NAME
+SSD=start-stop-daemon
+
+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_service() {
+       local section="$1"
+       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_bool "$section" track_ipv6 "-6"
+       config_get_bool "enabled" "$section" "enabled" '1'
+       [ "$enabled" -gt 0 ] && $BIN_F $args
+}
+
+stop_service() {
+       local section="$1"
+       config_get pidfile "$section" pid_file
+       config_get control_socket "$section" control_socket
+
+       [ -n "$pid_file" ] || pid_file="$pidfile"
+       # FIXME
+       $SSD -K -p $pid_file -q && rm -f /var/run/$control_socket
+}
+
+start() {
+       mkdir -p /var/empty
+
+       config_load $NAME
+       config_foreach start_service $NAME
+}
+
+stop() {
+       config_load $NAME
+       config_foreach stop_service $NAME
+}