
{"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":"2025-03-25T05:18:33","modified_gmt":"2025-03-25T05:18:33","slug":"ccsplmlite","status":"publish","type":"page","link":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsplmlite\/","title":{"rendered":"CcspLMLite"},"content":{"rendered":"<!DOCTYPE html PUBLIC \"-\/\/W3C\/\/DTD HTML 4.0 Transitional\/\/EN\" \"http:\/\/www.w3.org\/TR\/REC-html40\/loose.dtd\">\n <html><body><div class=\"toc-macro client-side-toc-macro  conf-macro output-block\" data-headerelements=\"H1\" data-hasbody=\"false\" data-macro-name=\"toc\"> <\/div><h2 class=\"wp-main-header wp-block-heading\">Introduction<\/h2><p>RDK-B devices provide multiple interfaces like MoCA, WiFi, Ethernet, etc. for clients to get connected. LMLite, a component within RDK-B, does the job of updating the Host table (Host table is a table containing the data of connected clients over various interfaces) based on the devices connected over MoCA, WiFi and Ethernet.<\/p><p>Lan Manager maintains the information about the clients and their status, such as:<\/p><ul><li>Client Host name<\/li><li>Mac Address<\/li><li>IP addresses<\/li><li>Lease information<\/li><li>Active\/Inactive device status<\/li><\/ul><h2 class=\"wp-main-header wp-block-heading\">Architecture<\/h2><p>    \n\n<\/p><img decoding=\"async\" src=\"\/wp-content\/uploads\/sites\/16\/2023\/09\/LMLite%20High%20Level%20Architecture.drawio.png\"><p><strong>Figure 1 &#8211; LMLite High Level Architecture<\/strong><\/p><p>Figure 1 illustrates the LMLite functionality.<\/p><p>LMLite interacts with other components of RDK-B stack over DBUS. Each of these components registers a &#8220;callback&#8221; function with respective HAL. The HAL performs a &ldquo;callback&rdquo; whenever there is an update in connected clients. This triggers a DBus call to LMLite with the necessary data. LMLite receives this data and adds it to the Host table.<\/p><p><br><\/p><p><strong>Function &amp; Threads used in LM Lite<\/strong><\/p><p><span>Important threads used by LMLite module<\/span><\/p><ul><li>ValidateHost_Thread<\/li><li>ValidateHostRetry_Thread<\/li><li>Event_HandlerThread<\/li><li>Hosts_StatSyncThreadFunc<\/li><li>Hosts_LoggingThread<\/li><\/ul><p><u>Important functions.<\/u><\/p><p>Every 30 seconds the below functions are invoked to check whether the clients are connected or disconnected. if the clients are disconnected the DM for the particular client will be updated.<\/p><ul><li>Wifi_ServerSyncHost<\/li><li>Send_Eth_Host_Sync_Req<\/li><li>Wifi_Server_Sync_Function<\/li><\/ul><h3 style=\"text-align: left;\" id=\"CcspLMLite-Notifications\">Notifications<\/h3><p>LMLite notifies the Notification component which in turn tells the interested PAs about the connection and disconnection of the connected devices.<\/p><p>    \n\n<\/p><img decoding=\"async\" src=\"\/wp-content\/uploads\/sites\/16\/2023\/09\/NotifyMsg.drawio.png\"><p><br><\/p><p><br><\/p><p><br><\/p><p>There are three types of notification messages for the connected clients to work.<\/p><p>NotifyMsg 1: Notification Message from the individual interface component to LMLite about any update of the existing connected devices or any new connections.<br>NotifyMsg 2: Notification Message from LMLite to the Notify component <br>NotifyMsg 3: Notification message from Notify component to the PA&rsquo;s who have registered for notifications for connected device.<\/p><h5 id=\"CcspLMLite-NotifyMsg1\">NotifyMsg 1<\/h5><p>In this type of notification message&nbsp;the connected device components like WiFi, MoCA, Ethernet sets a dedicated parameter of LMLite. As and when this notify message comes from a component to LMLite, the dedicated parameter is parsed and the host table is updated accordingly.<\/p><p>Example: For WiFi the dedicated parameter is<br>&ldquo;Device.Hosts.X_RDKCENTRAL-COM_LMHost_Sync_From_WiFi&rdquo;.<br>This parameter is of string type and contains values for fields phyAddr, ssid, status, etc.<\/p><h5 id=\"CcspLMLite-NotifyMsg2\">NotifyMsg 2<\/h5><p>In this type of notification message, LMLite monitors the values of all the connected clients. For any connection\/disconnection host table is updated, it updates the notify component. The data sent from LMLite to notify component is status, MAC, interface of the connected device.<\/p><h5 id=\"CcspLMLite-NotifyMsg3\">NotifyMsg 3<\/h5><p>Notify component maintains a table of parameters for which PAs are interested to be notified. Whenever the notify component receives a NotifyMsg 2 from LMLite, it search&#8217;s this table and notifies the interested protocol agents.<\/p><h2 class=\"wp-main-header wp-block-heading\">Objects<\/h2><p>LMLite has three objects in its DML layer:<\/p><p>Note: The RDK data model naming convention prefix was changed in March 2020 to &ldquo;X_RDK_&rdquo;. We request you use this new prefix going forward.<\/p><div class=\"table-wrap\"> <table class=\"wrapped confluenceTable\"><colgroup><col><col><col><\/colgroup><tbody><tr><td class=\"confluenceTd\"><strong>Object<\/strong><\/td><td class=\"confluenceTd\"><strong>Description<\/strong><\/td><td colspan=\"1\" class=\"confluenceTd\"><strong>Supported Parameters<\/strong><\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\"><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">Device.Hosts.<\/pre><\/td><td colspan=\"1\" class=\"confluenceTd\">Contains parameters depicting statistics of the connected devices.<\/td><td colspan=\"1\" class=\"confluenceTd\"><ul><li>Device.Hosts.X_CISCO_COM_ConnectedDeviceNumber<\/li><li>Device.Hosts.X_CISCO_COM_ConnectedWiFiNumber<\/li><li>Device.Hosts.X_RDKCENTRAL-COM_HostVersionId<\/li><li>Device.Hosts.X_RDKCENTRAL-COM_HostCountPeriod<\/li><li>Device.Hosts.Host.{i}.PhysAddress<\/li><li>Device.Hosts.Host.{i}.IPAddress<\/li><li>Device.Hosts.Host.{i}.DHCPClient<\/li><li>Device.Hosts.Host.{i}.HostName<\/li><li>Device.Hosts.Host.{i}.LeaseTimeRemaining<\/li><li>Device.Hosts.Host.{i}.X_RDKCENTRAL-COM_DeviceType<\/li><\/ul><\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\"><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">Device.XHosts.<\/pre><\/td><td colspan=\"1\" class=\"confluenceTd\">Contains parameters for home security devices.<\/td><td colspan=\"1\" class=\"confluenceTd\"><ul><li>Device.XHosts.X_CISCO_COM_ConnectedDeviceNumber<\/li><li>Device.XHosts.XHost.{i}.Alias<\/li><li>Device.XHosts.XHost.{i}.PhysAddress<\/li><li>Device.XHosts.XHost.{i}.IPAddress<\/li><li>Device.XHosts.XHost.{i}.DHCPClient<\/li><li>Device.XHosts.XHost.{i}.HostName<\/li><li>Device.XHosts.XHost.{i}.LeaseTimeRemaining<\/li><li>Device.XHosts.XHost.{i}.X_RDKCENTRAL-COM_DeviceType<\/li><\/ul><\/td><\/tr><tr><td colspan=\"1\" class=\"confluenceTd\"><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\">Device.X_RDKCENTRAL-COM_Report.<\/pre><\/td><td colspan=\"1\" class=\"confluenceTd\">Contains parameters depicting network status and traffic.<\/td><td colspan=\"1\" class=\"confluenceTd\"><ul><li>Device.X_RDKCENTRAL-COM_Report.NetworkDevicesStatus.Enabled<\/li><li>Device.X_RDKCENTRAL-COM_Report.NetworkDevicesStatus.ReportingPeriod<\/li><li>Device.X_RDKCENTRAL-COM_Report.NetworkDevicesStatus.PollingPeriod<\/li><li>Device.X_RDKCENTRAL-COM_Report.NetworkDevicesStatus.Default.ReportingPeriod<\/li><li>Device.X_RDKCENTRAL-COM_Report.NetworkDevicesStatus.Default.PollingPeriod<\/li><li>Device.X_RDKCENTRAL-COM_Report.NetworkDevicesTraffic.Enabled<\/li><li>Device.X_RDKCENTRAL-COM_Report.NetworkDevicesTraffic.ReportingPeriod<\/li><li>Device.X_RDKCENTRAL-COM_Report.NetworkDevicesTraffic.PollingPeriod<\/li><li>Device.X_RDKCENTRAL-COM_Report.NetworkDevicesTraffic.Default.ReportingPeriod<\/li><li>Device.X_RDKCENTRAL-COM_Report.NetworkDevicesTraffic.Default.PollingPeriod<\/li><li>Device.X_RDKCENTRAL-COM_Report.InterfaceDevicesWifiExtender.Enabled<\/li><\/ul><\/td><\/tr><\/tbody><\/table> <\/div><p><span>Retrieving&nbsp; values using dmcli<\/span><\/p><div class=\"panel conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"panel\"><div class=\"panelContent\">\n<p>$ <strong>dmcli eRT getv Device.Hosts.HostNumberOfEntries<\/strong><\/p><p>CR component name is: <a href=\"http:\/\/eRT.com\" class=\"external-link\" rel=\"nofollow\">eRT.com<\/a>.cisco.spvtg.ccsp.CR<br>subsystem_prefix eRT.<br>getv from\/to component(<a href=\"http:\/\/eRT.com\" class=\"external-link\" rel=\"nofollow\">eRT.com<\/a>.cisco.spvtg.ccsp.lmlite): Device.Hosts.HostNumberOfEntries<br>Execution succeed.<br>Parameter 1 name: Device.Hosts.HostNumberOfEntries<br>type: uint, value: 1<\/p>\n<\/div><\/div><\/body><\/html>\n","protected":false},"excerpt":{"rendered":"<p>Introduction RDK-B devices provide multiple interfaces like MoCA, WiFi, Ethernet, etc. for clients to get [&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=\"Introduction RDK-B devices provide multiple interfaces like MoCA, WiFi, Ethernet, etc. for clients to get [&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=\"2025-03-25T05:18:33+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=\"3 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\":\"2025-03-25T05:18:33+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":"Introduction RDK-B devices provide multiple interfaces like MoCA, WiFi, Ethernet, etc. for clients to get [&hellip;]","og_url":"https:\/\/developer.rdkcentral.com\/documentation\/documentation\/rdk_broadband_documentation\/components\/ccsplmlite\/","og_site_name":"RDK Documentation Portal | Documentation","article_modified_time":"2025-03-25T05:18:33+00:00","twitter_card":"summary_large_image","twitter_misc":{"Est. reading time":"3 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":"2025-03-25T05:18:33+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":1,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/9596\/revisions"}],"predecessor-version":[{"id":9599,"href":"https:\/\/developer.rdkcentral.com\/documentation\/wp-json\/wp\/v2\/pages\/9596\/revisions\/9599"}],"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}]}}