CHPP Release Notes
A summary of notable changes is provided in the form of release notes. Dates are provided as yyyy-mm-dd. Note that this is not meant to be a detailed changelog; for a detailed change list, please refer to git commits.
2020-03-04 (4c668b3)
Initial release of CHPP.
- CHPP transport and app layers
 - Loopback testing service
 
2020-07-28 (7cebe57)
This release enables service integration with WWAN / WiFi / GNSS devices based on the CHRE PAL API.
2020-08-07 (0b41306)
This release contains bug fixes as well as the loopback client.
New functionality
- Loopback client to run and verify a loopback test using a provided data buffer
 
Cleanup and bug fixes
- Corrected sequence number handling
 - Updated log messages
 - More accurate casting into enums
 
2020-08-27 (8ab5c23)
This release contains additional clients, a virtual link layer for testing (e.g., using loopback), and several important bug fixes.
2020-10-01 (95829e3)
This release updates client functionality using the parser, adds a transport-layer loopback mechanism for testing and debugging, and includes several important bug fixes.
New functionality
- Parser for CHPP -> CHRE Data Structure Decoding
 - Completed client functionality using parser-generated functions
 - Transport-layer-loopback client and service. The Transport-layer loopback ignores app layer functionality and state, as well as checksums and sequence numbers
 
Cleanup and bug fixes
- Improved compiler compatibility for MSVC, as well as when enabling additional compiler warning flags
 - Fixed handling of fragmented datagrams
 - Corrected MTU calculation
 - Corrected loopback assert
 - Slimmer OOM logging
 - Parser code and header files were relocated
 
2021-02-08 (f1d249c)
In addition to enhancements and bug fixes, this release enables error and reset handling and several other features.
New functionality
- ARQ implementation. Note that it is necessary to either implement chppNotifierTimedWait() or a single-threaded workaround as described in QUICKSTART.md to detect timeouts
 - Checksum support via IEEE CRC-32. A sample implementation is provided, but it is expected that most devices have optimized implementations available or may prefer implementations with alternate optimization criteria
 - Timesync functionality and timestamp offset correction for WiFi and WWAN measurements
 - Reset handling throughout the transport layer, clients, and services, opening and recovering state as needed
 - WiFi RTT client and service support
 - Multiple loopback client support
 - Transport-layer-loopback client validates response and returns the result
 - Support for pseudo-opening services at the client, so they appear always available
 - Correct responses generated at clients when async requests fail at services
 
Cleanup and bug fixes
- Client and service fixes including length and bound checks, missing implementations
 - Parser fixes including empty pointers set to null, compatibility with processors lacking unaligned access support
 - Stability fixes throughout CHPP and tests
 - Improved compiler compatibility for C99+ and pre-C99 systems (even though CHPP does not officially support pre-C99)
 - Updated documentation and logging
 
2021-03-25 (f908420)
This release updates the built-in timesync and checksum functionality and addresses bugs and compatibility issues.
Updated functionality
- Timesync is redesigned to become non-blocking
 - Outgoing checksums are enabled by default
 - An updated sample CRC32 implementation is provided (It is still expected that devices that have existing, optimized implementations use their own)
 - Client deinitialization and reset support
 
Cleanup and bug fixes
- Logging updates, including reset reasoning, avoiding %s for compatibility
 - Stability fixes and cleanup throughout CHPP and tests, including the reopening flow, permanent_failure state, and a memory leak
 - Testing improvements
 
2021-05-24 (c9bfae3)
This release enables better identification of end-of-packets as well as addressing bugs and compatibility issues.
Updated functionality
- Rx timeout detection
 - Rx MTU enforcement
 - Support for Rx end-of-packet notifications from the link layer (optional, platform dependent)
 
Cleanup and bug fixes
- Reset functionality cleanup, including updating the functionality of CHPP_TRANSPORT_MAX_RETX and CHPP_TRANSPORT_MAX_RESET to reflect their intent accurately
 - Pseudo-open clients remain pseudo-open after open failures
 - Fixed reopen failures after transport reset
 - Added missing WiFi ranging service response
 - Memory allocation and initialization improvements
 - Mutex handling improvements
 - Compatibility fixes
 - Testing improvements
 
2021-06-17 (this)
This release adds request timeout support at the client and addresses several bugs and compatibility issues throughout CHPP, including fixing open-state tracking at the service. Note that with the corrected open-state tracking, it is essential for services to correctly implement the close() PAL API so that it disables any ongoing requests and returns to a clean state.
Updated functionality
- Client request timeout support
 
Cleanup and bug fixes
- Service open-state tracking
 - Memory handling fixes
 - Added GNSS passive location listener service response
 - Enforced error code requirements on service responses
 - Fixed ARQ handling of duplicate packets
 - Client request/response state refactoring
 - Client registration cleanup
 - Reset handling fixes
 - Testing improvements