Subject: iSCSI CRC considerations

From: [email-masked]
Date: Mon, 26 Feb 2001 21:30:36 +0200

Dear colleagues,

Dafna Sheinwald and myself have prepared a draft detailing some
considerations for selecting a CRC and
it's relation to the iSCSI data PDU lengths.

We will submit it to the I-D as soon as opens again.

Meanwhile you can read it at:

http://www.haifa.il.ibm.com/satran/ips/draft-sheinwald-iSCSI-CRC-00.txt

Formulas look a bit strange - but that's all we knew how to do with  pure
ASCII text.

Julo

---

From: "Douglas Otis" <[email-masked]>
Date: Mon, 26 Feb 2001 14:44:30 -0800

Julian,

Page 14:
   "Adler [RFC1150] demands the expensive modulo operation with a very
   large prime, for the processing of each byte, or some test to
   indicate the necessity in that operation. Fletcher [FITS] only
   demands an addition, and can work on 16-bit at a time."

Correction not RFC-1150 but these RFCs reference use of Adler-32: RFC-1950,
RFC-1951, RFC-1952, RFC-1979, RFC-2394, RFC-2960.

Your description of Adler-32 is incorrect with respect to implementation.

#define BASE 65521
...
     s1 += *buf++;
     if (s1 >= BASE)
         s1 -= BASE;
     s2 += s1;
     if (s2 >= BASE)
         s2 -= BASE;
...

This can be done with without table lookup and the speed of calculation is
faster than CRC.  There is NO expensive modulo instruction for Adler-32.

Doug