IS-IS for SR-MPLS

SR-MPLS uses an IGP to advertise topology, prefix, SRGB, and label information. To complete the preceding function, the IGP extends some TLVs of protocol packets. IS-IS mainly defines sub-TLVs for SID and NE SR-MPLS capabilities, as listed in Table 1.
Table 1 IS-IS sub-TLV extensions for SIDs and SR-MPLS capabilities

Name

Function

Carried In

Prefix-SID Sub-TLV

Advertises SR-MPLS prefix SIDs.

  • IS-IS Extended IPv4 Reachability TLV-135
  • IS-IS Multitopology IPv4 Reachability TLV-235
  • IS-IS IPv6 IP Reachability TLV-236
  • IS-IS Multitopology IPv6 IP Reachability TLV-237
  • SID/Label Binding TLV and so on

Adj-SID Sub-TLV

Advertises SR-MPLS adjacency SIDs on a P2P network.

  • IS-IS Extended IS reachability TLV-22
  • IS-IS IS Neighbor Attribute TLV-23
  • IS-IS inter-AS reachability information TLV-141
  • IS-IS Multitopology IS TLV-222
  • IS-IS Multitopology IS Neighbor Attribute TLV-223

LAN-Adj-SID Sub-TLV

Advertises SR-MPLS adjacency SIDs on a LAN.

  • IS-IS Extended IS reachability TLV-22
  • IS-IS IS Neighbor Attribute TLV-23
  • IS-IS inter-AS reachability information TLV-141
  • IS-IS Multitopology IS TLV-222
  • IS-IS Multitopology IS Neighbor Attribute TLV-223

SID/Label Sub-TLV

Advertises SR-MPLS SIDs or MPLS labels.

SR-Capabilities Sub-TLV and SR Local Block Sub-TLV

SID/Label Binding TLV

Advertises the mapping between prefixes and SIDs.

IS-IS LSP

SR-Capabilities Sub-TLV

Advertises SR-MPLS capabilities.

IS-IS Router Capability TLV-242

SR-Algorithm Sub-TLV

Advertises the algorithm that is used. For details, see SR-MPLS Flex-Algo.

IS-IS Router Capability TLV-242

IS-IS FAD sub-TLV

Advertises the Flex-Algo definition (FAD) of IS-IS. For details, see SR-MPLS Flex-Algo.

IS-IS Router Capability TLV-242

SR Local Block Sub-TLV

Advertises the range of labels reserved for local SIDs.

IS-IS Router Capability TLV-242

IS-IS TLV Extensions for SIDs

Prefix-SID Sub-TLV

The Prefix-SID sub-TLV carries IGP prefix SID information. Figure 1 shows the format of this sub-TLV.
Figure 1 Prefix-SID sub-TLV format
Table 2 Fields in the Prefix-SID sub-TLV

Field

Length

Description

Type

8 bits

Unassigned. The recommended value is 3.

Length

8 bits

Packet length.

Flags

8 bits

Flags field. Figure 2 shows the format of this field.
Figure 2 Flags field
In this field:
  • R: re-advertisement flag. If this flag is set, the prefix to which the prefix SID is attached may be imported from another protocol or propagated by a node of another level (for example, from IS-IS Level 1 to Level 2).
  • N: node SID flag. If this flag is set, the prefix SID refers to the node identified by the prefix. Generally, this flag is set if a loopback interface address is configured as the prefix SID.
  • P: no-PHP flag. If this flag is set, penultimate hop popping (PHP) is disabled so that the penultimate node does not remove the label of the egress before sending the packet to the egress.
  • E: explicit-null flag. If this flag is set, the explicit-null label function is enabled, requiring the upstream neighbor to replace the prefix SID with a prefix SID that has an explicit null value before forwarding the packet.
  • V: value flag. If this flag is set, the prefix SID carries a value, instead of an index. By default, the flag is not set.
  • L: local flag. If this flag is set, the value or index carried in the prefix SID is of local significance. By default, the flag is not set.

When computing the outgoing label for a packet destined for a prefix, a node must consider the P and E flags in the prefix SID advertised by the next hop, regardless of whether the optimal path to the prefix SID passes through the next hop. When propagating (from either Level-1 to Level-2 or Level-2 to Level-1) a reachability advertisement originated by another IS-IS speaker, the local node must set the P flag and clear the E flag in relevant prefix SIDs.

The following behavior is associated with the settings of P and E flags:
  • If the P flag is not set, any upstream neighbor of the prefix SID originator must remove the prefix SID. This is equivalent to the PHP mechanism used in MPLS forwarding. The MPLS EXP bits of the prefix SID are also cleared. In addition, if the P flag is not set, the received E flag is ignored.
  • If the P flag is set, then:
    • If the E flag is not set, any upstream neighbor of the prefix SID originator must keep the prefix SID on top of the stack. This is useful when, for example, the originator of the Prefix-SID must stitch the incoming packet into a continuing MPLS LSP to the final destination.
    • If the E flag is set, any upstream neighbor of the prefix SID originator must replace the prefix SID with a prefix SID having an explicit null value. In this mode, MPLS EXP bits can be reserved. If the originator of the prefix SID is the final destination for the related prefix, the packet with original EXP bits can be received. MPLS EXP bits can be used for QoS services.

Algorithm

8 bits

Algorithm that is used.
  • 0: shortest path first (SPF) algorithm
  • 1: strict SPF algorithm

SID/Index/Label (variable)

Variable

This field contains either of the following information based on the V and L flags:
  • 4-octet index defining the offset in the SID/label space. In this case, the V and L flags cannot be set.
  • 3-octet local label where the 20 rightmost bits are used for encoding the label value. In this case, the V and L flags must be set.

Adj-SID Sub-TLV

The Adj-SID sub-TLV is an optional sub-TLV carrying IGP adjacency SID information. Figure 3 shows the format of this sub-TLV.
Figure 3 Adj-SID sub-TLV format
Table 3 Fields in the Adj-SID sub-TLV

Field

Length

Description

Type

8 bits

Unassigned. The recommended value is 31.

Length

8 bits

Packet length.

Flags

8 bits

Flags field. Figure 4 shows the format of this field.
Figure 4 Flags field
In this field:
  • F: address family flag.
    • 0: IPv4
    • 1: IPv6
  • B: backup flag. If the flag is set, the Adj-SID is used to protect another node.
  • V: value flag. If the flag is set, the Adj-SID carries a label value. By default, the flag is set.
  • L: local flag. If the flag is set, the value or index carried by the Adj-SID has local significance. By default, the flag is set.
  • S: set flag. If the flag is set, the Adj-SID refers to a set of adjacencies.
  • P: persistent flag. If the flag is set, the Adj-SID is persistently allocated, for example, the Adj-SID remains unchanged regardless of a device restart or interface flapping.

Weight

8 bits

Weight of the Adj-SID for the purpose of load balancing.

SID/Index/Label (variable)

Variable

This field contains either of the following information based on the V and L flags:
  • 3-octet local label where the 20 rightmost bits are used for encoding the label value. In this case, the V and L flags must be set.
  • 4-octet index defining the offset in the SID/label space. In this case, the V and L flags cannot be set.

A designated intermediate system (DIS) is elected as a medium during IS-IS communications on a LAN. On the LAN, a node only needs to advertise one adjacency to the DIS and obtain all adjacency information from the DIS, without the need to exchange adjacency information with other nodes.

When SR is used, each node needs to advertise the Adj-SID of each of its neighbors. On the LAN, each node advertises only an IS-IS Extended IS reachability TLV-22 to the DIS and encapsulates the set of Adj-SIDs (for each of its neighbors) inside a newly defined sub-TLV: LAN-Adj-SID sub-TLV. This sub-TLV contains the set of Adj-SIDs assigned by a node to each of its LAN neighbors.

Figure 5 shows the format of the LAN-Adj-SID sub-TLV.
Figure 5 LAN-Adj-SID sub-TLV format

SID/Label Sub-TLV

The SID/Label sub-TLV contains a SID or an MPLS label. It is a part of the SR-Capabilities sub-TLV.

Figure 6 shows the format of the SID/Label sub-TLV.
Figure 6 SID/Label sub-TLV format
Table 4 Fields in the SID/Label sub-TLV

Field

Length

Description

Type

8 bits

Unassigned. The recommended value is 1.

Length

8 bits

Packet length.

SID/Label (variable)

Variable

If the Length field value is set to 3, the 20 rightmost bits indicate an MPLS label.

SID/Label Binding TLV

The SID/Label Binding TLV, which applies to SR and LDP interworking scenarios, can be used to advertise prefix-to-SID mappings.

Figure 7 shows the format of the SID/Label Binding TLV.
Figure 7 SID/Label Binding TLV format
Table 5 Fields in the SID/Label Binding TLV

Field

Length

Description

Type

8 bits

Unassigned. The recommended value is 1.

Length

8 bits

Packet length.

Flags

8 bits

Flags field.
+-+-+-+-+-+-+-+-+
|F|M|S|D|A|     |
+-+-+-+-+-+-+-+-+

Range

16 bits

Range of addresses and their associated prefix SIDs.

Prefix Length

8 bits

Prefix length.

Prefix

Variable

Prefix.

SubTLVs

Variable

Sub-TLVs, for example, the SID/Label sub-TLV.

IS-IS TLV Extensions for SR Capabilities

SR-Capabilities Sub-TLV

SR requires each node to advertise its SR capabilities and the range of global SIDs (or global indexes). To meet this requirement, the SR-Capabilities sub-TLV is defined and inserted into the IS-IS Router Capability TLV-242 for transmission. The SR-Capabilities sub-TLV can be propagated only within the same IS-IS level and must not be propagated across IS-IS levels.

Figure 8 shows the format of the SR-Capabilities sub-TLV.
Figure 8 SR-Capabilities sub-TLV format
Table 6 Fields in the SR-Capabilities sub-TLV

Field

Length

Description

Type

8 bits

Unassigned. The recommended value is 2.

Length

8 bits

Packet length.

Flags

8 bits

Flags field. Figure 9 shows the format of this field.
Figure 9 Flags field
In this field:
  • I: MPLS IPv4 flag. If the flag is set, SR-MPLS IPv4 packets received by all interfaces can be processed.
  • V: MPLS IPv6 flag. If the flag is set, SR-MPLS IPv6 packets received by all interfaces can be processed.

Range

24 bits

SRGB range.

For example, the originating node advertises SR-Capabilities of the following ranges:

SR-Capability 1: range: 100; SID value: 100
SR-Capability 2: range: 100; SID value: 1000
SR-Capability 3: range: 100; SID value: 500

The receiving nodes concatenate the ranges in the received order and build the SRGB as follows:

SRGB = [100, 199]
       [1000, 1099]
       [500, 599]

Different indexes may span multiple ranges.

Index 0 indicates label 100.
...
Index 99 indicates label 199.
Index 100 indicates label 1000.
Index 199 indicates label 1099.
...
Index 200 indicates label 500.
...

SID/Label Sub-TLV (variable)

Variable

For details, see SID/Label Sub-TLV. The SID/Label sub-TLV contains the first value of the involved SRGB. When multiple SRGBs are configured, ensure that the SRGB sequence is correct and the SRGBs do not overlap.

SR Local Block Sub-TLV

The SR Local Block sub-TLV contains the range of labels that a node has reserved for local SIDs. Local SIDs are used for adjacency SIDs, and may also be allocated by components other than the IS-IS protocol. For example, an application or a controller may instruct the node to allocate a specific local SID. Therefore, in order for such applications or controllers to know what local SIDs are available on the node, it is required that the node advertises its SR local block (SRLB).

Figure 10 shows the format of the SR Local Block sub-TLV.
Figure 10 SR Local Block sub-TLV format
Table 7 Fields in the SR Local Block sub-TLV

Field

Length

Description

Type

8 bits

Unassigned. The recommended value is 2.

Length

8 bits

Packet length.

Flags

8 bits

Flags field. This field is not defined currently.

Range

8 bits

SRLB range.

SID/Label Sub-TLV (variable)

Variable

For details, see SID/Label Sub-TLV. The SID/Label sub-TLV contains the first value of the involved SRLB. When multiple SRLBs are configured, ensure that the SRLB sequence is correct and the SRLBs do not overlap.

A node advertising the SR Local Block sub-TLV may also have other label ranges, outside the SRLB, for its local allocation purposes that are not advertised in the SRLB. For example, it is possible that an adjacency SID is allocated using a local label, which is not part of the SRLB.

Copyright © Huawei Technologies Co., Ltd.
Copyright © Huawei Technologies Co., Ltd.
< Previous topic Next topic >