Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SB private/internal data structure being written to telemetry dump file #982

Closed
jphickey opened this issue Oct 30, 2020 · 3 comments · Fixed by #1102
Closed

SB private/internal data structure being written to telemetry dump file #982

jphickey opened this issue Oct 30, 2020 · 3 comments · Fixed by #1102
Assignees
Milestone

Comments

@jphickey
Copy link
Contributor

Describe the bug
The CFE_SB_PipeD_t structure is defined within cfe_sb_priv.h and is internally used to manage the pipe state.

But as part of the "Send Pipe Info" command this structure is also directly written to a data dump file - making it effectively into telemetry data.

Expected behavior
Code should clearly delineate what is telemetry data intended to be consumed by the ground or other systems, and what is internal data that only resides in local memory.

In particular, the CFE_SB_PipeD_t also contains pointers, so the dump file resulting from a Send Pipe Info command will contain these internal memory address (meaningless outside the current CPU) and it will change size depending on whether it is running on a 32-bit or 64-bit CPU.

System observed on:
Ubuntu 20.04

Additional context
Whether data is sent directly in a telemetry message in real time or dumped to a file and transferred to the ground system in a deferred fashion, it is all basically telemetry data and the structures used in these data dump files should be defined in consistent (i.e. non platform dependent) terms so the tools on the ground can actually parse the file (or message).

Reporter Info
Joseph Hickey, Vantage Systems, Inc.

@jphickey
Copy link
Contributor Author

My suggestion/recommendation is to make this more like what ES does with its AppInfo/TaskInfo structures. Instead of directly writing the global data records i.e. CFE_ES_AppRecord_t / CFE_ES_TaskInfo_t, it defines a separate CFE_ES_AppInfo_t and CFE_ES_TaskInfo_t which are used for data dump and telemetry packets. These have mostly the same information but the latter is "sanitized" to make it into a consistent binary format.

@skliper skliper added this to the 7.0.0 milestone Nov 2, 2020
@skliper
Copy link
Contributor

skliper commented Nov 2, 2020

This would be a good time to fix. Concur w/ recommendation.

@skliper
Copy link
Contributor

skliper commented Nov 3, 2020

Consider along with #995 and possible inclusion in 6.8 rc.

@skliper skliper modified the milestones: 7.0.0, 6.8.0 Nov 3, 2020
jphickey added a commit to jphickey/cFE that referenced this issue Jan 15, 2021
Define a data structure in cfe_sb_msg.h that will be used
with the "write pipe info" command (CFE_SB_SEND_PIPE_INFO_CC).

This allows the internal CFE_SB_PipeD_t descriptor object to
evolve as needed without affecting the binary format of the
file that is generated form this command, and items such
as memory pointers may be excluded from the file.
astrogeco added a commit that referenced this issue Jan 26, 2021
Fix #982, separate pipeinfo file data structure
jphickey pushed a commit that referenced this issue Jan 26, 2021
Fix #982, separate pipeinfo file data structure
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants