From 7cbd79876b37660793a033b2bf67c2949ec60b73 Mon Sep 17 00:00:00 2001 From: biju-vi <151033276+biju-vi@users.noreply.github.com> Date: Tue, 23 Dec 2025 23:10:57 +0000 Subject: [PATCH 01/15] Fixing local capability override issue --- source/InterDeviceManager/Idm_rbus.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/source/InterDeviceManager/Idm_rbus.c b/source/InterDeviceManager/Idm_rbus.c index 4bf70c0..11a5382 100644 --- a/source/InterDeviceManager/Idm_rbus.c +++ b/source/InterDeviceManager/Idm_rbus.c @@ -561,6 +561,7 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa { char *str = NULL; uint32_t len = 0; + char device_cap[512] = { 0 }; rbusValue_t value = rbusObject_GetValue(inParams, NULL ); @@ -590,7 +591,8 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa } token = strtok(NULL, ","); } - strncpy(pidmDmlInfo->stConnectionInfo.Capabilities, indexNode->stRemoteDeviceInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities)-1); + strcat_s(pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities), indexNode->stRemoteDeviceInfo.Capabilities); + CcspTraceInfo(("%s %d: DeviceCapabilities str = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); IdmMgrDml_GetConfigData_release(pidmDmlInfo); @@ -650,7 +652,7 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa } token = strtok(NULL, ","); } - rc = strcpy_s(pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities), indexNode->stRemoteDeviceInfo.Capabilities); + rc = strcat_s(pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities), indexNode->stRemoteDeviceInfo.Capabilities); ERR_CHK(rc); CcspTraceInfo(("%s %d: DeviceCapabilities str = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); IdmMgrDml_GetConfigData_release(pidmDmlInfo); From 640fe3e27fe4a586b1cbdaef3ecb987be531b518 Mon Sep 17 00:00:00 2001 From: biju-vi <151033276+biju-vi@users.noreply.github.com> Date: Tue, 23 Dec 2025 23:11:14 +0000 Subject: [PATCH 02/15] adding trace log when PSM get updated --- source/InterDeviceManager/Idm_data.c | 1 + 1 file changed, 1 insertion(+) diff --git a/source/InterDeviceManager/Idm_data.c b/source/InterDeviceManager/Idm_data.c index 0bd926e..4c9bfd3 100644 --- a/source/InterDeviceManager/Idm_data.c +++ b/source/InterDeviceManager/Idm_data.c @@ -124,6 +124,7 @@ int IdmMgr_write_IDM_ParametersToPSM() _ansc_memset(param_value, 0, sizeof(param_value)); _ansc_sprintf(param_name, PSM_DEVICE_CAPABILITIES); _ansc_sprintf(param_value, pidmDmlInfo->stConnectionInfo.Capabilities); + CcspTraceInfo(("%s %d - Setting %s with value %s \n", __FUNCTION__, __LINE__ ,PSM_DEVICE_CAPABILITIES, pidmDmlInfo->stConnectionInfo.Capabilities)); retPsmGet = IDM_RdkBus_SetParamValuesToDB(param_name,param_value); _ansc_memset(param_name, 0, sizeof(param_name)); From f9d2c4d44291aa8d60add6457180890629ba4c68 Mon Sep 17 00:00:00 2001 From: biju-vi <151033276+biju-vi@users.noreply.github.com> Date: Tue, 23 Dec 2025 23:11:23 +0000 Subject: [PATCH 03/15] remove temporary buffer --- source/InterDeviceManager/Idm_rbus.c | 1 - 1 file changed, 1 deletion(-) diff --git a/source/InterDeviceManager/Idm_rbus.c b/source/InterDeviceManager/Idm_rbus.c index 11a5382..8600cde 100644 --- a/source/InterDeviceManager/Idm_rbus.c +++ b/source/InterDeviceManager/Idm_rbus.c @@ -561,7 +561,6 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa { char *str = NULL; uint32_t len = 0; - char device_cap[512] = { 0 }; rbusValue_t value = rbusObject_GetValue(inParams, NULL ); From 61cf7295912339fa30aeee63ec406689aff3a53a Mon Sep 17 00:00:00 2001 From: biju-vi <151033276+biju-vi@users.noreply.github.com> Date: Tue, 23 Dec 2025 23:11:39 +0000 Subject: [PATCH 04/15] adding new capabilities --- source/InterDeviceManager/Idm_rbus.c | 37 ++++++++++++++++++++++------ 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/source/InterDeviceManager/Idm_rbus.c b/source/InterDeviceManager/Idm_rbus.c index 8600cde..29ef69e 100644 --- a/source/InterDeviceManager/Idm_rbus.c +++ b/source/InterDeviceManager/Idm_rbus.c @@ -590,14 +590,26 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa } token = strtok(NULL, ","); } - strcat_s(pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities), indexNode->stRemoteDeviceInfo.Capabilities); + + if(strlen(indexNode->stRemoteDeviceInfo.Capabilities) > 0) + { + CcspTraceInfo(("%s %d: Existing PSM Capability list = %s\n", __FUNCTION__, __LINE__, pidmDmlInfo->stConnectionInfo.Capabilities )); + CcspTraceInfo(("%s %d: Remote capability list = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); + // if run time PSM capability does not have new capabilities, append it and write to PSM + if(ststr(pidmDmlInfo->stConnectionInfo.Capabilities, indexNode->stRemoteDeviceInfo.Capabilities) == NULL) + { + CcspTraceInfo(("%s %d: Adding remote capability list = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); + rc = strcat_s(pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities), indexNode->stRemoteDeviceInfo.Capabilities); + ERR_CHK(rc); + CcspTraceInfo(("%s %d: New PSM capability list = %s\n", __FUNCTION__, __LINE__, pidmDmlInfo->stConnectionInfo.Capabilities)); - CcspTraceInfo(("%s %d: DeviceCapabilities str = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); + IdmMgr_write_IDM_ParametersToPSM(); + } + } IdmMgrDml_GetConfigData_release(pidmDmlInfo); IDM_Broadcast_LocalDeviceInfo(); - IdmMgr_write_IDM_ParametersToPSM(); return RBUS_ERROR_SUCCESS; } else if(strcmp(methodName, "Device.X_RDK_Remote.RemoveDeviceCapabilities()") == 0) @@ -651,12 +663,23 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa } token = strtok(NULL, ","); } - rc = strcat_s(pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities), indexNode->stRemoteDeviceInfo.Capabilities); - ERR_CHK(rc); - CcspTraceInfo(("%s %d: DeviceCapabilities str = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); + + if(strlen(indexNode->stRemoteDeviceInfo.Capabilities) > 0) + { + CcspTraceInfo(("%s %d: Existing PSM Capability list = %s\n", __FUNCTION__, __LINE__, pidmDmlInfo->stConnectionInfo.Capabilities )); + CcspTraceInfo(("%s %d: Remote capability list = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); + // if run time PSM capabilities does not have new capabilities, append it and write to PSM + if(ststr(pidmDmlInfo->stConnectionInfo.Capabilities, indexNode->stRemoteDeviceInfo.Capabilities) == NULL) + { + CcspTraceInfo(("%s %d: Adding remote capability list = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); + rc = strcat_s(pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities), indexNode->stRemoteDeviceInfo.Capabilities); + ERR_CHK(rc); + CcspTraceInfo(("%s %d: New PSM capability list = %s\n", __FUNCTION__, __LINE__, pidmDmlInfo->stConnectionInfo.Capabilities)); + IdmMgr_write_IDM_ParametersToPSM(); + } + } IdmMgrDml_GetConfigData_release(pidmDmlInfo); IDM_Broadcast_LocalDeviceInfo(); - IdmMgr_write_IDM_ParametersToPSM(); return RBUS_ERROR_SUCCESS; } else if(strcmp(methodName, "Device.X_RDK_Remote.ResetDeviceCapabilities()") == 0) From 3fbe08c11a873cbf7732dddccb1e774f30243ec7 Mon Sep 17 00:00:00 2001 From: biju-vi <151033276+biju-vi@users.noreply.github.com> Date: Tue, 23 Dec 2025 23:11:49 +0000 Subject: [PATCH 05/15] fixing compilation issue --- source/InterDeviceManager/Idm_rbus.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/source/InterDeviceManager/Idm_rbus.c b/source/InterDeviceManager/Idm_rbus.c index 29ef69e..34dab7d 100644 --- a/source/InterDeviceManager/Idm_rbus.c +++ b/source/InterDeviceManager/Idm_rbus.c @@ -596,7 +596,7 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa CcspTraceInfo(("%s %d: Existing PSM Capability list = %s\n", __FUNCTION__, __LINE__, pidmDmlInfo->stConnectionInfo.Capabilities )); CcspTraceInfo(("%s %d: Remote capability list = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); // if run time PSM capability does not have new capabilities, append it and write to PSM - if(ststr(pidmDmlInfo->stConnectionInfo.Capabilities, indexNode->stRemoteDeviceInfo.Capabilities) == NULL) + if(strstr(pidmDmlInfo->stConnectionInfo.Capabilities, indexNode->stRemoteDeviceInfo.Capabilities) == NULL) { CcspTraceInfo(("%s %d: Adding remote capability list = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); rc = strcat_s(pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities), indexNode->stRemoteDeviceInfo.Capabilities); @@ -669,7 +669,7 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa CcspTraceInfo(("%s %d: Existing PSM Capability list = %s\n", __FUNCTION__, __LINE__, pidmDmlInfo->stConnectionInfo.Capabilities )); CcspTraceInfo(("%s %d: Remote capability list = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); // if run time PSM capabilities does not have new capabilities, append it and write to PSM - if(ststr(pidmDmlInfo->stConnectionInfo.Capabilities, indexNode->stRemoteDeviceInfo.Capabilities) == NULL) + if(strstr(pidmDmlInfo->stConnectionInfo.Capabilities, indexNode->stRemoteDeviceInfo.Capabilities) == NULL) { CcspTraceInfo(("%s %d: Adding remote capability list = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); rc = strcat_s(pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities), indexNode->stRemoteDeviceInfo.Capabilities); From c7c5e3e78b9d3c5c22464309c35bceb5f600e1d6 Mon Sep 17 00:00:00 2001 From: biju-vi <151033276+biju-vi@users.noreply.github.com> Date: Tue, 23 Dec 2025 23:12:00 +0000 Subject: [PATCH 06/15] LTE-2689 - remote device.1 capabilities are not shown along with Extender , Modem Reason for change: Initialise local device Capabilities Test Procedure: Check IDM capabilities in DML Risks: Low Author: biju-vi <151033276+biju-vi@users.noreply.github.com> --- source/InterDeviceManager/Idm_rbus.c | 43 +++++++++------------------- 1 file changed, 13 insertions(+), 30 deletions(-) diff --git a/source/InterDeviceManager/Idm_rbus.c b/source/InterDeviceManager/Idm_rbus.c index 34dab7d..ec247ae 100644 --- a/source/InterDeviceManager/Idm_rbus.c +++ b/source/InterDeviceManager/Idm_rbus.c @@ -575,6 +575,10 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa return RBUS_ERROR_BUS_ERROR; } + // index 1 is local device and use default PSM before appending + memset(indexNode->stRemoteDeviceInfo.Capabilities, 0, sizeof(indexNode->stRemoteDeviceInfo.Capabilities)); + IdmMgr_GetFactoryDefaultValue(PSM_DEVICE_CAPABILITIES, indexNode->stRemoteDeviceInfo.Capabilities); + char* token = strtok(str, ","); while (token != NULL) { @@ -591,25 +595,13 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa token = strtok(NULL, ","); } - if(strlen(indexNode->stRemoteDeviceInfo.Capabilities) > 0) - { - CcspTraceInfo(("%s %d: Existing PSM Capability list = %s\n", __FUNCTION__, __LINE__, pidmDmlInfo->stConnectionInfo.Capabilities )); - CcspTraceInfo(("%s %d: Remote capability list = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); - // if run time PSM capability does not have new capabilities, append it and write to PSM - if(strstr(pidmDmlInfo->stConnectionInfo.Capabilities, indexNode->stRemoteDeviceInfo.Capabilities) == NULL) - { - CcspTraceInfo(("%s %d: Adding remote capability list = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); - rc = strcat_s(pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities), indexNode->stRemoteDeviceInfo.Capabilities); - ERR_CHK(rc); - CcspTraceInfo(("%s %d: New PSM capability list = %s\n", __FUNCTION__, __LINE__, pidmDmlInfo->stConnectionInfo.Capabilities)); - - IdmMgr_write_IDM_ParametersToPSM(); - } - } - + strncpy(pidmDmlInfo->stConnectionInfo.Capabilities, indexNode->stRemoteDeviceInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities)-1); + CcspTraceInfo(("%s %d: DeviceCapabilities str = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); + IdmMgrDml_GetConfigData_release(pidmDmlInfo); IDM_Broadcast_LocalDeviceInfo(); + IdmMgr_write_IDM_ParametersToPSM(); return RBUS_ERROR_SUCCESS; } else if(strcmp(methodName, "Device.X_RDK_Remote.RemoveDeviceCapabilities()") == 0) @@ -663,23 +655,14 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa } token = strtok(NULL, ","); } + + rc = strcpy_s(pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities), indexNode->stRemoteDeviceInfo.Capabilities); + ERR_CHK(rc); + CcspTraceInfo(("%s %d: DeviceCapabilities str = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); - if(strlen(indexNode->stRemoteDeviceInfo.Capabilities) > 0) - { - CcspTraceInfo(("%s %d: Existing PSM Capability list = %s\n", __FUNCTION__, __LINE__, pidmDmlInfo->stConnectionInfo.Capabilities )); - CcspTraceInfo(("%s %d: Remote capability list = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); - // if run time PSM capabilities does not have new capabilities, append it and write to PSM - if(strstr(pidmDmlInfo->stConnectionInfo.Capabilities, indexNode->stRemoteDeviceInfo.Capabilities) == NULL) - { - CcspTraceInfo(("%s %d: Adding remote capability list = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); - rc = strcat_s(pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities), indexNode->stRemoteDeviceInfo.Capabilities); - ERR_CHK(rc); - CcspTraceInfo(("%s %d: New PSM capability list = %s\n", __FUNCTION__, __LINE__, pidmDmlInfo->stConnectionInfo.Capabilities)); - IdmMgr_write_IDM_ParametersToPSM(); - } - } IdmMgrDml_GetConfigData_release(pidmDmlInfo); IDM_Broadcast_LocalDeviceInfo(); + IdmMgr_write_IDM_ParametersToPSM(); return RBUS_ERROR_SUCCESS; } else if(strcmp(methodName, "Device.X_RDK_Remote.ResetDeviceCapabilities()") == 0) From 4e0679da59ffd796dbfc0fdaf75c3a9f4d0b8d07 Mon Sep 17 00:00:00 2001 From: biju-vi <151033276+biju-vi@users.noreply.github.com> Date: Tue, 23 Dec 2025 23:12:09 +0000 Subject: [PATCH 07/15] LTE-2689 - remote device.1 capabilities are not shown along with Extender , Modem Reason for change: Add debug print Test Procedure: Check IDM capabilities in DML Risks: Low Author: biju-vi <151033276+biju-vi@users.noreply.github.com> --- source/InterDeviceManager/Idm_rbus.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/source/InterDeviceManager/Idm_rbus.c b/source/InterDeviceManager/Idm_rbus.c index ec247ae..3c0bf55 100644 --- a/source/InterDeviceManager/Idm_rbus.c +++ b/source/InterDeviceManager/Idm_rbus.c @@ -559,6 +559,7 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa if(strcmp(methodName, "Device.X_RDK_Remote.AddDeviceCapabilities()") == 0) { + CcspTraceInfo(("%s %d - Device.X_RDK_Remote.AddDeviceCapabilities() \n", __FUNCTION__, __LINE__)); char *str = NULL; uint32_t len = 0; @@ -579,6 +580,7 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa memset(indexNode->stRemoteDeviceInfo.Capabilities, 0, sizeof(indexNode->stRemoteDeviceInfo.Capabilities)); IdmMgr_GetFactoryDefaultValue(PSM_DEVICE_CAPABILITIES, indexNode->stRemoteDeviceInfo.Capabilities); + CcspTraceInfo(("%s %d - Current local device capabilities %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); char* token = strtok(str, ","); while (token != NULL) { @@ -596,8 +598,7 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa } strncpy(pidmDmlInfo->stConnectionInfo.Capabilities, indexNode->stRemoteDeviceInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities)-1); - CcspTraceInfo(("%s %d: DeviceCapabilities str = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); - + CcspTraceInfo(("%s %d: Updated DeviceCapabilities str = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); IdmMgrDml_GetConfigData_release(pidmDmlInfo); IDM_Broadcast_LocalDeviceInfo(); @@ -655,11 +656,9 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa } token = strtok(NULL, ","); } - rc = strcpy_s(pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities), indexNode->stRemoteDeviceInfo.Capabilities); ERR_CHK(rc); CcspTraceInfo(("%s %d: DeviceCapabilities str = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); - IdmMgrDml_GetConfigData_release(pidmDmlInfo); IDM_Broadcast_LocalDeviceInfo(); IdmMgr_write_IDM_ParametersToPSM(); From cc814613142189a3c94db618bfbd8143b33a6271 Mon Sep 17 00:00:00 2001 From: biju-vi <151033276+biju-vi@users.noreply.github.com> Date: Tue, 23 Dec 2025 23:12:14 +0000 Subject: [PATCH 08/15] adding additional logs --- source/InterDeviceManager/Idm_data.c | 3 +++ source/InterDeviceManager/Idm_rbus.c | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/source/InterDeviceManager/Idm_data.c b/source/InterDeviceManager/Idm_data.c index 4c9bfd3..ffe238a 100644 --- a/source/InterDeviceManager/Idm_data.c +++ b/source/InterDeviceManager/Idm_data.c @@ -47,6 +47,8 @@ static int IdmMgr_get_IDM_ParametersFromPSM() retPsmGet = IDM_RdkBus_GetParamValuesFromDB(param_name,param_value,sizeof(param_value)); + CcspTraceInfo(("%s %d - Capabilities initial value from PSM %s \n", __FUNCTION__, __LINE__ , param_value)); + if (retPsmGet == CCSP_SUCCESS) { AnscCopyString(pidmDmlInfo->stConnectionInfo.Capabilities, param_value); @@ -221,6 +223,7 @@ ANSC_STATUS IdmMgr_Data_Init(void) gpidmDmlInfo.pidmDmlInfo = (PIDM_DML_INFO)AnscAllocateMemory(sizeof(IDM_DML_INFO)); IdmMgr_SetConfigData_Default(); + CcspTraceError(("%s %d: Calling IdmMgr_get_IDM_ParametersFromPSM\n", __FUNCTION__, __LINE__)); IdmMgr_get_IDM_ParametersFromPSM(); pthread_mutex_init(&(gpidmDmlInfo.mDataMutex), &(muttex_attr)); return ANSC_STATUS_SUCCESS; diff --git a/source/InterDeviceManager/Idm_rbus.c b/source/InterDeviceManager/Idm_rbus.c index 3c0bf55..f432cbb 100644 --- a/source/InterDeviceManager/Idm_rbus.c +++ b/source/InterDeviceManager/Idm_rbus.c @@ -613,6 +613,8 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa uint32_t source_len = 0; char *source = NULL; + CcspTraceInfo(("%s %d - Device.X_RDK_Remote.RemoveDeviceCapabilities() \n", __FUNCTION__, __LINE__)); + rbusValue_t value = rbusObject_GetValue(inParams, NULL ); out = rbusValue_GetString(value, &len); @@ -623,6 +625,7 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa IdmMgrDml_GetConfigData_release(pidmDmlInfo); return RBUS_ERROR_BUS_ERROR; } + CcspTraceInfo(("%s %d: Existing capabilites before removal = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); char * arr = indexNode->stRemoteDeviceInfo.Capabilities; char* token = strtok((char *)out, ","); @@ -656,6 +659,7 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa } token = strtok(NULL, ","); } + CcspTraceInfo(("%s %d: Capabilities after removal = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); rc = strcpy_s(pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities), indexNode->stRemoteDeviceInfo.Capabilities); ERR_CHK(rc); CcspTraceInfo(("%s %d: DeviceCapabilities str = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); From a3d33d6d195f49a9929a5afd6b8c1cd225a1db09 Mon Sep 17 00:00:00 2001 From: biju-vi <151033276+biju-vi@users.noreply.github.com> Date: Tue, 23 Dec 2025 23:12:23 +0000 Subject: [PATCH 09/15] adding logs --- source/InterDeviceManager/Idm_rbus.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/source/InterDeviceManager/Idm_rbus.c b/source/InterDeviceManager/Idm_rbus.c index f432cbb..95d1fa9 100644 --- a/source/InterDeviceManager/Idm_rbus.c +++ b/source/InterDeviceManager/Idm_rbus.c @@ -575,12 +575,13 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa IdmMgrDml_GetConfigData_release(pidmDmlInfo); return RBUS_ERROR_BUS_ERROR; } + CcspTraceInfo(("%s %d - Current local device capabilities %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); + CcspTraceInfo(("%s %d - Getting Factory Default value \n", __FUNCTION__, __LINE__)); // index 1 is local device and use default PSM before appending memset(indexNode->stRemoteDeviceInfo.Capabilities, 0, sizeof(indexNode->stRemoteDeviceInfo.Capabilities)); IdmMgr_GetFactoryDefaultValue(PSM_DEVICE_CAPABILITIES, indexNode->stRemoteDeviceInfo.Capabilities); - CcspTraceInfo(("%s %d - Current local device capabilities %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); char* token = strtok(str, ","); while (token != NULL) { From b3d25cc2822907f16371780e202d40dc61a9d46b Mon Sep 17 00:00:00 2001 From: biju-vi <151033276+biju-vi@users.noreply.github.com> Date: Tue, 23 Dec 2025 23:12:28 +0000 Subject: [PATCH 10/15] adding PSM check --- source/InterDeviceManager/Idm_rbus.c | 45 ++++++++++++++++++++-------- 1 file changed, 33 insertions(+), 12 deletions(-) diff --git a/source/InterDeviceManager/Idm_rbus.c b/source/InterDeviceManager/Idm_rbus.c index 95d1fa9..bed07c1 100644 --- a/source/InterDeviceManager/Idm_rbus.c +++ b/source/InterDeviceManager/Idm_rbus.c @@ -575,13 +575,18 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa IdmMgrDml_GetConfigData_release(pidmDmlInfo); return RBUS_ERROR_BUS_ERROR; } + CcspTraceInfo(("%s %d - Current PSM capabilities %s \n", __FUNCTION__, __LINE__,pidmDmlInfo->stConnectionInfo.Capabilities)); CcspTraceInfo(("%s %d - Current local device capabilities %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); - CcspTraceInfo(("%s %d - Getting Factory Default value \n", __FUNCTION__, __LINE__)); - // index 1 is local device and use default PSM before appending - memset(indexNode->stRemoteDeviceInfo.Capabilities, 0, sizeof(indexNode->stRemoteDeviceInfo.Capabilities)); - IdmMgr_GetFactoryDefaultValue(PSM_DEVICE_CAPABILITIES, indexNode->stRemoteDeviceInfo.Capabilities); - + if(strlen(indexNode->stRemoteDeviceInfo.Capabilities) == 0) + { + //Local device capabilites is empty. update local device capability with default values from PSM + if(pidmDmlInfo->stConnectionInfo.Capabilities) + { + strncpy(indexNode->stRemoteDeviceInfo.Capabilities, pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(indexNode->stRemoteDeviceInfo.Capabilities) - 1); + } + } + /* Append local device capabilities from rbus value */ char* token = strtok(str, ","); while (token != NULL) { @@ -597,9 +602,9 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa } token = strtok(NULL, ","); } - - strncpy(pidmDmlInfo->stConnectionInfo.Capabilities, indexNode->stRemoteDeviceInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities)-1); + // we have a modified local device capabilites now. Write back to PSM CcspTraceInfo(("%s %d: Updated DeviceCapabilities str = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); + strncpy(pidmDmlInfo->stConnectionInfo.Capabilities, indexNode->stRemoteDeviceInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities)-1); IdmMgrDml_GetConfigData_release(pidmDmlInfo); IDM_Broadcast_LocalDeviceInfo(); @@ -626,8 +631,18 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa IdmMgrDml_GetConfigData_release(pidmDmlInfo); return RBUS_ERROR_BUS_ERROR; } - CcspTraceInfo(("%s %d: Existing capabilites before removal = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); + CcspTraceInfo(("%s %d - Current PSM capabilities %s \n", __FUNCTION__, __LINE__,pidmDmlInfo->stConnectionInfo.Capabilities)); + CcspTraceInfo(("%s %d - Current local device capabilities %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); + if(strlen(indexNode->stRemoteDeviceInfo.Capabilities) == 0) + { + //Local device capabilites is empty. update local device capability with default values from PSM + if(pidmDmlInfo->stConnectionInfo.Capabilities) + { + strncpy(indexNode->stRemoteDeviceInfo.Capabilities, pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(indexNode->stRemoteDeviceInfo.Capabilities) - 1); + } + } + /* Remove capability as requested by rbus value */ char * arr = indexNode->stRemoteDeviceInfo.Capabilities; char* token = strtok((char *)out, ","); while (token != NULL) @@ -660,10 +675,16 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa } token = strtok(NULL, ","); } - CcspTraceInfo(("%s %d: Capabilities after removal = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); - rc = strcpy_s(pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities), indexNode->stRemoteDeviceInfo.Capabilities); - ERR_CHK(rc); - CcspTraceInfo(("%s %d: DeviceCapabilities str = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); + + /* Some capabilites might have removed in local device. write back to PSM */ + CcspTraceInfo(("%s %d - Current PSM capabilities %s \n", __FUNCTION__, __LINE__,pidmDmlInfo->stConnectionInfo.Capabilities)); + CcspTraceInfo(("%s %d - Current local device capabilities %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); + + if(strcmp(pidmDmlInfo->stConnectionInfo.Capabilities, indexNode->stRemoteDeviceInfo.Capabilities) != 0) + { + rc = strcpy_s(pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities), indexNode->stRemoteDeviceInfo.Capabilities); + ERR_CHK(rc); + } IdmMgrDml_GetConfigData_release(pidmDmlInfo); IDM_Broadcast_LocalDeviceInfo(); IdmMgr_write_IDM_ParametersToPSM(); From 136130f1a0487acda28fcca58730418013055701 Mon Sep 17 00:00:00 2001 From: biju-vi <151033276+biju-vi@users.noreply.github.com> Date: Tue, 23 Dec 2025 23:12:33 +0000 Subject: [PATCH 11/15] updating PSM --- source/InterDeviceManager/Idm_rbus.c | 40 +++++++++++++++++++--------- 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/source/InterDeviceManager/Idm_rbus.c b/source/InterDeviceManager/Idm_rbus.c index bed07c1..a545424 100644 --- a/source/InterDeviceManager/Idm_rbus.c +++ b/source/InterDeviceManager/Idm_rbus.c @@ -580,9 +580,10 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa if(strlen(indexNode->stRemoteDeviceInfo.Capabilities) == 0) { - //Local device capabilites is empty. update local device capability with default values from PSM + CcspTraceInfo(("%s %d - local device capabilities is empty \n", __FUNCTION__, __LINE__)); if(pidmDmlInfo->stConnectionInfo.Capabilities) { + CcspTraceInfo(("%s %d - Updating local device capabilities from PSM %s \n", __FUNCTION__, __LINE__)); strncpy(indexNode->stRemoteDeviceInfo.Capabilities, pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(indexNode->stRemoteDeviceInfo.Capabilities) - 1); } } @@ -602,13 +603,21 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa } token = strtok(NULL, ","); } - // we have a modified local device capabilites now. Write back to PSM - CcspTraceInfo(("%s %d: Updated DeviceCapabilities str = %s\n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); - strncpy(pidmDmlInfo->stConnectionInfo.Capabilities, indexNode->stRemoteDeviceInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities)-1); - IdmMgrDml_GetConfigData_release(pidmDmlInfo); + CcspTraceInfo(("%s %d - Current PSM capabilities %s \n", __FUNCTION__, __LINE__,pidmDmlInfo->stConnectionInfo.Capabilities)); + CcspTraceInfo(("%s %d - New local device capabilities %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); + if(strcmp(pidmDmlInfo->stConnectionInfo.Capabilities, indexNode->stRemoteDeviceInfo.Capabilities) != 0) + { + CcspTraceInfo(("%s %d - updating PSM with value %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); + strncpy(pidmDmlInfo->stConnectionInfo.Capabilities, indexNode->stRemoteDeviceInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities)-1); + IdmMgrDml_GetConfigData_release(pidmDmlInfo); + IDM_Broadcast_LocalDeviceInfo(); + IdmMgr_write_IDM_ParametersToPSM(); + } + else + { + IdmMgrDml_GetConfigData_release(pidmDmlInfo); + } - IDM_Broadcast_LocalDeviceInfo(); - IdmMgr_write_IDM_ParametersToPSM(); return RBUS_ERROR_SUCCESS; } else if(strcmp(methodName, "Device.X_RDK_Remote.RemoveDeviceCapabilities()") == 0) @@ -635,9 +644,10 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa CcspTraceInfo(("%s %d - Current local device capabilities %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); if(strlen(indexNode->stRemoteDeviceInfo.Capabilities) == 0) { - //Local device capabilites is empty. update local device capability with default values from PSM + CcspTraceInfo(("%s %d - local device capabilities is empty \n", __FUNCTION__, __LINE__)); if(pidmDmlInfo->stConnectionInfo.Capabilities) { + CcspTraceInfo(("%s %d - Updating local device capabilities from PSM %s \n", __FUNCTION__, __LINE__)); strncpy(indexNode->stRemoteDeviceInfo.Capabilities, pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(indexNode->stRemoteDeviceInfo.Capabilities) - 1); } } @@ -678,16 +688,22 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa /* Some capabilites might have removed in local device. write back to PSM */ CcspTraceInfo(("%s %d - Current PSM capabilities %s \n", __FUNCTION__, __LINE__,pidmDmlInfo->stConnectionInfo.Capabilities)); - CcspTraceInfo(("%s %d - Current local device capabilities %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); + CcspTraceInfo(("%s %d - New local device capabilities %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); if(strcmp(pidmDmlInfo->stConnectionInfo.Capabilities, indexNode->stRemoteDeviceInfo.Capabilities) != 0) { + CcspTraceInfo(("%s %d - updating PSM with value %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); rc = strcpy_s(pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities), indexNode->stRemoteDeviceInfo.Capabilities); ERR_CHK(rc); + IdmMgrDml_GetConfigData_release(pidmDmlInfo); + IDM_Broadcast_LocalDeviceInfo(); + IdmMgr_write_IDM_ParametersToPSM(); + } + else + { + // No change in capabilities + IdmMgrDml_GetConfigData_release(pidmDmlInfo); } - IdmMgrDml_GetConfigData_release(pidmDmlInfo); - IDM_Broadcast_LocalDeviceInfo(); - IdmMgr_write_IDM_ParametersToPSM(); return RBUS_ERROR_SUCCESS; } else if(strcmp(methodName, "Device.X_RDK_Remote.ResetDeviceCapabilities()") == 0) From cef7f56ffb0e7b4aa1799bd091fab63bf4881f21 Mon Sep 17 00:00:00 2001 From: biju-vi <151033276+biju-vi@users.noreply.github.com> Date: Tue, 23 Dec 2025 23:12:39 +0000 Subject: [PATCH 12/15] LTE-2689:remote device.1 capabilities are not shown along with Extender , Modem Reason - Update local device capabilities from PSM --- source/InterDeviceManager/Idm_rbus.c | 46 +++++++++++++++++++--------- 1 file changed, 32 insertions(+), 14 deletions(-) diff --git a/source/InterDeviceManager/Idm_rbus.c b/source/InterDeviceManager/Idm_rbus.c index a545424..d8111bc 100644 --- a/source/InterDeviceManager/Idm_rbus.c +++ b/source/InterDeviceManager/Idm_rbus.c @@ -581,10 +581,19 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa if(strlen(indexNode->stRemoteDeviceInfo.Capabilities) == 0) { CcspTraceInfo(("%s %d - local device capabilities is empty \n", __FUNCTION__, __LINE__)); - if(pidmDmlInfo->stConnectionInfo.Capabilities) + if(strlen(pidmDmlInfo->stConnectionInfo.Capabilities) > 0) { CcspTraceInfo(("%s %d - Updating local device capabilities from PSM %s \n", __FUNCTION__, __LINE__)); - strncpy(indexNode->stRemoteDeviceInfo.Capabilities, pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(indexNode->stRemoteDeviceInfo.Capabilities) - 1); + rc = strcpy_s(indexNode->stRemoteDeviceInfo.Capabilities, sizeof(indexNode->stRemoteDeviceInfo.Capabilities), pidmDmlInfo->stConnectionInfo.Capabilities); + ERR_CHK(rc); + } + else + { + // PSM data structre is also empty. Read it from factory and update local device cap + IdmMgr_GetFactoryDefaultValue(PSM_DEVICE_CAPABILITIES, pidmDmlInfo->stConnectionInfo.Capabilities); + CcspTraceInfo(("%s %d - Updating local device capabilities from factory PSM: %s \n", __FUNCTION__, __LINE__)); + rc = strcpy_s(indexNode->stRemoteDeviceInfo.Capabilities, sizeof(indexNode->stRemoteDeviceInfo.Capabilities), pidmDmlInfo->stConnectionInfo.Capabilities); + ERR_CHK(rc); } } /* Append local device capabilities from rbus value */ @@ -603,12 +612,13 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa } token = strtok(NULL, ","); } - CcspTraceInfo(("%s %d - Current PSM capabilities %s \n", __FUNCTION__, __LINE__,pidmDmlInfo->stConnectionInfo.Capabilities)); - CcspTraceInfo(("%s %d - New local device capabilities %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); + + CcspTraceInfo(("%s %d - New local device capabilities after update: %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); if(strcmp(pidmDmlInfo->stConnectionInfo.Capabilities, indexNode->stRemoteDeviceInfo.Capabilities) != 0) { - CcspTraceInfo(("%s %d - updating PSM with value %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); - strncpy(pidmDmlInfo->stConnectionInfo.Capabilities, indexNode->stRemoteDeviceInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities)-1); + CcspTraceInfo(("%s %d - Updating PSM with value: %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); + rc = strcpy_s(pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities), indexNode->stRemoteDeviceInfo.Capabilities); + ERR_CHK(rc); IdmMgrDml_GetConfigData_release(pidmDmlInfo); IDM_Broadcast_LocalDeviceInfo(); IdmMgr_write_IDM_ParametersToPSM(); @@ -640,15 +650,24 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa IdmMgrDml_GetConfigData_release(pidmDmlInfo); return RBUS_ERROR_BUS_ERROR; } - CcspTraceInfo(("%s %d - Current PSM capabilities %s \n", __FUNCTION__, __LINE__,pidmDmlInfo->stConnectionInfo.Capabilities)); - CcspTraceInfo(("%s %d - Current local device capabilities %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); + CcspTraceInfo(("%s %d - Current PSM capabilities: %s \n", __FUNCTION__, __LINE__,pidmDmlInfo->stConnectionInfo.Capabilities)); + CcspTraceInfo(("%s %d - Current local device capabilities: %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); if(strlen(indexNode->stRemoteDeviceInfo.Capabilities) == 0) { CcspTraceInfo(("%s %d - local device capabilities is empty \n", __FUNCTION__, __LINE__)); - if(pidmDmlInfo->stConnectionInfo.Capabilities) + if(strlen(pidmDmlInfo->stConnectionInfo.Capabilities) > 0) { - CcspTraceInfo(("%s %d - Updating local device capabilities from PSM %s \n", __FUNCTION__, __LINE__)); - strncpy(indexNode->stRemoteDeviceInfo.Capabilities, pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(indexNode->stRemoteDeviceInfo.Capabilities) - 1); + CcspTraceInfo(("%s %d - Updating local device capabilities from PSM: %s \n", __FUNCTION__, __LINE__)); + rc = strcpy_s(indexNode->stRemoteDeviceInfo.Capabilities, sizeof(indexNode->stRemoteDeviceInfo.Capabilities), pidmDmlInfo->stConnectionInfo.Capabilities); + ERR_CHK(rc); + } + else + { + // PSM data structre is also empty. Read it from factory and update local device cap + IdmMgr_GetFactoryDefaultValue(PSM_DEVICE_CAPABILITIES, pidmDmlInfo->stConnectionInfo.Capabilities); + CcspTraceInfo(("%s %d - Updating local device capabilities from factory PSM: %s \n", __FUNCTION__, __LINE__)); + rc = strcpy_s(indexNode->stRemoteDeviceInfo.Capabilities, sizeof(indexNode->stRemoteDeviceInfo.Capabilities), pidmDmlInfo->stConnectionInfo.Capabilities); + ERR_CHK(rc); } } @@ -687,12 +706,11 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa } /* Some capabilites might have removed in local device. write back to PSM */ - CcspTraceInfo(("%s %d - Current PSM capabilities %s \n", __FUNCTION__, __LINE__,pidmDmlInfo->stConnectionInfo.Capabilities)); - CcspTraceInfo(("%s %d - New local device capabilities %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); + CcspTraceInfo(("%s %d - New local device capabilities after update : %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); if(strcmp(pidmDmlInfo->stConnectionInfo.Capabilities, indexNode->stRemoteDeviceInfo.Capabilities) != 0) { - CcspTraceInfo(("%s %d - updating PSM with value %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); + CcspTraceInfo(("%s %d - Updating PSM with value %s: \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); rc = strcpy_s(pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities), indexNode->stRemoteDeviceInfo.Capabilities); ERR_CHK(rc); IdmMgrDml_GetConfigData_release(pidmDmlInfo); From 86220845b24717e95dcad27b0bcd7f6a127bc4b4 Mon Sep 17 00:00:00 2001 From: biju-vi <151033276+biju-vi@users.noreply.github.com> Date: Tue, 23 Dec 2025 23:12:46 +0000 Subject: [PATCH 13/15] LTE-2689:remote device.1 capabilities are not shown along with Extender , Modem Reason - Update local device capabilities from PSM --- source/InterDeviceManager/Idm_rbus.c | 58 +++++++++++----------------- 1 file changed, 22 insertions(+), 36 deletions(-) diff --git a/source/InterDeviceManager/Idm_rbus.c b/source/InterDeviceManager/Idm_rbus.c index d8111bc..0805959 100644 --- a/source/InterDeviceManager/Idm_rbus.c +++ b/source/InterDeviceManager/Idm_rbus.c @@ -575,8 +575,8 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa IdmMgrDml_GetConfigData_release(pidmDmlInfo); return RBUS_ERROR_BUS_ERROR; } - CcspTraceInfo(("%s %d - Current PSM capabilities %s \n", __FUNCTION__, __LINE__,pidmDmlInfo->stConnectionInfo.Capabilities)); - CcspTraceInfo(("%s %d - Current local device capabilities %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); + CcspTraceInfo(("%s %d - PSM capabilities before addition: %s \n", __FUNCTION__, __LINE__,pidmDmlInfo->stConnectionInfo.Capabilities)); + CcspTraceInfo(("%s %d - Local device capabilities before addition: %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); if(strlen(indexNode->stRemoteDeviceInfo.Capabilities) == 0) { @@ -613,20 +613,14 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa token = strtok(NULL, ","); } - CcspTraceInfo(("%s %d - New local device capabilities after update: %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); - if(strcmp(pidmDmlInfo->stConnectionInfo.Capabilities, indexNode->stRemoteDeviceInfo.Capabilities) != 0) - { - CcspTraceInfo(("%s %d - Updating PSM with value: %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); - rc = strcpy_s(pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities), indexNode->stRemoteDeviceInfo.Capabilities); - ERR_CHK(rc); - IdmMgrDml_GetConfigData_release(pidmDmlInfo); - IDM_Broadcast_LocalDeviceInfo(); - IdmMgr_write_IDM_ParametersToPSM(); - } - else - { - IdmMgrDml_GetConfigData_release(pidmDmlInfo); - } + CcspTraceInfo(("%s %d - New local device capabilities after addition: %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); + CcspTraceInfo(("%s %d - Updating PSM with value: %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); + rc = strcpy_s(pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities), indexNode->stRemoteDeviceInfo.Capabilities); + ERR_CHK(rc); + IdmMgrDml_GetConfigData_release(pidmDmlInfo); + CcspTraceInfo(("%s %d - Broadcsting local device capabilities \n", __FUNCTION__, __LINE__)); + IDM_Broadcast_LocalDeviceInfo(); + IdmMgr_write_IDM_ParametersToPSM(); return RBUS_ERROR_SUCCESS; } @@ -650,8 +644,8 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa IdmMgrDml_GetConfigData_release(pidmDmlInfo); return RBUS_ERROR_BUS_ERROR; } - CcspTraceInfo(("%s %d - Current PSM capabilities: %s \n", __FUNCTION__, __LINE__,pidmDmlInfo->stConnectionInfo.Capabilities)); - CcspTraceInfo(("%s %d - Current local device capabilities: %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); + CcspTraceInfo(("%s %d - PSM capabilities before removal: %s \n", __FUNCTION__, __LINE__,pidmDmlInfo->stConnectionInfo.Capabilities)); + CcspTraceInfo(("%s %d - Local device capabilities before removal: %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); if(strlen(indexNode->stRemoteDeviceInfo.Capabilities) == 0) { CcspTraceInfo(("%s %d - local device capabilities is empty \n", __FUNCTION__, __LINE__)); @@ -688,8 +682,8 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa // removing last ; char *(capPos - 1) = '\0'; } - IdmMgrDml_GetConfigData_release(pidmDmlInfo); - return RBUS_ERROR_SUCCESS; + // allow to update PSM and broadcast the capabilites after removal + break; } // Copy remaining strings excluding token and comma source = capPos + (strlen(token) + 1); @@ -706,22 +700,14 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa } /* Some capabilites might have removed in local device. write back to PSM */ - CcspTraceInfo(("%s %d - New local device capabilities after update : %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); - - if(strcmp(pidmDmlInfo->stConnectionInfo.Capabilities, indexNode->stRemoteDeviceInfo.Capabilities) != 0) - { - CcspTraceInfo(("%s %d - Updating PSM with value %s: \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); - rc = strcpy_s(pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities), indexNode->stRemoteDeviceInfo.Capabilities); - ERR_CHK(rc); - IdmMgrDml_GetConfigData_release(pidmDmlInfo); - IDM_Broadcast_LocalDeviceInfo(); - IdmMgr_write_IDM_ParametersToPSM(); - } - else - { - // No change in capabilities - IdmMgrDml_GetConfigData_release(pidmDmlInfo); - } + CcspTraceInfo(("%s %d - New local device capabilities after removal : %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); + CcspTraceInfo(("%s %d - Updating PSM with new value \n", __FUNCTION__, __LINE__)); + rc = strcpy_s(pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities), indexNode->stRemoteDeviceInfo.Capabilities); + ERR_CHK(rc); + IdmMgrDml_GetConfigData_release(pidmDmlInfo); + CcspTraceInfo(("%s %d - Publishing local device info \n", __FUNCTION__, __LINE__)); + IDM_Broadcast_LocalDeviceInfo(); + IdmMgr_write_IDM_ParametersToPSM(); return RBUS_ERROR_SUCCESS; } else if(strcmp(methodName, "Device.X_RDK_Remote.ResetDeviceCapabilities()") == 0) From 6cf55c5c1dd203b387b413d451fc2d270803ccd6 Mon Sep 17 00:00:00 2001 From: biju-vi <151033276+biju-vi@users.noreply.github.com> Date: Tue, 23 Dec 2025 23:12:54 +0000 Subject: [PATCH 14/15] updating trace error with info --- source/InterDeviceManager/Idm_data.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/source/InterDeviceManager/Idm_data.c b/source/InterDeviceManager/Idm_data.c index ffe238a..bcb8272 100644 --- a/source/InterDeviceManager/Idm_data.c +++ b/source/InterDeviceManager/Idm_data.c @@ -223,7 +223,7 @@ ANSC_STATUS IdmMgr_Data_Init(void) gpidmDmlInfo.pidmDmlInfo = (PIDM_DML_INFO)AnscAllocateMemory(sizeof(IDM_DML_INFO)); IdmMgr_SetConfigData_Default(); - CcspTraceError(("%s %d: Calling IdmMgr_get_IDM_ParametersFromPSM\n", __FUNCTION__, __LINE__)); + CcspTraceInfo(("%s %d: Calling IdmMgr_get_IDM_ParametersFromPSM\n", __FUNCTION__, __LINE__)); IdmMgr_get_IDM_ParametersFromPSM(); pthread_mutex_init(&(gpidmDmlInfo.mDataMutex), &(muttex_attr)); return ANSC_STATUS_SUCCESS; From 06c9304fcfd184970f42d78e639933d65e995d32 Mon Sep 17 00:00:00 2001 From: biju-vi <151033276+biju-vi@users.noreply.github.com> Date: Tue, 23 Dec 2025 23:13:00 +0000 Subject: [PATCH 15/15] adding logs for incoming capability update --- source/InterDeviceManager/Idm_rbus.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/source/InterDeviceManager/Idm_rbus.c b/source/InterDeviceManager/Idm_rbus.c index 0805959..174aa09 100644 --- a/source/InterDeviceManager/Idm_rbus.c +++ b/source/InterDeviceManager/Idm_rbus.c @@ -559,7 +559,6 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa if(strcmp(methodName, "Device.X_RDK_Remote.AddDeviceCapabilities()") == 0) { - CcspTraceInfo(("%s %d - Device.X_RDK_Remote.AddDeviceCapabilities() \n", __FUNCTION__, __LINE__)); char *str = NULL; uint32_t len = 0; @@ -575,7 +574,10 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa IdmMgrDml_GetConfigData_release(pidmDmlInfo); return RBUS_ERROR_BUS_ERROR; } + CcspTraceInfo(("%s %d - Device.X_RDK_Remote.AddDeviceCapabilities() - %s \n", __FUNCTION__, __LINE__, str)); + CcspTraceInfo(("%s %d - PSM capabilities before addition: %s \n", __FUNCTION__, __LINE__,pidmDmlInfo->stConnectionInfo.Capabilities)); + CcspTraceInfo(("%s %d - Local device capabilities before addition: %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); if(strlen(indexNode->stRemoteDeviceInfo.Capabilities) == 0) @@ -614,7 +616,9 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa } CcspTraceInfo(("%s %d - New local device capabilities after addition: %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); - CcspTraceInfo(("%s %d - Updating PSM with value: %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); + + CcspTraceInfo(("%s %d - Updating PSM with new local device capabilities: %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); + rc = strcpy_s(pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities), indexNode->stRemoteDeviceInfo.Capabilities); ERR_CHK(rc); IdmMgrDml_GetConfigData_release(pidmDmlInfo); @@ -639,13 +643,17 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa indexNode = getRmDeviceNode(pidmDmlInfo, 1); - if(!indexNode || len == 0) + if(!indexNode || len == 0 || !out) { IdmMgrDml_GetConfigData_release(pidmDmlInfo); return RBUS_ERROR_BUS_ERROR; } + CcspTraceInfo(("%s %d - Device.X_RDK_Remote.RemoveDeviceCapabilities() - %s \n", __FUNCTION__, __LINE__,out)); + CcspTraceInfo(("%s %d - PSM capabilities before removal: %s \n", __FUNCTION__, __LINE__,pidmDmlInfo->stConnectionInfo.Capabilities)); + CcspTraceInfo(("%s %d - Local device capabilities before removal: %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); + if(strlen(indexNode->stRemoteDeviceInfo.Capabilities) == 0) { CcspTraceInfo(("%s %d - local device capabilities is empty \n", __FUNCTION__, __LINE__)); @@ -700,8 +708,10 @@ rbusError_t X_RDK_Remote_MethodHandler(rbusHandle_t handle, char const* methodNa } /* Some capabilites might have removed in local device. write back to PSM */ - CcspTraceInfo(("%s %d - New local device capabilities after removal : %s \n", __FUNCTION__, __LINE__,indexNode->stRemoteDeviceInfo.Capabilities)); - CcspTraceInfo(("%s %d - Updating PSM with new value \n", __FUNCTION__, __LINE__)); + CcspTraceInfo(("%s %d - New local device capabilities after removal : %s \n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); + + CcspTraceInfo(("%s %d - Updating PSM with new local device capabilities : %s \n", __FUNCTION__, __LINE__, indexNode->stRemoteDeviceInfo.Capabilities)); + rc = strcpy_s(pidmDmlInfo->stConnectionInfo.Capabilities, sizeof(pidmDmlInfo->stConnectionInfo.Capabilities), indexNode->stRemoteDeviceInfo.Capabilities); ERR_CHK(rc); IdmMgrDml_GetConfigData_release(pidmDmlInfo);