UPnP Testing Guide
Introduction
CDRouter supports InternetGatewayDevice:2
(IGDv2) device support, UPnP over
IPv6 test cases as well as a general tuneup of CDRouter’s UPnP control point
implementation. This article aims to give a brief overview of the new
test features, describe any configuration changes that may be
necessary and outline a few small changes to be aware of when using
CDRouter to test the UPnP functionality of your device.
IGDv2 Support
The UPnP Forum plans to deprecate InternetGatewayDevce:1
(IGDv1)
support in the near future. CDRouter 9.0 adds the following new test
cases which verify support for InternetGatewayDevce:2
(IGDv2)
devices:
cdrouter_ssdp_igd2_3
cdrouter_upnp_igd2_10
cdrouter_upnp_igd2_12
cdrouter_upnp_igd2_20
cdrouter_upnp_igd2_25
cdrouter_upnp_igd2_30
cdrouter_upnp_igd2_31
cdrouter_upnp_igd2_32
cdrouter_upnp_igd2_35
cdrouter_upnp_igd2_36
cdrouter_upnp_igd2_40
cdrouter_upnp_igd2_41
cdrouter_upnp_igd2_45
cdrouter_upnp_igd2_50
cdrouter_upnp_igd2_100
cdrouter_upnp_igd2_200
cdrouter_upnp_igd2_201
cdrouter_upnp_igd2_202
cdrouter_upnp_igd2_203
cdrouter_upnp_igd2_204
cdrouter_upnp_igd2_210
cdrouter_upnp_igd2_220
IGDv2 is backwards compatible with IGDv1, meaning a device which
advertises support for InternetGatewayDevice:2
implicitly also
supports InternetGatewayDevice:1
. CDRouter 9.0 adds a new testvar
upnpDevice
which should be set to
InternetGatewayDevice:2
if your device supports IGDv2, otherwise set
it to InternetGatewayDevice:1
. CDRouter will automatically skip
tests which require IGDv2 support if this testvar is not set to
InternetGatewayDevice:2
.
Please see the CDRouter Test Summaries page for descriptions of the new test cases.
UPnP over IPv6
CDRouter also introduces a new test module upnp-v6.tcl
. This
module includes many test cases from upnp.tcl
modified to send UPnP
messages over IPv6:
ipv6_ssdp_1
ipv6_ssdp_2
ipv6_ssdp_3
ipv6_ssdp_4
ipv6_ssdp_5
ipv6_ssdp_6
ipv6_upnp_10
ipv6_upnp_12
ipv6_upnp_20
ipv6_upnp_25
ipv6_upnp_30
ipv6_upnp_31
ipv6_upnp_32
ipv6_upnp_35
ipv6_upnp_36
ipv6_upnp_40
ipv6_upnp_41
ipv6_upnp_45
ipv6_upnp_50
ipv6_upnp_100
ipv6_upnp_200
ipv6_upnp_201
ipv6_upnp_202
ipv6_upnp_203
ipv6_upnp_204
ipv6_upnp_210
ipv6_upnp_220
Additionally, there are a number of new test cases which verify IGDv2 functionality when UPnP is run over IPv6:
ipv6_ssdp_igd2_3
ipv6_upnp_igd2_10
ipv6_upnp_igd2_12
ipv6_upnp_igd2_20
ipv6_upnp_igd2_25
ipv6_upnp_igd2_30
ipv6_upnp_igd2_31
ipv6_upnp_igd2_32
ipv6_upnp_igd2_35
ipv6_upnp_igd2_36
ipv6_upnp_igd2_40
ipv6_upnp_igd2_41
ipv6_upnp_igd2_45
ipv6_upnp_igd2_50
ipv6_upnp_igd2_100
ipv6_upnp_igd2_200
ipv6_upnp_igd2_201
ipv6_upnp_igd2_202
ipv6_upnp_igd2_203
ipv6_upnp_igd2_204
ipv6_upnp_igd2_210
Finally, there are a number of new test cases which verify support for
the WANIPv6FirewallControl:1
service which is part of the IGDv2
specification and allows creating IPv6 firewall holes using UPnP:
ipv6_upnp_igd2_220
ipv6_upnp_igd2_230
ipv6_upnp_igd2_300
ipv6_upnp_igd2_301
ipv6_upnp_igd2_302
ipv6_upnp_igd2_303
ipv6_upnp_igd2_304
ipv6_upnp_igd2_305
ipv6_upnp_igd2_306
ipv6_upnp_igd2_307
Please see the IPv6 Test Summaries page for descriptions of the new test cases.
UPnP 1.0 versus 1.1
There are two revisions of the UPnP Device Architecture specification,
oftentimes referred to as the UPnP version. UPnP version 1.1 added
support for unicast M-SEARCH messages, a number of new required
headers in M-SEARCH responses as well as a number of other small
changes. In its UPnP test cases, CDRouter behaves as a UPnP v1.1
control point (conforming to v1.1 of the UPnP Device Architecture
specification). However, CDRouter supports testing either v1.0 or
v1.1 devices. CDRouter 9.0 introduces a new testvar upnpVersion
which should be set to 1.1
if your device supports
UPnP v1.1, otherwise set it to 1.0
.
References
Both version 1.0 and version 1.1 of the UPnP Device Architecture specification can be downloaded from the UPnP Forum’s Device Architecture Documents page.
Official device control protocol specifications for
InternetGateway:1
(IGDv1) and InternetGateway:2
(IGDv2) as well as
many other DCPs can be downloaded from the UPnP Forum’s
Standards: Device Control Protocols
page.