samplicator: add samplicator
Samplicator receives UDP datagrams on a given port and resends those
datagrams to a specified set of receivers.
Use Cases:
- replicate Flow Samples to multiple receivers
- use with conntrackd to synchronize via unicast to multiple targets
Signed-off-by: Nick Hainke <vincent@systemli.org>
(cherry picked from commit 41534e5a19
)
This commit is contained in:
parent
74ee814b31
commit
5342be8198
3 changed files with 78 additions and 0 deletions
42
net/samplicator/Makefile
Normal file
42
net/samplicator/Makefile
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
|
PKG_NAME:=samplicator
|
||||||
|
PKG_VERSION:=1.3.6
|
||||||
|
PKG_RELEASE:=$(AUTORELEASE)
|
||||||
|
|
||||||
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
|
PKG_SOURCE_URL:=https://github.com/sleinen/samplicator/releases/download/v$(PKG_VERSION)
|
||||||
|
PKG_HASH:=3c4358b4b0992a77251f2b9e2221d4ae945781160732c73504eb126e69d72d40
|
||||||
|
|
||||||
|
PKG_MAINTAINER:=Nick Hainke <vincent@systemli.org>
|
||||||
|
PKG_LICENSE:=GPL-2.0-only
|
||||||
|
PKG_LICENSE_FILES:=COPYING
|
||||||
|
|
||||||
|
include $(INCLUDE_DIR)/package.mk
|
||||||
|
|
||||||
|
define Package/samplicator
|
||||||
|
SECTION:=net
|
||||||
|
CATEGORY:=Network
|
||||||
|
TITLE:=UDP Samplicator
|
||||||
|
URL:=https://github.com/sleinen/samplicator
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/samplicator/description
|
||||||
|
Send copies of (UDP) datagrams to multiple receivers,
|
||||||
|
with optional sampling and spoofing.
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/samplicator/conffiles
|
||||||
|
/etc/samplicator.conf
|
||||||
|
endef
|
||||||
|
|
||||||
|
define Package/samplicator/install
|
||||||
|
$(INSTALL_DIR) $(1)/usr/sbin
|
||||||
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/samplicate $(1)/usr/sbin/
|
||||||
|
$(INSTALL_DIR) $(1)/etc/init.d
|
||||||
|
$(INSTALL_BIN) ./files/samplicator.init $(1)/etc/init.d/samplicator
|
||||||
|
$(INSTALL_DIR) $(1)/etc
|
||||||
|
$(INSTALL_DATA) ./files/samplicator.conf $(1)/etc/
|
||||||
|
endef
|
||||||
|
|
||||||
|
$(eval $(call BuildPackage,samplicator))
|
18
net/samplicator/files/samplicator.conf
Normal file
18
net/samplicator/files/samplicator.conf
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
# Samplicator Config File
|
||||||
|
#
|
||||||
|
# Format:
|
||||||
|
# a.b.c.d[/e.f.g.h]: destination
|
||||||
|
# a.b.c.d is the sender's IP address
|
||||||
|
# e.f.g.h is a mask to apply to the sender (default 255.255.255.255)
|
||||||
|
#
|
||||||
|
# Destination Format:
|
||||||
|
# <addr>[/<port>[/<interval>[,ttl]]]
|
||||||
|
# <addr> IP address of the receiver
|
||||||
|
# <port> port UDP number of the receiver (default 2000)
|
||||||
|
# <freq> number of received datagrams between successive
|
||||||
|
# copied datagrams for this receiver.
|
||||||
|
# <ttl> The TTL (IPv4) or hop-limit (IPv6) for
|
||||||
|
# outgoing datagrams.
|
||||||
|
#
|
||||||
|
# Example:
|
||||||
|
# 10.0.0.1/255.255.255.0: 10.0.0.42/1025
|
18
net/samplicator/files/samplicator.init
Normal file
18
net/samplicator/files/samplicator.init
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
#!/bin/sh /etc/rc.common
|
||||||
|
|
||||||
|
USE_PROCD=1
|
||||||
|
START=70
|
||||||
|
|
||||||
|
SAMPLICATOR_BIN="/usr/sbin/samplicate"
|
||||||
|
SAMPLICATOR_CONF="/etc/samplicator.conf"
|
||||||
|
|
||||||
|
start_service() {
|
||||||
|
mkdir -p /var/run
|
||||||
|
procd_open_instance
|
||||||
|
procd_set_param command $SAMPLICATOR_BIN -c $SAMPLICATOR_CONF
|
||||||
|
procd_set_param file "$SAMPLICATOR_CONF"
|
||||||
|
procd_set_param stdout 1
|
||||||
|
procd_set_param stderr 1
|
||||||
|
procd_set_param respawn
|
||||||
|
procd_close_instance
|
||||||
|
}
|
Loading…
Reference in a new issue