# rdkcentral/lan-manager-lite architecture

> Architecture diagram of the GitHub repository rdkcentral/lan-manager-lite, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/rdkcentral/lan-manager-lite
- Repository: https://github.com/rdkcentral/lan-manager-lite
- Video tour (about a minute): https://gitdiagram.com/rdkcentral/lan-manager-lite/video

## Overview

CcspLMLite aggregates LAN-device information, tracks connectivity and presence, exposes host data through TR-181/RBus, and reports device and WAN traffic analytics. The graph combines README-documented subsystem relationships and capabilities with sampled source evidence for host-state handling, presence detection, message-bus setup, and WAN-table handlers. Several report, WebPA, and platform links are documented capabilities; their detailed implementations were not sampled.

Main entry points: [`source/lm/lm_main.c`](https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/lm_main.c) (LM core), [`source/lm/cosa_reports_internal.c`](https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/cosa_reports_internal.c) (Reports coordinator), [`source/lm/cosa_hosts_dml.c`](https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/cosa_hosts_dml.c) (Hosts TR-181), [`source/lm/lm_rbus_api.c`](https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/lm_rbus_api.c) (RBus integration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_core["Core management"]
  node_lmlite["LMLite service<br/>[ssp_main.c]"]
  node_lm_core["LM core<br/>[lm_main.c]"]
end

subgraph group_hosts["Host lifecycle"]
  node_host_state[("Host state<br/>[lm_main.c]")]
  node_presence["Presence detection"]
end

subgraph group_analytics["Analytics and reports"]
  node_reports["Reports coordinator"]
  node_device_status["Device status reports"]
  node_device_traffic["Device traffic reports"]
  node_wan_traffic["WAN traffic reports"]
end

subgraph group_interfaces["Management interfaces"]
  node_host_dml["Hosts TR-181<br/>[cosa_hosts_dml.c]"]
  node_rbus["RBus integration<br/>[lm_rbus_api.c]"]
  node_wan_handlers["WAN table handlers"]
  node_webpa["WebPA integration<br/>[webpa_interface.c]"]
end

node_protocol_agents(("Protocol agents"))
node_device_sources["LAN device sources"]
node_platform["WiFi and network platform"]
node_psm[("Persistent storage manager")]
node_remote_mgmt(("Remote management"))

node_protocol_agents -->|"IPC requests"| node_lmlite
node_lmlite -->|"starts"| node_lm_core
node_device_sources -->|"device updates"| node_lm_core
node_platform -->|"interface data"| node_lm_core
node_lm_core -->|"updates"| node_host_state
node_lm_core -->|"coordinates"| node_reports
node_psm -->|"restores state"| node_lm_core
node_host_state -->|"serves parameters"| node_host_dml
node_host_state -->|"device state"| node_presence
node_presence -->|"notifies changes"| node_host_dml
node_reports -->|"dispatches"| node_device_status
node_reports -->|"dispatches"| node_device_traffic
node_reports -->|"dispatches"| node_wan_traffic
node_rbus -->|"exposes model"| node_host_dml
node_rbus -->|"dispatches handlers"| node_wan_handlers
node_wan_handlers -->|"accesses data"| node_wan_traffic
node_webpa -.->|"sends telemetry"| node_reports
node_remote_mgmt -->|"management"| node_protocol_agents

click node_lmlite "https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/Ssp/ssp_main.c"
click node_lm_core "https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/lm_main.c"
click node_host_state "https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/lm_main.c"
click node_host_dml "https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/cosa_hosts_dml.c"
click node_presence "https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/device_presence_detection.c"
click node_reports "https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/cosa_reports_internal.c"
click node_device_status "https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/network_devices_status.c"
click node_device_traffic "https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/network_devices_traffic.c"
click node_wan_traffic "https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/cosa_wantraffic_api.c"
click node_rbus "https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/lm_rbus_api.c"
click node_wan_handlers "https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/wtc_rbus_handler_apis.c"
click node_webpa "https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/webpa_interface.c"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_lmlite,node_lm_core toneBlue
class node_host_state,node_presence,node_psm toneAmber
class node_reports,node_device_status,node_device_traffic,node_wan_traffic toneMint
class node_host_dml,node_rbus,node_wan_handlers,node_webpa toneRose
class node_protocol_agents,node_device_sources,node_platform,node_remote_mgmt toneIndigo
```

## Components

### Core management

- [LMLite service](https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/Ssp/ssp_main.c): `source/Ssp/ssp_main.c`
- [LM core](https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/lm_main.c): `source/lm/lm_main.c`

### Host lifecycle

- [Host state](https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/lm_main.c): `source/lm/lm_main.c`
- [Presence detection](https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/device_presence_detection.c): `source/lm/device_presence_detection.c`

### Analytics and reports

- [Reports coordinator](https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/cosa_reports_internal.c): `source/lm/cosa_reports_internal.c`
- [Device status reports](https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/network_devices_status.c): `source/lm/network_devices_status.c`
- [Device traffic reports](https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/network_devices_traffic.c): `source/lm/network_devices_traffic.c`
- [WAN traffic reports](https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/cosa_wantraffic_api.c): `source/lm/cosa_wantraffic_api.c`

### Management interfaces

- [Hosts TR-181](https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/cosa_hosts_dml.c): `source/lm/cosa_hosts_dml.c`
- [RBus integration](https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/lm_rbus_api.c): `source/lm/lm_rbus_api.c`
- [WAN table handlers](https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/wtc_rbus_handler_apis.c): `source/lm/wtc_rbus_handler_apis.c`
- [WebPA integration](https://github.com/rdkcentral/lan-manager-lite/blob/develop/source/lm/webpa_interface.c): `source/lm/webpa_interface.c`

### Other components

- **Protocol agents**
- **LAN device sources**
- **WiFi and network platform**
- **Persistent storage manager**
- **Remote management**

## Connections

- Protocol agents → LMLite service: IPC requests
- LMLite service → LM core: starts
- LAN device sources → LM core: device updates
- WiFi and network platform → LM core: interface data
- LM core → Host state: updates
- LM core → Reports coordinator: coordinates
- Persistent storage manager → LM core: restores state
- Host state → Hosts TR-181: serves parameters
- Host state → Presence detection: device state
- Presence detection → Hosts TR-181: notifies changes
- Reports coordinator → Device status reports: dispatches
- Reports coordinator → Device traffic reports: dispatches
- Reports coordinator → WAN traffic reports: dispatches
- RBus integration → Hosts TR-181: exposes model
- RBus integration → WAN table handlers: dispatches handlers
- WAN table handlers → WAN traffic reports: accesses data
- WebPA integration → Reports coordinator: sends telemetry
- Remote management → Protocol agents: management
