summaryrefslogtreecommitdiffstats
path: root/isisd/isis_lsp.h
diff options
context:
space:
mode:
authorChristian Franke <chris@opensourcerouting.org>2018-10-24 07:19:22 +0200
committerChristian Franke <chris@opensourcerouting.org>2018-10-24 07:53:23 +0200
commitf93025e1a6e8249a888396efbadc98e27f217f88 (patch)
treecf7c67b91bb9ec31a4c45c13ba12eafa767d0db3 /isisd/isis_lsp.h
parentisisd: Combine lsp_l1/l2_refresh (diff)
downloadfrr-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.h6
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);