l7-protocol classifies packets based on patterns in application layer data.lilik-openwrt-22.03
@ -0,0 +1,87 @@ | |||
# | |||
# Copyright (C) 2014 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:=l7-protocols | |||
PKG_VERSION:=2009-05-28 | |||
PKG_RELEASE:=2 | |||
PKG_LICENSE:=GPL-2.0 | |||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz | |||
PKG_SOURCE_URL:=@SF/l7-filter | |||
PKG_MD5SUM:=91be154d12134dcdbc560cc7aa7fe4ce | |||
include $(INCLUDE_DIR)/uclibc++.mk | |||
include $(INCLUDE_DIR)/package.mk | |||
define Package/l7-protocols | |||
SECTION:=net | |||
CATEGORY:=Network | |||
TITLE:=Protocols for layer7 filtering | |||
URL:=http://l7-filter.sourceforge.net/ | |||
SUBMENU:=Firewall | |||
MAINTAINER:=Lim Guo Wei <limguowei@gmail.com> | |||
DEPENDS:=iptables-mod-filter | |||
endef | |||
define Package/l7-protocols/description | |||
l7-filter classifies packets based on patterns in application | |||
layer data. This allows correct classification of P2P traffic that | |||
uses unpredictable ports as well as standard protocols running on | |||
non-standard ports. | |||
endef | |||
define Package/l7-protocols-testing | |||
$(call Package/l7-protocols) | |||
TITLE:=testing utilities for layer7 | |||
DEPENDS+=l7-protocols $(CXX_DEPENDS) | |||
endef | |||
define Package/l7-protocols-testing/description | |||
testing utilities for layer 7 patterns | |||
endef | |||
define Build/Configure | |||
endef | |||
ifneq ($(SDK)$(CONFIG_PACKAGE_l7-protocols-testing),) | |||
define Build/Compile | |||
cd $(PKG_BUILD_DIR)/testing && $(MAKE) $(CONFIGURE_VARS) | |||
endef | |||
else | |||
define Build/Compile | |||
endef | |||
endif | |||
define Package/l7-protocols/install | |||
find $(PKG_BUILD_DIR) -name "README" -delete | |||
$(INSTALL_DIR) $(1)/etc/l7-protocols | |||
$(CP) $(PKG_BUILD_DIR)/extra \ | |||
$(PKG_BUILD_DIR)/file_types \ | |||
$(PKG_BUILD_DIR)/groups.sh \ | |||
$(PKG_BUILD_DIR)/malware \ | |||
$(PKG_BUILD_DIR)/protocols \ | |||
$(1)/etc/l7-protocols | |||
endef | |||
define Package/l7-protocols-testing/install | |||
$(INSTALL_DIR) $(1)/etc/l7-protocols/testing | |||
$(CP) $(PKG_BUILD_DIR)/testing/data \ | |||
$(1)/etc/l7-protocols/testing | |||
$(INSTALL_BIN) \ | |||
$(PKG_BUILD_DIR)/testing/rand{chars,printable} \ | |||
$(PKG_BUILD_DIR)/testing/test_speed-{kernel,userspace} \ | |||
$(PKG_BUILD_DIR)/testing/match_kernel \ | |||
$(PKG_BUILD_DIR)/testing/doallspeeds.sh \ | |||
$(PKG_BUILD_DIR)/testing/test_match.sh \ | |||
$(PKG_BUILD_DIR)/testing/timeit.sh \ | |||
$(1)/etc/l7-protocols/testing | |||
endef | |||
$(eval $(call BuildPackage,l7-protocols)) | |||
$(eval $(call BuildPackage,l7-protocols-testing)) |
@ -0,0 +1,27 @@ | |||
--- a/testing/Makefile | |||
+++ b/testing/Makefile | |||
@@ -1,19 +1,19 @@ | |||
all: randchars randprintable test_speed-kernel test_speed-userspace match_kernel | |||
randchars: randchars.c | |||
- gcc -O2 -o randchars randchars.c | |||
+ $(CC) $(CFLAGS) -o randchars randchars.c | |||
randprintable: randprintable.c | |||
- gcc -O2 -o randprintable randprintable.c | |||
+ $(CC) $(CFLAGS) -o randprintable randprintable.c | |||
test_speed-kernel: test_speed-kernel.c | |||
- gcc -o test_speed-kernel test_speed-kernel.c | |||
+ $(CC) $(CFLAGS) -o test_speed-kernel test_speed-kernel.c | |||
test_speed-userspace: test_speed-userspace.cpp l7-parse-patterns.cpp l7-parse-patterns.h | |||
- g++ -Wall -o test_speed-userspace test_speed-userspace.cpp l7-parse-patterns.cpp | |||
+ $(CXX) $(CXXFLAGS) -Wall -o test_speed-userspace test_speed-userspace.cpp l7-parse-patterns.cpp | |||
match_kernel: match-kernel.c | |||
- gcc -O2 -o match_kernel match-kernel.c | |||
+ $(CC) $(CFLAGS) -o match_kernel match-kernel.c | |||
clean: | |||
rm -f randprintable randchars test_speed-kernel test_speed-userspace match_kernel |
@ -0,0 +1,102 @@ | |||
--- a/testing/timeit.sh | |||
+++ b/testing/timeit.sh | |||
@@ -1,11 +1,8 @@ | |||
#!/bin/bash | |||
-# "man 1 time" for details | |||
-export TIME="%U seconds" | |||
- | |||
add() | |||
{ | |||
- if ! dc -e ""; then | |||
+ if ! dc p >/dev/null 2>&1; then | |||
echo you do not have dc, so I cannot add these numbers... | |||
exit 1 | |||
fi | |||
@@ -14,7 +11,7 @@ add() | |||
tot=0 | |||
while read n; do | |||
- tot=`dc -e "$n $tot + pop" 2> /dev/null` | |||
+ tot=`dc $n $tot + p 2> /dev/null` | |||
done | |||
echo $tot seconds | |||
@@ -34,7 +31,7 @@ extract() | |||
if [ ! $3 ] || [ $2 == "-h" ] || [ $2 == "--help" ]; then | |||
echo | |||
- echo Syntax: ./timeit.sh patternfile kernel\|userspace all\|print\|real [data_files] | |||
+ echo Syntax: .//usr/bin/timeit.sh patternfile kernel\|userspace all\|print\|real [data_files] | |||
echo | |||
echo \"kernel\" uses the kernel pattern and library | |||
echo \"userspace\" uses userspace pattern and library | |||
@@ -72,12 +69,12 @@ echo Timing $1 | |||
if [ $3 == "all" ]; then | |||
echo Using all characters | |||
if [ $2 == "kernel" ]; then | |||
- if ! ./randchars | time $speedprog "`extract $1`" verbose; then | |||
+ if ! ./randchars | /usr/bin/time $speedprog "`extract $1`" verbose 2>&1 >/dev/null | grep user | cut -d\ -f2; then | |||
echo $speedprog failed. > /dev/stderr | |||
exit 1 | |||
fi | |||
else | |||
- if ! ./randchars | time $speedprog -f "$1" -v; then | |||
+ if ! ./randchars | /usr/bin/time $speedprog -f "$1" -v 2>&1 >/dev/null | grep user | cut -d\ -f2; then | |||
echo $speedprog failed. > /dev/stderr | |||
exit 1 | |||
fi | |||
@@ -85,12 +82,12 @@ if [ $3 == "all" ]; then | |||
elif [ $3 == "print" ]; then | |||
echo Using only printable characters | |||
if [ $2 == "kernel" ]; then | |||
- if ! ./randprintable | time $speedprog "`extract $1`" verbose; then | |||
+ if ! ./randprintable | /usr/bin/time $speedprog "`extract $1`" verbose 2>&1 >/dev/null | grep user | cut -d\ -f2; then | |||
echo $speedprog failed. > /dev/stderr | |||
exit 1 | |||
fi | |||
else | |||
- if ! ./randprintable | time $speedprog -f "$1" -v; then | |||
+ if ! ./randprintable | /usr/bin/time $speedprog -f "$1" -v 2>&1 >/dev/null | grep user | cut -d\ -f2; then | |||
echo $speedprog failed. > /dev/stderr | |||
exit 1 | |||
fi | |||
@@ -107,12 +104,12 @@ elif [ $3 == "real" ]; then | |||
printf $f\\t | |||
#echo `extract $1` | |||
if [ $2 == "kernel" ]; then | |||
- if ! cat $f | time $speedprog "`extract $1`" 2> /dev/stdout | tee -a tmp.$$; then | |||
+ if ! cat $f | /usr/bin/time $speedprog "`extract $1`" 2>&1 >/dev/null | grep user | cut -d\ -f2 | tee -a tmp.$$; then | |||
echo $speedprog failed. > /dev/stderr | |||
exit 1 | |||
fi | |||
else | |||
- if ! cat $f | time $speedprog -f "$1" 2> /dev/stdout | tee -a tmp.$$; then | |||
+ if ! cat $f | /usr/bin/time $speedprog -f "$1" 2>&1 >/dev/null | grep user | cut -d\ -f2 | tee -a tmp.$$; then | |||
echo $speedprog failed. > /dev/stderr | |||
exit 1 | |||
fi | |||
@@ -123,12 +120,12 @@ elif [ $3 == "real" ]; then | |||
for f in data/*; do | |||
printf $f\\t | |||
if [ $2 == "kernel" ]; then | |||
- if ! cat $f | time $speedprog "`extract $1`" 2> /dev/stdout | tee -a tmp.$$; then | |||
+ if ! cat $f | /usr/bin/time $speedprog "`extract $1`" 2>&1 >/dev/null | grep user | cut -d\ -f2 | tee -a tmp.$$; then | |||
echo $speedprog failed. > /dev/stderr | |||
exit 1 | |||
fi | |||
else | |||
- if ! cat $f | time $speedprog -f "$1" 2> /dev/stdout | tee -a tmp.$$; then | |||
+ if ! cat $f | /usr/bin/time $speedprog -f "$1" 2>&1 >/dev/null | grep user | cut -d\ -f2 | tee -a tmp.$$; then | |||
echo $speedprog failed. > /dev/stderr | |||
exit 1 | |||
fi | |||
@@ -137,7 +134,7 @@ elif [ $3 == "real" ]; then | |||
fi | |||
printf Total:\ | |||
- cat tmp.$$ | cut -d\ -f 2 | add | |||
+ cat tmp.$$ | cut -ds -f 1| add | |||
rm tmp.$$ | |||
else |
@ -0,0 +1,16 @@ | |||
--- a/testing/doallspeeds.sh | |||
+++ b/testing/doallspeeds.sh | |||
@@ -25,11 +25,11 @@ for f in ../*/*.pat; do | |||
printf `basename $f .pat` | |||
if [ $userspace ]; then | |||
- gtime=`./timeit.sh $f userspace real | grep Total | cut -d\ -f 2` | |||
+ gtime=`./timeit.sh $f userspace real | grep Total | cut -d\ -f 2 | awk '{print $1}'` | |||
printf \\t$gtime | |||
fi | |||
if [ $kernel ]; then | |||
- htime=`./timeit.sh $f kernel real | grep Total | cut -d\ -f 2` | |||
+ htime=`./timeit.sh $f kernel real | grep Total | cut -d\ -f 2 | awk '{print $1}'` | |||
printf \\t$htime | |||
fi | |||
printf \\n |