nDPI/example
Ivan Nardi 5bb5bec477
Remove struct ndpi_id_struct (#1427)
Remove the last uses of `struct ndpi_id_struct`.
That code is not really used and it has not been updated for a very long
time: see #1279 for details.

Correlation among flows is achieved via LRU caches.

This change allows to further reduce memory consumption (see also
91bb77a8).

At nDPI 4.0 (more precisly, at a6b10cf, because memory stats
were wrong until that commit):
```
nDPI Memory statistics:
	nDPI Memory (once):      221.15 KB
	Flow Memory (per flow):  2.94 KB
```
Now:
```
nDPI Memory statistics:
	nDPI Memory (once):      235.27 KB
	Flow Memory (per flow):  688 B        <--------
```
i.e. memory usage per flow has been reduced by 77%.

Close #1279
2022-01-30 19:18:12 +01:00
..
MacOS Fix the Xcode project 2019-05-15 09:56:10 +08:00
categories.txt Add categories test PCAP 2019-09-27 10:15:20 +02:00
ja3_fingerprints.csv Added NDPI_MALICIOUS_JA3 flow risk 2021-02-22 23:19:23 +01:00
Makefile.dpdk.in Improved libm check via Autoconf. (#1263) 2021-07-28 22:24:03 +02:00
Makefile.in build: respect environment options more (#1392) 2022-01-18 14:30:14 +01:00
mining_hosts.txt Implemented custom category loading. 2018-04-26 21:10:59 +02:00
ndpi2timeline.py Implemented nDPI timeline visualizer 2019-12-15 23:35:43 +01:00
ndpiReader.c Remove struct ndpi_id_struct (#1427) 2022-01-30 19:18:12 +01:00
ndpiSimpleIntegration.c Remove struct ndpi_id_struct (#1427) 2022-01-30 19:18:12 +01:00
protos.txt Adds some risk exceptions for popular services and domain names 2022-01-17 09:00:25 +01:00
reader_util.c Remove struct ndpi_id_struct (#1427) 2022-01-30 19:18:12 +01:00
reader_util.h Make some protocols more "big-endian" friendly (#1402) 2022-01-29 09:18:32 +01:00
README.DPDK Added DPDK support to ndpiReader 2018-11-10 16:10:22 +01:00
risky_domains.txt Added risky domain flow-risk support 2021-02-21 21:45:46 +01:00
sha1_fingerprints.csv Added NDPI_MALICIOUS_SHA1 flow risk. (#1142) 2021-02-26 17:00:05 +01:00

Prerequisites
-------------

You need to install and compile DPDK in your HOME directory as explained in
See http://core.dpdk.org/doc/quick-start/ for DPDK installation and setup

Once DPDK is built make sure to create a symbolic link

$ cd
$ ln -s dpdk-18.08 DPDK

so the build process will use the DPDK directory letting you have multiple
DPDK versions available on your system


Build
-----
Everything will happen automagically but if you want to do it by hand
do: make -f Makefile.dpdk


Run Application
---------------
Supposing to capture packets from device eno1 you can start the
application as follows:

sudo ./build/ndpiReader -c 1 --vdev=net_pcap0,iface=eno1 -- -v 1

NOTE:
- ndpiReader without DPDK support sits in this directory
- ndpiReader with DPDK support can be found inside the ./build directory