]> git.puffer.fish Git - mirror/frr.git/commitdiff
isisd: only process overload info from fragment #0
authorChristian Franke <chris@opensourcerouting.org>
Sun, 30 Jul 2017 17:27:25 +0000 (19:27 +0200)
committerChristian Franke <chris@opensourcerouting.org>
Thu, 3 Aug 2017 09:34:04 +0000 (11:34 +0200)
Signed-off-by: Christian Franke <chris@opensourcerouting.org>
isisd/isis_spf.c

index bf70c61e4c6cad8ecc10cf7f79ee871b10a1e2e9..740f087ee75de5e1cdaddccfb6b2e3877afbb2d0 100644 (file)
@@ -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 *)