RE: DDP draft specification

"Sanjay Goyal" <[email protected]> Fri, 26 Aug 2005 14:55:42 -0400
Newsgroups gmane.ietf.rddp
Message-ID <[email protected]>
Hi,
What you described is the distinction between placement and delivery. Thanks for the elaboration.
The point I am trying to make is that MPA FPDU even if they arrive out-of-order can be placed in the memory as DDP header has the placement information. DDP preserves ULP message boundaries and uses MSN to keep track of in-order deliveries and MPA layer has none of these characteristics. So when a MPA FPDUs arrives, it is processed for CRC/markers and is given to DDP for it to be placed in the memory. Or in other words MPA only delivers FPDUs to DDP and does not really place the data. So the below sentence still does not make sense to me.

 This specification requires reliable, in order Delivery LLPs.

Because the above sentence will mean that out-of-order DDP segment will really never be received.


Best Regards,
Sanjay Goyal

-----Original Message-----
From: Caitlin Bestler [mailto:[email protected]]
Sent: Saturday, August 20, 2005 11:44 PM
To: Sanjay Goyal
Cc: [email protected]
Subject: RE: [rddp] DDP draft specification


 

> -----Original Message-----
> From: [email protected] [mailto:[email protected]] On 
> Behalf Of Sanjay Goyal
> Sent: Friday, August 19, 2005 10:29 AM
> To: [email protected]
> Subject: [rddp] DDP draft specification
> 
> Hi,
> 
> The below 2 sentences are from draft-ietf-rddp-ddp-05.txt
> 
> 1. DDP provides enough information in each DDP Segment to 
> allow the ULP Payload in each inbound DDP Segment payloads to 
> be directly Placed into the correct ULP Buffer, even when the 
> DDP Segments arrive out-of-order. 
> 2. This specification requires reliable, in order Delivery LLPs.
> 
> First sentence says that DDP segments which are MPA FPDUs in 
> TCP case can arrive out-of-order and second sentence says 
> that LLP (MPA layer) needs to provide ordered delivery. Isn't 
> it contradictory?
> 
> Regards,
> 
> Sanjay
> 

The first clause allows DDP to place data into buffers
in the order that the LLP provides DDP Segments for the
purpose of placement.

The second clause specifies that the LLP will only 
*deliver* the DDP Segments in order. DDP itself provides
for in-order delivery only after LLP delivery.

Placement deals with buffering. Placement alone does
not enable the data to be used. See the rules about
buffers being undefined until delivery.

Basically the same distinction between placement and
delivery that applies for DDP can apply between the
LLP and DDP. But that is implementation specific since
there is no standardization of the DDP/LLP interface.
It was a design goal that the classic sockets interface
be an acceptable interface, but it is no way mandated
or even suggested.