Subject: Data integrity

From: [email-masked]
Date: Wed, 19 Sep 2001 19:27:15 -0600

Currently, the data and header digests are completely separate.

This makes it impossible to guarantee data integrity because an iSCSI
initiator or target cannot detect when data with a correct digest has
been incorrectly associated with the wrong command (perhaps because of 
defective hardware, firmware, or software).

A PDU layout like this

        Byte /    0       |       1       |       2       |       3       |
           /              |               |               |               |
          |7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|

          +---------------+---------------+---------------+---------------+
        0 / BHS                                                           /
         +/                                                               /
          +---------------+---------------+---------------+---------------+
        48/ AHS  (optional)                                               /
         +/                                                               /
          +---------------+---------------+---------------+---------------+
        ----
          +---------------+---------------+---------------+---------------+
         m/ Data-Digest (optional)                                        /
         +/                                                               /
          +---------------+---------------+---------------+---------------+
         m/ Header-Digest (optional)                                      /
         +/                                                               /
          +---------------+---------------+---------------+---------------+
         n/ Data Segment(optional)                                        /
         +/                                                               /
          +---------------+---------------+---------------+---------------+

where the Header-Digest includes the Data-Digest would avoid that problem
and not require Data-Digest recalculation when the PDU is being forwarded 
with a re-written header.

-- 
<a href="http://www.poohsticks.org/drew/">Home Page</a>
For those who do, no explanation is necessary.  
For those who don't, no explanation is possible.