RFC Errata


Errata Search

 
Source of RFC  
Summary Table Full Records

RFC 9171, "Bundle Protocol Version 7", January 2022

Source of RFC: dtn (int)

Errata ID: 8043
Status: Reported
Type: Technical
Publication Format(s) : TEXT, PDF, HTML

Reported By: John Huff
Date Reported: 2024-07-22

Section 4.3.1 says:

   CRC:  A CRC SHALL be present in the primary block unless the bundle
      includes a BPSec Block Integrity Block [BPSEC] whose target is the
      primary block, in which case a CRC MAY be present in the primary
      block.  The length and nature of the CRC SHALL be as indicated by
      the CRC type.  The CRC SHALL be computed over the concatenation of
      all bytes (including CBOR "break" characters) of the primary block
      including the CRC field itself, which, for this purpose, SHALL be
      temporarily populated with all bytes set to zero.

It should say:

   CRC:  A CRC SHALL be present in the primary block unless the bundle
      includes a BPSec Block Integrity Block [BPSEC] whose target is the
      primary block, in which case a CRC MAY be present in the primary
      block.  The length and nature of the CRC SHALL be as indicated by
      the CRC type.  The CRC SHALL be computed over the concatenation of
      all bytes (including CBOR "break" characters) of the primary block
      including the CRC field itself, which, for this purpose, SHALL be
      temporarily populated with all value bytes set to zero. The
      initial byte of the CBOR encoded CRC field SHALL remain unchanged.

Notes:

There was some confusion about the wording of "temporarily populated with all bytes set to zero" when talking about the CRC field in the CBOR encoded primary block. An implementer thought this might mean to also zeroize the intial byte(s) of the CBOR encoded byte string that represents the CRC field. This correction makes it clear that only the bytes that represent the value of the CRC field should be zeroized when calculating the CRC.

My correction uses "initial byte" because the current CRC types will only ever have a single intial byte when encoding the CRC value as a CBOR byte string. However, technically CBOR byte strings can byte more than 1 initial byte so it may be better to use "initial byte(s)".

Report New Errata



Advanced Search