Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
The QoS Classifier service, defined in ISO/IEC 29341-8-17, provides a dedicated service for classifying network traffic within the UPnP QoS architecture v3. The classifier examines incoming packets against a set of classification rules derived from Traffic Descriptors and assigns each packet to a specific traffic class. This classification decision determines the QoS treatment the packet will receive — including queuing priority, dropping probability, and traffic shaping parameters.
The classifier maintains an ordered list of classification rules. Each rule consists of a reference to a Traffic Descriptor (as defined in Part 8-16) and the resulting TrafficClass assignment. When a packet arrives, the classifier evaluates rules in priority order and assigns the first matching rule’s TrafficClass to the packet.
| Parameter | Description | Example Value |
|---|---|---|
| ClassifierID | Unique identifier for a classifier instance | urn:upnp-org:serviceId:QoSClassifier:1 |
| ClassifierRuleList | Ordered array of classification rules | [{RuleID, DescriptorID, TrafficClassID}] |
| ClassifierRuleUpdateID | Monotonic counter for rule changes | 42 |
| DefaultTrafficClass | Fallback class when no rule matches | BestEffort |
The performance of the QoS Classifier is critical to overall network throughput. Each packet must be classified before it can be queued, introducing a per-packet processing overhead. For gigabit-speed networks, this classification must complete in microseconds to avoid becoming a bottleneck.
Hardware offload is a key consideration. Many modern network switches and NICs support hardware classification using TCAM (Ternary Content-Addressable Memory) entries. When implementing the QoS Classifier on such hardware, the UPnP classification rules must be translated into TCAM-compatible format. The limited number of TCAM entries (typically 128-512 per pipeline stage) imposes a practical upper bound on the number of concurrent classification rules.
The classifier service also exposes event notifications through the ClassifierRuleUpdateID variable. Control points subscribe to these events to detect when classification rules have changed, allowing them to update their understanding of the network’s QoS topology without continuous polling.
A practical classifier deployment strategy is to organize rules in tiers: infrastructure rules at the top (matching network control protocols like DHCP, DNS, and NTP), followed by application-specific rules (matching VoIP, video streaming, gaming), and finally catch-all rules for general traffic. This tiered approach ensures that critical network signaling traffic always receives appropriate priority regardless of the volume of application traffic. When combined with UPnP eventing, control points can dynamically insert application-specific rules into the appropriate tier without disrupting existing classifications.
The Traffic Descriptor service (Part 8-16) defines the patterns that identify traffic flows. The QoS Classifier uses those patterns as matching criteria and assigns TrafficClass values to packets that match. In short: descriptors define what to look for, the classifier decides what to do with matches.
Yes. The QoS Classifier service supports dynamic rule updates through its actions. Rules can be added, modified, removed, or reordered at runtime. The ClassifierRuleUpdateID variable changes with each modification, enabling control points to track updates.
The DefaultTrafficClass variable can be set via the SetDefaultTrafficClass action. If no default is explicitly configured, the standard requires the device to use BestEffort as the default class to ensure basic connectivity for all unclassified traffic.
The base standard defines stateless, per-packet classification. However, the architecture allows extensions for stateful classification that tracks connection state. Such extensions would need to maintain a flow table and are implementation-specific.