[openib-general] [PATCH 3/4] IB CM: register and handle COMM_EST events on a QP

Or Gerlitz ogerlitz at voltaire.com
Thu Jul 27 00:45:23 PDT 2006


Sean Hefty wrote:
> Or Gerlitz wrote:
>> Generally, i guess you need to insert the local QPN into the rb_tree 
>> ***before*** sending the REP not after it.

> That is what the patch does.

OK, sorry for making noise, i was referring to your comment:

"I think that it could insert the local QPN after the passive side calls 
ib_send_cm_rep(), similar to what's done in the client-server model."

where i should have verified it in the code you sent...

>> Can you state what is the usage being done with the local QPNs in the 
>> timeout on REQ flow?
> 
> I don't quite follow what you're asking here.  Local QPNs are tracked 
> when a REQ is sent.  If a second REQ is sent using the same QPN, it will 
> fail with an address in use error.  The local QPN is not removed from 
> the table until the connection fails, or we exit the timewait state 
> after being disconnected.

OK, with s/REQ/REP/g i think to understand it better now:

in ib_send_cm_rep you attempt to insert the local QPN into the rb_tree 
and if this is a resend of the REP or the user is recycling QPs (etc) a 
records for this QPN would be already there and you get address-in-use, 
unless you remove it in the timeout code or when disconnecting this 
connection (which is what you do).

This is done also for the ib_send_cm_req case but you agreed it can be 
removed from there also for the peer to peer case.

Or.






More information about the general mailing list