1. Field of the Invention
The present invention generally relates to optical communication networks, and more particularly to a method, system, computer program product, and apparatus for managing differentiated service classes.
2. Related Art
Communications networks, such as optical communications networks, may use routers provisioned to carry network communications according to service plans between a service provider and a customer. For example, a customer may have a high cost service plan with the service provider that ensures their network communications are transmitted through the network at a guaranteed rate. Lower cost service plans may allow the service provider to carry the communications at a less than optimal rate depending upon congestion of the network.
Any of the fiber optic links 110a . . . d may be configured as a communications “trunk” to handle many signals simultaneously, and to connect nodes in a communications system which can carry communications data at optical rates (e.g., OC-192, OC-48). The type of traffic communicated can be voice (as in the conventional telephone system) data, computer programs, images, video signals, control signals, and the like.
Fiber optic link configuration can be performed using a framework that provides for the designation, routing, forwarding, and switching of traffic flows through the network, called Multi-Protocol Label Switching (MPLS). In MPLS networking, a Label Switched Path (LSP) is set up as a path through an MPLS network. The path begins at a Label Edge Router (LER) which prepends an outer label (also sometimes referred to as “outer header” or simply “header”) to a packet used to forward the packet to the next hop. The packet is then forwarded by the LER to the next router in the path. Along the packet's route, the packet's outer label is swapped for another outer label by intermediary network nodes, such as label switching routers (LSRs), which in turn forward the packet to the next router. The last router in the path removes the outer label from the packet and forwards the packet based on the header of its next layer. Due to the forwarding of packets through an LSP being opaque to higher network layers, an LSP is also sometimes referred to as an MPLS tunnel.
An exemplary LSP 115 is illustrated in
Generally, network traffic is sorted into service classes by application and service type. Traffic for a given service class is then scheduled (or mapped) onto LSPs according to a bandwidth configured for each service type. Each of these prior art LSPs can thus be referred to as a “bandwidth configured” LSP. For example, the LSP 115 may be configured to support 10 Mbps, where configuring or provisioning (used herein synonymously) the LSP 115 may be done by signaling to the routers along the route, router A 105a, router D 105d, and router C 105c, to allow the LSP 115 to support communications up to the specified rate.
Typically certain types of traffic are more time-constrained than others. Network service providers can account for this by configuring its networks to supply better service to selected network traffic based on factors such as dedicated bandwidth, delay, loss characteristics, controlled jitter and latency. Before doing so, it is necessary to determine the quality necessary for acceptable communications on a per service basis so that the traffic can be scheduled. If an application or service wishes to use the network to transport a particular kind of traffic (e.g., voice, video, data, etc.), it must first inform the network about what kind of traffic is to be transported, and the performance requirements of that traffic. For example, voice traffic requires scheduling that provides low delay, real-time traffic transport. At the opposite spectrum, another type of traffic, signaling and operation and maintenance (OAM) traffic may is scheduled on a tunnel configured as a non-real-time service transport tunnel having less bandwidth.
Each type of service category has a predefined method of relating traffic characteristics and requirements to network behavior. The Constant Bit Rate (CBR) service category, for example, is used for connections that transport traffic at a consistent bit rate, where there is an inherent reliance on time synchronization between the traffic source and destination. CBR is tailored for any type of data for which the end-systems require predictable response time and a static amount of bandwidth continuously available for the life-time of the connection. Another type of service category, the real time variable bit rate (VBR-rt or rt-VBR) service category, is used for connections that transport traffic at variable rates. VBR-rt traffic thus relies on accurate timing between the traffic source and destination. Sources that use VBR-rt connections are expected to transmit at a rate that varies with time (for example, traffic that can be considered bursty).
The non-real time variable bit rate (VBR-nrt or nrt-VBR) service category is used for connections that transport variable bit rate traffic for which there is no inherent reliance on time synchronization between the traffic source and destination. However, traffic communicated using VBR-nrt requires an attempt at a guaranteed bandwidth or latency.
The Expedited Forwarding (EF) service category is used for applications that require a hard guarantee on the delay and jitter. Typically mission critical applications would require this type of service.
The Assured Forwarding (AF) service category is used to offer different levels of forwarding assurances to IP packets received from a customer service. Unlike the EF service category, the AF service category does not guarantee low latency and low jitter to IP packets. The unspecified bit rate (UBR) service category is similar to VBR-nrt, because it is used for connections that transport variable bit rate traffic for which there is no reliance on time synchronization between the traffic source and destination.
Network devices, such as routers and switches, use buffers during periods of congestion to queue packets for subsequent processing. After being processed by the network device, the packets are then sent to their destination based on priority. This assignment is carried out by software known as a scheduler. Schedulers queue traffic based on queuing algorithms.
Strict priority queuing assigns a priority (e.g., high, normal, low) to traffic. High priority traffic gets absolute preferential treatment over lower priority traffic, to the extreme that low priority traffic may get no bandwidth whatsoever during peak utilization periods. Weighted queuing, such as weighted fair queuing (WFQ), is a method which schedules low-volume traffic first, while letting high-volume traffic share the remaining bandwidth. This is handled by assigning a weight to each flow, where lower weights are the first to be serviced. Another type of scheduling technique is commonly referred to as “best effort” scheduling. Services that use best effort scheduling algorithms do not take into account any requested or realized quality of service (QoS) properties of packet flows. An example of such a technique is a first-in, first-out (FIFO) scheduling technique, which processes packets as they arrive.
Call admission control (CAC) protocols play a significant role in providing a desired QoS. A CAC protocol may be employed, for example, in each of the routers 105a . . . d to prevent the LSPs 115 associated with a given network node from exceeding a specified rate, such as a burst rate of 10 Mbps (for one LSP) or a line rate of 10 Gbps (across all LSPs). In operation, this means that when the LSP 115 is being signaled (e.g., configured through each of the routers 105a, 105d, 105c along its network path 110d and 110c), the CAC protocol determines whether the LSP 115 is allowed to be built based on parameters provisioned in each of the routers. For example, if the LSP 115 is requesting a burst rate of 50 Mbps but the allowed maximum burst rate is set at 10 Mbps, the CAC protocol denies provisioning of the LSP 115. In such a case, the LSP 115 may have to be provisioned on a different optical path, such as an optical path along an optical fiber that has been provisioned to support 50 Mbps via the same network nodes or along different network nodes, such as from routers A to C through router B 105b. The CAC protocol may also (i) sum (a) rates of all currently provisioned LSPs and (b) a rate of a requested LSP and (ii) deny provisioning if the total rate exceeds the rate supported by the trunk. Once an LSP is provisioned, a shaper (not shown) within each of the routers prevents the LSP 115 from exceeding the provisioned data rate.
One way to implement a network is to employ a technique called “pseudo wire emulation edge-to-edge” (PWE3). Generally, PWE3 is a technique that emulates the essential attributes of a service over a packet-switched network acting as a transport network. PWE3 utilizes pseudo wires (PWs), which are mechanisms that emulate the essential attributes of a particular service. In a network configuration such as the one described above, a QoS model is used to implement services which use weighted classes and multiple groupings, such as multipoint Layer 2/Layer3 (L2/L3) services.
There is a need for an improved way of carrying multiple services (with different requirements) over a single path in the network.
There is also a need to provide a mechanism to create an LSP which can combine both real-time and non-real-time services with differentiated levels among those services.
Given the foregoing, what is needed is a system, method and computer program product for methods, and an apparatus, for managing differentiated service classes.
The present invention meets the above-identified needs by providing a system, method, apparatus and computer program product for managing differentiated service classes.
An advantage of the present invention is that it can carry multiple services with different requirements over a single path in the network.
Another advantage of the present invention is that it provides a mechanism to create an LSP which can combine both real-time and non-real-time services with differentiated levels among those services.
In accordance with one embodiment of the present invention, there is provided a method, apparatus, system and computer program product for managing differentiated service classes on a label switch path by comparing at least one packet field value included in a packet of data to mapping field values of a mapping that correlates the mapping field values with queues. The packet is stored into one of the queues based on the comparing. A first subset of the queues is scheduled using a first queue scheduling algorithm and a second subset of the queues is scheduled using a second queue scheduling algorithm. The packet is transmitted onto the label switch path in accordance with a predefined scheduling order of the first subset of the queues and the second subset of the queues.
In accordance with another embodiment of the present invention a system for managing a plurality of differentiated service classes on a label switch path on a network is provided including a first node device operable to prepend a label onto a packet of data, the label including a packet field value defining a priority of the packet, and to transmit the packet with the label onto the network and a second node device operable to receive the packet from the network, to compare the at least one packet field value with a predefined mapping defined to correlate one or more mapping field values with a plurality of queues, store the packet into one of the queues based on a comparison of the packet field value and the mapping field values, to schedule a first subset of the queues using a first queue scheduling algorithm, to schedule a second subset of the queues using a second queue scheduling algorithm, and to transmit the packet to a next hop in accordance with a predefined scheduling order of the first subset of the queues and the second subset of the queues.
Further features and advantages of the present invention as well as the structure and operation of various embodiments of the present invention are described in detail below with reference to the accompanying drawings.
The features and advantages of the present invention will become more apparent from the detailed description set forth below when taken in conjunction with the drawings in which like reference numbers indicate identical or functionally similar elements.
The present invention is directed to methods, systems, an apparatus and computer program products for configuring an LSP which can offer both real-time and non-real-time services with differentiated levels among those services. The present invention is now described in more detail herein in terms of an exemplary multi-protocol label switching (MPLS) optical network environment. This is for convenience only and is not intended to limit the application of the present invention. In fact, after reading the following description, it will be apparent to one skilled in the relevant art(s) how to implement the following invention in alternative embodiments (e.g., non-optical networks, non-MPLS environments, and the like).
The LERs and LSRs depicted in
Processor 302 may be further coupled to a communications device 314 via a communications device controller 316 coupled to the I/O bus 308. Processor 302 uses the communications device 314 to communicate with a network (not shown in
In operation, processor 302 loads the program instructions 310b from the storage device 310 into the memory 304. Processor 302 then executes the loaded program instructions 310b to offer differentiated services for network traffic that arrives at data processing system 300 and is queued in memory 304. Thus, processor 302 operates under the control of the instructions 310b to perform the methods of this invention. The present invention can also be implemented, for example, in a network router, switch or other node device.
If the packet already is appended with an LSP label the packet is prioritized based on its EXP field value. If the node is an ingress node, then the Label Edge Router (LER) prepends an outer label to a packet containing the EXP field based on the type of traffic the packet is communicating. In particular, scheduling (or prepending a label to a packet) is based on a mapping stored in the EXP bit mapping register 403. A network operator through standard network configuration tools preconfigures the mapping, exemplary embodiments of which are shown in
In an exemplary embodiment, AF1 through AF4 are set through an MPLS IP interface (not shown in
According to exemplary embodiments of the invention, any service in the system can use any combination of these service classes. In this context, “service” is used as meaning the type of traffic. For example, services requiring hard QoS, such as PWE3, Pseudo Wire Interface (PWI) and point-to-point circuits can use strict priority queuing. Services requiring soft QoS such as virtual private LAN service (VPLS) and Internet Protocol (IP) can use weighted priority queuing. Furthermore, services can be provisioned to use a mixture of strict and weighted priority queuing. As an example, IP services can be provisioned such that premium IP traffic such as voice over IP (“VoIP”) is offered strict priority and Internet traffic is offered weighted scheduling.
Exemplary embodiments of the invention employ E-LSPs (EXP-Inferred-LSP) as follows. Each E-LSP can have multiple classes of services corresponding to queues. Different E-LSPs can also be configured to have different combinations of scheduling queues, i.e., each E-LSP may not have the same service classes. As an example, one E-LSP can have all weighted service classes, another E-LSP can have all strict priority classes, a third E-LSP can have a mixture of these classes such as three (3) strict service classes and five (5) weighted service classes, a fourth E-LSP can have a different mixture of service classes such as four (4) strict priority service classes and four (4) weighted service classes. A service provider can limit the total number of combinations for operational ease.
The experimental bit inferred label switched path (E-LSP) includes a 3-bit Experimental Field (EXP) in the MPLS header. Thus, the MPLS EXP field restricts the number of priorities to eight (8), although in other exemplary embodiments of the invention can have more (or less) than 8 classes per E-LSP on the LSP originating node. Consequently, traffic will get different treatment within the node with each service class having its own treatment. At the egress point, just before the traffic exits the system, traffic from multiple classes may get marked with the same EXP bits, to accommodate the MPLS EXP framework limitation of 8 values.
In an alternative embodiment of the invention, another MPLS label header field is used to mark a packet's type of service class. Accordingly, it should be understood that using the EXP field is an exemplary method of providing a scheduler with information used to schedule traffic (i.e., packets).
Each LSP can support multiple services. In the above example, each E-LSP is limited to a single type of service such as PWE3 or VPLS/IP. Services are not mixed within a LSP since point-to-point and multipoint services have different characteristics. Point-to-point services typically require strict priority queuing whereas multipoint services typically require weighted scheduling. As shown, CBR, VBR-rt, and VBR-nrt strict priority service classes are scheduled first, second and third, respectively. Next the weighted priority classes EF, AF4, AF3, AF2 and AF1 are scheduled. Finally, the lowest priority service class, UBR/BE, is scheduled.
The Premium-Diffserv-TE E-LSP type in the above example can be configured as shown in
As shown in
In contrast to existing systems which support only either strict priority or weighted priority LSPs, the exemplary embodiments of the present invention described above can support both strict and weighted priority LSPs and can have the same LSP supporting both strict and weighted priority LSPs.
The templates (also referred to as “mappings” or “EXP bit mapping table”) shown in
Process 1300 is performed on packets received at a node in network 200, according to one embodiment of the present invention. In block 1302, a packet is received by the network node (e.g., LER 202,
Generally, strict priority service classes are serviced first and weighted priority classes are scheduled thereafter. Process 1400 of
Referring again to
For example, referring to
If a packet is not ready to be transmitted (“No” at block 1408), then at block 1412 a determination is made whether a higher priority service class has caused an interrupt to request service. If a determination is made at block 1412 that there has not been an interrupt due to a higher priority packet being scheduled, then a determination is made as to whether the queues just serviced are the last queues to be serviced within a particular priority class. At block 1418, the queue counter N is checked to determine if the last strict priority queue N has been serviced for packets. If a determination is made at block 1418 that other priority queues still need to be serviced (i.e., the N counter has not yet reached the last N), then the queue counter, N, is decremented by ‘1’ to index queues corresponding to a lower service class, (block 1420). Thereafter, the process described above continues from block 1406.
If a determination is made at block 1412 than there has been an interrupt due to a higher priority packet being scheduled (“Yes” at block 1412), then that higher priority queue is serviced at block 1416 by a predetermined interrupt service routine. That routine sets N to the index of the queue being serviced and passes control back to block 1406 where the method then proceeds in the above-described manner to process the higher priority queue.
If a packet has been transmitted as described above with respect to block 1410, then a determination is made at block 1414 whether an interrupt has been triggered by a higher priority queue, such as by checking an interrupt service register bit in processor 310a, or by another conventional interrupt service routine. If a determination is made at block 1414 that an interrupt has been triggered, indicating that a packet has been classified and stored in a higher priority queue, then that higher priority queue is serviced at block 1416 by a predetermined interrupt service routine. That routine sets N to the index of the queue being serviced and passes control back to block 1406 where the method then proceeds in the above-described manner to process the higher priority queue. Otherwise, after a packet has been transmitted at block 1410, and if “No” at block 1414, the queue(s) corresponding to that packet's service class are checked again at block 1406 for packets that are ready to be transmitted and the process continues until all of the strict priority queue(s) have been serviced (“Yes” at block 1418).
It should be understood that other fields besides the EXP field can be used to identify service class priority and still be within the scope of the present invention.
As described above, process 1400 processes CBR, VBR-rt, VBR-nrt, and EF class packets, which are strict priority packets with higher priority than weighted class packets. After the strict priority service classes have been processed, the weighted service classes are processed by process 1500. Accordingly, process 1400 continues through connector (A) to process 1500 in
If a determination is made at block 1508 that the packet was the last packet scheduled in the weighted queues, then process 1500 ends. Otherwise, if “No” at block 1508, a determination is made at 1510 whether a higher priority queue interrupt has been triggered. If so, then the packet stored in the higher priority queue is serviced at block 1512, after which control passes back to block 1502. Otherwise, if “No” at block 1510, control also passes back to block 1502 where process 1500 continues in the above described manner.
The foregoing invention provides improved methods and apparatus for managing differentiated service classes, that can carry multiple services with different requirements over a single path in the network. The invention also provides a mechanism to create an LSP which can combine both real-time and non-real-time services with differentiated levels among those services.
In the foregoing description, the invention is described with reference to specific example embodiments thereof. The specification and drawings are accordingly to be regarded in an illustrative rather than in a restrictive sense. It will, however, be evident that various modifications and changes may be made thereto, in a computer program product or software, hardware or any combination thereof, without departing from the broader spirit and scope of the present invention.
Software embodiments of the present invention may be provided as a computer program product, or software, that may include an article of manufacture on a machine accessible or machine readable medium having instructions (see e.g.,
While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example, and not limitation. It will be apparent to persons skilled in the relevant art(s) that various changes in form and detail can be made therein without departing from the spirit and scope of the present invention. Thus, the present invention should not be limited by any of the above described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
In addition, it should be understood that the figures illustrated in the attachments, which highlight the functionality and advantages of the present invention, are presented for example purposes only. The architecture of the present invention is sufficiently flexible and configurable, such that it may be utilized (and navigated) in ways other than that shown in the accompanying figures.
Further, the purpose of the foregoing Abstract is to enable the U.S. Patent and Trademark Office and the public generally, and especially the scientists, engineers and practitioners in the art who are not familiar with patent or legal terms or phraseology, to determine quickly from a cursory inspection the nature and essence of the technical disclosure of the application. The Abstract is not intended to be limiting as to the scope of the present invention in any way. It is also to be understood that the steps and processes recited in the claims need not be performed in the order presented.
This application claim priority to, and the benefit of, U.S. Provisional Patent Application Ser. No. 60/778,308, filed Mar. 1, 2006, which is hereby incorporated by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
60778308 | Mar 2006 | US |