aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/include/ndpi_private.h1
-rw-r--r--src/include/ndpi_protocol_ids.h1
-rw-r--r--src/lib/ndpi_main.c17
-rw-r--r--src/lib/protocols/cip.c73
-rw-r--r--tests/cfgs/caches_cfg/result/teams.pcap.out2
-rw-r--r--tests/cfgs/default/pcap/cip_io.pcapbin0 -> 384 bytes
-rw-r--r--tests/cfgs/default/result/1kxun.pcap.out2
-rw-r--r--tests/cfgs/default/result/4in4tunnel.pcap.out2
-rw-r--r--tests/cfgs/default/result/6in6tunnel.pcap.out2
-rw-r--r--tests/cfgs/default/result/EAQ.pcap.out2
-rw-r--r--tests/cfgs/default/result/FAX-Call-t38-CA-TDM-SIP-FB-1.pcap.out2
-rw-r--r--tests/cfgs/default/result/KakaoTalk_talk.pcap.out2
-rw-r--r--tests/cfgs/default/result/anyconnect-vpn.pcap.out2
-rw-r--r--tests/cfgs/default/result/collectd.pcap.out2
-rw-r--r--tests/cfgs/default/result/custom_rules_ipv6.pcapng.out2
-rw-r--r--tests/cfgs/default/result/custom_rules_same-ip_multiple_ports.pcapng.out4
-rw-r--r--tests/cfgs/default/result/dhcp-fuzz.pcapng.out2
-rw-r--r--tests/cfgs/default/result/discord.pcap.out2
-rw-r--r--tests/cfgs/default/result/discord_mid_flow.pcap.out2
-rw-r--r--tests/cfgs/default/result/dnscrypt-v1-and-resolver-pings.pcap.out2
-rw-r--r--tests/cfgs/default/result/dnscrypt-v2.pcap.out2
-rw-r--r--tests/cfgs/default/result/dnscrypt_skype_false_positive.pcapng.out2
-rw-r--r--tests/cfgs/default/result/epicgames.pcapng.out2
-rw-r--r--tests/cfgs/default/result/fuzz-2006-06-26-2594.pcap.out2
-rw-r--r--tests/cfgs/default/result/fuzz-2020-02-16-11740.pcap.out2
-rw-r--r--tests/cfgs/default/result/gnutella.pcap.out2
-rw-r--r--tests/cfgs/default/result/gtp_false_positive.pcapng.out2
-rw-r--r--tests/cfgs/default/result/h323.pcap.out2
-rw-r--r--tests/cfgs/default/result/http_ipv6.pcap.out2
-rw-r--r--tests/cfgs/default/result/imo.pcap.out2
-rw-r--r--tests/cfgs/default/result/instagram.pcap.out2
-rw-r--r--tests/cfgs/default/result/iphone.pcap.out2
-rw-r--r--tests/cfgs/default/result/ipv6_in_gtp.pcap.out2
-rw-r--r--tests/cfgs/default/result/kontiki.pcap.out2
-rw-r--r--tests/cfgs/default/result/linecall_falsepositve.pcap.out2
-rw-r--r--tests/cfgs/default/result/lru_ipv6_caches.pcapng.out2
-rw-r--r--tests/cfgs/default/result/mullvad_wireguard.pcap.out2
-rw-r--r--tests/cfgs/default/result/mumble.pcapng.out2
-rw-r--r--tests/cfgs/default/result/nintendo.pcap.out2
-rw-r--r--tests/cfgs/default/result/openvpn-tlscrypt.pcap.out2
-rw-r--r--tests/cfgs/default/result/openvpn.pcap.out2
-rw-r--r--tests/cfgs/default/result/openvpn_nohmac.pcapng.out2
-rw-r--r--tests/cfgs/default/result/ossfuzz_seed_fake_traces_1.pcapng.out2
-rw-r--r--tests/cfgs/default/result/ossfuzz_seed_fake_traces_2.pcapng.out2
-rw-r--r--tests/cfgs/default/result/ossfuzz_seed_fake_traces_4.pcapng.out2
-rw-r--r--tests/cfgs/default/result/pps.pcap.out2
-rw-r--r--tests/cfgs/default/result/protonvpn.pcap.out2
-rw-r--r--tests/cfgs/default/result/quic.pcap.out2
-rw-r--r--tests/cfgs/default/result/quic_0RTT.pcap.out2
-rw-r--r--tests/cfgs/default/result/raknet.pcap.out2
-rw-r--r--tests/cfgs/default/result/rdp2.pcap.out2
-rw-r--r--tests/cfgs/default/result/rtp.pcapng.out2
-rw-r--r--tests/cfgs/default/result/rx.pcap.out2
-rw-r--r--tests/cfgs/default/result/sflow.pcap.out2
-rw-r--r--tests/cfgs/default/result/sip.pcap.out2
-rw-r--r--tests/cfgs/default/result/sip_hello.pcapng.out2
-rw-r--r--tests/cfgs/default/result/skinny.pcap.out2
-rw-r--r--tests/cfgs/default/result/skype_udp.pcap.out2
-rw-r--r--tests/cfgs/default/result/softether.pcap.out2
-rw-r--r--tests/cfgs/default/result/starcraft_battle.pcap.out2
-rw-r--r--tests/cfgs/default/result/synscan.pcap.out4
-rw-r--r--tests/cfgs/default/result/teams.pcap.out2
-rw-r--r--tests/cfgs/default/result/teamspeak3.pcap.out2
-rw-r--r--tests/cfgs/default/result/teamviewer.pcap.out2
-rw-r--r--tests/cfgs/default/result/telegram.pcap.out2
-rw-r--r--tests/cfgs/default/result/tftp.pcap.out2
-rw-r--r--tests/cfgs/default/result/toca-boca.pcap.out2
-rw-r--r--tests/cfgs/default/result/viber.pcap.out2
-rw-r--r--tests/cfgs/default/result/webex.pcap.out2
-rw-r--r--tests/cfgs/default/result/weibo.pcap.out2
-rw-r--r--tests/cfgs/default/result/wireguard.pcap.out2
-rw-r--r--tests/cfgs/default/result/zoom.pcap.out2
-rw-r--r--tests/cfgs/default/result/zoom_p2p.pcapng.out2
-rw-r--r--tests/cfgs/disable_protocols/result/dns_long_domainname.pcap.out2
-rw-r--r--tests/cfgs/disable_protocols/result/quic-mvfst-27.pcapng.out2
-rw-r--r--tests/cfgs/enable_payload_stat/result/1kxun.pcap.out2
-rw-r--r--tests/cfgs/flow_risk_lists_disable/result/protonvpn.pcap.out2
-rw-r--r--tests/cfgs/guessing_disable/result/webex.pcap.out2
-rw-r--r--tests/cfgs/ip_lists_disable/result/1kxun.pcap.out2
-rw-r--r--windows/nDPI.vcxproj1
80 files changed, 164 insertions, 81 deletions
diff --git a/src/include/ndpi_private.h b/src/include/ndpi_private.h
index ecb4dae04..0721f2db1 100644
--- a/src/include/ndpi_private.h
+++ b/src/include/ndpi_private.h
@@ -724,6 +724,7 @@ void init_yojimbo_dissector(struct ndpi_detection_module_struct *ndpi_struct, u_
void init_stomp_dissector(struct ndpi_detection_module_struct *ndpi_struct, u_int32_t *id);
void init_radmin_dissector(struct ndpi_detection_module_struct *ndpi_struct, u_int32_t *id);
void init_raft_dissector(struct ndpi_detection_module_struct *ndpi_struct, u_int32_t *id);
+void init_cip_dissector(struct ndpi_detection_module_struct *ndpi_struct, u_int32_t *id);
#endif
diff --git a/src/include/ndpi_protocol_ids.h b/src/include/ndpi_protocol_ids.h
index d614c5297..1068f1a68 100644
--- a/src/include/ndpi_protocol_ids.h
+++ b/src/include/ndpi_protocol_ids.h
@@ -421,6 +421,7 @@ typedef enum {
NDPI_PROTOCOL_STOMP = 390,
NDPI_PROTOCOL_RADMIN = 391,
NDPI_PROTOCOL_RAFT = 392,
+ NDPI_PROTOCOL_CIP = 393,
#ifdef CUSTOM_NDPI_PROTOCOLS
#include "../../../nDPI-custom/custom_ndpi_protocol_ids.h"
diff --git a/src/lib/ndpi_main.c b/src/lib/ndpi_main.c
index 0ecf3b6a3..c3309e714 100644
--- a/src/lib/ndpi_main.c
+++ b/src/lib/ndpi_main.c
@@ -2139,16 +2139,16 @@ static void ndpi_init_protocol_defaults(struct ndpi_detection_module_struct *ndp
ndpi_build_default_ports(ports_a, 0, 0, 0, 0, 0) /* TCP */,
ndpi_build_default_ports(ports_b, 5050, 0, 0, 0, 0) /* UDP */);
ndpi_set_proto_defaults(ndpi_str, 1 /* cleartext */, 1 /* app proto */, NDPI_PROTOCOL_ACCEPTABLE, NDPI_PROTOCOL_MONERO,
- "Monero", NDPI_PROTOCOL_CATEGORY_CRYPTO_CURRENCY,
- ndpi_build_default_ports(ports_a, 0, 0, 0, 0, 0) /* TCP */,
- ndpi_build_default_ports(ports_b, 0, 0, 0, 0, 0) /* UDP */);
+ "Monero", NDPI_PROTOCOL_CATEGORY_CRYPTO_CURRENCY,
+ ndpi_build_default_ports(ports_a, 0, 0, 0, 0, 0) /* TCP */,
+ ndpi_build_default_ports(ports_b, 0, 0, 0, 0, 0) /* UDP */);
ndpi_set_proto_defaults(ndpi_str, 1 /* cleartext */, 0 /* nw proto */, NDPI_PROTOCOL_ACCEPTABLE, NDPI_PROTOCOL_DCERPC,
"DCERPC", NDPI_PROTOCOL_CATEGORY_RPC,
ndpi_build_default_ports(ports_a, 135, 0, 0, 0, 0) /* TCP */,
ndpi_build_default_ports(ports_b, 135, 0, 0, 0, 0) /* UDP */);
ndpi_set_proto_subprotocols(ndpi_str, NDPI_PROTOCOL_DCERPC,
NDPI_PROTOCOL_PROFINET_IO,
- NDPI_PROTOCOL_MATCHED_BY_CONTENT,
+ NDPI_PROTOCOL_MATCHED_BY_CONTENT,
NDPI_PROTOCOL_NO_MORE_SUBPROTOCOLS);
ndpi_set_proto_defaults(ndpi_str, 1 /* cleartext */, 0 /* nw proto */, NDPI_PROTOCOL_ACCEPTABLE, NDPI_PROTOCOL_PROFINET_IO,
"PROFINET_IO", NDPI_PROTOCOL_CATEGORY_IOT_SCADA,
@@ -2222,6 +2222,10 @@ static void ndpi_init_protocol_defaults(struct ndpi_detection_module_struct *ndp
"Raft", NDPI_PROTOCOL_CATEGORY_NETWORK,
ndpi_build_default_ports(ports_a, 0, 0, 0, 0, 0) /* TCP */,
ndpi_build_default_ports(ports_b, 0, 0, 0, 0, 0) /* UDP */);
+ ndpi_set_proto_defaults(ndpi_str, 1 /* cleartext */, 0 /* nw proto */, NDPI_PROTOCOL_ACCEPTABLE, NDPI_PROTOCOL_CIP,
+ "CIP", NDPI_PROTOCOL_CATEGORY_IOT_SCADA,
+ ndpi_build_default_ports(ports_a, 0, 0, 0, 0, 0) /* TCP */,
+ ndpi_build_default_ports(ports_b, 2222, 0, 0, 0, 0) /* UDP */);
#ifdef CUSTOM_NDPI_PROTOCOLS
#include "../../../nDPI-custom/custom_ndpi_main.c"
@@ -5801,7 +5805,7 @@ static int ndpi_callback_init(struct ndpi_detection_module_struct *ndpi_str) {
/* Protobuf */
init_protobuf_dissector(ndpi_str, &a);
- /* ETHEREUM */
+ /* ETHEREUM */
init_ethereum_dissector(ndpi_str, &a);
/* Precision Time Protocol v2 */
@@ -5891,6 +5895,9 @@ static int ndpi_callback_init(struct ndpi_detection_module_struct *ndpi_str) {
/* Raft */
init_raft_dissector(ndpi_str, &a);
+ /* CIP (Common Industrial Protocol) */
+ init_cip_dissector(ndpi_str, &a);
+
#ifdef CUSTOM_NDPI_PROTOCOLS
#include "../../../nDPI-custom/custom_ndpi_main_init.c"
#endif
diff --git a/src/lib/protocols/cip.c b/src/lib/protocols/cip.c
new file mode 100644
index 000000000..65dbb9a24
--- /dev/null
+++ b/src/lib/protocols/cip.c
@@ -0,0 +1,73 @@
+/*
+ * cip.c
+ *
+ * Copyright (C) 2018-24 - ntop.org
+ *
+ * nDPI is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * nDPI is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with nDPI. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+/* https://en.wikipedia.org/wiki/Common_Industrial_Protocol */
+
+#include "ndpi_protocol_ids.h"
+
+#define NDPI_CURRENT_PROTO NDPI_PROTOCOL_CIP
+
+#define CIP_IO_PORT 2222
+
+#include "ndpi_api.h"
+#include "ndpi_private.h"
+
+static void ndpi_search_cip(struct ndpi_detection_module_struct *ndpi_struct,
+ struct ndpi_flow_struct *flow) {
+ struct ndpi_packet_struct *packet = &ndpi_struct->packet;
+
+ NDPI_LOG_DBG(ndpi_struct, "search cip\n");
+
+ if(packet->udp
+ && (ntohs(packet->udp->source) == CIP_IO_PORT) && (ntohs(packet->udp->dest) == CIP_IO_PORT)
+ && (packet->payload_packet_len >= 12)
+ && (packet->payload_packet_len < 64)
+ && (packet->payload[1] == 0x0)
+ ) {
+ u_int8_t num_items = packet->payload[0], offset = 2;
+
+ while((num_items > 0) && (packet->payload_packet_len > (offset + 4))) {
+ // u_int16_t type_id = *((u_int16_t*)&packet->payload[offset]);
+ u_int16_t lenght = (packet->payload[offset+3] << 8) + packet->payload[offset+2];
+
+ offset += 4 + lenght;
+ }
+
+ if(offset == packet->payload_packet_len) {
+ NDPI_LOG_INFO(ndpi_struct,"found cip\n");
+ ndpi_set_detected_protocol(ndpi_struct, flow, NDPI_PROTOCOL_CIP, NDPI_PROTOCOL_UNKNOWN, NDPI_CONFIDENCE_DPI);
+ }
+ } else {
+ /* TODO add TCP dissection */
+ }
+
+ NDPI_EXCLUDE_PROTO(ndpi_struct, flow);
+}
+
+
+void init_cip_dissector(struct ndpi_detection_module_struct *ndpi_struct, u_int32_t *id) {
+ ndpi_set_bitmask_protocol_detection("CIP", ndpi_struct, *id,
+ NDPI_PROTOCOL_CIP,
+ ndpi_search_cip,
+ NDPI_SELECTION_BITMASK_PROTOCOL_V4_V6_UDP_WITH_PAYLOAD,
+ SAVE_DETECTION_BITMASK_AS_UNKNOWN,
+ ADD_TO_DETECTION_BITMASK);
+ *id += 1;
+}
diff --git a/tests/cfgs/caches_cfg/result/teams.pcap.out b/tests/cfgs/caches_cfg/result/teams.pcap.out
index 6a16cb21c..9ce096c21 100644
--- a/tests/cfgs/caches_cfg/result/teams.pcap.out
+++ b/tests/cfgs/caches_cfg/result/teams.pcap.out
@@ -6,7 +6,7 @@ DPI Packets (other): 1 (1.00 pkts/flow)
Confidence Unknown : 1 (flows)
Confidence Match by port : 2 (flows)
Confidence DPI : 80 (flows)
-Num dissector calls: 529 (6.37 diss/flow)
+Num dissector calls: 530 (6.39 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/9/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/pcap/cip_io.pcap b/tests/cfgs/default/pcap/cip_io.pcap
new file mode 100644
index 000000000..a412f14dc
--- /dev/null
+++ b/tests/cfgs/default/pcap/cip_io.pcap
Binary files differ
diff --git a/tests/cfgs/default/result/1kxun.pcap.out b/tests/cfgs/default/result/1kxun.pcap.out
index bccc4df43..4e03dfcd2 100644
--- a/tests/cfgs/default/result/1kxun.pcap.out
+++ b/tests/cfgs/default/result/1kxun.pcap.out
@@ -5,7 +5,7 @@ DPI Packets (UDP): 120 (1.21 pkts/flow)
Confidence Unknown : 14 (flows)
Confidence Match by port : 6 (flows)
Confidence DPI : 177 (flows)
-Num dissector calls: 4925 (25.00 diss/flow)
+Num dissector calls: 4939 (25.07 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/60/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/4in4tunnel.pcap.out b/tests/cfgs/default/result/4in4tunnel.pcap.out
index 5e79c5235..4979f0f09 100644
--- a/tests/cfgs/default/result/4in4tunnel.pcap.out
+++ b/tests/cfgs/default/result/4in4tunnel.pcap.out
@@ -1,6 +1,6 @@
DPI Packets (UDP): 5 (5.00 pkts/flow)
Confidence Unknown : 1 (flows)
-Num dissector calls: 188 (188.00 diss/flow)
+Num dissector calls: 189 (189.00 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/3/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/6in6tunnel.pcap.out b/tests/cfgs/default/result/6in6tunnel.pcap.out
index 283b83f36..4e9efaa90 100644
--- a/tests/cfgs/default/result/6in6tunnel.pcap.out
+++ b/tests/cfgs/default/result/6in6tunnel.pcap.out
@@ -1,6 +1,6 @@
DPI Packets (UDP): 2 (2.00 pkts/flow)
Confidence Unknown : 1 (flows)
-Num dissector calls: 143 (143.00 diss/flow)
+Num dissector calls: 144 (144.00 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/3/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/EAQ.pcap.out b/tests/cfgs/default/result/EAQ.pcap.out
index 4a9407482..1658f7518 100644
--- a/tests/cfgs/default/result/EAQ.pcap.out
+++ b/tests/cfgs/default/result/EAQ.pcap.out
@@ -1,7 +1,7 @@
DPI Packets (TCP): 12 (6.00 pkts/flow)
DPI Packets (UDP): 116 (4.00 pkts/flow)
Confidence DPI : 31 (flows)
-Num dissector calls: 4836 (156.00 diss/flow)
+Num dissector calls: 4865 (156.94 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/0/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/FAX-Call-t38-CA-TDM-SIP-FB-1.pcap.out b/tests/cfgs/default/result/FAX-Call-t38-CA-TDM-SIP-FB-1.pcap.out
index b98074124..d4db15997 100644
--- a/tests/cfgs/default/result/FAX-Call-t38-CA-TDM-SIP-FB-1.pcap.out
+++ b/tests/cfgs/default/result/FAX-Call-t38-CA-TDM-SIP-FB-1.pcap.out
@@ -1,6 +1,6 @@
DPI Packets (UDP): 7 (1.40 pkts/flow)
Confidence DPI : 5 (flows)
-Num dissector calls: 152 (30.40 diss/flow)
+Num dissector calls: 153 (30.60 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/0/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/KakaoTalk_talk.pcap.out b/tests/cfgs/default/result/KakaoTalk_talk.pcap.out
index 24f6f6225..f261d2cca 100644
--- a/tests/cfgs/default/result/KakaoTalk_talk.pcap.out
+++ b/tests/cfgs/default/result/KakaoTalk_talk.pcap.out
@@ -5,7 +5,7 @@ DPI Packets (UDP): 10 (2.00 pkts/flow)
Confidence Match by port : 8 (flows)
Confidence DPI : 11 (flows)
Confidence Match by IP : 1 (flows)
-Num dissector calls: 1192 (59.60 diss/flow)
+Num dissector calls: 1194 (59.70 diss/flow)
LRU cache ookla: 0/2/0 (insert/search/found)
LRU cache bittorrent: 0/27/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/anyconnect-vpn.pcap.out b/tests/cfgs/default/result/anyconnect-vpn.pcap.out
index e68955e7e..ee83b41ee 100644
--- a/tests/cfgs/default/result/anyconnect-vpn.pcap.out
+++ b/tests/cfgs/default/result/anyconnect-vpn.pcap.out
@@ -6,7 +6,7 @@ DPI Packets (other): 10 (1.00 pkts/flow)
Confidence Unknown : 2 (flows)
Confidence Match by port : 6 (flows)
Confidence DPI : 61 (flows)
-Num dissector calls: 861 (12.48 diss/flow)
+Num dissector calls: 862 (12.49 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/24/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/collectd.pcap.out b/tests/cfgs/default/result/collectd.pcap.out
index 68acb5702..43816ab8e 100644
--- a/tests/cfgs/default/result/collectd.pcap.out
+++ b/tests/cfgs/default/result/collectd.pcap.out
@@ -3,7 +3,7 @@ Guessed flow protos: 3
DPI Packets (UDP): 13 (1.62 pkts/flow)
Confidence Match by port : 3 (flows)
Confidence DPI : 5 (flows)
-Num dissector calls: 455 (56.88 diss/flow)
+Num dissector calls: 458 (57.25 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/9/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/custom_rules_ipv6.pcapng.out b/tests/cfgs/default/result/custom_rules_ipv6.pcapng.out
index 81664f172..e74131e4a 100644
--- a/tests/cfgs/default/result/custom_rules_ipv6.pcapng.out
+++ b/tests/cfgs/default/result/custom_rules_ipv6.pcapng.out
@@ -1,7 +1,7 @@
DPI Packets (UDP): 7 (1.00 pkts/flow)
Confidence Unknown : 1 (flows)
Confidence Match by custom rule: 6 (flows)
-Num dissector calls: 127 (18.14 diss/flow)
+Num dissector calls: 128 (18.29 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/3/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/custom_rules_same-ip_multiple_ports.pcapng.out b/tests/cfgs/default/result/custom_rules_same-ip_multiple_ports.pcapng.out
index 612b04caf..e822e8597 100644
--- a/tests/cfgs/default/result/custom_rules_same-ip_multiple_ports.pcapng.out
+++ b/tests/cfgs/default/result/custom_rules_same-ip_multiple_ports.pcapng.out
@@ -27,6 +27,6 @@ CustomProtocolC 3 222 1
Acceptable 8 592 3
- 1 TCP 192.168.1.245:56866 -> 3.3.3.3:443 [proto: 91.399/TLS.CustomProtocolA][IP: 399/CustomProtocolA][Encrypted][Confidence: Match by custom rule][DPI packets: 1][cat: Web/5][3 pkts/222 bytes -> 0 pkts/0 bytes][Goodput ratio: 0/0][3.05 sec][Risk: ** Unidirectional Traffic **][Risk Score: 10][Risk Info: No server to client traffic][Plen Bins: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
+ 1 TCP 192.168.1.245:56866 -> 3.3.3.3:443 [proto: 91.400/TLS.CustomProtocolA][IP: 400/CustomProtocolA][Encrypted][Confidence: Match by custom rule][DPI packets: 1][cat: Web/5][3 pkts/222 bytes -> 0 pkts/0 bytes][Goodput ratio: 0/0][3.05 sec][Risk: ** Unidirectional Traffic **][Risk Score: 10][Risk Info: No server to client traffic][Plen Bins: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
2 TCP 192.168.1.245:58288 -> 3.3.3.3:446 [proto: 800/CustomProtocolC][IP: 800/CustomProtocolC][ClearText][Confidence: Match by custom rule][DPI packets: 1][3 pkts/222 bytes -> 0 pkts/0 bytes][Goodput ratio: 0/0][3.04 sec][Risk: ** Unidirectional Traffic **][Risk Score: 10][Risk Info: No server to client traffic][Plen Bins: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
- 3 TCP 192.168.1.245:59682 -> 3.3.3.3:444 [proto: 400/CustomProtocolB][IP: 400/CustomProtocolB][ClearText][Confidence: Match by custom rule][DPI packets: 1][2 pkts/148 bytes -> 0 pkts/0 bytes][Goodput ratio: 0/0][1.02 sec][Risk: ** Unidirectional Traffic **][Risk Score: 10][Risk Info: No server to client traffic][Plen Bins: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
+ 3 TCP 192.168.1.245:59682 -> 3.3.3.3:444 [proto: 401/CustomProtocolB][IP: 401/CustomProtocolB][ClearText][Confidence: Match by custom rule][DPI packets: 1][2 pkts/148 bytes -> 0 pkts/0 bytes][Goodput ratio: 0/0][1.02 sec][Risk: ** Unidirectional Traffic **][Risk Score: 10][Risk Info: No server to client traffic][Plen Bins: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
diff --git a/tests/cfgs/default/result/dhcp-fuzz.pcapng.out b/tests/cfgs/default/result/dhcp-fuzz.pcapng.out
index f63f64d1e..e2c48ae6b 100644
--- a/tests/cfgs/default/result/dhcp-fuzz.pcapng.out
+++ b/tests/cfgs/default/result/dhcp-fuzz.pcapng.out
@@ -2,7 +2,7 @@ Guessed flow protos: 1
DPI Packets (UDP): 1 (1.00 pkts/flow)
Confidence Match by port : 1 (flows)
-Num dissector calls: 131 (131.00 diss/flow)
+Num dissector calls: 132 (132.00 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/3/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/discord.pcap.out b/tests/cfgs/default/result/discord.pcap.out
index db445e71b..00cf6e81c 100644
--- a/tests/cfgs/default/result/discord.pcap.out
+++ b/tests/cfgs/default/result/discord.pcap.out
@@ -1,7 +1,7 @@
DPI Packets (TCP): 5 (5.00 pkts/flow)
DPI Packets (UDP): 60 (1.82 pkts/flow)
Confidence DPI : 34 (flows)
-Num dissector calls: 4513 (132.74 diss/flow)
+Num dissector calls: 4540 (133.53 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/0/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/discord_mid_flow.pcap.out b/tests/cfgs/default/result/discord_mid_flow.pcap.out
index ba64d94df..e565586da 100644
--- a/tests/cfgs/default/result/discord_mid_flow.pcap.out
+++ b/tests/cfgs/default/result/discord_mid_flow.pcap.out
@@ -1,6 +1,6 @@
DPI Packets (UDP): 3 (3.00 pkts/flow)
Confidence DPI : 1 (flows)
-Num dissector calls: 162 (162.00 diss/flow)
+Num dissector calls: 163 (163.00 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/0/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/dnscrypt-v1-and-resolver-pings.pcap.out b/tests/cfgs/default/result/dnscrypt-v1-and-resolver-pings.pcap.out
index 7e5bdf864..ca3733ce1 100644
--- a/tests/cfgs/default/result/dnscrypt-v1-and-resolver-pings.pcap.out
+++ b/tests/cfgs/default/result/dnscrypt-v1-and-resolver-pings.pcap.out
@@ -1,6 +1,6 @@
DPI Packets (UDP): 256 (1.04 pkts/flow)
Confidence DPI : 245 (flows)
-Num dissector calls: 20540 (83.84 diss/flow)
+Num dissector calls: 20551 (83.88 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/513/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/dnscrypt-v2.pcap.out b/tests/cfgs/default/result/dnscrypt-v2.pcap.out
index e9caf5912..598f1801a 100644
--- a/tests/cfgs/default/result/dnscrypt-v2.pcap.out
+++ b/tests/cfgs/default/result/dnscrypt-v2.pcap.out
@@ -1,6 +1,6 @@
DPI Packets (UDP): 6 (2.00 pkts/flow)
Confidence DPI : 3 (flows)
-Num dissector calls: 432 (144.00 diss/flow)
+Num dissector calls: 435 (145.00 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/0/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/dnscrypt_skype_false_positive.pcapng.out b/tests/cfgs/default/result/dnscrypt_skype_false_positive.pcapng.out
index 079b07853..4d3cbd158 100644
--- a/tests/cfgs/default/result/dnscrypt_skype_false_positive.pcapng.out
+++ b/tests/cfgs/default/result/dnscrypt_skype_false_positive.pcapng.out
@@ -1,6 +1,6 @@
DPI Packets (UDP): 2 (2.00 pkts/flow)
Confidence DPI : 1 (flows)
-Num dissector calls: 145 (145.00 diss/flow)
+Num dissector calls: 146 (146.00 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/3/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/epicgames.pcapng.out b/tests/cfgs/default/result/epicgames.pcapng.out
index 3b6b60606..4c5ce6410 100644
--- a/tests/cfgs/default/result/epicgames.pcapng.out
+++ b/tests/cfgs/default/result/epicgames.pcapng.out
@@ -1,6 +1,6 @@
DPI Packets (UDP): 12 (3.00 pkts/flow)
Confidence DPI : 4 (flows)
-Num dissector calls: 658 (164.50 diss/flow)
+Num dissector calls: 662 (165.50 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/0/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/fuzz-2006-06-26-2594.pcap.out b/tests/cfgs/default/result/fuzz-2006-06-26-2594.pcap.out
index 3da5b4e95..4cedf490f 100644
--- a/tests/cfgs/default/result/fuzz-2006-06-26-2594.pcap.out
+++ b/tests/cfgs/default/result/fuzz-2006-06-26-2594.pcap.out
@@ -6,7 +6,7 @@ DPI Packets (other): 5 (1.00 pkts/flow)
Confidence Unknown : 34 (flows)
Confidence Match by port : 27 (flows)
Confidence DPI : 190 (flows)
-Num dissector calls: 7135 (28.43 diss/flow)
+Num dissector calls: 7173 (28.58 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/189/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/fuzz-2020-02-16-11740.pcap.out b/tests/cfgs/default/result/fuzz-2020-02-16-11740.pcap.out
index 044d5aa45..165bc7364 100644
--- a/tests/cfgs/default/result/fuzz-2020-02-16-11740.pcap.out
+++ b/tests/cfgs/default/result/fuzz-2020-02-16-11740.pcap.out
@@ -5,7 +5,7 @@ DPI Packets (other): 7 (1.00 pkts/flow)
Confidence Unknown : 19 (flows)
Confidence Match by port : 3 (flows)
Confidence DPI : 55 (flows)
-Num dissector calls: 2157 (28.01 diss/flow)
+Num dissector calls: 2173 (28.22 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/66/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/gnutella.pcap.out b/tests/cfgs/default/result/gnutella.pcap.out
index f39f61c0b..bfa6af468 100644
--- a/tests/cfgs/default/result/gnutella.pcap.out
+++ b/tests/cfgs/default/result/gnutella.pcap.out
@@ -6,7 +6,7 @@ DPI Packets (other): 10 (1.00 pkts/flow)
Confidence Unknown : 389 (flows)
Confidence Match by port : 1 (flows)
Confidence DPI : 370 (flows)
-Num dissector calls: 48091 (63.28 diss/flow)
+Num dissector calls: 48400 (63.68 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/1170/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/gtp_false_positive.pcapng.out b/tests/cfgs/default/result/gtp_false_positive.pcapng.out
index ea1c6ac31..0851500d8 100644
--- a/tests/cfgs/default/result/gtp_false_positive.pcapng.out
+++ b/tests/cfgs/default/result/gtp_false_positive.pcapng.out
@@ -3,7 +3,7 @@ Guessed flow protos: 2
DPI Packets (UDP): 7 (2.33 pkts/flow)
Confidence Unknown : 1 (flows)
Confidence Match by port : 2 (flows)
-Num dissector calls: 452 (150.67 diss/flow)
+Num dissector calls: 455 (151.67 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/9/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/h323.pcap.out b/tests/cfgs/default/result/h323.pcap.out
index 7217739f3..de7bd17ca 100644
--- a/tests/cfgs/default/result/h323.pcap.out
+++ b/tests/cfgs/default/result/h323.pcap.out
@@ -1,7 +1,7 @@
DPI Packets (TCP): 1 (1.00 pkts/flow)
DPI Packets (UDP): 2 (2.00 pkts/flow)
Confidence DPI : 2 (flows)
-Num dissector calls: 133 (66.50 diss/flow)
+Num dissector calls: 134 (67.00 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/0/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/http_ipv6.pcap.out b/tests/cfgs/default/result/http_ipv6.pcap.out
index 071ec13f0..b6897b985 100644
--- a/tests/cfgs/default/result/http_ipv6.pcap.out
+++ b/tests/cfgs/default/result/http_ipv6.pcap.out
@@ -4,7 +4,7 @@ DPI Packets (TCP): 77 (5.92 pkts/flow)
DPI Packets (UDP): 4 (2.00 pkts/flow)
Confidence Match by port : 7 (flows)
Confidence DPI : 8 (flows)
-Num dissector calls: 164 (10.93 diss/flow)
+Num dissector calls: 165 (11.00 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/21/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/imo.pcap.out b/tests/cfgs/default/result/imo.pcap.out
index 49e4e89f4..eedda3f0a 100644
--- a/tests/cfgs/default/result/imo.pcap.out
+++ b/tests/cfgs/default/result/imo.pcap.out
@@ -1,6 +1,6 @@
DPI Packets (UDP): 7 (3.50 pkts/flow)
Confidence DPI : 2 (flows)
-Num dissector calls: 323 (161.50 diss/flow)
+Num dissector calls: 325 (162.50 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/0/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/instagram.pcap.out b/tests/cfgs/default/result/instagram.pcap.out
index 85fe6e17e..bf6d149cd 100644
--- a/tests/cfgs/default/result/instagram.pcap.out
+++ b/tests/cfgs/default/result/instagram.pcap.out
@@ -6,7 +6,7 @@ DPI Packets (other): 1 (1.00 pkts/flow)
Confidence Unknown : 1 (flows)
Confidence Match by port : 7 (flows)
Confidence DPI : 30 (flows)
-Num dissector calls: 1373 (36.13 diss/flow)
+Num dissector calls: 1374 (36.16 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/24/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/iphone.pcap.out b/tests/cfgs/default/result/iphone.pcap.out
index 4b231439b..bb66544d9 100644
--- a/tests/cfgs/default/result/iphone.pcap.out
+++ b/tests/cfgs/default/result/iphone.pcap.out
@@ -5,7 +5,7 @@ DPI Packets (UDP): 55 (1.77 pkts/flow)
DPI Packets (other): 5 (1.00 pkts/flow)
Confidence Match by port : 1 (flows)
Confidence DPI : 50 (flows)
-Num dissector calls: 359 (7.04 diss/flow)
+Num dissector calls: 360 (7.06 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/3/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/ipv6_in_gtp.pcap.out b/tests/cfgs/default/result/ipv6_in_gtp.pcap.out
index d6c231630..be0e140da 100644
--- a/tests/cfgs/default/result/ipv6_in_gtp.pcap.out
+++ b/tests/cfgs/default/result/ipv6_in_gtp.pcap.out
@@ -2,7 +2,7 @@ DPI Packets (UDP): 1 (1.00 pkts/flow)
DPI Packets (other): 1 (1.00 pkts/flow)
Confidence Unknown : 1 (flows)
Confidence DPI : 1 (flows)
-Num dissector calls: 128 (64.00 diss/flow)
+Num dissector calls: 129 (64.50 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/3/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/kontiki.pcap.out b/tests/cfgs/default/result/kontiki.pcap.out
index f4f7b8e8c..38453aab2 100644
--- a/tests/cfgs/default/result/kontiki.pcap.out
+++ b/tests/cfgs/default/result/kontiki.pcap.out
@@ -2,7 +2,7 @@ DPI Packets (UDP): 6 (1.50 pkts/flow)
DPI Packets (other): 4 (1.00 pkts/flow)
Confidence Unknown : 2 (flows)
Confidence DPI : 6 (flows)
-Num dissector calls: 357 (44.62 diss/flow)
+Num dissector calls: 359 (44.88 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/6/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/linecall_falsepositve.pcap.out b/tests/cfgs/default/result/linecall_falsepositve.pcap.out
index 1bc3e2ff7..8dd6baec9 100644
--- a/tests/cfgs/default/result/linecall_falsepositve.pcap.out
+++ b/tests/cfgs/default/result/linecall_falsepositve.pcap.out
@@ -1,6 +1,6 @@
DPI Packets (UDP): 13 (13.00 pkts/flow)
Confidence Unknown : 1 (flows)
-Num dissector calls: 212 (212.00 diss/flow)
+Num dissector calls: 213 (213.00 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/3/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/lru_ipv6_caches.pcapng.out b/tests/cfgs/default/result/lru_ipv6_caches.pcapng.out
index 2def9f8d7..8ec344660 100644
--- a/tests/cfgs/default/result/lru_ipv6_caches.pcapng.out
+++ b/tests/cfgs/default/result/lru_ipv6_caches.pcapng.out
@@ -2,7 +2,7 @@ DPI Packets (TCP): 9 (3.00 pkts/flow)
DPI Packets (UDP): 30 (3.33 pkts/flow)
Confidence DPI (cache) : 4 (flows)
Confidence DPI : 8 (flows)
-Num dissector calls: 642 (53.50 diss/flow)
+Num dissector calls: 644 (53.67 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 25/7/2 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/mullvad_wireguard.pcap.out b/tests/cfgs/default/result/mullvad_wireguard.pcap.out
index 224312fca..ec15368fb 100644
--- a/tests/cfgs/default/result/mullvad_wireguard.pcap.out
+++ b/tests/cfgs/default/result/mullvad_wireguard.pcap.out
@@ -1,6 +1,6 @@
DPI Packets (UDP): 3 (3.00 pkts/flow)
Confidence DPI : 1 (flows)
-Num dissector calls: 149 (149.00 diss/flow)
+Num dissector calls: 150 (150.00 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/0/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/mumble.pcapng.out b/tests/cfgs/default/result/mumble.pcapng.out
index 489db9cc4..3755a3132 100644
--- a/tests/cfgs/default/result/mumble.pcapng.out
+++ b/tests/cfgs/default/result/mumble.pcapng.out
@@ -1,7 +1,7 @@
DPI Packets (TCP): 6 (6.00 pkts/flow)
DPI Packets (UDP): 4 (2.00 pkts/flow)
Confidence DPI : 3 (flows)
-Num dissector calls: 297 (99.00 diss/flow)
+Num dissector calls: 299 (99.67 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/0/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/nintendo.pcap.out b/tests/cfgs/default/result/nintendo.pcap.out
index 37d45c2e8..00cc01ec9 100644
--- a/tests/cfgs/default/result/nintendo.pcap.out
+++ b/tests/cfgs/default/result/nintendo.pcap.out
@@ -6,7 +6,7 @@ DPI Packets (other): 2 (1.00 pkts/flow)
Confidence Match by port : 1 (flows)
Confidence DPI : 15 (flows)
Confidence Match by IP : 5 (flows)
-Num dissector calls: 1319 (62.81 diss/flow)
+Num dissector calls: 1324 (63.05 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/18/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/openvpn-tlscrypt.pcap.out b/tests/cfgs/default/result/openvpn-tlscrypt.pcap.out
index 8e672160f..ed90b5a97 100644
--- a/tests/cfgs/default/result/openvpn-tlscrypt.pcap.out
+++ b/tests/cfgs/default/result/openvpn-tlscrypt.pcap.out
@@ -1,6 +1,6 @@
DPI Packets (UDP): 4 (4.00 pkts/flow)
Confidence DPI : 1 (flows)
-Num dissector calls: 161 (161.00 diss/flow)
+Num dissector calls: 162 (162.00 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/0/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/openvpn.pcap.out b/tests/cfgs/default/result/openvpn.pcap.out
index 169f5df69..41f6f6326 100644
--- a/tests/cfgs/default/result/openvpn.pcap.out
+++ b/tests/cfgs/default/result/openvpn.pcap.out
@@ -1,7 +1,7 @@
DPI Packets (TCP): 24 (8.00 pkts/flow)
DPI Packets (UDP): 15 (3.00 pkts/flow)
Confidence DPI : 8 (flows)
-Num dissector calls: 1291 (161.38 diss/flow)
+Num dissector calls: 1296 (162.00 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/6/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/openvpn_nohmac.pcapng.out b/tests/cfgs/default/result/openvpn_nohmac.pcapng.out
index 2093a80c5..6527dd4c2 100644
--- a/tests/cfgs/default/result/openvpn_nohmac.pcapng.out
+++ b/tests/cfgs/default/result/openvpn_nohmac.pcapng.out
@@ -1,6 +1,6 @@
DPI Packets (UDP): 2 (2.00 pkts/flow)
Confidence DPI : 1 (flows)
-Num dissector calls: 132 (132.00 diss/flow)
+Num dissector calls: 133 (133.00 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/0/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/ossfuzz_seed_fake_traces_1.pcapng.out b/tests/cfgs/default/result/ossfuzz_seed_fake_traces_1.pcapng.out
index dc07496fa..09fb482f2 100644
--- a/tests/cfgs/default/result/ossfuzz_seed_fake_traces_1.pcapng.out
+++ b/tests/cfgs/default/result/ossfuzz_seed_fake_traces_1.pcapng.out
@@ -2,7 +2,7 @@ DPI Packets (TCP): 8 (1.33 pkts/flow)
DPI Packets (UDP): 9 (2.25 pkts/flow)
Confidence Unknown : 1 (flows)
Confidence DPI : 9 (flows)
-Num dissector calls: 776 (77.60 diss/flow)
+Num dissector calls: 779 (77.90 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/6/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/ossfuzz_seed_fake_traces_2.pcapng.out b/tests/cfgs/default/result/ossfuzz_seed_fake_traces_2.pcapng.out
index 90ed730e5..5fd00308d 100644
--- a/tests/cfgs/default/result/ossfuzz_seed_fake_traces_2.pcapng.out
+++ b/tests/cfgs/default/result/ossfuzz_seed_fake_traces_2.pcapng.out
@@ -4,7 +4,7 @@ DPI Packets (TCP): 30 (7.50 pkts/flow)
DPI Packets (UDP): 4 (2.00 pkts/flow)
Confidence Match by port : 1 (flows)
Confidence DPI : 5 (flows)
-Num dissector calls: 944 (157.33 diss/flow)
+Num dissector calls: 946 (157.67 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/3/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/ossfuzz_seed_fake_traces_4.pcapng.out b/tests/cfgs/default/result/ossfuzz_seed_fake_traces_4.pcapng.out
index 81a308fcf..c3cfe848e 100644
--- a/tests/cfgs/default/result/ossfuzz_seed_fake_traces_4.pcapng.out
+++ b/tests/cfgs/default/result/ossfuzz_seed_fake_traces_4.pcapng.out
@@ -1,6 +1,6 @@
DPI Packets (UDP): 2 (2.00 pkts/flow)
Confidence Unknown : 1 (flows)
-Num dissector calls: 145 (145.00 diss/flow)
+Num dissector calls: 146 (146.00 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/3/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/pps.pcap.out b/tests/cfgs/default/result/pps.pcap.out
index 0700598bf..242b139c2 100644
--- a/tests/cfgs/default/result/pps.pcap.out
+++ b/tests/cfgs/default/result/pps.pcap.out
@@ -5,7 +5,7 @@ DPI Packets (UDP): 136 (3.09 pkts/flow)
Confidence Unknown : 29 (flows)
Confidence Match by port : 2 (flows)
Confidence DPI : 76 (flows)
-Num dissector calls: 5969 (55.79 diss/flow)
+Num dissector calls: 5998 (56.06 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/93/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/protonvpn.pcap.out b/tests/cfgs/default/result/protonvpn.pcap.out
index 3724d9834..57f24bdf7 100644
--- a/tests/cfgs/default/result/protonvpn.pcap.out
+++ b/tests/cfgs/default/result/protonvpn.pcap.out
@@ -4,7 +4,7 @@ DPI Packets (TCP): 12 (6.00 pkts/flow)
DPI Packets (UDP): 2 (2.00 pkts/flow)
Confidence Match by port : 1 (flows)
Confidence DPI : 2 (flows)
-Num dissector calls: 145 (48.33 diss/flow)
+Num dissector calls: 146 (48.67 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/6/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/quic.pcap.out b/tests/cfgs/default/result/quic.pcap.out
index 468419f39..7867c45f1 100644
--- a/tests/cfgs/default/result/quic.pcap.out
+++ b/tests/cfgs/default/result/quic.pcap.out
@@ -3,7 +3,7 @@ Guessed flow protos: 1
DPI Packets (UDP): 12 (1.20 pkts/flow)
Confidence Match by port : 1 (flows)
Confidence DPI : 9 (flows)
-Num dissector calls: 228 (22.80 diss/flow)
+Num dissector calls: 229 (22.90 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/3/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/quic_0RTT.pcap.out b/tests/cfgs/default/result/quic_0RTT.pcap.out
index 2cf0bb968..3ab3a938e 100644
--- a/tests/cfgs/default/result/quic_0RTT.pcap.out
+++ b/tests/cfgs/default/result/quic_0RTT.pcap.out
@@ -1,6 +1,6 @@
DPI Packets (UDP): 4 (2.00 pkts/flow)
Confidence DPI : 2 (flows)
-Num dissector calls: 206 (103.00 diss/flow)
+Num dissector calls: 207 (103.50 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/3/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/raknet.pcap.out b/tests/cfgs/default/result/raknet.pcap.out
index a0792b012..99cdf927b 100644
--- a/tests/cfgs/default/result/raknet.pcap.out
+++ b/tests/cfgs/default/result/raknet.pcap.out
@@ -1,6 +1,6 @@
DPI Packets (UDP): 24 (2.00 pkts/flow)
Confidence DPI : 12 (flows)
-Num dissector calls: 1505 (125.42 diss/flow)
+Num dissector calls: 1511 (125.92 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/0/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/rdp2.pcap.out b/tests/cfgs/default/result/rdp2.pcap.out
index 7c8b8f09a..74df00875 100644
--- a/tests/cfgs/default/result/rdp2.pcap.out
+++ b/tests/cfgs/default/result/rdp2.pcap.out
@@ -1,6 +1,6 @@
DPI Packets (UDP): 8 (2.67 pkts/flow)
Confidence DPI : 3 (flows)
-Num dissector calls: 430 (143.33 diss/flow)
+Num dissector calls: 433 (144.33 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/0/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/rtp.pcapng.out b/tests/cfgs/default/result/rtp.pcapng.out
index 1be4e3f5d..a84b08b8a 100644
--- a/tests/cfgs/default/result/rtp.pcapng.out
+++ b/tests/cfgs/default/result/rtp.pcapng.out
@@ -1,6 +1,6 @@
DPI Packets (UDP): 9 (3.00 pkts/flow)
Confidence DPI : 3 (flows)
-Num dissector calls: 458 (152.67 diss/flow)
+Num dissector calls: 461 (153.67 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/0/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/rx.pcap.out b/tests/cfgs/default/result/rx.pcap.out
index cb3395b6c..78b9de6fe 100644
--- a/tests/cfgs/default/result/rx.pcap.out
+++ b/tests/cfgs/default/result/rx.pcap.out
@@ -1,6 +1,6 @@
DPI Packets (UDP): 10 (2.00 pkts/flow)
Confidence DPI : 5 (flows)
-Num dissector calls: 720 (144.00 diss/flow)
+Num dissector calls: 725 (145.00 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/0/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/sflow.pcap.out b/tests/cfgs/default/result/sflow.pcap.out
index d0ec5dc72..1e327fb7b 100644
--- a/tests/cfgs/default/result/sflow.pcap.out
+++ b/tests/cfgs/default/result/sflow.pcap.out
@@ -1,6 +1,6 @@
DPI Packets (UDP): 2 (2.00 pkts/flow)
Confidence DPI : 1 (flows)
-Num dissector calls: 132 (132.00 diss/flow)
+Num dissector calls: 133 (133.00 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/0/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/sip.pcap.out b/tests/cfgs/default/result/sip.pcap.out
index 888298684..6cb6c14d3 100644
--- a/tests/cfgs/default/result/sip.pcap.out
+++ b/tests/cfgs/default/result/sip.pcap.out
@@ -1,6 +1,6 @@
DPI Packets (UDP): 6 (1.50 pkts/flow)
Confidence DPI : 4 (flows)
-Num dissector calls: 205 (51.25 diss/flow)
+Num dissector calls: 206 (51.50 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/0/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/sip_hello.pcapng.out b/tests/cfgs/default/result/sip_hello.pcapng.out
index 4e8b9b336..8562503d6 100644
--- a/tests/cfgs/default/result/sip_hello.pcapng.out
+++ b/tests/cfgs/default/result/sip_hello.pcapng.out
@@ -1,6 +1,6 @@
DPI Packets (UDP): 9 (9.00 pkts/flow)
Confidence DPI : 1 (flows)
-Num dissector calls: 197 (197.00 diss/flow)
+Num dissector calls: 198 (198.00 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/3/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/skinny.pcap.out b/tests/cfgs/default/result/skinny.pcap.out
index 116c93274..61c6dd62f 100644
--- a/tests/cfgs/default/result/skinny.pcap.out
+++ b/tests/cfgs/default/result/skinny.pcap.out
@@ -1,7 +1,7 @@
DPI Packets (TCP): 2 (1.00 pkts/flow)
DPI Packets (UDP): 15 (3.00 pkts/flow)
Confidence DPI : 7 (flows)
-Num dissector calls: 742 (106.00 diss/flow)
+Num dissector calls: 747 (106.71 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/0/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/skype_udp.pcap.out b/tests/cfgs/default/result/skype_udp.pcap.out
index 9f88b8de0..03f52066b 100644
--- a/tests/cfgs/default/result/skype_udp.pcap.out
+++ b/tests/cfgs/default/result/skype_udp.pcap.out
@@ -1,6 +1,6 @@
DPI Packets (UDP): 4 (4.00 pkts/flow)
Confidence DPI : 1 (flows)
-Num dissector calls: 177 (177.00 diss/flow)
+Num dissector calls: 178 (178.00 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/0/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/softether.pcap.out b/tests/cfgs/default/result/softether.pcap.out
index bbd8ddd26..d85742a52 100644
--- a/tests/cfgs/default/result/softether.pcap.out
+++ b/tests/cfgs/default/result/softether.pcap.out
@@ -1,7 +1,7 @@
DPI Packets (TCP): 4 (4.00 pkts/flow)
DPI Packets (UDP): 31 (10.33 pkts/flow)
Confidence DPI : 4 (flows)
-Num dissector calls: 406 (101.50 diss/flow)
+Num dissector calls: 408 (102.00 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/0/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/starcraft_battle.pcap.out b/tests/cfgs/default/result/starcraft_battle.pcap.out
index c5fe5ae2a..1c732358b 100644
--- a/tests/cfgs/default/result/starcraft_battle.pcap.out
+++ b/tests/cfgs/default/result/starcraft_battle.pcap.out
@@ -6,7 +6,7 @@ DPI Packets (other): 1 (1.00 pkts/flow)
Confidence Match by port : 12 (flows)
Confidence DPI : 39 (flows)
Confidence Match by IP : 1 (flows)
-Num dissector calls: 1635 (31.44 diss/flow)
+Num dissector calls: 1640 (31.54 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/39/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/synscan.pcap.out b/tests/cfgs/default/result/synscan.pcap.out
index 771ad7468..9196d6da0 100644
--- a/tests/cfgs/default/result/synscan.pcap.out
+++ b/tests/cfgs/default/result/synscan.pcap.out
@@ -142,7 +142,7 @@ Unrated 1852 107424 1848
46 TCP 172.16.0.8:36050 -> 64.13.134.52:2605 [proto: 13/BGP][IP: 0/Unknown][ClearText][Confidence: Match by port][DPI packets: 1][cat: Network/14][1 pkts/58 bytes -> 0 pkts/0 bytes][Goodput ratio: 0/0][< 1 sec][Risk: ** Unidirectional Traffic **][Risk Score: 10][Risk Info: No server to client traffic][Plen Bins: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
47 TCP 172.16.0.8:36050 -> 64.13.134.52:3000 [proto: 26/ntop][IP: 0/Unknown][ClearText][Confidence: Match by port][DPI packets: 1][cat: Network/14][1 pkts/58 bytes -> 0 pkts/0 bytes][Goodput ratio: 0/0][< 1 sec][Risk: ** Unidirectional Traffic **][Risk Score: 10][Risk Info: No server to client traffic][Plen Bins: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
48 TCP 172.16.0.8:36050 -> 64.13.134.52:3128 [proto: 131/HTTP_Proxy][IP: 0/Unknown][ClearText][Confidence: Match by port][DPI packets: 1][cat: Web/5][1 pkts/58 bytes -> 0 pkts/0 bytes][Goodput ratio: 0/0][< 1 sec][Risk: ** Unidirectional Traffic **][Risk Score: 10][Risk Info: No server to client traffic][Plen Bins: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
- 49 TCP 172.16.0.8:36050 -> 64.13.134.52:3260 [proto: 393/iSCSI][IP: 0/Unknown][ClearText][Confidence: Match by custom rule][DPI packets: 1][1 pkts/58 bytes -> 0 pkts/0 bytes][Goodput ratio: 0/0][< 1 sec][Risk: ** Unidirectional Traffic **][Risk Score: 10][Risk Info: No server to client traffic][Plen Bins: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
+ 49 TCP 172.16.0.8:36050 -> 64.13.134.52:3260 [proto: 394/iSCSI][IP: 0/Unknown][ClearText][Confidence: Match by custom rule][DPI packets: 1][1 pkts/58 bytes -> 0 pkts/0 bytes][Goodput ratio: 0/0][< 1 sec][Risk: ** Unidirectional Traffic **][Risk Score: 10][Risk Info: No server to client traffic][Plen Bins: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
50 TCP 172.16.0.8:36050 -> 64.13.134.52:3300 [proto: 381/Ceph][IP: 0/Unknown][ClearText][Confidence: Match by port][DPI packets: 1][cat: DataTransfer/4][1 pkts/58 bytes -> 0 pkts/0 bytes][Goodput ratio: 0/0][< 1 sec][Risk: ** Unidirectional Traffic **][Risk Score: 10][Risk Info: No server to client traffic][Plen Bins: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
51 TCP 172.16.0.8:36050 -> 64.13.134.52:3306 [proto: 20/MySQL][IP: 0/Unknown][ClearText][Confidence: Match by port][DPI packets: 1][cat: Database/11][1 pkts/58 bytes -> 0 pkts/0 bytes][Goodput ratio: 0/0][< 1 sec][Risk: ** Unidirectional Traffic **][Risk Score: 10][Risk Info: No server to client traffic][Plen Bins: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
52 TCP 172.16.0.8:36050 -> 64.13.134.52:3389 [proto: 88/RDP][IP: 0/Unknown][ClearText][Confidence: Match by port][DPI packets: 1][cat: RemoteAccess/12][1 pkts/58 bytes -> 0 pkts/0 bytes][Goodput ratio: 0/0][< 1 sec][Risk: ** Desktop/File Sharing **** Unidirectional Traffic **][Risk Score: 20][Risk Info: No server to client traffic / Found RDP][Plen Bins: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
@@ -213,7 +213,7 @@ Unrated 1852 107424 1848
117 TCP 172.16.0.8:36051 -> 64.13.134.52:2605 [proto: 13/BGP][IP: 0/Unknown][ClearText][Confidence: Match by port][DPI packets: 1][cat: Network/14][1 pkts/58 bytes -> 0 pkts/0 bytes][Goodput ratio: 0/0][< 1 sec][Risk: ** Unidirectional Traffic **][Risk Score: 10][Risk Info: No server to client traffic][Plen Bins: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
118 TCP 172.16.0.8:36051 -> 64.13.134.52:3000 [proto: 26/ntop][IP: 0/Unknown][ClearText][Confidence: Match by port][DPI packets: 1][cat: Network/14][1 pkts/58 bytes -> 0 pkts/0 bytes][Goodput ratio: 0/0][< 1 sec][Risk: ** Unidirectional Traffic **][Risk Score: 10][Risk Info: No server to client traffic][Plen Bins: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
119 TCP 172.16.0.8:36051 -> 64.13.134.52:3128 [proto: 131/HTTP_Proxy][IP: 0/Unknown][ClearText][Confidence: Match by port][DPI packets: 1][cat: Web/5][1 pkts/58 bytes -> 0 pkts/0 bytes][Goodput ratio: 0/0][< 1 sec][Risk: ** Unidirectional Traffic **][Risk Score: 10][Risk Info: No server to client traffic][Plen Bins: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
- 120 TCP 172.16.0.8:36051 -> 64.13.134.52:3260 [proto: 393/iSCSI][IP: 0/Unknown][ClearText][Confidence: Match by custom rule][DPI packets: 1][1 pkts/58 bytes -> 0 pkts/0 bytes][Goodput ratio: 0/0][< 1 sec][Risk: ** Unidirectional Traffic **][Risk Score: 10][Risk Info: No server to client traffic][Plen Bins: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
+ 120 TCP 172.16.0.8:36051 -> 64.13.134.52:3260 [proto: 394/iSCSI][IP: 0/Unknown][ClearText][Confidence: Match by custom rule][DPI packets: 1][1 pkts/58 bytes -> 0 pkts/0 bytes][Goodput ratio: 0/0][< 1 sec][Risk: ** Unidirectional Traffic **][Risk Score: 10][Risk Info: No server to client traffic][Plen Bins: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
121 TCP 172.16.0.8:36051 -> 64.13.134.52:3300 [proto: 381/Ceph][IP: 0/Unknown][ClearText][Confidence: Match by port][DPI packets: 1][cat: DataTransfer/4][1 pkts/58 bytes -> 0 pkts/0 bytes][Goodput ratio: 0/0][< 1 sec][Risk: ** Unidirectional Traffic **][Risk Score: 10][Risk Info: No server to client traffic][Plen Bins: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
122 TCP 172.16.0.8:36051 -> 64.13.134.52:3306 [proto: 20/MySQL][IP: 0/Unknown][ClearText][Confidence: Match by port][DPI packets: 1][cat: Database/11][1 pkts/58 bytes -> 0 pkts/0 bytes][Goodput ratio: 0/0][< 1 sec][Risk: ** Unidirectional Traffic **][Risk Score: 10][Risk Info: No server to client traffic][Plen Bins: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
123 TCP 172.16.0.8:36051 -> 64.13.134.52:3389 [proto: 88/RDP][IP: 0/Unknown][ClearText][Confidence: Match by port][DPI packets: 1][cat: RemoteAccess/12][1 pkts/58 bytes -> 0 pkts/0 bytes][Goodput ratio: 0/0][< 1 sec][Risk: ** Desktop/File Sharing **** Unidirectional Traffic **][Risk Score: 20][Risk Info: No server to client traffic / Found RDP][Plen Bins: 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
diff --git a/tests/cfgs/default/result/teams.pcap.out b/tests/cfgs/default/result/teams.pcap.out
index 5fca8dfad..31e9aa49c 100644
--- a/tests/cfgs/default/result/teams.pcap.out
+++ b/tests/cfgs/default/result/teams.pcap.out
@@ -7,7 +7,7 @@ Confidence Unknown : 1 (flows)
Confidence Match by port : 2 (flows)
Confidence DPI (partial) : 4 (flows)
Confidence DPI : 76 (flows)
-Num dissector calls: 529 (6.37 diss/flow)
+Num dissector calls: 530 (6.39 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/9/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/teamspeak3.pcap.out b/tests/cfgs/default/result/teamspeak3.pcap.out
index 79833669a..82db83d52 100644
--- a/tests/cfgs/default/result/teamspeak3.pcap.out
+++ b/tests/cfgs/default/result/teamspeak3.pcap.out
@@ -1,6 +1,6 @@
DPI Packets (UDP): 4 (2.00 pkts/flow)
Confidence DPI : 2 (flows)
-Num dissector calls: 213 (106.50 diss/flow)
+Num dissector calls: 214 (107.00 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/0/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/teamviewer.pcap.out b/tests/cfgs/default/result/teamviewer.pcap.out
index 29aa31e5c..8ac26cd36 100644
--- a/tests/cfgs/default/result/teamviewer.pcap.out
+++ b/tests/cfgs/default/result/teamviewer.pcap.out
@@ -1,7 +1,7 @@
DPI Packets (TCP): 4 (4.00 pkts/flow)
DPI Packets (UDP): 4 (4.00 pkts/flow)
Confidence DPI : 2 (flows)
-Num dissector calls: 173 (86.50 diss/flow)
+Num dissector calls: 174 (87.00 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/0/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/telegram.pcap.out b/tests/cfgs/default/result/telegram.pcap.out
index a27162a50..acbcb69aa 100644
--- a/tests/cfgs/default/result/telegram.pcap.out
+++ b/tests/cfgs/default/result/telegram.pcap.out
@@ -1,7 +1,7 @@
DPI Packets (UDP): 82 (1.71 pkts/flow)
Confidence Unknown : 3 (flows)
Confidence DPI : 45 (flows)
-Num dissector calls: 1571 (32.73 diss/flow)
+Num dissector calls: 1574 (32.79 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/9/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/tftp.pcap.out b/tests/cfgs/default/result/tftp.pcap.out
index 293b532fe..32326a880 100644
--- a/tests/cfgs/default/result/tftp.pcap.out
+++ b/tests/cfgs/default/result/tftp.pcap.out
@@ -3,7 +3,7 @@ Guessed flow protos: 2
DPI Packets (UDP): 15 (1.67 pkts/flow)
Confidence Match by port : 2 (flows)
Confidence DPI : 7 (flows)
-Num dissector calls: 645 (71.67 diss/flow)
+Num dissector calls: 649 (72.11 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/6/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/toca-boca.pcap.out b/tests/cfgs/default/result/toca-boca.pcap.out
index bc58cfe5a..b2adc69d4 100644
--- a/tests/cfgs/default/result/toca-boca.pcap.out
+++ b/tests/cfgs/default/result/toca-boca.pcap.out
@@ -3,7 +3,7 @@ Guessed flow protos: 4
DPI Packets (UDP): 21 (1.00 pkts/flow)
Confidence Match by port : 4 (flows)
Confidence DPI : 17 (flows)
-Num dissector calls: 541 (25.76 diss/flow)
+Num dissector calls: 545 (25.95 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/12/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/viber.pcap.out b/tests/cfgs/default/result/viber.pcap.out
index 3b8a4a3a9..4366875f2 100644
--- a/tests/cfgs/default/result/viber.pcap.out
+++ b/tests/cfgs/default/result/viber.pcap.out
@@ -5,7 +5,7 @@ DPI Packets (UDP): 27 (1.93 pkts/flow)
DPI Packets (other): 2 (1.00 pkts/flow)
Confidence Match by port : 4 (flows)
Confidence DPI : 25 (flows)
-Num dissector calls: 459 (15.83 diss/flow)
+Num dissector calls: 460 (15.86 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/12/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/webex.pcap.out b/tests/cfgs/default/result/webex.pcap.out
index 763a12955..15f9e685b 100644
--- a/tests/cfgs/default/result/webex.pcap.out
+++ b/tests/cfgs/default/result/webex.pcap.out
@@ -5,7 +5,7 @@ DPI Packets (UDP): 14 (7.00 pkts/flow)
Confidence Match by port : 3 (flows)
Confidence DPI : 53 (flows)
Confidence Match by IP : 1 (flows)
-Num dissector calls: 283 (4.96 diss/flow)
+Num dissector calls: 284 (4.98 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/12/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/weibo.pcap.out b/tests/cfgs/default/result/weibo.pcap.out
index 88d6e4146..e628152dd 100644
--- a/tests/cfgs/default/result/weibo.pcap.out
+++ b/tests/cfgs/default/result/weibo.pcap.out
@@ -4,7 +4,7 @@ DPI Packets (TCP): 100 (3.33 pkts/flow)
DPI Packets (UDP): 43 (3.07 pkts/flow)
Confidence Match by port : 21 (flows)
Confidence DPI : 23 (flows)
-Num dissector calls: 563 (12.80 diss/flow)
+Num dissector calls: 565 (12.84 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/63/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/wireguard.pcap.out b/tests/cfgs/default/result/wireguard.pcap.out
index 871840eef..a517b400f 100644
--- a/tests/cfgs/default/result/wireguard.pcap.out
+++ b/tests/cfgs/default/result/wireguard.pcap.out
@@ -1,6 +1,6 @@
DPI Packets (UDP): 6 (3.00 pkts/flow)
Confidence DPI : 2 (flows)
-Num dissector calls: 297 (148.50 diss/flow)
+Num dissector calls: 299 (149.50 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/0/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/zoom.pcap.out b/tests/cfgs/default/result/zoom.pcap.out
index bb04161c3..f79603f9c 100644
--- a/tests/cfgs/default/result/zoom.pcap.out
+++ b/tests/cfgs/default/result/zoom.pcap.out
@@ -5,7 +5,7 @@ DPI Packets (UDP): 28 (1.56 pkts/flow)
DPI Packets (other): 2 (1.00 pkts/flow)
Confidence Match by port : 2 (flows)
Confidence DPI : 32 (flows)
-Num dissector calls: 869 (25.56 diss/flow)
+Num dissector calls: 870 (25.59 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/6/0 (insert/search/found)
LRU cache zoom: 7/0/0 (insert/search/found)
diff --git a/tests/cfgs/default/result/zoom_p2p.pcapng.out b/tests/cfgs/default/result/zoom_p2p.pcapng.out
index bf6c8b4f4..cc93321f4 100644
--- a/tests/cfgs/default/result/zoom_p2p.pcapng.out
+++ b/tests/cfgs/default/result/zoom_p2p.pcapng.out
@@ -4,7 +4,7 @@ DPI Packets (UDP): 52 (5.20 pkts/flow)
DPI Packets (other): 2 (1.00 pkts/flow)
Confidence DPI (partial cache): 4 (flows)
Confidence DPI : 8 (flows)
-Num dissector calls: 842 (70.17 diss/flow)
+Num dissector calls: 846 (70.50 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/12/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/disable_protocols/result/dns_long_domainname.pcap.out b/tests/cfgs/disable_protocols/result/dns_long_domainname.pcap.out
index e68ce35af..1916c68b9 100644
--- a/tests/cfgs/disable_protocols/result/dns_long_domainname.pcap.out
+++ b/tests/cfgs/disable_protocols/result/dns_long_domainname.pcap.out
@@ -2,7 +2,7 @@ Guessed flow protos: 1
DPI Packets (UDP): 2 (2.00 pkts/flow)
Confidence Match by IP : 1 (flows)
-Num dissector calls: 144 (144.00 diss/flow)
+Num dissector calls: 145 (145.00 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/3/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/disable_protocols/result/quic-mvfst-27.pcapng.out b/tests/cfgs/disable_protocols/result/quic-mvfst-27.pcapng.out
index b5300fe0a..30e085a19 100644
--- a/tests/cfgs/disable_protocols/result/quic-mvfst-27.pcapng.out
+++ b/tests/cfgs/disable_protocols/result/quic-mvfst-27.pcapng.out
@@ -2,7 +2,7 @@ Guessed flow protos: 1
DPI Packets (UDP): 13 (13.00 pkts/flow)
Confidence Match by IP : 1 (flows)
-Num dissector calls: 198 (198.00 diss/flow)
+Num dissector calls: 199 (199.00 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/3/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/enable_payload_stat/result/1kxun.pcap.out b/tests/cfgs/enable_payload_stat/result/1kxun.pcap.out
index beccb2c17..f4e9f7c1a 100644
--- a/tests/cfgs/enable_payload_stat/result/1kxun.pcap.out
+++ b/tests/cfgs/enable_payload_stat/result/1kxun.pcap.out
@@ -5,7 +5,7 @@ DPI Packets (UDP): 120 (1.21 pkts/flow)
Confidence Unknown : 14 (flows)
Confidence Match by port : 6 (flows)
Confidence DPI : 177 (flows)
-Num dissector calls: 4925 (25.00 diss/flow)
+Num dissector calls: 4939 (25.07 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/60/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/flow_risk_lists_disable/result/protonvpn.pcap.out b/tests/cfgs/flow_risk_lists_disable/result/protonvpn.pcap.out
index 7661b6b26..c55bc9286 100644
--- a/tests/cfgs/flow_risk_lists_disable/result/protonvpn.pcap.out
+++ b/tests/cfgs/flow_risk_lists_disable/result/protonvpn.pcap.out
@@ -4,7 +4,7 @@ DPI Packets (TCP): 12 (6.00 pkts/flow)
DPI Packets (UDP): 2 (2.00 pkts/flow)
Confidence Match by port : 1 (flows)
Confidence DPI : 2 (flows)
-Num dissector calls: 145 (48.33 diss/flow)
+Num dissector calls: 146 (48.67 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/6/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/guessing_disable/result/webex.pcap.out b/tests/cfgs/guessing_disable/result/webex.pcap.out
index 676ee309f..e7da5265a 100644
--- a/tests/cfgs/guessing_disable/result/webex.pcap.out
+++ b/tests/cfgs/guessing_disable/result/webex.pcap.out
@@ -2,7 +2,7 @@ DPI Packets (TCP): 395 (7.18 pkts/flow)
DPI Packets (UDP): 14 (7.00 pkts/flow)
Confidence Unknown : 4 (flows)
Confidence DPI : 53 (flows)
-Num dissector calls: 283 (4.96 diss/flow)
+Num dissector calls: 284 (4.98 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/12/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/tests/cfgs/ip_lists_disable/result/1kxun.pcap.out b/tests/cfgs/ip_lists_disable/result/1kxun.pcap.out
index a96984c29..5ab130690 100644
--- a/tests/cfgs/ip_lists_disable/result/1kxun.pcap.out
+++ b/tests/cfgs/ip_lists_disable/result/1kxun.pcap.out
@@ -5,7 +5,7 @@ DPI Packets (UDP): 120 (1.21 pkts/flow)
Confidence Unknown : 14 (flows)
Confidence Match by port : 6 (flows)
Confidence DPI : 177 (flows)
-Num dissector calls: 4925 (25.00 diss/flow)
+Num dissector calls: 4939 (25.07 diss/flow)
LRU cache ookla: 0/0/0 (insert/search/found)
LRU cache bittorrent: 0/60/0 (insert/search/found)
LRU cache zoom: 0/0/0 (insert/search/found)
diff --git a/windows/nDPI.vcxproj b/windows/nDPI.vcxproj
index c6f333019..d7022a7db 100644
--- a/windows/nDPI.vcxproj
+++ b/windows/nDPI.vcxproj
@@ -221,6 +221,7 @@
<ClCompile Include="..\src\lib\protocols\bittorrent.c" />
<ClCompile Include="..\src\lib\protocols\ciscovpn.c" />
<ClCompile Include="..\src\lib\protocols\citrix.c" />
+ <ClCompile Include="..\src\lib\protocols\cip.c" />
<ClCompile Include="..\src\lib\protocols\coap.c" />
<ClCompile Include="..\src\lib\protocols\corba.c" />
<ClCompile Include="..\src\lib\protocols\crossfire.c" />