I'm reading through my notes to prepare of my next exam, and I'm having trouble understanding the rules of CB Policing as they are layed out in the book -specifically when it comes to the question of what tokens are removed if the Exceed action is to be perform for a Single-Rate Three-Color (Dual buckets) scenario.
I understand the rules to be as follows:
A packet with x bytes in it arrives.
- If x <= The number of tokens in the Bc bucket - then x bytes are removed and the conform action is performed.
- The number of tokens in the Bc bucket < x <=The number of tokens in the Be bucket - then x bytes are removed from the Be bucket and the exceed action is performed.
- If x > The number of tokens in the Be bucket - then no tokens are removed and the violate action is performed.
Now that seems pretty simple at first glance, but what happens if a 51 byte packet arrives and the size of the Bc bucket is 50, and it is full, and the size of the Be bucket is 100 and it is a quarter full (25 tokens).
It doesn't conform. 51> 50. But it doesn't exceed either. Since 51>25. It looks like this would violate.
But there are 75 tokens available to be used... So the policer can send up to 75 bytes.... right?
Should the exceed rule not then be the following:
- The number of tokens in the Bc bucket < x <= (The number of tokens in the Bc bucket + The number of tokens in the Be bucket) - then x bytes are removed from the Be and Bc buckets (emptying the Bc bucket first) and the exceed action is performed.
Is that right or have I misunderstood?
I seems to me that if the rules as I initially stated them are true, the the Be bucket would have to be larger that the Bc bucket otherwise it would always fail its check if the Bc bucket did. I suppose what I am asking, is whether or not the Be bucket tokens are considered together, with the Bc bucket tokens, or independently.
I hope that makes sense. Thanks in advance for any help :)