摘要 |
The method of buffering packets in a digital communications device includes defining an n-level hierarchy of memory partitions, wherein each non-top level partition has one or more child partitions at an immediately lower level of the hierarchy. The memory partitions at the top-most level are pre-configured with a target memory occupancy size, and the target occupancy for each memory partition situated at a lower level is recursively computed in a dynamic manner based on the aggregate congestion of its parent partition, until the target occupancies for the bottom-most memory partitions are determined. Each traffic flow which uses the buffer is associated with one of the memory partitions at the bottom-most level of the hierarchy and packet discard is enabled in the event the actual memory occupancy of a traffic flow exceeds its target occupancy. The memory partitions at higher levels are preferably associated with a set of traffic flows, such as traffic flows associated with a particular egress port and class of service, to thereby selectively control aggregate congestion. Traffic flow sets may be also be defined in respect of adaptive flows such as TCP flows which decrease their transmission rates in response to congestion notification, and non-adaptive flows such as UDP flows which do not decrease their transmission rates. Random early detection (RED) is applied to such traffic flows based on the target occupancy of the corresponding memory partition. The method is expected to improve network performance, allow full buffer sharing, permit the weighted distribution of buffer space within a memory partition, and scale easily to large systems.
|