summaryrefslogtreecommitdiff
path: root/nest/rt.h
diff options
context:
space:
mode:
authorMaria Matejka <mq@ucw.cz>2023-01-19 10:56:16 +0100
committerMaria Matejka <mq@ucw.cz>2023-01-19 11:10:25 +0100
commit4d8d81f144e72fe2e182d7569087f2a8c8c5b938 (patch)
tree2b9fae3a99e9e4abe362a90ad521e16063e5fba5 /nest/rt.h
parent59a5bf18f997e11a3e3ddd70d59f597f77fa2b6c (diff)
Table prune routine doesn't walk over lists unless needed.
If no channel is flushing, table prune doesn't walk over routes in nets and also doesn't walk over importing channel lists. This helps to alleviate the memory caching burdens a lot.
Diffstat (limited to 'nest/rt.h')
-rw-r--r--nest/rt.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/nest/rt.h b/nest/rt.h
index 6ee2ce9b..cceb5edf 100644
--- a/nest/rt.h
+++ b/nest/rt.h
@@ -141,8 +141,10 @@ struct rtable_private {
uint rr_counter; /* Number of currently running route refreshes,
in fact sum of (stale_set - stale_pruned) over all importers
+ one for each TIS_FLUSHING importer */
+ uint wait_counter; /* Number of imports in TIS_WAITING state */
byte prune_state; /* Table prune state, 1 -> scheduled, 2-> running */
byte prune_trie; /* Prune prefix trie during next table prune */
+ byte imports_flushing; /* Some imports are being flushed right now */
byte nhu_state; /* Next Hop Update state */
byte nhu_corked; /* Next Hop Update is corked with this state */
byte export_used; /* Pending Export pruning is scheduled */