PFC Queue Limits (Queue Depth/Size)

LAN Based Cards Queue Depths

Applicable to the LAN based cards such as the ws-x6708, ws-6724, etc, these cards have hardware queues both ingress and egress, each port has limited buffer space and may require reallocating buffer space between the queues. Using the ws-6724 as an example where the egress queue structure is 1p3q8t, meaning that there is 1 priority queue and 3 standard queues we will reapportion the default allocated buffer space to each queue. Firstly the total amount of space for on egress for a port on this card is 1.2MB (note: MegaBytes) which can be found in the 12.2SR configuration guide under the Configure QoS section, under Module to Queue Type Mappings.

Keep in mind that increasing a queue size (length) can introduce more latency due to more buffering, where smaller buffers can cause drops and therefore lost data (UDP) or retransmits (TCP). TCP drops / windows can be controlled by using WRED (wrr-queue random-detect) instead of the default queue management – tail drop, WRED still drops UDP as the drop management uses COS values and is does not look at the type of packet being carried, so UDP being dropped means lost data (unless application checks for missing data) and TCP will retransmit and will shorten window size.

The commands we use to configure the queue sizes are

priority-queue queue-limit

wrr-queue queue-limit

The priority-queue command is not available for all LAN cards, cards with queue structures, check the configuration guides for the cards you are using.

So we will allocate the following:

PQ – 10%
Q1 – 20%
Q2 – 30%
Q4 – 40%

The values entered are relative values and can be anything, a calculation below will show how this works, but for ease just define these as percentages as follows:

priority-queue queue-limit 10
wrr-queue queue-limit 20 30 40

so to calculate what is actually being assigned, using the PQ as an example

10 / (10+20+30+40) = 0.1

0.1 * 100  = 10% (PQ)

and 10% of 1.2 MB is 120KB

The outcome is 10% or 120KB (KiloBytes) as expected as we used percentages for the inputs to the commands, using relative values and this calculation will give you the queue percentages is you decide to use them.

In IOS to check your work use the following commands:

show queueing interface G1/1
remote command switch show qm port X Y (where x = slot, y = port number)

Simon Birtles

I have been in the IT sector for over 20 years with a primary focus on solutions around networking architecture & design in Data Center and WAN. I have held two CCIEs (#20221) for over 12 years with many retired certifications with Cisco and Microsoft. I have worked in demanding and critical sectors such as finance, insurance, health care and government providing solutions for architecture, design and problem analysis. I have been coding for as long as I can remember in C/C++ and Python (for most things nowadays). Locations that I work without additional paperwork (incl. post Brexit) are the UK and the EU including Germany, Netherlands, Spain and Belgium.