]> git.puffer.fish Git - matthieu/frr.git/commitdiff
ospf6d: remove interface prefix when area is removed
authorckishimo <carles.kishimoto@gmail.com>
Tue, 16 Mar 2021 23:01:19 +0000 (00:01 +0100)
committerIgor Ryzhov <iryzhov@nfware.com>
Wed, 24 Mar 2021 15:55:56 +0000 (18:55 +0300)
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 <carles.kishimoto@gmail.com>
ospf6d/ospf6_interface.c

index 68e67e0d43442c4cab5c60a8f7fb1a71c4eb334a..e8be12c9b64d156d78664b9a60fa9e1eb40686ef 100644 (file)
@@ -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,