Home | Reports | Technical Documents | Tech-Blog | One-Shot Gallery | Korea ICT News | Korea Communication Market Data | List of Contributors | Become a Contributor |    
Section 5G 4G LTE C-RAN/Fronthaul Gigabit Internet IPTV/Video Streaming IoT SDN/NFV Wi-Fi KT SK Telecom LG U+ Network Protocol Samsung   Korean Vendors
Real World Private 5G Cases   4 Deployment Models On-Premise Cases 5G Core Control Plane Sharing Cases

5G Core Sharing Cases

Private 5G Deployment   • Private 5G Frequency Allocation Status in Korea  South Korean government's regulations on private 5G and KT's strategy for entering the market
Cases in Korea   Private 5G Operators |   SK Networks Service (SI) Sejong Telecom (Wire-line Carrier) KT MOS (Affiliate of KT) • Newgens (SI) • NAVER Cloud more >>  
    Enterprise DIY |   Korea Hydro & Nuclear Power (Power Plant) Korea Electric Power Corporation (Energy) • Republic of Korea Navy more >>
CHANNELS     HFR Private 5G Solution (my5G)       my5G Solution Components       my5G Key Features        my5G Resources        my5G News          
Segment-Routing (SPRING) - At a glance
October 24, 2016 | By Mina G. Nasry @ NOOR Data Network
Online viewer:
Comments (0)

We are pleased to share with you all an interesting article contributed by Mina G. Nasry who has decent experience in Data Carrier/ISP scope.


Mina G. Nasry

Network Engineer, Core Team at NOOR Data Network



All Articles by Mina G. Nasry

  How to contribute your article to Netmanias.com !  
  List of Contributors  




For the past few years, Segment-Routing (SPRING) proved its higher potential to the vast majority of data communication & network researchers, for what it provides from new methods and possibilities to make available network resources highly programmable. SPRING stands for "Source Packet Routing INetworkinG" and it's being standardized in the IETF, and it enjoys strong industry support.


In the following lines, I will try to elaborate the concept of segment-routing as clear as possible. This article will be the first part of a small series that will follow the same lead. Feel free to ask/report about anything that is not clear about this article's content.


Before I begin, I recommend the reader to acquire the basic knowledge about how MPLS / IPv6 forwarding paradigms works in order to easily catch things up without any conflicts.


Let's just begin :)



In a nutshell:


Segment-routing (SPRING) is a new forwarding paradigm that provides source-routing based on specific traffic flows, which means that the source of the flow can define the path that the traffic will take.


The way it works, is that the source (Application flow) chooses a specific desired path (based on the flow needs) from the available paths that may differ from the normal shortest path, and encodes it in the packet header as a controlled list of instructions called "segments".


As the IPv4 header has no possibility for extension headers to support segment-routing feature (only specific IP options are allowed to be added to the IPv4 header when needed), there was no way to support it directly. IPv6 header eases that need on developers as it was built with native support for extension headers. In the next paragraph, we will see how segment-routing was implemented for each IPv6 directly, and IPv4 indirectly through MPLS.


>From this moment, let's just refer to Segment-routing as SPRING till the end of this article.


SPRING introduces two models that can use either MPLS or IPv6 as a forwarding plane to forward packets with the required segments (SR-MPLS or SR-IPv6). It's a compelling architecture which embraces Software-Defined Network (SDN) and is the foundation for Application Engineered Routing (AER).


According to Figure A, what links between the possible application flows and the actual production network that is SPRING enabled, is an SDN controller, which differentiates between the application needs and the available resources.


Figure A


First, applications negotiate/communicate their requirements (SLA, Latency, Bandwidth..etc) with each others. These requirements are gathered by an SDN Controller, which in turn, collects the data from network resources that should be adequate enough to maintain these requirements, such as topology, link states and link utilization. In the end, applications flows got mapped to specific paths for each flow, by a list of instruction segments.


SPRING relies purely on a small number of extension TLVs that was added to IGPs (OSPF/IS-IS) and BGP in order to support its functionality, that should be covered in a later article.


A node in SPRING (SR. Node) could be anything, it can be a router, switch, server, or even a virtual machine based forwarder. In case of using MPLS as the forwarding plane, the set of ordered "segments" are trans-coded into a label stack, with every label in the stack simply expressed into one instruction segment. In case of using IPv6 as the forwarding plane, those ordered segments are trans-coded into a list of hops that are inserted within an extension (SRH) to the IPv6 header, with every hop represents one instruction segment.


At the end of the day, segments represent sub-paths that an SR. node can combine to form a complete route to a network destination.


Instruction segments are provided by two methods, Local segments and Global segments. Whereas any of them could be used independently or in consistent with each other in order to produce a specific flow based path.





SR-MPLS is the segment-routing model for MPLS forwarding plane. No changes were made to the MPLS forwarding paradigm. MPLS operations [Push Swap Pop] are still taking place as to tunnel the traffic flow to the desired destination.


As the packets is being originated at the first place, the originator node pushes a number of segment labels (based on a specific traffic flow needs) that represents how many instructions/sub-paths to be combined and form a complete desired path. That labeled traffic will be forwarded by swapping the top most segment label across the intermediate MPLS nodes, the segment to process is one that is top most of the label stack.


Once a segment has been completely processed by an SR. node, its associated label is popped, then the traffic will be forwarded to the remaining SR. nodes in the series by swapping the next segment label as to be processed by the next SR. node in the series, and so forth.


Figure B


Figure C


  1. According to figure "C", the first nodal (global) label {65} was popped at node {D} once the instruction is complete (by reaching the label’s destination).
  2. By its role, node {D} have popped the adjacency (local) label {9001} once completing its relevant instruction within that node (by forwarding the packet to the 1st interface).
  3. Finally, router {P} will pop the remaining label {66} as the default PHP behavior, and forward an IP Packet to node {Z} .



SR-IPv6 is applied to the IPv6 architecture to support segment-routing. In order to inter-operate with IPv6 forwarding paradigm, a new type of routing extension header “SRH” has been implemented to carry instruction segment information.


Equivalent to SR-MPLS concept, a single instruction segment is encoded as an IPv6 address. An ordered list of segments is encoded as an ordered list of IPv6 addresses that are all being inserted in the routing extension header by the originator node according to a specific traffic flow needs.


The segment to process is indicated by comparing a pointer field called “segments left” and a list that represents every remaining segment called “segment list” in the SRH. While the flow is passing along the IPv6 nodes, every SR-IPv6 node will check the field in the SRH for its address, if found, then the segment is processed. Upon completion of a certain segment process, both “Segments left” & “Segment list” are decremented by one hop entry, and so forth.


Figure D


That's it for today, as I've mentioned, this article will be a part of a small series, the following articles will try to dig deeper in the concept and to explain more of its building blocks. I hope that this was helpful at least to be aware of the concept basics.





Thank you for visiting Netmanias! Please leave your comment if you have a question or suggestion.
Related Contents

[HFR Private 5G: my5G]


Details >>







Subscribe FREE >>

Currently, 55,000+ subscribed to Netmanias.

  • You can get Netmanias Newsletter

  • You can view all netmanias' contents

  • You can download all netmanias'

    contents in pdf file







View All (858)
4.5G (1) 5G (102) AI (8) AR (1) ARP (3) AT&T (1) Akamai (1) Authentication (5) BSS (1) Big Data (2) Billing (1) Blockchain (3) C-RAN/Fronthaul (18) CDN (4) CPRI (4) Carrier Ethernet (3) Charging (1) China (1) China Mobile (2) Cisco (1) Cloud (5) CoMP (6) Connected Car (4) DHCP (5) EDGE (1) Edge Computing (1) Ericsson (2) FTTH (6) GSLB (1) GiGAtopia (2) Gigabit Internet (19) Google (7) Google Global Cache (3) HLS (5) HSDPA (2) HTTP Adaptive Streaming (5) Handover (1) Huawei (1) IEEE 802.1 (1) IP Routing (7) IPTV (21) IoST (3) IoT (56) KT (43) Korea (20) Korea ICT Market (1) Korea ICT Service (13) Korea ICT Vendor (1) LG U+ (18) LSC (1) LTE (78) LTE-A (16) LTE-B (1) LTE-H (2) LTE-M (3) LTE-U (4) LoRa (7) MEC (4) MPLS (2) MPTCP (3) MWC 2015 (8) NB-IoT (6) Netflix (2) Network Protocol (21) Network Slice (1) Network Slicing (4) New Radio (9) Nokia (1) OSPF (2) OTT (3) PCRF (1) Platform (2) Private 5G (11) QoS (3) RCS (4) Railway (1) Roaming (1) SD-WAN (17) SDN/NFV (71) SIM (1) SK Broadband (2) SK Telecom (35) Samsung (5) Security (16) Self-Driving (1) Small Cell (2) Spectrum Sharing (2) Switching (6) TAU (2) UHD (5) VR (2) Video Streaming (12) VoLTE (8) VoWiFi (2) Wi-Fi (31) YouTube (6) blockchain (1) eICIC (1) eMBMS (1) iBeacon (1) security (1) telecoin (1) uCPE (2)
Password confirmation
Please enter your registered comment password.