Commit graph

74 commits

Author SHA1 Message Date
Simone Mainardi
90a5a57b36 Implements user script queues (avoids 5-sec HT walk) 2020-09-28 11:45:00 +02:00
Simone Mainardi
7f2a9b1420 Decouples flow dump from user scripts execution
Addresses #3545
2020-09-24 19:29:00 +02:00
Simone Mainardi
19f17a3a4f Flow dump rework fixes 2020-09-14 12:54:24 +02:00
Luca Deri
18637f21e1 Reworked flow dump 2020-09-12 00:23:33 +02:00
Luca Deri
d8481b5b06 Implemnted anti-stall mechanism that avoids executing flow scripts when running out of time 2020-08-13 13:36:53 +02:00
Luca Deri
f5e572cb5e Split pruge of idled entries from hashtable ste transition 2020-08-13 10:21:59 +02:00
Luca Deri
e7bd8fa0f6 Added mechanism to avoid adding new elements to the hash when the system is under pressure 2020-08-12 16:17:08 +02:00
Luca Deri
192a1cf942 Fixed logic of flow purging with ZMQ interfaces 2020-08-07 23:31:43 +02:00
Simone Mainardi
1baa7d6cc4 Avoids double 5-sec HT-walks to update stats 2020-07-27 14:22:59 +02:00
Luca Deri
ce1309853f Refactored idle code: now it should be easier to read and understand.
Idle lifecycle has been modified to make it more efficient
2020-07-23 12:56:30 +02:00
Simone Mainardi
9538280a60 Fixes num_idle_transitions counter 2020-07-23 09:26:49 +02:00
Luca Deri
12744c972c Purge policy changes 2020-07-23 08:00:11 +02:00
Luca Deri
f6c0d4b6ca Fixes #4190 2020-07-21 23:08:13 +02:00
Luca Deri
2ac82a7909 Typo 2020-07-21 17:55:52 +02:00
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