Thank you both for your time and efforts.
CIR means committed information rate.
limit-at=xxxx is the CIR.
max-limit = the 7Mbps hard speed limit, regardless of any additional bandwidth being available.
I believe I can create a queue that limits both customers to 7 megs max and that's
it regardless of what bandwidth is still unused, without having to 'grab' the queues by
limiting the envelope queue to 90 percent of 10 megs.
Which customer gets the full 7 megs max would depend on priority, the higher priority one would get it,
and the lower one would get what's left.
Is that right?
Is that all we are doing here? Or is there really a separate command to guarantee that one
won't get less than 7?
guaranteed minimum available to a user = CIR = limit-at.
When servicing queues, ROS will make sure that all queues have been given their minimum bandwidth first. It services higher priority (lower priority number) queues first among queues which are below the guaranteed minimum.
Once all queues are at or above minimum, then the priorities are the tie-breaker for the available bandwidth. Any queue at max-limit is not going to get any more service, even if at higher priority.
If you want to give one user a CIR but not others, then you could classify traffic to the "platinum" customer with packet marks, make the rest of the packets get "default" marks. Then have two simple queues where the basic queue is unlimited but low priority, and the priority queue is limited max and given a CIR. That should give the behavior you want.