Patent Publication Number: US-11658912-B2

Title: Mechanism to coordinate end to end quality of service between network nodes and service provider core

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application is a continuation of U.S. patent application Ser. No. 16/788,652, filed on Feb. 12, 2020, which in turn, is a continuation of U.S. patent application Ser. No. 16/111,074 filed on Aug. 23, 2018, the contents of which is incorporated by reference in its entirety. 
    
    
     TECHNICAL FIELD 
     The present disclosure relates generally to traffic routing over a service provider network, and in particular to quality of service implementation cutting across service provider and user networks. 
     BACKGROUND 
     With the advent of 5G networks, network operators will be able to orchestrate specific capabilities across their networks. Network slicing is the ability to deliver multiple network occurrences over one shared infrastructure, while also improving flexibility and agility across the network. This means that different “slices” of the network, or network segments, can be created and customized depending on a system&#39;s needs. For example, within a shared network infrastructure, a slice or segment can be used for a specific industry, for a specific need, and/or even at a specific time. 
     The concept of end to end network slicing introduced by 5G opens up the potential for service providers to offer value added services to their customers. These service providers provide fixed broadband to their customers according to their customer network&#39;s quality of service (QoS), which in turn affects the quality of experience (QoE) for the user. However, while service provider operators may have control over the logical segmentation of the network in their own core, they lack any QoS control between nodes in the customer network itself. If there is a remote node in a customer network, for example, the QoS may differ between the remote node and a node on the customer&#39;s local network. Hence there is a need to come up with a mechanism to provide coordinated segmentation and QoE between customer networks and service provider networks. Here, a solution is provided that uses segment routing to route traffic in the service provider core that supports differentiated QoS for business-critical applications and traffic types at all nodes. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The above-recited and other advantages and features of the present technology will become apparent by reference to specific implementations illustrated in the appended drawings. A person of ordinary skill in the art will understand that these drawings only show some examples of the present technology and would not limit the scope of the present technology to these examples. Furthermore, the skilled artisan will appreciate the principles of the present technology as described and explained with additional specificity and detail through the use of the accompanying drawings in which: 
         FIG.  1    shows an example schematic diagram of a framework for mapping traffic to network segments in accordance with some embodiments; 
         FIG.  2    is a flowchart representation of providing a quality of service between nodes via dynamic mapping of traffic to network segments in accordance with some embodiments; 
         FIG.  3    shows an example of a system for implementing certain aspects of the present technology. 
     
    
    
     DESCRIPTION OF EXAMPLE EMBODIMENTS 
     Various examples of the present technology are discussed in detail below. While specific implementations are discussed, it should be understood that this is done for illustration purposes only. A person skilled in the relevant art will recognize that other components and configurations may be used without parting from the spirit and scope of the present technology. 
     Overview 
     Systems, methods, and devices are disclosed for providing a quality of service between nodes. A service provider can receive, from a first node of a customer network to an ingress node of a service provider network, packets bound for a second node on the customer network that is remote from the first node. The packets are mapped to a network segment according to a traffic type based on an identifier associated with the packets that identifies the traffic type of the packets. The packets are sent via their mapped network segment to an egress node with connectivity to the second node of the customer network according to a quality of service associated with the traffic type identified by the identifier. 
     Example Embodiments 
     The disclosed technology addresses the need in the art for coordinated segmentation and QoE between service provider networks and nodes in a customer network. The disclosure herein provides endpoint to endpoint network slicing capabilities to introduce a dynamic, on demand coordinated QoS policy exchange between nodes on a customer network and a service provider network that provides connectivity between the customer nodes. Differentiated quality of service (QoS) for various traffic types or applications between different customer nodes, even nodes remote from the local customer network, can be accomplished through the following network slicing techniques. 
     Network slicing involves the logical segmentation of network infrastructure resources in a network. The concept of slicing spans across many types of networks, including Radio, RAN, and Mobile Packet Core networks. Network slicing also enables segmentation and micro-segmentation services supported in customer networks, which provides a mechanism for service providers to offer value added services for their customers by offering different QoS service level agreements (SLA) for different types of traffic. 
     Segment routing is a mechanism available to logically segment a network, such as a service provider&#39;s core network. In segment routing, traffic flows can be steered towards different paths in the network based on network element characteristics (such as throughput delay, reliability, load etc.). Service providers can perform path calculations for various segments and then signal their network devices or other nodes with a policy configuration to provide an ordered list of segments (e.g., through an MPLS stack of labels for IPv4 and/or routing extension headers for IPv6). 
     According to various embodiments, a service provider can receive, from a first node of a customer network to an ingress node of a service provider network, packets bound for a second node on the customer network. The second node of the customer network can be remote from the first node of the customer network according to some examples. For instance, the first node can be a device that is local to the customer (e.g., for an enterprise customer, a device or an IP address that is located on site at the enterprise&#39;s main premise), and the second node can be remote (e.g., a device or IP address associated with a branch office of the enterprise, or a connection to the enterprise network from an employee&#39;s mobile device). Packets can be mapped to a network segment according to a traffic type. The mapping can be based on an identifier associated with the packets that identifies the traffic type of the packets. The packets are sent via their mapped network segment to an egress node with connectivity to the second node of the customer network according to a quality of service associated with the traffic type identified by the identifier. 
       FIG.  1    shows an example schematic diagram of a framework for mapping traffic to network segments in accordance with some embodiments. System  100  can include multiple nodes within a customer network, such as node A  110  and node B  112  (although the customer network can include any number of nodes, both on premise and remote). Node A  110  and node B  112  are in communication with each other through service provider  114 , which provides Internet connectivity between nodes A and B  110 ,  112 . The customer network supports multiple types of traffic, including, but not limited to, alternate reality/virtual reality (AV/VR)  116 , high definition (HD) video  118 , and Voice over IP (Voice)  120 . These types of traffic can share portions of bandwidth with varying priority levels for each traffic type over the customer network according to a QoS that is associated with one or more parameters of an SLA. For example, the QoS parameters can include, but are not limited to, parameters associated with delay, throughput, bandwidth, latency, and loss characteristics associated with each traffic type. 
     Node B  112  may be remote from node A  110 , but supports the same types of traffic as node A  110  since it is part of the customer&#39;s network. For example, in system  100 , node B  112  also supports AV/VR  116 , HD video  118 , and Voice  120  traffic types. However, although traffic needs to travel or be routed through service provider  114 , the QoS needs to be consistent across all nodes on the customer network, such that the QoE between node A  110  remains consistent for node B  112 . For example, the quality of latency for Voice  120  at node A  110  should not drop below its SLA at node B  112 . 
     Accordingly, in order to provide consistency between the nodes, service provider  114  can map the traffic packets to one or more network segments according to the traffic type using one or more network slicing techniques. For example, service provider  114  can slice their network into segment A  122 , which routes traffic of type HD Video. Similarly, segment B  124  routes traffic type AR/VR, and segment C  126  routes traffic type Voice. Each segment is a route consisting of a set of devices on the service provider&#39;s network that routes traffic from ingress node  130  to egress node  132 . 
     Mapping the traffic type to a specific segment can, according to some embodiments, be based on identifiers (e.g., HD Video ID, AR/VR ID, and Voice ID) associated with the packets that identifies the packet&#39;s traffic type and/or QoS parameters associated with the traffic type (e.g., as specified for each traffic type through an SLA, for example). The identifier can be included in the packet&#39;s header, for example, which can be used by service provider  114  to match the identifier with an appropriate segment. In some embodiments, service provider  114  can use the identifiers to create a segment by defining a path through devices in the service provider&#39;s network that are consistent with the QoS parameters associated with the traffic type&#39;s identifiers. 
     According to some embodiments, the customer network can define one or more software defined access (SDA) parameters, which may specify the security level associated with each traffic type. Service provider  114  can receive the SDA parameters and then use them to implement segmentation overlay. In an SDA enabled network, for example, VXLAN Network identifiers (VNIs) are used to represent a desired logical overlay segment. SDA may also support an additional identifier termed as scalable group tags (SGT). SGT can be used to further apply granular policies such as QoS and traffic steering for specific application flow types and/or security needs. In order to extend the QoS implementation in the service provider core, the SGT can be mapped from the customer&#39;s network fabric to segment routing segment identifiers in the service provider core network. These segment identifiers (SIDs) will be used to steer the traffic to the appropriate network slice in the service provider core. 
     In this manner, each traffic type runs the same on any node within the customer network, regardless of whether the node is remote or not. Therefore, the quality of experience for a user can be differentiated across traffic types and/or specific applications. 
       FIG.  2    is a flowchart representation of an example process for providing a consistent quality of service between nodes via dynamic mapping of traffic to network segments in accordance with some embodiments. Coordinating QoS between node A  110  and node B  112 , for example, can begin by receiving, from node A  110  of a customer network to an ingress node  130  of a service provider network, packets bound for node B  112  on the customer network that is remote from the node A  110  (step  210 ). As discussed above, node A  110  and node B  112  are in communication with each other through service provider  114 , and node B  112  may be remote from node A  110 . For example, node A  110  can include a campus or on premise site, and node B  112  can include a remote site. 
     Service provider  114  can include multiple segments, or slices, of the service provider&#39;s network. For example, each segment of the service provider&#39;s network is comprised of a path of nodes that are selected to comply with the quality of service associated with the traffic type. For example, while service provider  114  offers a range of devices on a shared physical network infrastructure, certain devices may be added or assigned to a virtual network representing a segment based on the device&#39;s quality, capabilities, performance history, etc. Thus, if there are three traffic flow types with three different QoS policies, three different segments will be mapped to the traffic. For example, in system  100 , the QoS may have a first policy for AR/VR  116  end points, a second policy for HD video  118  end points, and a third policy for voice  120  end points. 
     Packets are mapped according to a traffic type to a network segment, where the mapping is based on an identifier associated with the packets that identifies the traffic type of the packets (step  212 ). These can be mapped based on QoS policies differentiated around traffic types. The traffic type can be associated with a type or quality of service, where the type or quality of service include parameters that can be mapped to logical resources within the network segment. 
     The identifier can be included within a header of the packets that identifies the traffic type and QoS parameters for the packets. For example, within the customer network, types of traffic flows can be mapped to three overlay segments represented by SGTs. The objective is to dynamically map the QoS policies between the customer network and the service provider core. To do so, a WAN circuit may be using one of the many tunnel encapsulation types between the customer&#39;s WAN router and the service provider&#39;s Aggregation router. Regardless of encapsulation type, an NSH header can be inserted to carry the SGT information. To map the SGT to the right set of segment identifiers, an Application Specific Interface (API) between a controller in the service provider, such as a service provider&#39;s path calculation service that is part of a software defined networking (SDN) controller, and the customer network can enable the customer network to convey the mapping information for various QoS SLAB to a service provider&#39;s path calculation service via the SDN controller interface. The service provider  114 , after performing traffic engineering path computations by service provider&#39;s path calculation service, will have an ordered list of segments which needs to be added to the packets to steer the traffic through the right network slice. This can be accomplished by the service provider&#39;s path calculation service by signaling routing information to the Aggregation router, which forwards traffic to the correct segment. 
     The packets can then be sent via the network segment to egress node  132  with connectivity to node B  112  according to a quality of service associated with the traffic type identified by the identifier (step  214 ). Egress node  132  forwards the traffic to node B  112 , which will route traffic to specific devices within node B&#39;s network. 
     While embodiments have shown node B  112  to be a node within a customer&#39;s remote branch office, other embodiments can apply the same technique if node B  112  is within a mobile radio network. Any node endpoints that represent nodes communicating via a service provider network is therefore contemplated by the disclosure above. 
       FIG.  3    shows an example of computing system  300  in which the components of the system in  FIGS.  1  and  2    are in communication with each other using connection  305 . Connection  305  can be a physical connection via a bus, or a direct connection into processor  310 , such as in a chipset architecture. Connection  305  can also be a virtual connection, networked connection, or logical connection. 
     In some embodiments computing system  300  is a distributed system in which the functions described in this disclosure can be distributed within a datacenter, multiple datacenters, a peer network, etc. In some embodiments, one or more of the described system components represents many such components each performing some or all of the function for which the component is described. In some embodiments, the components can be physical or virtual devices. 
     Example system  300  includes at least one processing unit (CPU or processor)  310  and connection  305  that couples various system components including system memory  315 , such as read only memory (ROM) and random access memory (RAM) to processor  310 . Computing system  300  can include a cache of high-speed memory connected directly with, in close proximity to, or integrated as part of processor  310 . 
     Processor  310  can include any general purpose processor and a hardware service or software service, such as services  332 ,  334 , and  336  stored in storage device  330 , configured to control processor  310  as well as a special-purpose processor where software instructions are incorporated into the actual processor design. Processor  310  may essentially be a completely self-contained computing system, containing multiple cores or processors, a bus, memory controller, cache, etc. A multi-core processor may be symmetric or asymmetric. 
     To enable user interaction, computing system  300  includes an input device  345 , which can represent any number of input mechanisms, such as a microphone for speech, a touch-sensitive screen for gesture or graphical input, keyboard, mouse, motion input, speech, etc. Computing system  300  can also include output device  335 , which can be one or more of a number of output mechanisms known to those of skill in the art. In some instances, multimodal systems can enable a user to provide multiple types of input/output to communicate with computing system  300 . Computing system  300  can include communications interface  340 , which can generally govern and manage the user input and system output. There is no restriction on operating on any particular hardware arrangement and therefore the basic features here may easily be substituted for improved hardware or firmware arrangements as they are developed. 
     Storage device  330  can be a non-volatile memory device and can be a hard disk or other types of computer readable media which can store data that are accessible by a computer, such as magnetic cassettes, flash memory cards, solid state memory devices, digital versatile disks, cartridges, random access memories (RAMs), read only memory (ROM), and/or some combination of these devices. 
     The storage device  330  can include software services, servers, services, etc., that when the code that defines such software is executed by the processor  310 , it causes the system to perform a function. In some embodiments, a hardware service that performs a particular function can include the software component stored in a computer-readable medium in connection with the necessary hardware components, such as processor  310 , connection  305 , output device  335 , etc., to carry out the function. 
     For clarity of explanation, in some instances the present technology may be presented as including individual functional blocks including functional blocks comprising devices, device components, steps or routines in a method embodied in software, or combinations of hardware and software. 
     Any of the steps, operations, functions, or processes described herein may be performed or implemented by a combination of hardware and software services or services, alone or in combination with other devices. In some embodiments, a service can be software that resides in memory of a client device and/or one or more servers of a content management system and perform one or more functions when a processor executes the software associated with the service. In some embodiments, a service is a program, or a collection of programs that carry out a specific function. In some embodiments, a service can be considered a server. The memory can be a non-transitory computer-readable medium. 
     In some embodiments the computer-readable storage devices, mediums, and memories can include a cable or wireless signal containing a bit stream and the like. However, when mentioned, non-transitory computer-readable storage media expressly exclude media such as energy, carrier signals, electromagnetic waves, and signals per se. 
     Methods according to the above-described examples can be implemented using computer-executable instructions that are stored or otherwise available from computer readable media. Such instructions can comprise, for example, instructions and data which cause or otherwise configure a general purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions. Portions of computer resources used can be accessible over a network. The computer executable instructions may be, for example, binaries, intermediate format instructions such as assembly language, firmware, or source code. Examples of computer-readable media that may be used to store instructions, information used, and/or information created during methods according to described examples include magnetic or optical disks, solid state memory devices, flash memory, USB devices provided with non-volatile memory, networked storage devices, and so on. 
     Devices implementing methods according to these disclosures can comprise hardware, firmware and/or software, and can take any of a variety of form factors. Typical examples of such form factors include servers, laptops, smart phones, small form factor personal computers, personal digital assistants, and so on. Functionality described herein also can be embodied in peripherals or add-in cards. Such functionality can also be implemented on a circuit board among different chips or different processes executing in a single device, by way of further example. 
     The instructions, media for conveying such instructions, computing resources for executing them, and other structures for supporting such computing resources are means for providing the functions described in these disclosures. 
     Although a variety of examples and other information was used to explain aspects within the scope of the appended claims, no limitation of the claims should be implied based on particular features or arrangements in such examples, as one of ordinary skill would be able to use these examples to derive a wide variety of implementations. Further and although some subject matter may have been described in language specific to examples of structural features and/or method steps, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to these described features or acts. For example, such functionality can be distributed differently or performed in components other than those identified herein. Rather, the described features and steps are disclosed as examples of components of systems and methods within the scope of the appended claims.