Summary
Traffic Dictator version 1.4 has been released on 21.03.2025. This article describes changes in the new version.
New feature: disjoint-group
Disjoint-group ensures that multiple policies that are in the same group never use the same links. Common use case is have 2 redundant traffic flows with guarantee that if any link in the network fails, one of the traffic flows will be unaffected.
Config model:
traffic-eng policies
policy [name]
!
candidate-path preference <0-4294967295>
disjoint-group <1-65535>
Example:
In this topology, policies “R1_R5” and “R1_R5_disjoint” are configured with the same disjoint-group. Config:
traffic-eng policies
!
policy R1_R5
headend 1.1.1.1 topology-id 101
endpoint 5.5.5.5 color 101
binding-sid 966668
priority 7 7
install direct srte 192.168.123.101
!
candidate-path preference 100
metric te
disjoint-group 100
bandwidth 1 gbps
!
policy R1_R5_disjoint
headend 1.1.1.1 topology-id 101
endpoint 5.5.5.5 color 102
binding-sid 966670
priority 7 7
install direct srte 192.168.123.101
!
candidate-path preference 100
metric te
disjoint-group 100
bandwidth 1 gbps
Now let’s check detailed policy output:
knecht#show traffic-eng policy R1_R5 detail
Detailed traffic-eng policy information:
Traffic engineering policy "R1_R5"
Valid config, Active
Headend 1.1.1.1, topology-id 101, Maximum SID depth: 6
Endpoint 5.5.5.5, color 101
Endpoint type: Node, Topology-id: 101, Protocol: isis, Router-id: 0005.0005.0005.00
Setup priority: 7, Hold priority: 7
Reserved bandwidth bps: 1000000000
Install direct, protocol srte, peer 192.168.123.101
Policy index: 5, SR-TE distinguisher: 16777221
Binding-SID: 966668
Candidate paths:
Candidate-path preference 100
Path config valid
Metric: te
Disjoint-group: 100
Path-option: dynamic
This path is currently active
Calculation results:
Aggregate metric: 1000
Topologies: ['101']
Segment lists:
[900003, 900005]
Policy statistics:
Last config update: 2025-03-21 08:51:57,634
Last recalculation: 2025-03-21 08:51:58.285
Policy calculation took 0 miliseconds
knecht#show traffic-eng policy R1_R5_disjoint detail
Detailed traffic-eng policy information:
Traffic engineering policy "R1_R5_disjoint"
Valid config, Active
Headend 1.1.1.1, topology-id 101, Maximum SID depth: 6
Endpoint 5.5.5.5, color 102
Endpoint type: Node, Topology-id: 101, Protocol: isis, Router-id: 0005.0005.0005.00
Setup priority: 7, Hold priority: 7
Reserved bandwidth bps: 1000000000
Install direct, protocol srte, peer 192.168.123.101
Policy index: 6, SR-TE distinguisher: 16777222
Binding-SID: 966670
Candidate paths:
Candidate-path preference 100
Path config valid
Metric: te
Disjoint-group: 100
Path-option: dynamic
This path is currently active
Calculation results:
Aggregate metric: 1000
Topologies: ['101']
Segment lists:
[900002, 900005]
Policy statistics:
Last config update: 2025-03-21 08:51:57,634
Last recalculation: 2025-03-21 08:51:58.285
Policy calculation took 0 miliseconds
Note that these 2 policies have different segment lists, even though the candidate path option is the same. This is because TD keeps track of links used for policies in a disjoint-group and when calculating another policy with the same disjoint group, these links are excluded when running CSPF.
Disjoint-groups are supported with SR-TE and RSVP-TE policies; it is also possible to put SR-TE and RSVP-TE policies in the same disjoint-group.
Limitations
1. When calculating a policy with disjoint-group, TD doesn’t use ECMP. This is an obvious design decision because if the path has ECMP links, different disjoint policies can just use different links.
2. Disjoint-groups are not supported with explicit path option.
Bug fixes and improvements
1. When there is a lot of BGP-LS route churn, sometimes policy engine would send bandwidth reservation update for non-existing links or topologies (bug #40). This was a race condition between different Kafka topics. Fixed by putting all topology updates in the same topic so now it’s strictly consequential.
2. Incorrect parsing of BGP Peer SID routes from some implementations (bug #41). Some vendors send the same TLV twice in a Peer SID BGP-LS route and that caused a problem with parsing. Fixed now.
3. Added PCEP commands to “show tech”.
Download
You can download the new version of Traffic Dictator from the Downloads page.
