https://en.wikipedia.org/w/index.php?action=history&feed=atom&title=Generic_cell_rate_algorithmGeneric cell rate algorithm - Revision history2025-05-31T03:50:08ZRevision history for this page on the wikiMediaWiki 1.45.0-wmf.3https://en.wikipedia.org/w/index.php?title=Generic_cell_rate_algorithm&diff=1239306331&oldid=prevKvng: Adding short description: "Network scheduling algorithm used in ATM"2024-08-08T14:55:26Z<p>Adding <a href="/wiki/Wikipedia:Short_description" title="Wikipedia:Short description">short description</a>: "Network scheduling algorithm used in ATM"</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 14:55, 8 August 2024</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 1:</td>
<td colspan="2" class="diff-lineno">Line 1:</td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>{{Short description|Network scheduling algorithm used in ATM}}</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The '''generic cell rate algorithm''' (GCRA) is a [[leaky bucket]]-type [[scheduling algorithm]] for the [[network scheduler]] that is used in [[Asynchronous Transfer Mode]] (ATM) networks.<ref name="ATMF-GCRA"/><ref name="ITU-T-GCRA"/> It is used to measure the timing of [[Asynchronous Transfer Mode#The structure of an ATM cell|cells]] on [[Virtual circuit|virtual channel]]s (VCs) and or [[Virtual Paths]] (VPs) against [[Bandwidth (signal processing)|bandwidth]] and [[jitter]] limits contained in a [[traffic contract]] for the VC or VP to which the cells belong. Cells that do not conform to the limits given by the traffic contract may then be re-timed (delayed) in [[traffic shaping]], or may be dropped (discarded) or reduced in priority (demoted) in [[Traffic policing (communications)|traffic policing]]. Nonconforming cells that are reduced in priority may then be dropped, in preference to higher priority cells, by downstream components in the network that are experiencing congestion. Alternatively they may reach their destination (VC or VP termination) if there is enough capacity for them, despite them being excess cells as far as the contract is concerned: see [[priority control]]<!-- another page in need of a rewrite -->.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The '''generic cell rate algorithm''' (GCRA) is a [[leaky bucket]]-type [[scheduling algorithm]] for the [[network scheduler]] that is used in [[Asynchronous Transfer Mode]] (ATM) networks.<ref name="ATMF-GCRA"/><ref name="ITU-T-GCRA"/> It is used to measure the timing of [[Asynchronous Transfer Mode#The structure of an ATM cell|cells]] on [[Virtual circuit|virtual channel]]s (VCs) and or [[Virtual Paths]] (VPs) against [[Bandwidth (signal processing)|bandwidth]] and [[jitter]] limits contained in a [[traffic contract]] for the VC or VP to which the cells belong. Cells that do not conform to the limits given by the traffic contract may then be re-timed (delayed) in [[traffic shaping]], or may be dropped (discarded) or reduced in priority (demoted) in [[Traffic policing (communications)|traffic policing]]. Nonconforming cells that are reduced in priority may then be dropped, in preference to higher priority cells, by downstream components in the network that are experiencing congestion. Alternatively they may reach their destination (VC or VP termination) if there is enough capacity for them, despite them being excess cells as far as the contract is concerned: see [[priority control]]<!-- another page in need of a rewrite -->.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
</table>Kvnghttps://en.wikipedia.org/w/index.php?title=Generic_cell_rate_algorithm&diff=1233895172&oldid=prevTurtlecrown: /* Dual Leaky Bucket Controller */ add wikilink2024-07-11T13:29:16Z<p><span class="autocomment">Dual Leaky Bucket Controller: </span> add wikilink</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 13:29, 11 July 2024</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 50:</td>
<td colspan="2" class="diff-lineno">Line 50:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>If the cells arrive in a burst at a rate higher than 1/PCR (MBS cells arrive in less than (MBS - 1)/PCR - ''τ''<sub>''PCR''</sub>), or more than MBS cells arrive at the PCR, or bursts of MBS cells arrive closer than IMT apart, the dual leaky bucket will detect this and delay (shaping) or drop or de-prioritize (policing) enough cells to make the connection conform.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>If the cells arrive in a burst at a rate higher than 1/PCR (MBS cells arrive in less than (MBS - 1)/PCR - ''τ''<sub>''PCR''</sub>), or more than MBS cells arrive at the PCR, or bursts of MBS cells arrive closer than IMT apart, the dual leaky bucket will detect this and delay (shaping) or drop or de-prioritize (policing) enough cells to make the connection conform.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Figure 3 shows the reference algorithm for SCR and PCR control for both Cell Loss Priority (CLP) values 1 (low) and 0 (high) cell flows, i.e. where the cells with both priority values are treated the same. Similar reference algorithms where the high and low priority cells are treated differently are also given in Annex A to I.371&nbsp;.<ref name="ITU-T-GCRA"/></div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Figure 3 shows the reference algorithm for SCR and PCR control for both <ins style="font-weight: bold; text-decoration: none;">[[</ins>Cell Loss Priority<ins style="font-weight: bold; text-decoration: none;">]]</ins> (CLP) values 1 (low) and 0 (high) cell flows, i.e. where the cells with both priority values are treated the same. Similar reference algorithms where the high and low priority cells are treated differently are also given in Annex A to I.371&nbsp;.<ref name="ITU-T-GCRA"/></div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==See also==</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>==See also==</div></td>
</tr>
</table>Turtlecrownhttps://en.wikipedia.org/w/index.php?title=Generic_cell_rate_algorithm&diff=1150332743&oldid=prevKvng: added Category:Asynchronous Transfer Mode using HotCat2023-04-17T15:05:26Z<p>added <a href="/wiki/Category:Asynchronous_Transfer_Mode" title="Category:Asynchronous Transfer Mode">Category:Asynchronous Transfer Mode</a> using <a href="/wiki/Wikipedia:HC" class="mw-redirect" title="Wikipedia:HC">HotCat</a></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 15:05, 17 April 2023</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 74:</td>
<td colspan="2" class="diff-lineno">Line 74:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Teletraffic]]</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Teletraffic]]</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Network scheduling algorithms]]</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Network scheduling algorithms]]</div></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Asynchronous Transfer Mode]]</div></td>
</tr>
</table>Kvnghttps://en.wikipedia.org/w/index.php?title=Generic_cell_rate_algorithm&diff=1013924784&oldid=prevBeland: convert special characters (via WP:JWB)2021-03-24T06:02:16Z<p>convert special characters (via <a href="/wiki/Wikipedia:JWB" class="mw-redirect" title="Wikipedia:JWB">WP:JWB</a>)</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 06:02, 24 March 2021</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 15:</td>
<td colspan="2" class="diff-lineno">Line 15:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>However, while there are possible advantages in understanding this leaky bucket description, it does not necessarily result in the best (fastest) code if implemented directly. This is evidenced by the relative number of actions to be performed in the flow diagrams for the two descriptions (figure 1).</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>However, while there are possible advantages in understanding this leaky bucket description, it does not necessarily result in the best (fastest) code if implemented directly. This is evidenced by the relative number of actions to be performed in the flow diagrams for the two descriptions (figure 1).</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The description in terms of the continuous state leaky bucket algorithm is given by the ITU-T as follows: <del style="font-weight: bold; text-decoration: none;">“The</del> continuous-state leaky bucket can be viewed as a finite capacity bucket whose real-valued content drains out at a continuous rate of 1 unit of content per time unit and whose content is increased by the increment ''T'' for each conforming cell... If at a cell arrival the content of the bucket is less than or equal to the limit value ''<del style="font-weight: bold; text-decoration: none;">&tau;</del>'', then the cell is conforming; otherwise, the cell is non-conforming. The capacity of the bucket (the upper bound of the counter) is (''T'' + ''<del style="font-weight: bold; text-decoration: none;">&tau;</del>'')<del style="font-weight: bold; text-decoration: none;">”</del>&nbsp;.<ref name="ITU-T-GCRA"/> It is worth noting that because the leak is one unit of content per unit time, the increment for each cell ''T'' and the limit value ''τ'' are in units of time.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The description in terms of the continuous state leaky bucket algorithm is given by the ITU-T as follows: <ins style="font-weight: bold; text-decoration: none;">"The</ins> continuous-state leaky bucket can be viewed as a finite capacity bucket whose real-valued content drains out at a continuous rate of 1 unit of content per time unit and whose content is increased by the increment ''T'' for each conforming cell... If at a cell arrival the content of the bucket is less than or equal to the limit value ''<ins style="font-weight: bold; text-decoration: none;">τ</ins>'', then the cell is conforming; otherwise, the cell is non-conforming. The capacity of the bucket (the upper bound of the counter) is (''T'' + ''<ins style="font-weight: bold; text-decoration: none;">τ</ins>'')<ins style="font-weight: bold; text-decoration: none;">"</ins>&nbsp;.<ref name="ITU-T-GCRA"/> It is worth noting that because the leak is one unit of content per unit time, the increment for each cell ''T'' and the limit value ''τ'' are in units of time.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Considering the flow diagram of the continuous state leaky bucket algorithm, in which ''T'' is the emission interval and ''τ'' is the limit value: What happens when a cell arrives is that the state of the bucket is calculated from its state when the last conforming cell arrived, ''X'', and how much has leaked out in the interval, ''t<sub>a</sub>'' – ''LCT''. This current bucket value is then stored in ''X' '' and compared with the limit value ''τ''. If the value in ''X' '' is not greater than ''τ'', the cell did not arrive too early and so conforms to the contract parameters; if the value in ''X' '' is greater than ''τ'', then it does not conform. If it conforms then, if it conforms because it was late, i.e. the bucket empty (''X' '' <= 0), ''X'' is set to ''T''; if it was early, but not too early, (''τ'' >= ''X' '' > 0), ''X'' is set to ''X' '' + ''T''.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Considering the flow diagram of the continuous state leaky bucket algorithm, in which ''T'' is the emission interval and ''τ'' is the limit value: What happens when a cell arrives is that the state of the bucket is calculated from its state when the last conforming cell arrived, ''X'', and how much has leaked out in the interval, ''t<sub>a</sub>'' – ''LCT''. This current bucket value is then stored in ''X' '' and compared with the limit value ''τ''. If the value in ''X' '' is not greater than ''τ'', the cell did not arrive too early and so conforms to the contract parameters; if the value in ''X' '' is greater than ''τ'', then it does not conform. If it conforms then, if it conforms because it was late, i.e. the bucket empty (''X' '' <= 0), ''X'' is set to ''T''; if it was early, but not too early, (''τ'' >= ''X' '' > 0), ''X'' is set to ''X' '' + ''T''.</div></td>
</tr>
<tr>
<td colspan="2" class="diff-lineno">Line 25:</td>
<td colspan="2" class="diff-lineno">Line 25:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The virtual scheduling algorithm, while not so obviously related to such an easily accessible analogy as the leaky bucket, gives a clearer understanding of what the GCRA does and how it may be best implemented. As a result, direct implementation of this version can result in more compact, and thus faster, code than a direct implementation of the leaky bucket description.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The virtual scheduling algorithm, while not so obviously related to such an easily accessible analogy as the leaky bucket, gives a clearer understanding of what the GCRA does and how it may be best implemented. As a result, direct implementation of this version can result in more compact, and thus faster, code than a direct implementation of the leaky bucket description.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The description in terms of the virtual scheduling algorithm is given by the ITU-T as follows: <del style="font-weight: bold; text-decoration: none;">“The</del> virtual scheduling algorithm updates a Theoretical Arrival Time (TAT), which is the 'nominal' arrival time of the cell assuming cells are sent equally spaced at an emission interval of ''T'' corresponding to the cell rate ''Λ'' [= 1/''T''] when the source is active. If the actual arrival time of a cell is not 'too early' relative to the ''TAT'' and tolerance ''τ'' associated to the cell rate, i.e. if the actual arrival time is after its theoretical arrive time minus the limit value (t<sub>a</sub> > ''TAT'' – ''τ''), then the cell is conforming; otherwise, the cell is nonconforming"&nbsp;.<ref name="ITU-T-GCRA"/> If the cell is nonconforming then ''TAT'' is left unchanged. If the cell is conforming, and arrived before its TAT (equivalent to the bucket not being empty but being less than the limit value), then the next cell's ''TAT'' is simply ''TAT'' + ''T''. However, if a cell arrives after its ''TAT'', then the ''TAT'' for the next cell is calculated from this cell's arrival time, not its ''TAT''. This prevents credit building up when there is a gap in the transmission (equivalent to the bucket becoming less than empty).</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The description in terms of the virtual scheduling algorithm is given by the ITU-T as follows: <ins style="font-weight: bold; text-decoration: none;">"The</ins> virtual scheduling algorithm updates a Theoretical Arrival Time (TAT), which is the 'nominal' arrival time of the cell assuming cells are sent equally spaced at an emission interval of ''T'' corresponding to the cell rate ''Λ'' [= 1/''T''] when the source is active. If the actual arrival time of a cell is not 'too early' relative to the ''TAT'' and tolerance ''τ'' associated to the cell rate, i.e. if the actual arrival time is after its theoretical arrive time minus the limit value (t<sub>a</sub> > ''TAT'' – ''τ''), then the cell is conforming; otherwise, the cell is nonconforming"&nbsp;.<ref name="ITU-T-GCRA"/> If the cell is nonconforming then ''TAT'' is left unchanged. If the cell is conforming, and arrived before its TAT (equivalent to the bucket not being empty but being less than the limit value), then the next cell's ''TAT'' is simply ''TAT'' + ''T''. However, if a cell arrives after its ''TAT'', then the ''TAT'' for the next cell is calculated from this cell's arrival time, not its ''TAT''. This prevents credit building up when there is a gap in the transmission (equivalent to the bucket becoming less than empty).</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>This version of the algorithm works because ''τ'' defines how much earlier a cell can arrive than it would if there were no jitter: see [[leaky bucket#Delay Variation Tolerance|leaky bucket: delay variation tolerance]]. Another way to see it is that ''TAT'' represents when the bucket will next empty, so a time ''τ'' before that is when the bucket is exactly filled to the limit value. So, in either view, if it arrives more than ''τ'' before ''TAT'', it is too early to conform.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>This version of the algorithm works because ''τ'' defines how much earlier a cell can arrive than it would if there were no jitter: see [[leaky bucket#Delay Variation Tolerance|leaky bucket: delay variation tolerance]]. Another way to see it is that ''TAT'' represents when the bucket will next empty, so a time ''τ'' before that is when the bucket is exactly filled to the limit value. So, in either view, if it arrives more than ''τ'' before ''TAT'', it is too early to conform.</div></td>
</tr>
</table>Belandhttps://en.wikipedia.org/w/index.php?title=Generic_cell_rate_algorithm&diff=956672753&oldid=prev23.241.155.122: /* Fix the link to leaky bucket maximum burst size chapter */2020-05-14T17:06:34Z<p><span class="autocomment">Fix the link to leaky bucket maximum burst size chapter</span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 17:06, 14 May 2020</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 46:</td>
<td colspan="2" class="diff-lineno">Line 46:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Image:Dual LBC.JPG|thumb|500px| Figure 3: Reference algorithm for Sustainable Cell Rate (SCR) and Peak Cell Rate (PCR) for CLP = 0 + 1 cell flow]]</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Image:Dual LBC.JPG|thumb|500px| Figure 3: Reference algorithm for Sustainable Cell Rate (SCR) and Peak Cell Rate (PCR) for CLP = 0 + 1 cell flow]]</div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>In the dual leaky bucket, one bucket is applied to the traffic with an emission interval of 1/SCR and a limit value ''τ''<sub>''SCR''</sub> that gives an MBS that is the number of cells in the message: see [[leaky bucket#Maximum <del style="font-weight: bold; text-decoration: none;">Burst</del> <del style="font-weight: bold; text-decoration: none;">Size</del>]]. The second bucket has an emission interval of 1/PCR and a limit value ''τ''<sub>''PCR''</sub> that allows for the CDV up to that point in the path of the connection: see [[leaky bucket#Delay Variation Tolerance]]. Cells are then allowed through at the PCR, with jitter of ''τ''<sub>''PCR''</sub>, up to a maximum number of MBS cells. The next burst of MBS cells will then be allowed through starting MBS x 1/SCR after the first.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>In the dual leaky bucket, one bucket is applied to the traffic with an emission interval of 1/SCR and a limit value ''τ''<sub>''SCR''</sub> that gives an MBS that is the number of cells in the message: see [[leaky bucket#Maximum <ins style="font-weight: bold; text-decoration: none;">burst</ins> <ins style="font-weight: bold; text-decoration: none;">size</ins>]]. The second bucket has an emission interval of 1/PCR and a limit value ''τ''<sub>''PCR''</sub> that allows for the CDV up to that point in the path of the connection: see [[leaky bucket#Delay Variation Tolerance]]. Cells are then allowed through at the PCR, with jitter of ''τ''<sub>''PCR''</sub>, up to a maximum number of MBS cells. The next burst of MBS cells will then be allowed through starting MBS x 1/SCR after the first.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>If the cells arrive in a burst at a rate higher than 1/PCR (MBS cells arrive in less than (MBS - 1)/PCR - ''τ''<sub>''PCR''</sub>), or more than MBS cells arrive at the PCR, or bursts of MBS cells arrive closer than IMT apart, the dual leaky bucket will detect this and delay (shaping) or drop or de-prioritize (policing) enough cells to make the connection conform.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>If the cells arrive in a burst at a rate higher than 1/PCR (MBS cells arrive in less than (MBS - 1)/PCR - ''τ''<sub>''PCR''</sub>), or more than MBS cells arrive at the PCR, or bursts of MBS cells arrive closer than IMT apart, the dual leaky bucket will detect this and delay (shaping) or drop or de-prioritize (policing) enough cells to make the connection conform.</div></td>
</tr>
</table>23.241.155.122https://en.wikipedia.org/w/index.php?title=Generic_cell_rate_algorithm&diff=796796525&oldid=prevJulian wang.666: /* Virtual scheduling description */2017-08-23T03:05:48Z<p><span class="autocomment">Virtual scheduling description</span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 03:05, 23 August 2017</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 25:</td>
<td colspan="2" class="diff-lineno">Line 25:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The virtual scheduling algorithm, while not so obviously related to such an easily accessible analogy as the leaky bucket, gives a clearer understanding of what the GCRA does and how it may be best implemented. As a result, direct implementation of this version can result in more compact, and thus faster, code than a direct implementation of the leaky bucket description.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The virtual scheduling algorithm, while not so obviously related to such an easily accessible analogy as the leaky bucket, gives a clearer understanding of what the GCRA does and how it may be best implemented. As a result, direct implementation of this version can result in more compact, and thus faster, code than a direct implementation of the leaky bucket description.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The description in terms of the <del style="font-weight: bold; text-decoration: none;">continuous</del> <del style="font-weight: bold; text-decoration: none;">state leaky bucket</del> algorithm is given by the ITU-T as follows: “The virtual scheduling algorithm updates a Theoretical Arrival Time (TAT), which is the 'nominal' arrival time of the cell assuming cells are sent equally spaced at an emission interval of ''T'' corresponding to the cell rate ''Λ'' [= 1/''T''] when the source is active. If the actual arrival time of a cell is not 'too early' relative to the ''TAT'' and tolerance ''τ'' associated to the cell rate, i.e. if the actual arrival time is after its theoretical arrive time minus the limit value (t<sub>a</sub> > ''TAT'' – ''τ''), then the cell is conforming; otherwise, the cell is nonconforming"&nbsp;.<ref name="ITU-T-GCRA"/> If the cell is nonconforming then ''TAT'' is left unchanged. If the cell is conforming, and arrived before its TAT (equivalent to the bucket not being empty but being less than the limit value), then the next cell's ''TAT'' is simply ''TAT'' + ''T''. However, if a cell arrives after its ''TAT'', then the ''TAT'' for the next cell is calculated from this cell's arrival time, not its ''TAT''. This prevents credit building up when there is a gap in the transmission (equivalent to the bucket becoming less than empty).</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The description in terms of the <ins style="font-weight: bold; text-decoration: none;">virtual</ins> <ins style="font-weight: bold; text-decoration: none;">scheduling</ins> algorithm is given by the ITU-T as follows: “The virtual scheduling algorithm updates a Theoretical Arrival Time (TAT), which is the 'nominal' arrival time of the cell assuming cells are sent equally spaced at an emission interval of ''T'' corresponding to the cell rate ''Λ'' [= 1/''T''] when the source is active. If the actual arrival time of a cell is not 'too early' relative to the ''TAT'' and tolerance ''τ'' associated to the cell rate, i.e. if the actual arrival time is after its theoretical arrive time minus the limit value (t<sub>a</sub> > ''TAT'' – ''τ''), then the cell is conforming; otherwise, the cell is nonconforming"&nbsp;.<ref name="ITU-T-GCRA"/> If the cell is nonconforming then ''TAT'' is left unchanged. If the cell is conforming, and arrived before its TAT (equivalent to the bucket not being empty but being less than the limit value), then the next cell's ''TAT'' is simply ''TAT'' + ''T''. However, if a cell arrives after its ''TAT'', then the ''TAT'' for the next cell is calculated from this cell's arrival time, not its ''TAT''. This prevents credit building up when there is a gap in the transmission (equivalent to the bucket becoming less than empty).</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>This version of the algorithm works because ''τ'' defines how much earlier a cell can arrive than it would if there were no jitter: see [[leaky bucket#Delay Variation Tolerance|leaky bucket: delay variation tolerance]]. Another way to see it is that ''TAT'' represents when the bucket will next empty, so a time ''τ'' before that is when the bucket is exactly filled to the limit value. So, in either view, if it arrives more than ''τ'' before ''TAT'', it is too early to conform.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>This version of the algorithm works because ''τ'' defines how much earlier a cell can arrive than it would if there were no jitter: see [[leaky bucket#Delay Variation Tolerance|leaky bucket: delay variation tolerance]]. Another way to see it is that ''TAT'' represents when the bucket will next empty, so a time ''τ'' before that is when the bucket is exactly filled to the limit value. So, in either view, if it arrives more than ''τ'' before ''TAT'', it is too early to conform.</div></td>
</tr>
</table>Julian wang.666https://en.wikipedia.org/w/index.php?title=Generic_cell_rate_algorithm&diff=796626321&oldid=prevJulian wang.666: /* Leaky bucket description */2017-08-22T03:16:37Z<p><span class="autocomment">Leaky bucket description</span></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 03:16, 22 August 2017</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 17:</td>
<td colspan="2" class="diff-lineno">Line 17:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The description in terms of the continuous state leaky bucket algorithm is given by the ITU-T as follows: “The continuous-state leaky bucket can be viewed as a finite capacity bucket whose real-valued content drains out at a continuous rate of 1 unit of content per time unit and whose content is increased by the increment ''T'' for each conforming cell... If at a cell arrival the content of the bucket is less than or equal to the limit value ''&tau;'', then the cell is conforming; otherwise, the cell is non-conforming. The capacity of the bucket (the upper bound of the counter) is (''T'' + ''&tau;'')”&nbsp;.<ref name="ITU-T-GCRA"/> It is worth noting that because the leak is one unit of content per unit time, the increment for each cell ''T'' and the limit value ''τ'' are in units of time.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>The description in terms of the continuous state leaky bucket algorithm is given by the ITU-T as follows: “The continuous-state leaky bucket can be viewed as a finite capacity bucket whose real-valued content drains out at a continuous rate of 1 unit of content per time unit and whose content is increased by the increment ''T'' for each conforming cell... If at a cell arrival the content of the bucket is less than or equal to the limit value ''&tau;'', then the cell is conforming; otherwise, the cell is non-conforming. The capacity of the bucket (the upper bound of the counter) is (''T'' + ''&tau;'')”&nbsp;.<ref name="ITU-T-GCRA"/> It is worth noting that because the leak is one unit of content per unit time, the increment for each cell ''T'' and the limit value ''τ'' are in units of time.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>Considering the flow diagram of the continuous state leaky bucket algorithm, in which ''T'' is the emission interval and ''τ'' is the limit value: What happens when a cell arrives is that the state of the bucket is calculated from its state when the last conforming cell arrived, ''X'', and how much has leaked out in the interval, ''t<sub>a</sub>'' – ''LCT''. This current bucket value is then stored in ''X' '' and compared with the limit value ''τ''. If the value in ''X' '' is not greater than ''τ'', the cell did not arrive too early and so conforms to the contract parameters; if the value in ''X' '' is greater than ''τ'', then it does not conform. If it conforms then, if it conforms because it was late, i.e. the bucket empty (''X' '' <= 0), ''X'' is set to ''T''; if it was early, but not too early, (''τ'' >= ''X' '' > 0), ''X'' is set to ''X' '' + ''<del style="font-weight: bold; text-decoration: none;">τ</del>''.</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>Considering the flow diagram of the continuous state leaky bucket algorithm, in which ''T'' is the emission interval and ''τ'' is the limit value: What happens when a cell arrives is that the state of the bucket is calculated from its state when the last conforming cell arrived, ''X'', and how much has leaked out in the interval, ''t<sub>a</sub>'' – ''LCT''. This current bucket value is then stored in ''X' '' and compared with the limit value ''τ''. If the value in ''X' '' is not greater than ''τ'', the cell did not arrive too early and so conforms to the contract parameters; if the value in ''X' '' is greater than ''τ'', then it does not conform. If it conforms then, if it conforms because it was late, i.e. the bucket empty (''X' '' <= 0), ''X'' is set to ''T''; if it was early, but not too early, (''τ'' >= ''X' '' > 0), ''X'' is set to ''X' '' + ''<ins style="font-weight: bold; text-decoration: none;">T</ins>''.</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Thus the flow diagram mimics the leaky bucket analogy (used as a meter) directly, with ''X'' and ''X' '' acting as the analogue of the bucket.</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>Thus the flow diagram mimics the leaky bucket analogy (used as a meter) directly, with ''X'' and ''X' '' acting as the analogue of the bucket.</div></td>
</tr>
</table>Julian wang.666https://en.wikipedia.org/w/index.php?title=Generic_cell_rate_algorithm&diff=795607801&oldid=prevGraham.Fountain: /* Leaky bucket description */ Change links to match changes in LB page2017-08-15T09:42:10Z<p><span class="autocomment">Leaky bucket description: </span> Change links to match changes in LB page</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 09:42, 15 August 2017</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 11:</td>
<td colspan="2" class="diff-lineno">Line 11:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>===Leaky bucket description===</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>===Leaky bucket description===</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>The description in terms of the [[leaky bucket]] algorithm may be the easier of the two to understand from a conceptual perspective, as it is based on a simple analogy of a bucket with a leak: see figure 1 on the [[leaky bucket]] page. However, there has been confusion in the literature over the application of the leaky bucket analogy to produce an algorithm, which has crossed over to the GCRA. The GCRA should be considered as a version of [[leaky bucket#<del style="font-weight: bold; text-decoration: none;">The Leaky Bucket Algorithm as</del> a <del style="font-weight: bold; text-decoration: none;">Meter</del>|the leaky bucket as a meter]] rather than [[leaky bucket#<del style="font-weight: bold; text-decoration: none;">The Leaky Bucket Algorithm as</del> a <del style="font-weight: bold; text-decoration: none;">Queue</del>|the leaky bucket as a queue]].</div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>The description in terms of the [[leaky bucket]] algorithm may be the easier of the two to understand from a conceptual perspective, as it is based on a simple analogy of a bucket with a leak: see figure 1 on the [[leaky bucket]] page. However, there has been confusion in the literature over the application of the leaky bucket analogy to produce an algorithm, which has crossed over to the GCRA. The GCRA should be considered as a version of [[leaky bucket#<ins style="font-weight: bold; text-decoration: none;">As</ins> a <ins style="font-weight: bold; text-decoration: none;">meter</ins>|the leaky bucket as a meter]] rather than [[leaky bucket#<ins style="font-weight: bold; text-decoration: none;">As</ins> a <ins style="font-weight: bold; text-decoration: none;">queue</ins>|the leaky bucket as a queue]].</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>However, while there are possible advantages in understanding this leaky bucket description, it does not necessarily result in the best (fastest) code if implemented directly. This is evidenced by the relative number of actions to be performed in the flow diagrams for the two descriptions (figure 1).</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>However, while there are possible advantages in understanding this leaky bucket description, it does not necessarily result in the best (fastest) code if implemented directly. This is evidenced by the relative number of actions to be performed in the flow diagrams for the two descriptions (figure 1).</div></td>
</tr>
</table>Graham.Fountainhttps://en.wikipedia.org/w/index.php?title=Generic_cell_rate_algorithm&diff=786948426&oldid=prevMagioladitis: /* References */clean up, replaced: ISBN 0-13-393828-X → {{ISBN|0-13-393828-X}} using AWB (12151)2017-06-22T14:52:49Z<p><span class="autocomment">References: </span>clean up, replaced: ISBN 0-13-393828-X → {{ISBN|0-13-393828-X}} using <a href="/wiki/Wikipedia:AWB" class="mw-redirect" title="Wikipedia:AWB">AWB</a> (12151)</p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 14:52, 22 June 2017</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 67:</td>
<td colspan="2" class="diff-lineno">Line 67:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><ref name="UPC_NPC" >ITU-T, ''Traffic control and congestion control in B ISDN'', Recommendation I.371, International Telecommunication Union, 2004, page 17</ref></div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><ref name="UPC_NPC" >ITU-T, ''Traffic control and congestion control in B ISDN'', Recommendation I.371, International Telecommunication Union, 2004, page 17</ref></div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><ref name="ITU-T-GCRA" >ITU-T, ''Traffic control and congestion control in B ISDN'', Recommendation I.371, International Telecommunication Union, 2004, Annex A, page 87.</ref></div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div><ref name="ITU-T-GCRA" >ITU-T, ''Traffic control and congestion control in B ISDN'', Recommendation I.371, International Telecommunication Union, 2004, Annex A, page 87.</ref></div></td>
</tr>
<tr>
<td class="diff-marker" data-marker="−"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div><ref name="ATMF-GCRA" >ATM Forum, The User Network Interface (UNI), v. 3.1, ISBN<del style="font-weight: bold; text-decoration: none;"> </del>0-13-393828-X, Prentice Hall PTR, 1995.</ref></div></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ref name="ATMF-GCRA" >ATM Forum, The User Network Interface (UNI), v. 3.1, <ins style="font-weight: bold; text-decoration: none;">{{</ins>ISBN<ins style="font-weight: bold; text-decoration: none;">|</ins>0-13-393828-X<ins style="font-weight: bold; text-decoration: none;">}}</ins>, Prentice Hall PTR, 1995.</ref></div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>}}</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>}}</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><br /></td>
</tr>
</table>Magioladitishttps://en.wikipedia.org/w/index.php?title=Generic_cell_rate_algorithm&diff=658460109&oldid=prevKvng: added Category:Network scheduling algorithms using HotCat2015-04-22T15:38:10Z<p>added <a href="/wiki/Category:Network_scheduling_algorithms" title="Category:Network scheduling algorithms">Category:Network scheduling algorithms</a> using <a href="/wiki/Wikipedia:HC" class="mw-redirect" title="Wikipedia:HC">HotCat</a></p>
<table style="background-color: #fff; color: #202122;" data-mw="interface">
<col class="diff-marker" />
<col class="diff-content" />
<col class="diff-marker" />
<col class="diff-content" />
<tr class="diff-title" lang="en">
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">← Previous revision</td>
<td colspan="2" style="background-color: #fff; color: #202122; text-align: center;">Revision as of 15:38, 22 April 2015</td>
</tr><tr>
<td colspan="2" class="diff-lineno">Line 73:</td>
<td colspan="2" class="diff-lineno">Line 73:</td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Networking algorithms]]</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Networking algorithms]]</div></td>
</tr>
<tr>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Teletraffic]]</div></td>
<td class="diff-marker"></td>
<td style="background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Teletraffic]]</div></td>
</tr>
<tr>
<td colspan="2" class="diff-empty diff-side-deleted"></td>
<td class="diff-marker" data-marker="+"></td>
<td style="color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>[[Category:Network scheduling algorithms]]</div></td>
</tr>
</table>Kvng