[WSD] Rework connection establishment/tear down
authorftillier <ftillier@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Tue, 27 Sep 2005 00:57:44 +0000 (00:57 +0000)
committerftillier <ftillier@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Tue, 27 Sep 2005 00:57:44 +0000 (00:57 +0000)
commite7fa71898ddbf5b1c7b071d256ad36498e5e0fab
treebf5dd83efabeff7e0dc70b7fc5cabdcd60be11f6
parent913a60f0b460996bdf9c4e92e60bd4a549084a99
[WSD] Rework connection establishment/tear down
- Split IBSPAccept into two functions, one to check if connection should be
accepted, the other to actually accept the connection.
- Moved MRA into CF_DEFER case in IBSPAccept.
- Fixed IBSPAccept error case flow to properly cleanup.
- Moved allocation of incoming connection request to listen case only.
- Don't wait for RTU in IBSPAccept, continue optimistically assuming we'll
get the RTU.  If we get a REJ, we'll tear down the socket and report an error.
- Close the switch socket from within IBSPAccept (or IBSPSocket for
duplication) before destroying the QP to prevent the QP destroy callback from
invoking the upcall to destroy the socket.
- Reduce lock contention and thrashing during socket cleanup/disconnection.

Signed-off-by: Fab Tillier (ftillier@silverstorm.com)
git-svn-id: svn://openib.tc.cornell.edu/gen1/trunk@97 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
ulp/wsd/user/ib_cm.c
ulp/wsd/user/ibsp_iblow.c
ulp/wsd/user/ibspdll.c
ulp/wsd/user/ibspstruct.h
ulp/wsd/user/misc.c