Patent ID: 7826358

Claim:
A method of controlling a plurality of data flows for subsequent transmission over a network, comprising: receiving, at a control mechanism, said plurality of data flows, said control mechanism being implemented as a plurality of token buckets arranged in a hierarchy having a plurality of levels, each level of the hierarchy including at least one of said plurality of token buckets; in a first metering step, metering, by at least one first token bucket included in a first level of the hierarchy, said plurality of data flows to assure fair sharing of a predetermined aggregate transmission bandwidth among the respective data flows; in a second metering step, metering, by at least one second token bucket included in a second level of the hierarchy, said plurality of data flows to assure that said data flows conform to said predetermined aggregate transmission bandwidth; wherein said plurality of data flows comprises at least one first data flow including a plurality of high priority data packets, at least one second data flow including a plurality of medium priority data packets, and at least one third data flow including a plurality of low priority data packets, said plurality of low priority data packets including a first sub-plurality of low priority data packets and at least one second sub-plurality of low priority data packets; determining a size of at least one of said high priority data packets included in said received first data flow, said medium priority data packets included in said received second data flow, and said low priority data packets included in said received third data flow; and determining whether said at least one first token bucket included in said first level of the hierarchy contains at least a required number of credits corresponding to said determined size of said at least one data packet included in said received data flow; and performing one of passing said at least one data packet, dropping said at least one data packet, and marking said at least one data packet as being eligible for dropping, based upon whether said at least one first token bucket contains less than the required number of credits.