Subject: Re: iSCSI: Use of the A bit

From: "John Hufferd" <[email-masked]>
Date: Mon, 18 Mar 2002 09:17:02 -0800

Julian the following statement is confusing:

 "An initiator MUST ONLY acknowledge the status for command that produced
 Data-In PDUs after acknowledging the Data-In PDUs if Data-In PDU
 acknowledgment is requested by the target.  A status acknowledgement for a
 command that generated Data-In PDUs is considered by the target as an
 implicit acknowledgement of the Data-In PDUs if such an acknowledgement
 was requested by the target."

What did you intend to say.  All commands MUST have t status acknowledge,
via ExpStatSN, so I do not understand the first sentence.  And if the
Data-In PDUs must be acknowledged (if the A bit is set), what is the
meaning of the last statement.

Since I do not believe there is a need to ack the last Data-In PDU, I am
hoping you agree.  But it is not clear.

If the Target sets the A bit on the last Data-In PDU, which also has good
status set -- and the Initiator has a PDU ready to send to which it can
attach the value of ExpStatSN, which will show that the Data-In PDU was
received -- there should be no reason to send a extra SNACK for the Data-In
PDU.

Please tell me that is what you intended to say in the above quoted text.

.
.
.
John L. Hufferd
Senior Technical Staff Member (STSM)
IBM/SSG San Jose Ca
Main Office (408) 256-0403, Tie: 276-0403,  eFax: (408) 904-4688
Home Office (408) 997-6136, Cell: (408) 499-9702
Internet address: [email-masked]

"Julian Satran" <[email-masked]>@ece.cmu.edu on 03/17/2002
05:52:46 PM

Sent by:    [email-masked]

To:    "Mallikarjun C." <[email-masked]>
cc:    [email-masked], [email-masked]
Subject:    Re: iSCSI: Use of the A bit

Dear all,

The text for the A bit part (9.7.2) reads now:

   A (Acknowledge) bit

       For sessions with ErrorRecoveryLevel 1 or higher, the target sets
       this bit to 1 to indicate that it requests a positive
       acknowledgement from the initiator for the data received.  The
       target should use the A bit moderately; it MAY set the A bit to 1
       only once every MaxBurstSize bytes or on the last Data-In PDU that
       concludes the entire requested read data transfer for the task from
       the target's perspective, and MUST NOT do so more frequently than
       this.

       On receiving a Data-In PDU with the A bit set to 1, the initiator
       MUST issue a SNACK of type DataACK.  If the initiator has detected
       holes in the input sequence, it MUST postpone issuing the SNACK of
       type DataACK until the holes are filled. An initiator MUST ONLY
       acknowledge the status for command that produced Data-In PDUs after
       acknowledging the Data-In PDUs if Data-In PDU acknowledgment is
       requested by the target. A status acknowledgement for a command that
       generated Data-In PDUs is considered by the target as an implicit
       acknowledgement of the Data-In PDUs if such an acknowledgement was
       requested by the target.

The ITT mandating text in 9,16.1 will read:

       For Status SNACK and DataACK, the Initiator Task Tag is reserved. In
       all other cases, the Initiator Task Tag field MUST be set to the
       Ini-tiator Task Tag of the referenced command.

       Julo

---

From: "Mallikarjun C." <[email-masked]>
Date: Mon, 18 Mar 2002 09:58:34 -0800

John,

I think you're describing the intent of the wording, though the
paragraph you point out doesn't seem consistent.

Here's what I suggest with a few tweaks -

       On receiving a Data-In PDU with the A bit set to 1, if there are no holes 
       in the read data until that Data-In PDU, the initiator MUST issue a SNACK 
       of type DataACK , or alternatively MAY acknowledge the status for the task 
       immediately via ExpStatSN on other outbound PDUs if the status for the task
       is also received.  If the initiator has detected holes in the read data until that Data-In 
       PDU, it MUST postpone issuing the SNACK of type DataACK until the holes 
       are filled. An initiator also MUST NOT acknowledge the status for the task 
       before those holes are filled.  A status acknowledgement for a task that generated 
       the Data-In PDUs is considered by the target as an implicit acknowledgement 
      of the Data-In PDUs if an acknowledgement was requested by the target.

I hope this works better....
--
Mallikarjun

Mallikarjun Chadalapaka
Networked Storage Architecture
Network Storage Solutions Organization
Hewlett-Packard MS 5668 
Roseville CA 95747
[email-masked]