Switching unit with scalable and QoS aware flow control
Abstract
The present invention relates to a switching unit with a scalable and QoS aware flow control. The actual schedule rate of an egress queue, wherein the outgoing traffic belonging to a particular class of service is backlogged, is measured and compared to its expected schedule rate. If the egress queue is scheduled below expectation, then the bandwidth of every virtual ingress-to-egress pipe connecting an ingress queue, wherein the incoming traffic belonging to the same class of service is backlogged before transmission through the switch core fabric, to that egress queue is increased, thereby feeding that egress queue with more data units.

Term
Term ended
Expired 21 October 2023, 2.9 years ago.
- Priority and filed
- Granted
- Expired
- Today
5 claims: 1 independent, 4 dependent
- 1A switching unit (SU) comprising:- a switch core fabric (SW), - an output termination module (Om, 1 ≤ m ≤ M) coupled to said switch core fabric, - an input termination module (In, 1 ≤ n ≤ N) coupled to said switch core fabric, said output termination module comprising: - an egress queue (EQm_CoSc, 1 ≤ c ≤ C) adapted to backlog data units belonging to a class of service (CoSc), - an egress scheduler (ESm) coupled to said egress queue, and adapted to schedule data units from said egress queue towards an output termination port (OTPm), said input termination module comprising: - an ingress queue (IQn_Om_CoSc) adapted to backlog data units belonging to said class of service and bound to said output termination module, said switching unit further comprising, as forming part of said input termination module, of said switch core fabric and of said output termination module, at least point-to-point transmission means adapted to convey data units from at least said ingress queue to at least said egress queue, said at least point-to-point transmission means being considered, with respect to said ingress queue and to said egress queue, as a virtual ingress-to-egress pipe (VIEPnmc) connecting said ingress queue to said egress queue, characterized in that said output termination module further comprises a measurement means (MEASm) coupled to said egress scheduler, and adapted to determine whether said egress queue is scheduled below expectation during a first pre-determined period of time, and in that said switching unit further comprises a flow controller (CTRL) coupled to said measurement means, and adapted, if said egress queue is scheduled below expectation during said first pre-determined period of time, to increase bandwidth of said virtual ingress-to-egress pipe during a second pre-determined period of time subsequent to said first pre-determined period of time.
96 paragraphs, as filed
0001The present invention relates to a switching unit comprising: <ul id="ul0001" list-style="dash" compact="compact"><li>a switch core fabric,</li><li>an output termination module coupled to said switch core fabric,</li><li>an input termination module coupled to said switch core fabric,</li></ul> said output termination module comprising: <ul id="ul0002" list-style="dash" compact="compact"><li>an egress queue adapted to backlog data units belonging to a class of service,</li><li>an egress scheduler coupled to said egress queue, and adapted to schedule data units from said egress queue towards an output termination port,</li></ul> said input termination module comprising: <ul id="ul0003" list-style="dash" compact="compact"><li>an ingress queue adapted to backlog data units belonging to said class of service and bound to said output termination module,</li></ul> said switching unit further comprising, as forming part of said input termination module, of said switch core fabric and of said output termination module, at least point-to-point transmission means adapted to convey data units from at least said ingress queue to at least said egress queue, said at least point-to-point transmission means being considered, with respect to said ingress queue and to said egress queue, as a virtual ingress-to-egress pipe connecting said ingress queue to said egress queue.
0002Such a switching unit is already known in the art, e.g. from the patent application entitled <i>"Method for Sharing Internal Excess Bandwidth between Output and Input Termination Modules of a Switching Network",</i> No. 00402753, published by the European Patent Office (EPO) on April 10, 2002.
0003To operate a switching unit efficiently, and to support controlled Quality of Service (QoS) differentiation in a bursty, unpredictable traffic pattern environment, the switching unit has to be complemented with a flow control mechanism. The granularity of the individual amounts of user traffic for which a flow control decision has to be made, the number of destinations and Classes of Service (CoS) to be distinguished, and the state of technology that can be used to implement the flow control, determine the rate and precision of the flow control decisions, and whether this flow control can be realized in a centralized or distributed manner. As the switching unit size and the applied flow granularity grow, either higher processing and communication speed, or more calculation and communication resources are required.
0004Credit based flow control grants every potential source of traffic in the switching unit a given limited amount of traffic it can allow into the fabric. The source can use the obtained credit at its own discretion. The credit is renewed on demand or on a regular basis. The calculation rule for granting the credit has to be fair over time to avoid giving an unjustified advantage to a particular physical path across the switching unit.
0005Internal Dynamic Rate-based Flow Control (IDRFC) is a credit based flow control, involving bandwidth negotiation between each and every input and output termination module within a fixed time schedule (IDRFC cycles).
0006The cited document discloses a switching unit that implements a weighted IDRFC algorithm for sharing an internal excess bandwidth among the input termination modules, according to bandwidth requests from the input termination modules. The bandwidth request and grant related to an input termination module linked by a virtual ingress-to-egress pipe to an output termination module are both calculated for a determined number of relative administrative weights corresponding each to a different CoS, with a different request and a corresponding grant for every weight.
0007The processing power required for calculating bandwidth requests and grants scales linearly with the number of CoS. The scalability of a switching unit implementing such a flow control is thus limited.
0008It is an object of the present invention to provide a switching unit with a scalable and QoS aware flow control.
0009According to the invention, this object is achieved due to the fact that said output termination module further comprises a measurement means coupled to said egress scheduler, and adapted to determine whether said egress queue is scheduled below expectation during a first pre-determined period of time, and that said switching unit further comprises a flow controller coupled to said measurement means, and adapted, if said egress queue is scheduled below expectation during said first pre-determined period of time, to increase bandwidth of said virtual ingress-to-egress pipe during a second pre-determined period of time subsequent to said first pre-determined period of time.
0010In a preliminary step, a fair amount of the total available bandwidth is granted to every virtual ingress-to-egress pipe connecting an ingress queue of an input termination module to an egress queue of an output termination module, in relation with an expected traffic situation at the ingress side.
0011The bandwidth of a virtual ingress-to-egress pipe is defined as the number of data units that virtual ingress-to-egress pipe can convey per unit of time.
0012An egress scheduler of an output termination module schedules data units from an egress queue towards an output termination port in proportion to a service share allotted to that egress queue, and a service rate allotted to that egress scheduler. The service rate and the service share are allotted in such a way that the aggregate bandwidth of all the virtual ingress-to-egress pipes bound to that egress queue is drained off.
0013Data units may experience bottlenecks on the way towards the output termination modules. If so, some egress schedulers might be left out of data units to schedule from some egress queues.
0014Therefore, the actual schedule rate of an egress queue is compared to the expected schedule rate of that egress queue, as derived from the service share of that egress queue, from the service rate of the scheduler and from the scheduling algorithm. if the actual schedule rate is lower than the expected schedule rate, that is to say if the egress queue is scheduled below expectation, then the bandwidth of every virtual ingress-to-egress pipe bound to that egress queue is increased, thereby feeding that egress queue with more data units.
0015Ways an egress queue is determined as being scheduled below expectation are manifold, in close relation with the method used for measuring the actual schedule rate, and with the mathematical criteria used for comparing the actual and expected schedule rates.
0016The period of time over which the actual schedule rate is measured and the period of time during which bandwidth is increased are relatively short periods of time subsequent to one another, not necessarily contiguous. These periods of time might or might not correspond to IDRFC cycles.
0017A non limiting example of a data unit is an Internet Protocol (IP) datagram conveyed over an IP-based network, such as the Internet.
0018Another non limiting example of a data unit is a Multi-Path Label Switched (MPLS) packet conveyed over an MPLS-based network, such as a backbone network.
0019Another non limiting example of a data unit is an Asynchronous Transfer Mode (ATM) cell conveyed over an ATM-based network, such as a broadband public network.
0020A non limiting example of a switching unit is a IP router adapted to route IP datagrams to the right destination with differentiated service classes (diffserv).
0021Another non limiting example of a switching unit is a Label Switched Router (LSR) adapted to forward MPLS packets to the right destination with differentiated forwarding treatments.
0022Another non limiting example of a switching unit is an ATM broadband switch adapted to switch ATM cells to the right destination with a guaranteed QoS.
0023A non limiting example of at least point-to-point transmission means is a switch core fabric made of modular switching elements, with each a small internal buffer memory, in association with means in every input termination module for aggregating data units towards the switch core fabric, and means in every output termination module for de-multiplexing data units towards the appropriate egress queues.
0024Ways to increase the bandwidth of a virtual ingress-to-egress pipe are manifold, in close relation with the underlying hardware and/or software implementing the at least point-to-point transmission means.
0025In one embodiment of the present invention, said input termination module further comprises, as forming part of said virtual ingress-to-egress pipe, an ingress scheduler adapted to schedule said incoming data units from said ingress queue towards said switch core fabric in proportion to a service share allotted to said ingress queue, and said flow controller comprises an ingress scheduler controller coupled to said measurement means and to said ingress scheduler, and adapted, if said egress queue is scheduled below expectation during said first pre-determined period of time, to allot an higher service share to said ingress queue during said second pre-determined period of time.
0026By increasing the service share of an ingress queue, more data units from that ingress queue flow through the scheduler and reach the egress queue. The internal bandwidth being upper bound, this increase might be at the expense of other ingress queues aggregated through the same scheduler, the service share of which is decreased at a relative extent.
0027Bandwidth of a virtual ingress-to-egress pipe can be increased further on the way towards the output termination modules.
0028In an alternative embodiment of the present invention, said flow controller comprises a bandwidth distribution means coupled to said measurement means, and adapted: <ul id="ul0004" list-style="dash" compact="compact"><li>to assign said virtual ingress-to-egress pipe to either a first group of virtual ingress-to-egress pipes or a second group of virtual ingress-to-egress pipes, depending on whether said egress queue is scheduled below expectation during said first pre-determined period of time, each of said first group of virtual ingress-to-egress pipes connecting an ingress queue of said input termination module to an egress queue of said output termination module scheduled below expectation during said first pre-determined period of time, each of said second group of virtual ingress-to-egress pipes connecting an ingress queue of said input termination module to an egress queue of said output termination module scheduled at or above expectation during said first pre-determined period of time,</li><li>to distribute to said first group of virtual ingress-to-egress pipes, respectively to said second group of virtual ingress-to-egress pipes, a first amount, respectively a second amount, of a total bandwidth available through said at least point-to-point transmission means, said total bandwidth being distributed with precedence to said first group of virtual ingress-to-egress pipes.</li></ul>
0029The virtual ingress-to-egress pipes connecting ingress queues of an input termination module to egress queues of an output termination module are sorted into 2 groups: virtual ingress-to-egress pipes of the first group convey data units towards egress queues scheduled below expectation, virtual ingress-to-egress pipes of the second group convey data units towards egress queues scheduled at or above expectation.
0030Next, an aggregated bandwidth from that input termination module towards that output termination module is determined and negotiated for each of these 2 groups separately. The system bandwidth is granted first and foremost to the first groups.
0031By giving precedence in the bandwidth allocation process to virtual ingress-to-egress pipes connecting ingress queues to egress queues scheduled below expectation, more data units from those ingress queues enters the switch core fabric and reach those egress queues. The internal bandwidth being upper bound, this precedence might be at the expense of virtual ingress-to-egress pipes connecting ingress queues to egress queues scheduled at or above expectation.
0032A distributed implementation of the bandwidth distribution means can be thought of, with bandwidth request means distributed over every input termination module, and bandwidth grant means distributed over every output termination module.
0033The bandwidth request means is adapted to request for said first group of virtual ingress-to-egress pipes, respectively for said second group of virtual ingress-to-egress pipes, a first fraction, respectively a second fraction, of a total ingress bandwidth available at said input termination module.
0034The bandwidth grant means is coupled to said bandwidth request means and is adapted, upon request of said first fraction, respectively of said second fraction, to grant to said first group of virtual ingress-to-egress pipes, respectively to said second group of virtual ingress-to-egress pipes, a third fraction, respectively a fourth fraction, of a total egress bandwidth available at said output termination module, in proportion to said first fraction, respectively to said second fraction, said total egress bandwidth being granted with precedence to said first group of virtual ingress-to-egress pipes.
0035It is to be noticed that the number of bandwidth requests and grants is multiplied by a factor 2, irrespective of the number of CoSs implemented, making this embodiment highly scalable.
0036In still an alternative embodiment of the present invention, said input termination module further comprises, as forming part of said flow controller, a stamping means coupled to said measurement means and to said ingress queue, and adapted, if said egress queue is scheduled below expectation during said first pre-determined period of time, to stamp data units from said ingress queue with an higher priority during said second pre-determined period of time, thereby giving them higher precedence for transmission through said at least point-to-point transmission means.
0037This embodiment addresses switch core fabrics with e.g. low-priority and high-priority traffic differentiation.
0038By giving precedence in the forwarding process to data units bound to an egress queue scheduled below expectation, more data units pass through congestion points, if any, and reach that egress queue.
0039It is to be noticed that the term 'comprising', also used in the claims, should not be interpreted as being restricted to the means listed thereafter. Thus, the scope of the expression 'a device comprising means A and B' should not be limited to devices consisting only of components A and B. It means that with respect to the present invention, the relevant components of the device are A and B.
0040Similarly, it is to be noticed that the term 'coupled', also used in the claims, should not be interpreted as being restricted to direct connections only. Thus, the scope of the expression 'a device A coupled to a device B' should not be limited to devices or systems wherein an output of device A is directly connected to an input of device B. It means that there exists a path between an output of A and an input of B which may be a path including other devices or means.
0041The above and other objects and features of the invention will become more apparent and the invention itself will be best understood by referring to the following description of an embodiment taken in conjunction with the accompanying drawings wherein: <ul id="ul0005" list-style="dash" compact="compact"><li>fig. 1 represents a switching unit SU according to the prior art,</li><li>fig. 2 represents the same switching unit implementing an ingress scheduler controller according to the present invention,</li><li>fig. 3 represents the same switching unit implementing a bandwidth distribution means according to the present invention.</li></ul>
0042The switching unit SU comprises the following functional blocks: <ul id="ul0006" list-style="dash" compact="compact"><li>a switch core fabric SW (see fig. 1, 2 and 3),</li><li>M output termination modules O1 to OM (see fig. 1, 2 and 3), M being a non-null positive integer,</li><li>N input termination modules I1 to IN (see fig. 1, 2 and 3), N being a non-null positive integer.</li></ul>
0043The output termination modules O1 to OM are coupled to egress access ports of the switch core fabric SW. The input termination modules I1 to IN are coupled to ingress access ports of the switch core fabric SW.
0044The switching unit SU implements C differentiated CoSs CoS1 to CoSC, C being a non-null positive integer.
0045The switch core fabric SW is a Multi-Path Self Routing (MPSR) switch, adapted to forward fixed length packets from any ingress access port to any egress access port. This is achieved by appending internal routing data to the transiting packets.
0046The output termination module Om, m being an index ranging from 1 to M, comprises the following functional blocks: <ul id="ul0007" list-style="dash" compact="compact"><li>an output termination port OTPm (see fig. 1, 2 and 3),</li><li>C egress queues EQm_CoS1 to EQm_CoSC (see fig. 1, 2 and 3),</li><li>an egress scheduler ESm (see fig. 1, 2 and 3),</li><li>a measurement means MEASm (see fig. 2 and 3),</li><li>a bandwidth grant means GRANTm coupled to the measurements means MEASm (see fig. 3).</li></ul>
0047The egress scheduler ESm is coupled to the output termination port OTPm and to the egress queues EQm_CoS1 to EQm_CoSC. The measurement means MEASm is coupled to the egress scheduler ESm. The bandwidth grant means GRANTm is coupled to the measurements means MEASm.
0048The input termination module In, n being an index ranging from 1 to N, comprises the following functional blocks: <ul id="ul0008" list-style="dash" compact="compact"><li>an input termination port ITPn (see fig. 1, 2 and 3),</li><li>C × M ingress queues IQn_O1_CoS1 to IQn_OM_CoSC (see fig. 1, 2 and 3),</li><li>M ingress schedulers ISn1 to ISnM (see fig. 2 and 3).</li><li>a bandwidth request means REQn (see fig. 3),</li><li>an ingress scheduler controller CTRLn (see fig. 2).</li></ul>
0049The ingress schedulers ISnm is coupled to the C ingress queues IQn_Om_COS1 to IQ_Om_CoSC. The bandwidth request means REQn is externally coupled to the bandwidth grant means GRANT1 to GRANTM and to the measurements means MEAS1 to MEASM. The ingress scheduler controller CTRLn is coupled to the ingress schedulers ISn1 to lSnM, and is externally coupled to the bandwidth grant means GRANT1 to GRANTM (coupling not shown) and to the measurements means MEAS1 to MEASM.
0050The output termination port Om is adapted to originate an electrical or optical signal towards a peer switching unit, such as a Gigabit Ethernet signal, and to encode outgoing data units in a format suitable for their transmission towards the peer switching unit.
0051The input termination port In is adapted to terminate an electrical or optical signal from a peer switching unit, and to decode incoming data units in a format suitable for their processing within the switching unit SU.
0052The egress queues EQm_CoS1 to EQm_CoSC are First-In First-Out (FIFO) queues adapted to backlog outgoing data units belonging to respective ones of the CoSs CoS1 to COSC.
0053The ingress queues IQn_O1_CoS1 to IQn_OM_CoSC are FIFO queues adapted to backlog incoming data units belonging to respective ones of the CoSs CoS1 to COSC, and bound to respective ones of the output termination modules O1 to OM.
0054The egress scheduler ESm is adapted to schedule data units from the egress queues EQm_CoS1 to EQm_CoSC towards the output termination port OTPm in proportion to their respective service share.
0055The ingress schedulers ISnm is adapted to schedule data units from the ingress queues IQn_Om_CoS1 to lQn_Om_CoSC towards the switch core fabric SW in proportion to their respective service share.
0056In a preferred embodiment of the present invention, the egress scheduler ESm and the ingress scheduler ISnm are Weighted Fair Queuing (WFQ) work-conserving schedulers. Each queue is allotted a service share or weight: the higher the weight, the more data units are scheduled from that queue.
0057The output termination module Om further accommodates reassembly means (not shown) for re-assembling fixed length data packets from the switch core fabric SW into variable length data units, at some place while transiting through the output termination module towards the output termination port.
0058The input termination module In further accommodates fragmenting means (not shown) for fragmenting incoming data units into fixed length data packets, at some point while transiting through the input termination module towards the switch core fabric.
0059The measurement means MEASm is adapted, for each of the egress queues EQm_COS1 to EQm_COSC: <ul id="ul0009" list-style="dash" compact="compact"><li>to determine the number of data units that should be scheduled during a given period of time, this number being derived from the service share allotted to that egress queue, from the service rate allotted the egress scheduler ESm, and from the scheduling algorithm, presently WFQ,</li><li>to count during the same period of time the number of data units the egress scheduler ESm has actually scheduled from that egress queue,</li><li>to determine whether that egress queue is scheduled below expectation.</li></ul>
0060The measurement means MEASm maintains C 2-state variables DS_EQm_CoS1 to DS_EQm_CoSC for respective ones of the egress queues EQm_CoS1 to EQm_CoSC (see fig. 2 and 3). The variables DS_EQm_CoS1 to DS_EQm_CoSC are further referred to as the draining status of the egress queues EQm_CoS1 to EQm_CoSC respectively.
0061In a preferred embodiment of the present invention, the draining status DS_EQm_CoSc of a particular egress queue EQm_CoSc, c being an index ranging from 1 to C, takes the value "at_or_above_expectation" (0), respectively "below_expectation" (1), if the actual schedule rate of the egress queue EQm_CoSc is higher than or equal to, respectively is lower than, 95% of the expected schedule rate of the egress queue EQm_CoSc.
0062The draining status DS_EQm_CoS1 to DS_EQm_CoSC are updated after each measurement cycle, and advertised to the bandwidth request means REQ1 to REQN and to the ingress scheduler controllers CTRL1 to CTRLN, along with an identifier of the measurement cycle to which they relate.
0063C × M virtual ingress-to-egress pipes VIEPn11 to VIEPnMC are assumed to connect the ingress queues IQn_O1_CoS1 to IQn_OM_CoSC to respective ones of the egress queues EQ1_CoS1 to EQM_CoSC (see fig. 1).
0064The bandwidth request means REQn is adapted: <ul id="ul0010" list-style="dash" compact="compact"><li>to estimate for a given period of time C × M bandwidth needs BWNn11 to BWNnMC for respective ones of the virtual ingress-to-egress pipes VIEPn11 to VIEPnMC,</li><li>to determine for the same period of time M first aggregate bandwidth requests BWRn1_H to BWRnM_H towards respective ones of the output termination modules O1 to OM, and M second aggregate bandwidth requests BWRn1_S to BWRnM_S towards respective ones of the output termination modules O1 to OM,</li><li>to send the so-determined bandwidth requests to the appropriate output termination module, along with an identifier of the negotiation cycle to which they relate.</li></ul>
0065The bandwidth need BWNnmc of a particular virtual ingress-to-egress pipe VIEPnmc is estimated from prior measurements of the incoming traffic at the ingress queue IQn_Om_CoSc (e.g., by measuring queuing parameters, such as the queue filling level and the arrival rate).
0066The first aggregate bandwidth request BWRnm_H is obtained by summing up the bandwidth needs of every virtual ingress-to-egress pipe connecting an ingress queue of the input termination module In to an egress queue of the output termination module Om, the draining status of which has the value "below_expectation": <maths id="math0001" num=""><math display="block"><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">H</mi><mo>=</mo><mstyle displaystyle="true"><munder><mo>∑</mo><mrow><mn>1</mn><mo>≤</mo><mi mathvariant="normal">c</mi><mo>≤</mo><mi mathvariant="normal">C</mi><mo>,</mo><mi mathvariant="normal">DS_EQm_CoSc</mi><mo>=</mo><mn>1</mn></mrow></munder><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">N</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mi mathvariant="normal">c</mi></mrow></mstyle></mrow></math><img file="EP1526686B1_D0001.tif" /></maths>
0067The second aggregate bandwidth request BWRnm_S is obtained by summing up the bandwidth needs of every virtual ingress-to-egress pipe connecting an ingress queue of the input termination module In to an egress queue of the output termination module Om, the draining status of which has the value "at_or_above_expectation": <maths id="math0002" num=""><math display="block"><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">S</mi><mo>=</mo><mstyle displaystyle="true"><munder><mo>∑</mo><mrow><mn>1</mn><mo>≤</mo><mi mathvariant="normal">c</mi><mo>≤</mo><mi mathvariant="normal">C</mi><mo>,</mo><mi mathvariant="normal">DS_EQm_CoSc</mi><mo>=</mo><mn>0</mn></mrow></munder><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">N</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mi mathvariant="normal">c</mi></mrow></mstyle></mrow></math><img file="EP1526686B1_D0002.tif" /></maths>
0068Let BWTIn denote a total ingress bandwidth available at the input termination module In.
0069In a preferred embodiment of the present invention, BWTln is determined as being the total bandwidth available at the ingress access port via which the input termination module In is coupled to the switch core fabric SW.
0070if the sum <maths id="math0003" num=""><math display="inline"><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi mathvariant="normal">m</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="normal">M</mi></munderover><mrow><mrow><mo>(</mo><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">H</mi><mo>+</mo><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">S</mi></mrow><mo>)</mo></mrow></mrow></mstyle></mrow></math><img file="EP1526686B1_D0003.tif" /></maths> exceeds BWTIn, then the bandwidth request means REQn determines new aggregate bandwidth requests as follows: <ul id="ul0011" list-style="dash" compact="compact"><li>If <maths id="math0004" num=""><math display="inline"><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi mathvariant="normal">m</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="normal">M</mi></munderover><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">H</mi></mrow></mstyle><mo><</mo><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">T</mi><mi mathvariant="normal">I</mi><mi mathvariant="normal">n</mi></mrow></math><img file="EP1526686B1_D0004.tif" /></maths> then BWRnm_H'= BWRnm_H (unchanged) and <maths id="math0005" num=""><math display="inline"><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><msup><mi mathvariant="normal">S</mi><mo>′</mo></msup><mo>=</mo><mfrac><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">S</mi></mrow><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi mathvariant="normal">m</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="normal">M</mi></munderover><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">S</mi></mrow></mstyle></mrow></mfrac><mo>×</mo><mrow><mo>(</mo><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">T</mi><mi mathvariant="normal">I</mi><mi mathvariant="normal">n</mi><mo>−</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi mathvariant="normal">m</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="normal">M</mi></munderover><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">H</mi></mrow></mstyle></mrow><mo>)</mo></mrow><mo>,</mo></mrow></math><img file="EP1526686B1_D0005.tif" /></maths>satisfying the relation <maths id="math0006" num=""><math display="inline"><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi mathvariant="normal">m</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="normal">M</mi></munderover><mrow><mrow><mo>(</mo><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><msup><mi mathvariant="normal">H</mi><mo>′</mo></msup><mo>+</mo><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><msup><mi mathvariant="normal">S</mi><mo>′</mo></msup></mrow><mo>)</mo></mrow></mrow></mstyle><mo>=</mo><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">T</mi><mi mathvariant="normal">h</mi><mo>.</mo></mrow></math><img file="EP1526686B1_D0006.tif" /></maths></li><li>If <maths id="math0007" num=""><math display="inline"><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi mathvariant="normal">m</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="normal">M</mi></munderover><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">H</mi></mrow></mstyle><mo>≥</mo><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">T</mi><mi mathvariant="normal">I</mi><mi mathvariant="normal">n</mi></mrow></math><img file="EP1526686B1_D0007.tif" /></maths> then <maths id="math0008" num=""><math display="inline"><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><msup><mi mathvariant="normal">H</mi><mo>′</mo></msup><mo>=</mo><mfrac><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">H</mi></mrow><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi mathvariant="normal">m</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="normal">M</mi></munderover><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">H</mi></mrow></mstyle></mrow></mfrac><mo>×</mo><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">T</mi><mi mathvariant="normal">I</mi><mi mathvariant="normal">n</mi></mrow></math><img file="EP1526686B1_D0008.tif" /></maths> and BWRnm_S'= 0, satisfying the relation <maths id="math0009" num=""><math display="inline"><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi mathvariant="normal">m</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="normal">M</mi></munderover><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><msup><mi mathvariant="normal">H</mi><mo>′</mo></msup></mrow></mstyle><mo>=</mo><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">T</mi><mi mathvariant="normal">h</mi></mrow></math><img file="EP1526686B1_D0009.tif" /></maths></li></ul>
0071The bandwidth grant means GRANTm is adapted: <ul id="ul0012" list-style="dash" compact="compact"><li>to backlog the bandwidth requests BWR1m_H to BWRNm_H, and BWR1m_S to BWRNm_S, originating from respective ones of the bandwidth request means REQ1 to REQN, and related to the same negotiation cycle,</li><li>to determine N first bandwidth grants BWG1m_H to BWGNm_H, and N second bandwidth grants BWG1m_S to BWGNm_S,</li><li>to send the so-determined bandwidth grants to the appropriate input termination modules, along with an identifier of the negotiation cycle to which they relate.</li></ul>
0072Let BWTEn denote a total egress bandwidth available at the output termination module Om.
0073In a preferred embodiment of the present invention, BWTEm is determined as being the total bandwidth available at the egress access port via which the output termination module Om is coupled to the switch core fabric SW.
0074The bandwidth grant means GRANTm grants bandwidth as follows: <ul id="ul0013" list-style="dash" compact="compact"><li>The bandwidth requests BWR1m_H to BWRNm_H are first fulfilled: <ul id="ul0014" list-style="dash" compact="compact"><li>If <maths id="math0010" num=""><math display="inline"><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi mathvariant="normal">n</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="normal">N</mi></munderover><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">H</mi></mrow></mstyle><mo>≤</mo><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">T</mi><mi mathvariant="normal">E</mi><mi mathvariant="normal">m</mi></mrow></math><img file="EP1526686B1_D0010.tif" /></maths> then BWGnm_H = BWRnm_H, satisfying the relation <maths id="math0011" num=""><math display="inline"><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi mathvariant="normal">n</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="normal">N</mi></munderover><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">G</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">H</mi></mrow></mstyle><mo>≤</mo><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">T</mi><mi mathvariant="normal">E</mi><mi mathvariant="normal">m</mi><mo>.</mo></mrow></math><img file="EP1526686B1_D0011.tif" /></maths></li><li>If <maths id="math0012" num=""><math display="inline"><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi mathvariant="normal">n</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="normal">N</mi></munderover><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">H</mi></mrow></mstyle><mo>></mo><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">T</mi><mi mathvariant="normal">E</mi><mi mathvariant="normal">m</mi></mrow></math><img file="EP1526686B1_D0012.tif" /></maths> then <maths id="math0013" num=""><math display="inline"><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">G</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">H</mi><mo>=</mo><mfrac><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">H</mi></mrow><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi mathvariant="normal">n</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="normal">N</mi></munderover><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">H</mi></mrow></mstyle></mrow></mfrac><mo>×</mo><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">T</mi><mi mathvariant="normal">E</mi><mi mathvariant="normal">m</mi><mo>≤</mo><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">H</mi><mo>,</mo></mrow></math><img file="EP1526686B1_D0013.tif" /></maths> satisfying the relation <maths id="math0014" num=""><math display="inline"><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi mathvariant="normal">n</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="normal">N</mi></munderover><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">G</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">H</mi></mrow></mstyle><mo>=</mo><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">T</mi><mi mathvariant="normal">E</mi><mi mathvariant="normal">m</mi><mo>.</mo></mrow></math><img file="EP1526686B1_D0014.tif" /></maths></li></ul></li><li>The bandwidth requests BWR1m_S to BWRNm_S are next fulfilled with the remaining bandwidth <maths id="math0015" num=""><math display="inline"><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">T</mi><mi mathvariant="normal">E</mi><mi mathvariant="normal">m</mi><mo>−</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi mathvariant="normal">n</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="normal">N</mi></munderover><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">G</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">H</mi></mrow></mstyle><mo>,</mo></mrow></math><img file="EP1526686B1_D0015.tif" /></maths>, if any: <ul id="ul0015" list-style="dash" compact="compact"><li>If <maths id="math0016" num=""><math display="inline"><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi mathvariant="normal">n</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="normal">N</mi></munderover><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">S</mi></mrow></mstyle><mo>≤</mo><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">T</mi><mi mathvariant="normal">E</mi><mi mathvariant="normal">m</mi><mo>−</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi mathvariant="normal">n</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="normal">N</mi></munderover><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">G</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">H</mi></mrow></mstyle></mrow></math><img file="EP1526686B1_D0016.tif" /></maths> then BWGnm_S = BWRnm_S, satisfying the relation <maths id="math0017" num=""><math display="inline"><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi mathvariant="normal">n</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="normal">N</mi></munderover><mrow><mrow><mo>(</mo><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">G</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">H</mi><mo>+</mo><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">G</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">S</mi></mrow><mo>)</mo></mrow></mrow></mstyle><mo>≤</mo><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">T</mi><mi mathvariant="normal">E</mi><mi mathvariant="normal">m</mi><mo>.</mo></mrow></math><img file="EP1526686B1_D0017.tif" /></maths></li><li>If <maths id="math0018" num=""><math display="inline"><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi mathvariant="normal">n</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="normal">N</mi></munderover><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">S</mi></mrow></mstyle><mo>></mo><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">T</mi><mi mathvariant="normal">E</mi><mi mathvariant="normal">m</mi><mo>−</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi mathvariant="normal">n</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="normal">N</mi></munderover><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">G</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">H</mi></mrow></mstyle></mrow></math><img file="EP1526686B1_D0018.tif" /></maths> then <maths id="math0019" num=""><math display="inline"><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">G</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">S</mi><mo>=</mo><mfrac><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">S</mi></mrow><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi mathvariant="normal">n</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="normal">N</mi></munderover><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">S</mi></mrow></mstyle></mrow></mfrac><mo>×</mo><mrow><mo>(</mo><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">T</mi><mi mathvariant="normal">E</mi><mi mathvariant="normal">m</mi><mo>−</mo><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi mathvariant="normal">n</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="normal">N</mi></munderover><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">G</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">H</mi></mrow></mstyle></mrow><mo>)</mo></mrow><mo>≤</mo><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">S</mi><mo>,</mo></mrow></math><img file="EP1526686B1_D0019.tif" /></maths> satisfying the relation <maths id="math0020" num=""><math display="inline"><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi mathvariant="normal">n</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="normal">N</mi></munderover><mrow><mrow><mo>(</mo><mrow><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">G</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">H</mi><mo>+</mo><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">G</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi><mo>_</mo><mi mathvariant="normal">S</mi></mrow><mo>)</mo></mrow></mrow></mstyle><mo>=</mo><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">T</mi><mi mathvariant="normal">E</mi><mi mathvariant="normal">m</mi><mo>.</mo></mrow></math><img file="EP1526686B1_D0020.tif" /></maths></li></ul></li></ul>
0075The ingress scheduler controller CTRLn is adapted to determine during a given period of time, and to put in force during the next period of time, the service rates SRn1 to SRnM of the ingress schedulers ISn1 to lSnM respectively.
0076The service rate SRnm of the scheduler lsnm is determined as follows: <ul id="ul0016" list-style="none" compact="compact"><li>SRnm=BWGnm_S+BWGnm_H, satisfying the relation <maths id="math0021" num=""><math display="inline"><mrow><mstyle displaystyle="true"><munderover><mo>∑</mo><mrow><mi mathvariant="normal">m</mi><mo>=</mo><mn>1</mn></mrow><mi mathvariant="normal">M</mi></munderover><mrow><mi mathvariant="normal">S</mi><mi mathvariant="normal">R</mi><mi mathvariant="normal">n</mi><mi mathvariant="normal">m</mi></mrow></mstyle><mo>≤</mo><mi mathvariant="normal">B</mi><mi mathvariant="normal">W</mi><mi mathvariant="normal">T</mi><mi mathvariant="normal">h</mi></mrow></math><img file="EP1526686B1_D0021.tif" /></maths></li></ul>
0077The ingress scheduler controller CTRLn is further adapted to determine for a given period of time, and to put in force during the next period of time, the service shares SSn11 to SSnMC of the ingress queues IQn_O1_CoS1 to IQn_OM_CoSC.
0078The service share SSnmc of a particular ingress queue IQn_Om_CoSc is determined from the priority allotted to the CoS CoSc, and is weighted by the draining status of the egress queue EQm_CoSc as advertised by the measurement means MEASm.
0079Let Φnmc denote the initial service share allotted to the ingress queue IQn_Om_CoSc.
0080The initial service share is then increased by a pre-determined scaling factor K1 if the draining status DS_EQm_CoSc has the value "below_expectation", and decreased by a pre-determined scaling factor K2 if the draining status DS_EQm_CoSc has the value "at_or_above_expectation": <ul id="ul0017" list-style="none" compact="compact"><li>If DS_ EQm_CoSc = 1 then SSnmc = K1 × Φnmc, with K1 > 1.</li><li>if DS_ EQm_CoSc = 0 then SSnmc = K2 × Φnmc, with K2 ≤ 1.</li></ul>
0081In a preferred embodiment of the present invention, K1 = 8 and K2 = 1.
0082An operation of this embodiment follows. The period of time during which the actual schedule rate of the egress queue is measured, the period of time during which bandwidth requests and grants are determined and agreed on, and the period of time during which the service rate and service share are in forced are subsequent to one another, contiguous, and of an equal duration T. Value for T are typically between 250µs and 600µs. For convenience, periods are indexed from 0 onwards, and each of the foregoing parameters is subscripted with the index of the period during which, or upon completion of which, it is determined.
0083Initially (period index = -1), all the parameters are reset to 0: for all m, n and c, DS_EQm_CoSc<sub>-1</sub> = 0, BWNnmc<sub>-1</sub> = 0, BWRnm_H<sub>-1</sub> = 0, BWRnm_S<sub>-1</sub> = 0, BWGnm_H<sub>-1</sub> = 0, BWGnm_S<sub>-1</sub> = 0, SRnm<sub>-1</sub> = 0 and SSnmc<sub>-1</sub> = 0.
0084Upon completion of period t, t being an index ranging from o onwards, the measurement means MEAS1 to MEASM determine the draining status of all the egress queues, thereby determining DS_EQm_CoSc<sub>t</sub>. During the same period, the bandwidth request means REQ1 to REQN measure the incoming traffic at every ingress queue, thereby determining BWNnmc<sub>t</sub>.
0085During period t+1, the measurement means MEASI to MEASM advertises DS_EQm_CoSc<sub>t</sub> to the bandwidth request means REQ1 to REQN and to the ingress scheduler controller CTRL1 to CTRLN. Next but still during the same period, the bandwidth request means REQ1 to REQN determine BWRnm_H<sub>t+1</sub> and BWRnm_S<sub>t+1</sub> from BWNnmc, and DS_EQm_CoSc<sub>t</sub>. Next but still during the same period, the bandwidth grant means CPANT1 to GRANTM determine BWGnm_H<sub>t+1</sub> and BWGnm_S<sub>t+1</sub> from BWRnm_H<sub>t+1</sub> and BWRnm_S<sub>t+1</sub>. Next but still during the same period, the ingress scheduler controllers CTRL1 to CTRLN determine SRnm<sub>t+1</sub> from BWGnm_H<sub>t+1</sub> and BWGnm_S<sub>t+1</sub>, and SSnmC<sub>t+1</sub> from Φnmc and DS_EQm_CoSc<sub>t</sub>.
0086During period t+2, the ingress schedulers CTRL1 to CTRLN put the service rates SRnm<sub>t+1</sub> and the service shares SSnmc<sub>t+1</sub> in force in the ingress schedulers, thereby achieving the object of the present invention.
0087In an alternative embodiment of the present invention (not shown), the switch core fabric SW gives precedence to data units stamped as high-priority traffic over data units stamped as low-priority traffic. The switch core fabric SW further implements 2 distinct back-pressure signals for low and high priority traffic.
0088The input termination module In further accommodates a stamping means STMPn coupled to the ingress schedulers ISn1 to lSnM and to the switch core fabric SW, and externally coupled to the measurement means MEAS1 to MEASM.
0089The stamping means STMPn is adapted to stamp fixed length packets bound to egress queues, the draining status of which has the value "below_expectation", as high-priority traffic, and to stamp fixed length packets bound to egress queues, the draining status of which has the value "at_or_above_expectation", as low-priority traffic, thereby achieving the object of the present invention.
0090In still an alternative embodiment of the present invention (not shown), the draining status is a 3 state variable, the values of which are "at_or_above_expectation" (0), "below_expectation" (1) and "very_below_expectation" (2).
0091The measurement means MEASm makes use of 2 thresholds when comparing the actual schedule rate against the expected schedule rate (e.g. 95% and 50% of the expected schedule rate).
0092The bandwidth request means REQn determines first, second and third aggregate bandwidth requests for each draining status value. The bandwidth grant means GRANTm grants bandwidth by giving precedence to the first, next second, next third bandwidth requests.
0093The ingress schedulers CTRLn adjusts the service shares of the ingress queues by making use of three scaling factors.
0094In still an alternative embodiment of the present invention, the bandwidth request means REQ1 to REQN, and/or the bandwidth grant/means GRANT1 to GRANTM, and/or the ingress scheduler controllers CTRL1 to CTRLN are partly/wholly centrally implemented.
0095A final remark is that embodiments of the present invention are described above in terms of functional, blocks. From the functional description of these blocks, given above, it will be apparent for a person skilled in the art of designing electronic devices how embodiments of these blocks can be manufactured with well-known electronic components. A detailed architecture of the contents of the functional blocks hence is not given.
0096While the principles of the invention have been described above in connection with specific apparatus, it is to be clearly understood that this description is made only by way of example and not as a limitation on the scope of the invention, as defined in the appended claims.
24 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24
Every citation, both ways
| Document | Relation | Office |
|---|---|---|
| EP1195953A | Cites | European Patent Office (EPO) |
| US2003103450A1 | Cites | United States of America |
8 members in 4 offices
Priority claims2
| Document | Office | Kind | Date |
|---|---|---|---|
| 03292613 | European Patent Office (EPO) | A | |
| EP20030292613 | – | – | – |
Members8
| Document | Office | Kind | |
|---|---|---|---|
| US2005083920A1 | United States of America | A1 | |
| EP1526686A1 | European Patent Office (EPO) | A1 | |
| EP1526686B1This record | European Patent Office (EPO) | B1 | |
| AT323363T | Austria | T | |
| ATE323363T1 | Austria | T1 | |
| DE60304580D1 | Germany | D1 | |
| DE60304580T2 | Germany | T2 | |
| US7522624B2 | United States of America | B2 |
57 legal events, as 6 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Notification of lapseLapsedST | ST | FR | |
| Gb: european patent ceased through non-payment of renewal feeCeasedGBPC | GBPC | EP | |
| Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal feeWithdrawnR119 | R119 | DE | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Fee paymentPLFP | PLFP | FR | |
| Lien (pledge) cancelledRG | RG | FR | |
| Lien (pledge) constitutedGC | GC | FR | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| No opposition filedOpposition26N | 26N | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Fr: translation filedET | ET | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Patent ceasedCeasedPL | PL | CH | |
| Nl: lapsed or annulled due to failure to fulfill the requirements of art. 29p and 29m of the patents actLapsedNLV1 | NLV1 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| European patents granted designating irelandGrantedFG4D | FG4D | IE | |
| Corresponds to:REF | REF | EP | |
| European patent takes effect as a national patent in ch/liEP | EP | CH | |
| Designated contracting statesAK | AK | EP | |
| European patent grantedGrantedFG4D | FG4D | GB | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Grant fee paidORIGINAL CODE: EPIDOSNIGR3GRAS | GRAS | EP | |
| Designation fees paidAKX | AKX | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOSNIGR1GRAP | GRAP | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Request for extension of the european patentAX | AX | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 1526686
- Publication, DOCDB
- 1526686
- Publication, EPODOC
- EP1526686
- Application
- 3292613
- Application, DOCDB
- 03292613
- Application, EPODOC
- EP20030292613
Titles3
- German
- Schalteinheit mit skalierbarer und "QOS"-berücksichtigender Datenflusssteuerung
- English
- Switching unit with scalable and QoS aware flow control
- French
- Unité de commutation avec régulation de flux adaptative et prenant en compte la qualité de service
Classification
- CPC, 8
- H04L47/10
- H04L47/522
- H04L47/6215
- H04L47/623
- H04L47/6255
- H04L49/101
- H04L49/254
- H04L47/50
- IPC, 2
- H04L12 56
- H04L12 54
Designated states1
- Contracting states, 1
- Türkiye