Subject: [Ips] DA, Send_Control, DataDescriptorOut parameter of Data-OUT PDU

From: "Alex Nezhinsky" <[email-masked]>
Date: Wed, 22 Sep 2004 14:03:15 +0200

A question/suggestion for Datamover Architecture (DA) spec.

In section 11.3.5.1 ("Interactions for sending an iSCSI PDU", "SCSI
Data-OUT") DataDescriptorOut parameter 
is suggested. It is supposed to describe a buffer, which will serve as
the data segment of Data-OUT PDU being sent. 
It seems redundant, as the entire data buffer for the task has been
passed with Command PDU, 
so the BufferOffset and DSL fields of Data-OUT's BHS should suffice to
describe the data. 

In the current form iSCSI layer may pass a buffer incosistent with the
data descriptor passed with the Command PDU. 
If DataDescriptorOut parameter is removed, Send_Control is always safe. 
I'd anticipate at least a notice (like the one in 11.3.1) stating that
it's up to implementation. 

Are there other considerations that I missed?
 
Alexander Nezhinsky
Infiniband Storage Solutions, Voltaire Ltd.

_______________________________________________
Ips mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/ips

---

From: Mike Ko <[email-masked]>
Date: Wed, 22 Sep 2004 10:32:14 -0700

Alex,

When a SCSI Write (or bidirectional) command is issued, the datamover 
needs to do something special with the I/O buffer referenced by 
DataDescriptorOut if there is solicited data.  This is because solicited 
data is transformed into RDMA Read operations.  As an example of how this 
is handled by a datamover, see section 7.3.1 of draft-ietf-ips-iser-00.txt 
on SCSI Commands.  If there is only unsolicited data, in the form of 
immediate data or non-immediate data, there is no requirement for the 
datamover to save the information on DataDescriptorOut after the SCSI 
command is processed.  So when the iSCSI layer invokes the Send_Control 
operational primitive later to send the SCSI Data-out with the unsolicited 
data, it must again inform the datamover of where the unsolicated data is 
located via DataDescriptorOut.  One can argue that when there is solicited 
data, the datamover is expected to recover DataDescriptorOut from the 
previous Send_Control invocation for the SCSI command.  But since the 
iSCSI layer has to qualify Send_Control with DataDescriptorOut for SCSI 
Data-out for the unsolicited data only case anyway, it would be simpler to 
always qualify the Send_Control invocation for SCSI Data-out with 
DataDescriptorOut.

Mike
Sent by:        [email-masked]
To:     <[email-masked]>
cc:      
Subject:        [Ips] DA, Send_Control, DataDescriptorOut parameter of 
Data-OUT PDU

Alexander Nezhinsky