• Sean Hefty's avatar
    IB/mad: Add support for dual-sided RMPP transfers. · 75ab1344
    Sean Hefty authored
    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: default avatarSean Hefty <sean.hefty@intel.com>
    Signed-off-by: default avatarRoland Dreier <rolandd@cisco.com>
    75ab1344
mad_rmpp.c 26.7 KB