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

From: [email-masked]
Date: Thu, 19 Dec 2002 14:54:10 -0500

Joe,

> > I'll let Joe speak for himself, but the important point here is
> > that not only can DDP essentially as proposed be cleanly layered
> > on top of an RFC 793-class TCP interface, but there is also "running
> > code" that does so. 
> 
> Speaking for myself ;-), that's fine. I am concerned with ensuring that
> no protocol above TCP (as far as TCP is concerned, that's called the
> "user") receives data out of order without a tag that says "use this and
> you violate the API".
>
> That requires that DDP, when placing the data, must block things above 
> it from accessing its contents unless:
> 	a) TCP indicates it is OK to do so
> 	b) DDP passes the flag along to that protocol/process as well
> 
> I.e., for unmodified applications, (a) is the only valid choice.

I don't see a problem with any of this, including the "tag", but see
further discussion on that below.  Unmodified applications will be
unable to use tagged DDP transfers, as they won't provide the additional
info required, making it relatively easy to ensure in-order delivery
of untagged transfers if someone does employ untagged DDP beneath a
sockets or similar API.

[... snip ...]

> 	1. the API and its behavior are as much a part of the spec
> 	of TCP as are the packets
> 
> 	2. user means anything above TCP
> 
> 	3. data cannot be delivered to the user until ackd.
> 	We all agree that delivery occurs when the data is
> 	tagged valid, _provided the tag is enforced_.

I agree with all of this, and don't see a problem.

> So:
> 
> 	DDP _requires_ the tag from TCP
> 		- data MUST be provided with the tag if
> 		  received before ack'd
> 		- DDP MUST NOT place data delivered without a tag
> 
> That has to be in the spec.

And it already is for the most part, as the separation of the notion of
placement from delivery implements the "tag" - data is always placed
with the "tag", and a "tag" is removed via a delivery event indicating
that the data can now be used - the current DDP draft says (Section 7.3):

     * MAY perform Placement of DDP Segments out of order, 

     * MUST Deliver DDP Messages to the ULP in the order they were 
        sent by the Data Source.

So much of what's needed is already present.

> Anything else changes the semantics of the underlying TCP, by 
> 'letting the cat out of the bag'.
> 
> The issue, IMO is:
> 
> 	i. whether DDP, MPA, or some combination is
> 	 _required_ to sufficiently _ensure_ that
> 	the cat is contained

The appropriate combinations (DDP over an ordered transport like TCP)
will be "_required_" to contain the cat (no delivery of out-of-order
data to anything above DDP, even if placement has occurred out-of-order).
As for "sufficiently _ensure_", that's in the eye of the beholder to
some extent, but what RDDP proposes to do in this space will be visible
to TSVWG for review.

> 	ii. if there are ANY combinations (MPA+DDP, MPA alone, etc.)
> 	that allow the cat out, then whatever it provides:
> 		a) MUST NOT be called TCP
> 		   i.e., MUST NOT be available as a "SOCK_STREAM"
> 		   using default configuration.
> 		b) IMO, MUST NOT (at least SHOULD NOT) use
> 		   TCP's protocol number

I believe the current intent is to get i. above "right" so that this
case does not arise.

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: Thu, 19 Dec 2002 13:25:49 -0700

Black_David,

>      * MUST Deliver DDP Messages to the ULP in the order they were 

Can you give an example of a mechanism which would satisfy both out
of order placement (direct with no subsequent copy) yet in order
delivery?  (Bear in mind that overwritting user data in a buffer
beyond what is "delivered" would be completely unexpected by an
existing TCP application.)

--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

---

From: Joe Touch <[email-masked]>
Date: Thu, 19 Dec 2002 12:54:36 -0800

> of untagged transfers if someone does employ untagged DDP beneath a

AOK, as per below.

> data to anything above DDP, even if placement has occurred out-of-order).

That's sufficient, IMO, though I'm unclear as to what happens with DDP 
over MPA; maybe that's MPAs problem.

> I believe the current intent is to get i. above "right" so that this

Agreed, though as per other messages it may be that MPA presents the key 
problem, not DDP, in that regard.

Joe