From 9e07a57566cc45bf92a845d8cee968d72e0f314e Mon Sep 17 00:00:00 2001 From: Toni Uhlig Date: Wed, 15 Dec 2021 23:25:32 +0100 Subject: Major nDPId extension. Sorry for the huge commit. - nDPId: fixed invalid IP4/IP6 tuple compare - nDPIsrvd: fixed caching issue (finally) - added tiny c example (can be used to check flow manager sanity) - c-captured: use flow_last_seen timestamp from `struct nDPIsrvd_flow` - README.md update: added example JSON sequence - nDPId: added new flow event `update` necessary for correct timeout handling (and other future use-cases) - nDPIsrvd.h and nDPIsrvd.py: switched to an instance (consists of an alias/source tuple) based flow manager - every flow related event **must** now serialize `alias`, `source`, `flow_id`, `flow_last_seen` and `flow_idle_time` to make the timeout handling and verification process work correctly - nDPIsrvd.h: ability to profile any dynamic memory (de-)allocation - nDPIsrvd.py: removed PcapPacket class (unused) - py-flow-dashboard and py-flow-multiprocess: fixed race condition - py-flow-info: print statusbar with probably useful information - nDPId/nDPIsrvd.h: switched from packet-flow only timestamps (`pkt_*sec`) to a generic flow event timestamp `ts_msec` - nDPId-test: added additional checks - nDPId: increased ICMP flow timeout - nDPId: using event based i/o if capturing packets from a device - nDPIsrvd: fixed memory leak on shutdown if remote descriptors were still connected Signed-off-by: Toni Uhlig --- schema/daemon_event_schema.json | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) (limited to 'schema/daemon_event_schema.json') diff --git a/schema/daemon_event_schema.json b/schema/daemon_event_schema.json index a22e57f61..72b0b61a2 100644 --- a/schema/daemon_event_schema.json +++ b/schema/daemon_event_schema.json @@ -8,6 +8,18 @@ "daemon_event_id", "daemon_event_name" ], + "if": { + "properties": { "daemon_event_name": { "const": "init" } } + }, + "then": { + "required": [ "max-flows-per-thread", "max-idle-flows-per-thread", "tick-resolution", "reader-thread-count", "flow-scan-interval", "generic-max-idle-time", "icmp-max-idle-time", "udp-max-idle-time", "tcp-max-idle-time", "max-packets-per-flow-to-send", "max-packets-per-flow-to-process" ] + }, + "if": { + "properties": { "daemon_event_name": { "const": "shutdown" } } + }, + "then": { + "required": [ "total-events-serialized" ] + }, "properties": { "alias": { "type": "string" @@ -50,7 +62,7 @@ "reader-thread-count": { "type": "number" }, - "idle-scan-period": { + "flow-scan-interval": { "type": "number" }, "generic-max-idle-time": { @@ -65,14 +77,15 @@ "tcp-max-idle-time": { "type": "number" }, - "tcp-max-post-end-flow-time": { - "type": "number" - }, "max-packets-per-flow-to-process": { "type": "number" }, "max-packets-per-flow-to-send": { "type": "number" + }, + "total-events-serialized": { + "type": "number", + "minimum": 1 } }, "additionalProperties": false -- cgit v1.2.3