
{"id":9596,"date":"2022-06-21T13:52:52","date_gmt":"2022-06-21T13:52:52","guid":{"rendered":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsplmlite\/"},"modified":"2026-05-06T11:01:35","modified_gmt":"2026-05-06T11:01:35","slug":"ccsplmlite","status":"publish","type":"page","link":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsplmlite\/","title":{"rendered":"CcspLMLite"},"content":{"rendered":"\n<p>CcspLMLite (LAN Manager Lite) is the RDK-B component responsible for managing and monitoring LAN-side network devices and hosts connected to the gateway. This component serves as the primary interface for discovering, tracking, and reporting network connectivity status, device information, and traffic analytics for connected devices across WiFi, Ethernet, and MoCA interfaces. LMLite provides comprehensive host management capabilities including device discovery, presence detection, network traffic monitoring, and telemetry reporting. It implements TR-181 data model parameters for hosts management and integrates with WebPA for cloud-based management and monitoring. CcspLMLite acts as a centralized hub for collecting network device information from various sources and presenting a unified view through standardized TR-181 interfaces.<\/p>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Build and usage instructions:<\/strong>&nbsp;If you are looking for setup, build, and usage information, see the legacy&nbsp;<a href=\"https:\/\/wiki.rdkcentral.com\/README\"><code>README<\/code><\/a>&nbsp;file.<\/p>\n<\/blockquote>\n\n\n\n<p>CcspLMLite enables features like parental controls, device management, network analytics, and presence-based automation by maintaining real-time awareness of all connected devices and their network activity patterns.<\/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 \"Remote Management Agents\"\n            ProtocolAgents[\"Protocol Agents&lt;br \/>( TR-069, WebPA, USP etc.)\"]\n        end\n\n        PNM[\"CCSP P&amp;M\"]\n        PSM[\"CCSP PSM\"]\n        Lmlite[\"LMLite\"]\n        Onewifi[\"One Wi-Fi\"]\n        WanMgr[\"WAN Manager\"]\n\n        subgraph \"Platform Layer\"\n            HAL[\"Platform HAL\"]\n            Linux[\"Linux\"]\n        end\n    end\n\n    %% External connections\n    RemoteMgmt -->|TR-069\/WebPA\/TR-369| ProtocolAgents\n    LocalUI -->|HTTP\/HTTPS| ProtocolAgents\n\n    %% Upper layer to LM Lite\n    ProtocolAgents -->|IPC| Lmlite\n\n    %% Lmlite to Other RDK-B Components\n    Lmlite -->|IPC| PNM\n    Lmlite -->|IPC| PSM\n    Lmlite -->|IPC| Onewifi\n    Lmlite -->|IPC| WanMgr\n\n    %% Interface Managers to HAL\n    Lmlite &lt;-->|HAL APIs| HAL\n\n    %% System integration\n    HAL &lt;-->|Driver Interfaces| Linux\n    Lmlite &lt;-->|System Events| Linux\n\n    classDef external fill:#fff3e0,stroke:#ef6c00,stroke-width:2px;\n    classDef LmLite fill:#e3f2fd,stroke:#1976d2,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 Lmlite LmLite;\n    class ProtocolAgents,PNM,PSM,Onewifi,WanMgr rdkbComponent;\n    class HAL,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>Host Discovery &amp; Management<\/strong>: Automatically discovers and tracks all devices connected to LAN interfaces including WiFi, Ethernet, and MoCA with real-time status monitoring and device profiling capabilities<\/li>\n\n\n\n<li><strong>Network Traffic Analytics<\/strong>: Collects and reports detailed network traffic statistics per device including bandwidth usage, connection patterns, and performance metrics for capacity planning and troubleshooting<\/li>\n\n\n\n<li><strong>Device Presence Detection<\/strong>: Implements presence detection algorithms using multiple detection methods to determine device online\/offline status with configurable sensitivity and notification capabilities<\/li>\n\n\n\n<li><strong>TR-181 Data Model Implementation<\/strong>: Provides comprehensive TR-181 compliant interface for Device.Hosts object hierarchy enabling standardized access to host information through BBF-specified parameters<\/li>\n\n\n\n<li><strong>Cross-Interface Synchronization<\/strong>: Coordinates device information across multiple network interfaces ensuring consistent device tracking and preventing duplicate entries across WiFi, MoCA, and Ethernet connections<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"CcspLMLite-Design\">Design<\/h2>\n\n\n\n<p>CcspLMLite follows a modular, event-driven architecture designed to efficiently manage network device discovery, monitoring, and reporting across network interfaces. The design emphasizes scalability, real-time responsiveness, and data consistency while maintaining minimal system resource utilization. The architecture separates ownership between device discovery, data model management, telemetry reporting, and external communications through well-defined interfaces and protocols.<\/p>\n\n\n\n<p>The component operates as a central aggregation point for network device information, collecting data from multiple sources including WiFi association events, DHCP lease notifications, ARP table monitoring, and interface-specific discovery mechanisms. The design implements intelligent caching and synchronization strategies to maintain accurate device state information while minimizing network scanning overhead. Event-driven updates ensure real-time responsiveness to network changes while batch processing optimizes telemetry data transmission and reduces system load.<\/p>\n\n\n\n<p>The northbound interface provides TR-181 compliant access through RBus messaging, enabling seamless integration with other RDK-B components and external management systems. The southbound interface abstracts network interface interactions through HAL APIs and system-level networking calls. Data persistence is achieved through integration with the Persistent Storage Manager (PSM) ensuring device information survives system reboots. WebPA integration enables cloud-based management and telemetry reporting following industry-standard protocols and data formats including Avro serialization for efficient data transmission.<\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">graph TD\n    subgraph LmLite [\"CCSP LMLite\"]\n        subgraph MainManager [\"LM Core Engine\"]\n            LMMain[Device Discovery &amp; Management]\n            LMUtil[Utility &amp; Helper Functions]\n        end\n\n        subgraph DataModel [\"Data Models\"]\n            MgmtDML[DML Management]\n        end\n\n        subgraph ReportsModule [\"Network Reports &amp; Analytics\"]\n            ReportsInternal[Reports Module]\n            NDStatus[NW Device Status]\n            NDTraffic[NW Device Traffic]\n            WANTraffic[WAN Traffic]\n        end\n\n    end\n\n    subgraph ExternalSystems [\"External Systems\"]\n        rdkbComponents[Other RDK-B Components]\n        PSM[(CCSP PSM)]\n    end\n\n    LMMain --> DataModel\n    DataModel &lt;--> rdkbComponents\n\n    PSM --> LMMain  \n\n    LMMain --> ReportsInternal\n    ReportsInternal --> NDStatus\n    ReportsInternal --> NDTraffic\n    ReportsInternal --> WANTraffic<\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"CcspLMLite-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-core-net-lib-feature-support<\/code><\/td><td>N\/A<\/td><td><code>CORE_NET_LIB_FEATURE_SUPPORT<\/code><\/td><td>Enable advanced networking library 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>:\u00a0<code>CcspPandM<\/code>\u00a0,\u00a0<code>CcspPsm<\/code>\u00a0,\u00a0<code>CcspCommonLibrary<\/code><\/li>\n\n\n\n<li><strong>HAL Dependencies<\/strong>: WiFi HAL APIs, Ethernet HAL interfaces<\/li>\n\n\n\n<li><strong>Systemd Services<\/strong>:\u00a0<code>CcspCrSsp.service<\/code>,\u00a0<code>CcspPsmSsp.service<\/code>\u00a0must be active before\u00a0<code>CcspLMLite.service<\/code>\u00a0starts<\/li>\n\n\n\n<li><strong>Message Bus<\/strong>: RBus registration under\u00a0<code>com.cisco.spvtg.ccsp.lmlite<\/code>\u00a0namespace for performance optimization and inter-component communication<\/li>\n\n\n\n<li><strong>TR-181 Data Model<\/strong>:\u00a0<code>Device.Hosts<\/code>\u00a0object hierarchy and\u00a0<code>Device.ManagementServer.ManageableDevice<\/code>\u00a0support for device management and reporting<\/li>\n\n\n\n<li><strong>Configuration Files<\/strong>:\u00a0<code>config\/LMLite.XML<\/code>\u00a0for TR-181 parameter definitions; component configuration files located in\u00a0<code>\/usr\/ccsp\/lmlite\/<\/code><\/li>\n\n\n\n<li><strong>Startup Order<\/strong>: Initialize after network interfaces are active and PSM services are running<\/li>\n<\/ul>\n\n\n\n<p><strong>Threading Model:<\/strong><\/p>\n\n\n\n<p>CcspLMLite implements a multi-threaded architecture designed to handle concurrent network monitoring, data processing, and external communications without blocking critical operations.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Threading Architecture<\/strong>: Multi-threaded with main event loop and specialized worker threads for different operational domains<\/li>\n\n\n\n<li><strong>Main Thread<\/strong>: Handles TR-181 parameter requests, RBus message processing, and component lifecycle management<\/li>\n\n\n\n<li><strong>Main worker Threads<\/strong>:<\/li>\n\n\n\n<li><strong>Network Scanner Thread<\/strong>: Performs periodic network interface scanning and device discovery operations<\/li>\n\n\n\n<li><strong>Presence Detection Thread<\/strong>: Monitors device connectivity status and triggers presence change notifications<\/li>\n\n\n\n<li><strong>Synchronization<\/strong>: Uses mutex locks for shared data structures, condition variables for thread communication, and atomic operations for counters<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"CcspLMLite-ComponentStateFlow\">Component State Flow<\/h3>\n\n\n\n<p><strong>Initialization to Active State<\/strong><\/p>\n\n\n\n<p>CcspLMLite follows a structured initialization sequence ensuring all dependencies are properly established before entering active monitoring mode. The component performs configuration loading, TR-181 parameter registration, network interface discovery, and external service connections in a predetermined order to guarantee system stability and data consistency.<\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">sequenceDiagram\n    autonumber\n    participant System\n    participant ConfigLoader\n    participant TR181\n    participant DependencyManager\n    participant EventHandler\n    participant NetworkMonitor\n\n    System->>System: Start [*] \u2192 Initializing\n    Note right of System: Initialize logging system&lt;br \/>Load component configuration&lt;br \/>Setup IPC connections\n\n    System->>ConfigLoader: Component Start \u2192 LoadingConfig\n    Note right of ConfigLoader: Load LMLite.XML&lt;br \/>Parse configuration files&lt;br \/>Initialize default values&lt;br \/>Validate settings\n\n    ConfigLoader->>TR181: Configuration Loaded \u2192 RegisteringTR181\n    Note right of TR181: Register Device.Hosts objects&lt;br \/>Create TR-181 data model&lt;br \/>Setup parameter bindings&lt;br \/>Initialize DML handlers\n\n    TR181->>DependencyManager: Data Models Registered \u2192 ConnectingDeps\n    Note right of DependencyManager: Connect to PSM&lt;br \/>Establish RBus connection&lt;br \/>Connect to WiFi\/MoCA HAL&lt;br \/>Initialize network interfaces\n\n    DependencyManager->>System: All Systems Ready \u2192 Active\n    Note right of System: Process TR-181 requests&lt;br \/>Monitor network devices&lt;br \/>Generate telemetry data&lt;br \/>Handle device discovery&lt;br \/>Monitor device health\n\n    System->>EventHandler: Network Event \u2192 RuntimeStateChange\n    EventHandler->>NetworkMonitor: Process Device Event\n    NetworkMonitor->>NetworkMonitor: Update Device State\n    NetworkMonitor->>EventHandler: State Update Complete\n    EventHandler->>System: State Updated \u2192 Active\n\n    System->>System: Component Stop \u2192 Shutdown \u2192 [*]<\/pre><\/div>\n\n\n\n<p><strong>Runtime State Changes and Context Switching<\/strong><\/p>\n\n\n\n<p>During normal operation, CcspLMLite responds to various network events and configuration changes that may affect its operational context and device tracking behavior.<\/p>\n\n\n\n<p><strong>State Change Triggers:<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Network interface up\/down events causing rescan of device discovery mechanisms<\/li>\n\n\n\n<li>Configuration parameter changes affecting scanning intervals, presence detection sensitivity, or telemetry settings<\/li>\n\n\n\n<li>External service availability changes (PSM reconnection, WebPA service restart) requiring connection re-establishment<\/li>\n\n\n\n<li>Resource constraint conditions triggering degraded mode operation with reduced scanning frequency<\/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>Interface priority changes when primary network interface fails, switching to backup scanning methods<\/li>\n\n\n\n<li>Discovery mode transitions between active scanning and passive monitoring based on network load conditions<\/li>\n\n\n\n<li>Telemetry reporting context switches between real-time and batch modes based on cloud connectivity status<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"CcspLMLite-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 Initialization Process\n    participant Comp as CcspLMLite\n    participant DM as Data Model\n    participant Deps as Dependencies\n\n    Init->>Comp: Start Component\n    Comp->>Comp: Load Configuration\n    Comp->>DM: Register TR-181 Parameters\n    DM-->>Comp: Registration Complete\n    Comp->>Deps: Connect to Dependencies\n    Deps-->>Comp: Connection Established\n    Comp->>Init: Initialization Complete (Active State)<\/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 External Client\n    participant LMWrapper as LM Wrapper\n    participant LMMain as LM Main Engine  \n    participant HostsDML as Hosts DML\n    participant NetworkScan as Network Scanner\n    participant AvroTelemetry as Avro Telemetry\n\n    Client->>LMWrapper: Get Device.Hosts.HostNumberOfEntries\n    LMWrapper->>LMMain: Process Host Count Request\n    LMMain->>HostsDML: GetHostCount()\n    HostsDML->>NetworkScan: Scan Network Interfaces\n    NetworkScan->>NetworkScan: Discover Active Devices\n    NetworkScan-->>HostsDML: Return Device List\n    HostsDML->>HostsDML: Update Host Entries\n    HostsDML->>AvroTelemetry: Send Network Status Event\n    HostsDML-->>LMMain: Return Host Count\n    LMMain-->>LMWrapper: Host Count Result\n    LMWrapper-->>Client: Response (Host Count)<\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"CcspLMLite-TR\u2011181DataModels\">TR\u2011181 Data Models<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"CcspLMLite-SupportedTR-181Parameters\">Supported TR-181 Parameters<\/h3>\n\n\n\n<p>CcspLMLite implements comprehensive TR-181 data model support for device and host management following BBF TR-181 Issue 2 specifications. The component provides both standard BBF-defined parameters and vendor-specific extensions to support advanced RDK-B features including presence detection, network analytics, and cross-interface device correlation.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"CcspLMLite-ObjectHierarchy\">Object Hierarchy<\/h3>\n\n\n\n<p><code>Device. \u2514\u2500\u2500 Hosts. \u251c\u2500\u2500 HostNumberOfEntries (unsignedInt, R) \u251c\u2500\u2500 X_CISCO_COM_ConnectedDeviceNumber (unsignedInt, R) \u251c\u2500\u2500 X_CISCO_COM_ConnectedWiFiNumber (unsignedInt, R) \u251c\u2500\u2500 X_RDKCENTRAL-COM_HostVersionId (unsignedInt, R) \u251c\u2500\u2500 X_RDKCENTRAL-COM_HostCountPeriod (unsignedInt, R\/W) \u251c\u2500\u2500 X_RDKCENTRAL-COM_LMHost_Sync (unsignedInt, R\/W) \u251c\u2500\u2500 X_RDKCENTRAL-COM_LMHost_Sync_From_MoCA (string, R\/W) \u251c\u2500\u2500 X_RDKCENTRAL-COM_LMHost_Sync_From_WiFi (string, R\/W) \u251c\u2500\u2500 X_RDKCENTRAL-COM_EthHost_Sync (string, R\/W) \u251c\u2500\u2500 X_RDK_PresenceDetectEnable (boolean, R\/W) \u251c\u2500\u2500 X_RDKCENTRAL-COM_WebPA_PresenceNotificationEnable (boolean, R\/W) \u2514\u2500\u2500 Host.{i}. \u251c\u2500\u2500 Alias (string, R\/W) \u251c\u2500\u2500 PhysAddress (string, R) \u251c\u2500\u2500 IPAddress (string, R) \u251c\u2500\u2500 DHCPClient (string, R) \u251c\u2500\u2500 AssociatedDevice (string, R) \u251c\u2500\u2500 Layer1Interface (string, R) \u251c\u2500\u2500 Layer3Interface (string, R) \u251c\u2500\u2500 HostName (string, R) \u251c\u2500\u2500 Active (boolean, R) \u251c\u2500\u2500 X_CISCO_COM_LastChange (dateTime, R) \u251c\u2500\u2500 X_CISCO_COM_RSSILevel (int, R) \u251c\u2500\u2500 X_RDKCENTRAL-COM_DeviceType (string, R) \u251c\u2500\u2500 X_RDKCENTRAL-COM_NetworkInterface (string, R) \u251c\u2500\u2500 X_RDKCENTRAL-COM_ConnectionStatus (string, R) \u251c\u2500\u2500 X_RDKCENTRAL-COM_OSType (string, R) \u2514\u2500\u2500 X_RDKCENTRAL-COM_Parent (string, R) Device. \u2514\u2500\u2500 ManagementServer. \u2514\u2500\u2500 ManageableDevice.{i}. \u251c\u2500\u2500 Alias (string, R\/W) \u251c\u2500\u2500 ManufacturerOUI (string, R) \u251c\u2500\u2500 SerialNumber (string, R) \u251c\u2500\u2500 ProductClass (string, R) \u2514\u2500\u2500 Host (string, R)<\/code><\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"CcspLMLite-InternalModules\">Internal Modules<\/h2>\n\n\n\n<p>CcspLMLite is organized into specialized modules responsible for different aspects of network device management, data model implementation, and external communications. Each module encapsulates specific functionality while maintaining clear interfaces for inter-module communication and data sharing.<\/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>LM Core Engine<\/strong><\/td><td>Main orchestration engine managing device discovery, host tracking, and component lifecycle with centralized state management and event coordination<\/td><td><code>lm_main.c<\/code>,&nbsp;<code>lm_main.h<\/code>,&nbsp;<code>lm_util.c<\/code>,&nbsp;<code>lm_wrapper.c<\/code><\/td><\/tr><tr><td><strong>Hosts Data Model<\/strong><\/td><td>TR-181 Device.Hosts object implementation providing standardized interface for device information access with parameter validation and change notifications<\/td><td><code>cosa_hosts_dml.c<\/code>,&nbsp;<code>cosa_hosts_dml.h<\/code>,&nbsp;<code>cosa_xhosts_dml.c<\/code><\/td><\/tr><tr><td><strong>Network Analytics<\/strong><\/td><td>Traffic monitoring and device behavior analysis module collecting bandwidth statistics, connection patterns, and performance metrics for telemetry reporting<\/td><td><code>network_devices_traffic.c<\/code>,&nbsp;<code>network_devices_status.c<\/code>,&nbsp;<code>cosa_reports_internal.c<\/code><\/td><\/tr><tr><td><strong>Management Server<\/strong><\/td><td>ManageableDevice TR-181 object implementation tracking devices eligible for remote management with capability discovery and configuration synchronization<\/td><td><code>cosa_managementserver_dml.c<\/code>,&nbsp;<code>cosa_managementserver_apis.c<\/code><\/td><\/tr><tr><td><strong>Service Support Platform<\/strong><\/td><td>Process lifecycle management and message bus initialization providing component entry point, configuration loading, and system integration services<\/td><td><code>ssp_main.c<\/code>,&nbsp;<code>ssp_messagebus_interface.c<\/code>,&nbsp;<code>ssp_action.c<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"CcspLMLite-ComponentInteractions\">Component Interactions<\/h2>\n\n\n\n<p>CcspLMLite maintains extensive interactions with RDK-B middleware components, system services, and external management systems to provide comprehensive network device management and monitoring capabilities. These interactions span multiple protocols and communication patterns including synchronous API calls, asynchronous event notifications, and data synchronization mechanisms.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"CcspLMLite-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>CcspPandM<\/td><td>TR-181 parameter registration and access control, configuration management<\/td><td><code>registerCapabilities<\/code>,&nbsp;<code>getParameterValues<\/code>,&nbsp;<code>setParameterValues<\/code><\/td><\/tr><tr><td>OneWifi<\/td><td>WiFi device association\/disassociation events, wireless client enumeration<\/td><td><code>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.*<\/code>, WiFi HAL callbacks<\/td><\/tr><tr><td>CcspMoCAAgent<\/td><td>MoCA network topology changes, node status updates, device discovery<\/td><td><code>Device.MoCA.Interface.{i}.AssociatedDevice.{i}.*<\/code><\/td><\/tr><tr><td>CcspPsm<\/td><td>Persistent device information storage, configuration parameter backup<\/td><td><code>PSM_Set_Record_Value2()<\/code>,&nbsp;<code>PSM_Get_Record_Value2()<\/code><\/td><\/tr><tr><td><strong>System &amp; HAL Layers<\/strong><\/td><td><\/td><td><\/td><\/tr><tr><td>Network HAL<\/td><td>Network interface enumeration, device discovery, link status monitoring<\/td><td><code>hal_get_dhcp_clients()<\/code>,&nbsp;<code>hal_get_arp_table()<\/code>, interface status APIs<\/td><\/tr><tr><td>Linux Network Stack<\/td><td>ARP table monitoring, network interface status, routing table access<\/td><td><code>\/proc\/net\/arp<\/code>,&nbsp;<code>ioctl(SIOCGARP)<\/code>, netlink sockets<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p><strong>Major events Published by CcspLMLite:<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Event Name<\/strong><\/td><td><strong>Event Topic\/Path<\/strong><\/td><td><strong>Trigger Condition<\/strong><\/td><td><strong>Subscriber Components<\/strong><\/td><\/tr><tr><td>Device_Discovery<\/td><td><code>Device.Hosts.HostNumberOfEntriesChange<\/code><\/td><td>New device detected on network<\/td><td>CcspPandM, WebPA, Telemetry Services<\/td><\/tr><tr><td>Device_Presence<\/td><td><code>Device.Hosts.Host.{i}.ActiveChange<\/code><\/td><td>Device online\/offline status change<\/td><td>Parental Control, OneWifi, WebPA<\/td><\/tr><tr><td>Network_Analytics<\/td><td><code>LMLite.NetworkDeviceTraffic<\/code><\/td><td>Periodic traffic statistics collection<\/td><td>Telemetry Collection, Analytics Services<\/td><\/tr><tr><td>Configuration_Change<\/td><td><code>LMLite.ConfigurationUpdate<\/code><\/td><td>Runtime configuration parameter modification<\/td><td>Configuration Management, Logging Services<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"CcspLMLite-IPCFlowPatterns\">IPC Flow Patterns<\/h3>\n\n\n\n<p><strong>Primary IPC Flow &#8211; Device Discovery and Status Update:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">sequenceDiagram\n    participant WiFiAgent as OneWifi\n    participant LMLite as CcspLMLite\n    participant PSM as CcspPsm\n    participant WebPA as WebPA Service\n    participant Telemetry as Telemetry\n\n   OneWifi->>LMLite: Device Association Event (RBus)\n    LMLite->>LMLite: Update Device Table\n    LMLite->>PSM: Store Device Information\n    PSM-->>LMLite: Storage Confirmation\n    LMLite->>WebPA: Presence Notification\n    LMLite->>Telemetry: Device Analytics Data\n    LMLite-->>OneWifi: Event Processing Complete<\/pre><\/div>\n\n\n\n<p><strong>Event Notification Flow:<\/strong><\/p>\n\n\n\n<div class=\"wp-block-merpress-mermaidjs diagram-source-mermaid\"><pre class=\"mermaid\">sequenceDiagram\n    participant HAL as Network HAL\n    participant LMLite as CcspLMLite\n    participant PandM as CcspPandM\n    participant Sub1 as Subscriber 1\n    participant Sub2 as Subscriber 2\n\n    HAL->>LMLite: Network Interface Event\n    LMLite->>LMLite: Process Device Discovery\n    LMLite->>PandM: Publish Parameter Change Event\n    PandM->>Sub1: Event Notification (RBus)\n    PandM->>Sub2: Event Notification (RBus)\n    Sub1-->>LMLite: Ack (if required)\n    Sub2-->>LMLite: Ack (if required)<\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"CcspLMLite-ImplementationDetails\">Implementation Details<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"CcspLMLite-MajorHALAPIsIntegration\">Major HAL APIs Integration<\/h3>\n\n\n\n<p>CcspLMLite integrates with multiple HAL interfaces to collect comprehensive network device information across different interface types. The component abstracts hardware-specific implementations through standardized HAL APIs while maintaining flexibility for platform-specific optimizations.<\/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><strong>HAL API<\/strong><\/td><td><strong>Purpose<\/strong><\/td><td><strong>Implementation File<\/strong><\/td><\/tr><tr><td><code>wifi_getAssociatedDeviceDetail()<\/code><\/td><td>Retrieve detailed information about WiFi-connected devices including signal strength, capabilities, and connection statistics<\/td><td><code>lm_main.c<\/code>, network interface handlers<\/td><\/tr><tr><td><code>moca_GetAssociatedDevices()<\/code><\/td><td>Enumerate MoCA network nodes and retrieve topology information including preferred network coordinator and transmission rates<\/td><td><code>lm_main.c<\/code>, MoCA discovery functions<\/td><\/tr><tr><td><code>dhcp_get_client_info()<\/code><\/td><td>Access DHCP server lease table for IP address assignments, hostname information, and lease duration data<\/td><td><code>lm_util.c<\/code>, DHCP client enumeration<\/td><\/tr><tr><td><code>ethernet_hal_get_param()<\/code><\/td><td>Query Ethernet interface status, link speed, duplex mode, and physical connection state<\/td><td><code>network_devices_interface.c<\/code><\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"CcspLMLite-KeyImplementationLogic\">Key Implementation Logic<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Device Discovery Engine<\/strong>: Multi-threaded scanning system combining active probing, passive monitoring, and event-driven updates with intelligent caching to minimize network overhead while maintaining real-time device tracking accuracy. Periodic ARP table scanning with configurable intervals (15-300 seconds). DHCP lease monitoring through file system watchers and HAL callbacks. Interface-specific discovery protocols (WiFi association events, MoCA topology changes). State transition handlers implementing device lifecycle management with timeout-based cleanup.<\/li>\n\n\n\n<li><strong>Event Processing<\/strong>: Asynchronous event handling system managing device state changes, network topology updates, and external service communications with guaranteed delivery and retry mechanisms. Event queue management with priority-based processing for critical network changes. Rate limiting and deduplication for high-frequency events (WiFi roaming, signal fluctuations). Asynchronous telemetry data transmission with batching and compression optimization.<\/li>\n\n\n\n<li><strong>Error Handling Strategy<\/strong>: Comprehensive error detection and recovery mechanisms ensuring system stability during network disruptions, HAL failures, and resource constraints. Automatic retry logic with exponential backoff for transient network errors. Graceful degradation during resource exhaustion with priority-based service reduction. Health monitoring and self-recovery capabilities including automatic component restart. Timeout handling and retry logic with configurable parameters for different operation types.<\/li>\n\n\n\n<li><strong>Logging &amp; Debugging<\/strong>: Multi-level logging system with runtime verbosity control and specialized debugging tools for network device tracking and performance analysis. Structured logging with JSON formatting for automated log analysis and monitoring. Real-time debugging interfaces for troubleshooting device discovery issues and network connectivity problems. Debug hooks providing detailed trace information for device state transitions, HAL interactions, and IPC communications. Performance monitoring with metrics collection for response times, memory usage, and network scanning efficiency.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"CcspLMLite-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><code>LMLite.XML<\/code><\/td><td>TR-181 parameter definitions and DML function mappings<\/td><td>Component compilation flags, runtime XML updates<\/td><\/tr><tr><td><code>lmlite.conf<\/code><\/td><td>Platform\/integration-specific runtime configuration, when provided by the target deployment<\/td><td>Environment variables, init\/systemd\/service-layer overrides<\/td><\/tr><tr><td><code>presence_detection.ini<\/code><\/td><td>Platform\/integration-specific presence-detection tuning parameters, when supported by the target deployment<\/td><td>TR-181 parameter interface, vendor\/platform configuration APIs<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p><strong>Note:<\/strong>&nbsp;<code>lmlite.conf<\/code>&nbsp;and&nbsp;<code>presence_detection.ini<\/code>&nbsp;are not shipped or maintained in this repository as standalone configuration files. When used, they are typically supplied by downstream platform integration, packaging, or deployment layers.<\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>CcspLMLite (LAN Manager Lite) is the RDK-B component responsible for managing and monitoring LAN-side network [&hellip;]<\/p>\n","protected":false},"author":28,"featured_media":0,"parent":9575,"menu_order":6,"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-9596","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>CcspLMLite - 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\/ccsplmlite\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CcspLMLite - RDK Documentation Portal | Documentation\" \/>\n<meta property=\"og:description\" content=\"CcspLMLite (LAN Manager Lite) is the RDK-B component responsible for managing and monitoring LAN-side network [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsplmlite\/\" \/>\n<meta property=\"og:site_name\" content=\"RDK Documentation Portal | Documentation\" \/>\n<meta property=\"article:modified_time\" content=\"2026-05-06T11:01:35+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\/ccsplmlite\/\",\"url\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsplmlite\/\",\"name\":\"CcspLMLite - RDK Documentation Portal | Documentation\",\"isPartOf\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/#website\"},\"datePublished\":\"2022-06-21T13:52:52+00:00\",\"dateModified\":\"2026-05-06T11:01:35+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsplmlite\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsplmlite\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsplmlite\/#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\":\"CcspLMLite\"}]},{\"@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":"CcspLMLite - 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\/ccsplmlite\/","og_locale":"en_US","og_type":"article","og_title":"CcspLMLite - RDK Documentation Portal | Documentation","og_description":"CcspLMLite (LAN Manager Lite) is the RDK-B component responsible for managing and monitoring LAN-side network [&hellip;]","og_url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsplmlite\/","og_site_name":"RDK Documentation Portal | Documentation","article_modified_time":"2026-05-06T11:01:35+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\/ccsplmlite\/","url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsplmlite\/","name":"CcspLMLite - RDK Documentation Portal | Documentation","isPartOf":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/#website"},"datePublished":"2022-06-21T13:52:52+00:00","dateModified":"2026-05-06T11:01:35+00:00","breadcrumb":{"@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsplmlite\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsplmlite\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsplmlite\/#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":"CcspLMLite"}]},{"@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\/9596","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=9596"}],"version-history":[{"count":2,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/9596\/revisions"}],"predecessor-version":[{"id":12897,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/9596\/revisions\/12897"}],"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=9596"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}