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,

Reply via email to