Hello,
Compatibility with other OSes in this domain is dubious.
What is the actual need for cross-OS crc16 compatibility?
Self-compatibilty is much more important. What is a non volatile storage
structure was created by the old CRC (old release) is checked with the
new CRC?
This will be an immediate fatal error with potentially grave consequences.
I am FULLY AGAINST this change.
It MUST NOT PROCEED.
I still think you can introduce additional routines to compute other CRC
variations, but the default crc MUST DEFINITELY NOT CHANGE.
Use the new routines in a wrapper in your code, but DO NOT CHANGE the
default CRC algorithm
This is an ABSOLUTELY CRITICAL ISSUE!
-1
Sebastien
On 07/04/2025 10:35, chao an wrote:
Hi Community,
I plan to switch the default CRC16 algorithm directory of NuttX from
CRC-16/XMODEM to CRC-16/IBM:
https://github.com/apache/nuttx/pull/16147
CRC-16/XMODEM as the default implementation has significant limitations,
especially when communicating with popular operating systems and it comes
to CRC encryption verification, the algorithm needs to be switched.
I have conducted research on POSIX-compatible operating systems, and almost
all of them use CRC-16/IBM as the default implementation:
OpenBSD:
https://github.com/openbsd/src/blob/master/sys/lib/libkern/crc16.h
FreeBSD:
https://github.com/freebsd/freebsd-src/blob/main/sys/libkern/crc16.c
Linux:
https://github.com/torvalds/linux/blob/master/lib/crc16.c
So I need your vote here:
If you prefer CRC-16/XMODEM, please reply with -1.
If you recommend CRC-16/IBM, please reply with +1.
BRs,