Subject: iSCSI: SNACK wording clarification

From: "Matt Wakeley" <[email-masked]>
Date: Mon, 16 Jul 2001 14:31:33 -0700

The word SNACK should be defined (Selective Negative ACKnowledgement)

The discussion of SNACK indicates that it is used for the "retransmission of
status, data or R2T PDUs".  The use of the word "status" can be confused to
imply that only SCSI command status can be retransmitted.  Instead, the word
"response" should be used since SNACK is used to retransmit any PDU that
advances StatSN (such as task management responses, text responses, NOP-IN).

-Matt

---

From: "Julian Satran" <[email-masked]>
Date: Thu, 19 Jul 2001 06:37:10 +0300

The CmdSN is used only to enable target to get the commands in order (if
they are delivered).
Comman arrival is acked throug ExpCmdSN.
StatsN is a different and unrelated numbering.

Julo

"Trang Nguyen" <[email-masked]> on 18-07-2001 18:48:58

Please respond to [email-masked]

To:   Julian Satran/Haifa/IBM@IBMIL, "Matt Wakeley"
      <[email-masked]>
cc:   "IPS Reflector <ips"
Subject:  RE: iSCSI: SNACK wording clarification

Hi everyone,

I just went across the Sequence Errors section in the iSCSI I-D yesterday.
Since I am new to the group, please accept my apology if the following
questions have been already asked.

"6.3 Sequence Errors

   When an initiator receives an iSCSI data PDU with an out-of-order
   DataSN or a SCSI command response PDU with an ExpDataSN implying
   missing data PDUs it MAY request the missing data PDUs through a data
   SNACK PDU or handle this case as a connection failure.  In its turn,
   the target MUST either reject the SNACK with a Reject PDU with a
   reason-code of Data-SNACK-Reject or resend the data PDU.

   When an initiator receives an iSCSI status PDU with an out-of-order
   StatSN implying missing responses, it MUST either request the missing
   response PDUs through a status SNACK or handle this case as a
   connection failure.  The target MUST reissue the missing responses.
   As a side effect of receiving the missing responses, the initiator
   may discover missing data PDUs. The initiator MUST NOT acknowledge
   (either explicitly through ExpStatSN or implicitly through a status
   SNACK) the received responses until it has completed receiving all
   the data PDUs of a SCSI command. "

My questions are:

1.  In the iSCSI I-D: "iSCSI uses Command and Status numbering schemes and
a
Data sequencing scheme.  It supports ordered command delivery within a
session.  All commands (initiator-to-target) are numbered".  As I
understand
it means that the iSCSI initiator won't deliver the next PDU until it
receives the acknowledgement from the target (through StatSN, ExpCmdSN).
Also, the target executes the PDU with sequence number it expects.  It
won't
execute the out-ot-order PDU.  Am I understanding it right?

2.  From the section 6.3 "Sequence Errors", I have the impression that
iSCSI
can send multiple PDUs without waiting for the acknowledgement.  If it's
true, then it conflicts with the question 1?  If it's true, then does iSCSI
need a timer to time every PDU it deliver?  The iSCSI I-D doesn't mention
about the timer at all.

Thank you,

Trang Nguyen