The following CLI enables SRv6 in the IS-IS instance and assigns a locator to each algorithm (zero or flexible algorithm).
configure
+--router
+---isis <0..31>
| +---segment-routing-v6
| | +---locator <locator-name>
| | | +--level-capability <level-1|level-2|level-1/2>
| | | +---level <1|2>
| | | | +---metric <1..16777215>
| | | +---tag <1..4294967295>
| | +---shutdown
| | | no shutdown
The IS-IS control plane extensions in support of SRv6 are defined in draft-ietf-lsr-isis-srv6-extensions.
The IS-IS control plane advertises the SRv6 capabilities sub-TLV and the SRv6 Locator TLV. This includes the End function sub-TLV (equivalent to the prefix SID sub-TLV in SR-MPLS) and the End.X function sub-TLV (equivalent to the adjacency SID sub-TLV for a P2P link and a LAN in SR-MPLS).
The weight field in the End.X or LAN End.X sub-TLVs is not filled in on transmit and is ignored on receipt of the link TLV.
The following table describes the supported IS-IS SRv6 TLVs in SR OS.
SRv6 TLV/sub-TLV | Codepoint | IS-IS context TLV | Description | SR OS support |
---|---|---|---|---|
SRv6 Capabilities sub-TLV |
25 |
Router CAPABILITY TLV (242) |
Indicates SRv6 support |
Yes |
SR-Algorithm sub-TLV |
19 |
Router CAPABILITY TLV (242) |
Indicates base algorithm 0 and Flex-Algo 128-255 support |
Yes |
Maximum Segments Left MSD Type sub-TLV |
41 |
Router CAPABILITY TLV (242) |
Indicates how deep a node terminating current segment can process the SRH (Segments-Left field) to move the next SID to outer IPv6 header DA field |
Yes (advertised value = 10 SIDs) Received TLV is displayed in Link State database but is not used for any purpose. |
Maximum End Pop MSD Type sub-TLV |
42 |
Router CAPABILITY TLV (242) |
Maximum number of SIDs in a SRH when a node removes SRH (PSP or USP modes of SRH) |
Yes (advertised value = 9 SIDs) Received TLV is displayed in Link State database but is not used for any purpose. |
Maximum H.Encaps MSD type sub-TLV |
44 |
Router CAPABILITY TLV (242) |
Indicates maximum number of SIDs in an SRH a router can push when forwarding a IP or L2 packet over a SRv6 policy |
Yes (advertised value = 1 SID) Received TLV is displayed in Link State database but is not used for any purpose. |
Maximum End D MSD Type Sub-TLV |
45 |
Router CAPABILITY TLV (242) |
Maximum number of SIDs in a SRH when a node removes SRH and performs the End.DX2/4/6 or End.DT4/6 function (USP mode of SRH) |
Yes (advertised value = 9 SIDs) Received TLV is displayed in Link State database but is not used for any purpose. |
SRv6 Locator TLV |
27 |
Is a top Level IS-IS TLV |
Advertises the locator prefix configured on this node to terminate SIDs in algorithm 0 and flex-algo 128-255 |
Yes |
SRv6 End SID sub-TLV |
5 |
SRv6 Locator TLV |
Advertises the SID for the endpoint or End function (equivalent of prefix SID sub-TLV in SR-MPLS) |
Yes |
Prefix Attribute Flags Sub-TLV |
4 |
SRv6 Locator TLV (also in IP Reach TLV 236) |
Provides attributes of a prefix which is leaked between IS-IS levels |
Yes |
SRv6 End.X SID sub-TLV |
43 |
Top level Extended IS reachability TLV (22) |
Advertises the SID for the adjacency over a P2P link (equivalent of adjacency SID sub-TLV for P2P link in SR-MPLS) |
Yes |
SRv6 LAN End.X SID sub-TLV |
44 |
Top level Extended IS reachability TLV (22) |
Advertises the SID for the adjacency over a LAN (equivalent of adjacency SID sub-TLV for LAN in SR-MPLS) |
Yes |
SRv6 SID Structure Sub-Sub-TLV |
1 |
SRv6 End SID Sub-TLV, SRv6 End.X SID Sub-TLV, SRv6 LAN End.X SID Sub-TLV |
Provides the length of each field (Block, Locator, Function, and Argument) of the SRv6 SID it is advertised with |
No SR OS does not advertise this sub-sub-TLV. If received from other vendor's implementation, it is not displayed in Link-State database and is also not propagated with the locator TLV. |
When both SR-MPLS and SRv6 are enabled on the same IS-IS instance, an MPLS node SID cannot be configured for a prefix of the locator or an End SID. This is because the SRv6 locator subnet cannot be added to a network interface and an MPLS node SID is configurable against a network interface only.
However, both the SRv6 locator route and the SR-MPLS tunnel are programmed if IS-IS receives from a third-party router implementation, a /128 prefix that has both a locator TLV and a prefix SID TLV (with node flag enabled). If the prefix SID is for a subnet larger than /128, only the locator route is programmed and the SR-MPLS tunnel is not.
Each SID function encoded in a SRv6 SID has its own endpoint behavior codepoint as listed in Table: SRv6 SID function endpoint behavior codepoints.
SR OS advertises service SID functions in the BGP control plane only as described in BGP Service control plane extensions.
For the SRH processing and removal at the SID termination , the following modes of operation are associated with the termination of the End or End.X SID. These modes are sometimes referred to as SID flavours and IS-IS assigns a unique codepoint for each mode of the same End or End.X SID.
SID function endpoint behavior | Codepoint RFC 8986 |
SID type: End.SID | SID type: End.X SID | SID type: LAN End.X SID | Advertising protocol | Supported |
---|---|---|---|---|---|---|
End (PSP, USP, USD) |
1-4, 28-31 |
Yes |
No |
No |
IS-IS |
Yes IS-IS only {PSP value=2, USP value=3} |
End.X (PSP, USP, USD) |
5-8, 32-35 |
No |
Yes |
Yes |
IS-IS |
Yes IS-IS only {PSP value=6, USP value=7} } |
End.T (PSP, USP, USD) |
9-12, 36-39 |
Yes |
No |
No |
IS-IS |
No1
|
End.DX6 |
16 |
No |
Yes |
Yes |
BGP or IS-IS |
No1 |
End.DX4 |
17 |
No |
Yes |
Yes |
BGP or IS-IS |
No1 |
End.DT6 |
18 |
Yes |
No |
No |
BGP or static |
Yes1 BGP only. |
End.DT4 |
19 |
Yes |
No |
No |
BGP or static |
Yes1 BGP only. |
End.DT46 |
20 |
Yes |
No |
No |
BGP or static |
Yes1 BGP only. |
End.DX2 |
21 |
Yes |
No |
No |
BGP or static |
Yes1 BGP only. |
IS-IS saves SID sub-TLVs for endpoint behavior values that it does not support, if received from a third-party implementation. However, it only uses End and End.X endpoint behaviors in RLFA and TI-LFA.
BGP advertises the supported endpoint behaviors End.DT4, End.DT6, End.DT46, and End.DX2 and accepts any behavior codepoint with a supported NLRI type.