Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
The QoS Dropper service, defined in ISO/IEC 29341-8-19, provides a standardized mechanism for selectively dropping network packets based on QoS policy within the UPnP QoS architecture v3. Packet dropping is a fundamental congestion management technique — when a network device’s buffers are full or a traffic flow exceeds its allocated bandwidth, the dropper discards packets according to configured drop policies. The service implements both tail-drop and active queue management (AQM) dropping strategies.
The service exposes actions for configuring drop policies on a per-traffic-class basis. Each drop policy specifies the conditions under which packets should be dropped, including buffer occupancy thresholds, drop probability curves, and whether to use tail-drop or random early detection (RED).
| Policy Parameter | Type | Description |
|---|---|---|
| TrafficClassID | string | The traffic class to which the drop policy applies |
| DropAlgorithm | string | TailDrop | RED | WRED (Weighted RED) |
| MinThreshold | ui4 | Minimum queue occupancy before dropping begins (RED/WRED) |
| MaxThreshold | ui4 | Maximum queue occupancy — all packets dropped above this threshold |
| DropProbability | float | Maximum drop probability at MaxThreshold (0.0 to 1.0) |
Implementing the QoS Dropper service requires deep integration with the device’s queuing subsystem. The dropper must be positioned at the tail of the egress queue, after classification and marking have been applied. On Linux-based systems, this maps naturally to the qdisc (queueing discipline) layer, where RED and tail-drop are natively supported via the ‘red’ and ‘pfifo_fast’ schedulers.
A critical design decision is the selection of AQM parameters. The RED algorithm’s min_threshold, max_threshold, and max_drop_probability must be tuned to the specific link speed and traffic pattern. The standard recommends starting with the parameters from RFC 7567 (Active Queue Management Recommendations) and adjusting based on observed performance.
Weighted RED (WRED) is particularly valuable in the UPnP QoS context, as it allows different drop probabilities for different traffic classes sharing the same physical queue. For example, BestEffort traffic can be configured with a lower drop threshold than AssuredForwarding traffic, ensuring that important flows are preferentially preserved during congestion.
Tail-drop is the simplest dropping strategy — when the queue is full, newly arriving packets are dropped until space becomes available. RED (Random Early Detection) proactively drops packets before the queue is completely full, with drop probability increasing as queue occupancy rises. RED prevents TCP global synchronization by randomizing drops rather than dropping entire bursts.
Yes. Setting the drop policy to a null or disabled state effectively disables active dropping for that traffic class. In this case, the device’s default buffer management applies — typically tail-drop when the queue is completely full.
The typical processing pipeline is: Classifier → Marker → Dropper → Queue. The classifier identifies the traffic class, the marker sets the packet’s priority markings, the dropper applies drop decisions based on the traffic class and current queue occupancy, and surviving packets are enqueued for transmission.
RFC 7567 recommends a max drop probability of 0.1 (10%) for RED-configured BestEffort queues. This provides effective congestion signaling to TCP senders without causing excessive retransmissions. For premium traffic classes, a lower max drop probability (e.g., 0.02 to 0.05) is recommended.