Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
IEC 29341-2 defines the UPnP Device Architecture Version 2 (UDA 2.0), the foundational specification upon which all UPnP device and service templates are built. UDA 2.0 supersedes the earlier 1.0 specification with significant enhancements in addressing, discovery, description, control, eventing, and presentation mechanisms. The architecture follows a six-layer model: addressing (obtaining an IP address), discovery (finding devices via SSDP), description (retrieving device and service XML descriptions), control (invoking actions via SOAP), eventing (subscribing to state changes via GENA), and presentation (rendering an HTML-based device user interface).
Version 2.0 brings several critical improvements over its predecessor. The discovery layer now supports unicast M-SEARCH responses with a configurable timeout, reducing multicast traffic in large deployments. The device description schema was extended to include deviceType versioning, allowing control points to distinguish between UDA 1.0 and 2.0 devices during discovery. Eventing received an important update: the GENA subscription timeout was extended from 30 minutes (the de facto limit in UDA 1.0) to a configurable value with a recommended default of 300 seconds, and the Callback URL now supports HTTPS endpoints for encrypted event delivery. Additionally, UDA 2.0 mandates support for the BOOTID.UPNP.ORG header, enabling control points to detect device reboots and refresh cached descriptions accordingly.
| Feature | UDA 1.0 | UDA 2.0 |
|---|---|---|
| IPv6 Support | Not specified | Native (mandatory) |
| Discovery | Multicast only | Multicast + Unicast |
| GENA HTTPS Callback | Not supported | Supported |
| BOOTID Header | Not defined | Mandatory |
| Device Type Versioning | Implicit | Explicit (major.minor) |
| Max Age (Cache Control) | 1800s default | Configurable |
CONFIGID.UPNP.ORG header. UDA 2.0 devices advertise a configuration ID that summarises the device’s service set. If a control point cache already holds a matching configuration ID, it can skip the device description retrieval step, saving bandwidth. However, an incorrectly implemented CONFIGID can cause the control point to cache stale descriptions and mis-render the device’s capabilities.The SOAP control layer in UDA 2.0 introduces the UPNP-EVENT-SUBSCRIBE and UPNP-EVENT-UNSUBSCRIBE headers for improved event channel management. The eventing subsystem now supports multiple callback URLs per subscription, providing redundancy in case the primary callback endpoint is unreachable. The LastChange event payload format was formalised to use a consistent XML structure across all service types, simplifying parser implementation. For presentation, UDA 2.0 encourages the use of responsive HTML5 pages that adapt to both desktop and mobile control point browsers.
SearchPort and SecureDevice extensions introduced in UDA 2.0 Annex A provide a framework for secure UPnP communication. While not mandatory, implementing these extensions is strongly recommended for devices that handle sensitive data or operate in multi-tenant environments.ST: ssdp:all search can trigger response packets that are orders of magnitude larger than the search request itself. Production deployments MUST filter SSDP traffic at the network perimeter using access control lists to prevent participation in DDoS amplification campaigns.Implementing a UDA 2.0-compliant device stack requires careful state management across all six layers. The BOOTID counter must persist across power cycles (store it in non-volatile memory) and increment monotonically on each reboot. The CONFIGID must change whenever the device’s service set or description URLs change, which means the device description XML should be generated dynamically rather than served from a static file. For the control point side, implement a caching layer that respects the max-age directive from SSDP headers but also invalidates the cache on BOOTID changes — this hybrid approach balances network efficiency with accuracy.
ssdp:byebye message when shutting down gracefully.ssdp:alive messages and increment the BOOTID field. Control points must monitor BOOTID changes to detect address updates.