|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] iSCSI CRC check clarificationJulian,
I followed few iSCSI
CRC checking example threads and the thread file://www.pdl.cmu.edu/mailinglists/ips/mail/msg05931.html says
that "Before transmission, the CRC bits must be reflected and complemented";
whereas, the iscsi- 08 draft only mentions about complementing the CRC before
transmission. So attached you will find two software implementation code
examples: crc_reflect.cpp and crc_no_reflect.cpp.
I ran few test cases
with the attached example code and when I do reflect bits I
get
0: ff ff ff
ff
4: ff ff ff ff 8: ff ff ff ff 12: ff ff ff ff 16: ff ff ff ff 20: ff ff ff ff 24: ff ff ff ff 28: ff ff ff ff
32: 43 ab a8 62
in the transmission
side, and the reception side I get 0x1c2d19ed.
But when I do not
bit flip I get
0: ff ff ff
ff
4: ff ff ff ff 8: ff ff ff ff 12: ff ff ff ff 16: ff ff ff ff 20: ff ff ff ff 24: ff ff ff ff 28: ff ff ff ff
32: 46 15 d5 c2
in the transmission
side, and the reception side I do get 0x1c2d19ed though.
I like to clarify
which implementation we should use so that both Initiator and Target will be in
sync. validating the CRC. I appreciate if you could verify the attached files to
see I am missing anytbing. Also I think that it would help everyone who are
dealing with iSCSI CRC if you could put up the finalized version of the code in
the reflector.
Thanks,
Tandra (tde@corp.adaptec.com)
Home Last updated: Wed Nov 07 13:17:38 2001 7616 messages in chronological order |