Information About ISIS Manual Adjacency SID
Segment routing (SR) networks often use SR Traffic Engineering (SR-TE) to influence the path the specific traffic takes over the network. SR-TE tunnels can be provisioned manually on the tunnel head, but often they are calculated and provisioned by the central controller. In many cases operator of the network wants to be able to force the traffic over specific nodes and links.
To force the traffic over a certain node in the SR network operators can use Prefix-SID that is advertised by the node. Many times the anycast Prefix SID is used which forces the traffic to go over specific location where multiple nodes share the same Prefix-SID.
To force the traffic over the specific link, an Adjacency-SID (Adj-SID) is used. The problem with the existing implementation of the Adj-SID is that it is a dynamically allocated value which is in contrast to manually provisioned prefix-SID. The fact that the Adj-SID is dynamically allocated brings a set of problems:
The value is not persistent over reload or process restart.
The value is not known upfront so controller cannot use it unless it has access to the information flooded by IGP (natively or through BGP-LS).
Each link is allocated a unique adj-SID value which prevents the same adj-SID to be shared by multiple links.
To address the above mentioned issues, the adj-SIDs are enhanced and now thay are capable of the following:
Support manually provisioned adj-SID that is persistent over reload and restart.
Support same adj-SID to be provisioned for multiple adjacencies to the same neighbor.
Support same adj-SID to be provisioned for multiple adjacencies going to different neighbors.
Multiple manual Adj-SIDs can be configured for a single adjacency.
Manual Adjacency SID
The existing IS-IS Adj-SID infrastructure that is being used for dynamically allocated Adj-SIDs is extended to support the new persistent Adj-SID requirements. A new CLI command is also introduced to manually assign Adj-SID values for point-to-point links. Multiple Adj-SIDs can be provisioned on a single point-to-point interface. Same Adj-SID can be provisioned on multiple point-to-point interfaces leading to the same or different neighbors.
All manual Adj-SIDs are assigned from a range of labels called Segment Routing Local Block(SRLB). The default SRLB Range is 15000-15999.
Manual Adj-SIDs can be configured as an Index or an Absolute value. If it is configured as an index, the absolute label is calculated as an index + SRLB starting label. For example, if you configure 56 as a manual Adj-SID index, the absolute label would be 15000 + 56 = 15056. If it is configured as an absolute, the label itself is the absolute value. For example, if you configure 56 as an absolute manual Adj-SID, the absolute label would be 56 only. Labels (both index and absolute) can be configured as protected or non-protected. By default, all the labels are non-protected.
Adjacency SID Advertisement
Manual adj-SIDs are advertised using existing ISIS adj-SID sub-TLV as defined in the ISIS SR extension draft. If the same value of the adj-SID has been provisioned on multiple interfaces, the S-Flag is set in the adj-SID sub-TLV. In the case of manual adj-SID, P flag is always set.
If the provisioned adj-SID has been configured as protected, the B-flag also gets set.
Adjacency-SIDs are always advertised as a label value and never as an index even if the index are used to configure the adj-SID.
Adjacency SID Forwarding
When the adj-SID value is only configured on a single interface, then the ISIS installs forwarding entries for manually allocated adj-SIDs. The primary path for any Adj-SID is a POP operation over the point-to-point interface for which the Adj-SID is allocated. If the allocated adj-SID is eligible for backup and the backup path is available, IS-IS programs the backup path as well. The backup path for Adj-SID is equal to the backup path computed for the neighbor router-id address.
If the same adj-SID value is configured on multiple links forwarding happens as the following:
Primary path with POP operation is installed via each link where adj-SID is configured with that value.
For each primary path if the adj-SID is configured as protected on the primary interface and backup is available, backup path gets installed. Backup path is represented as a backup path associated with the neighbor router-id address.
Ensure that segment routing is configured globally.
Ensure that segment routing is configured using IS-IS.