|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: A question on Zero Copy
Randall,
If I understood Marjorie Krueger correctly, they want C. Within the iSCSI
PDUs being returned is an Initiator Task Tag with Buffer Offset that
associates blocks of encapsulated data with placement in a contiguous
(perhaps overlapping) fashion into a buffer allocated by yet a different
application during an initial SCSI request. As the target (server) provides
this information in random order, there would be no prior knowledge as to
what is contained within any TCP segment. David Black mentioned that a
(look ahead) packet filter sitting below IP provides intelligence for a
"content directed zero" copy technique. One thing that makes this difficult
is that data starts and ends out of alignment to the segment. Not only
would data need to be directed based on content to these locations, only
portions of segments would be directed. I assume there would be a sharing
of the SCSI Requests lists between the iSCSI application and the intelligent
look ahead packet filter but this topic is deemed outside the scope of the
IPS WG. (Thankfully)
Here is an example of the data PDU that needs Content Directed Zero Copy for
the Payload.
Byte / 0 | 1 | 2 | 3 |
/ | | | |
|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|7 6 5 4 3 2 1 0|
+---------------+---------------+---------------+---------------+
0| Opcode (0x05) | Reserved (0) |
+---------------+---------------+---------------+---------------+
4| Length |
+---------------+---------------+---------------+---------------+
8| Buffer Offset |
+---------------+---------------+---------------+---------------+
12| Transfer Tag |
+---------------+---------------+---------------+---------------+
16| Initiator Task Tag |
+---------------+---------------+---------------+---------------+
20| Reserved (0) |
+/ /
+---------------+---------------+---------------+---------------+
28| CmdRN |
+---------------+---------------+---------------+---------------+
28| ExpStatRN |
+---------------+---------------+---------------+---------------+
32/ Reserved (0) /
+/ /
+---------------+---------------+---------------+---------------+
48/ Payload /
+/ /
+---------------+---------------+---------------+---------------+
Doug
> Hello all:
>
> Has I am trying to get a grasp of this issue, maybe
> someone can fill me in on a conflict I have in
> my resolution processing :)
>
>
> Does the iSCSI layer want:
>
> A) Plain Zero copy, where the upper layer (iSCSI) asks
> to read the next available "message" from the wire
> into a buffer passed to the transport by iSCSI?
>
> <OR>
>
> B) A directed Zero Copy, where the upper layer (iSCSI) asks
> to read a particular request to a specific buffer?
>
>
> (A) being what I thought as normal zero copy semantics whereas (B)
> is something quite different... it implies I can issue several
> read requests passing buffers to the underlying transport and
> wanting specific things to go in each buffer...
>
>
> For some reason I may have incorrectly gotten the impression
> that iSCSI wants (B), which as I think about it is a
> hard problem, or am I just confused and iSCSI wants to use (A)????
>
>
> Thanks
>
> R
> --
> Randall R. Stewart
> randall@stewart.chicago.il.us or rrs@cisco.com
> 815-342-5222 (cell) 815-477-2127 (work)
>
Home Last updated: Tue Sep 04 01:06:11 2001 6315 messages in chronological order |