Inside RDK

Inside RDK – TDK for Broadband

Enhancing its RDK tools portfolio, RDK Management revealed the Test Development Kit (TDK) for Broadband during the INTX show in Boston earlier this year. Since then, operators, OEMs, SoC manufacturers and systems integrators have deployed the tool. The RDK Code Management Facility (CMF) uses the TDK-Broadband to validate RDK-B code releases to the community.

The TDK for RDK-V is already a widely adopted tool for testing RDK-Video releases. For those who are unfamiliar, the TDK is a generic test kit for automated testing of RDK, facilitated by a server-based interface for configuration, test creation, execution and result aggregation. The TDK Test Manager is a server that can be accessed via a web user interface, or harnessed by other test frameworks & Continuous Integration (CI) tools that use Representational State Transfer (REST) interfaces and Command Line Interfaces (CLI). The Test Manager is complemented by a Test Agent, which is ported to the device under test. The TDK is primarily intended as a white-box test tool for component / API-level testing of RDK in the absence of an application, and includes many end-to-end test scenarios to validate RDK features.

For testing RDK-B, the TDK-B uses Python & Tcl (Tool Command Language) scripting for enhanced flexibility, ease of usage and extensibility. It has a modular architecture designed to withstand changes in the underlying RDK-B implementation. The RDK-B architecture was leveraged to incorporate the TDK Agent as an RDK-B component, which will get registered with the Component Registrar (CR) and Message Bus. The TDK Agent will hence be able to communicate with, and query, any other component in the RDK-B layer.

Validation happens in three methods: 1) invoking message bus APIs for getting & setting TR-181 parameters; 2) Invoking RDK-B Cisco Open Service Architecture (COSA) APIs, which are a direct API call to the Data Model Layer (DML) of the RDK-B component; and 3) Tcl scripts that use TR-181 set/get operations for black box feature validation.

The current release of TDK includes white-box Python scripts, for component validation, and black-box Tcl scripts for end-to-end feature validation. With its test cases portfolio, the TDK can be used to perform developer-level testing, certification testing and regression testing of RDK releases and builds. A sample TDK deployment environment is shown in figure 1.

Platforms currently supported by TDK-B

  • RDK-B PC Emulator
  • Raspberry Pi

TDK-B Validation Methods

  • TR-181 Data Model: invokes the APIs in the common library/message bus component to perform any set/get operation on the TR-181 parameters using Python scripts
  • COSA DML APIs: directly invoke the APIs in the Data Model Layer of each CCSP component to perform the unit-level validation of the RDK-B stack, using Python scripts
  • TCL Scripts: used for performing the black box validation of the RDK-B stack

TDK-B Features

  • Automated component-level testing of RDK-B
  • Automated feature-level / end-to-end testing of RDK-B devices
  • Testing of RDK-B devices and components in an isolated environment, independent of any MSO application or physical RF feeds.
  • Analysis & trending of test results, pass/fail status and test logs using a web based user interface
  • Administration, management and configuration of the test setup
  • Integration with third-party test frameworks and continuous tools via REST interfaces and CLI

RDK-B Components Covered by TDK-B

  • CM Agent
  • MTA Agent
  • WIFI Agent
  • WECB Controller
  • RDK Logger
  • Message Bus
  • Provisioning and Management