Method for allocating a bandwidth (BW) between a plurality of network terminals (NTx) coupled, via a common link, to a main network station (LT) in a communication network including a medium access controller (MC) with a guarantee counter (Gx) for each dependent terminal, a determined guarantee increment (IncGx) and a determined guarantee maximum (MaxGx) being defined for each guarantee counter and a guarantee stack (GS) for storing permits to be forwarded to the network terminals, each permit containing a network terminal identifier and corresponding to a predetermined share of bandwidth, said method including for defining permits
- a first step by:
- updating the current value of each guarantee counter (Gx) by adding the corresponding guarantee increment (IncGx);
- stacking a permit in the guarantee stack (GS) and diminishing the current value of a guarantee counter (Gx) with the guarantee maximum (MaxGx), if this current value exceeds the guarantee maximum (MaxGx);
- said method being characterised in that the medium access controller (MC) includes also a fair counter (Fx) for each dependant terminal with a determined fair increment (IncFx) and a fair maximum (MaxFx) defined for each fair counter, and a fair stack (FS) for storing permits to be forwarded to the network terminals, and in that said method also includes the following two steps for defining and forwarding permits:
- a second step by:
- updating the current value of each fair counter (Fx) by adding the corresponding increment (IncFx);
- stacking a permit in the fair stack (FS) and diminishing the current value of a fair counter (Fx) with the fair maximum (MaxFx), if this current value exceeds the fair maximum (MaxGx)
- a third step to forward a permit by:
- forwarding an idle permit, if the guarantee stack (GS) and the fair stack (FS) are both empty;
- extracting a permit from the fair stack (FS) and forwarding it, if the guarantee stack (GS) is empty and the fair stack (FS) is not empty;
- extracting a permit from the guarantee stack (GS) and forwarding it, if the guarantee stack (GS) is not empty.