[openib-general] RMPP

Hal Rosenstock halr at voltaire.com
Wed May 4 09:32:09 PDT 2005


Hi Sean,

In addition to passing the hdr_len and data_len to ib_create_send_mad: 
                rmpp_mad->rmpp_hdr.paylen_newwin = cpu_to_be32(hdr_len -
                        offsetof(struct ib_rmpp_mad, data) + data_len);
That's not the "real" payload length that would go into the packet; just
one segment's worth of class header. Correct ?

If the above is correct, I'm not sure the actual payload lengths in the
DATA packets are correct. I also see the padding on the last segment of
a multipacket send not cleared (I integrated the part of your patch
relating to the pad calculation).

In one test case, I see the first RMPP DATA segment sent and there is no
response (ACK) from the receiver (this was due to a (receiver) test
program issue). The transmitter retry depends on retries in the send_wr
ud structure. Does it need to known/Is there a way to know that this
failed (no ACK, etc.) when retries are exhausted or is this reliant on
the receiver rerequesting or is the entire RMPP transaction treated like
a UD send (e.g. unreliable) ?

Here's a summary of changes so far:
1. ib_create_send_mad either needs an additional parameter (RMPP active
in current send packet) or the paylen_newwin needs to be set by the user
outside of this routine.
2. Some minor ib_mad.h commentary changes for more clarity on the
assumptions of the RMPP API.

-- Hal




More information about the general mailing list