Commit graph

60 commits

Author SHA1 Message Date
Luca Deri
57e6a93065 Improved scheduling algorithm to guarantee minimum service time when number of entries allow
Updated (C)
2020-01-06 23:36:36 +01:00
emanuele-f
d3b9f22b0a Add missing ARP matrix entries purging
This resulted in the ARP matrix hash growing as idle entries were not purged.

Fixes #3152
2019-12-31 12:32:21 +01:00
Simone Mainardi
2d33f550b2 Implements progress bars to express hash tables usage and entries by state
Implements #3042
2019-11-18 17:21:54 +01:00
Simone Mainardi
bd5041ead2 Renames walkIdle to walkAllStates and documents method behavior 2019-11-18 11:35:43 +01:00
Simone Mainardi
d685de3ec1 Implements walkIdle fairness among hash table entries 2019-11-13 11:35:55 +01:00
Simone Mainardi
cb15313c15 Performs idling of hash table entries without locks 2019-10-31 17:56:30 +01:00
Simone Mainardi
4f3a6dab85 Precomputes max hash size in the hash table constructor 2019-10-31 11:23:50 +01:00
Simone Mainardi
552ca89959 Counts also idle entries to honor -X and -x 2019-10-31 09:54:00 +01:00
Simone Mainardi
68246efd01 Decouples periodic hash table updates using a thread pool 2019-10-27 17:40:07 +01:00
Simone Mainardi
b8b6c7fac7 Improves purging speed of idle ht entries 2019-10-27 11:55:52 +01:00
Simone Mainardi
96eb183913 Removes unnecessary GenericHash::notify_transition 2019-10-25 19:25:21 +02:00
Luca
796316b64c Unitialized variable 2019-10-25 19:00:25 +02:00
Simone Mainardi
0414133399 Prints interface name in possible hash table errors 2019-10-25 18:52:10 +02:00
Simone Mainardi
ad03729a81 Fixes inverted quick_update boolean 2019-10-25 18:43:47 +02:00
Simone Mainardi
071bafd223 Fixes AS/Country/VLAN serialization which was performed offline 2019-10-25 14:46:31 +02:00
Alfredo Cardigliano
592aaf80e2 Displaying Active/Idle in the internals page 2019-10-25 12:02:13 +02:00
Simone Mainardi
955eed4b50 Reworks idling and purging of hash table entries to make it faster 2019-10-24 15:48:18 +02:00
Simone Mainardi
15e17a801a Implements per-state hash entry counters and writes them to ts 2019-10-23 13:09:02 +02:00
Simone Mainardi
35d605e79f Fixes crash when accessing stats upon startup 2019-10-18 17:53:00 +02:00
Alfredo Cardigliano
b9666f87e4 State transition fix for flows coming from a companion interface 2019-10-17 17:08:55 +02:00
Simone Mainardi
6fd7386c03 Fixes possible collisions when looking up flows by key 2019-10-16 19:04:10 +02:00
Simone Mainardi
ae438ba75a Prevents unnecessary HT lookups in purgeIdle 2019-10-11 15:18:36 +02:00
Simone Mainardi
453efa749f Fixes shutdown procedures with new hash entry states 2019-10-11 15:16:42 +02:00
Simone Mainardi
48caf68f69 Fixes invalid state transitions 2019-10-11 11:15:38 +02:00
Luca
263fe3927b Refactoring fixes 2019-10-11 07:36:06 +02:00
Luca
9870eee2e7 Revisited state hangling 2019-10-10 20:09:42 +02:00
Simone Mainardi
6257cacd9a Adds handles for busy and free trylocks 2019-10-04 18:11:25 +02:00
Simone Mainardi
2fc7144eb6 Implements hash tables rwlocks 2019-10-04 17:06:24 +02:00
Simone Mainardi
da1dbe4ab0 Reworks hash entries idling 2019-09-24 14:29:20 +02:00
Simone Mainardi
53e1d4e50b More aggressive purge for ZMQ flows w/o completed TWH 2019-09-10 17:19:26 +02:00
Alfredo Cardigliano
f5a20f1b6b GenericHash::walk comment 2019-09-06 13:26:47 +02:00
Simone Mainardi
ac2ce0c058 Sets all hash entries to idle during shutdown 2019-08-12 14:05:08 +02:00
Luca Deri
86ab1907df Added extra checks to idle objects 2019-08-06 09:31:35 +02:00
emanuele-f
f476d7118c Log invalid hash entry states 2019-08-05 12:56:45 +02:00
Simone Mainardi
f110602192 Refactors hash entry state setters to ease override 2019-08-05 12:12:16 +02:00
Simone Mainardi
9b6714823a Implements hash entries lifecycle as a finite states machine
Fixes certain sporadic race conditions
2019-07-22 15:18:39 +02:00
Simone Mainardi
d9275ac166 Allows an extra runHousekeepingTasks before shutting down to do proper cleanup 2019-07-19 19:11:29 +02:00
Simone Mainardi
34f91bfd9f Implements new algorithm to allow flows purging control from interface views 2019-07-17 16:15:56 +02:00
Simone Mainardi
94f894454c Removes useless disablePurge and enablePurge 2019-07-05 16:08:51 +02:00
Simone Mainardi
ef4f98a5a5 Implements lock-free hash table additions 2019-07-05 16:00:43 +02:00
Simone Mainardi
4f4548713e Fixes protocol detection for flows with a few packets 2019-03-05 12:21:00 +01:00
Luca
509df6a1fc Improved counter monitoring algorithm 2019-02-03 23:30:07 +01:00
Luca Deri
bedff2c8e2 Updated (C) 2019-01-07 19:28:49 +01:00
Alfredo Cardigliano
479970c384 Implemented flows purging on shutdown (enabled with --shutdown-when-done only for now, it can be controlled with prefs->flushFlowsOnShutdown()), fixes #2229 2018-12-15 17:43:35 +01:00
Luca Deri
5ebaec2867 Added better trace for potential XSS attempts 2018-08-04 19:18:17 +02:00
Luca Deri
22c90d73bd Added hash tracing 2018-08-04 17:54:43 +02:00
Luca Deri
f0c936c368 Updated (C) to 2018 2018-03-22 21:59:42 +01:00
Luca Deri
c3f81d694b Partial cleanup to the batch walk 2017-11-23 00:19:17 +01:00
Luca
caaf27d5a6 Implemented batched hosts and l2-devices walk 2017-11-22 19:38:08 +01:00
Simone Mainardi
eaa7a0d313 Separates L3 IPs from L2 MACs
Before this commit, multiple L3 hosts were allocated if the same ip
address was seen with multiple mac addresses. We have decided to keep
ip and macs logically sepatated. For this reason, after this commit,
the L3 ip always remains the same even if there are changes in the
mac. A user who wants to monitor mac addresses can use the L2 section
as well as the host pools.

This commit also reverts:
"Add MAC address to the serialized hosts key to fix bad MAC address association and stats"

This reverts commit 89a756fb9a.
2017-07-04 01:41:31 +02:00