Rework flow breed (#2926)

Right now, there is, in essence, a static mapping between flow protocols
and flow breeds.
Make it dynamic: allow to have different flows, with the same
classification but differents breeds. This is the same logic that we
already have for categories....

Preliminary work to support breed in category lists.

API change from the app POV: to get the flow breed don't use anymore
`ndpi_get_proto_breed()`, but access directly `struct ndpi_proto->breed`

The functions `ndpi_domain_classify_*()` and
`ndpi_get_host_domain_suffix()` now have a `u_int32_t` parameter as
`class_id` (instead of `u_int_16_t`), with the following logic:
```
class_id = (breed << 16) | category
```
instead of the old:
```
class_id = category
```
Please note that this change is back-compatible: if you are not
interested into breeds, you don't need to update the application code.
This commit is contained in:
Ivan Nardi 2025-09-02 16:54:34 +02:00 committed by GitHub
parent 8640bd6d76
commit efccc7d5e4
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
98 changed files with 849 additions and 718 deletions

View file

@ -39,11 +39,11 @@ WSD 41 39162 4
LLMNR 10 770 6
NAT-PMP 4 176 4
Unrated 298 19232 86
Safe 21 4395 1
Acceptable 184 57460 38
Potentially_Dangerous 3374 495188 634
Dangerous 5 1215 1
Unrated 298 19232 86
Unspecified 298 19232 86
Media 21 10027 2