4.7 RGSMART – Smart Residential Gateway

4.7.1 RGSMART.OPLAT – Open platform Support

Note: With the evolution of home networks, The Smart RG needs to support more and more third-party applications. Each Smart RG vendor has different hardware and software operating environments. An open platform allows to update the Smart RG with standardized additional software applications, without the need to maintain different versions.

ID Requirement
RGSMART.OPLAT.1 The Smart RG MUST provide a generic open platform, which allows to execute modular Software Applications in a virtual environment.
RGSMART.OPLAT.2 The open platform MUST provide APIs, which allow software applications to interact with the smart gateway for requesting/configuring access services, data flow services, common services (e.g. query device information).
RGSMART.OPLAT.3 The open platform MUST provide APIs, which allow software applications to interact with the home network and services in the home network (LAN addressing services).
RGSMART.OPLAT.4 The open platform MUST provide APIs, which allow software applications to access the uplink and interact with cloud services.
RGSMART.OPLAT.5 The open platform MUST provide a mechanism, to authenticate software modules and applications and restrict the execution to certified software applications.
RGSMART.OPLAT.6 The Smart RG open platform MUST support software module management to load and unload software modules.
RGSMART.OPLAT.7 The Smart RG open platform MUST support software module management to start and stop software applications.
RGSMART.OPLAT.8 All installed software modules MUST be persistent during upgrades of the Smart RG, or a mechanism MUST be provided which reinstalls the previous installed software modules.
RGSMART.OPLAT.9 If TR-069 is used the open platform SHOULD support the functions in TR-069a6, Appendix VI “Software Module Management” to manage and control the software applications and software modules.
RGSMART.OPLAT.10 If USP is used the open platform SHOULD support the functions in TR-369, Appendix I “Software Module Management” to manage and control the software applications and software modules.
RGSMART.OPLAT.11 The open platform SHOULD support to limit the resources used by open platform environments and applications including CPU time, number of threads, RAM, and Sockets used.

4.7.1.1 RGSMART.OPLAT.OSGI – OSGI Open platform

ID Requirement

RGSMART.OPLAT.OSGI.1

The Smart RG MUST support the OSGi platform and the execution environment (JVM) on which the OSGi platform runs as open platform.

Note: The native language cannot run across different platforms. It is recommended that the Smart RG should provide a Java runtime environment that supports OSGi Plug-in bundle expansion capabilities

RGSMART.OPLAT.OSGI.2 The JVM of the Smart RG OSGI platform MUST at a minimum use JAVA SE8.

RGSMART.OPLAT.OSGI.3

The JVM must at least include the Java SE Embedded compact1 profile.

Detailed API packages list for compact1:

Java.io java.lang java.lang.annotation java.lang.invoke java.lang.ref java.lang.reflect java.math java.net java.nio java.nio.channels java.nio.channels.spi java.nio.charset java.nio.charset.spi java.nio.file java.nio.file.attribute java.nio.file.spi java.security java.security.cert java.security.interfaces java.security.spec java.text java.text.spi java.time java.time.chrono java.time.format java.time.temporal java.time.zone java.util java.util.concurrent java.util.concurrent.atomic java.util.concurrent.locks java.util.function java.util.jar java.util.logging java.util.regex java.util.spi java.util.stream java.util.zip javax.crypto javax.crypto.interfaces javax.crypto.spec javax.net javax.net.ssl javax.script javax.security.auth javax.security.auth.callback javax.security.auth.login javax.security.auth.spi javax.security.auth.x500 javax.security.cert

RGSMART.OPLAT.OSGI.4 The JVM MUST run with a non-root minimum privilege level.
RGSMART.OPLAT.OSGI.5 The Smart RG SHOULD allow to limit the JVM resources used by the OSGi environment and applications including CPU time, number of threads, RAM, Sockets used.
RGSMART.OPLAT.OSGI.6 The OSGi framework MUST include Security Layer, Module Layer, Life Cycle Layer, Service Layer.
RGSMART.OPLAT.OSGI.7 The OSGi framework MUST be compatible with OSGI CORE 6 [43] or later. For OSGi Release 6 the OSGi framework MUST implement chapters 2-10 and 53-57 of OSGI CORE 6 [43].
RGSMART.OPLAT.OSGI.8 The OSGi framework MUST implement the Log Service compatible with the OSGi Compendium specification. For OSGi Release 6 the service MUST be compatible to chapter 101, of OSGI Companion 6 [43].
RGSMART.OPLAT.OSGI.9 The OSGi framework MUST implement the HTTP Service compatible with the OSGi Compendium specification. For OSGi Release 6 the service MUST be compatible to chapter 102, of OSGI Companion 6 [43].
RGSMART.OPLAT.OSGI.10 The OSGi framework MUST implement the Configuration Admin Service compatible with the OSGi Compendium specification. For OSGi Release 6 the service MUST be compatible to chapter 104, of OSGI Companion 6 [43].
RGSMART.OPLAT.OSGI.11 The OSGi framework MUST implement the Event Admin Service compatible with the OSGi Compendium specification. For OSGi Release 6 the service MUST be compatible to chapter 113, of OSGI Companion 6 [43].
RGSMART.OPLAT.OSGI.12 If TR-069 is used the OSGi module layer management SHOULD be compatible with functions in Broadband Forum TR-069 [160], Appendix VI “Software Module Management”.
RGSMART.OPLAT.OSGI.13 If USP is used the OSGi module layer management SHOULD be compatible with functions in Broadband Forum TR-369 [169], Appendix I “Software Module Management”.

4.7.1.2 RGSMART.OPLAT.EE – Execution Environment

ID Requirement

RGSMART.OPLAT.EE.1

The native operator system on a RG MUST provide an execution environment (EE), which allows the execution of applications (containers).

Note: It is recommended that the RG provides a LXC runtime environment that supports C Plug-in bundle expansion capabilities

RGSMART.OPLAT.EE.2 The execution environment MUST support the isolation of all executed applications from each other and from other application on RG.
RGSMART.OPLAT.EE.3 The applications SHOULD run with a non-root minimum privilege level with as few rights as possible. (Principle of least privilege).
RGSMART.OPLAT.EE.4 The execution environment MUST provide access to socket based outgoing communication and TLS encryption for the applications and allow them to communicate with cloud services.
RGSMART.OPLAT.EE.5 The execution environment MUST allow configuring the deployed applications using centralized RG configuration data and interfaces.

RGSMART.OPLAT.EE.6

The execution environment MUST provide controlled access to the RG managed configuration parameters, for application use. The access rights have to be configurable.

Note: For example, a Wi-Fi control application has to be able to read and write the SSID.

RGSMART.OPLAT.EE.7

The execution environment SHOULD provide an inter-application communication mechanism, which allows the communication between different applications.

Note: It is recommended that communication mechanism is based on an event publish and subscribe model.