]> git.puffer.fish Git - matthieu/frr.git/commitdiff
ospfd: fix SPF calculation when changing ABR type
authorAlexander Chernavin <achernavin@netgate.com>
Thu, 20 Jul 2023 15:22:03 +0000 (15:22 +0000)
committerAlexander Chernavin <achernavin@netgate.com>
Tue, 25 Jul 2023 15:50:16 +0000 (15:50 +0000)
Currently, when changing ABR type on a working router, SPF recalculation
will only be initiated if the OSPF flags have changed after this.
Otherwise, SPF recalculation will be omitted and OSPF RIB update will
not occur. In other words, changing ABR type might not result in
inter-area routes addition/deletion.

With this fix, when ABR type is changed, the command handler initiates
SPF recalculation.

Signed-off-by: Alexander Chernavin <achernavin@netgate.com>
ospfd/ospf_vty.c

index 1500d61b48ad5da691a95532b02908157febb10f..158e90df59d57c27e53bff7a5d41a94b2578c702 100644 (file)
@@ -2058,6 +2058,13 @@ DEFUN (ospf_abr_type,
        if (ospf->abr_type != abr_type) {
                ospf->abr_type = abr_type;
                ospf_schedule_abr_task(ospf);
+
+               /* The ABR task might not initiate SPF recalculation if the
+                * OSPF flags remain the same. And inter-area routes would not
+                * be added/deleted according to the new ABR type. So this
+                * needs to be done here too.
+                */
+               ospf_spf_calculate_schedule(ospf, SPF_FLAG_ABR_STATUS_CHANGE);
        }
 
        return CMD_SUCCESS;