]> err.no Git - linux-2.6/commit
IB/mad: Add support for dual-sided RMPP transfers.
authorSean Hefty <sean.hefty@intel.com>
Mon, 28 Aug 2006 22:10:32 +0000 (15:10 -0700)
committerRoland Dreier <rolandd@cisco.com>
Fri, 22 Sep 2006 22:22:44 +0000 (15:22 -0700)
commit75ab13443e4575c00788ba9861105745b9dda05c
treef1244f0a1e819e2bf31ddef2e9cac5a349da2146
parent76842405fca5f8b8e08d91558ecd3b922265034a
IB/mad: Add support for dual-sided RMPP transfers.

The implementation assumes that any RMPP request that requires a
response uses DS RMPP.  Based on the RMPP start-up scenarios defined
by the spec, this should be a valid assumption.  That is, there is no
start-up scenario defined where an RMPP request is followed by a
non-RMPP response.  By having this assumption we avoid any API
changes.

In order for a node that supports DS RMPP to communicate with one that
does not, RMPP responses assume a new window size of 1 if a DS ACK has
not been received.  (By DS ACK, I'm referring to the turn-around ACK
after the final ACK of the request.)  This is a slight spec deviation,
but is necessary to allow communication with nodes that do not
generate the DS ACK.  It also handles the case when a response is sent
after the request state has been discarded.

Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
drivers/infiniband/core/mad_rmpp.c