From: ckishimo Date: Tue, 16 Mar 2021 23:01:19 +0000 (+0100) Subject: ospf6d: remove interface prefix when area is removed X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=277b2fccf5a416df9886f76725cee964af4f801e;p=matthieu%2Ffrr.git ospf6d: remove interface prefix when area is removed This bug was first reported in PR#7717. When removing an interface from the area, the interface prefix is still shown r1# sh ipv6 ospf6 interface prefix *N IA 2013:12::/64 ::1 r1-r2-eth0 00:00:12 r1# conf t r1(config)# router ospf6 r1(config-ospf6)# no interface r1-r2-eth0 area 0.0.0.0 r1(config-ospf6)# exit r1# sh ipv6 ospf6 interface prefix *N IA 2013:12::/64 ::1 r1-r2-eth0 00:00:22 This fix will check if the interface is disabled so the prefix is not shown Signed-off-by: ckishimo --- diff --git a/ospf6d/ospf6_interface.c b/ospf6d/ospf6_interface.c index 68e67e0d43..e8be12c9b6 100644 --- a/ospf6d/ospf6_interface.c +++ b/ospf6d/ospf6_interface.c @@ -1156,6 +1156,12 @@ DEFUN (show_ipv6_ospf6_interface_ifname_prefix, return CMD_WARNING; } + if (CHECK_FLAG(oi->flag, OSPF6_INTERFACE_DISABLE)) { + vty_out(vty, "Interface %s not attached to area\n", + argv[idx_ifname]->arg); + return CMD_WARNING; + } + ospf6_route_table_show(vty, idx_prefix, argc, argv, oi->route_connected); @@ -1187,7 +1193,7 @@ DEFUN (show_ipv6_ospf6_interface_prefix, FOR_ALL_INTERFACES (vrf, ifp) { oi = (struct ospf6_interface *)ifp->info; - if (oi == NULL) + if (oi == NULL || CHECK_FLAG(oi->flag, OSPF6_INTERFACE_DISABLE)) continue; ospf6_route_table_show(vty, idx_prefix, argc, argv,