From 837f885ac78f13cb6c654529e1ac8a25571f7469 Mon Sep 17 00:00:00 2001 From: Louis Scalbert Date: Tue, 27 Aug 2024 18:22:27 +0200 Subject: [PATCH] isisd: fix update link params after circuit is up If the link-params are set when the circuit not yet up, the link-params are never updated. isis_link_params_update() is called from isis_circuit_up() but returns immediately because circuit->state != C_STATE_UP. circuit->state is updated in isis_csm_state_change after isis_circuit_up(). > struct isis_circuit *isis_csm_state_change(enum isis_circuit_event event, > struct isis_circuit *circuit, > void *arg) > { > [...] > if (isis_circuit_up(circuit) != ISIS_OK) { > isis_circuit_deconfigure(circuit, area); > break; > } > circuit->state = C_STATE_UP; > isis_event_circuit_state_change(circuit, circuit->area, > 1); Do not return isis_link_params_update() if circuit->state != C_STATE_UP. Fixes: 0fdd8b2b11 ("isisd: update link params after circuit is up") Signed-off-by: Louis Scalbert (cherry picked from commit 6ce6b7a8564f661495fec17f3ea33eeaf9e2f48c) --- isisd/isis_te.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/isisd/isis_te.c b/isisd/isis_te.c index 155d1e6fed5a..a6cab0366030 100644 --- a/isisd/isis_te.c +++ b/isisd/isis_te.c @@ -194,7 +194,7 @@ void isis_link_params_update(struct isis_circuit *circuit, return; /* Sanity Check */ - if ((ifp == NULL) || (circuit->state != C_STATE_UP)) + if (ifp == NULL) return; te_debug("ISIS-TE(%s): Update circuit parameters for interface %s",