summaryrefslogtreecommitdiff
path: root/test/lpi_plus
diff options
context:
space:
mode:
author杨威 <[email protected]>2024-10-11 06:08:50 +0000
committer杨威 <[email protected]>2024-10-11 06:08:50 +0000
commit70d21f28c36fc93280352c9284de6529afcbe5be (patch)
tree4bfc3669ca0da512ceb897167feda65dcaefa1af /test/lpi_plus
parent2e35a795285499e064b91435ad90777f90419f68 (diff)
Rebase dev 2.0
Diffstat (limited to 'test/lpi_plus')
-rw-r--r--test/lpi_plus/CMakeLists.txt58
-rw-r--r--test/lpi_plus/gtest_lpip.h16
-rw-r--r--test/lpi_plus/gtest_lpip_main.cpp149
-rw-r--r--test/lpi_plus/gtest_lpip_module.c182
-rw-r--r--test/lpi_plus/test_config/spec.toml11
-rw-r--r--test/lpi_plus/test_config/tsg_l7_protocol.conf80
-rw-r--r--test/lpi_plus/test_expect/app_pcap.json50
-rw-r--r--test/lpi_plus/test_expect/dns_pcap.json402
-rw-r--r--test/lpi_plus/test_expect/empty_array.json1
-rw-r--r--test/lpi_plus/test_expect/mixed_pcap.json291
-rw-r--r--test/lpi_plus/test_expect/openvpn_pcap.json92
-rw-r--r--test/lpi_plus/test_expect/ppp_pcap.json826
-rw-r--r--test/lpi_plus/test_expect/socks_pcap.json266
-rw-r--r--test/lpi_plus/test_pcap/app_pcap/1-qq_59361.pcapbin0 -> 789454 bytes
-rw-r--r--test/lpi_plus/test_pcap/app_pcap/2-qq_8758.pcapbin0 -> 1042 bytes
-rw-r--r--test/lpi_plus/test_pcap/app_pcap/3-wechat_51876.pcapbin0 -> 1213414 bytes
-rw-r--r--test/lpi_plus/test_pcap/app_pcap/4-wechat_8080.pcapbin0 -> 25566 bytes
-rw-r--r--test/lpi_plus/test_pcap/app_pcap/5-wireguard.pcapbin0 -> 38948 bytes
-rw-r--r--test/lpi_plus/test_pcap/app_pcap/6-wireguard1.pcapbin0 -> 41484 bytes
-rw-r--r--test/lpi_plus/test_pcap/app_pcap/7-wireguard2.pcapbin0 -> 1740 bytes
-rw-r--r--test/lpi_plus/test_pcap/dns_pcap/1-dns-tcp-single-53-124.88.175.201-8.8.8.8.pcapbin0 -> 22503 bytes
-rw-r--r--test/lpi_plus/test_pcap/dns_pcap/2-dns-tcp-single-53-60.13.179.249-8.8.8.8.pcapbin0 -> 17860 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/01-http-not-ftp.pcapbin0 -> 14400 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/02-stun-rtcp-rtp-22005-8000-39.144.206.199-117.156.19.31.pcapbin0 -> 19726479 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/03-ftp-37923-21121-117.145.115.74-218.31.124.234.pcapbin0 -> 592 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/04-mail_smtp_port_18867_25.pcapbin0 -> 1618 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/05-ftp_port_21121-double.pcapbin0 -> 1142 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/06-ftp_port_21121-s2c.pcapbin0 -> 574 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/07-ftp_port_21121-c2s.pcapbin0 -> 592 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/08-gquic-023-85.117.117.169.47762-173.194.73.95.443.pcapbin0 -> 1647 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/09-gquic-025-85.117.113.98.4340-74.125.131.95.443.pcapbin0 -> 3142 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/10-gquic-033-90.143.189.5.8026-173.194.188.40.443.pcapbin0 -> 3143 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/11-gquic-034-85.117.125.8.21243-173.194.73.102.443.pcapbin0 -> 3141 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/12-gquic-035-redirector.googlevideo.com-85.117.122.194.32370-173.194.220.138.443.pcapbin0 -> 7537 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/13-gquic-037-10.32.121.249.33765-64.233.161.95.443.pcapbin0 -> 1996 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/14-gquic-039-redirector.googlevideo.com-85.117.119.45.22495-173.194.73.101.443.pcapbin0 -> 10833 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/15-gquic-041-90.143.180.56.28496-64.233.165.113.443.pcapbin0 -> 3205 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/16-gquic-041-90.143.180.56.28496-64.233.165.113.443.pcapbin0 -> 4256 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/17-gquic-044-146.158.67.194.1044-108.177.14.138.443.pcapbin0 -> 6804 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/18-gquic-046-36.142.158.169.16385-36.189.11.71.443.pcapbin0 -> 704270 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/19-gquic-048-103.3.138.59.12521-123.125.116.52.443.pcapbin0 -> 14097 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/20-gquic-050-i.ytimg.com-172.20.9.135.65045-64.233.162.119.443.pcapbin0 -> 2050587 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/21-iquic-29-192.168.50.29.61891-31.13.77.35.443.pcapbin0 -> 73949 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/22-mvfst-01-i.instagram.com-192.168.60.9.55659-69.171.250.63.443.pcapbin0 -> 49232 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/23-mvfst-02-192.168.137.141.50006-31.13.77.17.443.pcapbin0 -> 777583 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/23-prox-quic-217.76.77.70.33232-173.194.220.105.443.pcapbin0 -> 7783 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/24-ietf-rfc9000-192.168.60.32.59699-64.233.164.84.443.pcapbin0 -> 18421 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/25-tquic-51-195.12.120.14.41803-173.194.222.101.443.pcapbin0 -> 38915 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/26-smtp-55426-587-10.130.2.104-67.225.241.247.pcapbin0 -> 15075 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/27-pop-54776-110-196.188.12.179-192.185.31.244.pcapbin0 -> 2866 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/28-Bole-IGW-SMTP-57719-26-10.130.13.155-50.87.145.154-2.pcapbin0 -> 892 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/29-Bole-IGW-SMTP-14636-25-196.189.57.105-68.232.159.216-2.pcapbin0 -> 791 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/30-Bole-IGW-SMTP-20997-25-196.190.160.6-64.225.54.152.pcapbin0 -> 910 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/31-Bole-IGW-POP3-50020-110-196.188.3.8-82.98.178.159.pcapbin0 -> 1435 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/32-Bole-IGW-POP3-53357-110-196.189.0.15-39.156.6.106.pcapbin0 -> 1094 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/33-Bole-IGW-IMAP-36734-143-196.189.5.89-101.32.113.90.pcapbin0 -> 713 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/34-Bole-IGW-IMAP-50415-143-196.188.28.149-69.195.110.51.pcapbin0 -> 5029 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/35-Bole-IGW-SMTP-587-1440-587-196.189.45.189-40.101.92.178.pcapbin0 -> 1034 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/36-Bole-IGW-SMTP-587-37943-587-196.191.120.240-81.19.77.166.pcapbin0 -> 796 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/37-dns-response-4029-53-115.24.235.11-8.210.152.150.pcapbin0 -> 1472 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/38-stun-dtls.pcapbin0 -> 461565 bytes
-rw-r--r--test/lpi_plus/test_pcap/mixed_pcap/39-pop3-mistake-redis.pcapbin0 -> 921 bytes
-rw-r--r--test/lpi_plus/test_pcap/openvpn_pcap/01-openvpn-udp-port-1198-first.pcapbin0 -> 264 bytes
-rw-r--r--test/lpi_plus/test_pcap/openvpn_pcap/02-openvpn-nDPI.pcapbin0 -> 61903 bytes
-rw-r--r--test/lpi_plus/test_pcap/openvpn_pcap/03-openvpn_onestream.pcapbin0 -> 18456 bytes
-rw-r--r--test/lpi_plus/test_pcap/openvpn_pcap/04-openvpn-udp-63111.pcapbin0 -> 30590 bytes
-rw-r--r--test/lpi_plus/test_pcap/openvpn_pcap/05-openvpn-udp-34400.pcapbin0 -> 18456 bytes
-rw-r--r--test/lpi_plus/test_pcap/openvpn_pcap/06-openvpn-udp-40914.pcapbin0 -> 3284 bytes
-rw-r--r--test/lpi_plus/test_pcap/openvpn_pcap/07-openvpn.tcp.pcapbin0 -> 22820 bytes
-rw-r--r--test/lpi_plus/test_pcap/openvpn_pcap/08-ovpntcp_hmac.pcapbin0 -> 18708 bytes
-rw-r--r--test/lpi_plus/test_pcap/openvpn_pcap/09-ovpntcp_nohmac.pcapbin0 -> 17556 bytes
-rw-r--r--test/lpi_plus/test_pcap/openvpn_pcap/10-openvpn-udp-49941.pcapbin0 -> 81387 bytes
-rw-r--r--test/lpi_plus/test_pcap/openvpn_pcap/11-ipv6_openvpn.pcapbin0 -> 2196924 bytes
-rw-r--r--test/lpi_plus/test_pcap/openvpn_pcap/12-quic-openvpn.pcapbin0 -> 1066308 bytes
-rw-r--r--test/lpi_plus/test_pcap/ppp_pcap/01-l2tp_netbios.pcapbin0 -> 23328 bytes
-rwxr-xr-xtest/lpi_plus/test_pcap/ppp_pcap/02-l2tp-without-l7_protocol-62176-33445-192.168.10.91-220.43.148.189.pcapbin0 -> 1759 bytes
-rwxr-xr-xtest/lpi_plus/test_pcap/ppp_pcap/03-l2tp_http.pcapbin0 -> 26747 bytes
-rwxr-xr-xtest/lpi_plus/test_pcap/ppp_pcap/04-l2tp_ctrl_data_full.pcapbin0 -> 570920 bytes
-rwxr-xr-xtest/lpi_plus/test_pcap/ppp_pcap/05-pptp_encrypt.pcapbin0 -> 110342 bytes
-rwxr-xr-xtest/lpi_plus/test_pcap/ppp_pcap/06-pptp_http.pcapbin0 -> 7890 bytes
-rw-r--r--test/lpi_plus/test_pcap/socks_pcap/1-socks45-http-example.pcapbin0 -> 9143 bytes
-rw-r--r--test/lpi_plus/test_pcap/socks_pcap/10-socks5-http-302-frag.pcapbin0 -> 5281 bytes
-rw-r--r--test/lpi_plus/test_pcap/socks_pcap/11-socks5-http-302.pcapbin0 -> 2424 bytes
-rw-r--r--test/lpi_plus/test_pcap/socks_pcap/12-socks5-rdp.pcapbin0 -> 852 bytes
-rw-r--r--test/lpi_plus/test_pcap/socks_pcap/13-socks5-reverse.pcapbin0 -> 28167 bytes
-rw-r--r--test/lpi_plus/test_pcap/socks_pcap/14-socks5-smtp-503.pcapbin0 -> 1836 bytes
-rw-r--r--test/lpi_plus/test_pcap/socks_pcap/15-socks-http-pass.pcapbin0 -> 5593 bytes
-rw-r--r--test/lpi_plus/test_pcap/socks_pcap/16-socks-https-example.pcapbin0 -> 34470 bytes
-rw-r--r--test/lpi_plus/test_pcap/socks_pcap/2-socks5_ftp.pcapbin0 -> 5500 bytes
-rw-r--r--test/lpi_plus/test_pcap/socks_pcap/3-POP3_Sock5_subject.pcapbin0 -> 22195 bytes
-rw-r--r--test/lpi_plus/test_pcap/socks_pcap/4-SMTP_Sock5_subject.pcapbin0 -> 20443 bytes
-rw-r--r--test/lpi_plus/test_pcap/socks_pcap/5-T3-HTTP-URL-SOCKS5.pcapbin0 -> 10011 bytes
-rw-r--r--test/lpi_plus/test_pcap/socks_pcap/6-T7-HTTP-CONT-SOCKS5.pcapbin0 -> 7054 bytes
-rw-r--r--test/lpi_plus/test_pcap/socks_pcap/7-T86-FTP-URL-PORT-BIN-SOCKS5.pcapbin0 -> 10383 bytes
-rw-r--r--test/lpi_plus/test_pcap/socks_pcap/8-socks4_http.pcapbin0 -> 2452 bytes
-rw-r--r--test/lpi_plus/test_pcap/socks_pcap/9-socks4-https.pcapbin0 -> 8032 bytes
96 files changed, 2424 insertions, 0 deletions
diff --git a/test/lpi_plus/CMakeLists.txt b/test/lpi_plus/CMakeLists.txt
new file mode 100644
index 0000000..9f63273
--- /dev/null
+++ b/test/lpi_plus/CMakeLists.txt
@@ -0,0 +1,58 @@
+add_executable(gtest_lpip gtest_lpip_main.cpp gtest_lpip_module.c)
+
+target_include_directories(gtest_lpip PRIVATE ${CMAKE_SOURCE_DIR}/deps/)
+target_include_directories(gtest_lpip PRIVATE ${CMAKE_SOURCE_DIR}/decoders/)
+
+target_link_libraries(
+ gtest_lpip PRIVATE stellar_lib cjson-static lpi_plus
+ dl "-rdynamic"
+ gtest gmock
+)
+
+#target_link_libraries(gtest_lpi PRIVATE -Wl,--whole-archive lpi -Wl,--no-whole-archive)
+
+set(TEST_NAME "LPI_TEST")
+set(TEST_MAIN ${CMAKE_CURRENT_BINARY_DIR}/gtest_lpip)
+
+add_test(NAME ${TEST_NAME}.SETUP COMMAND sh -c "
+ mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/conf &&
+ mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/plugin &&
+ mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/log &&
+ mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/tsgconf &&
+ cp ${CMAKE_SOURCE_DIR}/conf/stellar.toml ${CMAKE_CURRENT_BINARY_DIR}/conf/ &&
+ cat ${CMAKE_CURRENT_SOURCE_DIR}/test_config/spec.toml >> ${CMAKE_CURRENT_BINARY_DIR}/conf/stellar.toml &&
+ cp ${CMAKE_CURRENT_SOURCE_DIR}/test_config/tsg_l7_protocol.conf ${CMAKE_CURRENT_BINARY_DIR}/tsgconf/ &&
+ tomlq -t -i '.packet_io.pcap_path=\"-\"' ${CMAKE_CURRENT_BINARY_DIR}/conf/stellar.toml &&
+ tomlq -t -i '.packet_io.mode=\"pcaplist\"' ${CMAKE_CURRENT_BINARY_DIR}/conf/stellar.toml
+ ")
+
+
+set_tests_properties(${TEST_NAME}.SETUP
+ PROPERTIES FIXTURES_SETUP ${TEST_NAME}.SETUP)
+
+add_test(NAME ${TEST_NAME}.APP
+ COMMAND sh -c "find ${CMAKE_CURRENT_SOURCE_DIR}/test_pcap/app_pcap -type f | sort -V | ${TEST_MAIN} ${CMAKE_CURRENT_SOURCE_DIR}/test_expect/app_pcap.json")
+
+add_test(NAME ${TEST_NAME}.DNS
+ COMMAND sh -c "find ${CMAKE_CURRENT_SOURCE_DIR}/test_pcap/dns_pcap -type f | sort -V | ${TEST_MAIN} ${CMAKE_CURRENT_SOURCE_DIR}/test_expect/dns_pcap.json")
+
+add_test(NAME ${TEST_NAME}.MIXED
+ COMMAND sh -c "find ${CMAKE_CURRENT_SOURCE_DIR}/test_pcap/mixed_pcap -type f | sort -V |${TEST_MAIN} ${CMAKE_CURRENT_SOURCE_DIR}/test_expect/mixed_pcap.json")
+
+add_test(NAME ${TEST_NAME}.OPENVPN
+ COMMAND sh -c "find ${CMAKE_CURRENT_SOURCE_DIR}/test_pcap/openvpn_pcap -type f | sort -V |${TEST_MAIN} ${CMAKE_CURRENT_SOURCE_DIR}/test_expect/openvpn_pcap.json")
+
+add_test(NAME ${TEST_NAME}.PPP
+ COMMAND sh -c "find ${CMAKE_CURRENT_SOURCE_DIR}/test_pcap/ppp_pcap -type f | sort -V | ${TEST_MAIN} ${CMAKE_CURRENT_SOURCE_DIR}/test_expect/ppp_pcap.json")
+
+add_test(NAME ${TEST_NAME}.SOCKS
+ COMMAND sh -c "find ${CMAKE_CURRENT_SOURCE_DIR}/test_pcap/socks_pcap -type f | sort -V | ${TEST_MAIN} ${CMAKE_CURRENT_SOURCE_DIR}/test_expect/socks_pcap.json")
+
+set_tests_properties(${TEST_NAME}.APP
+ ${TEST_NAME}.DNS
+ ${TEST_NAME}.MIXED
+ ${TEST_NAME}.OPENVPN
+ ${TEST_NAME}.PPP
+ ${TEST_NAME}.SOCKS
+ PROPERTIES FIXTURES_REQUIRED ${TEST_NAME}.SETUP
+ )
diff --git a/test/lpi_plus/gtest_lpip.h b/test/lpi_plus/gtest_lpip.h
new file mode 100644
index 0000000..9b13571
--- /dev/null
+++ b/test/lpi_plus/gtest_lpip.h
@@ -0,0 +1,16 @@
+#pragma once
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+int stellar_test_result_setup();
+
+char *stellar_test_result_json_export();
+
+void stellar_test_result_cleanup();
+
+#ifdef __cplusplus
+}
+#endif \ No newline at end of file
diff --git a/test/lpi_plus/gtest_lpip_main.cpp b/test/lpi_plus/gtest_lpip_main.cpp
new file mode 100644
index 0000000..6745832
--- /dev/null
+++ b/test/lpi_plus/gtest_lpip_main.cpp
@@ -0,0 +1,149 @@
+/*
+ * author:yangwei
+ * create time:2021-8-21
+ *
+ */
+
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+
+#include <stdio.h>
+#include <time.h>
+#include <unistd.h>
+#include <assert.h>
+
+#include <gtest/gtest.h>
+
+#include "stellar/stellar.h"
+
+#include "cJSON.h"
+#include "gtest_lpip.h"
+
+
+struct gtest_json_result
+{
+ cJSON *test_json_root;
+ cJSON *expect_json_root;
+ int result_count;
+};
+
+static struct gtest_json_result *gtest_result_new(const char *expect_json_path)
+{
+ struct gtest_json_result *para = (struct gtest_json_result *)calloc(1, sizeof(struct gtest_json_result));
+ if(expect_json_path==NULL)
+ {
+ para->expect_json_root=cJSON_CreateArray();
+ return para;
+ }
+
+ FILE *file = fopen(expect_json_path, "rb");
+ if(file)
+ {
+ fseek(file, 0, SEEK_END);
+ long filesize = ftell(file);
+ rewind(file);
+ char *buffer = (char *)calloc(filesize + 1, 1);
+ fread(buffer, 1, filesize, file);
+
+ para->expect_json_root=cJSON_Parse(buffer);
+
+ free(buffer);
+ fclose(file);
+ }
+ para->result_count=1;//count start from 1
+ return para;
+}
+
+static int gtest_result_compare(struct gtest_json_result *para)
+{
+ if(cJSON_GetArraySize(para->test_json_root)!=cJSON_GetArraySize(para->expect_json_root))
+ {
+ char *load_json_str = cJSON_Print(para->expect_json_root);
+ printf("LOAD Raw:\n%s\n", load_json_str);
+ free(load_json_str);
+ char *result_json_str = cJSON_Print(para->test_json_root);
+ printf("TEST Raw:\n%s\n", result_json_str);
+ free(result_json_str);
+ return -1;
+ }
+ int compare_ret = cJSON_Compare(para->expect_json_root, para->test_json_root, 0);
+ if (compare_ret != 1)
+ {
+ char *load_json_str = cJSON_Print(para->expect_json_root);
+ printf("LOAD Raw:\n%s\n", load_json_str);
+ free(load_json_str);
+ char *result_json_str = cJSON_Print(para->test_json_root);
+ printf("TEST Raw:\n%s\n", result_json_str);
+ free(result_json_str);
+
+ cJSON *t_load = para->expect_json_root->child, *t_test = para->test_json_root->child;
+ while (t_load != NULL)
+ {
+ // print first diff item, then return;
+ if(1 != cJSON_Compare(t_load, t_test, 0))
+ {
+ load_json_str = cJSON_Print(t_load);
+ printf("LOAD Diff:\n%s\n", load_json_str);
+ free(load_json_str);
+ result_json_str = cJSON_Print(t_test);
+ printf("TEST Diff:\n%s\n", result_json_str);
+ free(result_json_str);
+ return -1;
+ }
+ t_load = t_load->next;
+ t_test = t_test->next;
+
+ }
+ }
+ return compare_ret;
+}
+
+static void gtest_result_free(struct gtest_json_result *para)
+{
+ if(para)
+ {
+ if(para->test_json_root)cJSON_Delete(para->test_json_root);
+ if(para->expect_json_root)cJSON_Delete(para->expect_json_root);
+ free(para);
+ }
+ return;
+}
+
+
+/**********************************************
+ * GTEST MAIN *
+ **********************************************/
+
+int main(int argc, char ** argv)
+{
+ ::testing::InitGoogleTest(&argc, argv);
+
+ //EXPECT_EQ(argc, 2);
+
+ printf("Usage: ./[gtest_main] [/path/to/expect_json]\n");
+
+ char *expect_json_path=argv[1];
+ struct gtest_json_result *g_test_para = gtest_result_new(expect_json_path);
+
+ struct stellar *st=stellar_new("./conf/stellar.toml");
+
+ stellar_test_result_setup();
+
+ EXPECT_TRUE(st!=NULL);
+ stellar_run(st);
+
+ stellar_free(st);
+
+ char *test_result_json=stellar_test_result_json_export();
+ g_test_para->test_json_root=cJSON_Parse(test_result_json);
+ free(test_result_json);
+
+
+ EXPECT_TRUE(g_test_para->expect_json_root != NULL && g_test_para->test_json_root != NULL);
+ EXPECT_EQ(gtest_result_compare(g_test_para), 1);
+
+ gtest_result_free(g_test_para);
+
+ stellar_test_result_cleanup();
+
+ return ::testing::Test::HasFailure() ? 1 : 0;
+} \ No newline at end of file
diff --git a/test/lpi_plus/gtest_lpip_module.c b/test/lpi_plus/gtest_lpip_module.c
new file mode 100644
index 0000000..31aabe3
--- /dev/null
+++ b/test/lpi_plus/gtest_lpip_module.c
@@ -0,0 +1,182 @@
+#include <stdlib.h>
+#pragma GCC diagnostic ignored "-Wunused-parameter"
+
+#include <stdio.h>
+#include <time.h>
+#include <unistd.h>
+#include <assert.h>
+
+#include "stellar/appid.h"
+#include "stellar/module_manager.h"
+#include "stellar/session_manager.h"
+#include "stellar/session.h"
+#include "stellar/utils.h"
+
+#include "cjson/cJSON.h"
+
+#include "lpi_plus/lpi_plus.h"
+#include "appid/appid_internal.h"
+
+struct test_lpip_env
+{
+ struct stellar_module_manager *mod_mgr;
+ struct lpi_plus_mapper *lpi_mapper;
+ int l7_exdata_idx;
+ int session_num;
+};
+
+struct test_lpip_exdata
+{
+ int appid[MAX_APPID_NUM];
+ size_t appid_num;
+ struct session *sess;
+};
+
+cJSON *g_result_json=NULL;
+
+void stellar_test_result_setup()
+{
+ if(g_result_json!=NULL)return;
+ g_result_json=cJSON_CreateArray();
+}
+
+char *stellar_test_result_json_export()
+{
+ if(g_result_json==NULL)return NULL;
+ return cJSON_Print(g_result_json);
+}
+
+void stellar_test_result_cleanup()
+{
+ if(g_result_json)cJSON_Delete(g_result_json);
+}
+
+static void gtest_lpip_exdata_free(int idx __attribute__((unused)), void *ex_ptr, void *arg)
+{
+ struct test_lpip_env *env = (struct test_lpip_env *)arg;
+ struct test_lpip_exdata *test_appid_exdata=(struct test_lpip_exdata *)ex_ptr;
+
+ if(env==NULL || test_appid_exdata ==NULL)return;
+
+ cJSON *ctx = cJSON_CreateObject();
+ cJSON_AddStringToObject(ctx, "Tuple4", session_get0_readable_addr(test_appid_exdata->sess));
+ enum session_type type = session_get_type(test_appid_exdata->sess);
+ if (type == SESSION_TYPE_TCP)
+ {
+ cJSON_AddStringToObject(ctx, "STREAM_TYPE", "TCP");
+ }
+ if (type == SESSION_TYPE_UDP)
+ {
+ cJSON_AddStringToObject(ctx, "STREAM_TYPE", "UDP");
+ }
+ if (test_appid_exdata->appid_num > 0)
+ {
+ const char *proto_names[MAX_APPID_NUM] = {};
+ for (unsigned int i = 0; i < test_appid_exdata->appid_num; i++)
+ {
+ proto_names[i] = lpi_plus_appid2name(env->lpi_mapper ,test_appid_exdata->appid[i]);
+ }
+ cJSON *label_ids = cJSON_CreateIntArray(test_appid_exdata->appid, test_appid_exdata->appid_num);
+ cJSON_AddItemToObject(ctx, "l7_label_id", label_ids);
+ cJSON *label_names = cJSON_CreateStringArray(proto_names, test_appid_exdata->appid_num);
+ cJSON_AddItemToObject(ctx, "l7_label_name", label_names);
+ }
+ else
+ {
+ cJSON_AddStringToObject(ctx, "l7_label_id", "UNKNOWN");
+ }
+ unsigned char dir_flag;
+ int is_symmetric = session_is_symmetric(test_appid_exdata->sess, &dir_flag);
+ if (is_symmetric)
+ {
+ cJSON_AddStringToObject(ctx, "STREAM_DIR", "DOUBLE");
+ }
+ else if (dir_flag == SESSION_SEEN_C2S_FLOW)
+ {
+ cJSON_AddStringToObject(ctx, "STREAM_DIR", "C2S");
+ }
+ else if (dir_flag == SESSION_SEEN_S2C_FLOW)
+ {
+ cJSON_AddStringToObject(ctx, "STREAM_DIR", "S2C");
+ }
+ else
+ {
+ assert(0);
+ }
+ char result_name[128] = "";
+ env->session_num++;
+ sprintf(result_name, "APP_PROTO_IDENTIFY_RESULT_%d", env->session_num);
+ cJSON_AddStringToObject(ctx, "name", result_name);
+
+ if(g_result_json)cJSON_AddItemToArray(g_result_json, ctx);
+ free(test_appid_exdata);
+ return;
+}
+
+
+static void gtest_lpip_on_appid_msg(struct session *sess, enum APPID_ORIGIN origin, int appid[], size_t appid_num, void *args)
+{
+ if(sess==NULL || appid==NULL || args==NULL)return;
+ struct test_lpip_env *env = (struct test_lpip_env *)args;
+ struct test_lpip_exdata *test_appid_exdata=session_get_exdata(sess, env->l7_exdata_idx);
+ if(test_appid_exdata==NULL)
+ {
+ test_appid_exdata = CALLOC(struct test_lpip_exdata, 1);
+ test_appid_exdata->sess=sess;
+
+ }
+ memcpy(test_appid_exdata->appid, appid, appid_num*sizeof(appid[0]));
+ test_appid_exdata->appid_num=appid_num;
+ session_set_exdata(sess, env->l7_exdata_idx, test_appid_exdata);
+ return;
+}
+
+static void on_session(struct session *sess, struct packet *pkt, void *args)
+{
+ if(sess==NULL || pkt==NULL || args==NULL)return;
+ struct test_lpip_env *env = (struct test_lpip_env *)args;
+ if (session_get_current_state(sess) == SESSION_STATE_OPENING)
+ {
+ struct test_lpip_exdata *test_appid_exdata = session_get_exdata(sess, env->l7_exdata_idx);
+ if (test_appid_exdata == NULL)
+ {
+ test_appid_exdata = CALLOC(struct test_lpip_exdata, 1);
+ test_appid_exdata->sess=sess;
+ session_set_exdata(sess, env->l7_exdata_idx, test_appid_exdata);
+ }
+ }
+ return;
+}
+
+struct stellar_module *gtest_lpip_module_init(struct stellar_module_manager *mod_mgr)
+{
+ struct test_lpip_env *env = (struct test_lpip_env *)calloc(1, sizeof(struct test_lpip_env));
+
+ env->lpi_mapper=stellar_module_get_lpip(mod_mgr);
+ struct session_manager *sess_mgr = stellar_module_get_session_manager(mod_mgr);
+ if(sess_mgr == NULL)
+ {
+ perror("gtest_lpi_plugin_load:stellar_module_get_session_manager failed !!!\n");
+ exit(-1);
+ }
+
+ session_manager_subscribe_udp(sess_mgr, on_session, env);
+ session_manager_subscribe_tcp(sess_mgr, on_session, env);
+
+ env->l7_exdata_idx = session_manager_new_session_exdata_index(sess_mgr, "EXDATA_L7", gtest_lpip_exdata_free, env);
+
+ stellar_appid_subscribe(mod_mgr, gtest_lpip_on_appid_msg, env);
+ printf("gtest_lpip_module_init OK!\n");
+
+ return stellar_module_new("TEST_LPIP", env);
+}
+
+void gtest_lpip_module_exit(struct stellar_module_manager *mod_mgr, struct stellar_module *mod)
+{
+ assert(mod_mgr!=NULL);
+ struct test_lpip_env *env = (struct test_lpip_env *)stellar_module_get_ctx(mod);
+ free(env);
+ printf("gtest_lpip_module_exit OK!\n");
+ stellar_module_free(mod);
+ return ;
+}
diff --git a/test/lpi_plus/test_config/spec.toml b/test/lpi_plus/test_config/spec.toml
new file mode 100644
index 0000000..329f401
--- /dev/null
+++ b/test/lpi_plus/test_config/spec.toml
@@ -0,0 +1,11 @@
+# stellar_plugin.toml
+#
+[[module]]
+path = ""
+init = "lpi_plus_init"
+exit = "lpi_plus_exit"
+
+[[module]]
+path = ""
+init = "gtest_lpip_module_init"
+exit = "gtest_lpip_module_exit"
diff --git a/test/lpi_plus/test_config/tsg_l7_protocol.conf b/test/lpi_plus/test_config/tsg_l7_protocol.conf
new file mode 100644
index 0000000..bfad125
--- /dev/null
+++ b/test/lpi_plus/test_config/tsg_l7_protocol.conf
@@ -0,0 +1,80 @@
+#TYPE LPI_NAME APPID APP_NAME
+STRING UNCATEGORIZED 8000
+STRING DNS 32
+STRING DNS_TCP 32 DNS
+STRING FTP 45
+STRING FTP_Control 45 FTP
+STRING FTP_Data 45 FTP
+STRING FTPS 751
+STRING HTTP 67
+STRING HTTP_443 67 HTTP
+STRING HTTP_Tunnel 67 HTTP
+STRING HTTP_NonStandard 67 HTTP
+STRING HTTPS 68
+STRING ICMP 70
+STRING IKE 8003
+STRING MAIL 8004
+STRING IMAP 75
+STRING IMAPS 76
+STRING IPSEC 85
+STRING ESP_UDP 85 IPSEC
+STRING XMPP 94
+STRING L2TP 98
+STRING NTP 137
+STRING POP3 147
+STRING POP3S 148
+STRING PPTP 153
+STRING QUIC 2521
+STRING SIP 182
+STRING SIP_UDP 182 SIP
+STRING SMB 185
+STRING SMTP 186
+STRING SMTPS 187
+STRING SPDY 1469
+STRING SSH 198
+STRING SSL 199
+STRING SSL/TLS 199 SSL
+STRING SOCKS 8005
+STRING SOCKS4 8005 SOCKS
+STRING SOCKS5 8005 SOCKS
+STRING TELNET 209
+STRING Telnet 209 TELNET
+STRING DHCP 29
+STRING Radius 158 RADIUS
+STRING OpenVPN 336 OPENVPN
+STRING OpenVPN_UDP 336 OPENVPN
+STRING STUN 201
+STRING STUN_TCP 201 STUN
+STRING TEREDO 555
+STRING Teredo 555 TEREDO
+STRING DTLS 1291
+STRING DoH 8006
+STRING ISAKMP 92
+STRING MDNS 3835
+STRING mDNS 3835 MDNS
+STRING NetBIOS 129 NETBIOS
+STRING NetBIOS_UDP 129 NETBIOS
+STRING NETFLOW 130
+STRING NetFlow 130 NETFLOW
+STRING RDP 159
+STRING RTCP 174
+STRING RTP 175
+STRING SLP 8007
+STRING SNMP 190
+STRING SSDP 197
+STRING TFTP 211
+STRING BJNP 2481
+STRING Canon_BJNP 2481 BJNP
+STRING LDAP 100
+STRING LDAP_AD 100 LDAP
+STRING RTMP 337
+STRING RTSP 176
+STRING ESNI 8008
+STRING Stratum 8169
+STRING QQ 156
+STRING WeChat 1296
+STRING WeChat_UDP 1296 WeChat
+STRING WireGuard 3700 WIREGUARD
+STRING MMS 115
+STRING RSYNC 173
+STRING Rsync 173 RSYNC
diff --git a/test/lpi_plus/test_expect/app_pcap.json b/test/lpi_plus/test_expect/app_pcap.json
new file mode 100644
index 0000000..1e4c62d
--- /dev/null
+++ b/test/lpi_plus/test_expect/app_pcap.json
@@ -0,0 +1,50 @@
+ [{
+ "Tuple4": "192.168.57.168:8758-123.151.78.109:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [156],
+ "l7_label_name": ["QQ"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_1"
+ }, {
+ "Tuple4": "192.168.58.58:51876-175.27.3.209:443-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [1296],
+ "l7_label_name": ["WeChat"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_2"
+ }, {
+ "Tuple4": "192.168.57.168:59361-106.119.174.27:18001-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [156],
+ "l7_label_name": ["QQ"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_3"
+ }, {
+ "Tuple4": "192.168.58.58:57907-119.167.204.98:8080-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [1296],
+ "l7_label_name": ["WeChat"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_4"
+ }, {
+ "Tuple4": "192.168.39.77:62682-81.181.55.9:1337-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [3700],
+ "l7_label_name": ["WIREGUARD"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_5"
+ }, {
+ "Tuple4": "209.58.189.105:58237-192.168.50.26:56658-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [3700],
+ "l7_label_name": ["WIREGUARD"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_6"
+ }, {
+ "Tuple4": "51.77.200.55:51820-196.188.136.150:20620-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [3700],
+ "l7_label_name": ["WIREGUARD"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_7"
+ }]
diff --git a/test/lpi_plus/test_expect/dns_pcap.json b/test/lpi_plus/test_expect/dns_pcap.json
new file mode 100644
index 0000000..79daba3
--- /dev/null
+++ b/test/lpi_plus/test_expect/dns_pcap.json
@@ -0,0 +1,402 @@
+ [{
+ "Tuple4": "124.88.175.201:17997-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_1"
+ }, {
+ "Tuple4": "124.88.175.201:18014-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_2"
+ }, {
+ "Tuple4": "124.88.175.201:18081-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_3"
+ }, {
+ "Tuple4": "124.88.175.201:18082-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_4"
+ }, {
+ "Tuple4": "124.88.175.201:18091-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_5"
+ }, {
+ "Tuple4": "124.88.175.201:18088-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_6"
+ }, {
+ "Tuple4": "124.88.175.201:18103-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_7"
+ }, {
+ "Tuple4": "124.88.175.201:18126-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_8"
+ }, {
+ "Tuple4": "124.88.175.201:18136-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_9"
+ }, {
+ "Tuple4": "124.88.175.201:18142-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_10"
+ }, {
+ "Tuple4": "124.88.175.201:18210-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_11"
+ }, {
+ "Tuple4": "124.88.175.201:18215-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_12"
+ }, {
+ "Tuple4": "124.88.175.201:18219-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_13"
+ }, {
+ "Tuple4": "124.88.175.201:18223-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_14"
+ }, {
+ "Tuple4": "124.88.175.201:18236-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_15"
+ }, {
+ "Tuple4": "124.88.175.201:18239-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_16"
+ }, {
+ "Tuple4": "124.88.175.201:18242-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_17"
+ }, {
+ "Tuple4": "124.88.175.201:18256-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_18"
+ }, {
+ "Tuple4": "124.88.175.201:18266-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_19"
+ }, {
+ "Tuple4": "124.88.175.201:18336-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_20"
+ }, {
+ "Tuple4": "124.88.175.201:18345-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_21"
+ }, {
+ "Tuple4": "124.88.175.201:18347-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_22"
+ }, {
+ "Tuple4": "124.88.175.201:18351-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_23"
+ }, {
+ "Tuple4": "124.88.175.201:18354-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_24"
+ }, {
+ "Tuple4": "124.88.175.201:18358-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_25"
+ }, {
+ "Tuple4": "124.88.175.201:18360-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_26"
+ }, {
+ "Tuple4": "60.13.179.249:38470-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_27"
+ }, {
+ "Tuple4": "60.13.179.249:38594-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_28"
+ }, {
+ "Tuple4": "60.13.179.249:38608-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_29"
+ }, {
+ "Tuple4": "60.13.179.249:38624-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_30"
+ }, {
+ "Tuple4": "60.13.179.249:38712-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": "UNKNOWN",
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_31"
+ }, {
+ "Tuple4": "60.13.179.249:38692-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_32"
+ }, {
+ "Tuple4": "60.13.179.249:38694-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_33"
+ }, {
+ "Tuple4": "60.13.179.249:38886-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_34"
+ }, {
+ "Tuple4": "60.13.179.249:38904-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_35"
+ }, {
+ "Tuple4": "60.13.179.249:38912-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_36"
+ }, {
+ "Tuple4": "60.13.179.249:38960-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_37"
+ }, {
+ "Tuple4": "60.13.179.249:38976-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": "UNKNOWN",
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_38"
+ }, {
+ "Tuple4": "60.13.179.249:38972-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_39"
+ }, {
+ "Tuple4": "60.13.179.249:39016-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": "UNKNOWN",
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_40"
+ }, {
+ "Tuple4": "60.13.179.249:38978-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_41"
+ }, {
+ "Tuple4": "60.13.179.249:39000-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_42"
+ }, {
+ "Tuple4": "60.13.179.249:39052-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_43"
+ }, {
+ "Tuple4": "60.13.179.249:39082-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_44"
+ }, {
+ "Tuple4": "60.13.179.249:39120-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_45"
+ }, {
+ "Tuple4": "60.13.179.249:39114-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_46"
+ }, {
+ "Tuple4": "60.13.179.249:39176-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_47"
+ }, {
+ "Tuple4": "60.13.179.249:39186-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_48"
+ }, {
+ "Tuple4": "60.13.179.249:39216-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_49"
+ }, {
+ "Tuple4": "60.13.179.249:39246-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_50"
+ }, {
+ "Tuple4": "60.13.179.249:39268-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_51"
+ }, {
+ "Tuple4": "60.13.179.249:26834-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_52"
+ }, {
+ "Tuple4": "124.88.175.201:18095-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_53"
+ }, {
+ "Tuple4": "60.13.195.137:41008-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": "UNKNOWN",
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_54"
+ }, {
+ "Tuple4": "124.88.175.201:18111-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_55"
+ }, {
+ "Tuple4": "60.13.179.249:26633-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_56"
+ }, {
+ "Tuple4": "60.13.179.249:26709-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_57"
+ }, {
+ "Tuple4": "60.13.179.249:37897-8.8.8.8:53-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": "UNKNOWN",
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_58"
+ }]
diff --git a/test/lpi_plus/test_expect/empty_array.json b/test/lpi_plus/test_expect/empty_array.json
new file mode 100644
index 0000000..0637a08
--- /dev/null
+++ b/test/lpi_plus/test_expect/empty_array.json
@@ -0,0 +1 @@
+[] \ No newline at end of file
diff --git a/test/lpi_plus/test_expect/mixed_pcap.json b/test/lpi_plus/test_expect/mixed_pcap.json
new file mode 100644
index 0000000..cddc7e3
--- /dev/null
+++ b/test/lpi_plus/test_expect/mixed_pcap.json
@@ -0,0 +1,291 @@
+ [{
+ "Tuple4": "117.146.23.226:63007-211.95.50.57:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [67],
+ "l7_label_name": ["HTTP"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_1"
+ }, {
+ "Tuple4": "117.145.115.74:37855-218.31.124.234:21121-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [45],
+ "l7_label_name": ["FTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_2"
+ }, {
+ "Tuple4": "117.146.23.226:63007-211.95.50.57:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [67],
+ "l7_label_name": ["HTTP"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_3"
+ }, {
+ "Tuple4": "117.145.115.74:37923-218.31.124.234:21121-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [45],
+ "l7_label_name": ["FTP"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_4"
+ }, {
+ "Tuple4": "172.17.107.32:18867-218.229.99.73:25-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [186],
+ "l7_label_name": ["SMTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_5"
+ }, {
+ "Tuple4": "117.145.115.74:37855-218.31.124.234:21121-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": "UNKNOWN",
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_6"
+ }, {
+ "Tuple4": "196.188.12.179:54776-192.185.31.244:110-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [147],
+ "l7_label_name": ["POP3"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_7"
+ }, {
+ "Tuple4": "196.189.57.105:14636-68.232.159.216:25-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [186],
+ "l7_label_name": ["SMTP"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_8"
+ }, {
+ "Tuple4": "196.190.160.6:20997-64.225.54.152:25-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [186],
+ "l7_label_name": ["SMTP"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_9"
+ }, {
+ "Tuple4": "196.188.3.8:50020-82.98.178.159:110-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [147],
+ "l7_label_name": ["POP3"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_10"
+ }, {
+ "Tuple4": "196.189.45.189:1440-40.101.92.178:587-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [186],
+ "l7_label_name": ["SMTP"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_11"
+ }, {
+ "Tuple4": "196.191.120.240:37943-81.19.77.166:587-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [186],
+ "l7_label_name": ["SMTP"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_12"
+ }, {
+ "Tuple4": "39.144.206.199:22005-117.156.19.31:8000-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [201, 174, 175],
+ "l7_label_name": ["STUN", "RTCP", "RTP"],
+ "STREAM_DIR": "S2C",
+ "name": "APP_PROTO_IDENTIFY_RESULT_13"
+ }, {
+ "Tuple4": "85.117.117.169:47762-173.194.73.95:443-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [2521],
+ "l7_label_name": ["QUIC"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_14"
+ }, {
+ "Tuple4": "85.117.113.98:4340-74.125.131.95:443-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [2521],
+ "l7_label_name": ["QUIC"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_15"
+ }, {
+ "Tuple4": "90.143.189.5:8026-173.194.188.40:443-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [2521],
+ "l7_label_name": ["QUIC"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_16"
+ }, {
+ "Tuple4": "85.117.125.8:21243-173.194.73.102:443-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [2521],
+ "l7_label_name": ["QUIC"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_17"
+ }, {
+ "Tuple4": "85.117.122.194:32370-173.194.220.138:443-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [2521],
+ "l7_label_name": ["QUIC"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_18"
+ }, {
+ "Tuple4": "10.32.121.249:33765-64.233.161.95:443-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [2521],
+ "l7_label_name": ["QUIC"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_19"
+ }, {
+ "Tuple4": "85.117.119.45:22495-173.194.73.101:443-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [2521],
+ "l7_label_name": ["QUIC"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_20"
+ }, {
+ "Tuple4": "90.143.180.56:28496-64.233.165.113:443-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [2521],
+ "l7_label_name": ["QUIC"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_21"
+ }, {
+ "Tuple4": "112.43.145.231:18699-112.46.25.216:443-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [2521],
+ "l7_label_name": ["QUIC"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_22"
+ }, {
+ "Tuple4": "146.158.67.194:1044-108.177.14.138:443-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [2521],
+ "l7_label_name": ["QUIC"],
+ "STREAM_DIR": "S2C",
+ "name": "APP_PROTO_IDENTIFY_RESULT_23"
+ }, {
+ "Tuple4": "36.142.158.169:16385-36.189.11.71:443-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [2521],
+ "l7_label_name": ["QUIC"],
+ "STREAM_DIR": "S2C",
+ "name": "APP_PROTO_IDENTIFY_RESULT_24"
+ }, {
+ "Tuple4": "103.3.138.59:12521-123.125.116.52:443-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [2521],
+ "l7_label_name": ["QUIC"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_25"
+ }, {
+ "Tuple4": "172.20.9.135:65045-64.233.162.119:443-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [2521],
+ "l7_label_name": ["QUIC"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_26"
+ }, {
+ "Tuple4": "192.168.50.29:61891-31.13.77.35:443-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [2521],
+ "l7_label_name": ["QUIC"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_27"
+ }, {
+ "Tuple4": "192.168.60.9:55659-69.171.250.63:443-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [2521],
+ "l7_label_name": ["QUIC"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_28"
+ }, {
+ "Tuple4": "192.168.137.141:50006-31.13.77.17:443-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [2521],
+ "l7_label_name": ["QUIC"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_29"
+ }, {
+ "Tuple4": "217.76.77.70:33232-173.194.220.105:443-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [2521],
+ "l7_label_name": ["QUIC"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_30"
+ }, {
+ "Tuple4": "192.168.60.32:59699-64.233.164.84:443-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [2521],
+ "l7_label_name": ["QUIC"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_31"
+ }, {
+ "Tuple4": "195.12.120.14:41803-173.194.222.101:443-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [2521],
+ "l7_label_name": ["QUIC"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_32"
+ }, {
+ "Tuple4": "10.130.2.104:55426-67.225.241.247:587-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [186],
+ "l7_label_name": ["SMTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_33"
+ }, {
+ "Tuple4": "10.130.13.155:57719-50.87.145.154:26-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [186],
+ "l7_label_name": ["SMTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_34"
+ }, {
+ "Tuple4": "196.189.24.94:20997-98.138.112.34:25-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": "UNKNOWN",
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_35"
+ }, {
+ "Tuple4": "196.189.0.15:53357-39.156.6.106:110-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [147],
+ "l7_label_name": ["POP3"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_36"
+ }, {
+ "Tuple4": "196.188.121.1:53357-68.183.134.15:110-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": "UNKNOWN",
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_37"
+ }, {
+ "Tuple4": "196.189.5.89:36734-101.32.113.90:143-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [75],
+ "l7_label_name": ["IMAP"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_38"
+ }, {
+ "Tuple4": "196.188.28.149:50415-69.195.110.51:143-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [75],
+ "l7_label_name": ["IMAP"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_39"
+ }, {
+ "Tuple4": "115.24.235.11:4029-8.210.152.150:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "S2C",
+ "name": "APP_PROTO_IDENTIFY_RESULT_40"
+ }, {
+ "Tuple4": "78.1.76.154:57133-192.168.137.147:45736-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [201, 1291],
+ "l7_label_name": ["STUN", "DTLS"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_41"
+ }, {
+ "Tuple4": "192.168.40.82:41450-192.168.44.230:7002-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": "UNKNOWN",
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_42"
+ }]
diff --git a/test/lpi_plus/test_expect/openvpn_pcap.json b/test/lpi_plus/test_expect/openvpn_pcap.json
new file mode 100644
index 0000000..66f30eb
--- /dev/null
+++ b/test/lpi_plus/test_expect/openvpn_pcap.json
@@ -0,0 +1,92 @@
+ [{
+ "Tuple4": "192.168.64.27:61801-219.100.37.7:443-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [336],
+ "l7_label_name": ["OPENVPN"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_1"
+ }, {
+ "Tuple4": "172.16.18.30:12272-172.16.18.11:1194-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [336],
+ "l7_label_name": ["OPENVPN"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_2"
+ }, {
+ "Tuple4": "192.168.88.3:50568-46.246.122.61:1198-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [336],
+ "l7_label_name": ["OPENVPN"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_3"
+ }, {
+ "Tuple4": "192.168.1.77:60140-46.101.231.218:443-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [336],
+ "l7_label_name": ["OPENVPN"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_4"
+ }, {
+ "Tuple4": "192.168.43.12:41507-139.59.151.137:13680-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [336],
+ "l7_label_name": ["OPENVPN"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_5"
+ }, {
+ "Tuple4": "192.168.43.18:13680-139.59.151.137:13680-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [336],
+ "l7_label_name": ["OPENVPN"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_6"
+ }, {
+ "Tuple4": "192.168.34.249:63111-3.115.218.192:1194-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [336],
+ "l7_label_name": ["OPENVPN"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_7"
+ }, {
+ "Tuple4": "192.168.11.14:34400-202.43.148.189:1194-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [336],
+ "l7_label_name": ["OPENVPN"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_8"
+ }, {
+ "Tuple4": "202.43.148.166:40914-202.43.148.189:1194-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [336],
+ "l7_label_name": ["OPENVPN"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_9"
+ }, {
+ "Tuple4": "172.31.136.16:51706-172.31.250.5:1194-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [336],
+ "l7_label_name": ["OPENVPN"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_10"
+ }, {
+ "Tuple4": "192.168.56.31:49941-185.225.234.3:1194-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [336],
+ "l7_label_name": ["OPENVPN"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_11"
+ }, {
+ "Tuple4": "2607:5d00:2:2::38:129:61897-2a01:4f8:200:812b:65b::1:3042-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [336],
+ "l7_label_name": ["OPENVPN"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_12"
+ }, {
+ "Tuple4": "192.168.58.112:41925-36.102.226.57:8443-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [2521],
+ "l7_label_name": ["QUIC"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_13"
+ }]
diff --git a/test/lpi_plus/test_expect/ppp_pcap.json b/test/lpi_plus/test_expect/ppp_pcap.json
new file mode 100644
index 0000000..cf20bf0
--- /dev/null
+++ b/test/lpi_plus/test_expect/ppp_pcap.json
@@ -0,0 +1,826 @@
+ [{
+ "Tuple4": "192.168.10.91:62176-220.249.244.23:33445-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": "UNKNOWN",
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_1"
+ }, {
+ "Tuple4": "172.16.2.100:49247-10.0.6.229:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [67],
+ "l7_label_name": ["HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_2"
+ }, {
+ "Tuple4": "172.16.2.100:49245-10.0.6.229:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [67],
+ "l7_label_name": ["HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_3"
+ }, {
+ "Tuple4": "172.16.2.100:49252-10.0.6.229:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [67],
+ "l7_label_name": ["HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_4"
+ }, {
+ "Tuple4": "172.16.2.100:49255-10.0.6.229:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [67],
+ "l7_label_name": ["HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_5"
+ }, {
+ "Tuple4": "172.16.2.100:49248-10.0.6.229:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [67],
+ "l7_label_name": ["HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_6"
+ }, {
+ "Tuple4": "172.16.2.100:49254-10.0.6.229:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [67],
+ "l7_label_name": ["HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_7"
+ }, {
+ "Tuple4": "172.16.2.100:49259-10.0.6.229:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [67],
+ "l7_label_name": ["HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_8"
+ }, {
+ "Tuple4": "172.16.0.100:50112-172.16.0.254:1723-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [153],
+ "l7_label_name": ["PPTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_9"
+ }, {
+ "Tuple4": "172.16.2.100:50072-10.0.6.229:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [67],
+ "l7_label_name": ["HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_10"
+ }, {
+ "Tuple4": "172.16.2.100:49250-10.0.6.229:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [67],
+ "l7_label_name": ["HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_11"
+ }, {
+ "Tuple4": "172.16.0.100:500-172.16.0.254:500-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [92],
+ "l7_label_name": ["ISAKMP"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_12"
+ }, {
+ "Tuple4": "172.16.2.100:63747-224.0.0.252:5355-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": "UNKNOWN",
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_13"
+ }, {
+ "Tuple4": "172.16.2.100:65012-224.0.0.252:5355-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": "UNKNOWN",
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_14"
+ }, {
+ "Tuple4": "172.16.2.100:68-255.255.255.255:67-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": "UNKNOWN",
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_15"
+ }, {
+ "Tuple4": "172.16.2.100:63917-224.0.0.252:5355-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": "UNKNOWN",
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_16"
+ }, {
+ "Tuple4": "172.16.2.100:50147-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_17"
+ }, {
+ "Tuple4": "172.16.2.100:50866-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_18"
+ }, {
+ "Tuple4": "172.16.2.100:57084-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_19"
+ }, {
+ "Tuple4": "172.16.2.100:138-255.255.255.255:138-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [129],
+ "l7_label_name": ["NETBIOS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_20"
+ }, {
+ "Tuple4": "172.16.2.100:51103-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_21"
+ }, {
+ "Tuple4": "172.16.2.100:53831-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_22"
+ }, {
+ "Tuple4": "172.16.2.100:52460-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_23"
+ }, {
+ "Tuple4": "172.16.2.100:50497-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_24"
+ }, {
+ "Tuple4": "172.16.2.100:50233-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_25"
+ }, {
+ "Tuple4": "172.16.2.100:64355-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_26"
+ }, {
+ "Tuple4": "172.16.2.100:50648-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_27"
+ }, {
+ "Tuple4": "172.16.2.100:52851-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_28"
+ }, {
+ "Tuple4": "172.16.2.100:58476-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_29"
+ }, {
+ "Tuple4": "172.16.2.100:50897-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_30"
+ }, {
+ "Tuple4": "172.16.2.100:65380-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_31"
+ }, {
+ "Tuple4": "172.16.2.100:58422-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_32"
+ }, {
+ "Tuple4": "172.16.2.100:64882-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_33"
+ }, {
+ "Tuple4": "172.16.2.100:51787-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_34"
+ }, {
+ "Tuple4": "172.16.2.100:59393-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_35"
+ }, {
+ "Tuple4": "172.16.2.100:52783-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_36"
+ }, {
+ "Tuple4": "172.16.2.100:55755-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_37"
+ }, {
+ "Tuple4": "172.16.2.100:60213-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_38"
+ }, {
+ "Tuple4": "172.16.2.100:64847-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_39"
+ }, {
+ "Tuple4": "172.16.2.100:64115-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_40"
+ }, {
+ "Tuple4": "172.16.2.100:57554-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_41"
+ }, {
+ "Tuple4": "172.16.2.100:49969-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_42"
+ }, {
+ "Tuple4": "172.16.2.100:57553-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_43"
+ }, {
+ "Tuple4": "172.16.2.100:58185-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_44"
+ }, {
+ "Tuple4": "172.16.2.100:60349-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_45"
+ }, {
+ "Tuple4": "172.16.2.100:62337-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_46"
+ }, {
+ "Tuple4": "172.16.2.100:64382-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_47"
+ }, {
+ "Tuple4": "172.16.2.100:62694-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_48"
+ }, {
+ "Tuple4": "172.16.2.100:64915-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_49"
+ }, {
+ "Tuple4": "172.16.2.100:50578-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_50"
+ }, {
+ "Tuple4": "172.16.2.100:56971-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_51"
+ }, {
+ "Tuple4": "172.16.2.100:62721-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_52"
+ }, {
+ "Tuple4": "172.16.2.100:50655-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_53"
+ }, {
+ "Tuple4": "172.16.2.100:54363-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_54"
+ }, {
+ "Tuple4": "172.16.2.100:53796-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_55"
+ }, {
+ "Tuple4": "172.16.2.100:59348-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_56"
+ }, {
+ "Tuple4": "172.16.2.100:49686-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_57"
+ }, {
+ "Tuple4": "172.16.2.100:50273-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_58"
+ }, {
+ "Tuple4": "172.16.2.100:63738-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_59"
+ }, {
+ "Tuple4": "172.16.2.100:62490-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_60"
+ }, {
+ "Tuple4": "172.16.2.100:61200-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_61"
+ }, {
+ "Tuple4": "172.16.2.100:64138-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_62"
+ }, {
+ "Tuple4": "172.16.2.100:64736-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_63"
+ }, {
+ "Tuple4": "172.16.2.100:54188-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_64"
+ }, {
+ "Tuple4": "172.16.2.100:59408-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_65"
+ }, {
+ "Tuple4": "172.16.2.100:49446-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_66"
+ }, {
+ "Tuple4": "172.16.2.100:58556-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_67"
+ }, {
+ "Tuple4": "172.16.2.100:52129-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_68"
+ }, {
+ "Tuple4": "172.16.2.100:50258-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_69"
+ }, {
+ "Tuple4": "172.16.2.100:51697-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_70"
+ }, {
+ "Tuple4": "172.16.2.100:58428-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_71"
+ }, {
+ "Tuple4": "172.16.2.100:51307-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_72"
+ }, {
+ "Tuple4": "172.16.2.100:55973-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_73"
+ }, {
+ "Tuple4": "172.16.2.100:53758-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_74"
+ }, {
+ "Tuple4": "172.16.2.100:62140-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_75"
+ }, {
+ "Tuple4": "172.16.2.100:63652-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_76"
+ }, {
+ "Tuple4": "172.16.2.100:60777-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_77"
+ }, {
+ "Tuple4": "172.16.2.100:49246-10.0.6.229:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [67],
+ "l7_label_name": ["HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_78"
+ }, {
+ "Tuple4": "172.16.2.100:56967-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_79"
+ }, {
+ "Tuple4": "172.16.2.100:60549-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_80"
+ }, {
+ "Tuple4": "172.16.2.100:49621-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_81"
+ }, {
+ "Tuple4": "172.16.2.100:49257-10.0.6.229:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [67],
+ "l7_label_name": ["HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_82"
+ }, {
+ "Tuple4": "172.16.2.100:65424-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_83"
+ }, {
+ "Tuple4": "172.16.2.100:49249-10.0.6.229:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [67],
+ "l7_label_name": ["HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_84"
+ }, {
+ "Tuple4": "172.16.2.100:49256-10.0.6.229:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [67],
+ "l7_label_name": ["HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_85"
+ }, {
+ "Tuple4": "172.16.2.100:61044-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_86"
+ }, {
+ "Tuple4": "172.16.2.100:55106-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_87"
+ }, {
+ "Tuple4": "172.16.2.100:62335-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_88"
+ }, {
+ "Tuple4": "172.16.2.100:54356-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_89"
+ }, {
+ "Tuple4": "172.16.2.100:51628-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_90"
+ }, {
+ "Tuple4": "172.16.2.100:50188-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_91"
+ }, {
+ "Tuple4": "172.16.2.100:57198-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_92"
+ }, {
+ "Tuple4": "172.16.2.100:57310-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_93"
+ }, {
+ "Tuple4": "172.16.2.100:49258-10.0.6.229:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [67],
+ "l7_label_name": ["HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_94"
+ }, {
+ "Tuple4": "172.16.2.100:63697-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_95"
+ }, {
+ "Tuple4": "172.16.2.100:50244-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_96"
+ }, {
+ "Tuple4": "172.16.2.100:57229-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_97"
+ }, {
+ "Tuple4": "172.16.2.100:62401-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_98"
+ }, {
+ "Tuple4": "172.16.2.100:58807-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_99"
+ }, {
+ "Tuple4": "172.16.2.100:49264-10.0.6.229:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [67],
+ "l7_label_name": ["HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_100"
+ }, {
+ "Tuple4": "172.16.2.100:49261-10.0.6.229:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": "UNKNOWN",
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_101"
+ }, {
+ "Tuple4": "172.16.2.100:49253-10.0.6.229:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [67],
+ "l7_label_name": ["HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_102"
+ }, {
+ "Tuple4": "172.16.2.100:50564-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_103"
+ }, {
+ "Tuple4": "172.16.2.100:49263-10.0.6.229:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": "UNKNOWN",
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_104"
+ }, {
+ "Tuple4": "172.16.2.100:49251-10.0.6.229:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [67],
+ "l7_label_name": ["HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_105"
+ }, {
+ "Tuple4": "172.16.2.100:49265-10.0.6.229:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": "UNKNOWN",
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_106"
+ }, {
+ "Tuple4": "172.16.2.100:60282-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_107"
+ }, {
+ "Tuple4": "172.16.2.100:58248-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_108"
+ }, {
+ "Tuple4": "172.16.2.100:53188-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_109"
+ }, {
+ "Tuple4": "172.16.2.100:53483-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_110"
+ }, {
+ "Tuple4": "172.16.2.100:49260-10.0.6.229:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [67],
+ "l7_label_name": ["HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_111"
+ }, {
+ "Tuple4": "172.16.2.100:51121-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_112"
+ }, {
+ "Tuple4": "172.16.2.100:52562-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_113"
+ }, {
+ "Tuple4": "172.16.2.100:49262-10.0.6.229:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [67],
+ "l7_label_name": ["HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_114"
+ }, {
+ "Tuple4": "172.16.2.100:51048-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_115"
+ }, {
+ "Tuple4": "172.16.2.100:51806-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_116"
+ }, {
+ "Tuple4": "172.16.2.100:137-255.255.255.255:137-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [129],
+ "l7_label_name": ["NETBIOS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_117"
+ }, {
+ "Tuple4": "172.16.2.100:60348-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_118"
+ }, {
+ "Tuple4": "172.16.0.100:1701-172.16.0.254:1701-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [158],
+ "l7_label_name": ["RADIUS"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_119"
+ }]
diff --git a/test/lpi_plus/test_expect/socks_pcap.json b/test/lpi_plus/test_expect/socks_pcap.json
new file mode 100644
index 0000000..9673199
--- /dev/null
+++ b/test/lpi_plus/test_expect/socks_pcap.json
@@ -0,0 +1,266 @@
+ [{
+ "Tuple4": "192.168.122.100:62395-192.168.122.202:1080-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [8005, 45],
+ "l7_label_name": ["SOCKS", "FTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_1"
+ }, {
+ "Tuple4": "192.168.122.100:50259-192.168.122.202:1080-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [8005, 67],
+ "l7_label_name": ["SOCKS", "HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_2"
+ }, {
+ "Tuple4": "10.0.0.1:1637-10.0.0.2:21477-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [8005],
+ "l7_label_name": ["SOCKS"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_3"
+ }, {
+ "Tuple4": "10.180.156.185:53533-10.180.156.249:1080-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [8005, 67],
+ "l7_label_name": ["SOCKS", "HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_4"
+ }, {
+ "Tuple4": "10.180.156.185:53534-10.180.156.249:1080-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [8005, 67],
+ "l7_label_name": ["SOCKS", "HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_5"
+ }, {
+ "Tuple4": "10.180.156.185:53535-10.180.156.249:1080-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [8005, 67],
+ "l7_label_name": ["SOCKS", "HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_6"
+ }, {
+ "Tuple4": "10.10.9.37:1063-100.100.9.37:1080-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [8005, 147],
+ "l7_label_name": ["SOCKS", "POP3"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_7"
+ }, {
+ "Tuple4": "10.10.10.38:1061-100.100.10.38:1080-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [8005, 186],
+ "l7_label_name": ["SOCKS", "SMTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_8"
+ }, {
+ "Tuple4": "192.168.122.100:50260-192.168.122.202:1080-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [8005, 67],
+ "l7_label_name": ["SOCKS", "HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_9"
+ }, {
+ "Tuple4": "192.168.122.100:50261-192.168.122.202:1080-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [8005, 67],
+ "l7_label_name": ["SOCKS", "HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_10"
+ }, {
+ "Tuple4": "192.168.122.100:50274-192.168.122.202:1080-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [8005, 67],
+ "l7_label_name": ["SOCKS", "HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_11"
+ }, {
+ "Tuple4": "192.168.122.100:50275-192.168.122.202:1080-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [8005, 67],
+ "l7_label_name": ["SOCKS", "HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_12"
+ }, {
+ "Tuple4": "192.168.122.100:50273-192.168.122.202:1080-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [8005, 67],
+ "l7_label_name": ["SOCKS", "HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_13"
+ }, {
+ "Tuple4": "192.168.122.100:62396-192.168.122.202:1080-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [8005],
+ "l7_label_name": ["SOCKS"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_14"
+ }, {
+ "Tuple4": "192.168.122.100:62397-192.168.122.202:1080-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [8005],
+ "l7_label_name": ["SOCKS"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_15"
+ }, {
+ "Tuple4": "192.168.122.100:62398-192.168.122.202:1080-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [8005],
+ "l7_label_name": ["SOCKS"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_16"
+ }, {
+ "Tuple4": "192.168.122.100:62395-192.168.122.202:1080-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [45],
+ "l7_label_name": ["FTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_17"
+ }, {
+ "Tuple4": "192.168.122.100:50259-192.168.122.202:1080-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [67],
+ "l7_label_name": ["HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_18"
+ }, {
+ "Tuple4": "10.0.0.1:1637-10.0.0.2:21477-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [8005, 67],
+ "l7_label_name": ["SOCKS", "HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_19"
+ }, {
+ "Tuple4": "10.0.0.1:54263-10.0.0.2:8855-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [67],
+ "l7_label_name": ["HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_20"
+ }, {
+ "Tuple4": "10.0.0.2:53709-10.0.0.1:1080-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [186],
+ "l7_label_name": ["SMTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_21"
+ }, {
+ "Tuple4": "10.180.156.185:54068-10.180.156.249:1080-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [8005],
+ "l7_label_name": ["SOCKS"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_22"
+ }, {
+ "Tuple4": "10.180.156.185:54069-10.180.156.249:1080-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [8005],
+ "l7_label_name": ["SOCKS"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_23"
+ }, {
+ "Tuple4": "10.180.156.185:54072-10.180.156.249:1080-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [8005, 67],
+ "l7_label_name": ["SOCKS", "HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_24"
+ }, {
+ "Tuple4": "10.180.156.185:53554-10.180.156.249:1080-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [8005, 199],
+ "l7_label_name": ["SOCKS", "SSL"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_25"
+ }, {
+ "Tuple4": "10.180.156.185:53555-10.180.156.249:1080-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [8005, 199],
+ "l7_label_name": ["SOCKS", "SSL"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_26"
+ }, {
+ "Tuple4": "10.180.156.185:53556-10.180.156.249:1080-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [8005, 199],
+ "l7_label_name": ["SOCKS", "SSL"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_27"
+ }, {
+ "Tuple4": "192.168.122.100:58811-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_28"
+ }, {
+ "Tuple4": "ff02::1:2:547-fe80::424:6d4c:9a85:337d:546-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [29],
+ "l7_label_name": ["DHCP"],
+ "STREAM_DIR": "S2C",
+ "name": "APP_PROTO_IDENTIFY_RESULT_29"
+ }, {
+ "Tuple4": "192.168.122.100:58117-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_30"
+ }, {
+ "Tuple4": "192.168.122.100:50258-184.50.87.123:80-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [67],
+ "l7_label_name": ["HTTP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_31"
+ }, {
+ "Tuple4": "192.168.122.100:52837-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_32"
+ }, {
+ "Tuple4": "192.168.122.100:50262-74.125.235.196:443-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": "UNKNOWN",
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_33"
+ }, {
+ "Tuple4": "192.168.122.100:57617-8.8.8.8:53-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [32],
+ "l7_label_name": ["DNS"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_34"
+ }, {
+ "Tuple4": "192.168.122.100:138-192.168.122.255:138-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [129],
+ "l7_label_name": ["NETBIOS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_35"
+ }, {
+ "Tuple4": "192.168.122.100:137-192.168.122.255:137-17-0",
+ "STREAM_TYPE": "UDP",
+ "l7_label_id": [129],
+ "l7_label_name": ["NETBIOS"],
+ "STREAM_DIR": "C2S",
+ "name": "APP_PROTO_IDENTIFY_RESULT_36"
+ }, {
+ "Tuple4": "10.0.0.1:50606-10.0.0.2:9901-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [8005],
+ "l7_label_name": ["SOCKS"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_37"
+ }, {
+ "Tuple4": "10.0.0.3:2276-10.0.0.2:42356-6-0",
+ "STREAM_TYPE": "TCP",
+ "l7_label_id": [8005, 159],
+ "l7_label_name": ["SOCKS", "RDP"],
+ "STREAM_DIR": "DOUBLE",
+ "name": "APP_PROTO_IDENTIFY_RESULT_38"
+ }]
diff --git a/test/lpi_plus/test_pcap/app_pcap/1-qq_59361.pcap b/test/lpi_plus/test_pcap/app_pcap/1-qq_59361.pcap
new file mode 100644
index 0000000..4334250
--- /dev/null
+++ b/test/lpi_plus/test_pcap/app_pcap/1-qq_59361.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/app_pcap/2-qq_8758.pcap b/test/lpi_plus/test_pcap/app_pcap/2-qq_8758.pcap
new file mode 100644
index 0000000..5d3a09c
--- /dev/null
+++ b/test/lpi_plus/test_pcap/app_pcap/2-qq_8758.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/app_pcap/3-wechat_51876.pcap b/test/lpi_plus/test_pcap/app_pcap/3-wechat_51876.pcap
new file mode 100644
index 0000000..8790b64
--- /dev/null
+++ b/test/lpi_plus/test_pcap/app_pcap/3-wechat_51876.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/app_pcap/4-wechat_8080.pcap b/test/lpi_plus/test_pcap/app_pcap/4-wechat_8080.pcap
new file mode 100644
index 0000000..c9bd882
--- /dev/null
+++ b/test/lpi_plus/test_pcap/app_pcap/4-wechat_8080.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/app_pcap/5-wireguard.pcap b/test/lpi_plus/test_pcap/app_pcap/5-wireguard.pcap
new file mode 100644
index 0000000..5dac585
--- /dev/null
+++ b/test/lpi_plus/test_pcap/app_pcap/5-wireguard.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/app_pcap/6-wireguard1.pcap b/test/lpi_plus/test_pcap/app_pcap/6-wireguard1.pcap
new file mode 100644
index 0000000..5f9d7ce
--- /dev/null
+++ b/test/lpi_plus/test_pcap/app_pcap/6-wireguard1.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/app_pcap/7-wireguard2.pcap b/test/lpi_plus/test_pcap/app_pcap/7-wireguard2.pcap
new file mode 100644
index 0000000..5ea113e
--- /dev/null
+++ b/test/lpi_plus/test_pcap/app_pcap/7-wireguard2.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/dns_pcap/1-dns-tcp-single-53-124.88.175.201-8.8.8.8.pcap b/test/lpi_plus/test_pcap/dns_pcap/1-dns-tcp-single-53-124.88.175.201-8.8.8.8.pcap
new file mode 100644
index 0000000..0397534
--- /dev/null
+++ b/test/lpi_plus/test_pcap/dns_pcap/1-dns-tcp-single-53-124.88.175.201-8.8.8.8.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/dns_pcap/2-dns-tcp-single-53-60.13.179.249-8.8.8.8.pcap b/test/lpi_plus/test_pcap/dns_pcap/2-dns-tcp-single-53-60.13.179.249-8.8.8.8.pcap
new file mode 100644
index 0000000..d54bad6
--- /dev/null
+++ b/test/lpi_plus/test_pcap/dns_pcap/2-dns-tcp-single-53-60.13.179.249-8.8.8.8.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/01-http-not-ftp.pcap b/test/lpi_plus/test_pcap/mixed_pcap/01-http-not-ftp.pcap
new file mode 100644
index 0000000..d1f49ec
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/01-http-not-ftp.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/02-stun-rtcp-rtp-22005-8000-39.144.206.199-117.156.19.31.pcap b/test/lpi_plus/test_pcap/mixed_pcap/02-stun-rtcp-rtp-22005-8000-39.144.206.199-117.156.19.31.pcap
new file mode 100644
index 0000000..bd33283
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/02-stun-rtcp-rtp-22005-8000-39.144.206.199-117.156.19.31.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/03-ftp-37923-21121-117.145.115.74-218.31.124.234.pcap b/test/lpi_plus/test_pcap/mixed_pcap/03-ftp-37923-21121-117.145.115.74-218.31.124.234.pcap
new file mode 100644
index 0000000..1214121
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/03-ftp-37923-21121-117.145.115.74-218.31.124.234.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/04-mail_smtp_port_18867_25.pcap b/test/lpi_plus/test_pcap/mixed_pcap/04-mail_smtp_port_18867_25.pcap
new file mode 100644
index 0000000..3549c0d
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/04-mail_smtp_port_18867_25.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/05-ftp_port_21121-double.pcap b/test/lpi_plus/test_pcap/mixed_pcap/05-ftp_port_21121-double.pcap
new file mode 100644
index 0000000..2fb600f
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/05-ftp_port_21121-double.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/06-ftp_port_21121-s2c.pcap b/test/lpi_plus/test_pcap/mixed_pcap/06-ftp_port_21121-s2c.pcap
new file mode 100644
index 0000000..e1ad680
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/06-ftp_port_21121-s2c.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/07-ftp_port_21121-c2s.pcap b/test/lpi_plus/test_pcap/mixed_pcap/07-ftp_port_21121-c2s.pcap
new file mode 100644
index 0000000..152e850
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/07-ftp_port_21121-c2s.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/08-gquic-023-85.117.117.169.47762-173.194.73.95.443.pcap b/test/lpi_plus/test_pcap/mixed_pcap/08-gquic-023-85.117.117.169.47762-173.194.73.95.443.pcap
new file mode 100644
index 0000000..db29a3b
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/08-gquic-023-85.117.117.169.47762-173.194.73.95.443.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/09-gquic-025-85.117.113.98.4340-74.125.131.95.443.pcap b/test/lpi_plus/test_pcap/mixed_pcap/09-gquic-025-85.117.113.98.4340-74.125.131.95.443.pcap
new file mode 100644
index 0000000..299e573
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/09-gquic-025-85.117.113.98.4340-74.125.131.95.443.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/10-gquic-033-90.143.189.5.8026-173.194.188.40.443.pcap b/test/lpi_plus/test_pcap/mixed_pcap/10-gquic-033-90.143.189.5.8026-173.194.188.40.443.pcap
new file mode 100644
index 0000000..b0e4c5b
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/10-gquic-033-90.143.189.5.8026-173.194.188.40.443.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/11-gquic-034-85.117.125.8.21243-173.194.73.102.443.pcap b/test/lpi_plus/test_pcap/mixed_pcap/11-gquic-034-85.117.125.8.21243-173.194.73.102.443.pcap
new file mode 100644
index 0000000..eee3c8e
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/11-gquic-034-85.117.125.8.21243-173.194.73.102.443.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/12-gquic-035-redirector.googlevideo.com-85.117.122.194.32370-173.194.220.138.443.pcap b/test/lpi_plus/test_pcap/mixed_pcap/12-gquic-035-redirector.googlevideo.com-85.117.122.194.32370-173.194.220.138.443.pcap
new file mode 100644
index 0000000..5dc1f81
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/12-gquic-035-redirector.googlevideo.com-85.117.122.194.32370-173.194.220.138.443.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/13-gquic-037-10.32.121.249.33765-64.233.161.95.443.pcap b/test/lpi_plus/test_pcap/mixed_pcap/13-gquic-037-10.32.121.249.33765-64.233.161.95.443.pcap
new file mode 100644
index 0000000..ca6388d
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/13-gquic-037-10.32.121.249.33765-64.233.161.95.443.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/14-gquic-039-redirector.googlevideo.com-85.117.119.45.22495-173.194.73.101.443.pcap b/test/lpi_plus/test_pcap/mixed_pcap/14-gquic-039-redirector.googlevideo.com-85.117.119.45.22495-173.194.73.101.443.pcap
new file mode 100644
index 0000000..bd088b0
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/14-gquic-039-redirector.googlevideo.com-85.117.119.45.22495-173.194.73.101.443.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/15-gquic-041-90.143.180.56.28496-64.233.165.113.443.pcap b/test/lpi_plus/test_pcap/mixed_pcap/15-gquic-041-90.143.180.56.28496-64.233.165.113.443.pcap
new file mode 100644
index 0000000..0a6e5ff
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/15-gquic-041-90.143.180.56.28496-64.233.165.113.443.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/16-gquic-041-90.143.180.56.28496-64.233.165.113.443.pcap b/test/lpi_plus/test_pcap/mixed_pcap/16-gquic-041-90.143.180.56.28496-64.233.165.113.443.pcap
new file mode 100644
index 0000000..0abc861
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/16-gquic-041-90.143.180.56.28496-64.233.165.113.443.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/17-gquic-044-146.158.67.194.1044-108.177.14.138.443.pcap b/test/lpi_plus/test_pcap/mixed_pcap/17-gquic-044-146.158.67.194.1044-108.177.14.138.443.pcap
new file mode 100644
index 0000000..204f860
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/17-gquic-044-146.158.67.194.1044-108.177.14.138.443.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/18-gquic-046-36.142.158.169.16385-36.189.11.71.443.pcap b/test/lpi_plus/test_pcap/mixed_pcap/18-gquic-046-36.142.158.169.16385-36.189.11.71.443.pcap
new file mode 100644
index 0000000..0b77c4d
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/18-gquic-046-36.142.158.169.16385-36.189.11.71.443.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/19-gquic-048-103.3.138.59.12521-123.125.116.52.443.pcap b/test/lpi_plus/test_pcap/mixed_pcap/19-gquic-048-103.3.138.59.12521-123.125.116.52.443.pcap
new file mode 100644
index 0000000..5c9fcd6
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/19-gquic-048-103.3.138.59.12521-123.125.116.52.443.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/20-gquic-050-i.ytimg.com-172.20.9.135.65045-64.233.162.119.443.pcap b/test/lpi_plus/test_pcap/mixed_pcap/20-gquic-050-i.ytimg.com-172.20.9.135.65045-64.233.162.119.443.pcap
new file mode 100644
index 0000000..1d5c46a
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/20-gquic-050-i.ytimg.com-172.20.9.135.65045-64.233.162.119.443.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/21-iquic-29-192.168.50.29.61891-31.13.77.35.443.pcap b/test/lpi_plus/test_pcap/mixed_pcap/21-iquic-29-192.168.50.29.61891-31.13.77.35.443.pcap
new file mode 100644
index 0000000..dcd22db
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/21-iquic-29-192.168.50.29.61891-31.13.77.35.443.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/22-mvfst-01-i.instagram.com-192.168.60.9.55659-69.171.250.63.443.pcap b/test/lpi_plus/test_pcap/mixed_pcap/22-mvfst-01-i.instagram.com-192.168.60.9.55659-69.171.250.63.443.pcap
new file mode 100644
index 0000000..be91a45
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/22-mvfst-01-i.instagram.com-192.168.60.9.55659-69.171.250.63.443.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/23-mvfst-02-192.168.137.141.50006-31.13.77.17.443.pcap b/test/lpi_plus/test_pcap/mixed_pcap/23-mvfst-02-192.168.137.141.50006-31.13.77.17.443.pcap
new file mode 100644
index 0000000..9b88cc0
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/23-mvfst-02-192.168.137.141.50006-31.13.77.17.443.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/23-prox-quic-217.76.77.70.33232-173.194.220.105.443.pcap b/test/lpi_plus/test_pcap/mixed_pcap/23-prox-quic-217.76.77.70.33232-173.194.220.105.443.pcap
new file mode 100644
index 0000000..a2efae4
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/23-prox-quic-217.76.77.70.33232-173.194.220.105.443.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/24-ietf-rfc9000-192.168.60.32.59699-64.233.164.84.443.pcap b/test/lpi_plus/test_pcap/mixed_pcap/24-ietf-rfc9000-192.168.60.32.59699-64.233.164.84.443.pcap
new file mode 100644
index 0000000..84097c8
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/24-ietf-rfc9000-192.168.60.32.59699-64.233.164.84.443.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/25-tquic-51-195.12.120.14.41803-173.194.222.101.443.pcap b/test/lpi_plus/test_pcap/mixed_pcap/25-tquic-51-195.12.120.14.41803-173.194.222.101.443.pcap
new file mode 100644
index 0000000..357777c
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/25-tquic-51-195.12.120.14.41803-173.194.222.101.443.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/26-smtp-55426-587-10.130.2.104-67.225.241.247.pcap b/test/lpi_plus/test_pcap/mixed_pcap/26-smtp-55426-587-10.130.2.104-67.225.241.247.pcap
new file mode 100644
index 0000000..9296279
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/26-smtp-55426-587-10.130.2.104-67.225.241.247.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/27-pop-54776-110-196.188.12.179-192.185.31.244.pcap b/test/lpi_plus/test_pcap/mixed_pcap/27-pop-54776-110-196.188.12.179-192.185.31.244.pcap
new file mode 100644
index 0000000..1b36161
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/27-pop-54776-110-196.188.12.179-192.185.31.244.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/28-Bole-IGW-SMTP-57719-26-10.130.13.155-50.87.145.154-2.pcap b/test/lpi_plus/test_pcap/mixed_pcap/28-Bole-IGW-SMTP-57719-26-10.130.13.155-50.87.145.154-2.pcap
new file mode 100644
index 0000000..a8ca249
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/28-Bole-IGW-SMTP-57719-26-10.130.13.155-50.87.145.154-2.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/29-Bole-IGW-SMTP-14636-25-196.189.57.105-68.232.159.216-2.pcap b/test/lpi_plus/test_pcap/mixed_pcap/29-Bole-IGW-SMTP-14636-25-196.189.57.105-68.232.159.216-2.pcap
new file mode 100644
index 0000000..067a8e7
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/29-Bole-IGW-SMTP-14636-25-196.189.57.105-68.232.159.216-2.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/30-Bole-IGW-SMTP-20997-25-196.190.160.6-64.225.54.152.pcap b/test/lpi_plus/test_pcap/mixed_pcap/30-Bole-IGW-SMTP-20997-25-196.190.160.6-64.225.54.152.pcap
new file mode 100644
index 0000000..94942a2
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/30-Bole-IGW-SMTP-20997-25-196.190.160.6-64.225.54.152.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/31-Bole-IGW-POP3-50020-110-196.188.3.8-82.98.178.159.pcap b/test/lpi_plus/test_pcap/mixed_pcap/31-Bole-IGW-POP3-50020-110-196.188.3.8-82.98.178.159.pcap
new file mode 100644
index 0000000..53c8de0
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/31-Bole-IGW-POP3-50020-110-196.188.3.8-82.98.178.159.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/32-Bole-IGW-POP3-53357-110-196.189.0.15-39.156.6.106.pcap b/test/lpi_plus/test_pcap/mixed_pcap/32-Bole-IGW-POP3-53357-110-196.189.0.15-39.156.6.106.pcap
new file mode 100644
index 0000000..93a1b66
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/32-Bole-IGW-POP3-53357-110-196.189.0.15-39.156.6.106.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/33-Bole-IGW-IMAP-36734-143-196.189.5.89-101.32.113.90.pcap b/test/lpi_plus/test_pcap/mixed_pcap/33-Bole-IGW-IMAP-36734-143-196.189.5.89-101.32.113.90.pcap
new file mode 100644
index 0000000..b75137f
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/33-Bole-IGW-IMAP-36734-143-196.189.5.89-101.32.113.90.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/34-Bole-IGW-IMAP-50415-143-196.188.28.149-69.195.110.51.pcap b/test/lpi_plus/test_pcap/mixed_pcap/34-Bole-IGW-IMAP-50415-143-196.188.28.149-69.195.110.51.pcap
new file mode 100644
index 0000000..ff45c81
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/34-Bole-IGW-IMAP-50415-143-196.188.28.149-69.195.110.51.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/35-Bole-IGW-SMTP-587-1440-587-196.189.45.189-40.101.92.178.pcap b/test/lpi_plus/test_pcap/mixed_pcap/35-Bole-IGW-SMTP-587-1440-587-196.189.45.189-40.101.92.178.pcap
new file mode 100644
index 0000000..f507751
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/35-Bole-IGW-SMTP-587-1440-587-196.189.45.189-40.101.92.178.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/36-Bole-IGW-SMTP-587-37943-587-196.191.120.240-81.19.77.166.pcap b/test/lpi_plus/test_pcap/mixed_pcap/36-Bole-IGW-SMTP-587-37943-587-196.191.120.240-81.19.77.166.pcap
new file mode 100644
index 0000000..0975e5a
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/36-Bole-IGW-SMTP-587-37943-587-196.191.120.240-81.19.77.166.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/37-dns-response-4029-53-115.24.235.11-8.210.152.150.pcap b/test/lpi_plus/test_pcap/mixed_pcap/37-dns-response-4029-53-115.24.235.11-8.210.152.150.pcap
new file mode 100644
index 0000000..d899c17
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/37-dns-response-4029-53-115.24.235.11-8.210.152.150.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/38-stun-dtls.pcap b/test/lpi_plus/test_pcap/mixed_pcap/38-stun-dtls.pcap
new file mode 100644
index 0000000..1b2a8b7
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/38-stun-dtls.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/mixed_pcap/39-pop3-mistake-redis.pcap b/test/lpi_plus/test_pcap/mixed_pcap/39-pop3-mistake-redis.pcap
new file mode 100644
index 0000000..c866867
--- /dev/null
+++ b/test/lpi_plus/test_pcap/mixed_pcap/39-pop3-mistake-redis.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/openvpn_pcap/01-openvpn-udp-port-1198-first.pcap b/test/lpi_plus/test_pcap/openvpn_pcap/01-openvpn-udp-port-1198-first.pcap
new file mode 100644
index 0000000..61b4ec5
--- /dev/null
+++ b/test/lpi_plus/test_pcap/openvpn_pcap/01-openvpn-udp-port-1198-first.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/openvpn_pcap/02-openvpn-nDPI.pcap b/test/lpi_plus/test_pcap/openvpn_pcap/02-openvpn-nDPI.pcap
new file mode 100644
index 0000000..9ae8351
--- /dev/null
+++ b/test/lpi_plus/test_pcap/openvpn_pcap/02-openvpn-nDPI.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/openvpn_pcap/03-openvpn_onestream.pcap b/test/lpi_plus/test_pcap/openvpn_pcap/03-openvpn_onestream.pcap
new file mode 100644
index 0000000..3a3519e
--- /dev/null
+++ b/test/lpi_plus/test_pcap/openvpn_pcap/03-openvpn_onestream.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/openvpn_pcap/04-openvpn-udp-63111.pcap b/test/lpi_plus/test_pcap/openvpn_pcap/04-openvpn-udp-63111.pcap
new file mode 100644
index 0000000..c185c52
--- /dev/null
+++ b/test/lpi_plus/test_pcap/openvpn_pcap/04-openvpn-udp-63111.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/openvpn_pcap/05-openvpn-udp-34400.pcap b/test/lpi_plus/test_pcap/openvpn_pcap/05-openvpn-udp-34400.pcap
new file mode 100644
index 0000000..3a3519e
--- /dev/null
+++ b/test/lpi_plus/test_pcap/openvpn_pcap/05-openvpn-udp-34400.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/openvpn_pcap/06-openvpn-udp-40914.pcap b/test/lpi_plus/test_pcap/openvpn_pcap/06-openvpn-udp-40914.pcap
new file mode 100644
index 0000000..36853be
--- /dev/null
+++ b/test/lpi_plus/test_pcap/openvpn_pcap/06-openvpn-udp-40914.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/openvpn_pcap/07-openvpn.tcp.pcap b/test/lpi_plus/test_pcap/openvpn_pcap/07-openvpn.tcp.pcap
new file mode 100644
index 0000000..fa0b75a
--- /dev/null
+++ b/test/lpi_plus/test_pcap/openvpn_pcap/07-openvpn.tcp.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/openvpn_pcap/08-ovpntcp_hmac.pcap b/test/lpi_plus/test_pcap/openvpn_pcap/08-ovpntcp_hmac.pcap
new file mode 100644
index 0000000..aed2c38
--- /dev/null
+++ b/test/lpi_plus/test_pcap/openvpn_pcap/08-ovpntcp_hmac.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/openvpn_pcap/09-ovpntcp_nohmac.pcap b/test/lpi_plus/test_pcap/openvpn_pcap/09-ovpntcp_nohmac.pcap
new file mode 100644
index 0000000..7f48bce
--- /dev/null
+++ b/test/lpi_plus/test_pcap/openvpn_pcap/09-ovpntcp_nohmac.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/openvpn_pcap/10-openvpn-udp-49941.pcap b/test/lpi_plus/test_pcap/openvpn_pcap/10-openvpn-udp-49941.pcap
new file mode 100644
index 0000000..9865847
--- /dev/null
+++ b/test/lpi_plus/test_pcap/openvpn_pcap/10-openvpn-udp-49941.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/openvpn_pcap/11-ipv6_openvpn.pcap b/test/lpi_plus/test_pcap/openvpn_pcap/11-ipv6_openvpn.pcap
new file mode 100644
index 0000000..015867b
--- /dev/null
+++ b/test/lpi_plus/test_pcap/openvpn_pcap/11-ipv6_openvpn.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/openvpn_pcap/12-quic-openvpn.pcap b/test/lpi_plus/test_pcap/openvpn_pcap/12-quic-openvpn.pcap
new file mode 100644
index 0000000..00c4d40
--- /dev/null
+++ b/test/lpi_plus/test_pcap/openvpn_pcap/12-quic-openvpn.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/ppp_pcap/01-l2tp_netbios.pcap b/test/lpi_plus/test_pcap/ppp_pcap/01-l2tp_netbios.pcap
new file mode 100644
index 0000000..de7803c
--- /dev/null
+++ b/test/lpi_plus/test_pcap/ppp_pcap/01-l2tp_netbios.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/ppp_pcap/02-l2tp-without-l7_protocol-62176-33445-192.168.10.91-220.43.148.189.pcap b/test/lpi_plus/test_pcap/ppp_pcap/02-l2tp-without-l7_protocol-62176-33445-192.168.10.91-220.43.148.189.pcap
new file mode 100755
index 0000000..ae908be
--- /dev/null
+++ b/test/lpi_plus/test_pcap/ppp_pcap/02-l2tp-without-l7_protocol-62176-33445-192.168.10.91-220.43.148.189.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/ppp_pcap/03-l2tp_http.pcap b/test/lpi_plus/test_pcap/ppp_pcap/03-l2tp_http.pcap
new file mode 100755
index 0000000..066f523
--- /dev/null
+++ b/test/lpi_plus/test_pcap/ppp_pcap/03-l2tp_http.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/ppp_pcap/04-l2tp_ctrl_data_full.pcap b/test/lpi_plus/test_pcap/ppp_pcap/04-l2tp_ctrl_data_full.pcap
new file mode 100755
index 0000000..9d824a1
--- /dev/null
+++ b/test/lpi_plus/test_pcap/ppp_pcap/04-l2tp_ctrl_data_full.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/ppp_pcap/05-pptp_encrypt.pcap b/test/lpi_plus/test_pcap/ppp_pcap/05-pptp_encrypt.pcap
new file mode 100755
index 0000000..cf2cdd8
--- /dev/null
+++ b/test/lpi_plus/test_pcap/ppp_pcap/05-pptp_encrypt.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/ppp_pcap/06-pptp_http.pcap b/test/lpi_plus/test_pcap/ppp_pcap/06-pptp_http.pcap
new file mode 100755
index 0000000..9203ed0
--- /dev/null
+++ b/test/lpi_plus/test_pcap/ppp_pcap/06-pptp_http.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/socks_pcap/1-socks45-http-example.pcap b/test/lpi_plus/test_pcap/socks_pcap/1-socks45-http-example.pcap
new file mode 100644
index 0000000..1b82f60
--- /dev/null
+++ b/test/lpi_plus/test_pcap/socks_pcap/1-socks45-http-example.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/socks_pcap/10-socks5-http-302-frag.pcap b/test/lpi_plus/test_pcap/socks_pcap/10-socks5-http-302-frag.pcap
new file mode 100644
index 0000000..58690a7
--- /dev/null
+++ b/test/lpi_plus/test_pcap/socks_pcap/10-socks5-http-302-frag.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/socks_pcap/11-socks5-http-302.pcap b/test/lpi_plus/test_pcap/socks_pcap/11-socks5-http-302.pcap
new file mode 100644
index 0000000..cf0ece9
--- /dev/null
+++ b/test/lpi_plus/test_pcap/socks_pcap/11-socks5-http-302.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/socks_pcap/12-socks5-rdp.pcap b/test/lpi_plus/test_pcap/socks_pcap/12-socks5-rdp.pcap
new file mode 100644
index 0000000..8c8e632
--- /dev/null
+++ b/test/lpi_plus/test_pcap/socks_pcap/12-socks5-rdp.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/socks_pcap/13-socks5-reverse.pcap b/test/lpi_plus/test_pcap/socks_pcap/13-socks5-reverse.pcap
new file mode 100644
index 0000000..81b0d8a
--- /dev/null
+++ b/test/lpi_plus/test_pcap/socks_pcap/13-socks5-reverse.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/socks_pcap/14-socks5-smtp-503.pcap b/test/lpi_plus/test_pcap/socks_pcap/14-socks5-smtp-503.pcap
new file mode 100644
index 0000000..13bafd9
--- /dev/null
+++ b/test/lpi_plus/test_pcap/socks_pcap/14-socks5-smtp-503.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/socks_pcap/15-socks-http-pass.pcap b/test/lpi_plus/test_pcap/socks_pcap/15-socks-http-pass.pcap
new file mode 100644
index 0000000..a99cb60
--- /dev/null
+++ b/test/lpi_plus/test_pcap/socks_pcap/15-socks-http-pass.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/socks_pcap/16-socks-https-example.pcap b/test/lpi_plus/test_pcap/socks_pcap/16-socks-https-example.pcap
new file mode 100644
index 0000000..8cb982c
--- /dev/null
+++ b/test/lpi_plus/test_pcap/socks_pcap/16-socks-https-example.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/socks_pcap/2-socks5_ftp.pcap b/test/lpi_plus/test_pcap/socks_pcap/2-socks5_ftp.pcap
new file mode 100644
index 0000000..6e270f7
--- /dev/null
+++ b/test/lpi_plus/test_pcap/socks_pcap/2-socks5_ftp.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/socks_pcap/3-POP3_Sock5_subject.pcap b/test/lpi_plus/test_pcap/socks_pcap/3-POP3_Sock5_subject.pcap
new file mode 100644
index 0000000..38caab7
--- /dev/null
+++ b/test/lpi_plus/test_pcap/socks_pcap/3-POP3_Sock5_subject.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/socks_pcap/4-SMTP_Sock5_subject.pcap b/test/lpi_plus/test_pcap/socks_pcap/4-SMTP_Sock5_subject.pcap
new file mode 100644
index 0000000..ce5e53f
--- /dev/null
+++ b/test/lpi_plus/test_pcap/socks_pcap/4-SMTP_Sock5_subject.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/socks_pcap/5-T3-HTTP-URL-SOCKS5.pcap b/test/lpi_plus/test_pcap/socks_pcap/5-T3-HTTP-URL-SOCKS5.pcap
new file mode 100644
index 0000000..4f8812a
--- /dev/null
+++ b/test/lpi_plus/test_pcap/socks_pcap/5-T3-HTTP-URL-SOCKS5.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/socks_pcap/6-T7-HTTP-CONT-SOCKS5.pcap b/test/lpi_plus/test_pcap/socks_pcap/6-T7-HTTP-CONT-SOCKS5.pcap
new file mode 100644
index 0000000..737aac0
--- /dev/null
+++ b/test/lpi_plus/test_pcap/socks_pcap/6-T7-HTTP-CONT-SOCKS5.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/socks_pcap/7-T86-FTP-URL-PORT-BIN-SOCKS5.pcap b/test/lpi_plus/test_pcap/socks_pcap/7-T86-FTP-URL-PORT-BIN-SOCKS5.pcap
new file mode 100644
index 0000000..30b7f69
--- /dev/null
+++ b/test/lpi_plus/test_pcap/socks_pcap/7-T86-FTP-URL-PORT-BIN-SOCKS5.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/socks_pcap/8-socks4_http.pcap b/test/lpi_plus/test_pcap/socks_pcap/8-socks4_http.pcap
new file mode 100644
index 0000000..85ca607
--- /dev/null
+++ b/test/lpi_plus/test_pcap/socks_pcap/8-socks4_http.pcap
Binary files differ
diff --git a/test/lpi_plus/test_pcap/socks_pcap/9-socks4-https.pcap b/test/lpi_plus/test_pcap/socks_pcap/9-socks4-https.pcap
new file mode 100644
index 0000000..851028b
--- /dev/null
+++ b/test/lpi_plus/test_pcap/socks_pcap/9-socks4-https.pcap
Binary files differ