]> git.karo-electronics.de Git - karo-tx-linux.git/commit
RDMA/nes: Handle MPA Reject message properly
authorFaisal Latif <faisal.latif@intel.com>
Fri, 6 Mar 2009 23:15:01 +0000 (15:15 -0800)
committerRoland Dreier <rolandd@cisco.com>
Fri, 6 Mar 2009 23:15:01 +0000 (15:15 -0800)
commit9d5ab13325d0bb855cf856946c140a68ceb20e32
treec226cba67009db77052aceb1c7bf885da63fa4b8
parent0145f341a951b998d6d0fa38992a42d2a90b5bab
RDMA/nes: Handle MPA Reject message properly

While doing testing, there are failures as MPA Reject call is not
handled.  To handle MPA Reject call, following changes are done:

*Handle inbound/outbound MPA Reject response message.
When nes_reject() is called for pending MPA request reply,
send the MPA Reject message to its peer (active
side)cm_node. The peer cm_node (active side) will indicate
Reject message event for the pending Connect Request.

*Handle MPA Reject response message for loopback connections and listener.
When MPA Request is rejected, check if it is a loopback
connection and if it is then it will send Reject message event
to its peer loopback node. Also when destroying listener,
check if the cm_nodes for that listener are loopback or not.

*Add gracefull connection close with the MPA Reject response message.
Send gracefull close (FIN, FIN ACK..) to terminate the cm_nodes.

*Some code re-org while making the above changes.
Removed recv_list and recv_list_lock from the cm_node
structure as there can be only one receive close entry on the
timer. Also implemented handle_recv_entry() as receive close
entry is processed from both nes_rem_ref_cm_node() as well as
nes_cm_timer_tick().

Signed-off-by: Faisal Latif <faisal.latif@intel.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/hw/nes/nes_cm.c
drivers/infiniband/hw/nes/nes_cm.h