Skip to content

Conversation

@onkar-panchare1
Copy link

Description:
Introduced marker type DataModelTable for dynamic tables in telemetry.

Enhanced T2 agent to resolve and collect data from all instances of multi-instance object tables when dynamic markers are configured.

Added logic to parse DataModelTable, filter markers based on telemetry profile configuration, and encode them in telemetry reports after collection, ensuring telemetry reports include per-instance data for configured dynamic markers.

Added support for an "index" parameter in configuration to restrict data collection to specific indexes if required.

Reason for change:
Enable telemetry to capture dynamic, per-instance data from tables (e.g., Host table, Wi-Fi associated devices) where indexes are not fixed, ensuring richer and more flexible telemetry collection.

@onkar-panchare1 onkar-panchare1 requested a review from a team August 28, 2025 12:02
@CLAassistant
Copy link

CLAassistant commented Aug 28, 2025

CLA assistant check
All committers have signed the CLA.

@onkar-panchare1
Copy link
Author

@shibu-kv Kindly help with more details on coverity scan failed

@shibu-kv
Copy link
Contributor

@onkar-panchare1 Thank you for the contribution.
Could you please help with incorporating below suggestions :
1] The report profile schemas are available in the repo here - https://github.com/rdkcentral/telemetry/tree/develop/schemas
Could you please amend the schemas that aligns with the new capabilities supported in the report profile configuration.
2] This project maintains an integration test suite as well in location - https://github.com/rdkcentral/telemetry/tree/develop/test/functional-tests
Could you please help to add tests to add coverage for this new feature addition as well.
3] To maintain a uniform formatting we do enforce a common formatter based on linux utility astyle.
Please format this contribution by running below commands in your fork :
find . -name '.c' -o -name '.h' | xargs astyle --options=.astylerc
find . -name '*.orig' -type f -delete

Formatter configs are already on the project - https://github.com/rdkcentral/telemetry/blob/develop/.astylerc

Copy link
Contributor

@shibu-kv shibu-kv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Requesting to incorporate few changes outlined ingeneric comments.

@onkar-panchare1
Copy link
Author

Requesting to incorporate few changes outlined ingeneric comments.

Hi @shibu-kv
I have updated the MR with uniform formatting and have updated the schema to support new capabilities.
I will be adding tests soon, the MR can be reviewed.

@onkar-panchare1 onkar-panchare1 requested a review from a team as a code owner September 5, 2025 10:47
@pradeeptakdas pradeeptakdas changed the title TELEMETRY-2: Dynamic telemetry markers for Dynamic Tables in Telemetry RDKCOM-5431: TELEMETRY-2 Dynamic telemetry markers for Dynamic Tables in Telemetry Sep 16, 2025
shibu-kv
shibu-kv previously approved these changes Sep 22, 2025
@shibu-kv
Copy link
Contributor

Changes looks good. Waiting for the CI workflows results.

@pradeeptakdas pradeeptakdas changed the title RDKCOM-5431: TELEMETRY-2 Dynamic telemetry markers for Dynamic Tables in Telemetry RDKCOM-5420: TELEMETRY-2 Dynamic telemetry markers for Dynamic Tables in Telemetry Sep 23, 2025
@onkar-panchare1 onkar-panchare1 force-pushed the develop branch 2 times, most recently from 26090f3 to 0c74757 Compare October 7, 2025 06:01
@rdkcmf-jenkins
Copy link
Contributor

Coverity Issue - Data race condition

Accessing "profile->cachedReportList" without holding lock "_Profile.reuseThreadMutex". Elsewhere, "_Profile.cachedReportList" is written to with "_Profile.reuseThreadMutex" held 5 out of 7 times.

Medium Impact, CWE-366
MISSING_LOCK

Issue location

This issue was discovered outside the diff for this Pull Request. You can find it at:
source/bulkdata/profile.c:1449

@rdkcmf-jenkins
Copy link
Contributor

Coverity Issue - Data race condition

Accessing "profile->grepSeekProfile->execCounter" without holding lock "plMutex". Elsewhere, "_GrepSeekProfile.execCounter" is written to with "plMutex" held 2 out of 2 times.

Medium Impact, CWE-366
MISSING_LOCK

Issue location

This issue was discovered outside the diff for this Pull Request. You can find it at:
source/bulkdata/profile.c:344

T2Debug("%s : reportTimestamp = %d\n", __FUNCTION__, rtformat);
//CID 337454: Explicit null dereferenced (FORWARD_NULL) ;CID 337448: Explicit null dereferenced (FORWARD_NULL)
if (content != NULL && header != NULL)
if (content != NULL && header != NULL && index_flag == 0)
Copy link
Contributor

@rdkcmf-jenkins rdkcmf-jenkins Nov 2, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coverity issue no longer present as of: undefined

Show issue

Coverity Issue - Pointer to local outside scope

Using "header", which points to an out-of-scope variable "basePath".

High Impact, CWE-562
RETURN_LOCAL

@rdkcmf-jenkins
Copy link
Contributor

Coverity Issue - Use after free

Passing freed pointer "header" as an argument to "T2Log".

High Impact, CWE-416
USE_AFTER_FREE

Issue location

This issue was discovered outside the diff for this Pull Request. You can find it at:
source/t2parser/t2parser.c:1343

T2Debug("[[Added parameter:%s]]\n", header);
}
if (content) {
free(content);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coverity Issue - Free of array-typed value

"free" frees incorrect pointer "content".

High Impact, CWE-590
BAD_FREE

T2Error("%s Error in adding parameter to profile %s \n", __FUNCTION__, profile->name);
if (content)
{
free(content);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Coverity Issue - Free of array-typed value

"free" frees incorrect pointer "content".

High Impact, CWE-590
BAD_FREE

Description:
Introduced marker type DataModelTable for dynamic tables in telemetry.

Enhanced T2 agent to resolve and collect data from all instances of multi-instance object tables when dynamic markers are configured.

Added logic to parse DataModelTable, filter markers based on telemetry profile configuration, and encode them in telemetry reports after collection, ensuring telemetry reports include per-instance data for configured dynamic markers.

Added support for an "index" parameter in configuration to restrict data collection to specific indexes if required.

Reason for change:
Enable telemetry to capture dynamic, per-instance data from tables (e.g., Host table, Wi-Fi associated devices) where indexes are not fixed, ensuring richer and more flexible telemetry collection.

Signed-off-by: onkar.panchare1 <onkar.panchare@telekom-digital.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants