RDK Home networking provides features for enabling the next-generation home networks which is not only limited to interaction with our home entertainment systems but also provides a medium to control wide range of activities such as our home's security, energy, health monitoring and environmental systems.
In general RDK Home network provides a set of interconnected devices tasked to carry out activities ranging from home entertainment to more interesting features such as home automation.
RDK Supports several Home networking protocols for features such as device discovery, multimedia streaming.
RUI-H Discovery (UPnP RemoteUIServerDevice device and UPnP RemoteUIServer service)
The Universal Plug 'n' Play (UPnP) architecture provides an in-home client server architecture where servers and the services they provide are discovered and utilized by client control points using service actions and the the general event notification architecture (GENA). UPnP has been absorbed by the Open Connectivity Forum (OCF) and the UPnP specifications can be found at https://openconnectivity.org/resources/specifications/upnp/specifications. In the initial Comcast use of UPnP the UPnP defined BasicDevice and vendor specific service, DiscoverFriendlies, is published by gateway devices for discovery by client devices. The gateway devices use an IPv4 link local address to publish (discovery, actions, events) for the device, BasicDevice, and service, DiscoverFriendlies.
The initial RDK UPnP Architecture involves an Client device discovering configuration information in an Gateway. There is only one device model that implements a UPnP Server, that being the Gateway. The BasicDevice is the only UPnP device type used. It is a UPnP standard device, see http://upnp.org/specs/basic/UPnP-basic-Basic-v1-Device.pdf. The DiscoverFriendlies service is the only service used and is embedded in the BasicDevice, as seen in the BasicDevice device description file; BasicDevice.xml. DiscoverFriendlies is a Comcast specific service defined in the Comcast home networking specification attached to this page.
There are two attributes in the RDK UPnP Architecture that are not to UPnP specification. First, the BasicDevice embeds the DiscoverFriendlies, but the BasicDevice specification states that no services may be embedded. Second, DiscoverFriendlies does not follow the naming conventions defined by UPnP for vendor defined services.
UPnP can partially or entirely address various use cases.
UPnP defines security mechanisms such as the DeviceProtection service, but does not mandate them. The DeviceProtection service includes a TLS handshake for UPnP traffic, as well as a number of state variables for actions that can be used for security setup, access control, etc. Within the SSDP discovery messages the LOCATION header is used to indicate the base URL used for device and service description XML file access, as well as the destination for service actions, events, etc. An unsecure control point can use that URL to access the description files. If the device is under DeviceProtection scope, then it also must provide a secure location header; SECURELOCATION.UPNP.ORG. A control point that wishes to use secure functionality of a server will initiate a TLS handshake to the base URL to create a secure connection. The UPnP DeviceProtection:1 specification calls for self-generated, self-signed certificates.
UPnP security does not protect SSDP discovery messages, nor does it protect device and service description file access when a control point uses the required LOCATION header.
API Specification can be found under XUPnP API Specification