High Scale Ethernet MDA Capabilities
Quality of Service Guide 775
Port Class Pool Sizing
The port class pools are sized based on the port’s active bandwidth, provisioned use of the
port and the port bandwidth rate modifier percentages defined on the port. For the HSMDA,
a port’s active bandwidth is simply the current speed provisioned for the port. For ingress,
this is the current line rate of the port. For egress, it is the lesser of the port’s line rate and the
port scheduler’s current maximum rate. The active bandwidth of the port is considered to be
zero when a SAP or subscriber has not been provisioned on the port. Once a queue group is
associated with the port, the actual active bandwidth of the port is used for port class buffer
pool sizing.
The active bandwidth can be modified by the max-rate commands on the port. The
parameters are used to artificially increase or decrease the amount of buffers that may be used
by the port. These commands have no effect on the actual bandwidth used by the port.
The system uses the active bandwidth of each port to decide on how much each class pool the
port should receive. The ports active bandwidth is divided into the sum of all ports active
bandwidth to derive the port’s pool factor. This factor is multiplied by the size of each class
pool and the result is applied to the port’s class pool. Thus, the sum of the sizes of a given
port class pool over all ports should equal the size of the actual aggregate control class pool.
HSMDA Available Buffer Register Operation
The HSMDA considers a buffer pool empty when the buffer-available register for the pool
drops below 64. As buffers are allocated to a queue, the HSMDA evaluates whether the
queue’s port class pool buffer-available register is less than 64. If not, the HSMDA then looks
at the aggregate control pools pointed to by the port class pool’s Agg-Pool-Ptr-1 (class-pool)
and Agg-Pool-Ptr-2 (root-pool) to determine whether either of the pool’s buffer-available
registers are less than 64. If not, then the buffers required to enqueue the packet on the queue
are given to the queue and the buffer-available registers are decremented based on the number
of buffers given. As packets are scheduled out of the queue, the buffers are returned to the
free list and the buffer-available registers are incremented by the correct amount.
The HSMDA stops allocating buffers at 63 or less remaining to allow packet size fairness on
the pools. If it simply stopped at 0, large packets would be at a disadvantage as the buffer pool
neared the zero mark. If the register read 20 buffers remaining and a packet arrives needing
21 buffers, the pool would deny the buffer request (it would decrement below 0). But if a
smaller packet arrives needing less buffers than 20, it would be allowed. And the buffer pool
would continue to allow the smaller packets until the pool was depleted. By stopping at 63 or