diff options
author | Maria Matejka <mq@ucw.cz> | 2023-01-19 10:56:16 +0100 |
---|---|---|
committer | Maria Matejka <mq@ucw.cz> | 2023-01-19 11:10:25 +0100 |
commit | 4d8d81f144e72fe2e182d7569087f2a8c8c5b938 (patch) | |
tree | 2b9fae3a99e9e4abe362a90ad521e16063e5fba5 /nest/rt.h | |
parent | 59a5bf18f997e11a3e3ddd70d59f597f77fa2b6c (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.h | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -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 */ |