RDK-B follows a layered architecture comprising Application, Middleware, and Hardware Abstraction Layer (HAL), which separates application logic from hardware-specific implementation. This design makes RDK-B WAN-agnostic, supporting multiple access technologies such as DOCSIS, DSL, GPON, and LTE. The middleware itself is built as a collection of independent, componentized services, each handling a specific functional domain like Wi-Fi, WAN, or Voice. Components can be selectively included, added, removed, or replaced based on target device requirements without affecting unrelated functionality.
In RDK-B, cross-layer dependencies are minimized through well-defined interfaces and standardized data models that govern communication between components. Standardized managers and HAL interfaces allow the same core middleware stack to operate consistently across different hardware platforms, ensuring portability. This loosely coupled, modular design simplifies platform-specific customization and supports long-term extensibility — enabling tailored builds for devices with varying capabilities without requiring architectural changes.
RDK-B organizes components based on functionality and level of abstraction, with each group having clearly defined responsibilities. Within the middleware layer, components are largely independent and communicate with each other using IPC mechanisms, enabling modularity and selective inclusion based on device requirements. Hardware access is performed through HAL interfaces, with platform-specific implementations translating these interactions to the underlying system.
The Application Layer hosts various caterogies of applications including
The RDK-B Middleware is composed of independent, domain-specific components that communicate through well-defined interfaces. Several of these components implement the TR-181 data model standard for consistent parameter representation and remote manageability. Key components include:
The HAL defines standardized, vendor-neutral interfaces that decouple the middleware from underlying hardware, enabling portability across diverse chipsets and platforms. Defined HAL interfaces — including Wi-Fi, Ethernet, DHCP V4/V6, Platform, Cellular, and VLAN — allow operators to source hardware competitively without impacting middleware functionality. Certain capabilities such as MAP-T support, 6 GHz operation, and multicast handling remain dependent on the specific chipset and vendor implementation beneath the HAL.
The Platform Layer provides the foundational system software on which all upper layers depend. The Linux kernel incorporates network drivers (Wi-Fi, Ethernet, cellular), USB and flash storage drivers (MTD, UBI), and cryptographic accelerators. Bootloaders — typically U-Boot or vendor-specific alternatives — handle hardware initialization, kernel and device tree loading, and secure boot verification. Vendor libraries supply SoC-specific acceleration for video codec and cryptographic operations, along with Wi-Fi drivers (proprietary or open-source)
The following diagram provides a detailed view of the RDK Connectivity architecture, showing all components and their relationships:
CCSP (Common Component Software Platform) is the original framework developed as part of the RDK-B initiative to provide a standardized, component-based approach to implementing broadband device functionality. The CCSP framework relies on several foundational infrastructure services — including a component registry for discovery, persistent storage for parameter management, shared libraries for IPC and data model handling, and a device-level provisioning gateway — which collectively support the operation of functional components implementing specific domains such as Wi-Fi, Ethernet, cable modem, and network management.
Apart from the CCSP components, a set of next-generation middleware components have been developed with a focus on improved performance and simplified design. These modern components provide direct HAL access to reduce abstraction layers between the component and hardware, asynchronous non-blocking I/O to prevent processing stalls, and efficient memory utilization through shared libraries instead of separate processes where appropriate.
The modern architecture emphasizes simplicity — through component consolidation, cleaner C++ interfaces with reduced boilerplate, improved documentation, and simplified code paths for easier debugging. It also emphasizes modularity — through a plugin architecture for feature extensibility, runtime configuration to enable or disable features without recompilation, clear dependency management, and backward-compatible versioning.
These components are progressively replacing their CCSP counterparts in an ongoing transition, with both architectures coexisting in current deployments.
The table below provides a consolidated view of all major RDK-B middleware components, encompassing both legacy CCSP components and their modern replacements.
| Component | Description |
|---|---|
| Component Registry | Central registry where components announce their presence and capabilities at startup. Maintains a mapping of TR-181 namespaces to component names (e.g., Device.WiFi.* → OneWifi), performs health monitoring through periodic heartbeat checks, provides discovery services for components to locate each other without hardcoded dependencies, and supports namespace conflict resolution when multiple components claim the same parameters. |
| CcspPandM | Manages device-level provisioning and parameter management, including first-boot configuration, factory reset handling, and TR-181 namespaces such as Device.DeviceInfo.*, Device.Time.*, and Device.UserInterface.*. Acts as the TR-181 gateway, receiving requests from XCONF or WebPA agents and routing them to the appropriate components via Component Registry lookups. |
| CcspPsm | Persistent Storage Manager providing database services (XML or SQLite) for parameter storage, with in-memory caching for fast access. Handles configuration persistence across reboots, backup and restore operations, and transactional support for atomic multi-parameter updates. |
| CcspCommonLibrary | Shared library suite that simplifies IPC operations with wrapper functions, provides a data model framework with TR-181 type conversions, offers component infrastructure for registration and message handling, and supplies utility functions for logging, memory management, and string operations. |
| CcspEthAgent | Manages Ethernet wired networking operations including physical port configuration, link state management, and statistics collection. Monitors interface status, tracks traffic metrics, and configures port-level parameters such as duplex mode and speed. |
| CcspCMAgent | Interfaces with cable modem hardware to monitor DOCSIS WAN connectivity and provide modem diagnostics. Tracks signal quality metrics, channel bonding status, downstream/upstream channel details, and modem operational state. |
| CcspLMLite | Discovers and tracks LAN-connected devices through active monitoring of ARP tables and DHCP lease information. Maintains a real-time inventory of connected hosts including MAC addresses, IP addresses, hostnames, and connection timestamps. |
| CcspDmCli | Command-line utility for TR-181 operations, enabling parameter get/set, table operations, component discovery, and runtime debugging during development. |
| RDK WAN Manager | Central orchestrator for WAN connectivity, managing multiple interface types (Ethernet, DOCSIS, DSL, GPON, LTE, PPPoE) with multi-WAN support. Implements automatic failover using ping/HTTP/DNS health checks, load balancing across connections, and policy-based routing for application-aware traffic decisions. |
| RDK VLAN Bridge Manager | Configures VLANs and bridges for service segmentation across IPTV, VoIP, data, guest networks, and IoT. Supports 802.1Q tagging, QinQ nested VLANs, dynamic VLAN creation, and service-to-VLAN mapping. |
| OneWiFi | Unified Wi-Fi management component replacing CcspWiFiAgent, CcspHotspot, and vendor-specific Wi-Fi managers. Manages all radios and SSIDs from a single process with Wi-Fi 6/6E support (OFDMA, TWT, BSS coloring, WPA3), client steering across 2.4 GHz/5 GHz/6 GHz bands, and mesh networking capabilities. |
| RDK GPON Manager | Controls GPON/EPON optical interfaces for fiber broadband deployments. Manages ONU/ONT operations including optical signal monitoring, ranging, registration, power control, OMCI protocol handling, and service provisioning from the OLT. |
| RDK PPP Manager | Establishes PPPoE/PPPoA connections with PAP/CHAP/MS-CHAP authentication, dynamic IP and DNS configuration, automatic reconnection on failure, and support for VLAN-tagged sessions. |
| RDK Telco Voice Manager | Manages VoIP services including SIP registration, codec handling (G.711, G.729, G.722), call features (call waiting, forwarding, caller ID), RTP/SRTP media with QoS enforcement, and FXS/FXO port control. |
| RDK Cellular Manager | Controls LTE/5G modems for cellular WAN connectivity. Handles modem power and firmware management, SIM operations (PIN/PUK, eSIM), network registration (2G/3G/LTE/5G), PDP context activation, and data usage tracking. |
RDK-B uses RBUS as the RDK IPC mechanism. RBUS was developed to address performance and complexity issues of D-Bus, and is progressively replacing it as components transition from CCSP to the modern architecture. During this transition, both mechanisms coexist to maintain compatibility.
RBUS uses a three-layer architecture: the RBUS API Layer provides TR-181-aligned APIs for properties, methods, events, and table operations; the RBUS-Core Layer handles RPC, event publish/subscribe, registration, and discovery; and the rtMessage Layer provides lightweight binary protocol over Unix domain sockets or TCP.
The protocol uses direct point-to-point communication with binary protocol, enabling faster operations compared to legacy mechanisms. RBUS provides event-driven communication where value change notifications automatically update subscribers when parameters change, eliminating polling. Wildcard subscriptions support patterns ("Device.Wi-Fi.Radio.*.Enable") and namespace matching ("Device.Wi-Fi.**"), with event filtering to deliver only events matching specified criteria.
RDK-B uses TR-181 as the common data model across all management protocols and interfaces, providing vendor interoperability through consistent parameter naming and enabling operational efficiency with common tools across device fleets.
Structure:
Component Ownership in RDK-B:
The following diagram illustrates a typical TR-181 request flow using an Ethernet port configuration example:
%%{init: { "config": { "useMaxWidth": false } }}%%
sequenceDiagram
participant Cloud as Cloud ACS
participant Agent as Protocol Agent
participant Registry as Component Registry/RBUS
participant Component as CcspEthAgent
participant HAL as Ethernet HAL
participant HW as Hardware
participant PSM
Cloud->>Agent: SetParameterValues<br/>Device.Ethernet.Interface.1.Enable=true
Agent->>Agent: Validate auth/authz
Agent->>Registry: Lookup component for<br/>Device.Ethernet.Interface.1.Enable
Registry-->>Agent: CcspEthAgent
Agent->>Component: IPC request
Component->>Component: Validate value<br/>Check interface state
Component->>HAL: HAL API for platform operation
HAL->>HW: Vendor-specific commands
HW-->>HAL: Success
HAL-->>Component: Return 0
Component->>PSM: Persist value
Component->>Registry: Publish value change event
Component-->>Agent: Success response
Agent->>Cloud: 200 OK
Flow Steps:
RDK-B components interact using patterns that balance performance, maintainability, and system complexity. Three primary patterns govern component communication.
sequenceDiagram
participant App as Application
participant MW as Middleware
participant HAL
participant HW as Hardware
App->>MW: Get/Set Parameter
MW->>MW: Validate input<br/>Check state
MW->>HAL: HAL API call
HAL->>HW: Vendor command
HW-->>HAL: Response
HAL-->>MW: Return value
MW-->>App: Success/Failure
Synchronous, top-down pattern for simple get/set operations. Requests flow from application through middleware (business logic, validation) to HAL (hardware abstraction) to platform (vendor implementation). Caller blocks waiting for response.
Use Cases: Configuration queries, single parameter updates, status reads that complete in <100ms
sequenceDiagram
participant HW as Hardware
participant HAL
participant Pub as Publisher
participant Bus as RBUS
participant Sub1 as Subscriber 1<br/>(Telemetry)
participant Sub2 as Subscriber 2<br/>(WAN Mgr)
participant Sub3 as Subscriber 3<br/>(Analytics)
HW->>HAL: Interrupt/Event
HAL->>Pub: Callback notification
Pub->>Bus: Publish event
Bus->>Sub1: Event delivery
Bus->>Sub2: Event delivery
Bus->>Sub3: Event delivery
Note over Sub1,Sub3: Process independently<br/>and asynchronously
Asynchronous publish/subscribe pattern where producers publish events and multiple consumers react independently. Hardware events flow from driver through HAL to middleware, which publishes RBUS events received by subscribers (Telemetry, WAN Manager, Analytics).
Use Cases: Wi-Fi client association/disassociation, WAN link up/down events, DHCP lease changes, system alarms, real-time telemetry
sequenceDiagram
participant CM as CcspCMAgent
participant WAN as RDK WAN Manager
participant Cell as RDK Cellular Manager
participant Net as Network<br/>(routing/NAT)
participant Cloud
Note over CM: DOCSIS link down detected
CM->>WAN: RBUS event: DOCSISStatus=Down
WAN->>WAN: Check WAN policy<br/>Cable Pri=1, Cellular Pri=2
WAN->>WAN: Validate cellular backup<br/>SIM valid, signal OK
WAN->>Cell: Activate cellular interface
Note over Cell: Modem power-on: 1-2s<br/>Network registration: 2-5s<br/>PDP context: 1-3s
Cell->>Cell: Configure wwan0 interface
Cell->>WAN: RBUS event: Cellular Up
WAN->>Net: Update default route to wwan0
WAN->>Net: Update NAT/firewall for wwan0
WAN->>Net: Configure DNS to cellular servers
WAN->>WAN: Verify connectivity<br/>ping, DNS, HTTP
WAN->>WAN: Update TR-181 parameters
WAN->>Cloud: Publish failover event
Note over CM,Cloud: Total failover: ~12 seconds
loop Monitor Primary
WAN->>CM: Check DOCSIS status every 10s
end
Note over WAN: When cable recovers,<br/>wait 60s stability,<br/>then failback
When a primary DOCSIS connection fails, the RDK-B gateway automatically switches to LTE backup. CcspCMAgent detects DOCSIS link down within 2 seconds and publishes RBUS event (Device.X_CISCO_COM_CableModem.DOCSISStatus = "Down"). RDK WAN Manager receives the event, retrieves WAN policy from PSM (Cable Priority 1, Cellular Priority 2 with AUTO failover), and validates cellular backup (SIM validity, signal strength, regulatory status, data plan).
WAN Manager invokes RDK Cellular Manager via RBUS to activate cellular. Cellular Manager powers on modem (1-2s), performs network registration with LTE band scanning (2-5s), and establishes PDP context with carrier gateway (1-3s), totaling 4-10 seconds. After receiving IP configuration (carrier-grade NAT IP, gateway, DNS, MTU), Cellular Manager configures wwan0 interface and publishes "Cellular Up" event.
WAN Manager reconfigures the system: updates routing (default route to wwan0), updates NAT/firewall rules (MASQUERADE for wwan0), and configures DNS forwarder for cellular servers. After connectivity verification (ping, DNS, HTTP), WAN Manager updates TR-181 parameters, persists configuration via PSM, and publishes failover events to cloud for monitoring. Total failover time: ~12 seconds.
WAN Manager monitors primary cable every 10 seconds. On recovery, it verifies 60-second stability before automatic failback to the preferred lower-cost, higher-speed cable connection.