From: Christian Franke <[email protected]>

If the following configuration commands are run interactively in
succession, the ipv6 addresses of this interface won't be advertised
in the router's LSP immediately:

   # interface eth0
   # ip router isis test
   # ipv6 router isis test

This is because the ipv6 router command won't trigger a state change
for the interface and therefore, it won't trigger a regeneration of
the LSPs.

The same thing happens if IPv4 is enabled after IPv6, or for the cases
where IPv4 is disabled and IPv6 stays enabled or vice-versa.

Fix this by explicitly calling lsp_regenerate_schedule for the cases
where it won't be called implicitly.

Signed-off-by: Christian Franke <[email protected]>
---
 isisd/isis_circuit.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/isisd/isis_circuit.c b/isisd/isis_circuit.c
index 01a9d1e..b493609 100644
--- a/isisd/isis_circuit.c
+++ b/isisd/isis_circuit.c
@@ -1298,6 +1298,8 @@ DEFUN (ip_router_isis,
   vty->node = INTERFACE_NODE;
   vty->index = ifp;
 
+  if (circuit->ipv6_router)
+    lsp_regenerate_schedule(circuit->area, circuit->is_type, 0);
   return rv;
 }
 
@@ -1339,10 +1341,10 @@ DEFUN (no_ip_router_isis,
 
   circuit->ip_router = 0;
   area->ip_circuits--;
-#ifdef HAVE_IPV6
   if (circuit->ipv6_router == 0)
-#endif
     isis_csm_state_change (ISIS_DISABLE, circuit, area);
+  else
+    lsp_regenerate_schedule(area, circuit->is_type, 0);
 
   return CMD_SUCCESS;
 }
@@ -1406,6 +1408,8 @@ DEFUN (ipv6_router_isis,
   vty->node = INTERFACE_NODE;
   vty->index = ifp;
 
+  if (circuit->ip_router)
+    lsp_regenerate_schedule(circuit->area, circuit->is_type, 0);
   return rv;
 }
 
@@ -1449,6 +1453,8 @@ DEFUN (no_ipv6_router_isis,
   area->ipv6_circuits--;
   if (circuit->ip_router == 0)
     isis_csm_state_change (ISIS_DISABLE, circuit, area);
+  else
+    lsp_regenerate_schedule(area, circuit->is_type, 0);
 
   return CMD_SUCCESS;
 }
-- 
2.7.4


_______________________________________________
Quagga-dev mailing list
[email protected]
https://lists.quagga.net/mailman/listinfo/quagga-dev

Reply via email to