How rdkcentral/wan-manager works
RdkWanManager configures WAN links and maintains Internet connectivity. Interface Managers report physical-link status and configuration; WAN Manager builds virtual link/IP stacks, runs per-group selection policies and a failover policy, and configures link and IP layers through RDK components or Linux utilities. The graph includes documented configuration and protocol branches. Some connections are based on README descriptions or SOURCE INDEX references; unsampled implementation details are not inferred.
Main entry points: wanmgr_interface_sm.c Interface State Machine · wanmgr_data.h Runtime State · wanmgr_policy_autowan_impl.c AutoWAN Selection · wanmgr_rbus_handler_apis.c RBUS Handler
Components 20
Data Model and Configuration
- WAN Data Model
source/TR-181/include/wanmgr_dml.h - Interface DML
source/TR-181/middle_layer_src/wanmgr_dml_iface_apis.c - DHCP DML
source/TR-181/middle_layer_src/wanmgr_dml_dhcpv4.c - RBUS Handler
source/TR-181/middle_layer_src/wanmgr_rbus_handler_apis.c - WebConfig
source/WanManager/wanmgr_webconfig.c
WAN Runtime
- Runtime State
source/WanManager/wanmgr_data.h - WAN Controller
source/WanManager/wanmgr_controller.c - Interface State Machine
source/WanManager/wanmgr_interface_sm.c
Link and IP Configuration
- DHCP Event Handling
source/WanManager/wanmgr_dhcp_event_handler.c - DHCPv4 Client
source/WanManager/wanmgr_dhcpv4_internal.c - DHCPv6 Client
source/WanManager/wanmgr_dhcpv6_apis.c - Network Utilities
source/WanManager/wanmgr_net_utils.h
Selection and Connectivity
- AutoWAN Selection
source/WanManager/wanmgr_policy_autowan_impl.c - WAN Failover
source/WanManager/wanmgr_wan_failover.c - MAP-E Support
source/WanManager/wanmgr_mape.c - DS-Lite Support
source/WanManager/wanmgr_dslite.c
Other components
- Interface Managers
- Remote Config Clients
- RDK Network Services
- Linux Network Tools
Connections 23
- Interface Managers → WAN Controller: report link status
- Remote Config Clients → RBUS Handler: configure remotely
- Remote Config Clients → WebConfig: configure remotely
- Interface DML → Runtime State: accesses state
source/TR-181/middle_layer_src/wanmgr_dml_iface_apis.c - DHCP DML → DHCPv4 Client: uses client APIs
source/TR-181/middle_layer_src/wanmgr_dml_dhcpv4.c - RBUS Handler → Runtime State: accesses state
source/TR-181/middle_layer_src/wanmgr_rbus_handler_apis.c - RBUS Handler → Interface State Machine: uses interface APIs
- WAN Controller → Runtime State: uses state
source/WanManager/wanmgr_controller.c - AutoWAN Selection → WAN Controller: uses controller
source/WanManager/wanmgr_policy_autowan_impl.c - AutoWAN Selection → Interface State Machine: coordinates interfaces
source/WanManager/wanmgr_policy_autowan_impl.c - AutoWAN Selection → Runtime State: uses state
source/WanManager/wanmgr_policy_autowan_impl.c - Interface State Machine → Runtime State: uses state
source/WanManager/wanmgr_interface_sm.c - Interface State Machine → Network Utilities: uses network utilities
source/WanManager/wanmgr_interface_sm.c - Interface State Machine → DHCPv4 Client: uses DHCPv4 APIs
source/WanManager/wanmgr_interface_sm.c - Interface State Machine → DHCPv6 Client: uses DHCPv6 APIs
source/WanManager/wanmgr_interface_sm.c - Interface State Machine → MAP-E Support: uses MAP-E support
source/WanManager/wanmgr_interface_sm.c - Interface State Machine → DS-Lite Support: uses DS-Lite support
source/WanManager/wanmgr_interface_sm.c - DHCP Event Handling → Interface State Machine: uses interface APIs
source/WanManager/wanmgr_dhcp_event_handler.c - DHCP Event Handling → DHCPv6 Client: uses DHCPv6 APIs
source/WanManager/wanmgr_dhcp_event_handler.c - Interface State Machine → RDK Network Services: configures IP layers
- Interface State Machine → Linux Network Tools: configures network
- WAN Failover → Runtime State: uses WAN state
- RDK Network Services → Interface Managers: provides integrations