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 at voltaire.com> Sent by: ips-bounces at ietf.org
04/15/2008 06:40 AM
To
ips at ietf.org
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.