|
|
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] |
According to Mike's explanation below it seems that we have a bug iniSER initiator.Fixing this bug will require a fix in the stgt iSER code. The problem is that the initiator send a VA which already includes anoffset for the unsolicited data (which is wrong).In iser_initiator.c::iser_prepare_write_cmd the code looks like this:hdr->write_va = cpu_to_be64(regd_buf->reg.va + unsol_sz); we think that it should be modified to:hdr->write_va = cpu_to_be64(regd_buf->reg.va); Let's discuss this and verify we interpret the spec correctly.If agreed we will send a patch. Eli 2008/4/15 Mike Ko <mako@xxxxxxxxxxxxxxx>:>> VA is a concept introduced in an Infiniband annex to support iSER. It> appears in the expanded iSER header for Infiniband use only to support the> non-Zero Based Virtual Address (non-ZBVA) used in Infiniband vs the ZBVA> used in IETF.>> "The DataDescriptorOut describes the I/O buffer starting with the immediate> unsolicited data (if any), followed by the non-immediate unsolicited data> (if any) and solicited data." If non-ZBVA mode is used, then VA points to> the beginning of this buffer. So in your example, the VA field in the> expanded iSER header will be zero. Note that for IETF, ZBVA is assumed and> there is no provision to specify a different VA in the iSER header.>> Tagged offset (TO) refers to the offset within a tagged buffer in RDMA Write> and RDMA Read Request Messages. When sending non-immediate unsolicited> data, Send Message types are used and the TO field is not present. Instead,> the buffer offset is appropriately represented by the Buffer Offset field in> the SCSI Data-Out PDU. Note that Tagged Offset is not the same as write VA> and it does not appear in the iSER header.>> Mike>>>> Erez Zilber <erezz@xxxxxxxxxxxx>> Sent by: ips-bounces@xxxxxxxx>> 04/15/2008 06:40 AM>> To ips@xxxxxxxx>> cc>> Subject Calculating the VA in iSER header>>>>>>> We're trying to understand what should be the write VA (tagged offset)> in the iSER header for WRITE commands. If unsolicited data is to be> sent, should the VA be the original VA or should it be original VA +> FirstBurstLength?>>> Example:>>> InitialR2T=No>> FirstBurstLength = 1000>>> Base address of the registered buffer = 0>>> Now, what should be the VA in the iSER header? 0 or 1000?>>> We read the following paragraph in the iSER spec, but didn't get an> answer from there:>>> * If there is solicited data to be transferred for the SCSI write or> bidirectional command, as indicated by the Expected Data Transfer> Length in the SCSI Command PDU exceeding the value of> UnsolicitedDataSize, the iSER layer at the initiator MUST do the> following:>> a. It MUST allocate a Write STag for the I/O Buffer defined by> the qualifier DataDescriptorOut. The DataDescriptorOut> describes the I/O buffer starting with the immediate> unsolicited data (if any), followed by the non-immediate> unsolicited data (if any) and solicited data. This means> that the BufferOffset for the SCSI Data-out for this> command is equal to the TO. This implies that a zero TO> for this STag points to the beginning of this I/O Buffer.>>> Thanks,>> -->> ____________________________________________________________>> Erez Zilber | 972-9-971-7689>> Software Engineer, Storage Solutions>> Voltaire – _The Grid Backbone_>> __>> www.voltaire.com <http://www.voltaire.com/>>>>> _______________________________________________> Ips mailing list> Ips@xxxxxxxx> https://www.ietf.org/mailman/listinfo/ips>>> _______________________________________________> Ips mailing list> Ips@xxxxxxxx> https://www.ietf.org/mailman/listinfo/ips>>_______________________________________________Ips mailing listIps@xxxxxxxxxxxxx://www.ietf.org/mailman/listinfo/ips
[IETF] [Linux iSCSI] [Linux SCSI] [Linux Resources] [Yosemite News] [IETF Announcements] [IETF Discussion] [SCSI]
![]() |
![]() |