From 277b2fccf5a416df9886f76725cee964af4f801e Mon Sep 17 00:00:00 2001 From: ckishimo Date: Wed, 17 Mar 2021 00:01:19 +0100 Subject: [PATCH] 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 --- ospf6d/ospf6_interface.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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, -- 2.39.5