]> git.puffer.fish Git - matthieu/frr.git/commitdiff
isisd: fix update link params after circuit is up
authorLouis Scalbert <louis.scalbert@6wind.com>
Tue, 27 Aug 2024 16:22:27 +0000 (18:22 +0200)
committerMergify <37929162+mergify[bot]@users.noreply.github.com>
Tue, 3 Sep 2024 14:56:40 +0000 (14:56 +0000)
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>
(cherry picked from commit 6ce6b7a8564f661495fec17f3ea33eeaf9e2f48c)

isisd/isis_te.c

index a2d08e615b5855f6d4cf9ea5a3ae57f973c87d5c..d854123647f0ae01c3f39c4fd0d590afbc88c404 100644 (file)
@@ -331,7 +331,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",