
{"id":9594,"date":"2022-06-21T13:52:51","date_gmt":"2022-06-21T13:52:51","guid":{"rendered":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsphomesecurity\/"},"modified":"2026-04-14T07:31:00","modified_gmt":"2026-04-14T07:31:00","slug":"ccsphomesecurity","status":"publish","type":"page","link":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsphomesecurity\/","title":{"rendered":"Home-Security"},"content":{"rendered":"\n<p>CcspHomeSecurity is the RDK-B component responsible for providing Home Network Administration Protocol (HNAP) server functionality for managing home security devices and settings. This component serves as a protocol adapter that bridges HNAP requests from external clients to the CCSP data model infrastructure, enabling remote management and configuration of home security devices through standardized HNAP interfaces. CcspHomeSecurity implements HNAP 1.0 protocol specifications and provides device abstraction layer for accessing various device settings, network configurations, and security parameters through XML-based SOAP messaging.<\/p>\n\n\n\n<p>The component acts as a standalone HTTP server listening for HNAP requests and translating them into CCSP message bus calls to access the underlying data model. It handles authentication, request parsing, method dispatching, and response generation for all supported HNAP operations.<\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">graph LR\n    subgraph \"External Systems\"\n        Remote[Remote Management&lt;br\/>HNAP Clients]\n    end\n\n    subgraph \"RDK-B Middleware Layer\"\n        HomeSecurity[CcspHomeSecurity&lt;br\/>HNAP Server]\n        CR[Component Registry&lt;br\/>CcspCr]\n        PandM[CcspPandM&lt;br\/>Provisioning &amp; Management]\n        WiFi[WiFi Agent&lt;br\/>CcspWiFiAgent\/OneWifi]\n        PSM[PSM&lt;br\/>Configuration Storage]\n    end\n\n    subgraph \"System Layer\"\n        MBus[CCSP Message Bus]\n        Syscfg[Syscfg&lt;br\/>Local Storage]\n    end\n\n    Remote -->|HTTP POST \/HNAP1&lt;br\/>SOAP XML| HomeSecurity\n    HomeSecurity -->|Component Discovery| CR\n    HomeSecurity -->|Message Bus&lt;br\/>Parameter Access| MBus\n    MBus -->|DeviceInfo, Time, UserInterface&lt;br\/>NAT, Users, DHCP, DNS| PandM\n    MBus -->|WiFi Radio, AccessPoint| WiFi\n    MBus -->|TR-181 Persistence| PSM\n    HomeSecurity -->|syscfg_get| Syscfg\n\n    classDef external fill:#f9d5e5,stroke:#c75b7a,stroke-width:2px;\n    classDef rdkb fill:#e3f2fd,stroke:#1976d2,stroke-width:2px;\n    classDef system fill:#f1f8e9,stroke:#558b2f,stroke-width:2px;\n\n    class Remote external\n    class HomeSecurity,CR,PandM,WiFi,PSM rdkb\n    class MBus,Syscfg system<\/pre><\/div>\n\n\n\n<p><strong>Key Features &amp; Responsibilities<\/strong>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>HNAP Protocol Server<\/strong>: Implements HNAP 1.0 server functionality including HTTP request handling, SOAP\/XML parsing, and response generation for home network device management operations<\/li>\n\n\n\n<li><strong>Device Settings Management<\/strong>: Provides access to device configuration parameters including network settings, wireless configurations, firmware information, and administrative credentials through HNAP interfaces<\/li>\n\n\n\n<li><strong>Authentication and Security<\/strong>: Implements HTTP Basic Authentication for HNAP requests with hardcoded credential validation to ensure secure access to device management functions<\/li>\n\n\n\n<li><strong>CCSP Data Model Integration<\/strong>: Translates HNAP method calls into CCSP message bus operations for reading and writing TR-181 data model parameters across multiple RDK-B components<\/li>\n\n\n\n<li><strong>Network Management APIs<\/strong>: Exposes HNAP methods for network configuration including LAN settings, wireless settings, port mappings, MAC filtering, and connected device enumeration<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"HomeSecurity-Design\">Design<\/h2>\n\n\n\n<p>CcspHomeSecurity follows a request-response architecture designed around the HNAP protocol specification. The design emphasizes protocol compliance, secure authentication, and seamless integration with the CCSP middleware infrastructure. The component operates as a single-threaded HTTP server that processes HNAP requests synchronously, parsing incoming XML payloads, dispatching to appropriate method handlers, and generating XML responses.<\/p>\n\n\n\n<p>The architecture separates HNAP protocol handling from device-specific operations through a well-defined abstraction layer. The core protocol engine manages HTTP communication, XML serialization\/deserialization, and SOAP message processing, while the Abstract Device Interface (ADI) layer provides device-agnostic implementations of HNAP methods. The device glue layer connects ADI implementations to the CCSP message bus for accessing the underlying data model.<\/p>\n\n\n\n<p>The northbound interface accepts HTTP POST requests on the&nbsp;<code>\/HNAP1<\/code>&nbsp;endpoint, with SOAP Action headers identifying the requested method. The southbound interface utilizes CCSP message bus APIs for component discovery, parameter retrieval, and parameter modification across the RDK-B middleware stack. The component registers with the message bus as a client and discovers component destinations through the Component registry. TR-181 parameter persistence is handled by data model components (CcspPandM, CcspWiFiAgent\/OneWifi) through PSM integration after HNAP-initiated parameter changes are committed.<\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">graph LR\n    subgraph ExternalSystems [\"External Systems\"]\n        CR[Component Registry&lt;br\/>CcspCr]\n        PandM[CcspPandM]\n        WiFi[CcspWiFiAgent\/OneWifi]\n        PSM[PSM]\n        Syscfg[Syscfg]\n    end\n\n    subgraph CcspHomeSecurity [\"CcspHomeSecurity\"]\n        subgraph HTTPServer [\"HTTP\/HNAP Protocol Handler\"]\n            HNAPServer[HNAP Server&lt;br\/>hnapd.c]\n            HDKCore[HDK Core&lt;br\/>hdk.c]\n            HDKContext[Context Manager&lt;br\/>hdk_context.c]\n        end\n\n        subgraph MethodDispatch [\"Method Dispatch Layer\"]\n            HDKMethods[Method Handlers&lt;br\/>hdk_methods.c]\n            HDKADI[Abstract Device Interface&lt;br\/>hdk_adi.c]\n        end\n\n        subgraph DataAccess [\"Data Access Layer\"]\n            HDKDevice[Device Glue&lt;br\/>hdk_device.c]\n            HDKMBus[Message Bus Client&lt;br\/>hdk_ccsp_mbus.c]\n        end\n\n        subgraph Utilities [\"Utilities\"]\n            HDKEncode[Encoding Utilities&lt;br\/>hdk_encode.c]\n            HDKData[Data Structures&lt;br\/>hdk_data.c]\n        end\n\n        HNAPServer -->|Parse Request| HDKCore\n        HDKCore -->|Method Dispatch| HDKMethods\n        HDKMethods -->|Call ADI| HDKADI\n        HDKADI -->|Device Operations| HDKDevice\n        HDKDevice -->|CCSP APIs| HDKMBus\n        HDKCore -->|XML Processing| HDKEncode\n        HDKCore -->|Data Types| HDKData\n        HDKContext -->|Manage State| HNAPServer\n    end\n\n    CR -->|Component Discovery| HDKMBus\n    PandM -->|TR-181 Parameters| HDKMBus\n    WiFi -->|TR-181 Parameters| HDKMBus\n    PSM -.->|TR-181 Persistence| PandM\n    PSM -.->|TR-181 Persistence| WiFi\n    Syscfg -->|Config Flags| HDKDevice\n\n    classDef external fill:#fce4ec,stroke:#c2185b,stroke-width:2px\n    classDef server fill:#e1f5fe,stroke:#0277bd,stroke-width:2px\n    classDef dispatch fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px\n    classDef data fill:#fff3e0,stroke:#ef6c00,stroke-width:2px\n    classDef util fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px\n\n    class CR,PandM,WiFi,PSM,Syscfg external\n    class HNAPServer,HDKCore,HDKContext server\n    class HDKMethods,HDKADI dispatch\n    class HDKDevice,HDKMBus data\n    class HDKEncode,HDKData util<\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"HomeSecurity-PrerequisitesandDependencies\">Prerequisites and Dependencies<\/h3>\n\n\n\n<p><strong>Build-Time Flags and Configuration:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Configure Option<\/strong><\/td><td><strong>DISTRO Feature<\/strong><\/td><td><strong>Build Flag<\/strong><\/td><td><strong>Purpose<\/strong><\/td><td><strong>Default<\/strong><\/td><\/tr><tr><td><code>--enable-mountutils<\/code><\/td><td><code>MountUtils<\/code><\/td><td><code>LIBRDKCONFIG_BUILD<\/code><\/td><td>Enable rdkconfig library for configuration file management as replacement for mountutils<\/td><td>Disabled<\/td><\/tr><tr><td><code>--enable-unitTestDockerSupport<\/code><\/td><td>N\/A<\/td><td><code>UNIT_TEST_DOCKER_SUPPORT<\/code><\/td><td>Enable Docker-based unit testing infrastructure with mock components<\/td><td>Disabled<\/td><\/tr><tr><td>N\/A<\/td><td><code>safec<\/code><\/td><td><code>SAFEC_DUMMY_API<\/code><\/td><td>Define dummy SafeC API macros when SafeC library is not available<\/td><td>Enabled when safec absent<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>RDK-B Platform and Integration Requirements:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Build Dependencies<\/strong>:\u00a0<code>libxml2<\/code>,\u00a0<code>ccsp-common-library<\/code>,\u00a0<code>utopia<\/code>,\u00a0<code>curl<\/code>,\u00a0<code>mountutils<\/code>\u00a0(from ccsp-home-security.bb)<\/li>\n\n\n\n<li>Note:\u00a0<code>utopia<\/code>\u00a0integration is handled through CcspPandM component<\/li>\n\n\n\n<li><strong>RDK-B Components<\/strong>:<\/li>\n\n\n\n<li><code>CcspCr<\/code>\u00a0(Component Registry) &#8211; required for dynamic component discovery<\/li>\n\n\n\n<li><code>CcspPandM<\/code>\u00a0(Provisioning and Management) &#8211; provides TR-181 data model namespaces required for HNAP device management operations:\n<ul class=\"wp-block-list\">\n<li><code>Device.DeviceInfo.*<\/code>\u00a0&#8211; Model name, manufacturer, description, firmware version for HNAP GetDeviceSettings\/GetDeviceSettings2 responses<\/li>\n\n\n\n<li><code>Device.UserInterface.*<\/code>\u00a0&#8211; Remote access settings (HTTP\/HTTPS enable, ports), language\/locale for HNAP ManageRemote and GetRouterSettings operations<\/li>\n\n\n\n<li><code>Device.Time.*<\/code>\u00a0&#8211; Timezone and daylight saving configuration for HNAP SetRouterSettings\/GetRouterSettings time management<\/li>\n\n\n\n<li><code>Device.NAT.PortMapping.*<\/code>\u00a0&#8211; Port forwarding rules management for home security VLAN (filter by 192.168.106.* prefix) in HNAP GetPortMappings\/SetPortMappings methods<\/li>\n\n\n\n<li><code>Device.Users.User.*<\/code>\u00a0&#8211; Admin username and password retrieval for HNAP authentication and device settings operations<\/li>\n\n\n\n<li><code>Device.DHCPv4.Server.Pool.*<\/code>\u00a0(via X_CISCO_COM_MultiLAN paths) &#8211; DHCP server configuration including IP range, lease time, static reservations for HNAP LAN and DHCP management<\/li>\n\n\n\n<li><code>Device.DNS.*<\/code>\u00a0&#8211; DNS server settings for WAN configuration in HNAP SetWanSettings\/GetWanSettings operations<\/li>\n\n\n\n<li><code>Device.X_CISCO_COM_MultiLAN.*<\/code>\u00a0&#8211; Home security VLAN-specific paths for DHCP pool, WiFi AP, and radio mappings enabling isolation of home security network<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><code>CcspWiFiAgent\/OneWifi<\/code>\u00a0&#8211; provides Device.WiFi data model namespace for wireless configuration<\/li>\n\n\n\n<li><code>PSM<\/code>\u00a0(Persistent Storage Manager) &#8211; optional for TR-181 parameter persistence<\/li>\n\n\n\n<li><strong>HAL Dependencies<\/strong>: HAL interaction through CcspPandM and CcspWiFiAgent\/OneWifi components<\/li>\n\n\n\n<li><strong>Systemd Services<\/strong>:<\/li>\n\n\n\n<li>Component Registry service must be active before CcspHomeSecurity starts<\/li>\n\n\n\n<li>CcspPandM must be running to provide Device.DeviceInfo, Device.Time, Device.UserInterface, Device.NAT, Device.Users, Device.DHCPv4, Device.DNS parameters<\/li>\n\n\n\n<li>CcspWiFiAgent\/OneWifi must be running to provide Device.WiFi parameters<\/li>\n\n\n\n<li><strong>Message Bus<\/strong>: CCSP message bus client registration using CCSP_Message_Bus_Init() from hdk_ccsp_mbus.c<\/li>\n\n\n\n<li><strong>Configuration Files<\/strong>: Syscfg configuration database for HomeSecurityEthernet4Flag flag (read-only access)<\/li>\n\n\n\n<li><strong>Startup Order<\/strong>: Initialize after message bus, Component Registry, CcspPandM, and CcspWiFiAgent\/OneWifi are operational<\/li>\n<\/ul>\n\n\n\n<p><strong>Threading Model:<\/strong><\/p>\n\n\n\n<p>CcspHomeSecurity implements a single-threaded architecture centered around a synchronous HTTP request processing loop.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Threading Architecture<\/strong>: Single-threaded with blocking I\/O<\/li>\n\n\n\n<li><strong>Main Thread<\/strong>: Handles all HTTP server operations including socket accept, request parsing, HNAP method execution, and response generation in a sequential manner<\/li>\n\n\n\n<li><strong>Synchronization<\/strong>: Single-threaded design eliminates need for explicit synchronization mechanisms<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"HomeSecurity-ComponentStateFlow\">Component State Flow<\/h3>\n\n\n\n<p><strong>Initialization to Active State<\/strong><\/p>\n\n\n\n<p>CcspHomeSecurity follows a straightforward initialization sequence focused on establishing message bus connectivity and starting the HTTP server.<\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">sequenceDiagram\n    autonumber\n    participant System as System Startup\n    participant Component as CcspHomeSecurity\n    participant MBus as Message Bus\n    participant Syscfg as Syscfg\n    participant Socket as Network Socket\n\n    System->>Component: Start Process\n    Note over Component: State: Initializing\n\n    Component->>MBus: Initialize Message Bus Client\n    MBus-->>Component: Bus Handle\n    Note over Component: State: Message Bus Connected\n\n    Component->>MBus: Register Component\n    MBus-->>Component: Registration Success\n\n    Component->>Syscfg: Load Configuration\n    Syscfg-->>Component: Configuration Data\n\n    Component->>Socket: Create Listen Socket\n    Note over Socket: Port specified via&lt;br\/>command-line argument\n    Socket-->>Component: Socket Descriptor\n\n    Component->>Socket: Bind and Listen\n    Socket-->>Component: Ready\n    Note over Component: State: Active - Accepting Connections\n\n    loop HTTP Request Processing\n        Socket->>Component: Accept Connection\n        Component->>Component: Process HNAP Request\n        Component->>Socket: Send Response\n        Component->>Socket: Close Connection\n    end\n\n    System->>Component: Shutdown Signal\n    Component->>Socket: Close Listen Socket\n    Component->>MBus: Disconnect\n    Note over Component: State: Terminated<\/pre><\/div>\n\n\n\n<p><strong>Runtime State Changes and Context Switching<\/strong><\/p>\n\n\n\n<p>During normal operation, CcspHomeSecurity maintains a steady state while processing HNAP requests sequentially.<\/p>\n\n\n\n<p><strong>State Change Triggers:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Message bus disconnection events requiring reconnection attempts to restore data model access<\/li>\n\n\n\n<li>Configuration parameter changes through TR-181 data model affecting device settings<\/li>\n\n\n\n<li>Network socket errors causing server restart or connection handling failures<\/li>\n<\/ul>\n\n\n\n<p><strong>Context Switching Scenarios:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Switching between authenticated and unauthenticated request handling based on HNAP method requirements<\/li>\n\n\n\n<li>Transitioning between read-only operations (GetDeviceSettings) and write operations (SetDeviceSettings) requiring different data model access patterns<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"HomeSecurity-CallFlow\">Call Flow<\/h3>\n\n\n\n<p><strong>Initialization Call Flow:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">sequenceDiagram\n    participant Init as Main Function\n    participant MBus as Message Bus Module\n    participant Server as HTTP Server\n    participant Syscfg as Syscfg\n\n    Init->>MBus: MBus_Create()\n    MBus-->>Init: MBus Object\n\n    Init->>Syscfg: syscfg_init()\n    Syscfg-->>Init: Success\n\n    Init->>Server: HTTP_ServerInit()\n    Server->>Server: socket(), bind(), listen()\n    Server-->>Init: Ready\n\n    Init->>Server: HTTP_ServerRun()\n    Note over Server: Enter main accept() loop\n    Server-->>Init: Initialization Complete (Active State)<\/pre><\/div>\n\n\n\n<p><strong>Request Processing Call Flow:<\/strong><\/p>\n\n\n\n<p>The most critical flow is processing an HNAP GetDeviceSettings request, which demonstrates the complete request-response cycle.<\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">sequenceDiagram\n    participant Client as HNAP Client\n    participant Server as HTTP Server&lt;br\/>(hnapd.c)\n    participant Core as HNAP Core&lt;br\/>(hdk.c)\n    participant Method as Method Handler&lt;br\/>(hdk_methods.c)\n    participant ADI as Abstract Device&lt;br\/>(hdk_adi.c)\n    participant Device as Device Glue&lt;br\/>(hdk_device.c)\n    participant MBus as Message Bus&lt;br\/>(hdk_ccsp_mbus.c)\n    participant CR as Component Registry&lt;br\/>CcspCr\n    participant PandM as CcspPandM\n    participant WiFi as CcspWiFiAgent\/OneWifi\n\n    Client->>Server: HTTP POST \/HNAP1&lt;br\/>SOAPAction: GetDeviceSettings\n    Server->>Server: HTTP_ParseHeaders()\n    Server->>Server: HTTP_AuthDecode()\n    Note over Server: Validate credentials via syscfg\n\n    Server->>Core: HDK_HandleRequest()\n    Core->>Core: HDK_Request_Init()\n    Note over Core: Parse SOAP XML request\n\n    Core->>Method: HDK_Method_PN_GetDeviceSettings()\n    Method->>ADI: HDK_ADI_PN_GetDeviceSettings()\n\n    ADI->>Device: HDK_Device_GetValue(DeviceInfo.ModelName)\n    Device->>MBus: MBus_GetParamVal(\"Device.DeviceInfo.ModelName\")\n    MBus->>CR: CcspBaseIf_discComponentSupportingNamespace()\n    CR-->>MBus: Component: com.cisco.spvtg.ccsp.pam\n    MBus->>PandM: CcspBaseIf_getParameterValues()\n    PandM-->>MBus: Value: \"XB6\"\n    MBus-->>Device: Value\n    Device-->>ADI: Value\n\n    ADI->>Device: HDK_Device_GetValue(UserInterface.RemoteAccess)\n    Device->>MBus: MBus_GetParamVal(\"Device.UserInterface...\")\n    MBus->>CR: CcspBaseIf_discComponentSupportingNamespace()\n    CR-->>MBus: Component: com.cisco.spvtg.ccsp.pam\n    MBus->>PandM: CcspBaseIf_getParameterValues()\n    PandM-->>MBus: Value\n    MBus-->>Device: Value\n    Device-->>ADI: Value\n\n    ADI->>Device: HDK_Device_GetValue(WiFi Settings)\n    Device->>MBus: MBus_GetParamVal(\"Device.WiFi.Radio...\")\n    MBus->>CR: CcspBaseIf_discComponentSupportingNamespace()\n    CR-->>MBus: Component: com.cisco.spvtg.ccsp.wifi\n    MBus->>WiFi: CcspBaseIf_getParameterValues()\n    WiFi-->>MBus: Value\n    MBus-->>Device: Value\n    Device-->>ADI: Value\n\n    ADI->>ADI: Build response struct\n    ADI-->>Method: Response struct\n    Method-->>Core: Response struct\n\n    Core->>Core: HDK_EncodeResponse()\n    Note over Core: Generate SOAP XML response\n    Core-->>Server: XML response\n\n    Server->>Client: HTTP 200 OK&lt;br\/>SOAP XML Response<\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"HomeSecurity-InternalModules\">Internal Modules<\/h2>\n\n\n\n<p>CcspHomeSecurity is organized into specialized modules handling protocol processing, method dispatch, and data access layers.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Module\/Class<\/strong><\/td><td><strong>Description<\/strong><\/td><td><strong>Key Files<\/strong><\/td><\/tr><tr><td><strong>HTTP\/HNAP Server<\/strong><\/td><td>Main HTTP server daemon processing incoming HNAP requests, handling socket operations, HTTP header parsing, and authentication validation<\/td><td><code>hnapd.c<\/code><\/td><\/tr><tr><td><strong>HNAP Protocol Engine<\/strong><\/td><td>Core HNAP protocol implementation managing request parsing, method routing, SOAP message processing, and XML response generation<\/td><td><code>hdk.c<\/code>,&nbsp;<code>hdk.h<\/code><\/td><\/tr><tr><td><strong>Context Manager<\/strong><\/td><td>Request context management maintaining per-request state including file handles, authentication status, and reboot flags<\/td><td><code>hdk_context.c<\/code>,&nbsp;<code>hdk_context.h<\/code><\/td><\/tr><tr><td><strong>Method Handlers<\/strong><\/td><td>HNAP method callback implementations providing entry points for all supported HNAP operations with request validation and response preparation<\/td><td><code>hdk_methods.c<\/code>,&nbsp;<code>hdk_methods.h<\/code><\/td><\/tr><tr><td><strong>Abstract Device Interface<\/strong><\/td><td>Device-agnostic HNAP method implementations providing logical operations for device management without platform-specific details<\/td><td><code>hdk_adi.c<\/code>,&nbsp;<code>hdk_adi.h<\/code><\/td><\/tr><tr><td><strong>Device Glue Layer<\/strong><\/td><td>Platform-specific device operations connecting HNAP ADI layer to CCSP data model through message bus APIs and syscfg storage<\/td><td><code>hdk_device.c<\/code><\/td><\/tr><tr><td><strong>Message Bus Client<\/strong><\/td><td>CCSP message bus integration providing parameter get\/set operations, component discovery, and data model object manipulation<\/td><td><code>hdk_ccsp_mbus.c<\/code>,&nbsp;<code>hdk_ccsp_mbus.h<\/code><\/td><\/tr><tr><td><strong>Encoding Utilities<\/strong><\/td><td>XML and Base64 encoding\/decoding functions for SOAP message processing and authentication credential handling<\/td><td><code>hdk_encode.c<\/code>,&nbsp;<code>hdk_encode.h<\/code><\/td><\/tr><tr><td><strong>Data Structures<\/strong><\/td><td>HNAP type system implementation including structures, enumerations, and type conversion utilities for protocol data representation<\/td><td><code>hdk_data.c<\/code>,&nbsp;<code>hdk_data.h<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"HomeSecurity-ComponentInteractions\">Component Interactions<\/h2>\n\n\n\n<p>CcspHomeSecurity maintains interactions with CCSP middleware components and system services for data model access and configuration management.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"HomeSecurity-InteractionMatrix\">Interaction Matrix<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Target Component\/Layer<\/strong><\/td><td><strong>Interaction Purpose<\/strong><\/td><td><strong>Key APIs\/Endpoints<\/strong><\/td><\/tr><tr><td><strong>RDK-B Middleware Components<\/strong><\/td><td><\/td><td><\/td><\/tr><tr><td>CcspCr<\/td><td>Dynamic component discovery for TR-181 parameter access &#8211; queries which component owns specific data model namespaces before each parameter operation<\/td><td>Component namespace discovery via CCSP base APIs (hdk_ccsp_mbus.c)<\/td><\/tr><tr><td>CcspPandM<\/td><td>Retrieve device information, network settings, and system configuration for HNAP GetDeviceSettings, SetRouterSettings, GetRouterSettings, port forwarding, DHCP management<\/td><td><strong>TR-181 Parameters<\/strong>&nbsp;(accessed via hdk_device.c):&lt;br\/&gt;\u2022&nbsp;<code>Device.DeviceInfo.ModelName<\/code>,&nbsp;<code>.Manufacturer<\/code>,&nbsp;<code>.Description<\/code>,&nbsp;<code>.X_CISCO_COM_FirmwareName<\/code>&lt;br\/&gt;\u2022&nbsp;<code>Device.UserInterface.X_CISCO_COM_RemoteAccess.HttpEnable\/HttpPort\/HttpsEnable\/HttpsPort<\/code>,&nbsp;<code>.CurrentLanguage<\/code>&lt;br\/&gt;\u2022&nbsp;<code>Device.Time.LocalTimeZone<\/code>,&nbsp;<code>.X_CISCO_COM_DaylightSavingAutoAdjust<\/code>&lt;br\/&gt;\u2022&nbsp;<code>Device.NAT.PortMapping.{i}.*<\/code>&nbsp;(InternalClient, InternalPort, ExternalPort, Protocol, Description)&lt;br\/&gt;\u2022&nbsp;<code>Device.Users.User.{i}.Username<\/code>,&nbsp;<code>.X_CISCO_COM_Password<\/code>&lt;br\/&gt;\u2022&nbsp;<code>Device.X_CISCO_COM_MultiLAN.HomeSecurityDHCPv4ServerPool<\/code>,&nbsp;<code>.PrimaryLANDHCPv4ServerPool<\/code>&lt;br\/&gt;\u2022 DHCP Pool:&nbsp;<code>.Enable<\/code>,&nbsp;<code>.MinAddress<\/code>,&nbsp;<code>.MaxAddress<\/code>,&nbsp;<code>.LeaseTime<\/code>,&nbsp;<code>.IPRouters<\/code>,&nbsp;<code>.SubnetMask<\/code>,&nbsp;<code>.DomainName<\/code>,&nbsp;<code>.Client.{i}.*<\/code>,&nbsp;<code>.StaticAddress.{i}.*<\/code><\/td><\/tr><tr><td>CcspWiFiAgent\/OneWifi<\/td><td>Wireless configuration and status retrieval for HNAP SetWiFiRadioSettings, SetWiFiSettings, GetWiFiRadioSettings<\/td><td><strong>TR-181 Parameters<\/strong>&nbsp;(accessed via hdk_device.c):&lt;br\/&gt;\u2022&nbsp;<code>Device.WiFi.Radio.{i}.*<\/code>&nbsp;(Enable, Channel, OperatingFrequencyBand, SupportedStandards)&lt;br\/&gt;\u2022&nbsp;<code>Device.WiFi.AccessPoint.{i}.*<\/code>&nbsp;(SSID, SSIDAdvertisementEnabled, Security modes, WPS settings)<\/td><\/tr><tr><td><strong>System &amp; HAL Layers<\/strong><\/td><td><\/td><td><\/td><\/tr><tr><td>CCSP Message Bus<\/td><td>IPC transport layer for all TR-181 CRUD operations &#8211; enables communication with dynamically discovered data model components<\/td><td>CCSP base APIs for parameter get\/set, table row operations, and commit via hdk_ccsp_mbus.c<\/td><\/tr><tr><td>Syscfg<\/td><td>Read-only configuration access for home security Ethernet interface flag<\/td><td><code>syscfg_get()<\/code>&nbsp;for&nbsp;<code>HomeSecurityEthernet4Flag<\/code>&nbsp;parameter (hnapd.c, hdk_device.c)&lt;br\/&gt;&lt;br\/&gt;<strong>Note<\/strong>: Component uses read-only syscfg access<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Events Published by CcspHomeSecurity:<\/strong><\/p>\n\n\n\n<p>CcspHomeSecurity operates as a request-response service processing HNAP requests synchronously. Event notifications to other components are handled by the data model components (CcspPandM, CcspWiFiAgent\/OneWifi) after parameter commits.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"HomeSecurity-IPCFlowPatterns\">IPC Flow Patterns<\/h3>\n\n\n\n<p><strong>Primary IPC Flow &#8211; HNAP Parameter Get with Dynamic Component Discovery:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">sequenceDiagram\n    participant Client as HNAP Client\n    participant Server as CcspHomeSecurity\n    participant MBus as Message Bus&lt;br\/>(hdk_ccsp_mbus.c)\n    participant CR as Component Registry&lt;br\/>CcspCr\n    participant PandM as CcspPandM\n\n    Client->>Server: HNAP Request (GetDeviceSettings)\n    Note over Server: Parse SOAP XML request\n\n    Server->>MBus: MBus_GetParamVal(\"Device.DeviceInfo.ModelName\")\n    MBus->>MBus: MBus_Process(MBUS_GETPARAM)\n    MBus->>CR: CcspBaseIf_discComponentSupportingNamespace&lt;br\/>(\"Device.DeviceInfo.\", subsystem)\n    Note over CR: Query component registry&lt;br\/>for namespace owner\n    CR-->>MBus: componentStruct: com.cisco.spvtg.ccsp.pam&lt;br\/>dbusPath: \/com\/cisco\/spvtg\/ccsp\/pam\n\n    MBus->>PandM: CcspBaseIf_getParameterValues&lt;br\/>([\"Device.DeviceInfo.ModelName\"])\n    Note over PandM: Retrieve parameter from&lt;br\/>internal data model\n    PandM-->>MBus: parameterValStruct: \"XB6\"\n    MBus-->>Server: Value: \"XB6\"\n\n    Note over Server: Build HNAP response struct\n    Server->>Server: HDK_EncodeResponse()\n    Server-->>Client: HTTP 200 OK (SOAP XML Response)<\/pre><\/div>\n\n\n\n<p><strong>Configuration Update Flow with Multi-Component Interaction:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">sequenceDiagram\n    participant Client as HNAP Client\n    participant Server as CcspHomeSecurity\n    participant Syscfg as Syscfg Storage\n    participant MBus as Message Bus\n    participant CR as Component Registry\n    participant PandM as CcspPandM\n    participant WiFi as CcspWiFiAgent\/OneWifi\n\n    Client->>Server: HNAP Request (SetWiFiRadioSettings)\n    Note over Server: Parse and validate request\n\n    alt Authentication Update (Local)\n        Server->>Syscfg: syscfg_set(\"admin_password\", value)\n        Syscfg-->>Server: Success\n        Server->>Syscfg: syscfg_commit()\n        Syscfg-->>Server: Persisted to flash\n    end\n\n    alt Remote Access Port (PandM)\n        Server->>MBus: MBus_SetParamVal&lt;br\/>(\"Device.UserInterface...HttpPort\", 8080)\n        MBus->>CR: CcspBaseIf_discComponentSupportingNamespace&lt;br\/>(\"Device.UserInterface.\")\n        CR-->>MBus: Component: CcspPandM\n        MBus->>PandM: CcspBaseIf_setParameterValues&lt;br\/>(commit=true)\n        PandM->>PandM: Update parameter &amp; commit\n        PandM-->>MBus: Success\n        MBus-->>Server: Success\n    end\n\n    alt WiFi Radio Enable (WiFi)\n        Server->>MBus: MBus_GetParamVal&lt;br\/>(\"Device.X_CISCO_COM_MultiLAN.HomeSecurityWiFiRadio\")\n        Note over MBus: Get WiFi radio instance path\n        MBus->>CR: Discover component\n        CR-->>MBus: Component: CcspPandM\n        MBus->>PandM: Get parameter\n        PandM-->>MBus: Path: \"Device.WiFi.Radio.2.\"\n        MBus-->>Server: Radio path\n\n        Server->>MBus: MBus_SetParamVal&lt;br\/>(\"Device.WiFi.Radio.2.Enable\", true)\n        MBus->>CR: CcspBaseIf_discComponentSupportingNamespace&lt;br\/>(\"Device.WiFi.Radio.2.Enable\")\n        CR-->>MBus: Component: CcspWiFiAgent\/OneWifi\n        MBus->>WiFi: CcspBaseIf_setParameterValues\n        WiFi->>WiFi: Configure radio hardware\n        WiFi-->>MBus: Success\n        MBus-->>Server: Success\n    end\n\n    Server->>Server: Build success response\n    Server-->>Client: HTTP 200 OK (SetWiFiRadioSettingsResponse)<\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"HomeSecurity-ImplementationDetails\">Implementation Details<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"HomeSecurity-HALIntegration\">HAL Integration<\/h3>\n\n\n\n<p><strong>HAL Integration Through Data Model:<\/strong><\/p>\n\n\n\n<p>CcspHomeSecurity accesses hardware functionality through data model components that provide HAL abstraction:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>WiFi Hardware Operations<\/strong>: Delegated to CcspWiFiAgent\/OneWifi component via Device.WiFi.* TR-181 parameters<\/li>\n\n\n\n<li><strong>Network Hardware Operations<\/strong>: Managed by CcspPandM component via Device.NAT.<em>, Device.DHCP.<\/em>, Device.DNS.* parameters<\/li>\n\n\n\n<li><strong>Device Hardware Information<\/strong>: Retrieved from CcspPandM via Device.DeviceInfo.* parameters<\/li>\n<\/ul>\n\n\n\n<p>CcspHomeSecurity operates as a protocol adapter layer, translating HNAP protocol requests into TR-181 data model operations through CCSP message bus. This design allows the component to access hardware functionality indirectly through data model components (CcspPandM, CcspWiFiAgent\/OneWifi), which handle the actual HAL API interactions.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"HomeSecurity-MessageBusAPIsIntegration\">Message Bus APIs Integration<\/h3>\n\n\n\n<p>CcspHomeSecurity utilizes CCSP message bus APIs for accessing the TR-181 data model across RDK-B components.<\/p>\n\n\n\n<p><strong>Core Message Bus Wrapper APIs:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Wrapper API<\/strong><\/td><td><strong>Purpose<\/strong><\/td><td><strong>Implementation File<\/strong><\/td><\/tr><tr><td><code>MBus_Create()<\/code><\/td><td>Initialize message bus object with subsystem configuration and component registration<\/td><td><code>hdk_ccsp_mbus.c<\/code><\/td><\/tr><tr><td><code>MBus_Destroy()<\/code><\/td><td>Clean up message bus resources and disconnect from bus<\/td><td><code>hdk_ccsp_mbus.c<\/code><\/td><\/tr><tr><td><code>MBus_GetParamVal()<\/code><\/td><td>Retrieve single parameter value from data model with component discovery<\/td><td><code>hdk_ccsp_mbus.c<\/code><\/td><\/tr><tr><td><code>MBus_SetParamVal()<\/code><\/td><td>Set single parameter value in data model with type validation<\/td><td><code>hdk_ccsp_mbus.c<\/code><\/td><\/tr><tr><td><code>MBus_SetParamVect()<\/code><\/td><td>Set multiple parameter values atomically with commit option<\/td><td><code>hdk_ccsp_mbus.c<\/code><\/td><\/tr><tr><td><code>MBus_Commit()<\/code><\/td><td>Commit pending parameter changes to persistent storage<\/td><td><code>hdk_ccsp_mbus.c<\/code><\/td><\/tr><tr><td><code>MBus_AddObjectIns()<\/code><\/td><td>Create new data model object instance and return instance number<\/td><td><code>hdk_ccsp_mbus.c<\/code><\/td><\/tr><tr><td><code>MBus_DelObjectIns()<\/code><\/td><td>Delete data model object instance by instance number<\/td><td><code>hdk_ccsp_mbus.c<\/code><\/td><\/tr><tr><td><code>MBus_FindObjectIns()<\/code><\/td><td>Find object instances matching specified parameter name and value criteria<\/td><td><code>hdk_ccsp_mbus.c<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"HomeSecurity-KeyImplementationLogic\">Key Implementation Logic<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>HTTP Server Engine<\/strong>: Single-threaded HTTP server implementation in\u00a0<code>hnapd.c<\/code>\u00a0using standard POSIX socket APIs with blocking accept\/read\/write operations for processing HNAP requests with configurable port specified as command line argument<\/li>\n\n\n\n<li><strong>HNAP Protocol Processing<\/strong>: XML-based SOAP message parsing and generation implemented in\u00a0<code>hdk.c<\/code>\u00a0using custom XML parser, with method dispatch based on SOAPAction header matching to registered HNAP method handlers<\/li>\n\n\n\n<li><strong>Authentication Mechanism<\/strong>: HTTP Basic Authentication validation implemented in\u00a0<code>hnapd.c<\/code>\u00a0with Base64-decoding of Authorization header and hardcoded credential verification in\u00a0<code>hdk_context.c<\/code>\u00a0using username &#8220;hnapadmin&#8221;<\/li>\n\n\n\n<li><strong>Device Abstraction Layer<\/strong>: Abstract Device Interface in\u00a0<code>hdk_adi.c<\/code>\u00a0provides device-agnostic implementations of HNAP methods, delegating device-specific operations to\u00a0<code>hdk_device.c<\/code>\u00a0glue layer for CCSP data model mapping<\/li>\n\n\n\n<li><strong>Error Handling Strategy<\/strong>: HNAP error codes mapped to\u00a0<code>HDK_Enum_Result<\/code>\u00a0enumeration with HTTP 200 responses containing SOAP fault details for protocol-level errors, and component-level error propagation through message bus return codes<\/li>\n\n\n\n<li><strong>Logging &amp; Debugging<\/strong>: Syslog-based logging using\u00a0<code>chs_log.h<\/code>\u00a0macros with severity levels (LOG_ERR, LOG_WARNING, LOG_INFO) for request processing, message bus operations, and error conditions<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"HomeSecurity-KeyConfigurationFiles\">Key Configuration Files<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Configuration File<\/strong><\/td><td><strong>Purpose<\/strong><\/td><td><strong>Override Mechanisms<\/strong><\/td><\/tr><tr><td>CCSP message bus config<\/td><td>Message bus configuration specifying R-Bus connection parameters referenced by CCSP_MSG_BUS_CFG macro<\/td><td>Environment variables for bus configuration paths<\/td><\/tr><tr><td>Syscfg database<\/td><td>HomeSecurityEthernet4Flag configuration flag<\/td><td><code>syscfg_set<\/code>&nbsp;command-line utility<\/td><\/tr><\/tbody><\/table><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>CcspHomeSecurity is the RDK-B component responsible for providing Home Network Administration Protocol (HNAP) server functionality [&hellip;]<\/p>\n","protected":false},"author":28,"featured_media":0,"parent":9575,"menu_order":5,"comment_status":"open","ping_status":"closed","template":"","meta":{"_bbp_topic_count":0,"_bbp_reply_count":0,"_bbp_total_topic_count":0,"_bbp_total_reply_count":0,"_bbp_voice_count":0,"_bbp_anonymous_reply_count":0,"_bbp_topic_count_hidden":0,"_bbp_reply_count_hidden":0,"_bbp_forum_subforum_count":0,"footnotes":""},"class_list":["post-9594","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Home-Security - RDK Documentation Portal | Documentation<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsphomesecurity\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Home-Security - RDK Documentation Portal | Documentation\" \/>\n<meta property=\"og:description\" content=\"CcspHomeSecurity is the RDK-B component responsible for providing Home Network Administration Protocol (HNAP) server functionality [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsphomesecurity\/\" \/>\n<meta property=\"og:site_name\" content=\"RDK Documentation Portal | Documentation\" \/>\n<meta property=\"article:modified_time\" content=\"2026-04-14T07:31:00+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsphomesecurity\/\",\"url\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsphomesecurity\/\",\"name\":\"Home-Security - RDK Documentation Portal | Documentation\",\"isPartOf\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/#website\"},\"datePublished\":\"2022-06-21T13:52:51+00:00\",\"dateModified\":\"2026-04-14T07:31:00+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsphomesecurity\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsphomesecurity\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsphomesecurity\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Documentation\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"RDK Broadband\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Components\",\"item\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"Home-Security\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/#website\",\"url\":\"https:\/\/developer.rdkcentral.com\/documentation\/\",\"name\":\"RDK Documentation Portal | Documentation\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/developer.rdkcentral.com\/documentation\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Home-Security - RDK Documentation Portal | Documentation","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsphomesecurity\/","og_locale":"en_US","og_type":"article","og_title":"Home-Security - RDK Documentation Portal | Documentation","og_description":"CcspHomeSecurity is the RDK-B component responsible for providing Home Network Administration Protocol (HNAP) server functionality [&hellip;]","og_url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsphomesecurity\/","og_site_name":"RDK Documentation Portal | Documentation","article_modified_time":"2026-04-14T07:31:00+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsphomesecurity\/","url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsphomesecurity\/","name":"Home-Security - RDK Documentation Portal | Documentation","isPartOf":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/#website"},"datePublished":"2022-06-21T13:52:51+00:00","dateModified":"2026-04-14T07:31:00+00:00","breadcrumb":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsphomesecurity\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsphomesecurity\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsphomesecurity\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/developer.rdkcentral.com\/documentation\/"},{"@type":"ListItem","position":2,"name":"Documentation","item":"https:\/\/developer.rdkcentral.com\/documentation\/"},{"@type":"ListItem","position":3,"name":"RDK Broadband","item":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/"},{"@type":"ListItem","position":4,"name":"Components","item":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/"},{"@type":"ListItem","position":5,"name":"Home-Security"}]},{"@type":"WebSite","@id":"https:\/\/developer.rdkcentral.com\/documentation\/#website","url":"https:\/\/developer.rdkcentral.com\/documentation\/","name":"RDK Documentation Portal | Documentation","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/developer.rdkcentral.com\/documentation\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/9594","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/users\/28"}],"replies":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/comments?post=9594"}],"version-history":[{"count":18,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/9594\/revisions"}],"predecessor-version":[{"id":12876,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/9594\/revisions\/12876"}],"up":[{"embeddable":true,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/9575"}],"wp:attachment":[{"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/media?parent=9594"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}