Segment Routing
Segment Routing (SR) replaces traditional MPLS LDP signaling with a source-routed forwarding paradigm where the ingress router encodes the full path as an ordered list of segment identifiers. The Segment Routing Global Block (SRGB) and Local Block (SRLB) reserve label ranges in the Label Switching Database for prefix-SIDs and local segments such as adjacency-SIDs and binding-SIDs. The mapping server advertises prefix-to-SID mappings via IGP, enabling SR-capable nodes to interwork with LDP nodes in brownfield deployments. SRv6 with Micro-SID (uSID) extends this model over IPv6 by encoding up to six segment instructions within a single 128-bit SID carrier, minimizing MTU overhead while preserving full network programmability.
Diagram
Section titled “Diagram”Classes
Section titled “Classes”configuration (iosxr.devices)
Section titled “configuration (iosxr.devices)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| segment_routing | Class | [segment_routing] | No |
segment_routing (iosxr.devices.configuration)
Section titled “segment_routing (iosxr.devices.configuration)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| enable | Boolean | true, false | No | |
| global_block_from | Integer | min: 16000, max: 1048574 | No | |
| global_block_to | Integer | min: 16001, max: 1048575 | No | |
| local_block_from | Integer | min: 15000, max: 1048574 | No | |
| local_block_to | Integer | min: 15001, max: 1048575 | No | |
| mapping_server | List | [mapping_server] | No | |
| srv6 | Class | [srv6] | No | |
| traffic_engineering | Class | [traffic_engineering] | No |
mapping_server (iosxr.devices.configuration.segment_routing)
Section titled “mapping_server (iosxr.devices.configuration.segment_routing)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| address_family | Choice | ipv4, ipv6 | Yes | |
| prefix_sid_maps | List | [prefix_sid_maps] | No |
srv6 (iosxr.devices.configuration.segment_routing)
Section titled “srv6 (iosxr.devices.configuration.segment_routing)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| enable | Boolean | true, false | No | |
| encapsulation | Class | [encapsulation] | No | |
| formats | List | [formats] | No | |
| locators | List | [locators] | No | |
| logging_locator_status | Boolean | true, false | No | |
| sid_holdtime | Integer | min: 0, max: 60 | No |
traffic_engineering (iosxr.devices.configuration.segment_routing)
Section titled “traffic_engineering (iosxr.devices.configuration.segment_routing)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| affinity_maps | List | [affinity_maps] | No | |
| bfd_session_bringup | Integer | min: 10, max: 3600 | No | |
| binding_sids | Class | [binding_sids] | No | |
| candidate_paths | List | [candidate_paths] | No | |
| cspf_cache_size | Integer | min: 100, max: 100000 | No | |
| distribute_link_state | Class | [distribute_link_state] | No | |
| effective_metric | Class | [effective_metric] | No | |
| interfaces | List | [interfaces] | No | |
| kshortest_paths | Integer | min: 1, max: 200 | No | |
| logging | Class | [logging] | No | |
| max_install_standby_paths | Integer | min: 1, max: 3 | No | |
| maximum_sid_depth | Integer | min: 1, max: 255 | No | |
| path_disable_algo_checks | Class | [path_disable_algo_checks] | No | |
| pcc | Class | [pcc] | No | |
| resource_lists | List | [resource_lists] | No | |
| segment_lists | Class | [segment_lists] | No | |
| separate_next_hop | Boolean | true, false | No | |
| srv6 | Class | [srv6] | No | |
| steering | Class | [steering] | No | |
| te_latency | Boolean | true, false | No | |
| timers | Class | [timers] | No | |
| on_demand | List | [on_demand] | No | |
| policies | List | [policies] | No | |
| traces | List | [traces] | No |
prefix_sid_maps (iosxr.devices.configuration.segment_routing.mapping_server)
Section titled “prefix_sid_maps (iosxr.devices.configuration.segment_routing.mapping_server)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| prefix | IP | Yes | ||
| length | Integer | min: 1, max: 128 | Yes | |
| sid_index | Integer | min: 0, max: 1048575 | Yes | |
| range | Integer | min: 0, max: 65535 | No | |
| attached | Boolean | true, false | No |
encapsulation (iosxr.devices.configuration.segment_routing.srv6)
Section titled “encapsulation (iosxr.devices.configuration.segment_routing.srv6)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| hop_limit | Any | Integer[min: 0, max: 255] or Choice[propagate, propagate-disable] or String[Regex: ^.*[\$\%]\{.*$] | No | |
| source_address | IP | No | ||
| traffic_class | Any | Integer[min: 0, max: 255] or Choice[propagate, propagate-disable] or String[Regex: ^.*[\$\%]\{.*$] | No |
formats (iosxr.devices.configuration.segment_routing.srv6)
Section titled “formats (iosxr.devices.configuration.segment_routing.srv6)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | Choice | usid-f3216 | Yes | |
| usid_local_id_block_explicit_from | Integer | min: 57344, max: 57344 | No | |
| usid_local_id_block_explicit_to | Integer | min: 57444, max: 65279 | No | |
| usid_wide_local_id_block_start | Integer | min: 65520, max: 65527 | No |
locators (iosxr.devices.configuration.segment_routing.srv6)
Section titled “locators (iosxr.devices.configuration.segment_routing.srv6)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| algorithm | Integer | min: 128, max: 255 | No | |
| anycast | Boolean | true, false | No | |
| length | Integer | min: 32, max: 112 | No | |
| micro_segment_behavior_unode | Choice | psp-usd, shift-only | No | |
| name | String | Yes | ||
| prefix | IP | No |
affinity_maps (iosxr.devices.configuration.segment_routing.traffic_engineering)
Section titled “affinity_maps (iosxr.devices.configuration.segment_routing.traffic_engineering)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | Yes | ||
| bit_position | Integer | min: 0, max: 255 | Yes |
binding_sids (iosxr.devices.configuration.segment_routing.traffic_engineering)
Section titled “binding_sids (iosxr.devices.configuration.segment_routing.traffic_engineering)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| dynamic | Choice | disable | No | |
| explicit | Choice | enforce-srlb, fallback-dynamic | No |
candidate_paths (iosxr.devices.configuration.segment_routing.traffic_engineering)
Section titled “candidate_paths (iosxr.devices.configuration.segment_routing.traffic_engineering)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| type | Choice | all, bgp-odn, bgp-srte, local, pcep | Yes | |
| source_address | String | Yes |
distribute_link_state (iosxr.devices.configuration.segment_routing.traffic_engineering)
Section titled “distribute_link_state (iosxr.devices.configuration.segment_routing.traffic_engineering)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| enable | Boolean | true, false | No | |
| report_candidate_path_inactive | Boolean | true, false | No | |
| throttle | Integer | min: 1, max: 20 | No |
effective_metric (iosxr.devices.configuration.segment_routing.traffic_engineering)
Section titled “effective_metric (iosxr.devices.configuration.segment_routing.traffic_engineering)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| admin_distances | List | [admin_distances] | No | |
| flex_algos | List | [flex_algos] | No |
interfaces (iosxr.devices.configuration.segment_routing.traffic_engineering)
Section titled “interfaces (iosxr.devices.configuration.segment_routing.traffic_engineering)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | Yes | ||
| affinities | List | [affinities] | No | |
| metric | Integer | min: 0, max: 2147483647 | No |
logging (iosxr.devices.configuration.segment_routing.traffic_engineering)
Section titled “logging (iosxr.devices.configuration.segment_routing.traffic_engineering)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| pcep_peer_status | Boolean | true, false | No | |
| policy_status | Boolean | true, false | No |
path_disable_algo_checks (iosxr.devices.configuration.segment_routing.traffic_engineering)
Section titled “path_disable_algo_checks (iosxr.devices.configuration.segment_routing.traffic_engineering)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| strict_spf | Class | [strict_spf] | No |
pcc (iosxr.devices.configuration.segment_routing.traffic_engineering)
Section titled “pcc (iosxr.devices.configuration.segment_routing.traffic_engineering)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| dead_timer | Integer | min: 1, max: 255 | No | |
| delegation_timeout | Integer | min: 0, max: 1576800000 | No | |
| initiated_orphan | Integer | min: 0, max: 180 | No | |
| initiated_state | Integer | min: 0, max: 86400 | No | |
| keepalive_timer | Integer | min: 0, max: 255 | No | |
| pces | List | [pces] | No | |
| profiles | List | [profiles] | No | |
| redundancy | Choice | pcc_centric, pce_centric | No | |
| report_all | Boolean | true, false | No | |
| source_address_ipv4 | String | No | ||
| source_address_ipv6 | String | No |
resource_lists (iosxr.devices.configuration.segment_routing.traffic_engineering)
Section titled “resource_lists (iosxr.devices.configuration.segment_routing.traffic_engineering)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | Yes | ||
| entries | List | [entries] | No |
segment_lists (iosxr.devices.configuration.segment_routing.traffic_engineering)
Section titled “segment_lists (iosxr.devices.configuration.segment_routing.traffic_engineering)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| mpls | Class | [mpls] | No | |
| srv6 | Class | [srv6] | No |
srv6 (iosxr.devices.configuration.segment_routing.traffic_engineering)
Section titled “srv6 (iosxr.devices.configuration.segment_routing.traffic_engineering)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| behavior | Choice | ub6-encaps-reduced, ub6-insert-reduced | No | |
| binding_sid_type | Choice | srv6-dynamic | No | |
| locator | String | No | ||
| maximum_sid_depth | Integer | min: 1, max: 255 | No |
steering (iosxr.devices.configuration.segment_routing.traffic_engineering)
Section titled “steering (iosxr.devices.configuration.segment_routing.traffic_engineering)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| labeled_services | Class | [labeled_services] | No |
timers (iosxr.devices.configuration.segment_routing.traffic_engineering)
Section titled “timers (iosxr.devices.configuration.segment_routing.traffic_engineering)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| candidate_path_cleanup_delay | Integer | min: 0, max: 86400 | No | |
| cleanup_delay | Integer | min: 0, max: 300 | No | |
| delete_delay | Integer | min: 0, max: 3600 | No | |
| initial_verify_restart | Integer | min: 10, max: 10000 | No | |
| initial_verify_startup | Integer | min: 10, max: 10000 | No | |
| initial_verify_switchover | Integer | min: 10, max: 10000 | No | |
| install_delay | Integer | min: 0, max: 300 | No | |
| periodic_reoptimization | Integer | min: 0, max: 86400 | No |
on_demand (iosxr.devices.configuration.segment_routing.traffic_engineering)
Section titled “on_demand (iosxr.devices.configuration.segment_routing.traffic_engineering)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| bandwidth | Integer | min: 1, max: 4294967295 | No | |
| bfd | Class | [bfd] | No | |
| color | Integer | min: 1, max: 4294967295 | Yes | |
| constraints | Class | [constraints] | No | |
| dynamic | Class | [dynamic] | No | |
| effective_metric | Class | [effective_metric] | No | |
| max_install_standby_paths | Integer | min: 0, max: 3 | No | |
| maximum_sid_depth | Integer | min: 1, max: 255 | No | |
| pce_group | String | No | ||
| per_flow | Class | [per_flow] | No | |
| performance_measurement | Class | [performance_measurement] | No | |
| source_address | IP | No | ||
| srv6 | Class | [srv6] | No | |
| steering | Class | [steering] | No |
policies (iosxr.devices.configuration.segment_routing.traffic_engineering)
Section titled “policies (iosxr.devices.configuration.segment_routing.traffic_engineering)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| auto_route | Class | [auto_route] | No | |
| bandwidth | Integer | min: 1, max: 4294967295 | No | |
| bfd | Class | [bfd] | No | |
| binding_sid_mpls_label | Integer | min: 16, max: 1048575 | No | |
| binding_sid_type | Choice | mpls | No | |
| candidate_paths | List | [candidate_paths] | No | |
| color | Integer | min: 1, max: 4294967295 | Yes | |
| effective_metric | Class | [effective_metric] | No | |
| endpoint_address | IP | No | ||
| ipv6_disable | Boolean | true, false | No | |
| max_install_standby_paths | Integer | min: 0, max: 3 | No | |
| name | String | Yes | ||
| path_protection | Boolean | true, false | No | |
| pce_group | String | No | ||
| performance_measurement | Class | [performance_measurement] | No | |
| shutdown | Boolean | true, false | No | |
| source_address | IP | No | ||
| srv6 | Class | [srv6] | No | |
| steering | Class | [steering] | No | |
| transit_eligible | Boolean | true, false | No |
traces (iosxr.devices.configuration.segment_routing.traffic_engineering)
Section titled “traces (iosxr.devices.configuration.segment_routing.traffic_engineering)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| buffer | Choice | agent, all, bsid, chkpt, common, error, fib, fs, gen-error, im, init, lmrib, lsd, p-cpath, p-lsp, p-state, pcep, pfp, policy, rib, srv-api, timer, treesid, treesid-chkpt | Yes | |
| count | Integer | min: 0, max: 1000000 | Yes |
admin_distances (iosxr.devices.configuration.segment_routing.traffic_engineering.effective_metric)
Section titled “admin_distances (iosxr.devices.configuration.segment_routing.traffic_engineering.effective_metric)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| type | Choice | unknown, hopcount, igp, latency, te | Yes | |
| distance | Integer | min: 1, max: 255 | Yes |
flex_algos (iosxr.devices.configuration.segment_routing.traffic_engineering.effective_metric)
Section titled “flex_algos (iosxr.devices.configuration.segment_routing.traffic_engineering.effective_metric)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| type | Any | Choice[igp, latency, te, bandwidth] or Integer[min: 0, max: 255] or String[Regex: ^.*[\$\%]\{.*$] | Yes | |
| distance | Integer | min: 1, max: 255 | Yes |
affinities (iosxr.devices.configuration.segment_routing.traffic_engineering.interfaces)
Section titled “affinities (iosxr.devices.configuration.segment_routing.traffic_engineering.interfaces)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | Yes |
strict_spf (iosxr.devices.configuration.segment_routing.traffic_engineering.path_disable_algo_checks)
Section titled “strict_spf (iosxr.devices.configuration.segment_routing.traffic_engineering.path_disable_algo_checks)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| all_areas | Boolean | true, false | No | |
| areas | List | [areas] | No |
pces (iosxr.devices.configuration.segment_routing.traffic_engineering.pcc)
Section titled “pces (iosxr.devices.configuration.segment_routing.traffic_engineering.pcc)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| address | Any | IP or String or String[Regex: ^.*[\$\%]\{.*$] | Yes | |
| password | String | No | ||
| password_type | Choice | 7 | No | |
| pce_group | String | No | ||
| precedence | Integer | min: 0, max: 255 | No | |
| tcp_ao_include_tcp_options | Boolean | true, false | No | |
| tcp_ao_keychain | String | No |
profiles (iosxr.devices.configuration.segment_routing.traffic_engineering.pcc)
Section titled “profiles (iosxr.devices.configuration.segment_routing.traffic_engineering.pcc)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| id | Integer | min: 1, max: 65534 | Yes | |
| auto_route | Class | [auto_route] | No | |
| steering_invalidation_drop | Boolean | true, false | No |
entries (iosxr.devices.configuration.segment_routing.traffic_engineering.resource_lists)
Section titled “entries (iosxr.devices.configuration.segment_routing.traffic_engineering.resource_lists)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| index | Integer | min: 1, max: 65535 | Yes | |
| address | String | No | ||
| type | Choice | ipv4-address | No |
mpls (iosxr.devices.configuration.segment_routing.traffic_engineering.segment_lists)
Section titled “mpls (iosxr.devices.configuration.segment_routing.traffic_engineering.segment_lists)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| explicit_segments | List | [explicit_segments] | No |
srv6 (iosxr.devices.configuration.segment_routing.traffic_engineering.segment_lists)
Section titled “srv6 (iosxr.devices.configuration.segment_routing.traffic_engineering.segment_lists)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| explicit_segments | List | [explicit_segments] | No | |
| sid_format | Choice | usid-f3216 | No | |
| topology_check | Boolean | true, false | No |
labeled_services (iosxr.devices.configuration.segment_routing.traffic_engineering.steering)
Section titled “labeled_services (iosxr.devices.configuration.segment_routing.traffic_engineering.steering)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| disable_all | Boolean | true, false | No | |
| disable_bgp_sr_te | Boolean | true, false | No | |
| disable_local | Boolean | true, false | No | |
| disable_on_demand | Boolean | true, false | No | |
| disable_pcep | Boolean | true, false | No |
bfd (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand)
Section titled “bfd (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| enable | Boolean | true, false | No | |
| invalidation_action | Choice | down, none | No | |
| logging_session_state_change | Boolean | true, false | No | |
| minimum_interval | Integer | min: 50, max: 30000 | No | |
| multiplier | Integer | min: 1, max: 10 | No | |
| reverse_path_binding_label | Integer | min: 16, max: 1048575 | No |
constraints (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand)
Section titled “constraints (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| segments | Class | [segments] | No |
dynamic (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand)
Section titled “dynamic (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| affinities | List | [affinities] | No | |
| anycast_sid_inclusion | Boolean | true, false | No | |
| bounds | List | [bounds] | No | |
| disjoint_path | Class | [disjoint_path] | No | |
| metric_margin | Integer | min: 0, max: 2147483647 | No | |
| metric_margin_type | Choice | absolute, relative | No | |
| metric_type | Choice | hopcount, igp, latency, te | No | |
| pcep | Boolean | true, false | No |
effective_metric (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand)
Section titled “effective_metric (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| type | Choice | default, hopcount, igp, latency, te | No | |
| value | Integer | min: 0, max: 4294967295 | No |
per_flow (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand)
Section titled “per_flow (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| default_class | Integer | min: 0, max: 7 | No | |
| enable | Boolean | true, false | No | |
| forward_classes | List | [forward_classes] | No |
performance_measurement (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand)
Section titled “performance_measurement (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| delay | Class | [delay] | No | |
| liveness | Class | [liveness] | No | |
| reverse_path_label | Integer | min: 16, max: 1048575 | No | |
| reverse_path_segment_list | String | No |
srv6 (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand)
Section titled “srv6 (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| behavior | Choice | ub6-encaps-reduced, ub6-insert-reduced | No | |
| locator | String | No |
steering (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand)
Section titled “steering (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| invalidation_drop | Boolean | true, false | No | |
| labeled_services | Class | [labeled_services] | No |
auto_route (iosxr.devices.configuration.segment_routing.traffic_engineering.policies)
Section titled “auto_route (iosxr.devices.configuration.segment_routing.traffic_engineering.policies)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| force_sr_include | Boolean | true, false | No | |
| forward_class | Integer | min: 0, max: 7 | No | |
| include_all_ipv4 | Boolean | true, false | No | |
| include_all_ipv6 | Boolean | true, false | No | |
| include_prefixes | List | [include_prefixes] | No | |
| metric | Integer | min: -10, max: 2147483647 | No | |
| metric_type | Choice | constant, relative | No |
bfd (iosxr.devices.configuration.segment_routing.traffic_engineering.policies)
Section titled “bfd (iosxr.devices.configuration.segment_routing.traffic_engineering.policies)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| disable | Boolean | true, false | No | |
| enable | Boolean | true, false | No | |
| invalidation_action | Choice | down, none | No | |
| logging_session_state_change | Boolean | true, false | No | |
| minimum_interval | Integer | min: 50, max: 30000 | No | |
| multiplier | Integer | min: 1, max: 10 | No | |
| reverse_path_binding_label | Integer | min: 16, max: 1048575 | No |
candidate_paths (iosxr.devices.configuration.segment_routing.traffic_engineering.policies)
Section titled “candidate_paths (iosxr.devices.configuration.segment_routing.traffic_engineering.policies)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| backup_ineligible | Boolean | true, false | No | |
| bidirectional_association_id | Integer | min: 1, max: 65534 | No | |
| bidirectional_corouted | Boolean | true, false | No | |
| constraints | Class | [constraints] | No | |
| effective_metric | Class | [effective_metric] | No | |
| preference | Integer | min: 1, max: 65535 | Yes | |
| lock_duration | Integer | min: 0, max: 3000 | No | |
| paths | List | [paths] | No | |
| pce_group | String | No | ||
| per_flow | Class | [per_flow] | No |
effective_metric (iosxr.devices.configuration.segment_routing.traffic_engineering.policies)
Section titled “effective_metric (iosxr.devices.configuration.segment_routing.traffic_engineering.policies)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| type | Choice | hopcount, igp, latency, te | No | |
| value | Integer | min: 0, max: 4294967295 | No |
performance_measurement (iosxr.devices.configuration.segment_routing.traffic_engineering.policies)
Section titled “performance_measurement (iosxr.devices.configuration.segment_routing.traffic_engineering.policies)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| delay | Class | [delay] | No | |
| liveness | Class | [liveness] | No | |
| reverse_path_label | Integer | min: 16, max: 1048575 | No | |
| reverse_path_segment_list | String | No |
srv6 (iosxr.devices.configuration.segment_routing.traffic_engineering.policies)
Section titled “srv6 (iosxr.devices.configuration.segment_routing.traffic_engineering.policies)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| behavior | Choice | ub6-encaps-reduced, ub6-insert-reduced | No | |
| locator | String | No |
steering (iosxr.devices.configuration.segment_routing.traffic_engineering.policies)
Section titled “steering (iosxr.devices.configuration.segment_routing.traffic_engineering.policies)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| invalidation_drop | Boolean | true, false | No | |
| labeled_services | Class | [labeled_services] | No |
areas (iosxr.devices.configuration.segment_routing.traffic_engineering.path_disable_algo_checks.strict_spf)
Section titled “areas (iosxr.devices.configuration.segment_routing.traffic_engineering.path_disable_algo_checks.strict_spf)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| id | Integer | min: 0, max: 4294967295 | Yes | |
| protocol | Choice | ospf | Yes |
auto_route (iosxr.devices.configuration.segment_routing.traffic_engineering.pcc.profiles)
Section titled “auto_route (iosxr.devices.configuration.segment_routing.traffic_engineering.pcc.profiles)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| force_sr_include | Boolean | true, false | No | |
| forward_class | Integer | min: 0, max: 7 | No | |
| include_all_ipv4 | Boolean | true, false | No | |
| include_all_ipv6 | Boolean | true, false | No | |
| metric | Integer | min: -10, max: 2147483647 | No | |
| metric_type | Choice | constant, relative | No |
explicit_segments (iosxr.devices.configuration.segment_routing.traffic_engineering.segment_lists.mpls)
Section titled “explicit_segments (iosxr.devices.configuration.segment_routing.traffic_engineering.segment_lists.mpls)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | Yes | ||
| entries | List | [entries] | No |
explicit_segments (iosxr.devices.configuration.segment_routing.traffic_engineering.segment_lists.srv6)
Section titled “explicit_segments (iosxr.devices.configuration.segment_routing.traffic_engineering.segment_lists.srv6)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | Yes | ||
| entries | List | [entries] | No | |
| topology_check | Boolean | true, false | No |
segments (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand.constraints)
Section titled “segments (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand.constraints)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| protection_type | Choice | protected-only, protected-preferred, unprotected-only, unprotected-preferred | No | |
| sid_algorithm | Integer | min: 0, max: 255 | No |
affinities (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand.dynamic)
Section titled “affinities (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand.dynamic)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| entries | List | [entries] | No | |
| type | Choice | include-any, include-all, exclude-any | Yes |
bounds (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand.dynamic)
Section titled “bounds (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand.dynamic)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| scope | Choice | cumulative, link | Yes | |
| type | Choice | hopcount, igp, latency, te | Yes | |
| metric | Integer | min: 1, max: 4294967295 | Yes |
disjoint_path (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand.dynamic)
Section titled “disjoint_path (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand.dynamic)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| fallback_disable | Boolean | true, false | No | |
| group_id | Integer | min: 1, max: 65535 | No | |
| shortest_path | Boolean | true, false | No | |
| sub_id | Integer | min: 0, max: 65535 | No | |
| type | Choice | link, node, srlg, srlg-node | No |
forward_classes (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand.per_flow)
Section titled “forward_classes (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand.per_flow)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| color | Integer | min: 1, max: 4294967295 | Yes | |
| id | Integer | min: 0, max: 7 | Yes |
delay (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand.performance_measurement)
Section titled “delay (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand.performance_measurement)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| logging_delay_exceeded | Boolean | true, false | No | |
| profile | String | No |
liveness (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand.performance_measurement)
Section titled “liveness (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand.performance_measurement)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| backup_profile | String | No | ||
| invalidation_action | Choice | down, none | No | |
| logging_session_state_change | Boolean | true, false | No | |
| profile | String | No |
labeled_services (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand.steering)
Section titled “labeled_services (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand.steering)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| disable | Boolean | true, false | No |
include_prefixes (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.auto_route)
Section titled “include_prefixes (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.auto_route)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| address | IP | Yes | ||
| length | Integer | min: 0, max: 32 | Yes | |
| type | Choice | ipv4 | Yes |
constraints (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.candidate_paths)
Section titled “constraints (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.candidate_paths)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| affinities | List | [affinities] | No | |
| bounds | List | [bounds] | No | |
| disjoint_path | Class | [disjoint_path] | No | |
| segments | Class | [segments] | No |
effective_metric (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.candidate_paths)
Section titled “effective_metric (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.candidate_paths)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| type | Choice | hopcount, igp, latency, te | No | |
| value | Integer | min: 0, max: 4294967295 | No |
paths (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.candidate_paths)
Section titled “paths (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.candidate_paths)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| anycast_sid_inclusion | Boolean | true, false | No | |
| hop_type | Choice | mpls, srv6 | No | |
| metric_margin | Integer | min: 0, max: 2147483647 | No | |
| metric_margin_type | Choice | absolute, relative | No | |
| metric_sid_limit | Integer | min: 1, max: 255 | No | |
| metric_type | Choice | hopcount, igp, latency, te | No | |
| pcep | Boolean | true, false | No | |
| reverse_path_segment_list | String | No | ||
| segment_list | String | No | ||
| type | Choice | dynamic, explicit | Yes | |
| weight | Integer | min: 1, max: 4294967295 | No |
per_flow (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.candidate_paths)
Section titled “per_flow (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.candidate_paths)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| default_class | Integer | min: 0, max: 7 | No | |
| enable | Boolean | true, false | No | |
| forward_classes | List | [forward_classes] | No |
delay (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.performance_measurement)
Section titled “delay (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.performance_measurement)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| logging_delay_exceeded | Boolean | true, false | No | |
| profile | String | No |
liveness (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.performance_measurement)
Section titled “liveness (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.performance_measurement)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| backup_profile | String | No | ||
| invalidation_action | Choice | down, none | No | |
| logging_session_state_change | Boolean | true, false | No | |
| profile | String | No |
labeled_services (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.steering)
Section titled “labeled_services (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.steering)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| disable | Boolean | true, false | No |
entries (iosxr.devices.configuration.segment_routing.traffic_engineering.segment_lists.mpls.explicit_segments)
Section titled “entries (iosxr.devices.configuration.segment_routing.traffic_engineering.segment_lists.mpls.explicit_segments)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| index | Integer | min: 1, max: 65535 | Yes | |
| address | String | No | ||
| interface_identifier | Integer | min: 1, max: 65535 | No | |
| label | Integer | min: 0, max: 1048575 | No | |
| type | Choice | adjacency, label | No |
entries (iosxr.devices.configuration.segment_routing.traffic_engineering.segment_lists.srv6.explicit_segments)
Section titled “entries (iosxr.devices.configuration.segment_routing.traffic_engineering.segment_lists.srv6.explicit_segments)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| index | Integer | min: 1, max: 65535 | Yes | |
| address | String | No | ||
| type | Choice | srv6sid | No |
entries (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand.dynamic.affinities)
Section titled “entries (iosxr.devices.configuration.segment_routing.traffic_engineering.on_demand.dynamic.affinities)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | Yes |
affinities (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.candidate_paths.constraints)
Section titled “affinities (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.candidate_paths.constraints)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| entries | List | [entries] | No | |
| type | Choice | exclude-any, include-all, include-any | Yes |
bounds (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.candidate_paths.constraints)
Section titled “bounds (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.candidate_paths.constraints)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| scope | Choice | cumulative, link | Yes | |
| type | Choice | hopcount, igp, latency, te | Yes | |
| metric | Integer | min: 1, max: 4294967295 | Yes |
disjoint_path (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.candidate_paths.constraints)
Section titled “disjoint_path (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.candidate_paths.constraints)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| fallback_disable | Boolean | true, false | No | |
| group_id | Integer | min: 1, max: 65535 | No | |
| shortest_path | Boolean | true, false | No | |
| sub_id | Integer | min: 0, max: 65535 | No | |
| type | Choice | link, node, srlg, srlg-node | No |
segments (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.candidate_paths.constraints)
Section titled “segments (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.candidate_paths.constraints)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| adjacency_sid_only | Boolean | true, false | No | |
| protection_type | Choice | protected-only, protected-preferred, unprotected-only, unprotected-preferred | No | |
| sid_algorithm | Integer | min: 0, max: 255 | No |
forward_classes (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.candidate_paths.per_flow)
Section titled “forward_classes (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.candidate_paths.per_flow)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| color | Integer | min: 1, max: 4294967295 | Yes | |
| id | Integer | min: 0, max: 7 | Yes |
entries (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.candidate_paths.constraints.affinities)
Section titled “entries (iosxr.devices.configuration.segment_routing.traffic_engineering.policies.candidate_paths.constraints.affinities)”| Name | Type | Constraint | Mandatory | Default Value |
|---|---|---|---|---|
| name | String | Yes |
Data Normalization
Section titled “Data Normalization”uSID Block Range Values
The uSID local ID block range fields accept both hexadecimal and integer values. YAML natively parses hex literals (e.g., 0xe000) to their integer equivalents.
usid_local_id_block_explicit_from:0xe000or57344usid_local_id_block_explicit_to:0xe064or57444usid_wide_local_id_block_start:0xfff0or65520
Both formats can be used interchangeably in YAML.
Example YAML Code:
Section titled “Example YAML Code:”Example-1: SRGB and SRLB label ranges for a PE router in a dual-plane SR-MPLS backbone.
iosxr: devices: - name: router-1 host: 10.10.10.1:57400 configuration: segment_routing: global_block_from: 16000 global_block_to: 23999 local_block_from: 15000 local_block_to: 15999Example-2: Mapping server advertising prefix-SIDs for LDP-only routers in a brownfield migration.
iosxr: devices: - name: router-1 host: 10.10.10.1:57400 configuration: segment_routing: global_block_from: 16000 global_block_to: 23999 mapping_server: - address_family: ipv4 prefix_sid_maps: - prefix: 198.51.100.0 length: 24 sid_index: 400 range: 50 attached: true - prefix: 203.0.113.0 length: 24 sid_index: 600 range: 10 - address_family: ipv6 prefix_sid_maps: - prefix: "2001:db8:cafe::" length: 48 sid_index: 700 range: 20 attached: trueExample-3: SRv6 with dual locators for primary and Flex-Algo 128 traffic steering.
iosxr: devices: - name: router-1 host: 10.10.10.1:57400 configuration: segment_routing: srv6: enable: true encapsulation: source_address: "fccc:0:214::1" locators: - name: "MAIN" micro_segment_behavior_unode: "psp-usd" prefix: "fccc:0:214::" length: 48 - name: "ALGO_128" micro_segment_behavior_unode: "psp-usd" prefix: "fccc:0:215::" length: 48 algorithm: 128Example-4: SRv6 encapsulation preserving original traffic class and TTL across the SR domain.
iosxr: devices: - name: router-1 host: 10.10.10.1:57400 configuration: segment_routing: srv6: enable: true encapsulation: source_address: "fccc:0:500::1" traffic_class: propagate hop_limit: propagateTraffic Engineering (SR-TE)
Section titled “Traffic Engineering (SR-TE)”Segment Routing Traffic Engineering (SR-TE) steers traffic along computed paths by encoding segment identifier stacks at the head-end router, eliminating per-hop signaling state. Each SR-TE policy is identified by a (head-end, color, end-point) tuple and carries one or more candidate paths composed of weighted segment lists. The head-end can compute paths locally using CSPF or delegate computation to a Path Computation Element (PCE) via PCEP, with support for affinity constraints, disjoint-path groups, and cumulative metric bounds. Automated steering maps BGP prefixes to SR-TE policies through color extended communities, while interface TE metrics and named affinity maps provide fine-grained control over link selection.
Example-1: PCC with redundant PCE peers for delegated path computation in a dual-stack backbone.
iosxr: devices: - name: router-1 host: 10.10.10.1:57400 configuration: segment_routing: traffic_engineering: logging: pcep_peer_status: true policy_status: true pcc: report_all: true source_address_ipv4: "192.168.255.1" delegation_timeout: 10 dead_timer: 60 initiated_state: 15 initiated_orphan: 10 redundancy: pcc_centric pces: - address: "198.51.100.10" precedence: 100 pce_group: PCE-GROUP1 - address: "2001:db8:ffff::10" precedence: 200Example-2: Affinity maps, TE-metric interfaces, and MPLS/SRv6 segment lists for explicit path steering.
iosxr: devices: - name: router-1 host: 10.10.10.1:57400 configuration: segment_routing: traffic_engineering: te_latency: true affinity_maps: - name: CORE bit_position: 0 - name: LOW_LATENCY bit_position: 1 interfaces: - name: HundredGigE0/0/0/0 metric: 10 affinities: - name: CORE - name: LOW_LATENCY segment_lists: srv6: sid_format: usid-f3216 topology_check: true explicit_segments: - name: SRV6 topology_check: true entries: - index: 1 type: srv6sid address: "fccc:0:214::" mpls: explicit_segments: - name: CORE entries: - index: 1 type: adjacency address: 198.51.100.1 - index: 2 type: mpls-label label: 16001On Demand Colors
Section titled “On Demand Colors”SR-TE On-Demand Next-Hop (ODN) dynamically instantiates SR policies when a BGP next-hop is resolved with a color extended community that has no matching pre-provisioned policy. The router sends a path computation request to the PCE or computes locally using the optimization template defined for that color, which specifies metric type, affinity rules, disjoint-path constraints, and cumulative metric bounds. ODN eliminates the need to pre-provision per-destination policies across the network, scaling naturally as new BGP prefixes with color communities are advertised. Both MPLS and SRv6 data planes are supported, with optional BFD liveness detection, per-flow forwarding classes, and performance measurement profiles for SLA assurance.
Example-1: ODN color 100 — TE-metric optimized with PCE computation
iosxr: devices: - name: router-1 host: 10.10.10.1:57400 configuration: segment_routing: traffic_engineering: on_demand: - color: 100 bandwidth: 500000 maximum_sid_depth: 6 source_address: 192.168.255.1 dynamic: metric_type: te pcep: trueExample-2: ODN color 200 — full-featured low-latency template with PCE, BFD, and performance measurement
iosxr: devices: - name: router-1 host: 10.10.10.1:57400 configuration: segment_routing: traffic_engineering: on_demand: - color: 200 maximum_sid_depth: 6 source_address: 192.168.255.1 dynamic: metric_type: te anycast_sid_inclusion: true pcep: true metric_margin_type: absolute metric_margin: 10 affinities: - type: include-any entries: - name: CORE - name: LOW_LATENCY - type: exclude-any entries: - name: MAINTENANCE bounds: - scope: cumulative type: igp metric: 100 constraints: segments: protection_type: protected-preferred effective_metric: type: igp value: 100 bfd: enable: true multiplier: 3 minimum_interval: 300 invalidation_action: down reverse_path_binding_label: 16100 logging_session_state_change: true performance_measurement: delay: profile: PM-DELAY-PROFILE1 logging_delay_exceeded: trueExample-3: ODN color 300 — SRv6 uSID with IGP-metric optimization
iosxr: devices: - name: router-1 host: 10.10.10.1:57400 configuration: segment_routing: traffic_engineering: on_demand: - color: 300 source_address: "2001:db8:ffff::1" dynamic: metric_type: igp srv6: locator: uSID_Primary behavior: ub6-insert-reducedPolicies
Section titled “Policies”SR-TE policies are statically provisioned traffic-engineered paths identified by a policy name, color, and endpoint address. Each policy carries one or more candidate paths ordered by preference, where the highest-preference valid path is installed in the forwarding table. Candidate paths can use dynamic computation with metric optimization objectives or explicit segment lists for deterministic forwarding. Policies support binding SIDs for hierarchical stitching, auto-route for IGP shortcut injection, BFD-based path liveness, performance measurement with delay and liveness profiles, and bidirectional co-routed associations for symmetric path requirements.
Example-1: Policy with a single dynamic candidate path using IGP-metric optimization
policies: - name: POLICY1 color: 100 endpoint_address: 198.51.100.1 candidate_paths: - preference: 100 paths: - type: dynamic metric_type: igp