Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

isisd: fix building flex-algo asla at init #16467

Merged
merged 4 commits into from
Jul 26, 2024

Conversation

louis-6wind
Copy link
Contributor

When an color affinity is set on an interface before configuring the flex-algorithm, the ASLA (Application Specific Link-Attribute) sub-TLV is not build. Flex-algo fails to build the paths when a affinity constraint is required because of the lacking of information contained in ASLA. There are no problems when the configuration order is reversed. For example:

affinity-map red bit-position 1

interface eth2
link-params
affinity red

router isis 1
mpls-te on
flex-algo 129
dataplane sr-mpls
advertise-definition
affinity include-any green

In isis_link_params_update_asla(), the ASLA sub-TLV is not build when the list of flex-algos is empty.

Update ASLA when the first flex-algorithm is configured.

Fixes: 893882e ("isisd: add isis flex-algo configuration backend")

@louis-6wind
Copy link
Contributor Author

ci:rerun

Copy link
Member

@odd22 odd22 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a small question. Otherwise, the PR looks good to me.

if (update_te) {
for (ALL_LIST_ELEMENTS_RO(area->circuit_list, node,
circuit))
isis_link_params_update(circuit,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do you not call isis_link_params_update_asla() directly? only flex_algo parameters have been updated and need attention to eventually regenerate the LSP.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You are right. Changed
I have added the last flex-algo unconfiguration case and some cleanup

@frrbot frrbot bot added the libfrr label Jul 26, 2024
@github-actions github-actions bot added size/M and removed size/S labels Jul 26, 2024
Remove duplicated flex_algos_free prototype

Signed-off-by: Louis Scalbert <[email protected]>
Move flex_algo_delete() content into isis_instance_flex_algo_destroy()
because it is called only once.

Rename _flex_algo_delete to flex_algo_free()

Cosmetic change.

Signed-off-by: Louis Scalbert <[email protected]>
When an color affinity is set on an interface before configuring the
flex-algorithm, the ASLA (Application Specific Link-Attribute) sub-TLV
is not build. Flex-algo fails to build the paths when a affinity
constraint is required because of the lacking of information contained
in ASLA. There are no problems when the configuration order is reversed.
For example:

> affinity-map red bit-position 1
>
> interface eth2
>  link-params
>   affinity red
>
> router isis 1
>  mpls-te on
>  flex-algo 129
>   dataplane sr-mpls
>   advertise-definition
>   affinity include-any green

In isis_link_params_update_asla(), the ASLA sub-TLV is not build when
the list of flex-algos is empty.

Update ASLA when the first flex-algorithm is configured.

Fixes: 893882e ("isisd: add isis flex-algo configuration backend")
Signed-off-by: Louis Scalbert <[email protected]>
Free ASLA when the last flex-algo is unconfigured.

Signed-off-by: Louis Scalbert <[email protected]>
@donaldsharp donaldsharp merged commit 5856bf1 into FRRouting:master Jul 26, 2024
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants