I've a question related to IOS shaping tools (e.g. CB-shaping and FRTS)...
Consider for instance a default FRTS configuration for a serial interface (frame-relay traffic-shaping configured at interface level):
Access Target Byte Sustain Excess Interval Increment Adapt
VC List Rate Limit bits/int bits/int (ms) (bytes) Active
106 56000 875 7000 0 125 875 -
105 56000 875 7000 0 125 875 -
here Token bucket's size is 7000 bit (7000/8 = 875 Byte) and it is refilled with 7000 bit every Tc = 125 msec interval
Now, I did a simple test with 1500 Byte ping packets train going trough that 'shaped' interface: even if each packet's size is greater than Token bucket's size you can see (entires) packets are forwarded to the destination without any fragmentation
Which is the shaper behaviour in this 'specific' condition ?
>> packets are forwarded to the destination without any fragmentation
A whole packet is sent or a whole packet is delayed.
To send the packet some bytes are borrowed from next Tc interval. After sending the packet at Tc time interval i, the router waits to cumulate enough tokens to send the next packet so next packet is sent at TC time interval i+2.
In average the router is shaping. In a specific Tc interval are sent 1500 bytes or 0 bytes.
Fragmentation is not part of shaping action.
Hope to help
so here the Token bucket 'metaphor' has not to be intended in a strict sense (in other words Token bucket's depth is not fixed at Bc bit). It seems just like a 'deficit' behaviour....
Does it make sense ?
token bucket depth has to reach the packet size for the packet to be transmitted.
In this case it takes more then one Tc to cumulate enough credit to transmit one packet.
The Bc is not the size of the bucket, but it is the filling rate of the bucket it receives 875 credits every Tc time interval.
Hope to help
reading for example http://www.cisco.com/en/US/tech/tk543/tk545/technologies_tech_note09186a00800a3a25.shtml and http://wiki.nil.com/Traffic_shaping_in_Cisco_IOS I understand that Token bucket's size (or depth) is equal to (Bc + Be) bits while Bc worth of bits are replenished every Tc...
Maybe there is some different detail in the IOS shaper implementation.....