nDPId/packages/openwrt/net/nDPId-testing/nDPId-testing.init
Toni Uhlig be3f466373
OpenWrt UCI/Initscript
Signed-off-by: Toni Uhlig <matzeton@googlemail.com>
2022-10-03 15:57:16 +02:00

85 lines
2.8 KiB
Bash

#!/bin/sh /etc/rc.common
START=99
STOP=80
USE_PROCD=1
NDPID_BIN="/usr/sbin/nDPId-testing"
print_arg_bool() {
local cfg="$1"
local var="$2"
local opt="$3"
local aux
config_get_bool aux "$cfg" "$var" '0'
if [ $aux -ne 0 ]; then
printf ' %s' "$opt"
fi
}
print_arg_str() {
local cfg="$1"
local var="$2"
local opt="$3"
local aux
config_get aux "$cfg" "$var"
if [ ! -z "$aux" ]; then
printf ' %s' "$opt$aux"
fi
}
start_instance() {
local cfg=$1
local aux
local args
config_get_bool aux "$cfg" 'enabled' '0'
#[ "$aux" = 0 ] && return 1
# General
args="$(print_arg_str "$cfg" 'interface' '-i')"
args="$args$(print_arg_bool "$cfg" 'internal_only' '-I')"
args="$args$(print_arg_bool "$cfg" 'external_only' '-E')"
args="$args$(print_arg_str "$cfg" 'bpf_filter' '-B')"
args="$args$(print_arg_str "$cfg" 'proto_file' '-P')"
args="$args$(print_arg_str "$cfg" 'cat_file' '-C')"
args="$args$(print_arg_str "$cfg" 'ja3_file' '-J')"
args="$args$(print_arg_str "$cfg" 'ssl_file' '-S')"
args="$args$(print_arg_str "$cfg" 'alias' '-a')"
args="$args$(print_arg_bool "$cfg" 'analysis' '-A')"
args="$args$(print_arg_bool "$cfg" 'compression' '-z')"
# Tuning
args="$args$(print_arg_str "$cfg" 'max_flows_per_thread' '-omax-flows-per-thread=')"
args="$args$(print_arg_str "$cfg" 'max_idle_flows_per_thread' '-omax-idle-flows-per-thread=')"
args="$args$(print_arg_str "$cfg" 'max_reader_threads' '-omax-reader-threads=')"
args="$args$(print_arg_str "$cfg" 'daemon_status_interval' '-odaemon-status-interval=')"
args="$args$(print_arg_str "$cfg" 'compression_scan_interval' '-ocompression-scan-interval=')"
args="$args$(print_arg_str "$cfg" 'compression_flow_inactivity' '-ocompression-flow-inactivity=')"
args="$args$(print_arg_str "$cfg" 'flow_scan_interval' '-oflow-scan-interval=')"
args="$args$(print_arg_str "$cfg" 'generic_max_idle_time' '-ogeneric-max-idle-time=')"
args="$args$(print_arg_str "$cfg" 'icmp_max_idle_time' '-oicmp-max-idle-time=')"
args="$args$(print_arg_str "$cfg" 'udp_max_idle_time' '-oudp-max-idle-time=')"
args="$args$(print_arg_str "$cfg" 'tcp_max_idle_time' '-otcp-max-idle-time=')"
args="$args$(print_arg_str "$cfg" 'tcp_max_post_end_flow_time' '-otcp-max-post-end-flow-time=')"
args="$args$(print_arg_str "$cfg" 'max_packets_per_flow_to_send' '-omax-packets-per-flow-to-send=')"
args="$args$(print_arg_str "$cfg" 'max_packets_per_flow_to_process' '-omax-packets-per-flow-to-process=')"
args="$args$(print_arg_str "$cfg" 'max_packets_per_flow_to_analyse' '-omax-packets-per-flow-to-analyse=')"
procd_open_instance
procd_set_param command $NDPID_BIN
procd_append_param command $args
config_get_bool aux "$cfg" 'respawn' '0'
[ "$aux" = 1 ] && procd_set_param respawn
procd_close_instance
}
start_service() {
config_load nDPId-testing
config_foreach start_instance nDPId-testing
}