Device, system and method for steering services through network slicing
By identifying and applying slice labels and QoS policies at network nodes, the problem of limited service guidance capabilities of network slicing technology in scaled networks is solved, and efficient scaling of multiple network slices and service quality assurance are achieved.
Patent Information
- Application Number
- CN202110320289.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2021-01-15
- Filing Date
- 2021-03-25
- Publication Date
- 2025-10-03
- Estimated Expiration
- 2041-10-03
AI Technical Summary
Existing network slicing technologies are limited in their ability to guide services through network slicing in scaled networks and cannot effectively guarantee quality of service.
By receiving packets at network nodes, identifying slice labels, determining corresponding QoS policies, and forwarding packets after applying the policies, the slice labels and QoS modules on top of the MPLS label stack are used to implement service guidance for network slices, supporting the scaling of multiple network slices and slice identification independent of the underlying transmission path.
It achieves efficient business guidance for network slices, supports the scaling of multiple network slices, overcomes the obstacle of traditional readable label depth, and is compatible with multiple network technologies including MPLS, IPv6 and SRv6 to ensure service quality.
Smart Images

Figure CN114173373B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims priority under 35 U.S.C. §119(e) to U.S. Provisional Patent Application No. 63 / 077,270, filed on September 11, 2020, the entire contents of which are incorporated herein by reference. Technical Field
[0003] Embodiments of the present disclosure relate to additional apparatuses, systems, and methods for directing traffic through network slicing. Background Art
[0004] The physical network can be partitioned into multiple slices, which represent and / or constitute isolated logical networks of different sizes and / or structures. In some examples, each network slice can be dedicated to a specific type of service. Additionally or alternatively, network slices can operate in parallel with some degree of isolation (e.g., via soft slicing or hard slicing) while providing slice elasticity in terms of capacity.
[0005] When logical network slicing is applied on top of the physical network, traffic belonging to a particular network slice can be steered to the resources allocated for that slice. For example, flows associated with a particular network slice can be classified (e.g., using hardware filters) on the hops traversed and / or along their path across the network. In this example, an associated Quality of Service (QoS) profile can be applied to the traffic in order to provide any corresponding Service Level Agreement (SLA) guarantees.
[0006] Unfortunately, conventional network slicing techniques may suffer from certain deficiencies and / or shortcomings that potentially limit their ability to steer traffic through network slices in scaled networks. Accordingly, the present disclosure identifies and addresses the need for additional apparatus, systems, and methods for steering traffic through network slicing. Summary of the Invention
[0007] As will be described in more detail below, the present disclosure generally relates to apparatus, systems, and methods for directing traffic through network slicing. In one example, a method for achieving such a task may include: (1) receiving, at a network node within a network, a packet from another network node within the network, (2) identifying a slice label within the packet, the slice label indicating a network slice that has been logically partitioned on the network, (3) determining a QoS policy corresponding to the network slice indicated by the slice label, (4) applying the QoS policy to the packet, and then, after applying the QoS policy to the packet, (5) forwarding the packet to an additional network node within the network.
[0008] Similarly, a system implementing the method identified above may include a physical processor configured to execute various modules stored in a memory on a network node within a network. In one example, the system may include and / or execute: (1) a receiving module that receives a packet from another network node within the network, (2) an identification module that identifies a slice label within the packet, the slice label indicating a network slice that has been logically partitioned on the network, (3) a determination module that determines a QoS policy corresponding to the network slice indicated by the slice label, (4) a QoS module stored in a memory on the network node that applies the QoS policy to the packet, and (5) a forwarding module that forwards the packet to an additional network node within the network after the QoS policy has been applied to the packet.
[0009] Additionally or alternatively, an apparatus implementing the method identified above may include at least one storage device that stores a set of QoS policies corresponding to a set of network slices that have been logically partitioned on the network. The apparatus may also include at least one physical processor communicatively coupled to the storage device. In one example, the physical processor (1) receives a packet from another network node within the network, (2) identifies a slice tag that indicates a network slice that has been logically partitioned on the network, (3) determines a QoS policy corresponding to the network slice indicated by the slice tag, (4) applies the QoS policy to the packet, and then (5) forwards the packet to an additional network node within the network after applying the QoS policy to the packet.
[0010] According to the general principles described herein, features from any of the above embodiments may be used in combination with each other. These and other embodiments, features and advantages will be more fully understood after reading the following detailed description in conjunction with the accompanying drawings and claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0011] The accompanying drawings illustrate several exemplary embodiments and are a part of the specification. Together with the following description, these drawings illustrate and explain various principles of the present disclosure.
[0012] Figure 1 is a block diagram of an exemplary system for directing traffic through network slicing.
[0013] Figure 2 is a block diagram of an additional exemplary system for directing traffic through network slicing.
[0014] Figure 3 is a block diagram of an additional exemplary system for directing traffic through network slicing.
[0015] Figure 4 is a block diagram of an example packet with a label stack that supports directing traffic through a network slice.
[0016] Figure 5 is a block diagram of an additional exemplary packet with an additional label stack to support directing traffic through a network slice.
[0017] Figure 6 is a block diagram of an exemplary lookup table that supports steering services through network slicing.
[0018] Figure 7 is a block diagram of an exemplary implementation of a label stack that supports steering traffic through network slicing.
[0019] Figure 8 is a block diagram of an additional exemplary implementation with an additional label stack that supports directing services through network slicing.
[0020] Figure 9 is a flowchart of an exemplary method for directing traffic through network slicing.
[0021] Figure 10 is a block diagram of an exemplary computing system that can implement and / or be used in conjunction with one or more of the embodiments described and / or illustrated herein.
[0022] Throughout the drawings, the same reference numerals and descriptions indicate similar, but not necessarily identical, elements. Although the exemplary embodiments described herein are susceptible to various modifications and alternative forms, specific embodiments are shown by way of example in the drawings and will be described in detail herein. However, the exemplary embodiments described herein are not intended to be limited to the specific forms disclosed. Rather, this disclosure covers all modifications, equivalents, and alternatives falling within the scope of the appended claims. DETAILED DESCRIPTION
[0023] The present disclosure describes various apparatuses, systems, and methods for directing traffic through network slices. As will be explained in more detail below, embodiments of the present disclosure may implement and / or use slice labels at the top of a Multi-Protocol Label Switching (MPLS) label stack included in packets traversing a network. These slice labels may enable certain network nodes included in the network to direct traffic through a specific network slice. In some examples, a transit label switching router (LSR) node may use a classifier and / or filter to map identified slice flows. In such an example, the transit LSR node may apply a QoS profile associated with the corresponding slice on an interface assigned to and / or used for the logical slice. For example, the transit LSR node may classify an incoming flow as corresponding to a specific network slice based on the top slice label within the MPLS label stack. In this example, the transit LSR node may apply an appropriate QoS profile associated with the slice for the specific interface(s) of the transit LSR node.
[0024] In some examples, the slice label and any associated QoS can be manually configured and / or programmed on all nodes and / or interfaces incorporated into and / or deployed as part of a particular slice in the network. Additionally or alternatively, such information can be signaled and / or distributed using a controller or by extending an Interior Gateway Protocol (IGP) to flood information identifying the slice label and / or associated QoS within a corresponding IGP domain.
[0025] In some examples, the slice label can be maintained persistently at the top of the MPLS label stack and / or above the MPLS label stack. In such an example, to determine the forwarding path of the packet, the transit LSR node can perform a lookup operation on the MPLS label (e.g., the transport label) below the slice label in the MPLS label stack. After performing the forwarding lookup operation and / or subsequent label operations, the transit LSR node can forward the packet so that it egresses on a specific network slice. Additionally or alternatively, the transit LSR node and / or another network node can reapply and / or reapply the slice label to the top of the MPLS label stack.
[0026] In some examples, embodiments of the present disclosure may support identifying flows directed onto a particular network slice by applying a single slice label and / or slice indicator in the MPLS label stack. Additionally or alternatively, embodiments of the present disclosure may require that there be a single slice label and / or identifier carried by flows belonging to a particular network slice. Embodiments of the present disclosure may also support scaling of network slices to a much higher number (e.g., beyond the traditional limitation of 8 slices). Correspondingly, by maintaining a slice label at the top of the label stack, embodiments of the present disclosure may be able to overcome the obstacles and / or limitations of traditional Readable Label Depth (RLD) when classifying incoming network traffic.
[0027] In some examples, embodiments of the present disclosure may support and / or implement slice identification that is independent of the underlying transport path. As a result, Resource Reservation Protocol (RSVP) transport paths, Segment Routing (SR) transport paths, and Label Distribution Protocol (LDP) transport paths may be equally applicable. Embodiments of the present disclosure may be extended to SR version 6 (SRv6) network technology and / or path computation element (PCE) servers that manage path reservations from a centralized approach. Additionally or alternatively, embodiments of the present disclosure may coexist and / or be compatible with RSVP Traffic Engineering (RSVP-TE) label switched paths (LSPs) and / or bandwidth reservation in the same network.
[0028] In some examples, embodiments of the present disclosure may be deployed as SR technology for MPLS, Internet Protocol version 6 (IPv6), and / or SRv6 data plane technology. In one example, a new SRv6 slice segment identifier (similar to an MPLS slice label) may be carried in the SRv6 header to identify flows belonging to a particular network slice. In this example, a transit IPv6 router may need to process multiple (e.g., two) SRv6 segment identifiers (e.g., a slice segment identifier and / or a forwarding segment identifier) within a packet before forwarding the packet downstream. Additionally or alternatively, the IPv6 segment (e.g., identified by the leftmost field inside the segment routing header) may be manipulated so that each transit LSR node is able to process multiple (e.g., two) SRv6 segment identifiers.
[0029] The following will refer to Figures 1-8 Provides a detailed description of exemplary devices, systems, components, and corresponding implementations for directing services through network slicing. Figure 9 A detailed description of a computer-implemented method for directing traffic through network slicing is provided. Figure 10 A detailed description of an exemplary computing system for implementing these methods is provided.
[0030] Figure 1 An exemplary system 100 for supporting traffic steering via network slicing is shown. Figure 1 As shown, the system 100 may include one or more modules 102 for performing one or more tasks. As will be explained in more detail below, the modules 102 may include a receiving module 104, an identifying module 106, a determining module 108, a QoS module 110, a forwarding module 112, and a labeling module 114. Although shown as separate elements, Figure 1 One or more of modules 102 may represent portions of a single module, application, and / or operating system.
[0031] In certain embodiments, Figure 1 One or more modules in modules 102 may represent one or more software applications or programs that, when executed by a computing device, cause the computing device to perform one or more tasks. For example, and as will be described in more detail below, one or more modules in modules 102 may represent modules stored and configured to run on one or more computing devices, such as Figure 2 The devices illustrated in FIG. 2 (e.g., network nodes 202, 206, 208, 210(1)-(N), and / or 212(1)-(N)), Figure 3 (e.g., inlet LER 302, outlet LER 310, and / or transit LSRs 304, 306, and / or 308), and / or Figure 10 The device illustrated in (e.g., computing system 1000). Figure 1 One or more of the modules 102 in FIG. 1 may also represent all or part of one or more special-purpose computers configured to perform one or more tasks.
[0032] like Figure 1 As shown, the exemplary system 100 may also include one or more memory devices, such as memory 140. Memory 140 generally represents any type or form of volatile or non-volatile storage device or medium capable of storing data and / or computer-readable instructions. In one example, memory 140 may store, load, and / or maintain one or more modules in module 102. Examples of memory 140 include, but are not limited to, random access memory (RAM), read-only memory (ROM), flash memory, a hard disk drive (HDD), a solid-state drive (SSD), an optical drive, a cache, variations or combinations of one or more of the foregoing, and / or any other suitable storage memory.
[0033] like Figure 1As illustrated, the exemplary system 100 may also include one or more physical processors, such as physical processor 130. Physical processor 130 generally represents any type or form of hardware-implemented processing device capable of interpreting and / or executing computer-readable instructions. In one example, physical processor 130 may access and / or modify one or more modules in module 102 stored in memory 140. Additionally or alternatively, physical processor 130 may execute one or more modules in module 102 to support steering of services through network slicing. Examples of physical processor 130 include, but are not limited to, a central processing unit (CPU), a microprocessor, a microcontroller, a field programmable gate array (FPGA) implementing a soft-core processor, an application specific integrated circuit (ASIC), portions of one or more of the foregoing, variations or combinations of one or more of the foregoing, and / or any other suitable physical processor.
[0034] like Figure 1 As illustrated, exemplary system 100 may also include one or more network slices, such as network slice 120. In some examples, network slices 120 may each constitute and / or represent any type or form of logical partitioning and / or virtual division of a network. In one example, network slice 120 may include and / or represent network slices 122(1)-network slice 122(N) that have been logically partitioned on the network. In this example, network slices 122(1)-network slice 122(N) may each include and / or represent a different and / or unique set of resources, services, features, and / or offerings relative to each other. Thus, network slice 122(1) may include and / or represent one set of resources, services, features, and / or offerings within the network, and network slice 122(N) may include and / or represent another set of resources, services, and / or offerings within the network.
[0035] like Figure 1 As illustrated, exemplary system 100 may additionally include one or more slice labels, such as slice label 124. In some examples, slice labels 124 may each identify and / or represent any type or form of network slice that has been logically partitioned on the network. In one example, slice labels 124 may include and / or represent slice label 126(1)-slice label 126(N), where each slice label corresponds to and / or identifies one of network slices 120. In this example, slice label 124 may have a one-to-one relationship with and / or a one-to-one designation of network slice 120. For example, slice label 126(1) may correspond to and / or identify network slice 122(1), and slice label 126(N) may correspond to and / or identify network slice 122(N).
[0036] like Figure 1 As shown, exemplary system 100 may even include one or more QoS policies, such as QoS policy 134. In some examples, QoS policy 134 may each identify and / or represent any type or form of technology for guaranteeing, monitoring, and / or measuring one or more performance parameters and / or metrics of a service or network. In one example, QoS policy 134 may include and / or represent QoS policy 136(1)-QoS policy 136(N), where each QoS policy corresponds to and / or is reserved for one of network slices 120. In this example, QoS policy 134 may have a one-to-one or one-to-many relationship with network slice 120 and / or a one-to-one or one-to-many designation of network slice 120. For example, QoS policy 136(1) may correspond to and / or be applied to network slice 122(1), and QoS policy 136(N) may correspond to and / or be applied to network slice 122(N).
[0037] In some examples, QoS policy 134 may represent and / or be simply referred to as QoS. QoS policy 134 and / or QoS in general may include and / or represent measurements of, and / or associated with, various parameters and / or metrics for a service or network. Examples of such parameters and / or metrics include, but are not limited to, bandwidth, throughput, latency, delay, jitter, variance of latency, error rate, packet loss, bit rate, availability, variations or combinations of one or more of the foregoing, and / or any other suitable parameters and / or metrics.
[0038] In some examples, QoS may include and / or represent a description and / or measurement of the overall performance of a service, particularly a service whose performance is particularly important to a user's experience and / or is easily perceived or noticed by the user. Examples of such services include, but are not limited to, media streaming services, video streaming services, audio streaming services, telephone services, video conferencing services, video-on-demand services, computer networks, cloud computing services, circuit emulation services, online gaming services, industrial control services, online television services, variations or combinations of one or more of the foregoing, and / or any other suitable services.
[0039] An apparatus for directing traffic through a network slice may include all or part of the exemplary system 100. This may be implemented in various ways. Figure 1 For example, all or part of the exemplary system 100 may represent Figure 2 Part of the exemplary system 200 in FIG. Figure 2As shown, system 200 may include a network 204 that supports communications between network node 206 , network nodes 210 ( 1 )-210 (N), network nodes 212 ( 1 )-212 (N), network node 202 , and / or network node 208 .
[0040] like Figure 2 As illustrated, network 204 may include and / or represent various network devices and / or nodes that form and / or establish communication paths and / or communication segments. For example, network 204 may include network node 206 that forwards traffic from network node 202 along one or more active paths toward network node 208. In this example, an active path may include and / or represent network node 210(1)-network node 210(N), and another active path may include and / or represent network node 212(1)-network node 212(N).
[0041] In some examples, each of the network nodes 202, 206, 208, 210(1)-210(N), and / or 212(1)-212(N) may include and / or represent an instance of the memory 140 and / or an instance of the physical processor 130. Additionally or alternatively, each of the network nodes 202, 206, 208, 210(1)-210(N), and / or 212(1)-212(N) may include, access, and / or apply one or more of the slice labels 124 and / or the QoS policies 134. Each of the network nodes 202, 206, 208, 210(1)-(N), and / or 212(1)-(N) may also access and / or represent a portion of one or more network slices 120.
[0042] In some examples, and as will be described in greater detail below, one or more modules 102 may enable network node 206 to: (1) receive a packet from another network node (e.g., network node 202) in network 204, (2) identify a slice label 126(1) within the packet that indicates and / or identifies a network slice 122(1) that has been logically partitioned on network 204, (3) determine that a QoS policy 134(1) corresponds to network slice 122(1) as indicated by slice label 126(1), (4) apply QoS policy 134(1) to the packet, and then, after applying QoS policy 134(1) to the packet, (5) forward the packet to an additional network node within the network.
[0043] Each of network nodes 202, 206, 208, 210(1)-210(N), and / or 212(1)-212(N) generally represents any type or form of physical computing device capable of reading computer-executable instructions and / or processing network traffic. In one example, network routers 202, 206, 208, 210(1)-(N), and / or 212(1)-212(N) may each include and / or represent a router (such as a transit label switching router, a label edge router, a provider edge router, a hub router, a branch router, an autonomous system boundary router, and / or a region boundary router). Additional examples of network nodes 202, 206, 208, 210(1)-210(N) and / or 212(1)-212(N) include, but are not limited to, switches, hubs, modems, bridges, repeaters, gateways (such as Broadband Network Gateways (BNGs)), multiplexers, network adapters, network interfaces, line cards, collectors, client devices, laptops, tablets, desktops, servers, cellular phones, personal digital assistants (PDAs), multimedia players, embedded systems, wearable devices, gaming consoles, portions of one or more of the foregoing, variations or combinations of one or more of the foregoing, and / or any other suitable devices.
[0044] Network 204 generally represents any medium and / or architecture capable of supporting communication and / or data transfer. In one example, network 204 may include any network servers 202, 206, 208, 210(1)-210(N), and / or 212(1)-210(N), even if some of these devices are Figure 2 204. Additionally or alternatively, network 204 may include other networks 202, 206, 208, 210(1)-(N), and / or 212(1)-(N) that support communication between networks 204. Network 204 may support communication or data transfer using wireless and / or wired connections. Examples of network 204 include, but are not limited to, an intranet, an access network, a layer 2 network, a layer 3 network, an MPLS network, an Internet Protocol (IP) network, a heterogeneous network (e.g., a layer 2, layer 3, IP, and / or MPLS network), a wide area network (WAN), a local area network (LAN), a personal area network (PAN), the Internet, power line communication (PLC), a cellular network (e.g., for a Global System for Mobile Communications (GSM) network), portions of one or more of the foregoing, variations or combinations of one or more of the foregoing, and / or any other suitable network.
[0045] Figure 9 is a flow chart of an exemplary computer-implemented method 900 for directing traffic through network slicing. Figure 9The steps shown may be performed by any suitable computer executable code and / or computing system, including Figure 1 System 100 in Figure 2 System 200, Figure 3 System 300, Figure 10 system 1000, and / or any variation or combination of any one or more of the foregoing. Figure 9 The steps shown can be included in Figure 1 System 100 in Figure 2 System 200, Figure 3 System 300, Figure 10 In one example, Figure 9 Each of the steps shown may represent an algorithm whose structure includes and / or is represented by a number of sub-steps, examples of which are provided in more detail below.
[0046] like Figure 9 As illustrated in FIG, at step 910, one or more of the systems described herein may receive, at a network node within a network, a packet from another network node within the network. For example, as Figure 2 As part of a network node 206 in the network 204, the receiving module 104 can receive packets from the network node 202 within the network 204. In one example, the packets can include and / or represent metadata (such as a header) and / or a payload. In this example, the packets can constitute and / or represent part of a traffic flow. Such a traffic flow can include and / or represent a sequence of packets originating from a particular source and directed toward a particular destination.
[0047] The systems described herein can perform step 910 in various ways and / or in various contexts. In some examples, receiving module 104 can monitor network node 206 for incoming traffic traversing network 204. In such examples, network node 202 can send, transmit, and / or forward traffic via network 204. While monitoring network node 206 for incoming traffic, receiving module 104 can detect and / or identify packets traversing from network node 202 to network node 208 via network 204.
[0048] Return to Figure 9 At step 920, one or more of the systems described herein may identify a slice tag within the packet that indicates a network slice that has been logically partitioned on the network. Figure 2As part of the network node 206 in FIG. 1 , the identification module 106 can identify one of the slice labels 124 within the packet. In this example, the slice label can be found and / or identified within metadata of the packet, such as a header. In one embodiment, the slice label can include and / or represent the 10 most significant bits of a flow label within the header, and the flow identifier can include and / or represent the 10 least significant bits of the flow label within the header.
[0049] In some examples, the slice tag can indicate and / or identify one of the network slices 120 that have been logically partitioned on the network 204. In one example, a network slice can be dedicated to a particular type of service. Additionally or alternatively, due at least in part to the network slice to which the packet belongs, the network slice can provide and / or make available one or more resources to the packet.
[0050] The network slice to which the packet belongs can be allocated for a specific purpose and / or application within the network 204. Examples of network slices include automotive slices, industrial automation slices, real-time broadcast slices, Internet of Things (IoT) slices, enterprise network slices, low-latency slices, broadband slices, manufacturing slices, utility slices, variations or combinations of one or more of the foregoing, and / or any other suitable network slices.
[0051] The systems described herein can perform step 920 in various ways and / or in various contexts. In some examples, identification module 106 can search the packet for any slice labels that indicate and / or identify a particular network slice to which the packet belongs and / or corresponds. During this search, identification module 106 can locate and / or find one of slice labels 124 within the MPLS label stack included in the metadata of the packet. For example, identification module 106 can locate and / or find the MPLS label stack for the packet and then search the MPLS label stack for one of slice labels 124. In this example, identification module 106 can identify one of slice labels 124 within the MPLS label stack during this search.
[0052] The slice label may be placed and / or positioned in various locations within the MPLS label stack. In some examples, the slice label may be placed and / or positioned at the top of the MPLS label stack. Figure 4 An exemplary packet 400 is illustrated that includes a slice label 404 applied and / or positioned on top of a label stack 402. Figure 4, in addition to the slice label 404, the label stack 402 of the packet 400 may also include and / or represent a transport label 406 and / or a virtual private network (VPN) label 408. In this example, the slice label 404 may be placed and / or positioned at the topmost position within the label stack 402.
[0053] Examples of transfer labels 406 include, but are not limited to, Border Gateway Protocol (BGP) labels, RSVP labels, Label Distribution Protocol (LDP) labels, variations or combinations of one or more of the foregoing, and / or any other suitable transfer labels. Figure 4 Not illustrated in this manner, but in addition to the slice label 404, the transport label 406, and the VPN label 408, the label stack 402 may also include and / or represent one or more additional MPLS labels.
[0054] In one example, identification module 106 can search and / or analyze label stack 402 for slice labels. During this search and / or analysis, identification module 106 can find and / or identify slice label 404 on top of label stack 402. In this example, as Figure 2 As part of the network node 206 in FIG. 4 , the label module 114 may pop the slice label 404 from the top of the label stack 402 , thereby exposing the transfer label 406 .
[0055] Continuing with this example, once slice label 404 has been popped from label stack 402, identification module 106 may identify transfer label 406 below slice label 404. In this example, label module 114 may replace transfer label 406 within label stack 402 with an additional transfer label that indicates and / or identifies an additional network node within network 204 (e.g., a next hop for packet 400). Once transfer label 406 has been replaced by the additional transfer label, label module 114 may reapply and / or reapply slice label 404 on top of label stack 402 such that the additional transfer label resides below slice label 404 within label stack 402. The resulting packet may then be prepared and / or ready for forwarding toward its next hop.
[0056] In one example, to replace transfer label 406 with an additional transfer label, label module 114 can pop transfer label 406 from label stack 402. In this example, based at least in part on transfer label 406, label module 114 and / or identification module 106 can determine and / or look up an additional transfer label in a lookup table that indicates and / or identifies an additional network node. Label module 114 can then apply and / or place the additional transfer label on label stack 402.
[0057] Figure 6 An exemplary lookup table 600 is illustrated that includes, among other things, entries identifying various incoming transfer labels and outgoing transfer labels. As a specific example, if transfer label 406 corresponds to and / or represents an incoming transfer label of "1" within lookup table 600, label module 114 and / or identification module 106 can determine, based at least in part on the lookup, that an outgoing transfer label of "20" should be applied to packet 400. The outgoing transfer label of "20" can enable and / or direct network node 206 to forward packet 400 to a next hop corresponding to an address of "10.200.200."
[0058] Similarly, if transfer label 406 corresponds to and / or represents an incoming transfer label of "4" within lookup table 600, label module 114 and / or identification module 106 may determine, based at least in part on the lookup, that an outgoing transfer label of "15" should be applied and / or applied to packet 400. The outgoing transfer label of "15" may enable and / or direct network node 206 to forward packet 400 to a next hop corresponding to the address of "10.200.206."
[0059] In other examples, the slice label may be placed and / or positioned in the middle and / or towards the bottom of the MPLS label stack. Figure 5 An exemplary packet 500 is illustrated that includes a slice label 404 applied and / or positioned in the middle of a label stack 502. Figure 5 As illustrated, in addition to the slice label 404, the label stack 502 of the packet 500 may include and / or represent a transport label 406, a VPN label 408, and / or an indicator 504. In this example, the indicator 504 may indicate and / or point out that the marker 502 is present in the next position within the label stack 502. In other words, the indicator 504 may be placed and / or positioned directly above the slice label 404 within the label stack 502. Although Figure 5 Not illustrated in this manner, but in addition to the slice label 404, the transport label 406, the VPN label 408, and the indicator 504, the label stack 502 may also include and / or represent one or more additional MPLS labels.
[0060] In one example, identification module 106 can search and / or analyze label stack 502 for slice labels. During this search and / or analysis, identification module 106 can find and / or identify transfer label 406 at the top of label stack 502. In this example, label module 114 can pop transfer label 406 and indicator 504 from the top of label stack 402, thereby exposing slice label 404.
[0061] Continuing with this example, once the transfer label 406 and indicator 504 have been popped from the label stack 502, the identification module 106 can find and / or identify the slice label 404 below the transfer label 406 and indicator 504. In this example, as Figure 2 As part of network node 206, determination module 108 can analyze slice label 404 to support determining which QoS policy corresponds to the network slice to which packet 500 belongs. Label module 114 can then reapply indicator 504 above slice label 404. Additionally, label module 114 can apply an additional transport label that indicates and / or identifies an additional network node within network 204 (e.g., a next hop for packet 500). Thus, slice label 404 can reside below the additional transport label within label stack 502.
[0062] In one example, to replace transfer label 406 with an additional transfer label, label module 114 can determine and / or look up an additional transfer label in lookup table 600 based at least in part on transfer label 406, the additional transfer label indicating and / or identifying an additional network node. In this example, label module 114 can also maintain slice label 404 below the additional transfer label and indicator 504. The resulting packet can then be prepared and / or ready for forwarding to its next hop.
[0063] Return to Figure 6 If transfer label 406 corresponds to and / or represents an incoming transfer label of "2" within lookup table 600, label module 114 and / or identification module 106 may determine, based at least in part on the lookup, that an outgoing transfer label of "12" should be applied and / or applied to packet 500. The outgoing transfer label of "12" may enable and / or direct network node 206 to forward packet 500 to a next hop corresponding to the address of "10.200.200."
[0064] Return to Figure 9 At step 930, one or more of the systems described herein may determine a QoS policy corresponding to the network slice indicated by the slice label. For example, as Figure 2 As part of network node 206, determination module 108 can determine which QoS policy in QoS policies 134 corresponds to and / or applies to a network slice indicated by a slice tag identified within the packet. In this example, QoS can be configured and / or programmed to support monitoring performance of the network slice in conjunction with the packet and / or associated traffic.
[0065] The systems described herein can perform step 930 in various ways and / or in various contexts. In some examples, determination module 108 and / or identification module 106 can search a lookup table for an entry indicating which of QoS policies 134 corresponds to and / or applies to the network slice indicated by the slice tag identified within the packet. During this search, determination module 108 and / or identification module 106 can locate and / or find information identifying that one of QoS policies 134 corresponds to and / or applies to the network slice and, therefore, also corresponds to and / or applies to the packet. Determination module 108 can then determine and / or discover the correct QoS policy based, at least in part, on such information.
[0066] In other examples, determination module 108 and / or identification module 106 can query a QoS management tool and / or mechanism for information identifying which of QoS policies 134 corresponds to and / or applies to the network slice indicated by the slice tag identified within the packet. In response to the query, determination module 108 and / or identification module 106 can receive and / or obtain information identifying that one of QoS policies 134 corresponds to and / or applies to the network slice and, therefore, also corresponds to and / or applies to the packet. Determination module 108 can then determine and / or discover the correct QoS policy based at least in part on such information.
[0067] Return to Figure 9 At step 940, one or more of the systems described herein may apply a QoS policy to the packet. For example, as Figure 2 As part of network node 206, QoS module 110 can apply one of QoS policies 134 to the packet. In this example, QoS can enable network node 206 to monitor the performance of the network slice in conjunction with the packet and / or the flow of the packet.
[0068] The systems described herein can perform step 940 in various ways and / or in various contexts. In some examples, QoS module 110 can perform and / or enforce applicable QoS in conjunction with the packet and / or the flow of packets to record, collect, and / or calculate data, information, or statistics about the performance of the network slice in conjunction with the packet and / or the flow of packets. Additionally or alternatively, QoS module 110 can perform and / or enforce applicable QoS to direct the packet toward resources provided by and / or reserved for the network slice.
[0069] In some examples, QoS module 110 can perform and / or enforce applicable QoS to control prioritization, queuing, and / or transmission of packets and / or flows of packets in a certain order relative to other packets and / or their flows. For example, applicable QoS can cause and / or direct network node 206 to sort queues in a particular manner for processing, servicing, and / or transmission. Applicable QoS can also cause and / or direct network node 206 to control the latency and / or throughput experienced by packets and / or flows of packets.
[0070] Return to Figure 9 At step 950, one or more of the systems described herein may forward the packet to an additional network node within the network. For example, as Figure 2 As part of network node 206, once QoS has been applied to the packet, forwarding module 112 can forward the packet to an additional network node, such as network nodes 210(1)-210(N), 212(1)-212(N), and / or one of network nodes 208. In one example, the additional network node can include and / or represent an intermediary node along a path to the packet's final destination. Alternatively, the additional network node can include and / or identify the packet's final destination.
[0071] The systems described herein can perform step 950 in various ways and / or in various contexts. In some examples, forwarding module 112 can send and / or transmit the packet to an additional network node. For example, forwarding module 112 can cause and / or direct network node 206 to send and / or transmit the packet to network node 210(1) en route to network node 208. In this example, network node 208 can constitute and / or represent an egress node for the LSP of the packet. Additionally or alternatively, network node 208 can constitute and / or represent a final destination for the packet.
[0072] Figure 3 An exemplary system 300 for directing traffic through network slicing is illustrated. Figure 3 As illustrated in FIG, exemplary system 300 may include and / or represent an ingress label edge router (LER) 302, an egress LER 310, and transit LSRs 304, 306, and 308. In one example, a path may be formed and / or exist between ingress LER 302 and egress LER 310 via transit LSRs 304, 306, and 308. For example, ingress LER 302 may transmit traffic along transit LSRs 304, 306, and 308 to egress LER 310. In other words, ingress LER 302 may forward traffic to transit LSR 304, which in turn forwards the traffic to transit LSR 306, and so on, until the traffic ultimately reaches egress LER 310.
[0073] In some examples, each of the transit LSRs 304, 306, and 308 can have access to network slices 122(1) and 122(N). For example, the system 300 can also include and / or represent a controller 322 that programs the transit LSRs 304, 306, and 308 to associate one or more of the QoS policies 134 with one or more of the network slices 120. In this example, the controller 322 can send a control signal to one or more of the transit LSRs 304, 306, and 308, the ingress LER 302, and / or the egress LER 310. The control signal can direct and / or instruct any of the routers to program and / or map a particular QoS to a corresponding network slice. In response to the control signal, any of the routers can program a lookup table and / or slice management tool to associate a particular QoS with a particular network slice.
[0074] In some examples, ingress LER 302 can forward a packet that is at least intermediately destined for egress LER 310 to transit LSR 304. In one example, ingress LER 302 can determine that the packet belongs to one of network slices 120 and / or can select one of network slices 120 for the packet. In this example, ingress LER 302 can direct the packet through the network slice by applying slice label 404, transport label 406, and VPN label 408 to the packet's label stack. In this example, transport label 406 can direct ingress LER 302 to forward the packet to transit LSR 304.
[0075] In some examples, upon receiving the packet from the ingress LER 302, the transit LSR 304 may pop the slice label 404 from the label stack and then determine which QoS policy in the QoS policies 134 corresponds to and / or applies to the packet based at least in part on the slice label 404. In one example, the slice label 404 may indicate and / or convey to the transit LSR 304 that the packet belongs to the network slice 122(1) or 122(N). In this example, the transit LSR 304 may apply the QoS indicated by and / or corresponding to the network slice 404 to the packet. Additionally, the transit LSR 304 may replace the transport label 406 with another transport label corresponding to the transit LSR 306 and then reapply and / or reapply the slice label 404 to the label stack of the packet. Once the slice label 404 has been reapplied to the label stack, the transit LSR 304 may forward the packet to the transit LSR 306.
[0076] Similarly, upon receiving the packet from transit LSR 304, transit LSR 306 may pop slice label 404 from the label stack and then determine which QoS policy in QoS policies 134 corresponds to and / or applies to the packet based at least in part on slice label 404. In one example, slice label 404 may indicate transit LSR 306 and / or convey to transit LSR 306 that the packet belongs to network slice 122(1) or 122(N). In this example, transit LSR 306 may apply the QoS indicated by slice label 404 and / or corresponding to the network slice to the packet. Transit LSR 306 may replace the current transport label with another transport label corresponding to transit LSR 308 and then reapply and / or reapply slice label 404 to the label stack of the packet. Once slice label 404 has been reapplied to the label stack, transit LSR 306 may forward the packet to transit LSR 308.
[0077] In addition, upon receiving the packet from the transit LSR 306, the transit LSR 308 may pop the slice label 404 from the label stack and then determine which QoS policy in the QoS policies 134 corresponds to and / or applies to the packet based at least in part on the slice label 404. In one example, the slice label 404 may indicate the transit LSR 308 and / or convey to the transit LSR 308 that the packet belongs to the network slice 122(1) or 122(N). In this example, the transit LSR 308 may apply the QoS indicated by the slice label 404 and / or corresponding to the network slice to the packet. The transit LSR 308 may replace the current transport label with another transport label corresponding to the transit LSR 310 and then reapply and / or reapply the slice label 404 to the label stack of the packet. Once the slice label 404 has been reapplied to the label stack, the transit LSR 308 may forward the packet to the egress LSR 310.
[0078] Finally, upon receiving the packet from transit LSR 308, egress LSR 310 may pop slice label 404 from the label stack and then determine which QoS policy in QoS policies 134 corresponds to and / or applies to the packet based at least in part on slice label 404. In one example, slice label 404 may indicate and / or convey to egress LSR 310 that the packet belongs to network slice 122(1) or 122(N). In this example, egress LSR 310 may apply the QoS indicated by slice label 404 and / or corresponding to the network slice to the packet. Additionally or alternatively, egress LSR 310 may pop the current transport label from the packet's label stack, thereby exposing VPN label 408 for processing in conjunction with the packet.
[0079] Figure 7 An exemplary implementation 700 is illustrated in which a label stack 402 supports directing a packet 400 through an assigned network slice. Figure 7 As illustrated, exemplary implementation 700 can involve packet 400 traversing through network node 206. In one example, network node 206 can receive packet 400 and then pop slice label 404 and transfer label 406 from label stack 402 of packet 400. In this example, network node 206 can determine which QoS policy in QoS policies 134 corresponds to packet 400 based at least in part on slice label 404. Network node 206 can apply the QoS policy to packet 400. Network node 206 can also look up a transfer label 706 indicating a next hop in lookup table 600 based at least in part on transfer label 406. Network node 206 can then apply transfer label 706 to label stack 402 and / or reapply slice label 404 to label 402 before forwarding packet 400 to the next hop.
[0080] Figure 8 An exemplary implementation 800 is illustrated in which a label stack 502 supports directing a packet 500 through an appropriate network slice. Figure 8 As illustrated, exemplary implementation 800 may involve packet 500 traversing through network node 206. In one example, network node 206 may receive packet 500 and then pop transfer label 406, indicator 504, and slice label 404 from label stack 502 of packet 500. In this example, network node 206 may determine which QoS policy in QoS policies 134 corresponds to packet 500 based at least in part on slice label 404. Network node 206 may apply the QoS policy to packet 500. Network node 206 may also look up transfer label 706 indicating a next hop in lookup table 600 based at least in part on transfer label 406. Network node 206 may then reapply slice label 404 and indicator 504 to label stack 502 and / or apply transfer label 706 to label stack 502 before forwarding packet 500 to the next hop.
[0081] Figure 10 is a block diagram of an exemplary computing system 1000 that can implement and / or be used in conjunction with one or more of the embodiments described and / or illustrated herein. In some embodiments, all or part of the computing system 1000 can be used independently or in combination with other components to perform the combined operation. Figure 3 One or more of the steps described, and / or as used in conjunction with Figure 3All or part of computing system 1000 may also perform any other steps, methods, or processes described and / or illustrated herein, and / or be a component for performing and / or implementing any other steps, methods, or processes described and / or illustrated herein.
[0082] Computing system 1000 broadly represents any type or form of electrical load, including a single-processor or multi-processor computing device or system capable of executing computer instructions. Examples of computing system 1000 include, but are not limited to, workstations, laptops, client-side terminals, servers, distributed computing systems, mobile devices, network switches, network routers (e.g., backbone routers, edge routers, core routers, mobile service routers, broadband routers, etc.), network devices (e.g., network security devices, network control devices, network timing devices, SSL VPN (Secure Sockets Layer Virtual Private Network) devices, etc.), network controllers, gateways (e.g., service gateways, mobile packet gateways, multi-access gateways, security gateways, etc.), and / or any other type or form of computing system or device.
[0083] The computing system 1000 may be programmed, configured, and / or otherwise designed to conform to one or more networking protocols. According to certain embodiments, the computing system 1000 may be designed to operate with protocols of one or more layers of the Open Systems Interconnection (OSI) reference model, such as physical layer protocols, link layer protocols, network layer protocols, transport layer protocols, session layer protocols, presentation layer protocols, and / or application layer protocols. For example, the computing system 1000 may include network devices configured according to the following protocols: Universal Serial Bus (USB) protocol, Institute of Electrical and Electronics Engineers (IEEE) 1394 protocol, Ethernet protocol, T1 protocol, Synchronous Optical Networking (SONET) protocol, Synchronous Digital Hierarchy (SDH) protocol, Integrated Services Digital Network (ISDN) protocol, Asynchronous Transfer Mode (ATM) protocol, Point-to-Point Protocol (PPP), Point-to-Point Protocol over Ethernet (PPPoE), Point-to-Point Protocol over ATM (PPPoA), Bluetooth protocol, IEEE 802.XX protocol, Frame Relay protocol, Token Ring protocol, Spanning Tree Protocol, and / or any other suitable protocol.
[0084] The computing system 1000 may include various network and / or computing components. For example, the computing system 1000 may include at least one processor 1014 and system memory 1016. The processor 1014 generally represents any type or form of processing unit capable of processing data or interpreting and executing instructions. For example, the processor 1014 may represent an application-specific integrated circuit (ASIC), a system on a chip (e.g., a network processor), a hardware accelerator, a general-purpose processor, and / or any other suitable processing element.
[0085] The processor 1014 may process data according to one or more of the networking protocols discussed above. For example, the processor 1014 may execute or implement portions of a protocol stack, may process packets, may perform memory operations (e.g., queue packets for later processing), may execute end-user applications, and / or may perform any other processing tasks.
[0086] The system memory 1016 generally represents any type or form of volatile or non-volatile storage device or storage medium capable of storing data and / or other computer-readable instructions. Examples of system memory 1016 include, but are not limited to, random access memory (RAM), read-only memory (ROM), flash memory, or any other suitable memory device. Although not required, in some embodiments, the computing system 1000 may include a volatile memory unit (such as, for example, the system memory 1016) and a non-volatile storage device (such as, for example, the main storage device 1032 described below). The system memory 1016 can be implemented as shared memory and / or distributed memory in a network device. In addition, the system memory 1016 can store packets and / or other information used in networking operations.
[0087] In some embodiments, the exemplary computing system 1000 may include one or more components or elements in addition to the processor 1014 and the system memory 1016. For example, Figure 10 As shown, computing system 1000 may include a memory controller 1018, an input / output (I / O) controller 1020, and a communication interface 1022, each of which may be interconnected via a communication infrastructure 1012. Communication infrastructure 1012 generally represents any type or form of infrastructure capable of supporting communication between one or more components of a computing device. Examples of communication infrastructure 1012 include, but are not limited to, a communication bus (such as Serial ATA (SATA), Industry Standard Architecture (ISA), Peripheral Component Interconnect (PCI), PCI Express (PCIe), and / or any other suitable bus) and a network.
[0088] Memory controller 1018 generally represents any type or form of device capable of handling memory or data, or controlling communications between one or more components of computing system 1000. For example, in some embodiments, memory controller 1018 may control communications between processor 1014, system memory 1016, and I / O controller 1020 via communication infrastructure 1012. In some embodiments, memory controller 1018 may include a direct memory access (DMA) unit that may transfer data (e.g., packets) to or from a link adapter.
[0089] I / O controller 1020 generally represents any type or form of device or module capable of coordinating and / or controlling the input and output functions of a computing device. For example, in some embodiments, I / O controller 1020 may control or support the transfer of data between one or more elements of computing system 1000, such as processor 1014, system memory 1016, communication interface 1022, and storage interface 1030.
[0090] The communication interface 1022 broadly represents any type or form of communication device or adapter capable of supporting communication between the exemplary computing system 1000 and one or more additional devices. For example, in some embodiments, the communication interface 1022 can support communication between the computing system 1000 and a private or public network including additional computing systems. Examples of the communication interface 1022 include, but are not limited to, a link adapter, a wired network interface (such as a network interface card), a wireless network interface (such as a wireless network interface card), and any other suitable interface. In at least one embodiment, the communication interface 1022 can provide a direct connection to a remote server via a direct link to a network (such as the Internet). The communication interface 1022 can also provide such a connection through, for example, a local area network (such as Ethernet), a personal area network, a wide area network, a private network (such as a virtual private network), a telephone or cable network, a cellular phone connection, a satellite data connection, or any other suitable connection.
[0091] In some embodiments, the communication interface 1022 may also represent a host adapter that is configured to support communication between the computing system 1000 and one or more attached network or storage devices via an external bus or communication channel. Examples of host adapters include, but are not limited to, small computer system interface (SCSI) host adapters, universal serial bus (USB) host adapters, IEEE 1394 host adapters, advanced technology attachment (ATA), parallel ATA (PATA), serial ATA (SATA), and external SATA (eSATA) host adapters, fiber channel interface adapters, Ethernet adapters, and the like. The communication interface 1022 may also enable the computing system 1000 to participate in distributed computing or remote computing. For example, the communication interface 1022 may receive instructions from a remote device or send instructions to a remote device for execution.
[0092] like Figure 10 As shown, the exemplary computing system 1000 may also include a primary storage device 1032 and / or a backup storage device 1034, which are coupled to the communication infrastructure 1012 via a storage interface 1030. Storage devices 1032 and 1034 generally represent any type or form of storage device or medium capable of storing data and / or other computer-readable instructions. For example, storage devices 1032 and 1034 may represent magnetic disk drives (e.g., so-called hard disk drives), solid-state drives, floppy disk drives, tape drives, optical disk drives, flash drives, etc. Storage interface 1030 generally represents any type or form of interface or device for transferring data between storage devices 1032 and 1034 and other components of the computing system 1000.
[0093] In some embodiments, storage devices 1032 and 1034 can be configured to read from and / or write to a removable storage unit that is configured to store computer software, data, or other computer-readable information. Examples of suitable removable storage units include, but are not limited to, floppy disks, magnetic tapes, optical disks, flash memory devices, and the like. Storage devices 1032 and 1034 can also include other similar structures or devices for allowing computer software, data, or other computer-readable instructions to be loaded into computing system 1000. For example, storage devices 1032 and storage devices 1034 can be configured to read and write software, data, or other computer-readable information. Storage devices 1032 and storage 1034 can be part of computing system 1000 or separate devices accessed through other interface systems.
[0094] Many other devices or subsystems may be connected to the computing system 1000. In contrast, there need not be Figure 10 The embodiments described and / or illustrated in the text may be practiced with all of the components and devices shown in the text. The devices and subsystems referenced above may also be used in accordance with Figure 10 The computing system 1000 may be interconnected in different ways as shown. The computing system 1000 may also employ any number of software configurations, firmware configurations, and / or hardware configurations. For example, one or more exemplary embodiments disclosed herein may be encoded as a computer program (also referred to as computer software, software applications, computer-readable instructions, or computer control logic) on a computer-readable medium. The term "computer-readable medium" generally refers to any form of device, carrier, or medium capable of storing or carrying computer-readable instructions. Examples of computer-readable media include, but are not limited to, transmission-type media (such as carrier waves), and non-transient-type media (such as magnetic storage media (e.g., hard drives and floppy disks), optical storage media (e.g., compact disks (CDs) and digital video disks (DVDs)), electronic storage media (e.g., solid-state drives and flash memory media), and other distribution systems).
[0095] Although the foregoing disclosure uses specific block diagrams, flow charts, and examples to illustrate various embodiments, each block diagram component, flow chart step, operation, and / or component described and / or illustrated herein may be implemented individually and / or collectively using various hardware configurations, software configurations, or firmware configurations (or any combination thereof). In addition, any disclosure of components contained within other components should be considered exemplary in nature because many other architectures may be implemented to achieve the same functionality.
[0096] In some examples, Figure 1 All or part of the system 100 in the embodiment of the present invention may represent part of a cloud computing environment or part of a network-based environment. Cloud computing environments and network-based environments can provide various services and applications via the Internet. These cloud computing and network-based services (e.g., software as a service, platform as a service, infrastructure as a service, etc.) can be accessed through a web browser or other remote interface. The various functions described herein may also provide network switching capabilities, gateway access capabilities, network security functions, content caching and delivery services for the network, network control services, and / or any other networking functionality.
[0097] In addition, one or more modules described herein may transform data, physical devices, and / or representations of physical devices from one form to another. Additionally or alternatively, one or more of the modules described herein may transform a processor, volatile memory, non-volatile memory, and / or any other portion of a physical computing device from one form to another by executing on a computing device, storing data on a computing device, and / or otherwise interacting with a computing device.
[0098] The process parameters and order of steps described and / or illustrated herein are given by way of example only and may be changed as desired. For example, although the steps illustrated and / or described herein may be shown or discussed in a particular order, the steps do not necessarily need to be performed in the order shown or discussed. The various exemplary methods described and / or illustrated herein may also omit one or more steps described or illustrated herein, or include additional steps in addition to those disclosed.
[0099] The foregoing description has been provided to enable others skilled in the art to best utilize the various aspects of the exemplary embodiments disclosed herein. This exemplary description is not intended to be exhaustive or limited to any precise form disclosed. Many modifications and variations are possible without departing from the spirit and scope of the present disclosure. The embodiments disclosed herein should be considered in all respects to be illustrative and not restrictive. When determining the scope of the present disclosure, reference should be made to the appended claims and their equivalents.
[0100] Unless otherwise indicated, the terms "connected to" and "coupled to" (and their derivatives), as used in the specification and claims, should be interpreted as permitting both direct and indirect connections (i.e., through other elements or components). Additionally, the terms "a" or "an," as used in the specification and claims, should be interpreted as meaning "at least one of." Finally, for ease of use, the terms "including" and "having" (and their derivatives), as used in the specification and claims, may be used interchangeably with and have the same meaning as the word "comprising."
Claims
1. A method for forwarding a packet, comprising: receiving, at a network node within a network, a packet from another network node within the network; searching a label stack of the packet for an indicator indicating the presence of a slice label in a next position within the label stack, the slice label indicating a network slice that has been logically partitioned on the network; During the search for said indicator: identifying a transfer label at a top of the label stack of the packet, the transfer label indicating the network node within the label stack; as well as identifying the indicator below the forwarding label in the label stack; popping the transfer label and the indicator from the top of the label stack of the packet; Searching the label stack for the slice label; During the search for the slice tag, identifying the slice tag; Determining a quality of service policy corresponding to the network slice by analyzing the slice label; reapplying the indicator above the slice label within the label stack; applying an additional transfer label indicating an additional network node at the top of the label stack of the packet such that the slice label resides below the additional transfer label within the label stack; applying the quality of service policy to the packet; as well as After applying the quality of service policy to the packet, the packet is forwarded to the additional network node within the network.
2. The method according to claim 1, wherein the network slice: Dedicated to a specific type of service; and One or more resources are provided to the packet at least in part due to the packet belonging to the network slice.
3. The method of claim 2, wherein applying the quality of service policy to the packet comprises directing the packet to the resource provided by the network slice.
4. The method according to claim 1, further comprising: popping the slice label from the label stack of the packet; as well as A virtual private network label within the label stack is exposed for processing in conjunction with the packet.
5. The method according to claim 1, further comprising: based at least in part on the transfer tag, looking up the additional transfer tag in a lookup table; as well as The slice label is maintained beneath the additional transfer label and the indicator when the packet is forwarded to the additional network node.
6. The method according to claim 1, further comprising: receiving, at the network node, a control signal originating from a controller; as well as Based at least in part on the control signal, the network node is programmed to associate the quality of service policy with the network slice.
7. The method according to claim 1, wherein: The network comprises a multi-protocol label switching network; and The network node includes at least one of the following: Transit label switching routers; and Egress Label Edge Router.
8. The method of claim 1 , wherein the another network node comprises an ingress label edge router, the ingress label edge router: determining that the packet belongs to the network slice; and The packet is directed through the network slice by applying the slice label and the transport label on the label stack.
9. A system comprising: a receiving module stored in a memory on a network node within a network, the receiving module receiving a packet from another network node within the network; An identification module is stored in a memory on the network node, wherein the identification module: searching a label stack of the packet for an indicator indicating the presence of a slice label in a next position within the label stack, the slice label indicating a network slice that has been logically partitioned on the network; During the search for said indicator: identifying a transfer label at a top of the label stack of the packet, the transfer label indicating the network node within the label stack; as well as identifying the indicator below the forwarding label in the label stack; Searching the label stack for the slice label; During the search for the slice tag, identifying the slice tag; A label module is stored in a memory on the network node, wherein the label module: popping the transfer label and the indicator from the top of the label stack of the packet; reapplying the indicator above the slice label within the label stack; as well as applying an additional transfer label indicating an additional network node at the top of the label stack of the packet such that the slice label resides below the additional transfer label within the label stack; A determination module is stored in a memory on the network node, and the determination module determines the quality of service policy corresponding to the network slice by analyzing the slice label; a quality of service module stored in a memory on the network node, the quality of service module applying the quality of service policy to the packet; a forwarding module, stored in a memory on the network node, the forwarding module forwarding the packet to the additional network node within the network after the quality of service policy has been applied to the packet; as well as A physical processing device is configured to execute the receiving module, the identifying module, the determining module, the quality of service module, and the forwarding module.
10. The system of claim 9, wherein the network slice: Dedicated to a specific type of service; and One or more resources are provided to the packet at least in part due to the packet belonging to the network slice.
11. The system of claim 10, wherein the quality of service module directs the packets to the resources provided by the network slice.
12. A device comprising: at least one storage device storing a set of service quality policies, the set of quality of service policies corresponding to a set of network slices, the set of network slices having been logically segmented on the network; as well as at least one physical processor communicatively coupled to the storage device, wherein the physical processor: receiving a packet from another network node within the network; searching a label stack of the packet for an indicator indicating the presence of a slice label in a next position within the label stack, the slice label indicating a network slice that has been logically partitioned on the network; During the search for said indicator: identifying a transfer label at a top of the label stack of the packet, the transfer label indicating the network node within the label stack; as well as identifying the indicator below the forwarding label in the label stack; popping the transfer label and the indicator from the top of the label stack of the packet; Searching the label stack for the slice label; During the search for the slice tag, identifying the slice tag; Determining a quality of service policy corresponding to the network slice by analyzing the slice label; reapplying the indicator above the slice label within the label stack; applying an additional transfer label indicating an additional network node at the top of the label stack of the packet such that the slice label resides below the additional transfer label within the label stack; applying the quality of service policy to the packet; as well as After applying the quality of service policy to the packet, the packet is forwarded to an additional network node within the network.
Citation Information
Patent Citations
Data transmission configuration and data transmission method, apparatus, and computer storage medium
WO2018201822A1
Transmission control method, node, network system, and storage medium
WO2020052230A1