|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: ISCSI: need to fix handling of partial data transfers
Sounds good.
But I felt, "Not Enough Data" sounds generic.
Can we make it. "Insufficient Data Received" ??
Comments?
Aryan
Julian Satran wrote:
>I was under the impression that all over SCSI an initiator sending less
>data than requested by a target is tolerable.
>from a SCSI point if view but it is not always tolerable at device level.
>I will change the wording to better convey this - i.e. choosing another
>error code for failing on the FirstBurstSize and not meeting the Desired
>Data Length ( "Not Enough Data" instead of "Protocol Error") and attach the
>corresponding SCSI error status and sense (as we did with data errors).
>Is this acceptable?
>
>Julo
>
>
>
> Paul Koning
> <ni1d@arrl.net> To: ips@ece.cmu.edu
> Sent by: cc:
> owner-ips@ece.cmu Subject: ISCSI: need to fix handling of partial data
> .edu transfers
>
>
> 13-03-02 19:11
> Please respond to
> Paul Koning
>
>
>
>
>
>Here's a point I mentioned before, but it got mixed up in the debate
>over the "PDU sector alignment" proposal and wasn't resolved. So here
>it is again, standalone.
>
>There are several places in the protocol where one end specifies a
>quantity of data that it would like to see. Currently, the spec
>allows the amount of data transfered to be less than what was asked
>for, BUT it also allows the recipient of that data to complain
>("Protocol error") if what is received is less than what was asked
>for.
>
>In other words, the spec explicitly allows conforming implementations
>that do not interoperate.
>
>I do not believe this makes any sense. Failure to interoperate due to
>an implementation bug I can understand: if that happens you fix the
>code. But it is not at all reasonable for the spec to permit one end
>to send a sequence of protocol messages, and then permit the other end
>to reply to that CONFORMING sequence with the reply "Protocol error".
>
>In particular:
>
>R2T specifies Desired Data Transfer Length. Section 9.8 allows the
>initiator to reply with less than that amount, and it then allows the
>target to call that a protocol error.
>
>Similarly, section 9.3.5 allows an initiator to send less than
>FirstBurstSize unsolicited data even when the total transfer length is
>more than that, yet it allows the target to reject such transfers.
>
>These need to be changed. There are two possible fixes:
>
>1. Tighten up the initiator rules to require the initiator to send
>precisely the requested amount (i.e., Desired Data Transfer Length in
>response to R2T, and the negotiated FirstBurstSize as unsolicited
>data) rather than an arbitrary amount <= that amount. In other words,
>in the 4th paragraph of 9.3.5 change "SHOULD" to "MUST"; in the 3rd
>paragraph of 9.8 change "MUST not exceed" to "MUST exactly equal" and
>before "If the last PDU..." insert "The total amount of data sent by
>the initiator must exactly equal the Desired Data Transfer Length."
>
>2. Alternatively, tighten up the target rules, requiring the target to
>accept as valid and correct transfers less than the amount requested.
>In other words, in the 4th paragraph of 9.3.5 replace the last
>sentence by "The target MUST accept a command for which the Expected
>Data Transfer Length is higher than the FirstBurstSize and for which
>the initiator sent less than the FirstBurstSize unsolicited data."; in
>the 3rd paragraph of 9.8 change "If the last PDU..." to "If the last
>PDU (marked with the F bit) is received before the Desired Data
>Transfer Length is transferred, a target MUST accept that as a valid
>response to the R2T PDU."
>
>On grounds of simplicity I prefer solution 1, but I can support either
>as a valid fix of the current problem.
>
> paul
>
Home Last updated: Thu Mar 14 10:18:15 2002 9118 messages in chronological order |