Segment Routing works on principle of Source based routing , means source calculates and chooses path in advance , encodes it in the packet header as an ordered list of segments (stack of labels) .Rest of the nodes in the network just executes the instruction encoded by source node.
Source node is typically a headend router , which calculates the path by itself or with the help of SDN controller , append it in the packet header . Packet header contains all the information to reach destination node in the form of stack of Segment ids (SIDs).
As an example in figure 1 above, a packet arriving at node 1 and destined for node 5 will have stack of SIDs inserted at the top of packet header. Stack of SIDs will define the end-to-end path this packet will follow which is going to node 2-3-4-5 in this example.
Once the packet has followed the instruction defined at the headend , finally it will reach its destination node which is node 5 in this example as shown above.
Node 1 in the example is called Source node or headend node . This is fundamental operation of segment routing with MPLS data plane, that is ,Push operation at node 1, swap operation in the intermediate node and Pop operation at node 5.
We will discuss more scenarios and use-cases of SR-MPLS along with SDN controller in subsequent Posts.