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
