From 39a275aa0fefda85913e454d82bccf536032ddd7 Mon Sep 17 00:00:00 2001 From: Christian Franke Date: Sun, 30 Jul 2017 19:27:25 +0200 Subject: [PATCH] isisd: only process overload info from fragment #0 Signed-off-by: Christian Franke --- isisd/isis_spf.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/isisd/isis_spf.c b/isisd/isis_spf.c index bf70c61e4c..740f087ee7 100644 --- a/isisd/isis_spf.c +++ b/isisd/isis_spf.c @@ -674,6 +674,12 @@ static int isis_spf_process_lsp(struct isis_spftree *spftree, && !mt_router_info) return ISIS_OK; + /* RFC3787 section 4 SHOULD ignore overload bit in pseudo LSPs */ + bool no_overload = (pseudo_lsp + || (spftree->mtid == ISIS_MT_IPV4_UNICAST + && !ISIS_MASK_LSP_OL_BIT(lsp->hdr.lsp_bits)) + || (mt_router_info && !mt_router_info->overload)); + lspfragloop: if (lsp->hdr.seqno == 0) { zlog_warn( @@ -686,12 +692,7 @@ lspfragloop: print_sys_hostname(lsp->hdr.lsp_id)); #endif /* EXTREME_DEBUG */ - /* RFC3787 section 4 SHOULD ignore overload bit in pseudo LSPs */ - if (pseudo_lsp || (spftree->mtid == ISIS_MT_IPV4_UNICAST - && !ISIS_MASK_LSP_OL_BIT(lsp->hdr.lsp_bits)) - || (mt_router_info && !mt_router_info->overload)) - - { + if (no_overload) { if (pseudo_lsp || spftree->mtid == ISIS_MT_IPV4_UNICAST) { struct isis_oldstyle_reach *r; for (r = (struct isis_oldstyle_reach *) -- 2.39.5