TBD |

// em_agent.cpp (line ~528) if (desc->bus_set_fn(&m_bus_hdl, "Device.WiFi.AccessPoint.1.RawFrame.Mgmt.Action.Tx", &raw_act_frame) == 0) // em_agent.cpp (line ~398) if (desc->bus_event_subs_fn(&m_bus_hdl, "Device.WiFi.CollectStats.AccessPoint.1.AssociatedDeviceStats", ...)) // em_agent.cpp (line ~393) if (desc->bus_event_subs_fn(&m_bus_hdl, WIFI_WEBCONFIG_GET_ASSOC, ...)) // dm_easy_mesh_agent.cpp (line ~901) if (desc->bus_set_fn(bus_hdl, "Device.WiFi.EM.ChannelScanRequest", &l_bus_data)== 0) |
// em_agent.cpp (line ~366)
bus_init(&m_bus_hdl);
// em_agent.cpp (line ~371)
if (desc->bus_open_fn(&m_bus_hdl, service_name) != 0) {
printf("%s:%d bus open failed\n",__func__, __LINE__);
return;
}
// em_agent.cpp (line ~389)
if (desc->bus_event_subs_fn(&m_bus_hdl, WIFI_WEBCONFIG_DOC_DATA_NORTH, (void *)&em_agent_t::onewifi_cb, NULL, 0) != 0) |
// dm_easy_mesh_agent.cpp (line ~174) void dm_easy_mesh_agent_t::translate_onewifi_dml_data (char *str) // dm_easy_mesh_agent.cpp (line ~313) translate_onewifi_stats_data((char *)evt->u.raw_buff); // dm_easy_mesh_agent.cpp (line ~970) int dm_easy_mesh_agent_t::refresh_onewifi_subdoc(wifi_bus_desc_t *desc, bus_handle_t *bus_hdl, const char* logname, webconfig_subdoc_type_t type, m2ctrl_radioconfig *m2_cfg, em_policy_cfg_params_t *policy_config) |
// dm_easy_mesh_agent.cpp (line ~784-810) ieeeframe->u.action.category = WLAN_ACTION_WNM; ieeeframe->u.action.u.bss_tm_req.action = WLAN_ACTION_HT; ieeeframe->u.action.u.bss_tm_req.req_mode = *(uint8_t *)&req_mode; memcpy(&ieeeframe->u.action.u.bss_tm_req.disassoc_timer, &steer_req->btm_dissoc_timer, sizeof(steer_req->btm_dissoc_timer)); |
// em_agent.cpp (line ~24) #define EM_CFG_FILE "/etc/EasymeshCfg.json" // em_agent.cpp (line ~378) while ((bus_error_val = desc->bus_data_get_fn(&m_bus_hdl, WIFI_WEBCONFIG_INIT_DML_DATA, &data)) != bus_error_success) // em_agent.cpp (line ~677) bool em_agent_t::try_create_default_em_cfg(std::string interface) |
// em_agent.cpp (line ~370) char service_name[] = "EasyMesh_service"; // em_agent.cpp (line ~763) int main(int argc, const char *argv[]) |
// dm_easy_mesh_agent.cpp (line ~177-189)
webconfig_t config;
webconfig_external_easymesh_t ext;
webconfig_subdoc_type_t type;
webconfig_proto_easymesh_init(&ext, this, NULL, NULL, get_num_radios, set_num_radios,
get_num_op_class, set_num_op_class, get_num_bss, set_num_bss,
get_device_info, get_network_info, get_radio_info, get_ieee_1905_security_info, get_bss_info, get_op_class_info,
get_first_sta_info, get_next_sta_info, get_sta_info, put_sta_info, get_bss_info_with_mac, update_scan_results);
config.initializer = webconfig_initializer_onewifi;
config.apply_data = webconfig_dummy_apply; |
// Throughout code, examples:
// em_agent.cpp (line ~371)
printf("%s:%d bus open failed\n",__func__, __LINE__);
// dm_easy_mesh_agent.cpp (line ~188)
printf( "[%s]:%d Init WiFi Web Config fail\n",__func__,__LINE__); |
RDK_LOG macros for consistent log formatting, filtering, and collection. All printf statements should be replaced with RDK-B's logging system to ensure proper integration with log management and monitoring tools. This also enables better troubleshooting in production environments through log level control.// em_agent.cpp (line ~24) #define SOCKET_PATH "/tmp/ieee1905_tunnel" // em_cmd_agent.cpp (line ~134) snprintf(m_sock_path, sizeof(m_sock_path), "%s_%s", EM_PATH_PREFIX, EM_AGENT_PATH); |
// Implied in function from em_agent.cpp (line ~681)
if (dm_easy_mesh_t::mac_address_from_name(interface.c_str(), if_mac) < 0){
printf("%s:%d: Failed to get MAC address for interface: %s\n", __func__, __LINE__, interface.c_str());
return false;
} |