|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] some numbering clarificationsDear colleagues, To clarify some issues related to numbering in iSCSI here is an excerpt from the text supposed to go into the next draft. I hope it helps. Regards, Julo 1.1.1 Ordering and iSCSI numbering The NOP message PDUs are not associated with a task, are meant for immediate delivery, and their only purpose is synchronizing the ordering registers of the target and initiator. 1.1.1.1 Command numbering iSCSI supports ordered command delivery within a session. All commands (initiator-to-target) and responses (target-to-initiator) are numbered. Any SCSI activity is related to a task (SAM-2). The task is identified by the Initiator Task Tag for the life of the task. Commands in transit from the initiator SCSI layer to the target SCSI layer are numbered by iSCSI and the number is carried by the iSCSI PDU as CmdRN (Command-Reference-Number). The numbering is session-wide. All iSCSI PDUs that have a task association carry this number. CmdRNs are allocated by the initiator iSCSI within a 32 bit unsigned counter (modulo 2**32). The value 0 is reserved and used to mean immediate delivery. Comparisons and arithmetic on CmdRN SHOULD use Serial Number Arithmetic as defined in [RFC1982] where SERIAL_BITS = 32. The target may choose to deliver some task management commands for immediate delivery. The means by which the SCSI layer may request immediate delivery for a command or by which iSCSI will decide by itself to mark a PDU for immediate delivery are outside the scope of this document. CmdRNs are significant only during command delivery to the target. Once the device serving part of the target SCSI has received a command, CmdRN ceases to be significant. During command delivery to the target, the allocated numbers are unique session wide. The initiator and target are assumed to have three registers that define the allocation mechanism - CmdRN - the current command reference number advanced by 1 on each command shipped; ExpCmdRN - the next expected command by the target - acknowledges all commands up to it; MaxCmdRN - the maximum number to be shipped - MaxCmdRN - ExpCmdRN defines the queuing capacity of the receiving iSCSI layer. The target SHOULD NOT transmit a MaxCmdRN that is more than 2**31 - 1 above the last ExpCmdRN. CmdRN can take any value from ExpCmdRN to MaxCmdRN except 0. The target will reject any command outside this range or duplicates within the range not flagged with the retry bit (the X bit in the opcode). The target and initiator registers MUST uphold causal ordering. iSCSI initiators MUST implement the command/request numbering scheme only if they support more than one connection. iSCSI targets MAY use the command/request numbering scheme for ordered delivery when they support multiple connections. However, they MUST provide ExpCmdRN and MaxCmdRN values that will enable the initiator to make progress. 1.1.1.2 Response/Status numbering Responses in transit from the target to the initiator are numbered. The StatRN (Status Reference Number) is used for this purpose. To enable command recovery the target MAY maintain enough state to enable data and status recovery after a connection failure. A target can discard all the state information maintained for recovery after the status delivery is acknowledged through ExpStatRN. A large difference between StatRN and ExpStatRN indicates a failed connection. Initiators and Targets MUST support the response-numbering scheme regardless of the support for command recovery. 1.1.1.3 Data PDU numbering Incoming Data PDUs MAY be numbered by a target to enable fast recovery of long running READ commands. Data PDUs are numbered with DataRN. NOP command PDUs carrying the same Initiator Tag as the Data PDUs are used to acknowledge the incoming Data PDUs. Support for Data PDU acknowledgement and the maximum number of unacknowledged data PDUs are negotiated at login. In a PDU carrying both data and status the number refers to the Status and the last set of data blocks is implicitly acknowledged when Status is acknowledged.
Home Last updated: Tue Sep 04 01:06:37 2001 6315 messages in chronological order |