Saturday, October 28, 2017

Learn Segment Routing Concept (1) -- SEGMENT IDENTIFIER

Segment routing is a new technology developed by Cisco systems and its partners to forward traffic more efficiently than in traditional MPLS networks. It is mainly targeted at service providers, data centres, metropolitan-area networks and large enterprises that use WAN. Segment routing can be implemented on top of OSPF, IS-IS, MPLS and IPv6 configurations with little to no changes.
Segment routing has been well received because it simplifies the network and allows it to scale a lot more efficiently than MPLS networks by reducing the number of protocols required. Segment routing also makes IPv6 more relevant and it is the next step in making networks as scalable as possible.
Scalability of the network is essential because the number of network devices and the amount of traffic are increasing rapidly over time. Cisco has forecasted that the amount of traffic will triple between 2013 and 2018. This means that the network must adapt extremely quickly. (Nokia Oyj 2016a.) Segment routing is also the answer to the needs of software defined networking. Certain applications require the lowest latency path but a traditional routing protocol may forward the traffic through a higher latency higher bandwidth route. Source routing enables the application to choose the lower latency path if necessary.


Figure above shows which parts of the network receive their own segment identifier. Segment identifiers are encoded as either MPLS labels or IPv6 addresses. Each node and link get their own segment identifier in a segment routing network. These segment identifiers are globally significant in the segment routing domain, which makes troubleshooting the network easier than in MPLS LDP networks where labels have only local significance.
Segment routing does not require LDP or RSVP-TE to work. The label distribution is handled by IGP. RSVP-TEs downside is that it must maintain a state on each router along the path, which makes it scale poorly. The only state that segment routing traffic engineering (SR-TE) must maintain is at the ingress router. This allows the network to scale significantly better than with the older technologies.
The introduction of segment routing has also renewed the interest in stateful active path computation element (PCE). PCE is a traffic engineering controller that manages the network by allocating the correct paths and resources to the services that need them. The use of PCE also makes software defined networking (SDN) more appealing in WAN networks. The simplification of the network allows features like bandwidth calendaring and bandwidth on demand which are needed by the SDN applications.


SEGMENT IDENTIFIER

 Segment identifiers (SIDs) are used in the SR network to identify different parts of the network. Segment routing reduces the number of labels required in the network because a label can indicate a whole path instead of just one hop to the next node like in RSVP-TE. Commonly used segment identifiers include Prefix, Adjacency and Anycast-SID.

PREFIX-SID

A prefix-SID is the SID of an IGP-prefix segment. A prefix-SID is a unique identifier within the SR/IGP domain. An IGP-prefix segment consists of the following fields: type, length, flags, algorithm and SID/Index/Label as shown in figure below
The type field signifies the type of the packet. In this case, the type value is set to 3. Length is a variable that can be different for every label.
The flag field specifies how the prefix-SID should be handled. There are six different flags in total. Each flag can have a value of either 0 or 1. The behaviour of the packet changes depending on the flag values.
R-flag means that the prefix-SID is redistributed or from another level, for example a level-1 prefix-SID propagated to level-2. Redistribution means the flag has been redistributed by another protocol. N-flag specifies that the prefix-SID is a Node-SID which means that it refers to a router’s loopback address. N flag can be unset to prevent it from referring to a router. This is needed when configuring an anycast-SID.
P-flag prevents the PHP-operation from being applied to the prefix-SID when set. P-flag can be disabled to enable the PHP-operation. PHP reduces the load on edge routers. E-flag specifies that the upstream routers must have an explicit-null value for that prefix-SID. A label with explicit-null value will be popped when received by an LSR.
V-flag is unset by default, which means that the packet carries an index. If V flag is set, then the packet carries a local label value instead. An index value is used to determine the SID or label value. L-flag is also unset by default. If L flag is set, the prefix-SID is only locally significant. Locally significant labels are not distributed to other routers.
The algorithm field defines how the packet must be forwarded to its destination. A value 0 in the algorithm field signifies that the packet must take the Shortest Path First (SPF) computed by IS-IS. However, this SPF calculation can be overwritten by any router on the path that has a local policy. A value of 1 means that the Shortest Path First calculation is strict and cannot be overwritten by local policies.
The SID/Index/Label field contains an index that defines the offset in the label space. This can be used to calculate the SID of the segment.
Segment routing Node-SID or IGP Node Segment identifies a specific router in the network by using the nodes loopback address as the prefix. Node-SID can be used to navigate from any point of the segment routing network to a segment routing node (LSR) with a corresponding Node-SID.

ADJACENCY-SID 

An adjacency segment identifier (Adj-SID) is used by a segment routing node to advertise its links to adjacent routers. Adj-SIDs are not unique within the SR domain by default. Adj-SIDs are allocated from the dynamic label range which starts from 24000 in IOS-XRv. Multiple links can have the same Adj-SID.
Adjacency-SID consists of Type, Length, Flags, Weight and SID/Index/Label fields. Adj-SIDs suggested type value is 31. Length is variable on label-to-label basis.
The flag field has the following flag settings: F, B, V, L and S. F-flag is the address-family flag. If the F-flag is set, the adjacency is IPv6. If left unset, the adjacency is IPv4. B-flag is the Backup-flag. If backup-flag is set, the adjacencySID can be protected by TI-LFA. More information about TI-LFA can be found in Chapter 4.6.
V-flag signifies that the Adj-SID has a value. It is set by default. L-flag is the Local-flag. It is set by default and means that the Adj-SID is locally significant. S-flag indicates that the Adj-SID is used for multiple adjacencies when set.
The weight field determines the Adj-SIDs weight in load-balancing scenarios where there are multiple paths with the same Adj-SID. For example, link A and link B both have Adj-SID of 24005. Link A has a weight of 1 and link B has a weight of 2. The traffic will be load-balanced between link A and B in 1:2 ratio.
The SID/Index/Label field contains either a local label, an index defining the offset in Label space or an IPv6 address. The local label requires that V and L flags are set. However, if they are unset, the field will be an index field. An IPv6 address requires that V-flag is set. L-flag can be either set or unset depending whether the IPv6 address is globally or locally significant.

BINDING-SID 

Binding-SID is a label that can be used to nest and stitch domains together. This feature is useful if there are non-SR domains on the path of the traffic. For example, if two SR-domains are separated by an RSVP-TE domain, the binding-SID can be used to reach the start of the RSVP-TE tunnel. Using a binding-SID between two domains on a gateway allows the usage of a much shorter label stack.






Friday, October 27, 2017

Learn Segment Routing with ASR 9000 (1) --- Prefix&Adjacency Sid Assignment




From days on, I will publish a series of blogs related with segment routing cause I am learning this new technology and it is the trend definitely. The best way to understand it in fast way is to try it in real. I am using cisco xrv 9000 for experiment, which support almost all segment routing features and easy to get.
Below is the topology used.
xrv1 & xrv2:  PE
xrv 3: P node
xrv 5 & xrv6: RR.
xrv 4: IGW
xrv7: ISP

1. Basic segment routing configuration example:

below is the ISIS configuration on xrv1. This is a configuration with tuned parameters already. Segment routing related commands are marked out for reference.
router isis 1
 is-type level-2-only
 net 49.0001.0101.2722.4001.00
 lsp-gen-interval maximum-wait 10000 initial-wait 0 secondary-wait 10 level 2
 address-family ipv4 unicast
  metric-style wide level 2
  mpls traffic-eng level-2-only
  mpls traffic-eng router-id Loopback0

  spf-interval maximum-wait 10000 initial-wait 0 secondary-wait 10 level 2
  segment-routing mpls
 !
 interface Loopback0
  address-family ipv4 unicast
   prefix-sid index 1001
  !
 !
 interface GigabitEthernet0/0/0/1
  point-to-point
  address-family ipv4 unicast
   fast-reroute per-prefix level 2
   fast-reroute per-prefix ti-lfa level 2
  !
 !
 interface GigabitEthernet0/0/0/2
  point-to-point
  address-family ipv4 unicast
   fast-reroute per-prefix level 2
   fast-reroute per-prefix ti-lfa level 2
  !
 !
!
Configuration on xrv2,3,4 are similar. Only net id is different. But xrv5 and xrv6 are not enabled with segment routing as they are used for RR and should NOT be used for traffic forwarding. xrv7 is used for simulating higher tier service provider that without segment routing capability.

Next we are going to check the result and see how prefix and adjacency sid are allocated.

Check the global-sid block: 

this block is reserved for prefix sid to ensure labels used for identify nodes are available on all nodes. This block is the default value. It is suggested all nodes are configured with same range. If you modify this range, you might need to reboot the device as some of the labels in the range might been used by LDP/TE protocols.

RP/0/0/CPU0:Edge1#show mpls label table detail
Tue Aug 29 12:45:40.331 UTC
Table Label   Owner                           State  Rewrite
----- ------- ------------------------------- ------ -------
0     0       LSD(A)                          InUse  Yes
0     1       LSD(A)                          InUse  Yes
0     2       LSD(A)                          InUse  Yes
0     13      LSD(A)                          InUse  Yes
0     16000   ISIS(A):1                       InUse  No  (Lbl-blk SRGB, vers:0, (start_label=16000, size=8000)0     24000   ISIS(A):1                       InUse  Yes
  (SR Adj Segment IPv4, vers:0, index=1, type=0, intf=Gi0/0/0/2, nh=3.3.3.23)
0     24001   ISIS(A):1                       InUse  Yes
  (SR Adj Segment IPv4, vers:0, index=3, type=0, intf=Gi0/0/0/2, nh=3.3.3.23)
0     24002   LDP(A)                          InUse  Yes
  (IPv4, vers:0, 'default':4U, 3.3.3.28/31)
0     24003   LDP(A)                          InUse  Yes
  (IPv4, vers:0, 'default':4U, 10.127.224.2/32)
0     24004   LDP(A)                          InUse  Yes
  (IPv4, vers:0, 'default':4U, 10.127.224.3/32)
0     24005   LDP(A)                          InUse  Yes
  (IPv4, vers:0, 'default':4U, 3.3.3.60/31)
0     24006   LDP(A)                          InUse  Yes
  (IPv4, vers:0, 'default':4U, 3.3.3.48/31)
0     24007   LDP(A)                          InUse  Yes
  (IPv4, vers:0, 'default':4U, 3.3.3.40/31)
0     24008   LDP(A)                          InUse  Yes
  (IPv4, vers:0, 'default':4U, 3.3.3.10/31)
0     24009   LDP(A)                          InUse  Yes
  (IPv4, vers:0, 'default':4U, 10.127.224.4/32)
0     24010   LDP(A)                          InUse  Yes
  (IPv4, vers:0, 'default':4U, 10.127.224.101/32)
0     24011   LDP(A)                          InUse  Yes
  (IPv4, vers:0, 'default':4U, 10.127.224.102/32)
0     24012   ISIS(A):1                       InUse  Yes
  (SR Adj Segment IPv4, vers:0, index=1, type=0, intf=Gi0/0/0/1, nh=3.3.3.25)
0     24013   ISIS(A):1                       InUse  Yes
  (SR Adj Segment IPv4, vers:0, index=3, type=0, intf=Gi0/0/0/1, nh=3.3.3.25)

Check prefix-sid learned:

Use ISIS command to check, currently I only find prefix-sid information vis ISSI CLI:
RP/0/0/CPU0:Edge1# show isis route detail
Tue Aug 29 16:11:47.403 UTC
IS-IS 1 IPv4 Unicast routes
Codes: L1 - level 1, L2 - level 2, ia - interarea (leaked into level 1)
       df - level 1 default (closest attached router), su - summary null
       C - connected, S - static, R - RIP, B - BGP, O - OSPF
       E - EIGRP, A - access/subscriber, M - mobile, a - application
       i - IS-IS (redistributed from another instance)
Maximum parallel path count: 8
L2 3.3.3.10/31 [20/115] low priority
     via 3.3.3.25, GigabitEthernet0/0/0/1, Core, SRGB Base: 16000, Weight: 0
     src Core.00-00, 10.127.224.3
C  3.3.3.22/31
     is directly connected, GigabitEthernet0/0/0/2
   L2 adv [10] IS-IS interface
C  3.3.3.24/31
     is directly connected, GigabitEthernet0/0/0/1
   L2 adv [10] IS-IS interface
L2 3.3.3.28/31 [20/115] low priority
     via 3.3.3.25, GigabitEthernet0/0/0/1, Core, SRGB Base: 16000, Weight: 0
     via 3.3.3.23, GigabitEthernet0/0/0/2, Edge2, SRGB Base: 16000, Weight: 0
     src Core.00-00, 10.127.224.3
     src Edge2.00-00, 10.127.224.2
L2 3.3.3.40/31 [20/115] low priority
     via 3.3.3.25, GigabitEthernet0/0/0/1, Core, SRGB Base: 16000, Weight: 0
     src Core.00-00, 10.127.224.3
L2 3.3.3.48/31 [20/115] low priority
     via 3.3.3.25, GigabitEthernet0/0/0/1, Core, SRGB Base: 16000, Weight: 0
     src Core.00-00, 10.127.224.3
L2 3.3.3.60/31 [10/115] low priority
     via 3.3.3.25, GigabitEthernet0/0/0/1, Core, SRGB Base: 16000, Weight: 0
     src Core.00-00, 10.127.224.3
C  10.127.224.1/32
     is directly connected, Loopback0
   L2 adv [10] IS-IS interface, prefix-SID index 1001, R:0 N:1 P:0 E:0 V:0 L:0
L2 10.127.224.2/32 [20/115] medium priority
     via 3.3.3.23, GigabitEthernet0/0/0/2, Edge2, SRGB Base: 16000, Weight: 0
     src Edge2.00-00, 10.127.224.2, prefix-SID index 1002, R:0 N:1 P:0 E:0 V:0
         L:0
L2 10.127.224.3/32 [20/115] medium priority
     via 3.3.3.25, GigabitEthernet0/0/0/1, Core, SRGB Base: 16000, Weight: 0
     src Core.00-00, 10.127.224.3, prefix-SID index 1003, R:0 N:1 P:0 E:0 V:0
         L:0
L2 10.127.224.4/32 [30/115] medium priority
     via 3.3.3.25, GigabitEthernet0/0/0/1, Core, SRGB Base: 16000, Weight: 0
     src Border.00-00, 10.127.224.4, prefix-SID index 1004, R:0 N:1 P:0 E:0 V:0
         L:0
L2 10.127.224.101/32 [30/115] medium priority
     via 3.3.3.25, GigabitEthernet0/0/0/1, Core, SRGB Base: 16000, Weight: 0
     src RR1.00-00, 10.127.224.101
L2 10.127.224.102/32 [30/115] medium priority
     via 3.3.3.25, GigabitEthernet0/0/0/1, Core, SRGB Base: 16000, Weight: 0
     src RR2.00-00, 10.127.224.102
Related information can also be checked via a commonly used CLI: show mpls forwarding

RP/0/0/CPU0:Edge1#show mpls forwarding
Tue Aug 29 16:15:12.289 UTC
Local  Outgoing    Prefix             Outgoing     Next Hop        Bytes    
Label  Label       or ID              Interface                    Switched  
------ ----------- ------------------ ------------ --------------- ------------
17002  Pop         SR Pfx (idx 1002)  Gi0/0/0/2    3.3.3.23        0          
       17002       SR Pfx (idx 1002)  Gi0/0/0/1    3.3.3.25        0            (!)
17003  Pop         SR Pfx (idx 1003)  Gi0/0/0/1    3.3.3.25        0          
       17003       SR Pfx (idx 1003)  Gi0/0/0/2    3.3.3.23        0            (!)
17004  17004       SR Pfx (idx 1004)  Gi0/0/0/1    3.3.3.25        0          
       17004       SR Pfx (idx 1004)  Gi0/0/0/2    3.3.3.23        0            (!)
24000  Pop         SR Adj (idx 1)     Gi0/0/0/2    3.3.3.23        0        
       17002       SR Adj (idx 1)     Gi0/0/0/1    3.3.3.25        0            (!)
24001  Pop         SR Adj (idx 3)     Gi0/0/0/2    3.3.3.23        0        
24002  Unlabelled  3.3.3.28/31        Gi0/0/0/1    3.3.3.25        0        
       Unlabelled  3.3.3.28/31        Gi0/0/0/2    3.3.3.23        0        
24003  Pop         10.127.224.2/32    Gi0/0/0/2    3.3.3.23        0        
       17002       10.127.224.2/32    Gi0/0/0/1    3.3.3.25        0            (!)
24004  Pop         10.127.224.3/32    Gi0/0/0/1    3.3.3.25        0        
       17003       10.127.224.3/32    Gi0/0/0/2    3.3.3.23        0            (!)
24005  Unlabelled  3.3.3.60/31        Gi0/0/0/1    3.3.3.25        0        
       Unlabelled  3.3.3.60/31        Gi0/0/0/2    3.3.3.23        0            (!)
24006  Unlabelled  3.3.3.48/31        Gi0/0/0/1    3.3.3.25        0        
       Unlabelled  3.3.3.48/31        Gi0/0/0/2    3.3.3.23        0            (!)
24007  Unlabelled  3.3.3.40/31        Gi0/0/0/1    3.3.3.25        0        
       Unlabelled  3.3.3.40/31        Gi0/0/0/2    3.3.3.23        0            (!)
24008  Unlabelled  3.3.3.10/31        Gi0/0/0/1    3.3.3.25        0        
       Unlabelled  3.3.3.10/31        Gi0/0/0/2    3.3.3.23        0            (!)
24009  17004       10.127.224.4/32    Gi0/0/0/1    3.3.3.25        0        
       17004       10.127.224.4/32    Gi0/0/0/2    3.3.3.23        0            (!)
24010  Unlabelled  10.127.224.101/32  Gi0/0/0/1    3.3.3.25        47200    
       Unlabelled  10.127.224.101/32  Gi0/0/0/2    3.3.3.23        0            (!)
24011  Unlabelled  10.127.224.102/32  Gi0/0/0/1    3.3.3.25        47000    
       Unlabelled  10.127.224.102/32  Gi0/0/0/2    3.3.3.23        0            (!)
24012  Pop         SR Adj (idx 1)     Gi0/0/0/1    3.3.3.25        0        
       17003       SR Adj (idx 1)     Gi0/0/0/2    3.3.3.23        0            (!)
24013  Pop         SR Adj (idx 3)     Gi0/0/0/1    3.3.3.25        0           

Check adjacency-sid learned:

The following command show the most abundant information: 
RP/0/0/CPU0:Edge1#show mpls traffic-eng segment-routing
Tue Aug 29 16:21:42.863 UTC
IGP[0]:: IS-IS 1 level 2 , Strict SPF Disabled
Nodes:
  IGP Id: 0101.2722.4001.00, MPLS TE Id: 10.127.224.1
    Segment-Routing:
      TE Node-SID Index: 1001i
      SRGB Info: Start 16000, Size 8000
    Link[0]:Point-to-Point, Nbr IGP Id:0101.2722.4002.00, Nbr Node Id:2, gen:5345
      Frag Id:0, Intf Address:3.3.3.22, Intf Id:0
      Segment-Routing Adjacency-SIDs: 2
      Adjacency-SID[0]: 24001, Flags: V, L to Nbr:: IGP Id: 0101.2722.4002.00, MPLS TE Id: 10.127.224.2
      Adjacency-SID[1]: 24000, Flags: B, V, L to Nbr:: IGP Id: 0101.2722.4002.00, MPLS TE Id: 10.127.224.2
      Nbr Intf Address:3.3.3.23, Nbr Intf Id:0
      TE Metric:10, IGP Metric:10
      Ext Admin Group:
        Length: 256 bits
        Value : 0x::
      Attribute Names:
    Link[1]:Point-to-Point, Nbr IGP Id:0101.2722.4003.00, Nbr Node Id:3, gen:5346
      Frag Id:0, Intf Address:3.3.3.24, Intf Id:0
      Segment-Routing Adjacency-SIDs: 2
      Adjacency-SID[0]: 24013, Flags: V, L to Nbr:: IGP Id: 0101.2722.4003.00, MPLS TE Id: 10.127.224.3
      Adjacency-SID[1]: 24012, Flags: B, V, L to Nbr:: IGP Id: 0101.2722.4003.00, MPLS TE Id: 10.127.224.3
      Nbr Intf Address:3.3.3.25, Nbr Intf Id:0
      TE Metric:10, IGP Metric:10
      Ext Admin Group:
        Length: 256 bits
        Value : 0x::
      Attribute Names:
  IGP Id: 0101.2722.4002.00, MPLS TE Id: 10.127.224.2
    Segment-Routing:
      TE Node-SID Index: 1002i
      SRGB Info: Start 16000, Size 8000
    Link[0]:Point-to-Point, Nbr IGP Id:0101.2722.4001.00, Nbr Node Id:1, gen:5347
      Frag Id:0, Intf Address:3.3.3.23, Intf Id:0
      Segment-Routing Adjacency-SIDs: 2
      Adjacency-SID[0]: 24004, Flags: V, L to Nbr:: IGP Id: 0101.2722.4001.00, MPLS TE Id: 10.127.224.1
      Adjacency-SID[1]: 24003, Flags: B, V, L to Nbr:: IGP Id: 0101.2722.4001.00, MPLS TE Id: 10.127.224.1
      Nbr Intf Address:3.3.3.22, Nbr Intf Id:0
      TE Metric:10, IGP Metric:10
      Ext Admin Group:
        Length: 256 bits
        Value : 0x::
      Attribute Names:
    Link[1]:Point-to-Point, Nbr IGP Id:0101.2722.4003.00, Nbr Node Id:3, gen:5348
      Frag Id:0, Intf Address:3.3.3.28, Intf Id:0
      Segment-Routing Adjacency-SIDs: 2
      Adjacency-SID[0]: 24006, Flags: V, L to Nbr:: IGP Id: 0101.2722.4003.00, MPLS TE Id: 10.127.224.3
      Adjacency-SID[1]: 24005, Flags: B, V, L to Nbr:: IGP Id: 0101.2722.4003.00, MPLS TE Id: 10.127.224.3
      Nbr Intf Address:3.3.3.29, Nbr Intf Id:0
      TE Metric:10, IGP Metric:10
      Ext Admin Group:
        Length: 256 bits
        Value : 0x::
      Attribute Names:
  IGP Id: 0101.2722.4003.00, MPLS TE Id: 10.127.224.3
    Segment-Routing:
      TE Node-SID Index: 1003i
      SRGB Info: Start 16000, Size 8000
    Link[0]:Point-to-Point, Nbr IGP Id:0101.2722.4004.00, Nbr Node Id:4, gen:5349
      Frag Id:0, Intf Address:3.3.3.11, Intf Id:0
      Segment-Routing Adjacency-SIDs: 2
      Adjacency-SID[0]: 24001, Flags: V, L to Nbr:: IGP Id: 0101.2722.4004.00, MPLS TE Id: 10.127.224.4
      Adjacency-SID[1]: 24000, Flags: B, V, L to Nbr:: IGP Id: 0101.2722.4004.00, MPLS TE Id: 10.127.224.4
      Nbr Intf Address:3.3.3.10, Nbr Intf Id:0
      TE Metric:10, IGP Metric:10
      Ext Admin Group:
        Length: 256 bits
        Value : 0x::
      Attribute Names:
    Link[1]:Point-to-Point, Nbr IGP Id:0101.2722.4002.00, Nbr Node Id:2, gen:5350
      Frag Id:0, Intf Address:3.3.3.29, Intf Id:0
      Segment-Routing Adjacency-SIDs: 2
      Adjacency-SID[0]: 24003, Flags: V, L to Nbr:: IGP Id: 0101.2722.4002.00, MPLS TE Id: 10.127.224.2
      Adjacency-SID[1]: 24002, Flags: B, V, L to Nbr:: IGP Id: 0101.2722.4002.00, MPLS TE Id: 10.127.224.2
      Nbr Intf Address:3.3.3.28, Nbr Intf Id:0
      TE Metric:10, IGP Metric:10
      Ext Admin Group:
        Length: 256 bits
        Value : 0x::
      Attribute Names:
    Link[2]:Point-to-Point, Nbr IGP Id:0101.2722.4102.00, Nbr Node Id:-1, gen:5351
      Frag Id:0, Intf Address:3.3.3.48, Intf Id:0
      Segment-Routing Adjacency-SIDs: 0
      Nbr Intf Address:3.3.3.49, Nbr Intf Id:0
      TE Metric:10, IGP Metric:10
      Ext Admin Group:
        Length: 256 bits
        Value : 0x::
      Attribute Names:
    Link[3]:Point-to-Point, Nbr IGP Id:0101.2722.4001.00, Nbr Node Id:1, gen:5352
      Frag Id:0, Intf Address:3.3.3.25, Intf Id:0
      Segment-Routing Adjacency-SIDs: 2
      Adjacency-SID[0]: 24009, Flags: V, L to Nbr:: IGP Id: 0101.2722.4001.00, MPLS TE Id: 10.127.224.1
      Adjacency-SID[1]: 24008, Flags: B, V, L to Nbr:: IGP Id: 0101.2722.4001.00, MPLS TE Id: 10.127.224.1
      Nbr Intf Address:3.3.3.24, Nbr Intf Id:0
      TE Metric:10, IGP Metric:10
      Ext Admin Group:
        Length: 256 bits
        Value : 0x::
      Attribute Names:
    Link[4]:Point-to-Point, Nbr IGP Id:0101.2722.4101.00, Nbr Node Id:-1, gen:5353
      Frag Id:0, Intf Address:3.3.3.40, Intf Id:0
      Segment-Routing Adjacency-SIDs: 0
      Nbr Intf Address:3.3.3.41, Nbr Intf Id:0
      TE Metric:10, IGP Metric:10
      Ext Admin Group:
        Length: 256 bits
        Value : 0x::
      Attribute Names:
  IGP Id: 0101.2722.4004.00, MPLS TE Id: 10.127.224.4
    Segment-Routing:
      TE Node-SID Index: 1004i
      SRGB Info: Start 16000, Size 8000
    Link[0]:Point-to-Point, Nbr IGP Id:0101.2722.4003.00, Nbr Node Id:3, gen:5354
      Frag Id:0, Intf Address:3.3.3.10, Intf Id:0
      Segment-Routing Adjacency-SIDs: 2
      Adjacency-SID[0]: 24001, Flags: V, L to Nbr:: IGP Id: 0101.2722.4003.00, MPLS TE Id: 10.127.224.3
      Adjacency-SID[1]: 24000, Flags: B, V, L to Nbr:: IGP Id: 0101.2722.4003.00, MPLS TE Id: 10.127.224.3
      Nbr Intf Address:3.3.3.11, Nbr Intf Id:0
      TE Metric:10, IGP Metric:10
      Ext Admin Group:
        Length: 256 bits
        Value : 0x::
      Attribute Names:
Prefixes:
 10.127.224.1/32,  SID index:         1001, flags: N
   Adv. router(s)
   --------------
   0101.2722.4001.00
   Paths
   -----
   No paths
 10.127.224.2/32,  SID index:         1002, flags: N
   Adv. router(s)
   --------------
   0101.2722.4002.00
   Paths
   -----
   Path Id Role          Outgoing Interface Next Hop        Outgoing Label
   ------- ------------- ------------------ --------------- --------------
   1       Primary       Gi0/0/0/2          3.3.3.23        Pop
           Backup (65)   Gi0/0/0/1          3.3.3.25        17002
 10.127.224.3/32,  SID index:         1003, flags: N
   Adv. router(s)
   --------------
   0101.2722.4003.00
   Paths
   -----
   No paths
 10.127.224.4/32,  SID index:         1004, flags: N
   Adv. router(s)
   --------------
   0101.2722.4004.00
   Paths
   -----
   No paths
Now we have already finished basic configuration of segment routing. Both prefix and adjacency sid already assigned. Next blog we will see how to inherent services over the segment routing and how to control the priorities if multiple transport protocols exists.