The metering macros for if constructs described in section 2.13.5 are based on ``leaky buckets'', sometimes also called ``token buckets''.
In an if construct, buckets are used by including metering primitives in the if expression. This approach gives enormous flexibility, allowing the definition of all common metering schemes with a small set of primitives.
Buckets have the following parameters:
Parameter | Unit | Description |
burst | Bytes | bucket depth |
mpu | Bytes | minimum policed unit |
rate | bps | bucket fill rate |
Only mpu is optional, all other parameters are required.
In addition, buckets can have tags (see section 3.10) and pragmas (see section 3.11).