diff options
| author | Louis Scalbert <louis.scalbert@6wind.com> | 2024-08-27 18:22:27 +0200 | 
|---|---|---|
| committer | Louis Scalbert <louis.scalbert@6wind.com> | 2024-08-27 18:27:06 +0200 | 
| commit | 6ce6b7a8564f661495fec17f3ea33eeaf9e2f48c (patch) | |
| tree | 18ffc3e303f4ff1a0ebe779f01327403e6527192 /isisd | |
| parent | 3150d963e6f6512b872cab0749362028b5050731 (diff) | |
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 <louis.scalbert@6wind.com>
Diffstat (limited to 'isisd')
| -rw-r--r-- | isisd/isis_te.c | 2 | 
1 files changed, 1 insertions, 1 deletions
diff --git a/isisd/isis_te.c b/isisd/isis_te.c index b6321dbac3..545a516c27 100644 --- a/isisd/isis_te.c +++ b/isisd/isis_te.c @@ -327,7 +327,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",  | 
