Subject: RE: [rddp] Freeing QN=1 State

From: "Caitlin Bestler" <[email-masked]>
Date: Fri, 10 Dec 2004 15:41:24 -0800

> 
> Is there a window where the Data Sink ORRQ doesn't match the 
> Data Source IRRQ?  For example, a compliant Data Sink 
> completes the RDMA Read as you describe and sends a new one.  
> However, the Data Source doesn't have its implementation 
> specific criteria met for considering the Read in Queue 1 to 
> be complete.  The new RDMA Read from the Data Sink results in 
> the session being terminated.  Both sides claim they comply.
> 

Essentially you are asking, can the Data Sink have received
the completion of its RDMA Read Reply, and then submit a new
RDMA Read Request which will reach the peer *before* the
ack of the RDMA Read Reply does?

The answer is that it cannot because, the completion of the
RDMA Read Reply cannot be delivered to the Data Sink ULP before
The LLP has committed to LLP Ack that TCP Segment / SCTP chunk.

The next RDMA Read Request, being submitted *later* than the
decision to LLP Ack, cannot reach the other side *earlier*
than the LLP ack. From the LLP's perspective the ack must
occur earlier, or at worst get blurred to the "same time".
The order cannot get reversed.

If the Data Sink ULP cheats and peaks at memory to determine
When the RDMA Read has finished rather than waiting for the
Completion you could indeed get that type of race condidtion.
That's one of many reasons why all warranties are void if the
ULP acts upon buffers before they are delivered.

--
Caitlin Bestler
Director Software Architecture
Siliquent Technologies
[email-masked]

_______________________________________________
rddp mailing list
[email-masked]
https://www1.ietf.org/mailman/listinfo/rddp

---

From: "Michael C. Cambria" <[email-masked]>
Date: Fri, 10 Dec 2004 19:19:37 -0500

> ack of the RDMA Read Reply does?

As the draft reads now, when to clean up state is implementation 
dependent.  You said so yourself :-)  So the draft allows a Data Source 
to e.g. set a timer to some large value and not clean up state until it 
fires and claim that it complies.

Text that says that state must be freed when the Read Response is acked 
(or sooner) fixes this.

Regards,
MikeC