RDK Documentation (Open Sourced RDK Components)
RDK Components
Here is a list of all modules:
[detail level 12345678]
 .0 DML RequestHandler Public ClassesDescribe the details about classes used in TR-069 Telemetry dml request handler
 AAMP_COMMON_TYPES
 Bluetooth CoreBluetooth Manager implements the Bluetooth HAL i.e. Bluetooth Core[BTRCore] API. Bluetooth HAL interface provides a software abstraction layer that interfaces with the actual Bluetooth implementation and/or drivers. RDK Bluetooth HAL layer enables projects to pick any Bluetooth profiles as per their requirements. Bluetooth HAL uses BlueZ5.42 stack which is a quite popular Linux Bluetooth library
 Bluetooth Core APIs
 Bluetooth Core Types
 Bluetooth ManagerBluetooth Manager (An RDK component) interfaces with BlueZ through the D-Bus API, so there is no direct linking of the BlueZ library with Bluetooth Manager. Bluetooth manager provides an interface to port any Bluetooth stack on RDK The Bluetooth manager daemon manages Bluetooth services in RDK. It uses IARM Bus to facilitate communication between the application and Bluetooth driver through Bluetooth Manager component
 AudioCaptureInterfaceThis file defines bluetooth manager's audio capture interfaces to receiver data from audio capture modules
 Bluetooth Manager Data Types and API(s)This file provides the data types and API(s) used by the bluetooth manager
 IARM InterfaceThis file defines bluetooth manager's iarm interfaces to external BT devices
 Media TypesThis file defines bluetooth manager's mediatypes for internal use
 Persistant InterfaceThis file defines bluetooth manager's Persistent storage interfaces
 Stream In InterfaceThis file defines bluetooth manager's data streaming interfaces to external bluetooth devices
 StreamOut InterfaceThis file defines bluetooth manager's data streaming interfaces to external Bluetooth devices
 SysDiagInfoInterfaceThis file defines
 CPU Proc Analyzer
 CPU Proc Data Types
 CPU Proc Public APIs
 Client RequestHandler Public ClassesDescribe the details about classes used in Device.X_RDK_ request handler
 Crashupload
 Crashupload Public APIs
 DCM (Device Configuration Management)
 DCM Data TypesData types defined for RFC(Remote Feature Control)
 DCM Public APIs
 DTCP (Digital Transmission Content Protection)Digital Transmission Content Protection ("DTCP") technology protects high-value digital motion pictures, television programs and audio against unauthorized interception and copying in the home and personal environment (e.g., between a digital set top box and digital video recorder, or between a personal computer and a digital TV)
 DTCP Manager APIDTCP manager manages source/sink DTCP-IP sessions and performs encryption/decryption
 DTCP Manager Data Structure
 Data Collection and Analysis
 DCA API
 DCA Data types
 Device Settings ModuleRDK Device Settings library is a cross-platform library for controlling the following hardware configurations:
 Device Settings API listDescribed the details about Public APIs provided by Device Settings module
 Device Settings Classes
 Device Settings HAL Types & Public APIHAL types and public API definitions for SoC/OEM components of the RDK
 FireboltRDK Firebolt SDK (previously called RNE) is intended to provide a development environment for applications targeted to run on RDK. Firebolt SDK can be used by application developers to develop HTML5, Spark & Native applications for RDK. The SDK comes with an RDK image which can be loaded on the target platform on which applications can be developed and executed
 Graphics-lifecycleGraphics-lifecycle sample app extends the rne-triangle sample app to support rt and suspend/resume. The following key features are demonstrated:
 Player Sample MSE Player SampleThe MSE (Media Source Extensions) player sample app demos how to put everything together for a more real world example. The app will show how to build a gstreamer pipeline that can be fed raw H264 and AAC frames asynchronously. The sample content contains three separate fragments of the same video to show how to simulate a seek by flushing the video pipeline and providing new samples at different period in time. The app also uses the essos library which simplifies setting up wayland for graphics and keyboard/remote input. The following key features are demonstrated:
 Sample Graphics SampleRne-triangle sample app demonstrates a simple graphics app that uses opengl es and wayland to render a spinning triangle to the screen * The following key features are demostrated:
 Sample Player SampleRne-player sample app shows how to build and use a simple gstreamer pipeline that uses westerosink. It will load a movie from a URL, buffer it, and play it back. The following key features are demonstrated:
 IARM BusIARM-Bus is a platform agnostic Inter-process communication (IPC) interface. It allows applications to communicate with each other by sending Events or invoking Remote Procedure Calls. The common programming APIs offered by the RDK IARM-Bus interface is independent of the operating system or the underlying IPC mechanism
 IARM Bus API
 IARM ManagerIARM (Inter Application Resource Management) is a mechanism for interprocess communication among different RDK applications. Its a platform agnostic inter process communication (IPC) mechanism for the other RDK components. The inter communication is possible between IARM application using events and RPC method
 Events and Remote Procedure CallsIARM-Bus is a platform agnostic Inter-process communication (IPC) interface. It allows applications to communicate with each other by sending Events or invoking Remote Procedure Calls. The common programming APIs offered by the RDK IARM-Bus interface is independent of the operating system or the underlying IPC mechanism
 HAL Types and Public APIDescribed herein are the IARM-Bus HAL types and functions that are part of the Power Manager, Deep Sleep Manager and IR Manager applications
 LED Manager
 LED API
 LED Data types
 Media Utils
 Media Utils Data types
 Media Utils hal APIs
 MoCA HALMoCA HAL is an abstraction layer, implemented for interacting with MoCA driver. MoCA HAL API's functionality should be implemented by OEMs. moca_hal.c file provides the function call prototypes and structure definitions used for the RDK MoCA hardware abstraction layer
 MoCA HAL Generic APIs
 MoCA HAL SoC APIs
 Network Service Manager
 Network Service Manager APIs
 Network Service Manager Types
 Profile Object (Device.X_RDK_<>)
 RDK HDMI-CEC
 HDMI-CEC ApplicationsThe relation between Application, Connection and CEC-Bus is described in the figure
 HDMI-CEC BUS
 HDMI-CEC CCEC
 HDMI-CEC ConnectionThe connection API allows the application to access CEC Bus. A connection is a tap into the CEC bus. The application can use a connection to send raw bytes (in form of CECFrame) onto CEC bus or receive raw bytes from it.

Each connection must have one and only one logical address. When application sends a CEC frame onto the connection, the connection's logical address will be used as the source address. On such connection, the application can only receive broadcast messages or unicast messages destined to the logical address of the connection.

The application can open multiple connections, with one connection dedicated to each Role of the application. For example, a Set-top Box of three roles (Record, Playback, and Tuner) can open three connections, with each connection used to send/receive messages of the relevant role. Such Role-Connection mapping is transparent to the devices on the CEC bus. The external devices will not be able to tell if the CEC messages come from connections of a same or different physical device.

All incoming CEEFrame arrived at the Physical CEC bus will be dispatched to all opened connections, based on the filtering criteria of the connection. By default, a connection with a given logical address filters out messages destined to other logical addresses.

When a connection is opened without a given logical address, this connection will pick up all messages destined to the host device, regardless what roles the device has. This is useful if the application wants to sniff all available CEC packets from the bus
 HDMI-CEC Daemon
 HDMI-CEC Driver APIsThe Driver component access the HDMI-CEC SoC Driver via the CEC HAL API. Vendors are responsible in delivering a SoC Driver that conforms to the HAL API (see hdmi_cec_driver.h)
 HDMI-CEC Host
 HDMI-CEC Messages and FramesThe CECFrame is a byte buffer that provides access to raw CEC bytes. CECFrame is guaranteed to be a complete CEC Message that has the necessary data blocks:

 Multi-App SupportOften , the application functionality (Record, Tune and Playback) is distributed across multiple components. In order for any component to have equivalent access to the HDMI-CEC bus, the library offers Multi-App support via IARM-Bus. This support is enabled by default, and can be disabled if desired.

In essence, there is only one physical CEC bus on asystem. However, with the help of Connection, Logical CEC-Bus, and IARM-Bus, the CEC library can converge the CEC traffic from different Connections and Logical Buses before forwarding them to the single physical bus. This is illustrated by the diagram below
 RDK LoggerRDK Logger provides common logging capability for all RDK components. It is a common logging library which is based on MPEOS logging & uses log4c for formatting and supports multiple log levels
 RDK Logger APIsDescribe the details about RDK debug APIs specifications
 RDK Logger Utils APIsDescribe the details about RDK Logger utils API specifications
 RDK Usb Device Control
 USB Control APIs
 USB Control Types
 RDM(RDK Download Manager)
 RDM Data Types
 RDM Public APIs
 Rbus interface
 TR-069
 TR-069 Device Management
 TR-069 DiagnosticsWhen the diagnostic initiated by the ACS is completed successfully or not, the CPE MUST establish a new connection to the ACS to allow the ACS to view the results, indicating the Event code "8 DIAGNOSTICS COMPLETE" in the Inform message.

After the diagnostic is complete, the value of all result parameters MUST be retained by the CPE until either this diagnostic runs again, or the CPE reboots. After a reboot, if the CPE has not retained the resultant parameters from the most recent test, it MUST set the value of this parameter to “None”.

Modifying any of the writable parameters in this object except for this one MUST result in the value of this parameter being set to “None”.

While the test is in progress, modifying any of the writable parameters in this object except for this one MUST result in the test being terminated and the value of this parameter being set to “None”.

While the test is in progress, setting this parameter to Requested MUST result in the test being terminated and then restarted using the current values of the test parameters
 TR-069 Firmware Download
 TR-069 Gathering Periodic Information
 TR-069 Host Interface
 Tuner Reservation Manager (TRM)Tuner Reservation Manager (TRM) coordinates the usage of tuners on the device for the connected clients on Gateway device and it is specific to Gateway devices only. TRM uses messages for communicating between Gateway and Client device to reserve, cancel, status retrieval, etc
 TRM Messages
 Tuner Activity
 Tuner Reservation
 Tuner States
 Wi-Fi
 Wi-Fi HAL Public APIs and Data Types
 XUPnP
 XUPnP XCal-DeviceThe XUPnP XCal-Device moudule is responssible for getting the device discovery information
 XUPnP XCal-DiscoveryDescribe the details about XUPnP XCal-Discovery specifications
 audiocapturemgr
 Audio Capture Manager Data Types and API(s)This file provides the data types and API(s) used by the audiocapturemgr
 rdkmediaplayer
 Mediaplayer Data Types and API(s)This file provides the data types and API(s) used by the mediaplayer
 rmf tools
 Generate SI cache