
{"id":9643,"date":"2022-06-21T13:52:55","date_gmt":"2022-06-21T13:52:55","guid":{"rendered":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsppandm\/"},"modified":"2026-02-17T10:03:09","modified_gmt":"2026-02-17T10:03:09","slug":"ccsppandm","status":"publish","type":"page","link":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsppandm\/","title":{"rendered":"CcspPandM"},"content":{"rendered":"\n<p>CcspPandM is the RDK-B middleware component that serves as the central provisioning and management engine for broadband residential gateway devices. It acts as the primary TR-181 data model provider, exposing device information, network configuration, firewall settings, and system management capabilities. The component implements the Device.DeviceInfo, Device.Time, Device.UserInterface, Device.Bridging, Device.Ethernet, Device.IP, Device.DNS, Device.Firewall, and other core TR-181 objects required for remote management via TR-069 and other protocols.<\/p>\n\n\n\n<p>P&amp;M functions as the backbone of device management operations, handling configuration persistence through PSM (Persistent Storage Manager), and managing system-wide parameters. It integrates with various RDK-B middleware components to maintain device state, enforce security policies, and coordinate network operations across the broadband stack.<\/p>\n\n\n\n<p>The component operates as a system service that must be initialized early in the boot sequence to provide essential TR-181 parameters to other middleware components, and external management systems. It serves as the source for device identity, capabilities, network configuration, and operational status information required for proper device operation and remote management.<\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">graph LR\n    subgraph \"External Systems\"\n        RemoteMgmt[\"Remote Management\"]\n        LocalUI[\"Local Web UI\"]\n    end\n\n    subgraph \"RDK-B Platform\"\n        subgraph \"Management Agents\"\n            ProtocolAgents[\"Protocol Agents&lt;br\/>(TR-069, USP, WebPA, webconfig)\"]\n        end\n\n        PandM[\"CcspPandM\"]\n        OtherComponents[\"Other RDK-B Components&lt;br\/>(WanManager, OneWiFi, etc.)\"]\n\n        subgraph \"System Layer\"\n            PlatformHAL[\"Platform HAL\"]\n            Linux[\"Linux System\"]\n        end\n    end\n\n    %% External connections\n    RemoteMgmt -->|TR-069\/WebPA\/USP| ProtocolAgents\n    LocalUI -->|HTTP\/HTTPS| ProtocolAgents\n\n    %% Upper layer to P&amp;M\n    ProtocolAgents -->|IPC| PandM\n\n    %% P&amp;M to services\n    PandM -->|IPC| OtherComponents\n\n    %% System integration\n    PandM &lt;-->|HAL APIs| PlatformHAL\n    PlatformHAL &lt;-->|Driver Interfaces| Linux\n\n    classDef external fill:#fff3e0,stroke:#ef6c00,stroke-width:2px;\n    classDef pandm fill:#e1f5fe,stroke:#0277bd,stroke-width:3px;\n    classDef rdkbComponent fill:#e8f5e8,stroke:#2e7d32,stroke-width:2px;\n    classDef system fill:#fce4ec,stroke:#c2185b,stroke-width:2px;\n\n    class RemoteMgmt,LocalUI external;\n    class PandM pandm;\n    class ProtocolAgents,OtherComponents rdkbComponent;\n    class PlatformHAL,Linux 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>TR-181 Data Model Provider<\/strong>: Implements and exposes core TR-181 objects including Device.DeviceInfo, Device.Time, Device.UserInterface, Device.Bridging, Device.Ethernet, Device.IP, Device.DNS, and Device.Firewall for remote management and configuration<\/li>\n\n\n\n<li><strong>Device Identity Management<\/strong>: Manages critical device information including manufacturer details, model information, serial numbers, hardware\/software versions, and device capabilities required for provisioning and support<\/li>\n\n\n\n<li><strong>Network Configuration Management<\/strong>: Provides centralized management of network interfaces, bridging configurations, DHCP settings, DNS configurations, and routing parameters across the broadband stack<\/li>\n\n\n\n<li><strong>Security and Firewall Control<\/strong>: Implements firewall configuration management, security policies, and access control mechanisms to protect the device and home network from threats<\/li>\n\n\n\n<li><strong>System Configuration Persistence<\/strong>: Interfaces with PSM and SysCfg to ensure configuration persistence across reboots and firmware upgrades, maintaining device state consistency<\/li>\n\n\n\n<li><strong>Time and NTP Management<\/strong>: Manages system time synchronization, NTP server configurations, and timezone settings required for accurate logging and scheduled operations<\/li>\n\n\n\n<li><strong>User Interface Configuration<\/strong>: Controls web UI access parameters, authentication settings, and remote access capabilities for device management<\/li>\n\n\n\n<li><strong>Status Monitoring and Reporting<\/strong>: Provides real-time device status, performance metrics, and diagnostic information to management systems and other middleware components<\/li>\n\n\n\n<li><strong>Component Lifecycle Management<\/strong>: Coordinates initialization, configuration updates, and shutdown procedures with other RDK-B middleware components through event notifications and state management<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"design\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988732\/CcspPandM+P+M#design\">Design<\/a><\/h2>\n\n\n\n<p>The CcspPandM component follows a modular, service-oriented architecture designed to serve as the central TR-181 data model provider and configuration management hub in the RDK-B middleware stack. The design emphasizes high availability, configuration persistence, and seamless integration with both northbound management protocols (TR-069, USP, WebPA) and southbound system interfaces (HAL, kernel, device drivers). The component operates as a system service with early initialization requirements to ensure other middleware components can access essential device parameters during boot.<\/p>\n\n\n\n<p>The architecture implements a multi-layered approach with clear separation between the TR-181 parameter handling layer, internal business logic modules, configuration persistence layer, and hardware abstraction interfaces. This design enables scalable parameter management, efficient configuration updates, and reliable state synchronization across distributed RDK-B components. The component integrates RBus-based IPC mechanisms for high-performance inter-component communication while maintaining backward compatibility with legacy D-Bus interfaces where required.<\/p>\n\n\n\n<p>The design incorporates robust error handling, configuration validation, and rollback mechanisms to ensure system stability during configuration changes. Event-driven notifications are used to propagate configuration updates to dependent components, while lazy initialization patterns optimize boot performance. The modular design allows for platform-specific customizations through well-defined HAL interfaces and configuration files, enabling deployment across diverse hardware platforms while maintaining consistent TR-181 compliance.<\/p>\n\n\n\n<p>Data persistence is achieved through integration with PSM (Persistent Storage Manager) for TR-181 parameters and SysCfg for system-level configurations. The design includes comprehensive logging, telemetry integration, and diagnostic capabilities to support field troubleshooting and performance monitoring. Thread-safe parameter access patterns and atomic configuration updates ensure data consistency in multi-threaded environments typical of RDK-B deployments.<\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">flowchart LR\n    subgraph CcspPandM\n        direction LR\n        SSPMain[\"SSP Main&lt;br\/>Component Lifecycle\"]\n        RBusIf[\"RBus Interface&lt;br\/>Message Handling\"]\n        \n        subgraph \"TR-181 Implementation\"\n            DeviceInfoMod[\"Device Info Module&lt;br\/>Hardware &amp; System\"]\n            TimeMod[\"Time Module&lt;br\/>NTP &amp; Timezone\"]\n            NetworkMod[\"Network Module&lt;br\/>Ethernet &amp; Bridging\"]\n            SecurityMod[\"Security Module&lt;br\/>Firewall &amp; UI\"]\n            DNSMod[\"DNS Module&lt;br\/>Client Configuration\"]\n        end\n        \n        subgraph \"Support Modules\"\n            ConfigMgr[\"Config Manager&lt;br\/>Parameter Persistence\"]\n            StatusMon[\"Status Monitor&lt;br\/>Health Tracking\"]\n            EventPub[\"Event Publisher&lt;br\/>Notifications\"]\n        end\n    end\n    \n    SSPMain --> RBusIf\n    RBusIf --> DeviceInfoMod\n    RBusIf --> TimeMod\n    RBusIf --> NetworkMod\n    RBusIf --> SecurityMod\n    RBusIf --> DNSMod\n    \n    DeviceInfoMod --> ConfigMgr\n    TimeMod --> ConfigMgr\n    NetworkMod --> ConfigMgr\n    SecurityMod --> ConfigMgr\n    DNSMod --> ConfigMgr\n    \n    StatusMon --> EventPub\n    ConfigMgr --> EventPub<\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"prerequisites-and-dependencies\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988732\/CcspPandM+P+M#prerequisites-and-dependencies\">Prerequisites and Dependencies<\/a><\/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><code>--enable-maptsupport<\/code><\/td><td>N\/A<\/td><td><code>FEATURE_SUPPORT_MAPT_NAT46<\/code><\/td><td>Enable MAP-T (Mapping of Address and Port with Translation) IPv6 transition<\/td><td>Disabled<\/td><\/tr><tr><td><code>--enable-core_net_lib_feature_support<\/code><\/td><td>N\/A<\/td><td><code>CORE_NET_LIB_FEATURE_SUPPORT<\/code><\/td><td>Enable advanced core networking library support<\/td><td>Disabled<\/td><\/tr><tr><td><code>--enable-hotspotsupport<\/code><\/td><td>N\/A<\/td><td><code>FEATURE_HOTSPOT_SUPPORT<\/code><\/td><td>Enable WiFi hotspot and GRE tunnel configuration support<\/td><td>Disabled<\/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>RDK-B Components<\/strong>: CcspCommonLibrary, CcspPsm, CcspLMLite, systemd services for proper ordering<\/li>\n\n\n\n<li><strong>HAL Dependencies<\/strong>: Platform HAL APIs, WiFi HAL, Ethernet HAL, MoCA HAL interfaces<\/li>\n\n\n\n<li><strong>Systemd Services<\/strong>: CcspCrSsp.service, CcspPsmSsp.service, and platform HAL services must be active before CcspPandM<\/li>\n\n\n\n<li><strong>Message Bus<\/strong>: RBus daemon with component registration under &#8220;com.cisco.spvtg.ccsp.pam&#8221; namespace<\/li>\n\n\n\n<li><strong>TR-181 Data Model<\/strong>: Core TR-181 Issue 2 compliance with Device.DeviceInfo, Device.Time, Device.Bridging, Device.Ethernet object hierarchies<\/li>\n\n\n\n<li><strong>Configuration Files<\/strong>: CcspPam.cfg, CcspDmLib.cfg, TR181-USGv2.XML data model definitions in \/usr\/ccsp\/pam\/<\/li>\n\n\n\n<li><strong>Startup Order<\/strong>: PSM \u2192 SysCfg \u2192 HAL services \u2192 CcspPandM \u2192 dependent CCSP components<\/li>\n<\/ul>\n\n\n\n<p><strong>Threading Model<\/strong><\/p>\n\n\n\n<p>CcspPandM implements a hybrid threading model combining event-driven message processing with dedicated worker threads for specific subsystem management. The component operates with a main event loop thread for RBus message handling and parameter requests, complemented by specialized threads for time synchronization, configuration persistence, and status monitoring operations.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Threading Architecture<\/strong>: Multi-threaded with event-driven message processing and dedicated worker threads for subsystem management<\/li>\n\n\n\n<li><strong>Main Thread<\/strong>: Handles RBus registration, message bus event processing, TR-181 parameter get\/set operations, and component lifecycle management<\/li>\n\n\n\n<li><strong>Main worker Threads<\/strong>:\n<ul class=\"wp-block-list\">\n<li><strong>Time Sync Thread<\/strong>: Manages NTP synchronization, system clock updates, and timezone configuration changes<\/li>\n\n\n\n<li><strong>Config Persistence Thread<\/strong>: Handles PSM\/SysCfg write operations, configuration backup, and atomic parameter updates<\/li>\n\n\n\n<li><strong>Status Monitor Thread<\/strong>: Performs periodic status collection, health monitoring, and telemetry data gathering<\/li>\n\n\n\n<li><strong>Event Publisher Thread<\/strong>: Manages asynchronous event publishing to subscriber components and external systems<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Synchronization<\/strong>: Uses mutex locks for parameter access protection, atomic operations for configuration updates, and event queues for thread-safe communication<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"component-state-flow\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988732\/CcspPandM+P+M#component-state-flow\">Component State Flow<\/a><\/h3>\n\n\n\n<p><strong>Initialization to Active State<\/strong><\/p>\n\n\n\n<p>CcspPandM follows a structured initialization sequence from system startup through active operational state, with careful dependency management and configuration validation to ensure reliable service provision to other RDK-B components.<\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">%%{init: { \"config\": { \"useMaxWidth\": false } }}%%\nsequenceDiagram\n    autonumber\n    participant Systemd\n    participant PandM\n    participant ConfigLoader\n    participant PSM\n    participant RBus\n    participant TR181\n    participant HAL\n\n    Systemd->>PandM: Start Service \u2192 Initializing\n    Note right of PandM: Initialize logging system&lt;br\/>Setup signal handlers&lt;br\/>Create component context&lt;br\/>Initialize memory pools\n\n    PandM->>ConfigLoader: Load Configuration Files \u2192 LoadingConfig\n    Note right of ConfigLoader: Load ccsp_msg.cfg&lt;br\/>Parse TR-181 XML definitions&lt;br\/>Read component configuration&lt;br\/>Validate configuration syntax\n\n    ConfigLoader->>PSM: PSM Connection \u2192 ConnectingPSM\n    PSM-->>PandM: PSM Connection Established\n\n    PandM->>RBus: RBus Registration \u2192 RegisteringRBus\n    RBus-->>PandM: RBus Registration Success\n\n    PandM->>TR181: Load TR-181 Data Model \u2192 LoadingTR181\n    TR181-->>PandM: TR-181 Data Model Loaded\n\n    PandM->>HAL: Initialize HAL Interfaces \u2192 InitializingHAL\n    HAL-->>PandM: HAL Interfaces Initialized\n\n    PandM->>PandM: Validate Parameters \u2192 ValidatingConfig\n    PandM->>PandM: Publish Ready Events \u2192 PublishingEvents\n    PandM->>Systemd: All Systems Ready \u2192 Active\n\n    Note right of PandM: Process TR-181 requests&lt;br\/>Handle configuration updates&lt;br\/>Monitor system status&lt;br\/>Publish telemetry events\n\n    Systemd->>PandM: Parameter Change \u2192 ConfigUpdate\n    PandM->>Systemd: Update Complete \u2192 Active\n\n    Systemd->>PandM: Status Request \u2192 StatusUpdate\n    PandM->>Systemd: Status Provided \u2192 Active\n\n    Systemd->>PandM: Stop Request \u2192 Shutdown\n    PandM->>Systemd: Shutdown Complete<\/pre><\/div>\n\n\n\n<p><strong>Runtime State Changes and Context Switching<\/strong><\/p>\n\n\n\n<p>CcspPandM handles several runtime state transitions during normal operation, including configuration updates from management systems, system events requiring parameter refresh, and failover scenarios for configuration persistence.<\/p>\n\n\n\n<p><strong>State Change Triggers:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>TR-181 parameter set operations from management protocols trigger configuration validation and persistence workflows<\/li>\n\n\n\n<li>System time changes trigger NTP synchronization state updates and dependent parameter refresh operations<\/li>\n\n\n\n<li>Network interface status changes trigger Device.Ethernet and Device.IP parameter updates and event notifications<\/li>\n\n\n\n<li>PSM service availability changes trigger configuration persistence mode switching between active and cached operations<\/li>\n\n\n\n<li>HAL interface errors trigger fallback mechanisms and error state reporting to dependent components<\/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>Configuration update mode switches the component from normal operation to atomic update processing with transaction rollback capability<\/li>\n\n\n\n<li>Time synchronization context switching occurs during NTP server changes, requiring temporary suspension of time-dependent operations<\/li>\n\n\n\n<li>Emergency configuration mode activates during PSM unavailability, using local caching and deferred persistence mechanisms<\/li>\n\n\n\n<li>Diagnostic mode switching enables enhanced logging and parameter tracing for troubleshooting without affecting normal operations<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"call-flow\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988732\/CcspPandM+P+M#call-flow\">Call Flow<\/a><\/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 Systemd\n    participant PandM as CcspPandM\n    participant RBus as RBus Daemon\n    participant PSM as PSM Service\n    participant HAL as HAL Layer\n\n    Init->>PandM: Start Service\n    PandM->>PandM: Initialize Logging &amp; Config\n    PandM->>RBus: Register Component\n    RBus-->>PandM: Registration Success\n    PandM->>PSM: Connect &amp; Load Parameters\n    PSM-->>PandM: Parameter Data\n    PandM->>HAL: Initialize Device Interfaces\n    HAL-->>PandM: Interface Status\n    PandM->>RBus: Publish Ready Events\n    PandM->>Init: Service Active (systemd notify)<\/pre><\/div>\n\n\n\n<p><strong>Request Processing Call Flow:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">sequenceDiagram\n    participant Client as TR-069 PA\n    participant PandM as CcspPandM\n    participant Module as Internal Module\n    participant PSM as PSM Service\n    participant HAL as HAL Interface\n\n    Client->>PandM: Get Device.DeviceInfo.SerialNumber\n    PandM->>Module: Route Parameter Request\n    Module->>HAL: Get Hardware Serial Number\n    HAL-->>Module: Serial Number Data\n    Module-->>PandM: Parameter Value\n    PandM-->>Client: Response (Serial Number)\n    \n    Note over Client,HAL: Parameter Set Operation\n    Client->>PandM: Set Device.Time.NTPServer1\n    PandM->>Module: Validate &amp; Process\n    Module->>PSM: Persist Configuration\n    PSM-->>Module: Persistence Confirmed\n    Module->>HAL: Update NTP Configuration\n    HAL-->>Module: Configuration Applied\n    Module-->>PandM: Success Response\n    PandM-->>Client: Set Operation Complete<\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"tr181-data-models\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988732\/CcspPandM+P+M#tr181-data-models\">TR\u2011181 Data Models<\/a><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"supported-tr-181-parameters\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988732\/CcspPandM+P+M#supported-tr-181-parameters\">Supported TR-181 Parameters<\/a><\/h3>\n\n\n\n<p>CcspPandM serves as the primary implementation provider for core TR-181 data model objects essential for device management, network configuration, and system administration in RDK-B broadband gateways. The component implements standard BBF TR-181 Issue 2 parameters along with RDK-specific extensions for enhanced functionality and platform integration.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"object-hierarchy\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988732\/CcspPandM+P+M#object-hierarchy\">Object Hierarchy<\/a><\/h3>\n\n\n\n<pre class=\"wp-block-preformatted\">Device.\n\u251c\u2500\u2500 DeviceInfo.\n\u2502   \u251c\u2500\u2500 Manufacturer (string, R)\n\u2502   \u251c\u2500\u2500 ManufacturerOUI (string, R)\n\u2502   \u251c\u2500\u2500 ModelName (string, R)\n\u2502   \u251c\u2500\u2500 Description (string, R)\n\u2502   \u251c\u2500\u2500 ProductClass (string, R)\n\u2502   \u251c\u2500\u2500 SerialNumber (string, R)\n\u2502   \u251c\u2500\u2500 HardwareVersion (string, R)\n\u2502   \u251c\u2500\u2500 SoftwareVersion (string, R)\n\u2502   \u251c\u2500\u2500 UpTime (unsignedInt, R)\n\u2502   \u251c\u2500\u2500 FirstUseDate (dateTime, R)\n\u2502   \u251c\u2500\u2500 FactoryResetCount (unsignedInt, R)\n\u2502   \u251c\u2500\u2500 MemoryStatus.\n\u2502   \u2502   \u251c\u2500\u2500 Total (unsignedInt, R)\n\u2502   \u2502   \u251c\u2500\u2500 Used (unsignedInt, R)\n\u2502   \u2502   \u2514\u2500\u2500 Free (unsignedInt, R)\n\u2502   \u2514\u2500\u2500 X_RDKCENTRAL-COM_RFC.\n\u2502       \u2514\u2500\u2500 Feature.{i}.\n\u251c\u2500\u2500 Time.\n\u2502   \u251c\u2500\u2500 Enable (boolean, R\/W)\n\u2502   \u251c\u2500\u2500 Status (string, R)\n\u2502   \u251c\u2500\u2500 NTPServer1 (string, R\/W)\n\u2502   \u251c\u2500\u2500 NTPServer2 (string, R\/W)\n\u2502   \u251c\u2500\u2500 NTPServer3 (string, R\/W)\n\u2502   \u251c\u2500\u2500 NTPServer4 (string, R\/W)\n\u2502   \u251c\u2500\u2500 NTPServer5 (string, R\/W)\n\u2502   \u251c\u2500\u2500 CurrentLocalTime (dateTime, R)\n\u2502   \u251c\u2500\u2500 LocalTimeZone (string, R\/W)\n\u2502   \u2514\u2500\u2500 TimeOffset (string, R\/W)\n\u251c\u2500\u2500 UserInterface.\n\u2502   \u251c\u2500\u2500 PasswordReset (boolean, R\/W)\n\u2502   \u251c\u2500\u2500 PasswordLockoutEnable (boolean, R\/W)\n\u2502   \u251c\u2500\u2500 PasswordLockoutAttempts (unsignedInt, R\/W)\n\u2502   \u251c\u2500\u2500 PasswordLockoutTime (unsignedInt, R\/W)\n\u2502   \u2514\u2500\u2500 X_CISCO_COM_RemoteAccess.\n\u2502       \u251c\u2500\u2500 HttpEnable (boolean, R\/W)\n\u2502       \u251c\u2500\u2500 HttpPort (unsignedInt, R\/W)\n\u2502       \u251c\u2500\u2500 HttpsEnable (boolean, R\/W)\n\u2502       \u2514\u2500\u2500 HttpsPort (unsignedInt, R\/W)\n\u251c\u2500\u2500 Bridging.\n\u2502   \u251c\u2500\u2500 MaxBridgeEntries (unsignedInt, R)\n\u2502   \u251c\u2500\u2500 BridgeNumberOfEntries (unsignedInt, R)\n\u2502   \u2514\u2500\u2500 Bridge.{i}.\n\u2502       \u251c\u2500\u2500 Enable (boolean, R\/W)\n\u2502       \u251c\u2500\u2500 Status (string, R)\n\u2502       \u251c\u2500\u2500 Name (string, R\/W)\n\u2502       \u251c\u2500\u2500 Standard (string, R\/W)\n\u2502       \u2514\u2500\u2500 Port.{i}.\n\u251c\u2500\u2500 Ethernet.\n\u2502   \u251c\u2500\u2500 InterfaceNumberOfEntries (unsignedInt, R)\n\u2502   \u251c\u2500\u2500 LinkNumberOfEntries (unsignedInt, R)\n\u2502   \u251c\u2500\u2500 Interface.{i}.\n\u2502   \u2502   \u251c\u2500\u2500 Enable (boolean, R\/W)\n\u2502   \u2502   \u251c\u2500\u2500 Status (string, R)\n\u2502   \u2502   \u251c\u2500\u2500 Name (string, R)\n\u2502   \u2502   \u251c\u2500\u2500 MACAddress (string, R)\n\u2502   \u2502   \u2514\u2500\u2500 Stats.\n\u2514\u2500\u2500 DNS.\n    \u2514\u2500\u2500 Client.\n        \u251c\u2500\u2500 Enable (boolean, R\/W)\n        \u251c\u2500\u2500 Status (string, R)\n        \u251c\u2500\u2500 ServerNumberOfEntries (unsignedInt, R)\n        \u2514\u2500\u2500 Server.{i}.\n            \u251c\u2500\u2500 Enable (boolean, R\/W)\n            \u251c\u2500\u2500 DNSServer (string, R\/W)\n            \u2514\u2500\u2500 Interface (string, R\/W)<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"parameter-definitions\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988732\/CcspPandM+P+M#parameter-definitions\">Parameter Definitions<\/a><\/h3>\n\n\n\n<p><strong>Core Parameters:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><code><strong>Device<\/strong>.DeviceInfo.Manufacturer<\/code><\/td><td>string<\/td><td>R<\/td><td><code>\"RDK Management\"<\/code><\/td><td>Device manufacturer name as configured during manufacturing process<\/td><td>TR-181 Issue 2<\/td><\/tr><tr><td><code><strong>Device<\/strong>.DeviceInfo.ManufacturerOUI<\/code><\/td><td>string<\/td><td>R<\/td><td><code>\"001234\"<\/code><\/td><td>Organizationally Unique Identifier assigned to manufacturer by IEEE Registration Authority<\/td><td>TR-181 Issue 2<\/td><\/tr><tr><td><code><strong>Device<\/strong>.DeviceInfo.ModelName<\/code><\/td><td>string<\/td><td>R<\/td><td><code>\"RDK Reference\"<\/code><\/td><td>Model designation assigned by manufacturer to identify specific product variant and capabilities<\/td><td>TR-181 Issue 2<\/td><\/tr><tr><td><code><strong>Device<\/strong>.DeviceInfo.SerialNumber<\/code><\/td><td>string<\/td><td>R<\/td><td><code>\"000000000000\"<\/code><\/td><td>Unique identifier assigned by manufacturer for device identification and support operations<\/td><td>TR-181 Issue 2<\/td><\/tr><tr><td><code><strong>Device<\/strong>.DeviceInfo.HardwareVersion<\/code><\/td><td>string<\/td><td>R<\/td><td><code>\"1.0\"<\/code><\/td><td>Hardware revision identifier indicating major and minor hardware design changes affecting functionality<\/td><td>TR-181 Issue 2<\/td><\/tr><tr><td><code><strong>Device<\/strong>.DeviceInfo.SoftwareVersion<\/code><\/td><td>string<\/td><td>R<\/td><td><code>\"RDKB-1.0\"<\/code><\/td><td>Software version string identifying current firmware release including major, minor, and patch levels<\/td><td>TR-181 Issue 2<\/td><\/tr><tr><td><code><strong>Device<\/strong>.DeviceInfo.UpTime<\/code><\/td><td>unsignedInt<\/td><td>R<\/td><td><code>0<\/code><\/td><td>Time in seconds since device last reboot, reset automatically upon system restart<\/td><td>TR-181 Issue 2<\/td><\/tr><tr><td><code><strong>Device<\/strong>.Time.Enable<\/code><\/td><td>boolean<\/td><td>R\/W<\/td><td><code>true<\/code><\/td><td>Enable or disable NTP time synchronization functionality with configurable server endpoints<\/td><td>TR-181 Issue 2<\/td><\/tr><tr><td><code><strong>Device<\/strong>.Time.Status<\/code><\/td><td>string<\/td><td>R<\/td><td><code>\"Disabled\"<\/code><\/td><td>Current time synchronization status: Disabled, Unsynchronized, Synchronized, Error_FailedToSynchronize<\/td><td>TR-181 Issue 2<\/td><\/tr><tr><td><code><strong>Device<\/strong>.Time.NTPServer1<\/code><\/td><td>string<\/td><td>R\/W<\/td><td><code>\"<strong>pool<\/strong>.ntp.org\"<\/code><\/td><td>Primary NTP server hostname or IP address for time synchronization with fallback support<\/td><td>TR-181 Issue 2<\/td><\/tr><tr><td><code>Device.Bridging.Bridge.{i}.Enable<\/code><\/td><td>boolean<\/td><td>R\/W<\/td><td><code>true<\/code><\/td><td>Enable or disable bridge instance with automatic port configuration and VLAN support<\/td><td>TR-181 Issue 2<\/td><\/tr><tr><td><code>Device.Ethernet.<strong>Interface<\/strong>.{i}.Enable<\/code><\/td><td>boolean<\/td><td>R\/W<\/td><td><code>true<\/code><\/td><td>Enable or disable Ethernet interface with automatic link detection and speed negotiation<\/td><td>TR-181 Issue 2<\/td><\/tr><tr><td><code>Device.DNS.Client.Server.{i}.DNSServer<\/code><\/td><td>string<\/td><td>R\/W<\/td><td><code>\"8.8.8.8\"<\/code><\/td><td>DNS server IP address with automatic validation and reachability testing<\/td><td>TR-181 Issue 2<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"parameter-registration-and-access\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988732\/CcspPandM+P+M#parameter-registration-and-access\">Parameter Registration and Access<\/a><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Implemented Parameters<\/strong>: CcspPandM implements over 500 TR-181 parameters across Device.DeviceInfo, Device.Time, Device.UserInterface, Device.Bridging, Device.Ethernet, Device.IP, Device.DNS, Device.Firewall, and Device.GatewayInfo objects with full read\/write capability and validation<\/li>\n\n\n\n<li><strong>Parameter Registration<\/strong>: Parameters are registered with RBus message bus using namespace &#8220;com.cisco.spvtg.ccsp.pam&#8221; with automatic discovery and capability advertisement to management protocols<\/li>\n\n\n\n<li><strong>Access Mechanism<\/strong>: Other RDK-B components access parameters via RBus IPC using standard get\/set operations with transaction support and atomic updates for related parameter groups<\/li>\n\n\n\n<li><strong>Validation Rules<\/strong>: Comprehensive parameter validation including data type checking, range validation, dependency verification, and cross-parameter consistency enforcement with rollback capability<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"internal-modules\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988732\/CcspPandM+P+M#internal-modules\">Internal Modules<\/a><\/h2>\n\n\n\n<p>CcspPandM is structured around several key internal modules that handle specific aspects of device management and TR-181 parameter implementation. Each module is responsible for a defined set of functionality and interfaces with other modules through well-defined APIs.<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>SSP Main<\/td><td>System Service Provider main module handling component initialization, RBus registration, and lifecycle management<\/td><td><code>ssp_main.c<\/code>,&nbsp;<code><strong>ssp_global<\/strong>.h<\/code>,&nbsp;<code><strong>ssp_internal<\/strong>.h<\/code><\/td><\/tr><tr><td>TR-181 APIs<\/td><td>Implementation of TR-181 parameter handlers for all supported objects including get\/set operations and validation<\/td><td><code><strong>cosa_deviceinfo_apis<\/strong>.h<\/code>,&nbsp;<code><strong>cosa_time_apis<\/strong>.h<\/code>,&nbsp;<code><strong>cosa_ethernet_apis<\/strong>.h<\/code><\/td><\/tr><tr><td>Device Info Module<\/td><td>Manages Device.DeviceInfo parameters including hardware identification, system status, and capability reporting<\/td><td><code><strong>cosa_deviceinfo_apis<\/strong>.h<\/code>, device info implementation files<\/td><\/tr><tr><td>Network Management<\/td><td>Handles Device.Ethernet, Device.Bridging, Device.IP, and Device.DNS parameter implementation and network configuration<\/td><td><code><strong>cosa_ethernet_apis<\/strong>.h<\/code>,&nbsp;<code><strong>cosa_bridging_apis<\/strong>.h<\/code>,&nbsp;<code><strong>cosa_ip_apis<\/strong>.h<\/code><\/td><\/tr><tr><td>Time Management<\/td><td>Implements Device.Time parameters, NTP synchronization, and timezone management functionality<\/td><td><code><strong>cosa_time_apis<\/strong>.h<\/code>, time management implementation files<\/td><\/tr><tr><td>Security Management<\/td><td>Manages Device.Firewall parameters, Device.UserInterface security settings, and access control policies<\/td><td><code><strong>cosa_firewall_apis<\/strong>.h<\/code>,&nbsp;<code><strong>cosa_userinterface_apis<\/strong>.h<\/code><\/td><\/tr><tr><td>Configuration Persistence<\/td><td>Interfaces with PSM and SysCfg for parameter persistence, backup, and restore operations<\/td><td>PSM client interfaces, SysCfg integration modules<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"component-interactions\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988732\/CcspPandM+P+M#component-interactions\">Component Interactions<\/a><\/h2>\n\n\n\n<p>CcspPandM serves as a central hub for TR-181 parameter management, interacting with numerous RDK-B middleware components, system services, and external management systems. The component provides essential device information and configuration services required by other middleware components while consuming services from system-level components for hardware access and configuration persistence.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"interaction-matrix\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988732\/CcspPandM+P+M#interaction-matrix\">Interaction Matrix<\/a><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>RDK-B Middleware Components<\/strong><\/td><td><\/td><td><\/td><\/tr><tr><td>TR-069 PA<\/td><td>Request-Response\/Pub-Sub<\/td><td><code><strong>Device<\/strong>.DeviceInfo.*<\/code>,&nbsp;<code>Device.Time.*<\/code>,&nbsp;<code><strong>Device<\/strong>.ManagementServer.*<\/code><\/td><\/tr><tr><td>USP PA<\/td><td>Request-Response\/Event<\/td><td><code><strong>Device<\/strong>.LocalAgent.*<\/code>,&nbsp;<code><strong>Device<\/strong>.DeviceInfo.*<\/code>, capability notifications<\/td><\/tr><tr><td>WebPA Agent<\/td><td>Request-Response\/Async<\/td><td><code>Device.*<\/code>&nbsp;parameter hierarchy, bulk operations<\/td><\/tr><tr><td>PSM Service<\/td><td>Synchronous\/Transactional<\/td><td><code>PSM_Set()<\/code>,&nbsp;<code>PSM_Get()<\/code>, transaction APIs<\/td><\/tr><tr><td>OneWiFi<\/td><td>Pub-Sub\/Request-Response<\/td><td><code><strong>Device<\/strong>.Time.CurrentLocalTime<\/code>, status events<\/td><\/tr><tr><td><strong>System &amp; HAL Layers<\/strong><\/td><td><\/td><td><\/td><\/tr><tr><td>HAL Layer<\/td><td>Synchronous Function Calls<\/td><td><code><strong>hal_get_device_info<\/strong>()<\/code>,&nbsp;<code><strong>hal_ethernet_get_status<\/strong>()<\/code>,&nbsp;<code><strong>hal_time_set<\/strong>()<\/code><\/td><\/tr><tr><td>PSM Storage<\/td><td>Synchronous\/Atomic<\/td><td><code>\/nvram\/bbhm_cur_cfg.xml<\/code>, PSM database operations<\/td><\/tr><tr><td>SysCfg Service<\/td><td>File I\/O\/Event<\/td><td><code>\/etc\/utopia\/service.d\/<\/code>, syscfg commit operations<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Main events Published by CcspPandM:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td>Device.DeviceInfo.UpTime<\/td><td><code><strong>Device<\/strong>.DeviceInfo.UpTime<\/code><\/td><td>System uptime updates every 60 seconds<\/td><td>TR-069 PA, Telemetry, Status Monitor<\/td><\/tr><tr><td>Device.Time.Status<\/td><td><code><strong>Device<\/strong>.Time.Status<\/code><\/td><td>NTP synchronization status changes<\/td><td>OneWiFi, Certificate Manager, Log Manager<\/td><\/tr><tr><td>Device.Ethernet.Interface.Status<\/td><td><code>Device.Ethernet.<strong>Interface<\/strong>.{i}.Status<\/code><\/td><td>Ethernet interface state changes<\/td><td>Bridge Manager, DHCP Manager, Network Monitor<\/td><\/tr><tr><td>Device.DeviceInfo.MemoryStatus<\/td><td><code><strong>Device<\/strong>.DeviceInfo.MemoryStatus.*<\/code><\/td><td>Memory usage threshold exceeded<\/td><td>Self-Heal, Performance Monitor, Telemetry<\/td><\/tr><tr><td>Device.Bridging.Bridge.Status<\/td><td><code>Device.Bridging.Bridge.{i}.Status<\/code><\/td><td>Bridge interface operational status changes<\/td><td>Network Services, QoS Manager, VLAN Manager<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"ipc-flow-patterns\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988732\/CcspPandM+P+M#ipc-flow-patterns\">IPC Flow Patterns<\/a><\/h3>\n\n\n\n<p><strong>Primary IPC Flow &#8211; TR-181 Parameter Get Operation:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">sequenceDiagram\n    participant Client as TR-069 PA\n    participant RBus as RBus Daemon\n    participant PandM as CcspPandM\n    participant HAL as HAL Layer\n    participant PSM as PSM Service\n\n    Client->>RBus: Get Device.DeviceInfo.SerialNumber\n    RBus->>PandM: Route Parameter Request\n    PandM->>PandM: Validate Parameter Path\n    alt Cached Value Available\n        PandM->>PandM: Return Cached Value\n    else Fresh Data Required\n        PandM->>HAL: hal_get_device_info()\n        HAL-->>PandM: Device Information\n        PandM->>PandM: Update Cache\n    end\n    PandM-->>RBus: Parameter Value Response\n    RBus-->>Client: Device Serial Number<\/pre><\/div>\n\n\n\n<p><strong>Configuration Update Flow:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">sequenceDiagram\n    participant Client as WebPA Agent\n    participant PandM as CcspPandM\n    participant PSM as PSM Service\n    participant SysCfg as SysCfg\n    participant HAL as HAL Layer\n    participant Subscribers as Event Subscribers\n\n    Client->>PandM: Set Device.Time.NTPServer1\n    PandM->>PandM: Validate Parameter Value\n    PandM->>PSM: Persist Parameter\n    PSM-->>PandM: Persistence Confirmed\n    PandM->>SysCfg: Update System Config\n    SysCfg-->>PandM: Config Applied\n    PandM->>HAL: Update NTP Configuration\n    HAL-->>PandM: Configuration Active\n    PandM->>Subscribers: Publish Parameter Change Event\n    PandM-->>Client: Set Operation Success<\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"implementation-details\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988732\/CcspPandM+P+M#implementation-details\">Implementation Details<\/a><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"major-hal-apis-integration\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988732\/CcspPandM+P+M#major-hal-apis-integration\">Major HAL APIs Integration<\/a><\/h3>\n\n\n\n<p>CcspPandM integrates with multiple HAL interfaces to provide hardware abstraction and platform-specific functionality for TR-181 parameter implementation. The component relies on standardized HAL APIs for device information, network interface management, and time synchronization services.<\/p>\n\n\n\n<p><strong>Core HAL APIs:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><code><strong>hal_get_device_info<\/strong>()<\/code><\/td><td>Retrieve hardware device information for Device.DeviceInfo parameters<\/td><td><code>cosa_deviceinfo_apis.c<\/code><\/td><\/tr><tr><td><code><strong>hal_ethernet_get_interface_info<\/strong>()<\/code><\/td><td>Get Ethernet interface status and configuration for Device.Ethernet<\/td><td><code>cosa_ethernet_apis.c<\/code><\/td><\/tr><tr><td><code><strong>hal_time_set_ntp_config<\/strong>()<\/code><\/td><td>Configure NTP servers and time synchronization settings<\/td><td><code>cosa_time_apis.c<\/code><\/td><\/tr><tr><td><code><strong>hal_firewall_get_config<\/strong>()<\/code><\/td><td>Retrieve firewall configuration and security settings<\/td><td><code>cosa_firewall_apis.c<\/code><\/td><\/tr><tr><td><code><strong>hal_bridge_get_status<\/strong>()<\/code><\/td><td>Get bridge interface status and port information<\/td><td><code>cosa_bridging_apis.c<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"key-implementation-logic\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988732\/CcspPandM+P+M#key-implementation-logic\">Key Implementation Logic<\/a><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Parameter Request Router<\/strong>: Central request routing engine that dispatches TR-181 parameter get\/set operations to appropriate internal modules based on parameter namespace and access permissions. Multi-threaded request processing with priority queues for management protocol requests. Parameter validation engine with data type checking, range validation, and dependency verification. Request routing logic in\u00a0<code>ssp_messagebus_interface.c<\/code>\u00a0with namespace-based module dispatch<\/li>\n\n\n\n<li><strong>Configuration State Machine<\/strong>: Comprehensive state management for configuration updates with validation, rollback, and consistency checking across related parameter groups. Atomic transaction support for multi-parameter updates with automatic rollback on validation failures. Configuration validation with cross-parameter dependency checking and constraint enforcement. State persistence and recovery mechanisms for configuration consistency across reboots<\/li>\n\n\n\n<li><strong>Event Processing<\/strong>: Asynchronous event processing system for hardware status changes, configuration updates, and system notifications with reliable delivery guarantees. Hardware event monitoring with automatic parameter refresh and status synchronization. Configuration change event propagation to subscriber components with guaranteed delivery. Asynchronous event processing with queuing and retry mechanisms for reliability<\/li>\n\n\n\n<li><strong>Error Handling Strategy<\/strong>: Comprehensive error detection, logging, and recovery mechanisms for robust operation in production environments. HAL interface error handling with automatic retry and fallback mechanisms for hardware communication failures. Configuration validation errors with detailed error reporting and automatic rollback to last known good state. Parameter access error handling with graceful degradation and alternative data source utilization.<\/li>\n\n\n\n<li><strong>Logging &amp; Debugging<\/strong>: Advanced logging framework with configurable verbosity levels and diagnostic capabilities for field troubleshooting. Structured logging with component identification, severity levels, and contextual information for operational monitoring. Parameter access tracing with request\/response logging and performance metrics collection. Debug hooks for runtime parameter inspection and configuration state analysis.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"key-configuration-files\"><a href=\"https:\/\/wiki.rdkcentral.com\/spaces\/RDK\/pages\/460988732\/CcspPandM+P+M#key-configuration-files\">Key Configuration Files<\/a><\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><code><strong>CcspPam<\/strong>.cfg<\/code><\/td><td>Component registration and RBus configuration<\/td><td>Environment variables, command line args<\/td><\/tr><tr><td><code>\/etc\/utopia\/service.d\/pam.conf<\/code><\/td><td>System service configuration and dependencies<\/td><td>Systemd service overrides<\/td><\/tr><\/tbody><\/table><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>CcspPandM is the RDK-B middleware component that serves as the central provisioning and management engine [&hellip;]<\/p>\n","protected":false},"author":28,"featured_media":0,"parent":9575,"menu_order":10,"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-9643","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>CcspPandM - 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\/ccsppandm\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CcspPandM - RDK Documentation Portal | Documentation\" \/>\n<meta property=\"og:description\" content=\"CcspPandM is the RDK-B middleware component that serves as the central provisioning and management engine [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsppandm\/\" \/>\n<meta property=\"og:site_name\" content=\"RDK Documentation Portal | Documentation\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-17T10:03:09+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=\"10 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\/ccsppandm\/\",\"url\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsppandm\/\",\"name\":\"CcspPandM - RDK Documentation Portal | Documentation\",\"isPartOf\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/#website\"},\"datePublished\":\"2022-06-21T13:52:55+00:00\",\"dateModified\":\"2026-02-17T10:03:09+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsppandm\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsppandm\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsppandm\/#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\":\"CcspPandM\"}]},{\"@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":"CcspPandM - 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\/ccsppandm\/","og_locale":"en_US","og_type":"article","og_title":"CcspPandM - RDK Documentation Portal | Documentation","og_description":"CcspPandM is the RDK-B middleware component that serves as the central provisioning and management engine [&hellip;]","og_url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsppandm\/","og_site_name":"RDK Documentation Portal | Documentation","article_modified_time":"2026-02-17T10:03:09+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"10 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsppandm\/","url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsppandm\/","name":"CcspPandM - RDK Documentation Portal | Documentation","isPartOf":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/#website"},"datePublished":"2022-06-21T13:52:55+00:00","dateModified":"2026-02-17T10:03:09+00:00","breadcrumb":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsppandm\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsppandm\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsppandm\/#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":"CcspPandM"}]},{"@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\/9643","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=9643"}],"version-history":[{"count":2,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/9643\/revisions"}],"predecessor-version":[{"id":12717,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/9643\/revisions\/12717"}],"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=9643"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}