Introduction

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.

Lan Manager maintains the information about the clients and their status, such as:

  • Client Host name
  • Mac Address
  • IP addresses
  • Lease information
  • Active/Inactive device status

Architecture

Figure 1 - LMLite High Level Architecture

Figure 1 illustrates the LMLite functionality.

LMLite interacts with other components of RDK-B stack over DBUS. Each of these components registers a "callback" function with respective HAL. The HAL performs a “callback” 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.


Function & Threads used in LM Lite

Important threads used by LMLite module

  • ValidateHost_Thread
  • ValidateHostRetry_Thread
  • Event_HandlerThread
  • Hosts_StatSyncThreadFunc
  • Hosts_LoggingThread

Important functions.

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.

  • Wifi_ServerSyncHost
  • Send_Eth_Host_Sync_Req
  • Wifi_Server_Sync_Function

Notifications

LMLite notifies the Notification component which in turn tells the interested PAs about the connection and disconnection of the connected devices.




There are three types of notification messages for the connected clients to work.

NotifyMsg 1: Notification Message from the individual interface component to LMLite about any update of the existing connected devices or any new connections.
NotifyMsg 2: Notification Message from LMLite to the Notify component
NotifyMsg 3: Notification message from Notify component to the PA’s who have registered for notifications for connected device.

NotifyMsg 1

In this type of notification message 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.

Example: For WiFi the dedicated parameter is
“Device.Hosts.X_RDKCENTRAL-COM_LMHost_Sync_From_WiFi”.
This parameter is of string type and contains values for fields phyAddr, ssid, status, etc.

NotifyMsg 2

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.

NotifyMsg 3

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's this table and notifies the interested protocol agents.

Objects

LMLite has three objects in its DML layer:

Note: The RDK data model naming convention prefix was changed in March 2020 to “X_RDK_”. We request you use this new prefix going forward.

ObjectDescriptionSupported Parameters
Device.Hosts.
Contains parameters depicting statistics of the connected devices.
  • Device.Hosts.X_CISCO_COM_ConnectedDeviceNumber
  • Device.Hosts.X_CISCO_COM_ConnectedWiFiNumber
  • Device.Hosts.X_RDKCENTRAL-COM_HostVersionId
  • Device.Hosts.X_RDKCENTRAL-COM_HostCountPeriod
  • Device.Hosts.Host.{i}.PhysAddress
  • Device.Hosts.Host.{i}.IPAddress
  • Device.Hosts.Host.{i}.DHCPClient
  • Device.Hosts.Host.{i}.HostName
  • Device.Hosts.Host.{i}.LeaseTimeRemaining
  • Device.Hosts.Host.{i}.X_RDKCENTRAL-COM_DeviceType
Device.XHosts.
Contains parameters for home security devices.
  • Device.XHosts.X_CISCO_COM_ConnectedDeviceNumber
  • Device.XHosts.XHost.{i}.Alias
  • Device.XHosts.XHost.{i}.PhysAddress
  • Device.XHosts.XHost.{i}.IPAddress
  • Device.XHosts.XHost.{i}.DHCPClient
  • Device.XHosts.XHost.{i}.HostName
  • Device.XHosts.XHost.{i}.LeaseTimeRemaining
  • Device.XHosts.XHost.{i}.X_RDKCENTRAL-COM_DeviceType
Device.X_RDKCENTRAL-COM_Report.
Contains parameters depicting network status and traffic.
  • Device.X_RDKCENTRAL-COM_Report.NetworkDevicesStatus.Enabled
  • Device.X_RDKCENTRAL-COM_Report.NetworkDevicesStatus.ReportingPeriod
  • Device.X_RDKCENTRAL-COM_Report.NetworkDevicesStatus.PollingPeriod
  • Device.X_RDKCENTRAL-COM_Report.NetworkDevicesStatus.Default.ReportingPeriod
  • Device.X_RDKCENTRAL-COM_Report.NetworkDevicesStatus.Default.PollingPeriod
  • Device.X_RDKCENTRAL-COM_Report.NetworkDevicesTraffic.Enabled
  • Device.X_RDKCENTRAL-COM_Report.NetworkDevicesTraffic.ReportingPeriod
  • Device.X_RDKCENTRAL-COM_Report.NetworkDevicesTraffic.PollingPeriod
  • Device.X_RDKCENTRAL-COM_Report.NetworkDevicesTraffic.Default.ReportingPeriod
  • Device.X_RDKCENTRAL-COM_Report.NetworkDevicesTraffic.Default.PollingPeriod
  • Device.X_RDKCENTRAL-COM_Report.InterfaceDevicesWifiExtender.Enabled

Retrieving  values using dmcli

$ dmcli eRT getv Device.Hosts.HostNumberOfEntries

CR component name is: eRT.com.cisco.spvtg.ccsp.CR
subsystem_prefix eRT.
getv from/to component(eRT.com.cisco.spvtg.ccsp.lmlite): Device.Hosts.HostNumberOfEntries
Execution succeed.
Parameter 1 name: Device.Hosts.HostNumberOfEntries
type: uint, value: 1

  • No labels