Subject: [Tsvwg] RE: [rddp] RE: Placement "outside of" TCP

From: [email-masked]
Date: Wed, 18 Dec 2002 20:14:22 -0500

> > > An optimal interface supporting MPA will make validated TCP
> > > segments available for *placement* to MPA out-of-order, but
> > > it does not *deliver* them early. The data is not
> > > "available".
> > 
> > If the data exits TCP, it is delivered.
> > If it is delivered out of order, it is a violation of the spec.
> 
> This seems like kind of a fine line.  I don't know
> how DDP can *place* the data until the DDP
> header has been *delivered* to DDP from TCP.
> Since DDP must look at, interpret, and act
> on this header in order to *place* the data,
> this qualifies as *delivery* of the DDP header.
> 
> On the other hand, if all this happens within
> a block box containing both TCP and DDP,
> it is not visible to the external ULP.
> (At least it is not visible assuming
> a number of caveats yet to be specified.)
> Hence, a virtual delivery that doesn't become
> real until the ULP observes it.
> ( Schrodenger's cat likes it. :-)

Folks - this horse is dead, so it's time to stop beating it.
Here's why:

(1) When buffers are shared among the ULP, DDP and TCP, the
RDDP WG will specify buffer ownership rules to say that when TCP
can place data into a buffer, that buffer is "owned" by TCP
and must not be examined or used in any way by the other two.
Under such rules, data that is "placed" but not "delivered"
does not "exit" TCP.  I seem to recall Joe Touch agreeing that
something like this would be acceptable in Atlanta.

(2) Memory allocation and buffer usage is an internal matter
to a TCP implementation.  If an implementation wants to copy
the data 5 times, it can, although this is not recommended.
OTOH, if it wants to place data directly into buffers that
will subsequently be passed by reference to another protocol,
it can do that also.

(3) As Jim Williams alluded to above, an interesting implementation
of TCP/framing/DDP is a combined layer "black box" implementation
that takes internal advantage of cross-layer optimizations.
As long as the externally visible behavior of such an implementation
is not distinguishable from one in which the layers are perfectly
separated, the fact that one can't find an instance of RFC 793's
functional User/TCP interface inside the implementation is not
relevant.  As long as the internal "interface" between TCP and
DDP is not exposed, the relevant question is whether the
"black box" behavior is functionally equivalent to a "black box"
that does contain an interface equivalent to RFC 793's.

(4) An interesting functionally equivalent "black box" is one
in which TCP uses internal buffers and DDP copies data to
effect its placement.  Nothing below DDP needs to examine the
DDP headers, and the required RFC 793 TCP interface is present.
As long as (1) above is respected, one can't distinguish this
implementation from one in which the DDP payloads land in
the right place directly off the wire, as determining that
would require that a ULP examine or use the buffers involved
while they are "owned" by TCP in violation of (1).

Lest this whole area seem like an unusually aggressive application
of cross-layer optimization, I've seen a web server implementation
in which files written to an appropriate piece of the filesystem
are segmented into TCP segments with payload checksums calculated
for each at the time the file is written - in this case, TCP, HTTP,
and some chunk of both the web server and filesystem are in the
"black box".  The result runs like greased lightning for static data
as the data passes through the stack by reference and isn't scanned
for checksum calculation, but it's functionally equivalent to a
"black box" that does all of this in a more traditional fashion.

Also, please keep in mind that if this sort of data placement was
an obvious egregious violation of TCP semantics, neither yours truly
nor the ADs would ever have allowed any mention of data placement
via TCP into the RDDP WG charter.

Thanks,
--David
----------------------------------------------------
David L. Black, Senior Technologist
EMC Corporation, 176 South St., Hopkinton, MA  01748
+1 (508) 293-7953 **NEW**     FAX: +1 (508) 293-7786
[email-masked]        Mobile: +1 (978) 394-7754
----------------------------------------------------
_______________________________________________
tsvwg mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/tsvwg

---

From: "Brian F. G. Bidulock" <[email-masked]>
Date: Wed, 18 Dec 2002 20:20:21 -0700

David,

I supppose the point is that it cannot be implemented as separate
layers without breaking TCP semantics to the ULP, therefore your
"black box" cannot contain the equivalent of an RFC 793 compliant
interface.  What you "black box" contains is DDP/TCP bundle-fly. ;)

--brian

-- 
Brian F. G. Bidulock    ¦ The reasonable man adapts himself to the ¦
[email-masked]    ¦ world; the unreasonable one persists in  ¦
http://www.openss7.org/ ¦ trying  to adapt the  world  to himself. ¦
                        ¦ Therefore  all  progress  depends on the ¦
                        ¦ unreasonable man. -- George Bernard Shaw ¦
_______________________________________________
tsvwg mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/tsvwg