# Patent

## Title
Procedure and system for scheduling a shared recourse between multiple information packet flows

## Abstract

Each synchronous flow (h=1, 2, Ns) is associated to a respective synchronous capacity value (Hh) indicative of the maximum amount of time for which a synchronous flow can be served before relinquishing the token. Each asynchronous flow (I=1, 2, NA) is, on the other hand, associated to a respective indicative value of the delay to be recovered so that the respective queue has the right to be served and to another value indicating the instant in which the server visited the respective queue in the pervious cycle. Each queue associated to a synchronous flow (h) is therefore served for a maximum amount of time that is equal to the aforesaid synchronous capacity value, while each queue associated to an asynchronous flow (i) is only served if the server's visit takes place with anticipation with respect to the expected instant. This anticipation is determined as the difference between the expected rotation time, needed by the server (10) to complete a visit cycle (T) of the queues associated to the aforesaid flows (h, i), and the time that has passed since the server's previous visit (10) and the delay accumulated. This difference, if positive, defines the maximum service time for the asynchronous queue. If the queue is empty when the server visits it, the server (10) moves on to the next queue even before the relative maximum service time has passed.

## Background
This invention refers to the packet communication systems, and in particular to the scheduling criteria of a shared resource, i.e. the criteria used to select the packet to which the resource is to be assigned each time this occurs.
The solution given in the invention has been developed both for radio resource scheduling (e.g.: MAC level scheduling), and for the scheduling of computational and transmissive resources in the network nodes (e.g.: flow scheduling with different service quality on Internet Protocol router (IP). The following description is based especially on the latter application example, and is given purely as an example and does not limit the scope of the invention.
For several years now, the widespread application and rapid evolution of the packet networks have given rise to the problem of integrating the traditional services offered by the old generation packet networks (electronic mail, web surfing, etc.) and the new services previously reserved for circuit switching networks (real time video, telephony, etc.) into the so-called integrated services networks. The integrated services networks must therefore be able to handle traffic flows with different characteristics and to offer each type of flow a suitable service quality, a set of performance indexes negotiated between user and service provider, which must be guaranteed within the terms agreed upon.
One of the key elements in providing the service quality requested is given by the scheduling implemented on the network nodes, i.e. by the criteria with which the packet to be transmitted is selected each time from those present on the node; this criteria must obviously match the following characteristics:

    
    
        flexibility, in the sense of capacity to provide different types of services;
        simplicity, a characteristic that makes it possible to use in environments that require high transmission speeds and the handling of numerous transmission flows; and
        efficiency in the use of the shared resource (e.g. the transmissive means).
    
    


This invention, having the characteristics referred to in the claims that follow, initially consists of a scheduling procedure that can satisfy the aforesaid requirements. Another aspect of the invention is that it also relates to the relative system.
In particular, the solution given in the invention is able to provide different types of service at a low computational cost, and can therefore be applied to computer networks that must guarantee its users quality of service, like the IP networks in intserv or diffserv techniques. The solution given in the invention also applies to the scheduling systems of radio resources such as MAC level scheduling algorithms (W-LAN systems, third-generation mobile-radio services).
In particular, the solution given in the invention guarantees the bit rate of the various flows, the maximum queueing delay and the maximum occupation of the buffers of each flow for synchronous traffic.
In its current preferred form of actuation, the solution given in the invention is capable of providing the following characteristics:

    
    
        flexibility: the solution given in the invention offers two different types of service, rate-guaranteed (suitable for synchronous flows) and best-effort (suitable for asynchronous flows), and is therefore able to function in service integration networks;
        isolation of flows: the special architecture makes it possible to isolate the transmission flows, i.e. it makes the service offered to a single-flow independent from the presence and behaviour of other flows;
        low computational complexity: the number of operations necessary to select the packet to be transmitted each time is independent from the number of transmission flows present, and therefore the system has one computational complexity 0(1); this property makes the system particularly suitable for environments in which the transmission speeds and the number of flows are high;
        adaptability: the solution given in the invention is able to handle a change in the operating parameters (e.g. the number of flows present) by redistributing its resources without having to resort to complex procedures; and
        analytic describability: a complete analytic description of the system's behaviour is provided; this makes it possible to relate the service quality measurements to the system parameters.
    
    





The following description of the invention is given as a non-limiting example, with reference to the annexed drawing, which includes a single block diagram FIGURE that illustrates the operating criteria of a system working according to the invention.



A scheduling system as given in the invention is able to multiplex a single transmission channel into multiple transmission flows.
The system offers two different types of service: a rate-guaranteed service, suitable for transmission flows (henceforth, h synchronous flows with h=1, 2, . . . , NS) that require a guaranteed minimum service rate, and a best-effort service, suitable for transmission flows (henceforth, i asynchronous flows, with i=1, 2, . . . , NA) that do not require any guarantee on the service rate. The system provides the latter, however, with a balanced sharing of the transmission capacity not used by the synchronous flows.
The traffic from each transmission flow input on the node is inserted in its queue (synchronous or asynchronous queues will be discussed later) from which it will be taken to be transmitted. The server 10 visits the queues in a fixed cyclic order (ideally illustrated in the FIGURE of the drawings with trajectory T and arrow A), granting each queue a service time established according to precise timing constraints at each visit.
System operation as given in the invention includes initialisation followed by the cyclic queue visit procedures. These procedures will be discussed later.
Initialisation
First of all, it is necessary to give the system the information relating to the working conditions: how many synchronous flows there are (in general: NA), what the transmission rate requested by each of these flows is, how many asynchronous flows there are, the expected rotation time (TTRT), i.e. how long a complete cycle during which the server visits all the queues once is to last.
On the basis of this information, the system parameters can be defined:

    
    
        each synchronous flow h, h=1 . . . NS, is associated, according to an appropriate allocation policy, to a variable Hh (synchronous capacity) that measures the maximum time for which the traffic of a synchronous flow can be transmitted before relinquishing the token. The possible allocation policies will be described below;
        each asynchronous flow i i=1 . . . NA is associated to two variables, lateness (i) and last_token_time(i); the first variable stores the delay that must be made up for the asynchronous queue i to have the right to be served; the second variable stores the instant in which the server visited the asynchronous queue i in the previous cycle. These variables are initialised to zero.
    
    


The system clock is also started; supposing that the reading of the current_time variable gives the current time with the desired precision, the queue scanning will start.
Visit to a Generic Synchronous Queue h, with h=1 . . . NS 
A synchronous queue can be served for a period of time equal to its maximum synchronous capacity Hh, determined during the initialisation stage. If the queue being served is empty, the server will move on to visit the next queue, even if the Hh time has not passed.
Visit to a Generic Asynchronous Queue i, with i=1 . . . NA 
An asynchronous code can be served only if the server's visit occurs before the expected instant. To calculate whether the server's visit is in advance, subtract the time that has passed between the previous visit and the accumulated delay lateness(i) from the expected rotation time TTRT. If this difference is positive, it gives the period of time for which the asynchronous queue i has the right to be served, and in this case the lateness variable (i) is reset. If the difference is negative, the server is late, and therefore the queue i cannot be served; in this case, the delay is stored in the lateness variable (i). The same applies to the asynchronous queues; if the queue being served is empty, the server will move on to visit the next one even if the previously calculated service time has not yet passed completely.
The pseudocode illustrated below analytically describes the behaviour of a system as given in the invention which proposes the scheduling of NA asynchronous flows and NS synchronous flows simultaneously (NA and NS must be non-negative integers). It should be supposed that each synchronous flow h, h=1 . . . NS requires a service rate equal to fh times the capacity of the output channel (0≦fh≦1), and that the sum of the service rates requested by the synchronous flows does not exceed the capacity of the channel itself




  
    (
    
      
        
          ∑
          
            h
            =
            1
          
          
            N
            s
          
        
        ⁢
        
          
        
        ⁢
        
          f
          h
        
      
      ≤
      1
    
    )
  
  .




Initialisation

    fetch_parameters (NS, f1 . . . fNs, NA, TTRT);
    select_parameters (H1 . . . HNs);
    for (i=1 to NA) {lateness(i)=0; last_token_time (i)=0;}
    current_time=0;
    Start_Cycle;


Visit to a Generic Synchronous Queue h, with h=1 . . . NS:

    Transmit_for_a_Time (Hh);
    Next_Visit;


Visit to a Generic Asynchronous Queue i, with i=1 . . . NA:

    t=current_time;
    temp=TTRT−latenesess(i)−(t)−last_token_time (i));
    if (temp>0)
    
        {Transmit_for_a_Time (temp);
        lateness(i)=0;}
    
    
    else
    
        lateness (i)=−temp;
    
    
    last_token_time (i)=t;
    Next_Visit;


The ability to guarantee that the synchronous flows receive a minimum service rate that is not less than that requested depends on whether the synchronous capacities Hh, h=1 . . . NS have been selected correctly. In the system given in the invention, the Hh, h=1 . . . NS are selected in proportion to the value of the expected rotation time TTRT:

Hh=TTRT·Ch

The values of the proportionality constant Ch can be selected according to one of the following two schemes:



  
    
      local
      ⁢
      
        
      
      ⁢
      scheme
      ⁢
      
        :
      
      ⁢
      
        
      
      ⁢
      
        C
        h
      
    
    =
    
      f
      h
    
  




  
    
      global
      ⁢
      
        
      
      ⁢
      scheme
      ⁢
      
        :
      
      ⁢
      
        
      
      ⁢
      
        C
        h
      
    
    =
    
      
        
          N
          A
        
        ·
        
          f
          h
        
      
      
        
          N
          A
        
        +
        1
        -
        
          
            ∑
            
              j
              =
              1
            
            
              N
              s
            
          
          ⁢
          
            
          
          ⁢
          
            f
            j
          
        
      
    
  



The applicability of the global scheme is naturally linked to the presence of at least one asynchronous flow.
If the Hh are calculated following one of the afore-mentioned schemes, each synchronous flow is served at a rate that is no less than rh times the capacity of the channel, with rh given by the following expression:




  
    r
    h
  
  =
  
    
      
        
          [
          
            
              N
              A
            
            +
            1
          
          ]
        
        ·
        
          C
          h
        
      
      
        
          N
          A
        
        +
        
          
            ∑
            
              j
              =
              1
            
            
              N
              s
            
          
          ⁢
          
            
          
          ⁢
          
            C
            j
          
        
      
    
    ≥
    
      f
      h
    
  




and it can be guaranteed that, given any interval of time [t1, t2) in which the generic synchronous queue h is never empty, the service time Wh(t1,t2) received by the h queue in [t1, t2), the following inequality will occur:

0<rh·(t2−t1)−Wh(t1, t2)≦Λh<∞, ∀t2≧t1, h=1 . . . NS  (1)

with:

Λh=Ch·TTRT·(2−rh)>min(2Hh, TTRT)

Relation (1) above establishes that the service provided by the system given in the invention to a synchronous flow h does not differ by more than Λh from the service that the same flow would experience if it were the only owner of a private transmission channel with a capacity equal to rh times that of the channel handled by the scheduler as given in the invention. Λh therefore represents the maximum service delay with respect to an ideal situation. Since Λh is proportional to TTRT, TTRT can be selected to limit the maximum service delay.
The global scheme guarantees a better use of the transmission capacity of the channel with respect to the local scheme, in that under the same operating conditions it allocates a lower capacity to the synchronous flows, leaving a larger section of the band free for asynchronous flow transmissions.
On the other hand, the use of a global scheme envisages that all the Hh parameters are recalculated each time the number of flows (synchronous or asynchronous) in the system changes; the use of a local scheme, however, means that the Hh can be established independently from the number of flows present in the system.
The guarantee on the minimum service rate makes it possible to provide guarantees on the maximum buffer occupation (backlog) and on the maximum queuing delay for synchronous traffic if appropriate mechanisms for conditioning input traffic are used.
Assuming a composite leaky bucket is used as a traffic conditioning mechanism, consisting of n≧1 leaky bucket in cascade, and granting that each leaky bucket is characterised by a pair of parameters (bj,tj), j=1 . . . n, where bj is the dimension of the leaky bucket (expressed in units of time), and 1/tj is the filling rate of the leaky bucket, it is possible to define the following quantities:




  
    
      
        
          T
          j
        
        =
        
          
            
              
                b
                j
              
              -
              
                b
                
                  j
                  +
                  1
                
              
            
            
              
                t
                j
              
              -
              
                t
                
                  j
                  +
                  1
                
              
            
          
          ⁢
          
            t
            j
          
          ⁢
          
            t
            
              j
              +
              1
            
          
        
      
    
  
  
    
      
        
          B
          j
        
        =
        
          
            
              
                b
                j
              
              ⁢
              
                t
                j
              
            
            -
            
              
                b
                
                  j
                  +
                  1
                
              
              ⁢
              
                t
                
                  j
                  +
                  1
                
              
            
          
          
            
              t
              j
            
            -
            
              t
              
                j
                +
                1
              
            
          
        
      
    
  




where bn+1=0 and tn+1=0 are introduced for the sake of easy notation. We can suppose (without losing general aspects) that the following inequalities have occurred: tj>tj+1, bj>bj+1, Tj>Tj+1 for j=1 . . . n−1

Supposing that the generic synchronous flow k has guaranteed a rate equal to rk, if the traffic sent by the synchronous flow k is limited by a composite leaky bucket with n stages described by the parameters (bj,tj), j=1 . . . n, the following guarantees can be formulated.
If rk≧1/t1, then both the backlog and the queuing delay have an upper limit; in addition, if the single leaky bucket is marked with index i, we have: 1/ti≦rk<1/ti+1, i=1 . . . n:

    
    
        the queuing delay is limited at the top by:

dk=(Λk+Bi)/rk−Ti

        if Λk/rk≦Ti, the backlog is limited at the top by: qk=Λk+Bi−rk·Ti 

if Λk/rk>Ti, the backlog is limited at the top by:

    
    






  
    
      q
      k
    
    =
    
      
        
          Λ
          k
        
        
          
            t
            h
          
          ·
          
            r
            k
          
        
      
      +
      
        b
        h
      
    
  
  ,




where h is the leaky bucket that checks the inequality Th≦Λk/rk<Th−1, h=1 . . . i1.

T0=∞ has been used in the above description for the sake of easy notation.
Obviously the details of how this is done can be altered with respect to what has been described, without however, leaving the context of this invention.

## Claims

1. A method of scheduling a service resource shared between multiple information packet flows, said flows generating respective associated queues and being served by the attribution of a token, this plurality of flows including synchronous flows requiring a guaranteed minimum service rate and asynchronous flows destined to exploit the service capacity of said resource left unused by the synchronous flows,
comprising the steps of:
providing a server that visits the queues associated with said flows in successive cycles and and that determines a time value of expected rotation that in turn identifies an amount of time necessary for the server to complete a visit cycle to the respective queues;
associating with each synchronous flow a respective synchronous capacity value indicative of the maximum amount of time for which a synchronous flow can be served before relinquishing the token;
associating with each synchronous flow (i) a first respective delay value that identifies a value that must be made up for the respective queue to be served, and a second value that indicates an instant in which the server visited the respective queue in the previous cycle, determining for said respective queue an amount of time that has passed since the previous visit of the server,
serving each queue associated to a respective synchronous flow for a maximum service time equal to said respective value of synchronous capacity, and
serving each queue associated to a respective asynchronous flow only if the server's visit occurs before an expected instant, said advance being determined as the difference between said expected rotation time value and an amount of time that has passed since the server's previous visit and any accumulated delay; wherein if positive, this difference defines a maximum service time for each said queue.

2. The method defined in claim 1 wherein, if the queue is empty when the server visits it, causing the server to visit a subsequent queue even before a relative maximum service time has passed.

3. The method defined in claim 1 wherein, when said difference is negative, each said queue associated to a respective asynchronous flow (i) is not served and the value of said difference is accumulated with said delay.

4. The method defined in claim 1 wherein said first respective value and said second respective value are initialized to zero.

5. The method defined in claim 1 wherein said respective synchronous capacity value is determined in proportion to said expected rotation time value.

6. The method defined in claim 5 wherein said respective synchronous capacity value is determined in proportion to said expected rotation time value according to a respective first proportionality factor selected in relation to a respective second proportionality factor between the service rate requested by the respective synchronous flow and the service capacity of said shared resource.

7. The method defined in claim 6 wherein the respective first proportionality factor is selected equal to the respective second proportionality factor.

8. The method defined in claim 6 wherein the second proportionality factors are selected on the basis of the following formula




  
    C
    h
  
  =
  
    
      
        N
        A
      
      ·
      
        f
        h
      
    
    
      
        N
        A
      
      +
      1
      -
      
        
          ∑
          
            j
            =
            1
          
          
            N
            s
          
        
        ⁢
        
          
        
        ⁢
        
          f
          j
        
      
    
  




where:
j is an ordinal number,
fj stands for said respective proportionality factor relating to the j-the synchronous flow, and NA is the number of said asynchronous flows.

9. A system for the scheduling of a service resource shared between multiple information packet flows, said flows generating respective associated queues and being served by the attribution of a token; this plurality of flows includes synchronous flows requiring a guaranteed minimum service rate and asynchronous flows destined to exploit the service capacity of said resource left unused by the synchronous flows, said system comprising
a server that is able to visit the queues associated, to said flows in successive cycles; the system being configured to perform the following operations:
determine an expected rotation time value which identifies an amount of time necessary for the server to complete a visiting cycle of said, respective queues,
associate with each synchronous flow (h) a respective synchronous capacity value (Hh) indicative of the maximum amount of time for which a respective synchronous flow can be served before relinquishing the token,
associate with each asynchronous flow a first respective delay value that identifies the delay that must be made up for the respective queue to be served, and a second respective value that indicates an instant in which the server visited the respective queue in the previous cycle, determining for said respective queue, an amount of time that has passed since the previous visit of the server,
serve each queue associated to a respective synchronous flow for a maximum service time equal to said respective value of synchronous capacity, and
serve each queue associated to a respective asynchronous flow only if the server's visit occurs before the expected instant, said advance being determined as the difference between said expected rotation time value and an amount of time that has passed since the server's previous visit and any accumulated delay; if positive, this difference defines a maximum service time for each said queue.

10. The system defined in claim 9 wherein the server is configured in such a way that if the queue is empty when the server visits it, the server will move onto visit a subsequent queue even before the relative maximum service time has passed.

11. The system defined in claim 9 wherein, in the case in which said difference is negative, each said queue associated to a respective asynchronous flow (i) is not served by the server and the value of said difference is accumulated with said delay.

12. The system defined in claim 9 wherein said first respective value and said second respective value are initialized to zero.

13. The system defined in claim 9 wherein said respective synchronous capacity value is determined in proportion to said expected rotation time value.

14. The system defined in claim 9 wherein said synchronous capacity value is determined in proportion to said expected rotation time value according to a proportionality factor selected in relation to the respective proportionality factor between the service rate requested by the respective synchronous flow and the service capacity of said shared resource.

15. The system defined in claim 14 wherein said proportionality factor is selected on the basis of the following formula




  
    C
    h
  
  =
  
    
      
        N
        A
      
      ·
      
        f
        h
      
    
    
      
        N
        A
      
      +
      1
      -
      
        
          ∑
          
            j
            =
            1
          
          
            N
            s
          
        
        ⁢
        
          
        
        ⁢
        
          f
          j
        
      
    
  




where:
j is an ordinal number,
fj stands for said respective proportionality factor relating to the j-the synchronous flow, and
NA is the number of said asynchronous flows.