Uncolored SR-MPLS TE policies with local CSPF path computation

This chapter describes the uncolored SR-MPLS TE policies with local CSPF path computation.

Topics in this chapter include:

Applicability

The configuration in this chapter is based on SRL Release 25.10.R2.

Overview

Segment Routing with Traffic Engineering Label Switched Paths (SR-TE LSPs) in SR Linux are implemented as uncolored SR-MPLS TE policies whose segment lists can be computed using:

  • hop-to-label (IP-to-label) translation

  • Path Computation Element (PCE) path computation

  • local Constrained Shortest Path First (CSPF) computation

Hop-to-label path computation

Segment lists in an uncolored SR-MPLS TE policy use hop-to-label translation as the default computation method. The Path Computation Client (PCC) interrogates the TE database, and translates any hop configured in the applied path statement to a Node SID (N-SID) or Adjacency SID (A-SID), to produce a list of segment IDs. Strict hops are mapped to adjacency SIDs; loose hops are mapped to node SIDs. The destination address in the LSP configuration implies a final loose hop.

PCE path computation

Segment list computation can also be performed using an external PCE controller. In this case, the PCC maintains a Path Computation Element Protocol (PCEP) session with the PCE and the path computation is done as follows:

  • the PCC sends a PCReq requesting a path

  • the PCE replies with a PCReply including a path (if available). This path contains a segment list.

  • Optionally, the PCC sends a path status report (PCRpt) to the PCE. However, the PCC may also delegate the control of the path to the PCE.

PCE path computation is beyond the scope of this chapter.

Local CSPF path computation

Segment lists in an uncolored SR-MPLS TE policy can be computed using local CSPF in single-level IS-IS IGP instances. More complex SR-TE LSP path computations, or when the network is expanded into multiple IGP areas or instances, require an external PCE.

SR-TE does not require each router on the path to be TE enabled: the links do not have to be TE links. Provided that the routers at both ends of each link are SR enabled, local CSPF computes an end-to-end path.

Full CSPF path computation on the head-end router (PCC) results in a full explicit path to the destination. The PCC computes an end-to-end path and the following applies:

  • The computed path is a full explicit TE path.

  • Each link is represented by an adjacency SID or adjacency set SID.

  • CSPF returns a label stack list of adjacency SIDs or adjacency set SIDs.

For local CSPF, a TE-policy segment list can be resignaled when a timer expires, when an operator issues a command, or in case of IGP events.

Paths computed by local CSPF contain an adjacency SID for each link in the path and the stack may contain numerous labels. When a network-instance traffic-engineering-policies policy segment-list dynamic path-algorithm local-cspf te-constraints segment-depth value exceeds the computed LSP label stack size or the maximum segment depth of a downstream router is lower than the computed LSP label stack size, the label stack can be reduced. The label stack reduction capability can replace a series of adjacency SIDs with a node SID. For loose-hop path computation, node SIDs or a combination of node and adjacency SIDs can be used.

Local CSPF is supported on primary, standby, and secondary segment lists of an uncolored SR-MPLS TE policy.

Local CSPF path computation and SR protected interfaces

When SR is enabled and IGP adjacency is established over a link, the router advertises an adjacency SID in the adjacency SID sub-TLV. When Loop-Free Alternate (LFA), Remote LFA (RLFA), or Topology-Independent LFA (TI-LFA) is enabled, protected adjacencies have the backup flag set in the adjacency SID sub-TLV. Each adjacency is available for SID protection when LFA, RLFA, or TI-LFA is enabled.

Local CSPF path compution can set up a path that:

  • only includes protected adjacencies (local-sr-protection mandated)

  • only includes unprotected adjacencies (local-sr-protection none)

  • can include both protected and unprotected adjacencies (local-sr-protection preferred (default))

Configuration

Example topology shows the example topology.

Figure 1. Example topology

The initial configuration on each of the nodes includes:

  • Cards, MDAs, ports

  • Router interfaces

  • IS-IS enabled on all router interfaces

    • The interfaces in the core (between P-3, P-4, P-5, P-6, P-7, P-8, P-9, and P-10) have metric 10.

    • The access interfaces to and from PE-1, PE-2, and PE-11 have metric 100.

On PE-2, the initial IS-IS configuration is as follows:

# on PE-2:
    network-instance default {
        admin-state enable
        router-id 192.0.2.2
        interface ethernet-1/4.1 {                  # interface to P-4
        }
        interface ethernet-1/6.1 {                  # interface to P-6
        }
        interface system0.0 {
        }
        protocols {
            isis {
                instance 0 {
                    admin-state enable
                    level-capability L2             # single-level IS-IS instance
                    net [
                        49.0000.1920.0000.2002.00
                    ]
                    interface ethernet-1/4.1 {
                        admin-state enable
                        circuit-type point-to-point
                        level 2 {
                            metric 100
                        }
                    }
                    interface ethernet-1/6.1 {
                        admin-state enable
                        circuit-type point-to-point
                        level 2 {
                            metric 100
                        }
                    }
                    interface system0.0 {
                    }
                    level 2 {
                    }
                }
            }
        }

For segment routing, label ranges must be defined for the node SIDs and adjacency SIDs. For an in-depth description of the configuration of SR-ISIS, see the Segment Routing with IS-IS Control Plane chapter. On all nodes, the following MPLS label ranges are configured:

# on all nodes:
    system {
        mpls {
            label-ranges {
                static srgb-static-mpls {         # for protocol-independent node SIDs
                    shared true
                    start-label 10000
                    end-label 10999
                }
                dynamic srlb-dynamic-mpls {       # for dynamic adjacency SIDs
                    start-label 525000
                    end-label 525999
                }

On PE-2, segment routing is configured as follows:

# on PE-2:
    network-instance default {
         protocols {
            isis {
                dynamic-label-block srlb-dynamic-mpls        # label range for dynamic adj SIDs
                instance 0 {
                    segment-routing {
                        mpls {
                            dynamic-adjacency-sids {
                                all-interfaces true
                            }
                        }
                    }
                }
            }
        }
        segment-routing {
            mpls {
                global-block {
                    label-range srgb-static-mpls    # label range for node SIDs
                }
                local-prefix-sid 1 {                # protocol-independent SID
                    interface system0.0
                    ipv4-label-index 2              # index 2 on PE-2, 3 on P-3, 4 on P-4...
                    node-sid true
                }

With this configuration, the node SID on PE-2 is 10000 + index 2 = 10002. The configuration is similar on the other nodes.

Traffic engineering is enabled on head-end nodes only: PE-2 and PE-11. In this chapter, only the uncolored SR-MPLS TE policies that originate in PE-2 are shown. The corresponding TE policies in the opposite direction are not included. The TE configuration on PE-2 as follows:

# on PE-2:
    network-instance default {
        protocols {
            isis {
                instance 0 {
                    te-database-install {
                    }
                    traffic-engineering {
                        advertisement true
                        legacy-link-attribute-advertisement false
                        ipv4-te-router-id 192.0.2.2
                    }
                }
            }
        }
        traffic-engineering {
            ipv4-te-router-id 192.0.2.2
            interface ethernet-1/4.1 {
                interface-ref {
                    interface ethernet-1/4
                    subinterface 1
                }
            }
            interface ethernet-1/6.1 {
                interface-ref {
                    interface ethernet-1/6
                    subinterface 1
                }
            }
        }

On PE-2, the following SR-TE LSPs are configured toward PE-11:

  • uncolored SR-MPLS TE policy without explicit path and:

    • hop-to-label path computation

    • local CSPF path computation without label stack reduction

    • local CSPF path computation with label stack reduction

  • uncolored SR-MPLS TE policy with path with two strict hops—P-4 and P-3—and:

    • hop-to-label path computation

    • local CSPF path computation without label stack reduction

    • local CSPF path computation with label stack reduction

  • uncolored SR-MPLS TE policy with path with two loose hops—P-3 and P-9—and:

    • hop-to-label path computation

    • local CSPF path computation without label stack reduction

    • local CSPF path computation with label stack reduction

SR-TE LSPs without explicit path

The configuration of SR-TE LSPs is described in the Segment Routing – Traffic Engineered Tunnels chapter. On PE-2, the following SR-TE LSPs toward PE-11 are configured without explicit path. The path computation method is hop-to-label for the first uncolored SR-MPLS TE policy and local CSPF for the second TE policy. TE policy "LSP_no-expl-path_CSPF_no-LSR" has no label stack reduction, so the segment list contains only adjacency SIDs.

# on PE-2:
    network-instance default 
        traffic-engineering-policies {
            policy "LSP_no-expl-path_no-dynamic" {
                policy-type sr-mpls-uncolored
                admin-state enable
                endpoint 192.0.2.11
                segment-list 1 {        # no dynamic context in segment-list 1
                    admin-state enable
                    segment-list-type primary
                }
            }
            policy "LSP_no-expl-path_CSPF_no-LSR" {
                policy-type sr-mpls-uncolored
                admin-state enable
                endpoint 192.0.2.11
                segment-list 3 {       # or segment-list 1 (the numbering can start from 1)
                    admin-state enable
                    segment-list-type primary
                    dynamic {
                        path-algorithm local-cspf
                        te-constraints {
                            label-stack-reduction false     # only adjacency SIDs
                        }
                    }
                }
            }

With hop-to-label path computation, the destination 192.0.2.11 is an implied loose hop to be mapped to the node SID 10011 of the destination PE-11, as follows:

--{ + running }--[  ]--
A:admin@PE-2# info from state / network-instance default traffic-engineering-policies policy-database sr-uncolored policy * protocol-origin local segment-list 1 computed-segments segment * | as table | filter fields *

+----------------------------------------+----------------------------------------+------------------------+--------------+---------------+----------+----------------------------------------+----------+------------------+----------------------------------------+----------------+----------------------+
|            Network-instance            |           Policy policy-name           | Policy protocol-origin | Segment-list | Segment-index | Hop-type |               Ip-address               | Is-loose | Unnumbered-if-id |               Router-id                |    Sid-type    | Sid-value mpls-label |
+========================================+========================================+========================+==============+===============+==========+========================================+==========+==================+========================================+================+======================+
| default                                | LSP_no-expl-path_no-dynamic            | local                  |            1 |             1 | ipv4     | 192.0.2.11                             | true     |                  | 192.0.2.11                             | node-sid       |                10011 |
+----------------------------------------+----------------------------------------+------------------------+--------------+---------------+----------+----------------------------------------+----------+------------------+----------------------------------------+----------------+----------------------+

With local CSPF path computation, the SR-TE path contains contiguous strict hops with A-SIDs. Several equal cost paths are available and, in this case, the path goes from PE-2 via P-6, P-10, and P-9 to the destination PE-11, as follows:

--{ + running }--[  ]--
A:admin@PE-2# info from state / network-instance default traffic-engineering-policies policy-database sr-uncolored policy * protocol-origin local segment-list 3 computed-segments segment * | as table | filter fields *

+----------------------------------------+----------------------------------------+------------------------+--------------+---------------+----------+----------------------------------------+----------+------------------+----------------------------------------+----------------+----------------------+
|            Network-instance            |           Policy policy-name           | Policy protocol-origin | Segment-list | Segment-index | Hop-type |               Ip-address               | Is-loose | Unnumbered-if-id |               Router-id                |    Sid-type    | Sid-value mpls-label |
+========================================+========================================+========================+==============+===============+==========+========================================+==========+==================+========================================+================+======================+
| default                                | LSP_no-expl-path_CSPF_no-LSR           | local                  |            3 |             1 | ipv4     | 192.168.26.2                           | false    |                  | 192.0.2.6                              | adjacency-sid  |               525001 |
| default                                | LSP_no-expl-path_CSPF_no-LSR           | local                  |            3 |             2 | ipv4     | 192.168.106.2                          | false    |                  | 192.0.2.10                             | adjacency-sid  |               525000 |
| default                                | LSP_no-expl-path_CSPF_no-LSR           | local                  |            3 |             3 | ipv4     | 192.168.109.1                          | false    |                  | 192.0.2.9                              | adjacency-sid  |               525003 |
| default                                | LSP_no-expl-path_CSPF_no-LSR           | local                  |            3 |             4 | ipv4     | 192.168.119.2                          | false    |                  | 192.0.2.11                             | adjacency-sid  |               525001 |
+----------------------------------------+----------------------------------------+------------------------+--------------+---------------+----------+----------------------------------------+----------+------------------+----------------------------------------+----------------+----------------------+

The path is shown in Local CSFP computed path from PE-2 to PE-11 without explicit path constraint.

Figure 2. Local CSFP computed path from PE-2 to PE-11 without explicit path constraint

The label stack of Adjacency SIDs (A-SIDs) is reduced to a smaller number of Node SIDs (N-SIDs), or a combination of N-SIDs and A-SIDs, when label-stack-reduction is enabled (which is the default setting), as follows:


    network-instance default 
        traffic-engineering-policies {
            policy "LSP_no-expl-path_CSPF_LSR" {        ## LSR = label stack reduction
                policy-type sr-mpls-uncolored
                admin-state enable
                endpoint 192.0.2.11
                segment-list 2 {
                    admin-state enable
                    segment-list-type primary
                    dynamic {
                        path-algorithm local-cspf
                        te-constraints {
                            label-stack-reduction true     # default
                        }
                    }
                }
            }

Label stack reduction reduces the label stack to one or more node SIDs, with each segment delimited by configured path hops. The path computed to the node SID must satisfy any required path constraints. In this example, the only restriction is the loose hop of the destination PE-11, so the label stack is reduced to the N-SID of PE-11, as follows:

--{ + running }--[  ]--
A:admin@PE-2# info from state / network-instance default traffic-engineering-policies policy-database sr-uncolored policy * protocol-origin local segment-list 2 computed-segments segment * | as table | filter fields *

+----------------------------------------+----------------------------------------+------------------------+--------------+---------------+----------+----------------------------------------+----------+------------------+----------------------------------------+----------------+----------------------+
|            Network-instance            |           Policy policy-name           | Policy protocol-origin | Segment-list | Segment-index | Hop-type |               Ip-address               | Is-loose | Unnumbered-if-id |               Router-id                |    Sid-type    | Sid-value mpls-label |
+========================================+========================================+========================+==============+===============+==========+========================================+==========+==================+========================================+================+======================+
| default                                | LSP_no-expl-path_CSPF_LSR              | local                  |            2 |             1 | ipv4     | 192.0.2.11                             | true     |                  | 192.0.2.11                             | node-sid       |                10011 |
+----------------------------------------+----------------------------------------+------------------------+--------------+---------------+----------+----------------------------------------+----------+------------------+----------------------------------------+----------------+----------------------+

SR-TE LSPs using path with strict hops

In the following example, the SR-TE LSP path includes strict hops—that must be contiguous hops from the head-end router—and an implicit loose hop to the destination 192.0.2.11. The SR-TE LSPs on PE-2 are configured as follows:

# on PE-2:
    network-instance default 
        traffic-engineering-policies {
            explicit-paths {
                path path-via-P-4-P-3_S {
                    hop 10 {
                        ip {
                            ip-address 192.0.2.4
                            hop-type strict
                        }
                    }
                    hop 20 {
                        ip {
                            ip-address 192.0.2.3
                            hop-type strict
                        }
                    }
                }
            }
            policy "LSP_w-strict-hops_no-dynamic" {
                policy-type sr-mpls-uncolored
                admin-state enable
                endpoint 192.0.2.11
                segment-list 11 {
                    admin-state enable
                    explicit-path path-via-P-4-P-3_S
                    segment-list-type primary
                }
            }
            policy "LSP_w-strict-hops_CSPF_no-LSR" {
                policy-type sr-mpls-uncolored
                admin-state enable
                endpoint 192.0.2.11
                segment-list 13 {
                    admin-state enable
                    explicit-path path-via-P-4-P-3_S
                    segment-list-type primary
                    dynamic {
                        path-algorithm local-cspf
                        te-constraints {
                            label-stack-reduction false     # only A-SIDs
                        }
                    }
                }
            }
            

With hop-to-label path computation, strict hops are translated into adjacency SIDs, whereas loose hops are translated into node SIDs. In this example, the path has an A-SID to P-4 and an A-SID to P-3 followed by an N-SID to the destination PE-11, as follows:

--{ + running }--[  ]--
A:admin@PE-2# info from state / network-instance default traffic-engineering-policies policy-database sr-uncolored policy * protocol-origin local segment-list 11 computed-segments segment * | as table | filter fields *

+----------------------------------------+----------------------------------------+------------------------+--------------+---------------+----------+----------------------------------------+----------+------------------+----------------------------------------+----------------+----------------------+
|            Network-instance            |           Policy policy-name           | Policy protocol-origin | Segment-list | Segment-index | Hop-type |               Ip-address               | Is-loose | Unnumbered-if-id |               Router-id                |    Sid-type    | Sid-value mpls-label |
+========================================+========================================+========================+==============+===============+==========+========================================+==========+==================+========================================+================+======================+
| default                                | LSP_w-strict-hops_no-dynamic           | local                  |           11 |             1 | ipv4     | 192.168.24.2                           | false    |                  | 192.0.2.4                              | adjacency-sid  |               525000 |
| default                                | LSP_w-strict-hops_no-dynamic           | local                  |           11 |             2 | ipv4     | 192.168.34.1                           | false    |                  | 192.0.2.3                              | adjacency-sid  |               525001 |
| default                                | LSP_w-strict-hops_no-dynamic           | local                  |           11 |             3 | ipv4     | 192.0.2.11                             | true     |                  | 192.0.2.11                             | node-sid       |                10011 |
+----------------------------------------+----------------------------------------+------------------------+--------------+---------------+----------+----------------------------------------+----------+------------------+----------------------------------------+----------------+----------------------+

With local CSPF path computation, the path is a sequence of A-SIDs, as follows:

--{ + running }--[  ]--
A:admin@PE-2# info from state / network-instance default traffic-engineering-policies policy-database sr-uncolored policy * protocol-origin local segment-list 13 computed-segments segment * | as table | filter fields *

+----------------------------------------+----------------------------------------+------------------------+--------------+---------------+----------+----------------------------------------+----------+------------------+----------------------------------------+----------------+----------------------+
|            Network-instance            |           Policy policy-name           | Policy protocol-origin | Segment-list | Segment-index | Hop-type |               Ip-address               | Is-loose | Unnumbered-if-id |               Router-id                |    Sid-type    | Sid-value mpls-label |
+========================================+========================================+========================+==============+===============+==========+========================================+==========+==================+========================================+================+======================+
| default                                | LSP_w-strict-hops_CSPF_no-LSR          | local                  |           13 |             1 | ipv4     | 192.168.24.2                           | false    |                  | 192.0.2.4                              | adjacency-sid  |               525000 |
| default                                | LSP_w-strict-hops_CSPF_no-LSR          | local                  |           13 |             2 | ipv4     | 192.168.34.1                           | false    |                  | 192.0.2.3                              | adjacency-sid  |               525001 |
| default                                | LSP_w-strict-hops_CSPF_no-LSR          | local                  |           13 |             3 | ipv4     | 192.168.37.2                           | false    |                  | 192.0.2.7                              | adjacency-sid  |               525003 |
| default                                | LSP_w-strict-hops_CSPF_no-LSR          | local                  |           13 |             4 | ipv4     | 192.168.117.2                          | false    |                  | 192.0.2.11                             | adjacency-sid  |               525001 |
+----------------------------------------+----------------------------------------+------------------------+--------------+---------------+----------+----------------------------------------+----------+------------------+----------------------------------------+----------------+----------------------+

The path from PE-2 to PE-11 must go via P-4 and P-3. The loose hop from P-3 to the destination PE-11 is translated into an A-SID to P-7 followed by an A-SID to PE-11, as shown in Path from PE-2 to PE-11 via strict hops P-4 and P-3.

Figure 3. Path from PE-2 to PE-11 via strict hops P-4 and P-3

With label stack reduction, the configuration of the SR-TE LSP is as follows:

# on PE-2: 
    network-instance default 
        traffic-engineering-policies {
            policy "LSP_w-strict-hops_CSPF_LSR" {
                policy-type sr-mpls-uncolored
                admin-state enable
                endpoint 192.0.2.11
                segment-list 12 {
                    admin-state enable
                    explicit-path path-via-P-4-P-3_S
                    segment-list-type primary
                    dynamic {
                        path-algorithm local-cspf
                        te-constraints {
                            label-stack-reduction true     # default
                        }
                    }
                }
            }
            

Label stack reduction reduces the label stack to one or more node SIDs, with each segment delimited by configured path hops. The computed path to the node SID must satisfy any required path constraints. The computed path from PE-2 to PE-11 via the strict hops P-4 and P-3 shows a series of N-SIDs, as follows:

--{ + running }--[  ]--
A:admin@PE-2# info from state / network-instance default traffic-engineering-policies policy-database sr-uncolored policy * protocol-origin local segment-list 12 computed-segments segment * | as table | filter fields ip-address router-id is-loose sid-type sid-value/mpls-label

+-----------------------------------------------+-----------------------------------------------+------------------------+--------------+---------------+-----------------------------------------------+-----------------------------------------------+----------+----------------+----------------------+
|               Network-instance                |              Policy policy-name               | Policy protocol-origin | Segment-list | Segment-index |                  Ip-address                   |                   Router-id                   | Is-loose |    Sid-type    | Sid-value mpls-label |
+===============================================+===============================================+========================+==============+===============+===============================================+===============================================+==========+================+======================+
| default                                       | LSP_w-strict-hops_CSPF_LSR                    | local                  |           12 |             1 | 192.0.2.4                                     | 192.0.2.4                                     | true     | node-sid       |                10004 |
| default                                       | LSP_w-strict-hops_CSPF_LSR                    | local                  |           12 |             2 | 192.0.2.3                                     | 192.0.2.3                                     | true     | node-sid       |                10003 |
| default                                       | LSP_w-strict-hops_CSPF_LSR                    | local                  |           12 |             3 | 192.0.2.11                                    | 192.0.2.11                                    | true     | node-sid       |                10011 |
+-----------------------------------------------+-----------------------------------------------+------------------------+--------------+---------------+-----------------------------------------------+-----------------------------------------------+----------+----------------+----------------------+

SR-TE LSPs using path with loose hops

The following uncolored SR-MPLS TE policies on PE-2 toward PE-11 use an explicit path with loose hops P-3 and P-9:

# on PE-2:
    network-instance default 
        traffic-engineering-policies {
            explicit-paths {
                path path-via-P-3-P-9_L {
                    hop 10 {
                        ip {
                            ip-address 192.0.2.3
                            hop-type loose
                        }
                    }
                    hop 20 {
                        ip {
                            ip-address 192.0.2.9
                            hop-type loose
                        }
                    }
                }
            }
            policy "LSP_w-loose-hops_no-dynamic" {
                policy-type sr-mpls-uncolored
                admin-state enable
                endpoint 192.0.2.11
                segment-list 21 {
                    admin-state enable
                    explicit-path path-via-P-3-P-9_L
                    segment-list-type primary
                }
            }
            policy "LSP_w-loose-hops_CSPF_no-LSR" {
                policy-type sr-mpls-uncolored
                admin-state enable
                endpoint 192.0.2.11
                segment-list 23 {
                    admin-state enable
                    explicit-path path-via-P-3-P-9_L
                    segment-list-type primary
                    dynamic {
                        path-algorithm local-cspf
                        te-constraints {
                            label-stack-reduction false     # only A-SIDs
                        }
                    }
                }
            }

With hop-to-label path compution, loose hops are translated into N-SIDs. In this example, the actual hops are the N-SIDs of P-3, P-9, and PE-11, as follows:

--{ + running }--[  ]--
A:admin@PE-2# info from state / network-instance default traffic-engineering-policies policy-database sr-uncolored policy * protocol-origin local segment-list 21 computed-segments segment * | as table | filter fields *

+----------------------------------------+----------------------------------------+------------------------+--------------+---------------+----------+----------------------------------------+----------+------------------+----------------------------------------+----------------+----------------------+
|            Network-instance            |           Policy policy-name           | Policy protocol-origin | Segment-list | Segment-index | Hop-type |               Ip-address               | Is-loose | Unnumbered-if-id |               Router-id                |    Sid-type    | Sid-value mpls-label |
+========================================+========================================+========================+==============+===============+==========+========================================+==========+==================+========================================+================+======================+
| default                                | LSP_w-loose-hops_no-dynamic            | local                  |           21 |             1 | ipv4     | 192.0.2.3                              | true     |                  | 192.0.2.3                              | node-sid       |                10003 |
| default                                | LSP_w-loose-hops_no-dynamic            | local                  |           21 |             2 | ipv4     | 192.0.2.9                              | true     |                  | 192.0.2.9                              | node-sid       |                10009 |
| default                                | LSP_w-loose-hops_no-dynamic            | local                  |           21 |             3 | ipv4     | 192.0.2.11                             | true     |                  | 192.0.2.11                             | node-sid       |                10011 |
+----------------------------------------+----------------------------------------+------------------------+--------------+---------------+----------+----------------------------------------+----------+------------------+----------------------------------------+----------------+----------------------+

With local CSPF path compution, the actual hops are the A-SIDs toward P-4, P-3, P-7, P-9, and PE-11, as follows:

--{ + running }--[  ]--
A:admin@PE-2# info from state / network-instance default traffic-engineering-policies policy-database sr-uncolored policy * protocol-origin local segment-list 23 computed-segments segment * | as table | filter fields *

+----------------------------------------+----------------------------------------+------------------------+--------------+---------------+----------+----------------------------------------+----------+------------------+----------------------------------------+----------------+----------------------+
|            Network-instance            |           Policy policy-name           | Policy protocol-origin | Segment-list | Segment-index | Hop-type |               Ip-address               | Is-loose | Unnumbered-if-id |               Router-id                |    Sid-type    | Sid-value mpls-label |
+========================================+========================================+========================+==============+===============+==========+========================================+==========+==================+========================================+================+======================+
| default                                | LSP_w-loose-hops_CSPF_no-LSR           | local                  |           23 |             1 | ipv4     | 192.168.24.2                           | false    |                  | 192.0.2.4                              | adjacency-sid  |               525000 |
| default                                | LSP_w-loose-hops_CSPF_no-LSR           | local                  |           23 |             2 | ipv4     | 192.168.34.1                           | false    |                  | 192.0.2.3                              | adjacency-sid  |               525001 |
| default                                | LSP_w-loose-hops_CSPF_no-LSR           | local                  |           23 |             3 | ipv4     | 192.168.37.2                           | false    |                  | 192.0.2.7                              | adjacency-sid  |               525003 |
| default                                | LSP_w-loose-hops_CSPF_no-LSR           | local                  |           23 |             4 | ipv4     | 192.168.79.2                           | false    |                  | 192.0.2.9                              | adjacency-sid  |               525004 |
| default                                | LSP_w-loose-hops_CSPF_no-LSR           | local                  |           23 |             5 | ipv4     | 192.168.119.2                          | false    |                  | 192.0.2.11                             | adjacency-sid  |               525001 |
+----------------------------------------+----------------------------------------+------------------------+--------------+---------------+----------+----------------------------------------+----------+------------------+----------------------------------------+----------------+----------------------+

Path from PE-2 to PE-11 via loose hops P-3 and P-9 shows the path from PE-2 to PE-11 via loose hops P-3 and P-9.

Figure 4. Path from PE-2 to PE-11 via loose hops P-3 and P-9

Label stack reduction is configured as follows, but it is also the default setting:

# on PE-2:
    network-instance default 
        traffic-engineering-policies {
            policy "LSP_w-loose-hops_CSPF_LSR" {
                policy-type sr-mpls-uncolored
                admin-state enable
                endpoint 192.0.2.11
                segment-list 22 {
                    admin-state enable
                    explicit-path path-via-P-3-P-9_L
                    segment-list-type primary
                    dynamic {
                        path-algorithm local-cspf
                        te-constraints {
                            label-stack-reduction true     # default
                        }
                    }
                }
            }
            

With label stack reduction, the actual hops in the path are the following:

--{ + running }--[  ]--
A:admin@PE-2# info from state / network-instance default traffic-engineering-policies policy-database sr-uncolored policy * protocol-origin local segment-list 22 computed-segments segment * | as table | filter fields *

+----------------------------------------+----------------------------------------+------------------------+--------------+---------------+----------+----------------------------------------+----------+------------------+----------------------------------------+----------------+----------------------+
|            Network-instance            |           Policy policy-name           | Policy protocol-origin | Segment-list | Segment-index | Hop-type |               Ip-address               | Is-loose | Unnumbered-if-id |               Router-id                |    Sid-type    | Sid-value mpls-label |
+========================================+========================================+========================+==============+===============+==========+========================================+==========+==================+========================================+================+======================+
| default                                | LSP_w-loose-hops_CSPF_LSR              | local                  |           22 |             1 | ipv4     | 192.0.2.3                              | true     |                  | 192.0.2.3                              | node-sid       |                10003 |
| default                                | LSP_w-loose-hops_CSPF_LSR              | local                  |           22 |             2 | ipv4     | 192.0.2.9                              | true     |                  | 192.0.2.9                              | node-sid       |                10009 |
| default                                | LSP_w-loose-hops_CSPF_LSR              | local                  |           22 |             3 | ipv4     | 192.0.2.11                             | true     |                  | 192.0.2.11                             | node-sid       |                10011 |
+----------------------------------------+----------------------------------------+------------------------+--------------+---------------+----------+----------------------------------------+----------+------------------+----------------------------------------+----------------+----------------------+

Tunnel tables

The following command on PE-2 lists the uncolored SR-MPLS TE tunnels. By default, te-policy-sr-mpls-uncolored tunnels have preference 8. For all SR-TE LSPs with next-hop 192.168.24.2 or 192.168.26.2., the first hop is mapped to an adjacency SID. All paths computed with local CSPF without label stack reduction only have adjacency SIDs. For hop-to-label path computation, only the strict hops are translated into adjacency SIDs. Paths computed using local CSPF with label stack reduction only have node SIDs in this example and the next hop is a system IP address 192.0.2.x/32.

--{ + running }--[  ]--
A:admin@PE-2# show network-instance default tunnel-table ipv4 type te-policy-sr-mpls-uncolored

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
IPv4 tunnel table of network-instance "default"
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+----------------------------+----------------+----------+-----+----------+---------+--------------------------+-----------------+-----------------+--------------------+
|        IPv4 Prefix         |  Tunnel Type   |  Tunnel  | FIB |  Metric  | Prefere |       Last Update        | Backup Nexthops | Next-hop (Type) |      Next-hop      |
|                            |                |    ID    |     |          |   nce   |                          |                 |                 |                    |
+============================+================+==========+=====+==========+=========+==========================+=================+=================+====================+
| 192.0.2.11/32              | te-policy-sr-  | 1        | Y   | 220      | 8       | 2026-02-16T06:55:37.446Z |                 | 192.0.2.11/32   | ethernet-1/4.1     |
|                            | mpls-uncolored |          |     |          |         |                          |                 | (sr-isis)       |                    |
| 192.0.2.11/32              | te-policy-sr-  | 2        | Y   | 220      | 8       | 2026-02-16T06:55:37.446Z |                 | 192.168.26.2/32 | ethernet-1/6.1     |
|                            | mpls-uncolored |          |     |          |         |                          |                 | (sr-isis)       |                    |
| 192.0.2.11/32              | te-policy-sr-  | 3        | Y   | 220      | 8       | 2026-02-16T06:55:37.446Z |                 | 192.0.2.11/32   | ethernet-1/4.1     |
|                            | mpls-uncolored |          |     |          |         |                          |                 | (sr-isis)       |                    |
| 192.0.2.11/32              | te-policy-sr-  | 4        | Y   | 230      | 8       | 2026-02-16T06:55:37.446Z |                 | 192.0.2.3/32    | ethernet-1/4.1     |
|                            | mpls-uncolored |          |     |          |         |                          |                 | (sr-isis)       |                    |
| 192.0.2.11/32              | te-policy-sr-  | 5        | Y   | 230      | 8       | 2026-02-16T06:55:37.446Z |                 | 192.168.24.2/32 | ethernet-1/4.1     |
|                            | mpls-uncolored |          |     |          |         |                          |                 | (sr-isis)       |                    |
| 192.0.2.11/32              | te-policy-sr-  | 6        | Y   | 230      | 8       | 2026-02-16T06:55:37.446Z |                 | 192.0.2.3/32    | ethernet-1/4.1     |
|                            | mpls-uncolored |          |     |          |         |                          |                 | (sr-isis)       |                    |
| 192.0.2.11/32              | te-policy-sr-  | 7        | Y   | 220      | 8       | 2026-02-16T06:55:37.446Z |                 | 192.0.2.4/32    | ethernet-1/4.1     |
|                            | mpls-uncolored |          |     |          |         |                          |                 | (sr-isis)       |                    |
| 192.0.2.11/32              | te-policy-sr-  | 8        | Y   | 220      | 8       | 2026-02-16T06:55:37.446Z |                 | 192.168.24.2/32 | ethernet-1/4.1     |
|                            | mpls-uncolored |          |     |          |         |                          |                 | (sr-isis)       |                    |
| 192.0.2.11/32              | te-policy-sr-  | 9        | Y   | 220      | 8       | 2026-02-16T06:55:37.446Z |                 | 192.168.24.2/32 | ethernet-1/4.1     |
|                            | mpls-uncolored |          |     |          |         |                          |                 | (sr-isis)       |                    |
+----------------------------+----------------+----------+-----+----------+---------+--------------------------+-----------------+-----------------+--------------------+
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------
9 TE-POLICY-SR-MPLS-UNCOLORED tunnels, 9 active, 0 inactive
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------

The following command on PE-2 shows the tunnel table for te-policy-sr-mpls-uncolored LSP tunnels including the pushed MPLS labels to be used from the next hop. Compared to the preceding output with the SID values for each of the uncolored SR-MPLS TE policies, the following pushed MPLS labels do not include the first label to the next hop. When the next hop is PE-11, no MPLS label is shown in the following tunnel table.

--{ + running }--[  ]--
A:admin@PE-2# show network-instance default tunnel-table ipv4 type te-policy-sr-mpls-uncolored detail

--------------------------------------------------------------------------------
Show report for network instance "default" tunnel table
--------------------------------------------------------------------------------
================================================================================
Destination        : 192.0.2.11/32
Tunnel Type        : te-policy-sr-mpls-uncolored
Tunnel ID          : 1
Metric             : 220
Preference         : 8
Last Update        : 2026-02-16T06:55:37.446Z
FIB Status         : active
Next-hops
  192.0.2.11/32 (mpls)
      pushed MPLS labels : [IMPLICIT_NULL]
================================================================================
Destination        : 192.0.2.11/32
Tunnel Type        : te-policy-sr-mpls-uncolored
Tunnel ID          : 2
Metric             : 220
Preference         : 8
Last Update        : 2026-02-16T06:55:37.446Z
FIB Status         : active
Next-hops
  192.168.26.2/32 (mpls)
      pushed MPLS labels : [525001, 525003, 525000]
================================================================================
Destination        : 192.0.2.11/32
Tunnel Type        : te-policy-sr-mpls-uncolored
Tunnel ID          : 3
Metric             : 220
Preference         : 8
Last Update        : 2026-02-16T06:55:37.446Z
FIB Status         : active
Next-hops
  192.0.2.11/32 (mpls)
      pushed MPLS labels : [IMPLICIT_NULL]
================================================================================
Destination        : 192.0.2.11/32
Tunnel Type        : te-policy-sr-mpls-uncolored
Tunnel ID          : 4
Metric             : 230
Preference         : 8
Last Update        : 2026-02-16T06:55:37.446Z
FIB Status         : active
Next-hops
  192.0.2.3/32 (mpls)
      pushed MPLS labels : [10011, 10009]
================================================================================
Destination        : 192.0.2.11/32
Tunnel Type        : te-policy-sr-mpls-uncolored
Tunnel ID          : 5
Metric             : 230
Preference         : 8
Last Update        : 2026-02-16T06:55:37.446Z
FIB Status         : active
Next-hops
  192.168.24.2/32 (mpls)
      pushed MPLS labels : [525001, 525004, 525003, 525001]
================================================================================
Destination        : 192.0.2.11/32
Tunnel Type        : te-policy-sr-mpls-uncolored
Tunnel ID          : 6
Metric             : 230
Preference         : 8
Last Update        : 2026-02-16T06:55:37.446Z
FIB Status         : active
Next-hops
  192.0.2.3/32 (mpls)
      pushed MPLS labels : [10011, 10009]
================================================================================
Destination        : 192.0.2.11/32
Tunnel Type        : te-policy-sr-mpls-uncolored
Tunnel ID          : 7
Metric             : 220
Preference         : 8
Last Update        : 2026-02-16T06:55:37.446Z
FIB Status         : active
Next-hops
  192.0.2.4/32 (mpls)
      pushed MPLS labels : [10011, 10003]
================================================================================
Destination        : 192.0.2.11/32
Tunnel Type        : te-policy-sr-mpls-uncolored
Tunnel ID          : 8
Metric             : 220
Preference         : 8
Last Update        : 2026-02-16T06:55:37.446Z
FIB Status         : active
Next-hops
  192.168.24.2/32 (mpls)
      pushed MPLS labels : [525001, 525003, 525001]
================================================================================
Destination        : 192.0.2.11/32
Tunnel Type        : te-policy-sr-mpls-uncolored
Tunnel ID          : 9
Metric             : 220
Preference         : 8
Last Update        : 2026-02-16T06:55:37.446Z
FIB Status         : active
Next-hops
  192.168.24.2/32 (mpls)
      pushed MPLS labels : [10011, 525001]
================================================================================

Resignaling segment lists in an uncolored SR-MPLS TE policy

Uncolored SR-MPLS TE policies have a re-optimization timer with a default value of 30 minutes. It is possible to disable the re-optimization timer. The following command can be used to configure the re-optimization timer for a TE policy:

--{ + candidate shared default }--[ network-instance default traffic-engineering-policies policy "LSP_no-expl-path_CSPF_no-LSR" ]--
A:admin@PE-2# re-optimization-timer ?
usage: re-optimization-timer <value>

Re-optimizaion timer for the TE policy

Positional arguments:
  value             [number, range 30..10800, units minutes, default 30]|[disable, units minutes, default 30]

The following tools command can be used to either clear or resignal a segment list in an uncolored SR-MPLS TE policy:

--{ + running }--[  ]--
A:admin@PE-2# tools network-instance default traffic-engineering-policies sr-uncolored policy "LSP_no-expl-path_CSPF_no-LSR" protocol-origin local segment-list 3 ?
usage: segment-list <segment-list-index>

Positional arguments:
  segment-list-index
                    [number, range 1..32] Index to enumerate the different segment lists of a TE policy.

Local commands:
  clear*            Clear segment-list
  resignal*         Trigger resignal for segment-list

The following command triggers a manual re-optimization for segment list 3 in uncolored SR-MPLS TE policy "LSP_no-expl-path_CSPF_no-LSR":

tools network-instance default traffic-engineering-policies sr-uncolored policy "LSP_no-expl-path_CSPF_no-LSR" protocol-origin local segment-list 3 resignal

The following command shows the timestamp of the last retry attempt and the next reoptimization attempt for segment 3 in the TE policy:

--{ + running }--[  ]--
A:admin@PE-2# info from state with-context network-instance default traffic-engineering-policies policy-database sr-uncolored | grep 'segment-list
 3' --after-context 10

                        segment-list 3 {
                            oper-state up
                            forwarding-state active
                            last-oper-state-change "2026-02-16T06:55:37.445Z (2 hours ago)"
                            oper-state-change-count 1
                            segment-list-type primary
                            metric 215
                            igp-metric 215
                            lsp-id 68
                            last-retry-attempt "2026-02-16T09:23:47.262Z (5 seconds ago)"
                            next-reoptimization-attempt "2026-02-16T09:53:47.264Z (29 minutes from now)"

Local CSPF and SR protected adjacencies

In this example, protected and unprotected links are present. The following command enables TI-LFA with link protection on all nodes, except on P-4:

# on PE-1, PE-2, P-3, P-5, P-6, P-7, P-8, P-9, P-10, PE-11:
    network-instance default {
        protocols {
            isis {
                instance 0 {
                    loopfree-alternate {
                        admin-state enable
                        ti-lfa {
                            admin-state enable

As a result of this, each adjacency is available for SID protection on all nodes, except for the adjacencies on P-4. The following command shows that the adjacency SID sub-TLV for both links on PE-2 has the backup flag set:

--{ + running }--[  ]--
A:admin@PE-2# info from state / network-instance default protocols isis instance 0 level 2 link-state-database lsp 1920.0000.2002.00-00 | grep flags --before-context 10 --after-context 4
---snip---

--
                neighbors {
                    neighbor 1920.0000.2004 {
                        instances {
                            instance 0 {
                                metric 100
                                subtlvs {
                                    subtlv is-reachability-adj-sid {
                                        adjacency-sids {
                                            adjacency-sid 525000 {
                                                weight 0
                                                flags [
                                                    backup        # backup flag on adjacency to P-4
                                                    value
                                                    local
                                                ]
--
                    }
                    neighbor 1920.0000.2006 {
                        instances {
                            instance 0 {
                                metric 100
                                subtlvs {
                                    subtlv is-reachability-adj-sid {
                                        adjacency-sids {
                                            adjacency-sid 525001 {
                                                weight 0
                                                flags [
                                                    backup        # backup flag on adjacency to P-6
                                                    value
                                                    local
                                                ]
---snip---

Because LFA is disabled on P-4, the four adjacencies on P-4 are not protected and the adjacency SID sub-TLV for the four links on P-4 does not have the backup flag set, as follows:

--{ + running }--[  ]--
A:admin@PE-2# info from state / network-instance default protocols isis instance 0 level 2 link-state-database lsp 1920.0000.2004.00-00 | grep flags --before-context 10 --after-context 4
---snip---

--
                neighbors {
                    neighbor 1920.0000.2002 {
                        instances {
                            instance 0 {
                                metric 100
                                subtlvs {
                                    subtlv is-reachability-adj-sid {
                                        adjacency-sids {
                                            adjacency-sid 525000 {
                                                weight 0
                                                flags [        # no backup flag on adjacency to PE-2
                                                    value
                                                    local
                                                ]
                                            }
--
                    }
                    neighbor 1920.0000.2003 {
                        instances {
                            instance 0 {
                                metric 10
                                subtlvs {
                                    subtlv is-reachability-adj-sid {
                                        adjacency-sids {
                                            adjacency-sid 525001 {
                                                weight 0
                                                flags [        # no backup flag on adjacency to P-3
                                                    value
                                                    local
                                                ]
                                            }
--
                    }
                    neighbor 1920.0000.2006 {
                        instances {
                            instance 0 {
                                metric 10
                                subtlvs {
                                    subtlv is-reachability-adj-sid {
                                        adjacency-sids {
                                            adjacency-sid 525002 {
                                                weight 0
                                                flags [        # no backup flag on adjacency to P-6
                                                    value
                                                    local
                                                ]
                                            }
--
                    }
                    neighbor 1920.0000.2008 {
                        instances {
                            instance 0 {
                                metric 5
                                subtlvs {
                                    subtlv is-reachability-adj-sid {
                                        adjacency-sids {
                                            adjacency-sid 525003 {
                                                weight 0
                                                flags [        # no backup flag on adjacency to P-8
                                                    value
                                                    local
                                                ]
                                            }
--
---snip---

Local CSPF computes, by default, an end-to-end path by selecting protected adjacencies, which have the backup flag set. If no such path is available, the local CSPF may select an unprotected adjacency with the assumption that all other path constraints are met.

On PE-2, the following uncolored SR-MPLS TE policies to PE-11 are configured without explicit path constraint and using local CSPF path computation:

  • an uncolored SR-MPLS TE policy with local SR protection preferred (= default setting)

  • an uncolored SR-MPLS TE policy with mandatory local SR protection, where all adjacencies must have a backup

  • an uncolored SR-MPLS TE policy without local SR protection (none), where all adjacencies are unprotected

# on PE-2:    network-instance default {
        traffic-engineering-policies {
            policy "LSP_no-expl-path_CSPF_no-LSR_pref" {
                policy-type sr-mpls-uncolored
                admin-state enable
                endpoint 192.0.2.11
                segment-list 4 {
                    admin-state enable
                    segment-list-type primary
                    dynamic {
                        path-algorithm local-cspf
                        te-constraints {
                            local-sr-protection preferred       # default
                            label-stack-reduction false
                        }
                    }
                }
            }
            policy "LSP_no-expl-path_CSPF_no-LSR_mand" {
                policy-type sr-mpls-uncolored
                admin-state enable
                endpoint 192.0.2.11
                segment-list 5 {
                    admin-state enable
                    segment-list-type primary
                    dynamic {
                        path-algorithm local-cspf
                        te-constraints {
                            local-sr-protection mandated       # all adjacencies protected
                            label-stack-reduction false
                        }
                    }
                }
            }
            policy "LSP_no-expl-path_CSPF_no-LSR_none" {
                policy-type sr-mpls-uncolored
                admin-state enable
                endpoint 192.0.2.11
                segment-list 6 {
                    admin-state enable
                    segment-list-type primary
                    dynamic {
                        path-algorithm local-cspf
                        te-constraints {
                            local-sr-protection none       # all adjacencies unprotected
                            label-stack-reduction false
                        }
                    }
                }
            }

For test purposes, the metric on one of the unprotected adjacencies from P-4 is lowered to 5, so the shortest path to PE-11 includes the unprotected interface when allowed:

# on P-4:
    network-instance default {
        protocols {
            isis {
                instance 0 {
                    interface ethernet-1/8.1 {              # int-P-4-P-8
                        level 2 {
                            metric 5
                        }
                    }

For uncolored SR-MPLS TE policy "LSP_no-exp-path_CSPF_no-LSR_pref", a path can be established from PE-2 via P-4, P-8, and P-7 to PE-11, but for the same metric, P-7 can be replaced by P-9. The direct link between P-4 and P-8 is unprotected, while all other adjacencies in the path have a backup.

--{ + running }--[  ]--
A:admin@PE-2# info from state / network-instance default traffic-engineering-policies policy-database sr-uncolored policy * protocol-origin local segment-list 4 computed-segments segment * | as table | filter fields *

+-------------------------------------+-------------------------------------+------------------------+--------------+---------------+----------+-------------------------------------+----------+------------------+-------------------------------------+----------------+----------------------+
|          Network-instance           |         Policy policy-name          | Policy protocol-origin | Segment-list | Segment-index | Hop-type |             Ip-address              | Is-loose | Unnumbered-if-id |              Router-id              |    Sid-type    | Sid-value mpls-label |
+=====================================+=====================================+========================+==============+===============+==========+=====================================+==========+==================+=====================================+================+======================+
| default                             | LSP_no-expl-path_CSPF_no-LSR_pref   | local                  |            4 |             1 | ipv4     | 192.168.24.2                        | false    |                  | 192.0.2.4                           | adjacency-sid  |               525000 |
| default                             | LSP_no-expl-path_CSPF_no-LSR_pref   | local                  |            4 |             2 | ipv4     | 192.168.48.2                        | false    |                  | 192.0.2.8                           | adjacency-sid  |               525003 |
| default                             | LSP_no-expl-path_CSPF_no-LSR_pref   | local                  |            4 |             3 | ipv4     | 192.168.78.1                        | false    |                  | 192.0.2.7                           | adjacency-sid  |               525002 |
| default                             | LSP_no-expl-path_CSPF_no-LSR_pref   | local                  |            4 |             4 | ipv4     | 192.168.117.2                       | false    |                  | 192.0.2.11                          | adjacency-sid  |               525001 |
+-------------------------------------+-------------------------------------+------------------------+--------------+---------------+----------+-------------------------------------+----------+------------------+-------------------------------------+----------------+----------------------+

Path from PE-2 to PE-11 including unprotected link shows the established path from PE-2 to PE-11, which uses protected and unprotected links.

Figure 5. Path from PE-2 to PE-11 including unprotected link

For uncolored SR-MPLS TE policy "LSP_no-exp-path_CSPF_no-LSR_mand", the path must exclude all unprotected links from P-4. The path goes from PE-2 via P-6, P-5, and P-9 to PE-11, but for the same metric, other paths are possible.

--{ + running }--[  ]--
A:admin@PE-2# info from state / network-instance default traffic-engineering-policies policy-database sr-uncolored policy * protocol-origin local segment-list 5 computed-segments segment * | as table | filter fields *

+-------------------------------------+-------------------------------------+------------------------+--------------+---------------+----------+-------------------------------------+----------+------------------+-------------------------------------+----------------+----------------------+
|          Network-instance           |         Policy policy-name          | Policy protocol-origin | Segment-list | Segment-index | Hop-type |             Ip-address              | Is-loose | Unnumbered-if-id |              Router-id              |    Sid-type    | Sid-value mpls-label |
+=====================================+=====================================+========================+==============+===============+==========+=====================================+==========+==================+=====================================+================+======================+
| default                             | LSP_no-expl-path_CSPF_no-LSR_mand   | local                  |            5 |             1 | ipv4     | 192.168.26.2                        | false    |                  | 192.0.2.6                           | adjacency-sid  |               525001 |
| default                             | LSP_no-expl-path_CSPF_no-LSR_mand   | local                  |            5 |             2 | ipv4     | 192.168.56.1                        | false    |                  | 192.0.2.5                           | adjacency-sid  |               525003 |
| default                             | LSP_no-expl-path_CSPF_no-LSR_mand   | local                  |            5 |             3 | ipv4     | 192.168.59.2                        | false    |                  | 192.0.2.9                           | adjacency-sid  |               525003 |
| default                             | LSP_no-expl-path_CSPF_no-LSR_mand   | local                  |            5 |             4 | ipv4     | 192.168.119.2                       | false    |                  | 192.0.2.11                          | adjacency-sid  |               525001 |
+-------------------------------------+-------------------------------------+------------------------+--------------+---------------+----------+-------------------------------------+----------+------------------+-------------------------------------+----------------+----------------------+

Path from PE-2 to PE-11 including only protected links shows the path that excludes the unprotected links from P-4.

Figure 6. Path from PE-2 to PE-11 including only protected links

For uncolored SR-MPLS TE policy "LSP_no-exp-path_CSPF_no-LSR_none", the path should only use unprotected links, but only the adjacencies from P-4 are unprotected, so CSPF cannot find an end-to-end path. The uncolored SR-MPLS TE policy remains operationally down, as follows:

--{ + running }--[  ]--
A:admin@PE-2# info from state / network-instance default traffic-engineering-policies policy-database sr-uncolored policy * protocol-origin local | as table | filter fields endpoint policy-type tunnel-id metric segment-list-count oper-state

+---------------------------------------+---------------------------------------+-----------------+---------------------------------------+-------------------+------------+------------+--------------------+------------+
|           Network-instance            |              Policy-name              | Protocol-origin |               Endpoint                |    Policy-type    | Tunnel-id  |   Metric   | Segment-list-count | Oper-state |
+=======================================+=======================================+=================+=======================================+===================+============+============+====================+============+
| default                               | LSP_no-expl-path_CSPF_LSR             | local           | 192.0.2.11                            | sr-mpls-uncolored |          1 |        215 |                  1 | up         |
| default                               | LSP_no-expl-path_CSPF_no-LSR          | local           | 192.0.2.11                            | sr-mpls-uncolored |          2 |        215 |                  1 | up         |
| default                               | LSP_no-expl-path_CSPF_no-LSR_mand     | local           | 192.0.2.11                            | sr-mpls-uncolored |         10 |        220 |                  1 | up         |
| default                               | LSP_no-expl-path_CSPF_no-LSR_none     | local           | 192.0.2.11                            | sr-mpls-uncolored |         11 |   16777215 |                  1 | down       |
| default                               | LSP_no-expl-path_CSPF_no-LSR_pref     | local           | 192.0.2.11                            | sr-mpls-uncolored |         12 |        215 |                  1 | up         |
| default                               | LSP_no-expl-path_no-dynamic           | local           | 192.0.2.11                            | sr-mpls-uncolored |          3 |        215 |                  1 | up         |
| default                               | LSP_w-loose-hops_CSPF_LSR             | local           | 192.0.2.11                            | sr-mpls-uncolored |          4 |        230 |                  1 | up         |
| default                               | LSP_w-loose-hops_CSPF_no-LSR          | local           | 192.0.2.11                            | sr-mpls-uncolored |          5 |        230 |                  1 | up         |
| default                               | LSP_w-loose-hops_no-dynamic           | local           | 192.0.2.11                            | sr-mpls-uncolored |          6 |        230 |                  1 | up         |
| default                               | LSP_w-strict-hops_CSPF_LSR            | local           | 192.0.2.11                            | sr-mpls-uncolored |          7 |        220 |                  1 | up         |
| default                               | LSP_w-strict-hops_CSPF_no-LSR         | local           | 192.0.2.11                            | sr-mpls-uncolored |          8 |        220 |                  1 | up         |
| default                               | LSP_w-strict-hops_no-dynamic          | local           | 192.0.2.11                            | sr-mpls-uncolored |          9 |        220 |                  1 | up         |
+---------------------------------------+---------------------------------------+-----------------+---------------------------------------+-------------------+------------+------------+--------------------+------------+

Conclusion

Within a single-level IS-IS network, uncolored SR-MPLS TE policy path compution using local CSPF on the head-end router results in an end-to-end path using IPv4 adjacencies.