| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| ION Open Source Release 4.1.4-b.1 (Beta Release) source code.tar.gz | 2025-11-22 | 39.8 MB | |
| ION Open Source Release 4.1.4-b.1 (Beta Release) source code.zip | 2025-11-22 | 41.9 MB | |
| README.md | 2025-11-22 | 10.0 kB | |
| Totals: 3 Items | 81.7 MB | 0 | |
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% = NOTES ON RELEASE 4.1.4-b.1 = %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
This beta release represents a major milestone with the completion of the RTEMS 6.1 port, significant improvements to code quality and portability, new networking capabilities, and enhanced utilities for bundle management and CFDP file transfers.
RTEMS 6.1 Real-Time Operating System Port
- Full RTEMS 6.1 Port: ION has been successfully ported to RTEMS 6.1 for ARM64 (AArch64) platforms, featuring:
- Support for RTEMS libbsd (FreeBSD network stack) integration
- UDP-based LTP networking tested and verified in QEMU simulation
- 64-bit addressing support (SPACE_ORDER=3)
- ION Admin Public API for configuration (no configuration files required)
- Comprehensive documentation in arch-rtems/ directory
- Template implementation for adaptation to specific hardware platforms
- CI/CD workflow integration for RTEMS builds
Dual-Stack IPv4/IPv6 Networking Support
IMPORTANT NOTE ON DUAL-STACK NETWORKING: The dual-stack IPv4/IPv6 capability will automatically use the network address family returned by hostname resolution. Most operating systems return IPv6 addresses first when available, and ION's network stack will use the first entry returned. If a host is not properly configured for the returned address family, this may cause network address family conflicts, resulting in connection failures for TCP, UDP, and LTPCLA (which runs over UDP). The most reliable approach is to use explicit IP addresses if known. If using hostnames, ensure all hosts resolve to the correct address family as the first entry in DNS resolution.
-
LTPCL Dual-Stack: Added experimental dual-stack IPv4 and IPv6 support for the LTP Convergence Layer, allowing nodes to communicate over both protocol versions simultaneously.
-
TCPCL Dual-Stack: Implemented dual-stack IPv4 and IPv6 support for the TCP Convergence Layer with regression tests.
-
UDPCL Dual-Stack: Previously introduced in 4.1.4-a.2, further refined and tested for production use.
New Bundle Management Utilities
- bpinspect: New utility for inspecting, filtering, and managing bundles in ION's custody. Features include:
- Bundle listing with detailed metadata
- Filtering by source, destination, creation time, and other attributes
- Suspend and resume operations for selective bundle processing
-
Critical bug fix for bp_suspend functionality
-
bptracker: Enhanced interactive mode for demonstration of bundle tracking capabilities, providing fine-grained control over individual bundles with:
- Flexible send syntax
- Real-time bundle status monitoring
-
Source routing record (SRR) parsing improvements
-
bpcrash_hard: New testing utility for validating ION's crash recovery and reversibility features under extreme failure conditions.
CFDP Enhancements
- Enhanced cfdptest Utility: Major improvements to the CFDP testing tool:
- Transaction tracking and summary display
- Per-transaction control commands (cancel, suspend, resume)
- Terminology updates (ack → closure-reqt) for RFC compliance
- Reset command (R) to clear source/destination filenames
- Version command (v) for build information
-
Updated man pages and usage documentation
-
Empty File Transfer: ION now correctly handles CFDP transfers of zero-byte files.
-
Automatic Proxy Launch: CFDP server proxy (bpcpd) can now be automatically launched through cfdprc configuration file.
-
Event Reporting: Enhanced CFDP event reporting API with more detailed file transfer status and progress information, including closureRequested field.
LTP Protocol Improvements
-
Dynamic Parameter Control: New capability for direct configuration of LTP maxRetries and segment loss rate parameters with updated regression tests.
-
Default Value Behavior: Updated default parameter handling for improved reliability and performance.
Code Quality and Standards Compliance
-
C18/C99 Compliance: Updated build system to prefer C18 (ISO 9899:2018) standard with fallback to C99, ensuring maximum portability and standards compliance.
-
Strict Compiler Warnings: Enforced -Wextra, -Wstrict-prototypes, and -pedantic compiler flags across the entire codebase, resolving hundreds of warnings to improve code quality and catch potential bugs.
-
Thread Safety: Implemented thread-safe versions of iToa, uToa, vastToa, and uvastToa functions with proper type-specific conversions for 32-bit systems.
-
POSIX Compliance: Refactored POSIX named semaphore implementation with reference counting and deferred deletion to mitigate race conditions, particularly for bpcp utility.
Security and Stability Fixes
-
Extension Block Overflow: Fixed buffer overflow vulnerability when processing non-standard extension blocks. Added regression test for memory allocation vulnerabilities.
-
BPSec Configuration: Corrected handling of bundles with no CRC and no BIB, with tests to verify proper rejection of invalid security configurations.
-
NULL Source EID Handling: Fixed bug in handling NULL source EIDs and state changes between bundle list and cancel operations.
-
Race Condition Fixes: Addressed semaphore cleanup race conditions in bpcp and resource lock initialization issues.
Contact Graph Routing (CGR) Enhancements
-
Adjacent Contact Support: Prototype support for adjacent contact routing with documentation and test cases.
-
Routing Visualization: Automated generation of routing visualization data through cgrfetch utility improvements, enabling graphical analysis of routing decisions.
-
CGR Analysis Tools: Refactored cgr-test and asymmetric-range tests to produce sample CGR analysis data with comprehensive usage documentation.
Platform Portability Improvements
-
macOS Compatibility: Resolved multiple platform-specific issues including compilation syntax errors and system() call restrictions with active child processes.
-
FreeBSD Support: Updated for compatibility with FreeBSD networking stack and build environment, including tar-over-ssh deployment for CI/CD.
-
Solaris Support: Addressed compiler warnings specific to Solaris and added timeout protections for test suite stability.
-
ARM Architecture: Fixed ARM default unsigned char issues in tcpcli.c and other platform-specific type handling.
-
MUSL libc: Enhanced compatibility with MUSL C library and Clang compiler, though semaphore limitations require single-instance deployment per host.
Build System Enhancements
-
Configure Options: New options to selectively disable DGR and BSSP modules (--disable-dgr, --disable-bssp) for minimal builds.
-
ion-core Build: Per-extension build options for customized ion-core package configurations.
-
Development Makefiles: Continued maintenance and updates to manual Makefile.dev system for i86_64-fedora platform, including support for new executables:
- SPP convergence layer (sppcli, sppclo)
- New test utilities (entropy_test, sdr_test_util)
- Bundle inspection tool (bpinspect)
- Additional diagnostic tools
Testing and CI/CD Improvements
- Regression Test Suite: Enhanced test infrastructure with:
- Optional test designation for non-critical tests
- Improved cleanup handling for failed tests
- Timeout mechanisms to prevent hanging tests
- Preservation of test logs (PRESERVE_TEST_LOG default to 1)
-
Automated ION security database initialization
-
GitHub Actions Workflows: Updated CI/CD pipelines with:
- RTEMS-specific build workflow
- Submodule initialization improvements
- Workspace cleanup between runs
- ion.log capture and custom timeout support
-
JSON dependency validation
-
Cross-Platform Testing: Expanded test coverage across Linux, macOS, FreeBSD, and Solaris platforms with platform-specific accommodations.
Documentation Updates
-
Public API Documentation: Added comprehensive online documentation for ION's public administrative API set.
-
RTEMS Documentation: Complete documentation package for RTEMS 6.1 port in arch-rtems/ directory, including:
- Installation and build instructions
- Key fixes and troubleshooting guide (KEY-FIXES-SUMMARY.md)
- UDP network status and configuration (UDP-NETWORK-STATUS.md)
-
Platform-specific customization guidelines
-
Man Page Updates: Updated documentation for LTP maxRetries parameter clarification and deprecated maxber usage in regression tests.
Deprecations and Cleanup
-
maxber Parameter: Deprecated use of maxber in regression tests; updated documentation to clarify proper usage.
-
Legacy Code Removal: Continued cleanup of obsolete code including old dtnperf (now part of dtnsuite).
-
SBSP References: Removed confusing SBSP references from build flags and include paths.
Known Issues and Limitations
-
MUSL libc: Named semaphore limitations restrict deployment to one ION instance per host; many regression tests will fail due to this constraint.
-
RTEMS Port: Template implementation requires adaptation to specific hardware platforms and BSPs; loopback testing defaults to 127.0.0.1.
-
Dual-Stack Networking: IPv4/IPv6 dual-stack features remain experimental; production deployments should be thoroughly tested.
Developer Notes
-
Thread Synchronization: Refactored libams to use platform abstraction layer for thread synchronization.
-
Type Conversions: Created type-specific ToString functions (vastToa, uvastToa, size_tToa) for improved type safety and 32/64-bit compatibility.
This beta release includes 162 commits since ION 4.1.4-a.2, representing extensive testing, refinement, and new capabilities. Users are encouraged to test thoroughly in their environments and report any issues through the GitHub issue tracker.