[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