From: Emanuele Di Pascale Date: Tue, 9 Jun 2020 16:01:25 +0000 (+0200) Subject: isisd: keep circuit config on conf->up failure X-Git-Tag: base_7.5~290^2~1 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=f6d9207dc973befe25faecff40243c7c34a8174a;p=matthieu%2Ffrr.git isisd: keep circuit config on conf->up failure if we are not able to bring a circuit up due to some config issue, e.g. a low MTU compared to the area lsp-mtu, we should not remove the configuration, as this will push out of sync with the YANG state and create more issues down the line. Instead, keeping the circuit state at C_STATE_CONF should be sufficient. For the specific case of the MTU mismatch above, this also means that when we receive a new IF_UP_FROM_Z when the MTU is changed we will be able to bring the circuit up as we should. Signed-off-by: Emanuele Di Pascale --- diff --git a/isisd/isis_csm.c b/isisd/isis_csm.c index 9202ed5a88..9ff5c86fb0 100644 --- a/isisd/isis_csm.c +++ b/isisd/isis_csm.c @@ -141,23 +141,6 @@ isis_csm_state_change(int event, struct isis_circuit *circuit, void *arg) EC_ISIS_CONFIG, "Could not bring up %s because of invalid config.", circuit->interface->name); - flog_err( - EC_ISIS_CONFIG, - "Clearing config for %s. Please re-examine it.", - circuit->interface->name); - if (circuit->ip_router) { - circuit->ip_router = 0; - circuit->area->ip_circuits--; - } - if (circuit->ipv6_router) { - circuit->ipv6_router = 0; - circuit->area->ipv6_circuits--; - } - circuit_update_nlpids(circuit); - isis_circuit_deconfigure(circuit, - circuit->area); - listnode_add(isis->init_circ_list, circuit); - circuit->state = C_STATE_INIT; break; } circuit->state = C_STATE_UP;