Solving Packet Starvation in NPSS: Balancing Priority and Fair Queuing
Learn how to prevent bandwidth starvation in NPSS by combining Priority Queuing (PQ) and Weighted Fair Queuing (WFQ) to balance low-latency traffic with system stability.
27 Jul 2025, 23:36 UTC

The High-Priority Traffic Trap
In high-throughput networking, the goal is often to ensure that critical traffic—like VoIP or system control signals—never experiences a delay. However, when using a Network Packet Switching System (NPSS), a common failure mode occurs when Priority Queuing (PQ) is implemented too aggressively. If the high-priority queue is constantly saturated, the system will drop or indefinitely delay all other traffic, including the management packets needed to fix the problem.
The solution is not to remove priority, but to implement a hybrid approach using Weighted Fair Queuing (WFQ) alongside the priority pipeline to guarantee a minimum bandwidth slice for non-critical data.
Decoupling the Forwarding Path
NPSS achieves wire-speed performance by separating the control plane (the logic that decides where packets go) from the data plane (the hardware that actually moves them). The data plane relies on Hardware-based Look-Up Tables (LUTs)—specialized memory structures that allow the system to resolve MAC and IP addresses in a single clock cycle without interrupting the main CPU.
Because the CPU is not involved in per-packet forwarding, the bottleneck shifts from processing power to queue management. If the egress pipeline is poorly configured, the hardware buffers will fill, leading to "bufferbloat," where packets sit in memory too long, increasing latency for interactive applications.
Implementing Hybrid Queue Management
To prevent bandwidth starvation, NPSS allows for a combination of PQ and WFQ. In this setup, the system treats the highest priority queue as a "strict" priority—meaning it is always served first—while dividing the remaining bandwidth among other queues based on assigned weights.
Priority Queuing (PQ)
PQ is used for time-sensitive traffic. The scheduler checks the high-priority queue; if a packet is present, it is sent immediately. This is ideal for control signals but dangerous if the traffic volume is uncontrolled.
Weighted Fair Queuing (WFQ)
WFQ handles the "best-effort" traffic. Instead of a first-come-first-served approach, WFQ assigns a percentage of the remaining link capacity to different traffic classes. For example, if you have two data queues with weights of 70 and 30, the system ensures the second queue still gets 30% of the bandwidth even when the first is flooded.
Configuration Example: Egress Traffic Shaping
To implement this, you must map your traffic classes to hardware queues and define the weights. The following example demonstrates a conceptual configuration for an NPSS egress port where VoIP is prioritized, but management and data traffic are protected from starvation.
# Run these commands on the NPSS Management Console with administrative privileges
# Step 1: Define the Strict Priority Queue for VoIP (Queue 0)
set queue 0 priority strict
# Step 2: Define WFQ weights for Data (Queue 1) and Management (Queue 2)
# Total weight must equal 100 for the remaining bandwidth
set queue 1 weight 70
set queue 2 weight 30
# Step 3: Apply a Token Bucket filter to the egress pipeline to smooth bursts
# Rate: 1Gbps, Burst Size: 10MB
set traffic-shaper port 1 rate 1gbps burst 10mb
Expected Result: VoIP traffic (Queue 0) will experience the lowest possible latency. If the link reaches 100% utilization, Queue 1 and Queue 2 will share the remaining capacity in a 7:3 ratio, ensuring the management console (Queue 2) remains responsive.
Limitations and Trade-offs
The primary limitation of this architecture is the finite size of hardware buffers. While WFQ prevents starvation, it cannot prevent packet loss if the aggregate ingress rate exceeds the physical egress capacity for an extended period. Furthermore, over-configuring the number of queues can increase the complexity of the LUT lookups, potentially adding nanoseconds of latency to the forwarding path.
Verifying the Configuration
To ensure the weights are functioning as intended, you should perform a synthetic load test using a tool like iPerf. Generate a heavy stream of traffic on the high-priority queue and simultaneously monitor the throughput of the management queue.
- Check: Ensure the management queue maintains its minimum weighted throughput (e.g., 30% of the non-priority bandwidth).
- Diagnostic: Inspect the hardware register maps via the CLI to confirm that packets are being correctly steered into the intended queues.
- Risk: If you observe high latency in the management queue despite WFQ, check for bufferbloat by reducing the burst size in the token bucket configuration.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.