METHOD FOR CLASS OF SERVICE WEIGHT ADAPTATION

Abstract: A data queue service center and method of operation therefore is provided for routing data packets of different Classes of Service over a transmission path. A queue is established for each different Class of Service (12, 14, 16, 18, 20) to be transmitted with a Class Based Weighted Fair Queueing weighting factor for each Class of Service (40). A desired queue residence time for each Class of Service is preallocated based on the level of quality of service required. The actual residence time of packets for each Class of Service is determined (44) and compared with the preallocated residence time for each Class of Service. The CBWFQ weight for each Class of Service is dynamically adjusted (54) based on a comparision of the actual residence time to the preallocated residence time.

Description: METHOD FOR CLASS OF SERVICE WEIGHT ADAPTATION Field of the Invention This invention relates to Class Based Weighted Fair Queuing (CBWFQ) and more particularly to adaptively changing the CBWFQ coefficients for preservation of throughput on high priority classes of traffic through a network. Background of the Invention Class based network services are an emerging trend in communications " network systems. Class based services allow efficient handling of a mix of traffic types, including voice, video, and data traffic. Classes can be differentiated based on whether or not they are delay, jitter, or loss tolerant, and whether they are bursty, in addition to their peak data requirements. Exploiting the characteristics of the traffic classes in a network allows a system to meet performance requirements without cost-prohibitive overprovisioning of network resources. Often, background or other data services latencies are not critical and are able to be sacrificed for the purpose of maintaining high priority traffic throughput rates and latencies. Class Based Weighted Fair Queuing involves establishing a system for weighting of different classes of service to establish which of the classes of services is given priority in the transmission or servicing of data packets relating to that class. Each packet of data that is queued for transmission from a given queue service center (QSC) has a header which maps to the class of service to which that packet belongs (i.e. Diff Serve). Some classes of service may be, for example voice, video, data, and e-mail. In terms of priority of transmission, voice packets may be highest in priority since the receiver needs to receive voice packets in close proximity in order to be able to reproduce intelligible speech with minimally perceptible delay. Video may also be a high priority packet type in order for the receiver to receive relatively smooth video images rather than jittery or hesitant images. If voice accompanies the video, the associate voice packets may enjoy a similar priority in order to provide synchronization between the video and voice. Conversely, e-mail may have a relatively low priority since it rarely is critical that e-mail be received on a real-time basis. In existing Class Based Weighted Fair Queuing systems weights are assigned to each Class of Service in accordance with the priority of the transmission and the percentage of total bandwidth that the network operator is willing to assign to a given class of service. Thus, voice would have a relatively high weighting and e- mail a relatively low weighting. During the course of a data transmission session an overload may occur in one or more of the Classes of Service especially in systems where admission control and flow control may be non-existent or slow in responding. In present systems this overload usually results in high priority traffic being delayed or disrupted until a system supervisor can adjust the priorities to smooth and properly prioritize the data flow. Ultimately flow control is used to reduce the ingress to the queue service center of certain Classes of Service so that congestion is relieved and the higher priority Classes of Service can be efficiently transmitted. Summary of the Invention A data queue service center and method of operation therefor is provided for routing data packets of different Classes of Service over a transmission path. A queue is established for each different Class of Service to be serviced or transmitted and a desired queue residence time for each Class of Service is preallocated by applying a Class Based Weighted Fair Queueing weighting factor to the queue for each Class of Service. The actual residence time of packets for each Class of Service is determined and compared with the preallocated residence time for each Class of Service. If the measured residence time of a particular Class of Service exceeds the preallocated residence time, the CBWFQ weight for that Class of Service is dynamically increased. Brief Description of the Drawings FIG. 1 is a block diagram of a typical data router incorporating features according to the invention. FIG. 2 is a flow diagram showing the operation of the instant invention in accordance with the apparatus of FIG. 1. Description of the Preferred Embodiment FIG. 1 shows is a block diagram of a typical data queue service center (QSC), which may be a router, a packet processing function, or other device for processing packets of data, incorporating features according to the invention. The router is shown generally at 10. Within the router 10 are a series of queues or buffers, 12, 14, 16, 18, and 20. Each of the buffers 12-20 may be assigned as a buffer to queue and process a series of data packets for a given Class of Service. For example, buffer 12 may be assigned all voice packets, buffer 14 all video packets, buffer 16 other data packets, and buffer 18 all e-mail packets. Each separate packet is usually identifiable by means of characters in the header of the packet which may also contain, for example, sender information, destination address, source address, port number, sequence number, number of characters contained therein and other classification or processing information. Each queue or buffer 12-20 is coupled to a Central Processing Unit (CPU) 22 which receives in a predetermined sequence, the packets from each of the buffers or queues. The processor determines the proper routing for a packet as it is presented, and sends a serial string of packets on to subsequent processing or packet servicing functions or to a transmission medium 24 which may be coaxial cable, copper wire, of fiber optic cable. Naturally appropriate buffering and signal conversion, not shown, would be necessary to translate the output of the processor to the particular requirements of the transmission or processing medium. A commutation pattern generator 26 is also coupled to the CPU 22 for determining in which sequence the CPU 22 will accept packets from each of the buffers 12-20. This commutation pattern is typically established in advance based on overall system capacity for each Class of Service, the types of data being routed, and the priority needs of the individual Classes of Service. Class Based Weighted Fair Queuing, as previously discussed, involves establishing a system for weighting of different classes of service to establish which of the classes of services is given attention in the servicing or transmission of data packets relating to that class. In existing Class Based Weighted Fair Queuing systems weights are assigned to each Class of Service in accordance with the priority of the transmission. Thus, voice would have a relatively high weighting and e-mail a relatively low weighting. For example, a Class Based Weighted Fair Queuing system may establish weights for various Classes of Service as follows: CBWFQ = 0.5 CoS. +0.2 CoS 2 +0.1 CoS 3 +0.2 CoS 4 Where the terms CoS n represent different Classes of Service or data types and the numerical prefixes establish the relative weighting or percentage of total available service cycles given to each Class of Service. Thus CoS., with its relatively high weighting of 0.5, may represent voice data that must be processed and transmitted at near real time speeds in order to provide intelligible speech at the receiver. Likewise CoS 3 , with a relatively low weighting (0.1) may represent e-mail packets where time constraints usually are not severe. While these are exemplary of a possible weighting scheme, system characteristics would also be taken into account. For example if, because of the particular nature of the network the expected amount of voice traffic is low, or, if for some reason a certain other kind of data were to have higher priority than voice, the voice CoS may have assigned a relatively lower priority. An algorithm of this type may be used to determine the commutation pattern of the commutation pattern generator 26. In typical systems this algorithm is fixed and may be changed only through operator intervention. During the course of a data transmission session an overload may occur in one or more of the Classes of Service. In present systems this overload usually results in high priority traffic being delayed or disrupted until a system supervisor can adjust the priorities to smooth and properly prioritize the data flow. Ultimately flow control is used to reduce the influx to the queue service center of certain Classes of Service so that the higher priority Classes of Service can be efficiently transmitted. In the instant invention, a processor 28 receives from the QSC 10 over lines 30 certain information related to queue length and residency time as will be fully described following, and uses that information to dynamically adjust the weighting values of the CBWFQ algorithm. The adjusted weighting values are provided to the commutation pattern generator over lines 32, and the commutation pattern generator utilizes the new weighting regimen to adjust the commutation pattern of CPU 22. Additionally, the total system load factor is calculated and provision may be made for flow control to be invoked if the total system load factor exceeds a predetermined value. FIG. 2 is a flow diagram showing the operation of the instant invention in accordance with the apparatus of FIG. 1. The algorithm of FIG. 2 is initialized at 40, where the following initial conditions are established: Let W. represent the integer number of visitations that a queue service center applies to CoS queue i. The commutation pattern is then: [W. W 2 ... WJ with a total of Σ W. services per commutation cycle. This can be used to determine the initial weighting values as set forth in the CBWFQ equation above. Continuing with the algorithm, the queue depth at each queuing station is determined at 42 for all Classes of Service. This can be accomplished by determining how full the buffers for each CoS are. This provides information to be used at 44 to determine residence time for each Class of Service. In block 44, given the queuing service time for a particular queue, the associated expected packet residence time is calculated as R CoS (n) for each Class of Service and for all Classes of Service combined. In block 46, the system load factor is determined by dividing the total residence time for all Classes of Service combined by the established system design total residency time for all CoSs as follows: Load_f actor = Σ R CoS (n) / Σ k(n) Where k = residence time limit for a given Class of Service. If the system load factor is greater than one at block 48 the session manager is notified at 50 that the system is overloaded and flow control should be implemented in order not to disrupt data flow of high priority Classes of Service. The session manager is responsible for throttling network ingress flow rate or providing admission control to the network. If the system load factor is within boundaries, the high priority Classes of Service are examined at 52 to determine whether the residency time R CoS of each Class of Service is within the desired class limit k CoS If the residency time for a high priority packet is higher than the established class limit the coefficient is increased at 54 and the new parameters are provided to the initialization algorithm 40 for adjustment; W C0S (n+l) = W c »+1 If the residency time for a high priority packet is lower than the established limit, it is determined at 56 whether W CoS is lower than the lower limit. If so, no change is made. If W CoS is not below the lower limit for the class, the weight is decreased at 58 as follows: W CoS (n+l) = W c »-1 and the results are passed to the initialization algorithm 40 for adjustment in preparation for the next iterative loop of the overall algorithm. As the foregoing algorithm adjusts dynamically the weighting parameters for the CBWFQ weighting system, the information derived is used to program the commutation pattern generator 26 to provide a new commutation pattern to the CPU 22 in order to properly prioritize the various Classes of Service for subsequent service or efficient transmission to the transmission medium. Thus has been provided a method and apparatus for dynamically varying the weighting coefficients for each of the Classes of Service in a Class Based Weighted Fair Queuing network element. With this apparatus and method, once initial coefficients are determined, the system dynamically adjusts the coefficients as necessary to retain the integrity of the packets of the highest priority Classes of Service. Only if the total design load factor is exceeded is there necessity for notifying the session manager to introduce flow control with respect to some or all Classes of Service. Although the preferred embodiment of the invention has been illustrated, and that form described in detail, it will be readily apparent to those skilled in the art that various modifications may be made therein without departing from the spirit of the invention or from the scope of the appended claims.

Claims: CLAIMS What is claimed is: 1. In a data queue service center for routing data packets of different Classes of Service over a transmission path, a method comprising: establishing a separate queue (12-20) for data packets of each different Class of Service to be transmitted; applying (46) a Class Based Weighted Fair Queuing weighting factor to each separate queue for each different Class of Service to produce a preallocated queue residence time for each separate queue of data packets of each Class of Service; determining (44) an actual queue residence time of data packets of each Class of Service; comparing (52) the actual queue residence time of data packets of each Class of Service with the preallocated queue residence time of data packets of each Class of Service; and if the actual queue residence time of a data packet of a particular Class of Service exceeds the preallocated queue residence time, dynamically increasing (54) the Class Based Weighted Fair Queuing weighting factor for that Class of Service. 2. The method as set forth in Claim 1 wherein the actual queue residence time is calculated by determining a depth of queue of data packets for a Class of Service multiplied by an expected residence time for data packets of that Class of Service. 3. The method as set forth in Claim 1 further comprising: calculating a load factor of the data queue service center to produce a calculated load factor; comparing the calculated load factor with a pre-established data queue service center load factor limit; and if the calculated load factor exceeds the pre-established data queue service center load factor limit, initiating admission control of new packets to the data queue service center. 4. The method as set forth in Claim 2 further comprising: calculating the load factor of the data queue service center to produce a calculated load factor; comparing the calculated load factor with a pre-established data queue service center load factor limit; and if the calculated load factor exceeds the pre-established data queue service center load factor limit, initiating admission control of new packets to the data queue service center. 5. The method as set forth in Claim 4 wherein if the actual queue residence time of a data packet of a particular Class of Service is less than the preallocated queue residence time, dynamically decreasing the Class Based Weighted Fair Queuing weighting factor for that Class of Service. 6. In a data queue service center for routing data packets of different Classes of Service over a transmission path, a method comprising: establishing a separate queue (12-20) for data packets of each different Class of Service to be transmitted; applying(46) a Class Based Weighted Fair Queueing weighting factor to each separate queue of each different Class of Service to produce a preallocated queue residence time for each separate queue of data packets of each Class of Service; measuring (42) a queue depth of each of the separate queues of data packets of each Class of Service; utilizing (44) the queue depth of each of the separate queues of data packets to produce a calculated average residence time of data packets in each queue; adding (46) the calculated average residence times of data packets in each queue to provide a total data queue service center load factor inclusive of all Classes of Service; if the total data queue service center load factor exceeds a reference value, instituting (50) flow control to reduce access to the data queue service center of new data packets for transmission; comparing (52) the calculated average residence time for data packets of each separate queue of each Class of Service with the preallocated queue residence time for each queue of data packets for each Class of Service; if the calculated average residence time for data packets of a particular Class of Service exceeds the preallocated queue residence time for that Class of Service, dynamically increasing (54) the Class Based Weighted Fair Queuing weighting factor for that Class of Service; and if the calculated average residence time for data packets of a particular Class of Service is less than the preallocated queue residence time for that Class of Service, dynamically reducing (58) the Class Based Weighted Fair Queuing weighting factor for that Class of Service. 7. The method as set forth in Claim 6 wherein calculating a total data queue service center load factor inclusive of all Classes of Service comprises determining the ratio of actual residence time (over all Classes of Service) over a predetermined system residence time limit (over all Classes of Service). 8. A data queue service center for routing data packets of different Classes of Service over a transmission path comprising: a separate queue (12-20) for data packets of each different Class of Service to be transmitted; a processor (28) for preallocating a desired queue residence time for data packets of each Class of Service by applying a Class Based Weighted Fair Queueing weighting factor to the queue of data packets of each Class of Service, and for dynamically adjusting the Class Based Weighted Fair Queuing weighting factors on demand; means for determining (44) an actual queue residence time of data packets of each Class of Service; means for comparing (48) the actual queue residence time of data packets of each Class of Service with the preallocated desired queue residence time of data packets of each Class of Service; and if the actual queue residence time of data packets of a particular Class of Service exceeds the preallocated desired queue residence time for data packets of that Class of Service, means, including the processor, for dynamically increasing (54) the Class Based Weighted Fair Queuing weighting factor for that Class of Service. 9. A data queue service center as set forth in Claim 8 wherein the actual queue residence time of data packets of each Class of Service is calculated by determining a data packet depth of the separate queue for a Class of Service multiplied by the actual queue residence time for packets of that Class of Service. 10. A data queue service center as set forth in Claim 8 further comprising: means for calculating a total load factor of the data queue service center to produce a calculated total load factor; means for comparing the calculated total load factor with a pre-established data queue service center load factor; and if the calculated total load factor of the data queue service center exceeds the pre- established data queue service center load factor, initiating admission control of new packets to the data queue service center. 11. A data queue service center as set forth in Claim 9 further comprising: means for calculating a total load factor of the data queue service center to produce a calculated total load factor; means for comparing the calculated total load factor with a pre-established data queue service center load factor; and if the calculated total load factor of the data queue service center exceeds the pre- established data queue service center load factor, initiating admission control of new packets to the data queue service center. 12. A data queue service center as set forth in Claim 11 wherein if the actual queue residence time for data packet of a Class of Service is less than the preallocated desired queue residence time of data packets for that Class of Service, the processor dynamically decreases the Class Based Weighted Fair Queuing weighting factor for that Class of Service.

Inventors: GROSS JOEL L, GROSS JONATHAN H, STARTUP JAMES, GROSS, JOEL, L., GROSS, JONATHAN, H., STARTUP, JAMES
Applicants: MOTOROLA INC, MOTOROLA, INC., A CORPORATION OF THE STATE OF DELAWARE
Application year: 2001
Main classification: H04L12
IPC codes: H04L12, H04L29