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

Fix #116 (plus others), separate logical vs. network PDU buffers #137

Merged
merged 2 commits into from
Jan 6, 2022

Commits on Jan 5, 2022

  1. Fix nasa#116, separate logical vs. network PDU buffers

    Improves the distinction between PDU data being actively interpreted
    or created during the PDU receive or transmit process, and the encoded
    form of that data.
    
    CF formerly treated the two as the same, directly referencing the
    encoded form of the data.  This creates many repeated translations.
    Furthermore, it would sometimes write a modified value back to the
    packet in a partially-decoded form, so it was never clear what
    was in a given buffer at a given time (it could be native byte
    order or network byte order, in the same fields).
    
    This introduces a "logical" buffer which correlates to the CFDP
    buffer, but is used for all in-work or temporary value storage.
    All values in the logical buffer are normalized to the native
    machine, that is they are aligned properly and always in the
    correct byte order for the host, so they can be used as normal
    values without any need for translation.
    
    When it comes time to transmit data to/from the network, a
    dedicated Encode/Decode function is used, to translate the
    entire content from its native form to the network form, or
    vice versa.
    
    FSW should typically not access the encoded form of data,
    outside of the codec routines, except under very limited
    circumstances with good reason (such as dynamically updating
    the total_length field in the base header after encode).
    jphickey committed Jan 5, 2022
    Configuration menu
    Copy the full SHA
    98801ae View commit details
    Browse the repository at this point in the history

Commits on Jan 6, 2022

  1. Update nasa#116, cleanup unit tests

    A significant cleanup and overhaul of CF unit tests
    to follow patterns that are more consistent with
    other CFE/OSAL test modules.
    
    Since the FSW change in this PR requires significant test updates
    to go with it, this replaces all the "cfdp" tests with new
    implementations where there is a 1:1 ratio between test
    functions and implementation functions.
    
    Ths also does some minor cleanup on the FSW side where needed
    for testability.
    
    Note that all stub files in this version are now directly generated
    using the tool provided with UtAssert.  These generated stubs should
    not be modified.
    jphickey committed Jan 6, 2022
    Configuration menu
    Copy the full SHA
    3acc447 View commit details
    Browse the repository at this point in the history