summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorckishimo <carles.kishimoto@gmail.com>2020-11-24 15:53:22 +0100
committerckishimo <carles.kishimoto@gmail.com>2020-12-02 17:47:28 +0100
commitb79c30700ce9174fa854018e789dad06fd262c02 (patch)
tree0be94c535bcdd874366a804b1d371a2453300de9
parentMerge pull request #7565 from vishaldhingra/bgp_nb (diff)
downloadfrr-b79c30700ce9174fa854018e789dad06fd262c02.tar.xz
frr-b79c30700ce9174fa854018e789dad06fd262c02.zip
ospfd: fix cosmetic show ip ospf when NSSA
When executing the following command to change the NSSA translator role from OSPF_NSSA_ROLE_ALWAYS to OSPF_NSSA_ROLE_NEVER r2(config-router)# area 1 nssa translate-never During the time the `ospf_abr_nssa_check_status()` function is not executed, we are in a situation where the role is OSPF_NSSA_ROLE_NEVER (just configured) but the NSSATranslatorState is still ENABLED During this time the output of "show ip ospf" displays the following: r2# show ip ospf Area ID: 0.0.0.1 (NSSA) Shortcutting mode: Default, S-bit consensus: no Number of interfaces in this area: Total: 1, Active: 1 It is an NSSA configuration. Elected NSSA/ABR performs type-7/type-5 LSA translation. We are an ABR and Number of fully adjacent neighbors in this area: 1 (**) Basically the case TranslatorState=ENABLED && TranslatorRole=ROLE_NEVER is not covered in `ospf_vty.c` This PR adds the case TranslatorState=ENABLED and TranslatorRole=ROLE_NEVER which should only happen for a small period of time Signed-off-by: ckishimo <carles.kishimoto@gmail.com>
-rw-r--r--ospfd/ospf_vty.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/ospfd/ospf_vty.c b/ospfd/ospf_vty.c
index 71dea8053..304f1400f 100644
--- a/ospfd/ospf_vty.c
+++ b/ospfd/ospf_vty.c
@@ -2702,6 +2702,10 @@ static void show_ip_ospf_area(struct vty *vty, struct ospf_area *area,
json_object_boolean_true_add(
json_area,
"nssaTranslatorAlways");
+ else
+ json_object_boolean_true_add(
+ json_area,
+ "nssaTranslatorNever");
} else {
json_object_boolean_true_add(json_area, "abr");
if (area->NSSATranslatorRole
@@ -2716,29 +2720,32 @@ static void show_ip_ospf_area(struct vty *vty, struct ospf_area *area,
}
} else {
vty_out(vty,
- " It is an NSSA configuration. \n Elected NSSA/ABR performs type-7/type-5 LSA translation. \n");
+ " It is an NSSA configuration.\n Elected NSSA/ABR performs type-7/type-5 LSA translation.\n");
if (!IS_OSPF_ABR(area->ospf))
vty_out(vty,
- " It is not ABR, therefore not Translator. \n");
+ " It is not ABR, therefore not Translator.\n");
else if (area->NSSATranslatorState) {
vty_out(vty, " We are an ABR and ");
if (area->NSSATranslatorRole
== OSPF_NSSA_ROLE_CANDIDATE)
vty_out(vty,
- "the NSSA Elected Translator. \n");
+ "the NSSA Elected Translator.\n");
else if (area->NSSATranslatorRole
== OSPF_NSSA_ROLE_ALWAYS)
vty_out(vty,
- "always an NSSA Translator. \n");
+ "always an NSSA Translator.\n");
+ else
+ vty_out(vty,
+ "never an NSSA Translator.\n");
} else {
vty_out(vty, " We are an ABR, but ");
if (area->NSSATranslatorRole
== OSPF_NSSA_ROLE_CANDIDATE)
vty_out(vty,
- "not the NSSA Elected Translator. \n");
+ "not the NSSA Elected Translator.\n");
else
vty_out(vty,
- "never an NSSA Translator. \n");
+ "never an NSSA Translator.\n");
}
}
}