Repository navigation
Commit 20b3918
CCSDS File Delivery Protocol - CfdpManager (#5138)
* Playback directory checkpoint
* CfdpManager compiles!
* Added PDU receive data paths/hooks
* CF -> CFDP file rename
* CF -> CFDP file rename complete
* Remove header comments
* Refactor CFDP variable size types
* Refactor default_cf_extern_typedefs.hpp into CfdpTypes.fpp and CfdpTypes.hpp
* Refactor default_cf_interface_cfg.hpp to CfdpCfg.hpp
* Revert history init
* Move CFDP types and configs
* UT skeleton
* Split parameters to separate include file
* Implemented the SendFile command
* Added CFDP playback directory command
* Added freeze/thaw command
* Add buffer return for failure to send case
* Added polling directory commands
* Fixed comment offsets
* Converted CF_WrappedOpenCreate calls to Os::File::open
* Convert CF_WrappedWrite to Os::File::write
* Replaced CF_WrappedRead with Os::File::Read
* Replaced CF_WrappedClose with Os::File::close
* Replaced OS_ObjectIdDefined with Os::File::isOpen
* Replaced CF_WrappedLseek with Os::File::seek
* Refactor CF_CFDP_MoveFile to Os::FileSystem::moveFile + string refactoring
* Refactored OS_remove to Os::FileSystem::removeFile
* Refactored OS_mv to Os::FileSystem::moveFile
* Replaced OS_DirectoryOpen with Os::Directory::open
* Replaced OS_DirectoryRead with Os::Directory::read
* Replaced OS_DirectoryClose with Os::Directory::close
* Deleted CfeStubs
* Remove CfeStubs.hpp includes and add CfdpMaxPduSize constants
- Remove CfeStubs.hpp includes from CfdpEngine.cpp, CfdpRx.cpp, CfdpTx.cpp
- Add CfdpMaxPduSize and CfdpMaxFileDataSize constants to CfdpCfg.fpp
- These constants will be used for PDU serializable array sizes
Co-Authored-By: Claude <noreply@anthropic.com>
* Data pointer refactor to remove void*
* Rework receive init to use Fw::String
* Fix compilation errors
* Made include paths absolute and moved file size type def to config
* Added separate metadata serailizable
* Rework enums that did not need to serializables
* Completed metadata UT
* Split PDUs to separate whitespace
* Added FileData PDU and UTs
* Added file data PDU test
* Added end-of-file PDU and UTs
* Added missing file
* Added end of file PDU UT to CfdpManager
* Refactor UTs to separate out validation functions
* Implemented FinPdu class and UTs
* Added CfdpManager FinPdu UT
* Added AckPdu implementation and UTs
* Added AckPdu UT for CfdpManager
* Added missing CRC check
* Added NakPdu implementaiton and UTs
* Added CfdpManager NackPdu UT
* Refactor PDU tests to a new file
* Refactored test helpers to deserialize and validate PDUs
* Added class 1 TX transaction text
* Added output PDU throttling
* Started a class 2 TX UT and added helper functions for uplinking PDUs
* Code cleanup
* Debugging failed chunk allocation for class 2 transactions
* Updated class 1 transaction UT to expire the inactivity timer. Also state cleanup between UTs
* Updated class 2 TX UT to have correct PDU ordering
* Added CFDP subtopology
* Completed TX class 2 transaction UT
* Added class 2 transaction UT with a nack
* Refactor UTs to make them more readable
* Added a class 1 RX unit test
* Added class 2 RX transaction UT
* Add RX transaction UT with NAck
* Refactored CfdpEngine into child-class of CfdpManager
* Created CfdpChannel class
* Refactor CfdpEngineData to be CfdpEngine member variables
* Moved CF_Channel_t data into CfdpChannel member variables. There is still some akwardness of backwards compatible c style functions that need to be removed
* Fixed testMetaDataPdu UT
* Updated remaining PDU tests
* Removed lingering CF_Channel_t references and functions
* Created new CfdpTransaction class and skeletons
* Ported TX functions to new class
* Ported RX functions to new Transaciton class
* Additional transaction class rework
* Refactor CfdpTransaction as stepping stone toward struct removal
* Moved CF dispatch functions into the CfdpTransaction class
* Completed CfdpTransaction refactor
* Rework memory initialization for better encapsulation
* Friend class cleanup
* Refactored CfdpChunk into a C++ class
* Additional C++ refactor cleanup
* Moved CFDP types and renames Pdu folder to Types folder
* Removed internal buffer test pool
* Refactored Tx functions to use Pdu classes instead of the CF codec functions
* Refactored Rx functions to use Pdu classes
* Completed deprecated codec removal and fixed UTs
* Added TLV support and refactor cleanup
* Added CF attribution file
* Removed PDU union wrapper in-favor of PDU class inheritance. Updated CFDP PDU handlers to use buffer serialization and deserialization
* Cleanup post class refactor
* Code cleanup and file size type updates
* Start of CF -> CFDP rename/refactor
* Remove last vestigages of CF types
* Updated UTs post CF -> CFDP rename
* Start of CFDP class addition, starting removal of deprecated CF types
* Completed Cfdp namespace addition
* Consolidate Cfdp types to a single file
* Renamed transaction files so they will sort correctly
* Cleanup some todos and make comment style consistent
* Added CFDP overview SDD section
* Added port based file transfer requests similar to FileDownlink
* Added Tx port based file transfer UT
* Added additional UTs
* Added ping port and fixed issues from fprime sync
* Added CfdpManager class diagram
* Fixed component class diagram
* Reworked class diagram
* Added CfdpManager usage diagram and updated port naming to be consistent
* Playing with color themes
* Another theme iteration
* Added component design section
* Added TX transaction sequence diagrams
* Added class 2 RX sequence diagram
* Fixed bug in file deletion
* Added command and telemetry section
* Added proposed telemetry
* Populated requirements section
* SDD rework and added section numbers
* Add configuration section to the SDD and took a pass at cleaning up the configs
* First pass a getting the spell check to pass
* Another spelling iteration. EVS will be removed with F' events are implemented
* Replace commented out cFE Events with F' Events
* Directly use Cfdp.Class for events
* Remove recvAck()
* Added TX/RX throttling SDD section and made class, keep, and priority parameters in the fileIn handler
* Updated class 2 sequence diagrams to make timer values explicit. Also renamed MaxFileSize to MaxFilePathSize
* Added transaction management commands
* Move tmp_dir and fail_dir from global parameters to per-channel parameters
* Purge the terms configuration table and wakeup which were CF terminology
* Added Deep Space Timer Configuration section to account for light speed delays
* Added documentation on NAK behavior during file data transmission
* Remove AI slop
* Rewording to make spell checker happy
* Swap SUSPEND and RESUME enum
* Clarify success criteria doesn't care about current state
* Update transaction canceled comment
* Implement CfdpManager telemetry
* Send events when transaction completes successfully
* Add size to TxFileTransferStarted event
* Update cached_pos right after successful file read
* Rename channel current transaction variable
* Fix issue when reaching max_outgoing_pdus_per_cycle
* Strip packet type descriptor before reading PDU
* Reset timer during CRC calculation period
* Connect CfdpManager directly to ComQueue
* Update defaults to speed up transactions
* Add README to clarify the CFDP/Checksum usage
* Updating Documentation (port type)
* Spelling check update
* Increase PDU buffer size to include Descriptor
* Add helper function for sending PDUs
* Move PDU Type Enum to FPP
* Assert to nullptr instead of just NULL
* Add security considerations to CfdpManager SDD
* Address PR #5138 review comments - code fixes
Fixes all CppCheck warnings and correctness issues identified in review:
- Fix array bounds check in Engine.cpp (channelId < NumChannels)
- Add buffer bounds validation in PduHeader.cpp before reading directive code
- Refactor PduHeader::peekPduType to single return statement
- Refactor unbounded do-while loops to bounded for loops with safety limits
- Channel.cpp: Add max retry bound for transaction tick processing
- Clist.cpp: Add max iteration bounds for circular list traversal (3 functions)
- Bounds based on maximum transaction pool size configuration
- Assert failures include iteration count for debugging
- Remove redundant 'virtual' keyword from override functions (PduBase.hpp)
- Add missing newlines at EOF for POSIX compliance (4 files)
All changes verified to build successfully with fprime-util build.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Fix unit test PDU type enum compilation errors
Update PduTester.cpp to use correct PduTypeEnum values after enum
was moved to FPP in commit 5842ff4.
Changes:
- T_METADATA -> PduTypeEnum::METADATA
- T_FILE_DATA -> PduTypeEnum::FILE_DATA
- T_EOF -> PduTypeEnum::END_OF_FILE
- T_FIN -> PduTypeEnum::FINISHED
- T_ACK -> PduTypeEnum::ACKNOWLEDGMENT
- T_NAK -> PduTypeEnum::NEGATIVE_ACK
Resolves compilation errors. Note: Runtime test failures existed before
this PR (tested at commit 0027166) and are unrelated to PR #5138 fixes.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Fix unit tests to handle FW_PACKET_FILE descriptor
Updated all PDU test functions to properly handle the 2-byte
FW_PACKET_FILE packet descriptor that CfdpManager prepends to all
PDU buffers.
Changes:
- Added getPduData() helper to extract PDU data after descriptor
- Updated all verify*Pdu functions to validate and strip descriptor
- Updated all send*Pdu functions to prepend descriptor
- Fixed PDU type enum references (T_METADATA → PduTypeEnum::METADATA, etc.)
- Fixed direct deserialization in CfdpManagerTester.cpp test logic
This matches how CfdpManager processes PDUs from the radio.
All 15 tests now pass.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Update Svc/Subtopologies/FileHandlingCfdp/FileHandlingCfdp.fpp
Co-authored-by: Thomas Boyer-Chammard <49786685+thomas-bc@users.noreply.github.com>
* Address CppCheck warnings for CfdpManager
Fixed multiple CppCheck warnings to improve code quality:
1. **Channel class**: Added deleted copy constructor/assignment operator
to prevent accidental copying of resources
2. **MetadataPdu**: Initialize all member variables in constructor
(m_closureRequested, m_checksumType, m_fileSize)
3. **Type safety improvements**:
- Changed pending_file from char[] to Fw::StringTemplate<MaxFilePathSize>
- Changed buffer types from char to U8 in MetadataPdu deserialization
- Changed path buffer from char[] to Fw::StringTemplate in Channel.cpp
- Updated container_of_cpp pointer arithmetic to use U8* instead of char*
- Updated all int types to sized types (I32/U32):
* Loop counters in Engine.cpp
* CycleTxArgs::ran_one
* TickArgs function pointer and cont member
* Transaction tick functions (rTick, sTick, sTickNak)
* r2Complete ok_to_send_nak parameter
* updatePollPbCounted up parameter
4. **String handling**: Replaced C string functions with F' types
- isPollingDir now takes Fw::StringBase& instead of const char*
- Removed strrchr/strncpy in favor of Fw::String operations
- Fixed string concatenation to use StringBase& directly
- Use Os::Directory::read(Fw::StringBase&) overload
All changes ensure consistent use of F' type system and proper
resource management.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Updated CfdpManager to use the mem allocator pattern
* Refactor EVRs and remove deprecated code
- Added missing EVRs for error conditions:
- PlaybackDirReadFailed: Directory read failures during playback
- PollDirBusy: Poll directory slot already in use
- PollDirNotActive: Attempting to stop inactive poll
- DanglingFileHandleClosed: Unclosed file handle detected
- Refactored all WARNING_HI EVRs to WARNING_LO
- Changed severity in Events.fppi
- Updated all C++ code from log_WARNING_HI_* to log_WARNING_LO_*
- Removed sendEotPkt function
- EOT telemetry handled via Tx/RxFileTransferCompleted EVRs
- Deleted function implementation and declaration
- Removed call from finishTransaction()
- Fixed EVR access pattern
- Made Channel a friend of CfdpManager
- Channel now emits EVRs via m_cfdpManager->log_*()
- Addressed TODO BPC comments
- Removed redundant failure EVRs in command handlers
- Clarified comments where EVRs already emitted elsewhere
- Documented design decisions (TLV validation, late retransmissions)
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Fix RHEL8 implicit conversion warnings
* Fix clang format errors and more conversion warnings
* More assert argument conversion fixes
* Clang formatting
* More clang format fixes
* Refactored to remove single deep recursion dispatch and fixed more conversion warnings
* More conversion warnings fixes
* More conversion warnings
* More conversion warnings. There has to be a better way to do this.
* More rhel8 fixes
* Hopefully last rhel8 compiler warnings
* Clang fixes
* Fix the clang ut build errors
* Add FileHandlingCfdp subtopology Software Design Document
Add comprehensive SDD for the FileHandlingCfdp subtopology following
the same structure and pattern as the existing FileHandling subtopology
documentation.
The SDD documents:
- Requirements for CFDP file transfer, file management, and parameter management
- Component instances (CfdpManager, FileManager, PrmDb) and their purposes
- Configuration hooks and required connections (rate groups, communication stack)
- Key differences from the FileHandling subtopology (CFDP vs legacy file transfer)
- Example topology integration with CFDP PDU wiring
- Compile-time and runtime CFDP configuration parameters
- Limitations and architectural boundaries
This documentation provides integration engineers with a complete
reference for using the FileHandlingCfdp subtopology in F' CCSDS
deployments with reliable CFDP-based file delivery.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Update CfdpManager SDD per review comments
Address three review comments on PR #5138:
1. Add comprehensive Events section documenting all 72 events
- Organize events into 7 logical categories: Command/Control, PDU
Serialization errors, RX/TX Transaction events, Transfer Complete,
Transaction Control, and Miscellaneous/Diagnostic
- Include event name, severity, and description for each
- Provide context for ground operators to understand event semantics
2. Add missing ResetCounters command to Commands table
- Documents the ability to reset telemetry counters per channel
- Notes that channelId 0xFF resets all channels
3. Add missing telemetry fields to Telemetry section
- Add recvPdu to Receive Counters table
- Add sentFileDataBytes and sentPdu to Sent Counters table
- Ensures SDD matches ChannelTelemetry struct in Types.fpp
Also remove "PROPOSALS" comment from Telemetry.fppi as the telemetry
is now implemented and active in the component.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Replaced std:function with function pointers and replaced lambda functions with static wrappers
* Replace new allocations in the CFDP engine and channel classes with MemAllocator usage. Needed a new cleanup to avoid duplicate allocator storage
* Code style fixes: nullptr, const_cast, and reinterpret_cast comments
Address CPP-6 and CPP-10 coding standard violations identified in PR review.
Changes:
- Replace all NULL with nullptr throughout codebase (CPP-6 requirement)
- Add justification comments for all const_cast<U8*> usages (CPP-10):
"Fw::SerialBuffer requires non-const U8* even for deserialization"
- Add justification comment for reinterpret_cast in container_of_cpp (CPP-10):
"Required for intrusive list node-to-parent pointer arithmetic"
All unit tests pass.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Convert unscoped enums to enum class and #define to constexpr (CPP-26, CPP-8)
Convert all unscoped enums in CfdpManager to enum class for type safety per F' CPP-26 coding standard:
- FileDirective, ConditionCode, AckTxnStatus, FinDeliveryCode, FinFileStatus, ChecksumType
- TxnState, TxSubState, RxSubState, Direction, TransactionInitType, CfdpTickType, TxnStatus
- PduType, PduDirection, CrcFlag, LargeFileFlag, TlvType
Replace #define CFDP_NUM_TRANSACTIONS_PER_CHANNEL with static constexpr per F' CPP-8 standard.
All enum references updated with qualified names and static_cast where needed for:
- Comparisons with U8/U32 types
- Array subscripts
- Bitwise operations
- FW_ASSERT calls requiring integer types
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Fix unit tests for enum class conversion
Update test code to use qualified enum class names and cast comparisons.
Unit tests still have compilation errors but production code builds successfully.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Fix enum class conversion issues in CfdpManager unit tests
Fixed all remaining unit test compilation errors after enum class conversion:
1. Removed invalid static_cast<U8> from enum class parameters in initialize() calls
- FinPdu::initialize() now takes FinDeliveryCode and FinFileStatus directly
- Array initializations now use enum class types without casts
2. Fixed misplaced closing parentheses in function calls
- Changed `func(..., arg),` → `func(..., arg,`
- Changed `func(...))` → `func(...)`
3. Corrected EXPECT_EQ comparisons to compare enum-to-enum
- Removed unnecessary static_cast<U8>() from getter results
- Direct enum comparisons: `EXPECT_EQ(EnumClass::VALUE, obj.getEnum())`
4. Added missing enum qualifiers for TLV types
- TLV_TYPE_MESSAGE_TO_USER → TlvType::TLV_TYPE_MESSAGE_TO_USER
- TLV_TYPE_FLOW_LABEL → TlvType::TLV_TYPE_FLOW_LABEL
All unit tests now pass:
- CfdpManager main tests: 15/15 passed
- Types PDU tests: all passed
Production code and all unit tests build successfully.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Fix logic inversion bug in stop polling directory command
* Fix ground-reachable assert on zero-length file transfers
Replaced FW_ASSERT with graceful error handling when attempting to
transfer zero-length files. This prevents a DoS vulnerability where an
operator command could crash the component.
Changes:
- TransactionTx.cpp: Replace assert with error event and fault counter
- Events.fppi: Add TxZeroLengthFile warning event
- Add command unit tests verifying both bug fixes:
* testSendFileZeroLength: Verifies zero-length file handling (no crash)
* testSendFileNonExistent: Verifies file open error handling
* testStopPollDirActive: Verifies stopPollDir fix (inverted condition)
* testStopPollDirNotActive: Verifies inactive directory handling
All tests use ASSERT_EVENTS macros and Os::FileSystem operations.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Fix unsigned integer underflow in FileDataPdu deserialization
Added defensive check to prevent unsigned integer underflow when
pduDataLength < offsetSize. While the subsequent validation at line 148
already catches malformed PDUs, the intermediate underflow state is
fragile and could introduce vulnerabilities in future code changes.
The fix validates pduDataLength against offsetSize before performing
the subtraction, returning FW_DESERIALIZE_SIZE_MISMATCH for invalid PDUs.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Replace hardware-reachable asserts with graceful error handling
Replaced FW_ASSERT calls on sendAck/sendFin return values with proper
error handling. The asserts could fire if PDU serialization fails due
to hardware fault or unexpected internal state.
Changes:
- TransactionRx.cpp: Replace asserts with graceful handling of ERROR status
- When sendAck returns ERROR: clear retry flag to avoid infinite loop
- When sendFin returns ERROR: continue state transition (already logged)
- Serialization errors are already logged by FailPduSerialization event
This prevents component crashes from serialization failures while
maintaining proper error reporting.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Added missing event and fixed spelling error
* Removed hyphen per project style
* Improve telemetry assertions to use exact counts in single-transaction tests
Changes:
- Added expectExactCounts parameter to sendAndVerifyClass2Tx helper
- Single-transaction tests (testClass2TxNominal, testClass2TxPortBased) now use EXPECT_EQ for exact telemetry counts
- Multi-transaction tests and NAK tests continue to use EXPECT_GE for lower bounds
- Previously used EXPECT_GE(tlm[...].get_recvPdu(), 3u) which would pass even if count was wrong
- With EXPECT_EQ, single-transaction tests will catch regressions that inflate or miscount PDUs
Rationale:
- In isolated single-transaction tests with fresh tester instance, exact counts are known
- EXPECT_EQ catches regressions; EXPECT_GE only validates lower bound
- Distinguishes between tests where exact counts are expected vs cumulative/NAK scenarios
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
* Fix Cancel Transaction issues and update events
Better events description
Include sent bytes (not total) in EOF after cancel
Log non-cero EOF condition codes
Fix bug deserializing variable-lenght entity ID
Properly read condition code bits
Only check file size and CRC for non-error EOF
Set txn status on EOF error to prevent completion event
Add telemetry for canceled transactions
For canceled transactions, don't wait for FIN
* Fix bug where reused chunk list is not clear
...fixes issues with CRC errors when uplinking many
times consecutively with packet loss
* Fix bug where transactions weren't getting properly recycled
* Fix merge/pull conflicts
* Improve FW_ASSERT debugging info with chanId
* Increase class 2 limit parameters
...to support transfers over links with higher packet drop rates.
* Add Transfer Failed events
* Canceled transactions are handled differently
* Reset history for recycled transactions
* Update severity of warning events
* Code improvements
* Update unit tests
* Adding unit tests for commands
* Adding unit tests for Ports, Parameters, Events and multi-channel support
* Fix bug where cmd response gets overwritten
* Remove unused events
* Full transaction testing for suspend/resume/cancel
* Test TxFileQueued and file create failure events
* Assert event count
* Unit tests: improve events coverage
* Fix CFDP double-free guard: tag freed transactions with QueueId::FREE
* Remove dead Cfdp::Status::SEND_PDU_ERROR enum value
* Added unit test for TxSendMetadataFailed
* Apply clang-format
* Fix check-spelling
* Fix test wiring, implement parameter tests, honest skips
* Standardize CfdpManager UT history reset and event-size guards
* Remove unused event due to future enhancement
* Fix issue where PDUs with invalid Directive code were getting silently dropped
* Remove redundant tests
* Apply clang-format
* Add CfdpManager coverage unit tests for helpers and error paths
* Update events section of CfdpManager SDD
* Update data return UTs to verify buffer deallocation
* Verify event arguments
* Verify PDU count on nominal Rx tests
* Updated command enums to be constant to match the updated autocoded base class
* Fixed type conveversion during bitshift and made destructor virtual
* Two more conversion error fixes in CfdpManager UTs
* Only run testTxFileSeekFailedEvent on linux as it relies on a linuxism
* Added memset init/reset of union members to prevent access of unitialized data
* FIN/FIN ACK handling
(cherry picked from commit af93887)
* Add support for acking late FIN PDU
* More frequent retries for acks
* Update comment
* Addressed the following PR comments:
- Add range check to the FileInDefaultChannel parameter before tripping an assert in Engine::txFile
- Replace dynamic_cast with static-cast. The caller contract guarantees a
SerialBuffer, so the downcast is safe and the null-checks were dead.
- Removed stale "telemetry is a proposal not yet implemented" SDD comment
* Added a guard against an incorrect/malicious file PDU writing beyond the size specified in the metadata PDU
* Added a parameterized bound for post-inactivty send retries. This applies to both EOF on a TX transaction and FIN-ACK on an RX transaction. This prevents buffer exhaustion from holding a transaction slot forever
* Defer fileIn port transfers to the active thread via a queue. fileIn_handler now validates the request and copies it into an Os::Queue; run1Hz drains the queue and calls Engine::txFile on the active thread, so
engine state is only mutated on one thread. Queue depth is a required configure() argument, matching FileDownlink.
* Document U64 FileSize support as untested
Changes were made to support a U64 FileSize type, but the >4 GiB path
is not yet validated. Track full support in #5574.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
* Refactored CFDP scalar limits to FPP constants
* Replaced CfdpManager UT component heap allocation with stack allocation
* Removed unecessary TODO
* Added missing override for deinit and added a missing UT check for numFileDataPdus
---------
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Jose Martinez <jmartinez@fireflyspace.com>
Co-authored-by: Thomas Boyer-Chammard <49786685+thomas-bc@users.noreply.github.com>1 parent a24a4c8 commit 20b3918
77 files changed
Lines changed: 25487 additions & 12 deletions
File tree
- CFDP
- Os
- Svc
- Ccsds
- CfdpManager
- Types
- test/ut
- data
- docs
- img
- test/ut
- output
- Subtopologies
- FileHandlingCfdp
- FileHandlingCfdpConfig
- docs
- default/config
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | | - | |
33 | | - | |
| 32 | + | |
| 33 | + | |
34 | 34 | | |
35 | | - | |
36 | | - | |
| 35 | + | |
| 36 | + | |
37 | 37 | | |
38 | 38 | | |
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
42 | | - | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | | - | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
48 | 48 | | |
49 | 49 | | |
50 | 50 | | |
51 | 51 | | |
52 | 52 | | |
53 | | - | |
54 | | - | |
| 53 | + | |
| 54 | + | |
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
| 11 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
0 commit comments