To guarantee loop-free forwarding for paths that are computed for a specific Flex-Algorithm, all routers configured to participate in that Flex-Algorithm must agree on the FAD. The agreement ensures that routing loops and inconsistent forwarding behavior is avoided.
Each router that is configured to participate in a specific Flex-Algorithm must select the FAD based on standardized tie-breaking rules. This ensures consistent FAD selection in cases where different routers advertise different definitions for a specific Flex-Algorithm. The following tie-breaking rules apply:
From the FAD advertisements in the area (including both locally generated advertisements and received advertisements), the router selects the one with the highest priority value.
If there are multiple FAD advertisements with the same priority, the router selects one that originated from the router with the highest system ID.
A router that is not participating in a specific Flex-Algorithm is allowed to advertise the FAD for that specific Flex-Algorithm. Any change in the FAD may result in temporary disruption of traffic that is forwarded based on those Flex-Algorithm paths. The impact is similar to any other event that requires network-wide convergence.
If a node is configured to participate in a Flex-Algorithm but the selected FAD includes a calculation type, metric type, constraint, flag, or sub-TLV that is not supported by the node, the node stops participation and removes any forwarding state associated with the Flex-Algorithm.
Use the following syntax to configure FADs:
config>router
— flexible-algorithm-definitions
— flex-algo <fad-name> [create]
— no flex-algo <fad-name>
— description <description-string>
— [no] description
— exclude
— admin-group <admin-group>
— [no] admin-group <admin-group>
— flags-tlv
— [no] flags-tlv
— include-all
— admin-group <admin-group>
— [no] admin-group <admin-group>
— include-any
— admin-group <admin-group>
— [no] admin-group <admin-group>
— metric-type {igp | te-metric | delay}
— [no] metric-type
— priority <[0..255]>
— [no] priority
— shutdown
— [no] shutdown
router
flexible-algorithm-definitions
flex-algo "My128" create
description "This-is-my-algo128"
metric-type delay
no shutdown
exit
exit