diff options
author | Christian Franke <chris@opensourcerouting.org> | 2018-10-24 07:19:22 +0200 |
---|---|---|
committer | Christian Franke <chris@opensourcerouting.org> | 2018-10-24 07:53:23 +0200 |
commit | f93025e1a6e8249a888396efbadc98e27f217f88 (patch) | |
tree | cf7c67b91bb9ec31a4c45c13ba12eafa767d0db3 /isisd/isis_lsp.h | |
parent | isisd: Combine lsp_l1/l2_refresh (diff) | |
download | frr-f93025e1a6e8249a888396efbadc98e27f217f88.tar.xz frr-f93025e1a6e8249a888396efbadc98e27f217f88.zip |
isisd: delay lsp regeneration while events are still coming in
When there is a stream of events coming in, where IS-IS learns
about a lot of updates, IS-IS would regenerate its LSPs before
the updates have been processed completely.
This causes suboptimal convergence because the intermediate state
will be flooded. Only after the configured `lsp_gen_interval`, a
new update with the correct and final state will be generated.
Resolve this by holding off LSP generation while there are still
events coming in.
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
Diffstat (limited to 'isisd/isis_lsp.h')
-rw-r--r-- | isisd/isis_lsp.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/isisd/isis_lsp.h b/isisd/isis_lsp.h index 209a80ee7..2b45e6994 100644 --- a/isisd/isis_lsp.h +++ b/isisd/isis_lsp.h @@ -55,11 +55,11 @@ int lsp_tick(struct thread *thread); int lsp_generate(struct isis_area *area, int level); #define lsp_regenerate_schedule(area, level, all_pseudo) \ - _lsp_regenerate_schedule((area), (level), (all_pseudo), \ + _lsp_regenerate_schedule((area), (level), (all_pseudo), true, \ __func__, __FILE__, __LINE__) int _lsp_regenerate_schedule(struct isis_area *area, int level, - int all_pseudo, const char *func, - const char *file, int line); + int all_pseudo, bool postpone, + const char *func, const char *file, int line); int lsp_generate_pseudo(struct isis_circuit *circuit, int level); int lsp_regenerate_schedule_pseudo(struct isis_circuit *circuit, int level); |