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.