According to Mike's explanation below it seems that we have a bug in iSER 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 an offset 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 <[EMAIL PROTECTED]>: > > 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 <[EMAIL PROTECTED]> > Sent by: [EMAIL PROTECTED] > > 04/15/2008 06:40 AM > > To [EMAIL PROTECTED] > > cc > > Subject [Ips] 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 > [EMAIL PROTECTED] > https://www.ietf.org/mailman/listinfo/ips > > > _______________________________________________ > Ips mailing list > [EMAIL PROTECTED] > https://www.ietf.org/mailman/listinfo/ips > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "open-iscsi" group. To post to this group, send email to open-iscsi@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/open-iscsi -~----------~----~----~----~------~----~------~--~---