[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

ULE, and CRC-32




After some-off list discussions with Alain, I think we can now propose some modified text for the section in ULE on CRC usage. Basically, this says follow the well-known practice, and in particular this converges on what ISO DSM-CC specifies.

New text reads:


SNDU Trailer CRC

Each SNDU MUST carry a 32-bit CRC field in the last four bytes of the SNDU. This position eases CRC computation by hardware. The CRC-32 polynomial is to be used. This is a 32 bit value calculated according to the generator polynomial represented 0x04C11DB7 in hexadecimal:

x^32+x^26+x^23+x^22+x^16+x^12+x^11+x^10+x^8+x^7+x^5+x^4+x^2+x^1+x^0.

Examples where this polynomial is also employed include Ethernet, DSM-CC section syntax [ISO-DSMCC} and AAL5 [ITU356]. The use resembles, but is different to that in SCTP [RFC3309].

The Encapsulator initialises the CRC-32 accumulator register to the value 0xFFFF FFFF. It then accumulates a transmit value for the CRC32 including all bytes from the start of the SNDU header to the end of the SNDU (excluding the 32-bit trailer), and places this in the CRC Field. The receiver performs an integrity check by independently calculating the same CRC value and comparing this with the transmitted value in the SNDU trailer. SNDUs that do not have a valid CRC, are discarded, causing the Receiver to enter the Idle State.

This description may be suited for hardware implementation, but this document does not imply any specific implementation. Software-based table-lookup or hardware-assisted software-based implementations are also possible.

The primary purpose of this CRC is to protect the SNDU payload from undetected resassembly errors and errors introduced by unexpected software / hardware operation while the SNDU is in transit across the MPEG-2 subnetwork and during processing at the encapsulation gateway and/or the receiver. It may also detect the presence of uncorrected errors from the physical link (these may however, in some cases, also be detected by other means).

Alain:
> Some questions about the CRC-32, because I'm a little bit confused.
> I think many of you are familiars with that CRC-32 stuff, so I
> need their help ;-)
<SNIP>