Subject: Re: iSCSI: Use of the A bit

From: "Julian Satran" <[email-masked]>
Date: Mon, 18 Mar 2002 22:23:13 +0200

John,

comments in text - JUlo

John Hufferd/San Jose/IBM@IBMUS
18-03-02 19:17
Please respond to John Hufferd

        To:     Julian Satran/Haifa/IBM@IBMIL
        cc:     "Mallikarjun C." <[email-masked]>, [email-masked], [email-masked]
        Subject:        Re: iSCSI: Use of the A bit

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.

+++ The first statement says that IF data-ack is requested it MUST be sent 
by the initiator before it acknowledges status. 
+++

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.

+++
In fact the target may want a data ack as the status ack might be delayed 
for various reasons.
The second statement says that if the target sees a status ack that is 
also an ack for the data

The first statement says that the initiator must send ack if asked - and 
send status ack only afterwards.

The second says that when status is received the data are acked and target 
should wait no longer (i.e., no recovery action).
+++
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: "Rod Harrison" <[email-masked]>
Date: Mon, 18 Mar 2002 21:29:32 -0000

Can we explicitly allow the status and data ACKs to be at the same
time? Otherwise we prevent sending the status ACK (expStatSn) in the
data ACK SNACK PDU.

	- Rod

-----Original Message-----
From: [email-masked] [mailto:[email-masked]]On Behalf Of
Julian Satran
Sent: Monday, March 18, 2002 8:23 PM
To: John Hufferd
Cc: Mallikarjun C.; [email-masked]; [email-masked]
Subject: Re: iSCSI: Use of the A bit

John,

comments in text - JUlo

        To:        Julian Satran/Haifa/IBM@IBMIL
        cc:        "Mallikarjun C." <[email-masked]>,
[email-masked], [email-masked]
        Subject:        Re: iSCSI: Use of the A bit

"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.

+++ The first statement says that IF data-ack is requested it MUST be
sent by the initiator before it acknowledges status.
+++

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.

+++
In fact the target may want a data ack as the status ack might be
delayed for various reasons.
The second statement says that if the target sees a status ack that is
also an ack for the data

The first statement says that the initiator must send ack if asked -
and send status ack only afterwards.

The second says that when status is received the data are acked and
target should wait no longer (i.e., no recovery action).
+++
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

Dear all,

  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.

      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