# Patent

## Title
Dynamic resource control for high-speed downlink packet access wireless channels

## Abstract

A method allocates resources of a wireless communications network to traffic transmitted to user equipment over a channel of the network. A packet of the traffic to be stored in a selected queue is received. A maximum delay of the selected queue is determined, along with a start time, a finish time, and a queuing order. The packet is inserted in the selected queue according to the start time, the finish time and the queuing order, and then a weight of the selected queue is updated. Then, a next packet to be dequeued from the selected queue is scheduled, and the next packet is transmitted to the user equipment over the channel.

## Background
FIELD OF THE INVENTION
This invention relates generally to wireless packet networks, and more particularly to resource control on downlink channels of wireless networks.
BACKGROUND OF THE INVENTION
Wireless communications networks, such as cellular networks, need to support integrated multimedia applications with various quality of service (QoS) requirements. By differentiating the QoS for different high-speed services, it becomes possible to support multimedia demands for a variety of user equipment (UE) in a cell served by a base station. The UE can include cellular telephones, mobile computing devices, and other end-user terminals.
Due to differences between traffic characteristics of data packet services and traditional circuit-switched voice services, dedicated channels are allocated for data services in many systems and many standard specifications are known, such as the High Data Rate (HDR) systems, see Bender, et al. “CDMA/HDR: A bandwidth efficient high speed data service for nonadic users,” IEEE Commun. Mag., Vol. 38, No. 7, pp. 70-77, July, 2000, the 1xTREME of 3rd Generation Partnership Project 2 (3GPP2), Motorola and Nokia, “3GPP2 1xTREME Presentation,” C00-20000327-003, March, 2000, and the High Speed Downlink Packet Access (HSDPA) of 3rd Generation Partnership Project (3GPP), Motorola, “Feasibility study of advanced technique for High Speed Downlink PacketAccess,” TSG-R WG1 document, R1-556, April, 2000.
In a wireless packet network, the high-speed downlink data channel is shared by multiple UE within the same cell. Many new technologies have been developed for the shared downlink channel by standardization organizations. For example, in HSDPA of 3GPP, solutions include adaptive modulation and coding (AMC), hybrid automatic repeat request (H-ARQ), fast cell selection (FCS), and multiple-input-multiple-output (MIMO) systems.
AMC provides a link adaptation method that match the modulation-coding scheme to conditions of the channel for each user. In a system with AMC, UE close to the base station is typically assigned higher order modulation with higher code rates, e.g., 64 QAM with R=3⁄4 turbo codes. The modulation-order and/or the code rate decrease as the distance between the UE and the base station increases.
H-ARQ provides a retransmission mechanism for lost or erroneous packets. There are many schemes for implementing H-ARQ, such as chase combining, rate compatible punctured turbo codes, and incremental redundancy.
With FCS, the UE selects the ‘best’ cell that should be used for the downlink channel through uplink signaling. Thus, while multiple cells can be members of an active set, only one cell transmits at any one time, potentially decreasing interference and increasing system capacity.
Multiple-input-multiple-output (MIMO) systems employ multiple antennas at both the transmitter of the base station and the receiver of the UE. This provides several advantages over conventional single antenna systems and transmit diversity techniques that only have multiple antennas at the transmitter.
An important issue is how to integrate resource control and management with these new technologies. For example, the data transmission capacity at a base station will vary according to the dynamic changing of AMC schemes. Given the same amount of code and time space, and resources, UE with a higher modulation scheme can usually obtain a higher data rate than UE with a lower modulation scheme.
Of particular concern to the present invention is resource allocation with QoS control for high-speed downlink shared channel adapted for AMC and H-ARQ systems.
Packet scheduling is one of the most important QoS control approaches for wireless multimedia networks. A large number of packet scheduling techniques are known for wireless networks, for example, channel state dependent packet scheduling (CSDPS), Fragouli et al., “Controlled multimedia wireless link sharing via enhanced class-based queuing with channel-state dependent packet scheduling,” Proc. IN-FOCOM'98, vol. 2, pp. 572-580, March 1998, idealized wireless fair queuing process (IWFQ), see Lu et al., “Fair scheduling in wireless packet net-works,” IEEE/ACM Trans. Networking, Vol. 7, No. 4, pp. 473-489, 1999, channel-condition independent fair queuing (CIF-Q), Ng et al., “Packet fair queuing algorithms for wireless networks with location-dependent errors,” Proc. INFOCOM98, pp. 1103-1111, March 1998, server based fairness (SBFA), Ramanathan et al., “Adapting packet fair queuing algorithms to wireless networks,” Proc. ACM MOBICOM'98, October 1998, improved channel state dependent packet scheduling (I-CSDPS), Gomez et al., “The Havana frame-work for supporting application and channel dependent QoS in wireless networks,” Proc. ICNP'99, pp. 235-244, November 1999, channel adaptive fair queuing (CAFQ), Wang et al., “Channel Capacity Fair Queuing in Wireless Networks: Issues and A New Algorithm,” ICC 2002, April 2002, modified largest weighted delay first (M-LWDF), Andrews et al., “Providing quality of service over a shared wireless link,” IEEE Communications Magazine, Vol. 39, No. 2, pp. 150-154, February 2001, and code-division generalized processor sharing (CDGPS), Xu et al., “Dynamic bandwidth allocation with fair scheduling for WCDMA systems,” IEEE Wireless Communications, April 2002.
Except for Wang, Andrews, and Xu, most prior art approaches assume a simple wireless model, such as two-state Markov model. A scheduler simulates an error-free system running a wireline packet scheduling process when sessions have ‘good’ channel states, i.e., the effective throughput is at a maximum. When the session that is scheduled to transmit data encounters a ‘bad’ channel state, the session gives up a transmit opportunity to other error-free sessions, e.g., those with good channel states. Then, these error-free sessions give their transmit rights back to the error session in compensation, when the channel state is good again. Those processes mainly provide fairness and a ‘soft’ QoS guarantees.
Wang describes a new definition of fairness, and a scheduling process adapting to several channel conditions. However, explicit QoS guarantees are not provided. Andrews describes a user scheduling process based on a tradeoff between delay and throughput. That approach assumes that each UE can only support one QoS traffic class at a time. Xu applies generalized processor sharing (GPS) scheme dynamically to spreading codes rather than to time slots for different UE.
It is desired to provide a method and system for dynamically controlling resources in a high-speed down link channel. The method and system should be closely integrated with other HSDPA technologies, such as AMC and H-ARQ. Because the AMC changes dynamically according to the channel conditions, the scheduler mechanism should not be based on the simple prior art ‘on/off’ wireless channel model.
In addition, H-ARQ introduces extra traffic load into wireless networks. Prior art scheduling techniques do not consider the increased load.
Furthermore, it is important to distinguish between original packets and retransmitted packets, and UE should be able to receive multiple streams with different QoS requirements simultaneously.
For instance, a user should be able to view a streaming video from a video server, while downloading a text file from a FTP server. Thus, the scheduler at the base station needs to handle both QoS traffic classes and different UEs sharing the capacity of the same downlink HSDPA channel.
Usually, prior art solutions only schedule resources to different UE terminals on an individual basis, without considering the resource and QoS requirements of different traffic classes.
Therefore, there is a need for a dynamic resource control system and method that considers all network traffic so that the throughput of the entire network is optimized.
SUMMARY OF THE INVENTION
The present invention provides a dynamic resource control method that is integrated with known HSDPA technologies, such as AMC and H-ARQ. Because the AMC scheme for each user is changed dynamically according to the channel conditions, the scheduler according to the invention dynamically obtains channel condition information of each user's equipment. Thus, the scheduler does need to use the simple ‘on/off’ control of the prior art wireless channel model.
The invention takes into consideration the increased load introduced into the wireless network by H-ARQ. The invention differentiates original packets and retransmitted packets by placing them in different queues so that UE can receive multiple streams with different QoS requirements simultaneously.
The invention assigns UE with different QoS requirements to different traffic classes at the base station, rather than to different UE as in the prior art.
Queue parameters, such as queue length and weights, are specified according to delay and packet loss requirements. The invention uses a delay-sensitive VVFQ (DSWFQ) scheduling scheme that dynamically adjusts the queue weights according to the dynamic load of the traffic and queue status.
Therefore, the invention can provide explicit QoS for each class of users. Users are classified according to their current AMC schemes, and classes can be sub-divided into sub-classes. Users with a ‘good’ channel condition, as obtained from the AMC schemes, are given higher scheduling priority than those with a ‘bad’ channel condition.
This is accomplished by setting different random early detection (RED) for different AMC schemes. Because of the classification of users according to the invention, the throughput of the entire network can be optimized by constraining users with a bad channel condition.
To provide quality-of-service (QoS) control for a shared, high-speed, downlink packet access wireless channel, the invention uses a novel dynamic resource control framework integrated with modulation and coding (AMC) and hybrid automatic repeat request (H-ARQ) to support class-based applications.
The invention also uses a novel wireless scheduling process called delay-sensitive dynamic fair queuing (DSDFQ) to meet delay requirements of multimedia applications as well as to maintain high network efficiency.
The invention can adapt to load fluctuations from different traffic classes and dynamically changing wireless channel conditions affected by user mobility, fading and shadowing.
More particularly, a method allocates resources of a wireless communications network to traffic transmitted to user equipment over a channel of the network. A packet of the traffic to be stored in a selected queue is received. A maximum delay of the selected queue is determined, along with a start time, a finish time, and a queuing order. The packet is inserted in the selected queue according to the start time, the finish time and the queuing order, and then a weight of the selected queue is updated. Then, a next packet to be dequeued from the selected queue is scheduled, and the next packet is transmitted to the user equipment over the channel.



BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of a system and method for controlling network resources according to the invention; and
FIG. 2 is a block diagram of a queuing method according to the invention.



DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT OF THE INVENTION
System Structure
FIG. 1 shows a system and method 100 according to our invention. The system and method dynamically control resources in high-speed downlink packet access (HSDPA) channels of a wireless communications network, e.g., a cellular network. In such a network, a base station typically serves multiple instances of user equipment (UE) 103 in a cell via channels 180. The UE 103 can be static or mobile.
The system 100 includes an admission controller 110 coupled to a classifier and traffic shaper 120. A modulation and coding scheme (MCS) selector 130 provides input to the controller 110 and the classifier/shaper 120. A resource estimator 140 provides input to the controller 110 and the selector 130, and a scheduler 150. The scheduler is coupled to a transmitter 160. Output from the classifier/shaper 120 is stored in pairs of queues 170 before forwarded to the transmitter 160. The transmitter transmits data packet to the UE 103 over channels 180.
System Operation
During operation, the system 100 receives requests 101 for traffic 102 from the wireless user equipment (UE) 103 in the network, e.g., cellular telephones, mobile processors, and end-user terminals. The traffic is transmitted in the form of packets, as are well known in the art. The request 101 are passed to the admission controller 110. The traffic 102 can originate from a server 190 or other UE anywhere in the network.
If a request is admitted, depending on the output of the selector 130 and estimator 140, then the corresponding traffic 102 is classified and shaped 120, and the packets forwarded to the appropriate queues 170. The scheduler 150 determines the order in which the queued traffic is released to the transmitter 160, for transmission to the user equipment 103 over wireless channels 180, as described in greater detail below.
Dynamic Resource Control
It is an objective of our invention to achieve dynamic resource control for a base station including the admission controller 110, the classifier and traffic shaper 120, the MCS selector 130, the transmitter 160, the queues 170, the channels 180, and the user equipment 103. We assumed that there are multiple mobile or fixed UE 103 in each cell served by the base station, and that each UE can simultaneously support multiple different traffic classes.
The traffic classes can be conventional voice traffic, streaming audio and video traffic, interactive traffic such as browsing, and background best effort traffic such as e-mail. It should be understood that additional classes could be defined.
Compared with the prior art, our system and method not only considers how to schedule packets to different UE 103, but also schedules the different traffic classes in a multiple UE environments with possibly different channel conditions.
Therefore, the transmission requests 101 for traffic 102 are sent to the admission controller 110. The controller makes a decision whether to admit new transmission traffic into the network by estimating 140 the available resources from physical-layer resource measurements and existing traffic.
After a request has been admitted, the corresponding traffic stream is classified and shaped 120 before packets of the traffic is queued.
Traffic streams are classified 120 according to quality of service (QoS) parameters, e.g., delay and packet loss. The QoS parameters determine a length and a wireless fair queuing (WFQ) weight for each queue, and a weighted random early detection (RED).
If hybrid automatic repeat request (H-ARQ) are allowed, then the retransmission can introduce a large amount of additional traffic when conditions on the wireless channels 180 are in bad condition. Therefore, we assign two queues 170 to every class: an original transmission queue 170′, and a retransmission queue 170′′.
For each class, sub-classes (different patterns) are specified according to the MCS selector 130 depending on channel conditions. Both spreading codes 161 and time frames 162 are scheduled and assigned to the traffic 102 for the UE 103. In 3GPP HSDPA, a time frame length, i.e., a transmission time interval (TTI) is constant and equal to 2 ms, and the spreading codes 101 are orthogonal codes. A spreading factor (SF) is fixed and equal to 16. We assume multiple spreading codes in the same TTI can be assigned to each UE 103. The WFQ weights are adjusted dynamically according to a status of each queue.
As shown in FIG. 1, the UE 103 monitors conditions of the channels 180 and feeds back carrier-to-interference (C/I) information 191. The channel condition 191 is used to estimate 140 the available resource and select 130 a modulation and coding scheme (MCS) for the traffic 102 for each UE 103.
If there are N MCS levels, then a data rate for MCS level n is Rn(1≦n≦N). A value FER (γ, n) denotes the frame error rate (FER) for a given signal-to-noise ratio of channel γ, and MCS level n.
Then, the effective data transmission rate is equal to Rn×(1−FER (γ, n)). A particular MCS level j is selected 130 so as to maximize the effective data rate for the measured condition of channel γ. That is,




  j
  =
  
    
      max
      n
    
    ⁢
    
      
        {
        
          
            R
            n
          
          ×
          
            (
            
              1
              -
              
                FER
                ⁡
                
                  (
                  
                    γ
                    ,
                    n
                  
                  )
                
              
            
            )
          
        
        }
      
      .
    
  




A protocol data unit (PDU) at a wireless interface is the data traffic carried during a frame or TTI. Because data rate varies with the MCS level, the PDU size also varies. Therefore, the traffic is segmented according to the variable PDU size. The UE acknowledges the reception of a PDU. If an erroneous transmission of a PDU is detected, then the PDU is retransmitted at most M times.
During a retransmission, the MCS level remains the same as that for the original transmission. To improve link utilization and adapt to our scheduling procedure 150, we use a different maximum number of retransmission (M) for PDUs with different MCS levels. The higher MCS level, the larger the value of M.
Scheduling
We use a novel delay-sensitive dynamic fair queuing (DSDFQ) scheduling for HSDPA wireless multimedia traffic. The scheduler 150 is at the MAC layer for scheduling a PDUs in a frame or TTI with appropriate spreading codes 161. For convenience, we call the PDU a ‘packet’.
We dynamically adjust the weight of each queue according to a current delay of the queue and schedule packets for transmission accordingly. We use different tokens to distinguish packets with different MCS levels within one class. In addition, we use the weighted RED to determine which packets are to be dropped. Our DSDFQ maintains a dynamic fairness according to the delay status of every queue. Unlike prior art fair queuing schemes, our queuing is not an approximate approach to generalized processor sharing (GPS).
A sorted priority queuing procedure, commonly used by virtual clock, WFQ and WF2Q processes is described by Zhang, in “Service Discipline For Guaranteed Performance Service in Packet-Switching Networks,” Proceedings of IEEE, 83(10), October 1995. We adapt that technique for our DSDFQ.
In WFQ, a state variable F, the virtual finish time, is associated with each channel to monitor and enforce its traffic. In WFQ, the virtual finish time F of a packet is defined as:




  
    
      F
      i
      k
    
    =
    
      
        max
        ⁢
        
          {
          
            
              F
              i
              
                k
                -
                1
              
            
            ,
            
              V
              ⁡
              
                (
                t
                )
              
            
          
          }
        
      
      +
      
        
          L
          i
          k
        
        
          φ
          i
        
      
    
  
  ,




    
    
        where Fik is the virtual finish time of the kth packet of class i, V(t) is the virtual time when the kth packet is received, φi is the weight of class i, and Lik, is the packet size of the kth packet measured in bytes.
    
    


In the prior art WFQ, the weight φi is fixed and does not reflect the current channel condition. In contrast, for our DSDFQ, the weight of each queue φi is a variable. In response to a packet queuing event, a delay (delay) of a current packet is determined and used to change the weight φi according to:

φi=f(delayik)=min(φi0+delayik×ki,φimax),

    
    
        where φi0 is a basic weight of class i, φimax is a maximum weight of class i, delay ik is the queuing delay of the kth packet in class i, and ki is an adjustment parameter.
    
    


A value Sik denotes a virtual time when serving a packet k in a class i starts, and Fik denote the virtual time when serving of the packet k in class i finishes.
Enqueuing and Dequeuing Packets
FIG. 2 shows a method 200 for enqueuing and dequeuing packets according to our invention that uses the variables and equations described above.
In response to receiving a new packet 201 of traffic to be queued, step 210 determines a maximum delay 202 for the corresponding queue 170.
Step 220 determines virtual start and virtual finish times Sk and Fi and a dequeuing order 203.
These two steps can be expressed by



  
    
      
        delay
        i
        k
      
      =
      
        
          delay
          i
          
            k
            -
            1
          
        
        +
        
          
            
              L
              i
              
                k
                -
                1
              
            
            /
            
              (
              
                
                  φ
                  i
                  
                    k
                    -
                    1
                  
                
                ×
                Bw
              
              )
            
          
          ×
          
            
              ∑
              j
              
                
              
            
            ⁢
            
              φ
              j
            
          
        
      
    
    ,
    
      

    
    ⁢
    and
  




  
    
      
        F
        i
        k
      
      =
      
        
          max
          (
          
            
              F
              i
              
                k
                -
                1
              
            
            ,
            
              
                V
                ⁡
                
                  (
                  
                    t
                    last
                  
                  )
                
              
              +
              
                
                  (
                  
                    t
                    -
                    
                      t
                      last
                    
                  
                  )
                
                /
                
                  
                    ∑
                    i
                  
                  ⁢
                  
                    φ
                    i
                  
                
              
            
          
          )
        
        +
        
          
            L
            i
            k
          
          /
          
            (
            
              
                φ
                i
                k
              
              ×
              Bw
            
            )
          
        
      
    
    ,
  



    
    
        respectively
        where Lik−1 is the length of the kth packet in class i, Bw is a bandwidth of the channel, and tlast is the real time that the virtual time last updated the weight for the queue.
    
    


Then, insert 230 the packet 201 number in the output control queue 260 according to an order of virtual finish time.
Step 240 updates the weight for the queue according to the new delay value, as follows:

φik=f(delayik)=φi0+g(delayik),

    
    
        where, φi0 is the basic weight of class i, and g (delayik) represents a weight curve.
    
    


Step 250 determines the real time t when the next packet 204 should be transmitted, and schedules the packet for dequeuing to the transmitter 160. The transmitter transmits the packet with right spreading codes 161 and time frames 162 according to the selected MCS 130.
If the real time for the next scheduled packet is Next(t), then at time Next(t), the weight and delay of each class are updated 240 as follows:




  
    delay
    i
  
  =
  
    
      delay
      i
    
    -
    
      
        
          L
          i
          k
        
        /
        
          (
          
            
              φ
              i
              k
            
            ×
            Bw
          
          )
        
      
      ×
      
        
          ∑
          j
        
        ⁢
        
          
            φ
            j
          
          .
        
      
    
  




Thus, when a next packet Pik is received, first determine 210 the delay, then increase the weight φi if the new delay is larger than the previous delay so a guaranteed bit-rate of class i is temporarily increased.
Because the packets of each class are received independently and the weight is updated each time a packet received, a dynamic balance is maintained, and the bandwidth is allocated more fairly than possible with prior art static scheduling methods.
Analysis
We analyze our DSDFQ process for the case when gi(delay) is non-zero. We assume that the traffic has a constraint similar to that imposed by ‘leaky bucket shaping’. If tokens from a ‘leaky bucket’ are used, then the traffic entering the network is shaped as follows:

Ai(τ,t)≦σi+ρi(t−τ), ∀0≦τ≦t,

    
    
        where Ai (τ, t) is the amount of traffic for class i that enters the network during time interval [τ, t].
    
    


Tokens are generated at a fixed rate ρi, and packets are released into the network only after acquiring the required number of tokens from the leaky bucket. The leaky bucket contains at most σi tokens.
In our scheme, the calculation of the delay 202 of the packet k 201 in class i is a key problem. As described above, we determine 210 the delay 202 when the packet 201 is received, and update 240 the weight whenever a packet 204 dequeues 250. Thus, the computed delay can be less than the real delay by a value within the range [1, L/Bw], where L is the packet length, and Bw is the bandwidth of the channel.
If the system 100 begins operation at a time zero, then




  
    
      D
      i
      k
    
    ⁡
    
      (
      t
      )
    
  
  =
  
    
      ∑
      
        
          (
          
            j
            ,
            l
          
          )
        
        ⋐
        A
      
    
    ⁢
    
      
        L
        j
        l
      
      /
      Bw
    
  




    
    
        is the total delay of packet k of class i from time zero. The real delay of packet k of class i can be represented by:
    
    






  
    
      delay
      i
      k
    
    =
    
      
        
          
            D
            i
            k
          
          ⁡
          
            (
            t
            )
          
        
        -
        t
      
      =
      
        
          
            ∑
            
              
                (
                
                  j
                  ,
                  l
                
                )
              
              ⋐
              A
            
          
          ⁢
          
            
              L
              j
              l
            
            /
            Bw
          
        
        -
        t
      
    
  
  ,




    
    
        where t is the real time when packet k of class i is received.
    
    


Further, we assume that the scheduler 150 is ‘greedy’ so that the start time for the next packet coincides with the finish time of the previous packet. Thus, we have

Sik=Fik−1, and

Fik=Sik+Lik/(φik×Bw)=Fik−1+Lik/(φi k ×Bw).

From the above equation we obtain:




  
    D
    i
    k
  
  =
  
    
      D
      i
      
        k
        -
        1
      
    
    +
    
      
        ∑
        
          
            (
            
              j
              ,
              l
            
            )
          
          ⋐
          
            B
            ⁡
            
              (
              
                i
                ,
                k
              
              )
            
          
        
      
      ⁢
      
        
          L
          j
          l
        
        /
        Bw
      
    
  




    
    
        and

B(i, k)={(j,l): Fjl−Fik−1<Lik/(φik×Bw)}.

    
    


The number of elements in the set B(i, k) can be interpreted as NBi,k, which satisfies




  
    
      N
      B
      
        i
        ,
        k
      
    
    <
    
      
        
          L
          i
          k
        
        
          
            φ
            i
            k
          
          ×
          Bw
        
      
      ×
      
        
          ∑
          
            j
            ≠
            i
          
        
        ⁢
        
          (
          
            
              
                ρ
                j
              
              /
              
                L
                min
              
            
            ×
            
              φ
              j
              max
            
          
          )
        
      
    
    <
    
      
        
          L
          max
        
        
          L
          min
        
      
      ×
      
        
          
            
              
            
            ∑
          
          
            j
            ≠
            i
          
        
        ⁢
        
          
            (
            
              
                ρ
                j
              
              ×
              
                φ
                j
                max
              
            
            )
          
          ×
          
            
              1
              
                φ
                i
                k
              
            
            /
            Bw
          
        
      
    
  
  ,




    
    
        where ρj is the average rate of class j, Lmin is the minimum size of a packet, and φjmax is the maximum weight of class j.
    
    


Now, we see that



  
    
      D
      i
      k
    
    <
    
      
        D
        i
        
          k
          -
          1
        
      
      +
      
        
          
            L
            max
          
          Bw
        
        ×
        
          
            L
            max
          
          
            L
            min
          
        
        ×
        
          
            
              
            
            ∑
          
          
            j
            ≠
            i
          
        
        ⁢
        
          (
          
            
              ρ
              j
            
            ×
            
              φ
              j
              max
            
          
          )
        
        ×
        
          
            1
            
              φ
              i
              k
            
          
          /
          Bw
        
      
    
  




  
    
      
        D
        i
        k
      
      <
      
        
          D
          i
          
            k
            -
            1
          
        
        +
        
          
            1
            
              φ
              i
              k
            
          
          ×
          
            
              L
              max
              2
            
            
              
                Bw
                2
              
              ×
              
                L
                min
              
            
          
          ×
          
            
              
                
              
              ∑
            
            
              j
              ≠
              i
            
          
          ⁢
          
            (
            
              
                ρ
                j
              
              ×
              
                φ
                j
                max
              
            
            )
          
        
      
    
    =
    
      
        D
        i
        
          k
          -
          1
        
      
      +
      
        Cs
        ×
        
          
            1
            
              φ
              i
              k
            
          
          .
        
      
    
  



Consequently, we can derive the delay as follows:



  
    
      
        D
        i
        1
      
      <
      
        Cs
        ×
        
          1
          
            φ
            i
            0
          
        
      
    
    ,
    
      

    
    ⁢
    
      
        D
        i
        2
      
      <
      
        
          D
          i
          1
        
        +
        
          Cs
          ×
          
            1
            
              f
              ⁡
              
                (
                
                  D
                  i
                  1
                
                )
              
            
          
        
      
    
    ,
    and
  




  
    
      D
      i
      k
    
    <
    
      
        D
        i
        
          k
          -
          1
        
      
      +
      
        Cs
        ×
        
          
            1
            
              f
              ⁡
              
                (
                
                  D
                  i
                  
                    k
                    -
                    1
                  
                
                )
              
            
          
          .
        
      
    
  



The delay of packet k in class i is delayik=Dik−tik.
If the maximum size of a queue for class i is qlimi, then a packet is dropped when the queue size Qlenik is equal to qlimi, where Qlenik is restricted by:



  
    
      
        
          
            Qlen
            i
            k
          
          =
          
          ⁢
          
            
              k
              -
              
                
                  
                    
                      
                    
                    ∑
                  
                  
                    l
                    =
                    1
                  
                  k
                
                ⁢
                
                  (
                  
                    
                      t
                      i
                      l
                    
                    -
                    
                      t
                      i
                      
                        l
                        -
                        1
                      
                    
                  
                  )
                
                ×
                
                  
                    φ
                    i
                    l
                  
                  
                    ∑
                    
                      φ
                      j
                    
                  
                
                ×
                Bw
              
            
            ≤
          
        
      
    
    
      
        
          
          ⁢
          
            
              k
              -
              
                
                  ∑
                  
                    l
                    =
                    1
                  
                  k
                
                ⁢
                
                  
                    (
                    
                      
                        t
                        i
                        l
                      
                      -
                      
                        t
                        i
                        
                          l
                          -
                          1
                        
                      
                    
                    )
                  
                  ×
                  
                    
                      φ
                      i
                      l
                    
                    
                      Σφ
                      j
                      max
                    
                  
                  ×
                  Bw
                
              
            
            ,
          
        
      
    
  




  
    
      Qlen
      i
      k
    
    ≤
    
      k
      -
      
        
          ∑
          
            l
            =
            1
          
          k
        
        ⁢
        
          
            (
            
              
                t
                i
                l
              
              -
              
                t
                i
                
                  l
                  -
                  1
                
              
            
            )
          
          ×
          
            
              f
              ⁡
              
                (
                
                  delay
                  i
                  k
                
                )
              
            
            
              ∑
              
                φ
                j
                max
              
            
          
          ×
          
            Bw
            .
          
        
      
    
  



Effect of the Invention
Compared with the prior art WFQ and FIFO (no QoS) schemes, our DSDFQ method experiences less delay for both variable and constant bit-rate (CBR−VBR) streaming video. In the case of CBR, our method can control delay to 20 ms, whereas for WFQ the delay is almost twenty times longer than our scheme. In the case of VBR, our method reduces the delay by about one half. For other traffic classes, our method also attains better performance than both WFQ and FIFO.
Although the invention has been described by way of examples of preferred embodiments, it is to be understood that various other adaptations and modifications can be made within the spirit and scope of the invention. Therefore, it is the object of the appended claims to cover all such variations and modifications as come within the true spirit and scope of the invention.

## Claims

1. A method for allocating resources of a wireless communications network to traffic to be transmitted from a wireless base station to wireless user equipment over a wireless downlink channel of the wireless communications network, the traffic including a plurality of packets, comprising:
receiving a request for the traffic in the wireless base station from the wireless user equipment;
estimating available resources from physical-layer resources of the wireless communications network and existing traffic on the wireless communications network, in which the estimating is based on feedback of a channel condition from the wireless user equipment;
admitting the request only if sufficient resources are available for transmitting the traffic and the existing traffic;
receiving a packet in a wireless base station to be stored in a selected queue of the wireless base station, in which there are a plurality of queues, and further comprising:
classifying the packet received in the wireless base station into one of i classes, there being one queue for each class, in which the packet is further classified into a sub-class according to one of a plurality of modulation and coding levels depending on the channel condition, in which there are N levels, and a data rate Rn for level n is Rn (1≦n≦N), a frame error rate is FER (γ, n) for a signal-to-noise ratio of the channel γ used to transmit the packet, and using level n so that an effective transmission rate is equal to Rn ×(1−FER(γ, n));
selecting the ith queue as the selected queue;
determining a maximum delay of the selected queue;
determining a start time, a finish time, and a queuing order;
inserting the packet in the selected queue according to the start time, the finish time, and the queuing order;
updating a weight of the selected queue;
scheduling a next packet to be dequeued from the selected queue; and
transmitting the next packet from the base station to the wireless user equipment over the wireless downlink channel of the wireless communications network.

2. The method of claim 1 wherein the plurality of classes include a conventional voice traffic class, a streaming audio and video traffic class, an interactive traffic class, and a best effort traffic class.

3. The method of claim 1 wherein each queue is associated with a retransmit queue, and further comprising:
selecting the retransmit queue if the packet is to be retransmitted.

4. The method of claim 1 wherein the traffic in the wireless communications network is classified according to quality of service parameters, and further comprising:
determining the weight for the selected queue based on the quality of service parameters; and
determining a length of the selected queue based on the quality of service parameters.

5. The method of claim 3 wherein hybrid automatic repeat request (H-ARQ) are allowed.