[openib-general] [PATCH] [MAD] changes to ib_create_send_mad

Hal Rosenstock halr at voltaire.com
Thu May 5 06:49:20 PDT 2005


Hi Sean,

On Wed, 2005-05-04 at 20:33, Hal Rosenstock wrote:
> On Wed, 2005-05-04 at 20:05, Sean Hefty wrote: 
> > If the class defined data would not divide evenly into
> > + * RMPP segments, then space must be allocated at the end of the referenced
> > + * buffer for any required padding. 
> 
> This could be the source of the problem with PayloadLength. I need to
> see if the buffer meets the criteria and if not, how to make it do this.
> I will try this in the AM as well as your two related MAD patches.

On PayloadLength, single segment sends are fine. It is multisegment
sends which seem wrong to me.

Case 1: ib_create_send_mad with hdr_len 0x38 data_len 0x278
        paylen_newwin stored in header is 0x28C which seems correct
        this creates 4 segments
        1-3 segments paylen_newwin is 0x6E0, 4th segment is 0x34

Case 2: ib_create_send_mad with hdr_len 0x38 data_len 0x620
        paylen_newwin stored in header is 0x634 which seems correct
        this creates 8 segments
        1-7 segments paylen_newwin is 0x6E0, 4th segment is 0xBC

Last paylen_newwin in both cases appears to me to be correct but the 
paylen_newwin in the 1-n segments (0x6E0) seems wrong to me.

Also, I did more investigation of send failures. In terms of send
failures upon not receiving ACKs, SA is different from vendor class 2. I
think the problem starts (and hopefully ends) with response_mad(). In
the case of SA GetTableResp being sent, the non data packets (ACK, etc.)
come back as SA GetTable so this is not currently considered a response
but I think it needs to be. I'm not sure if there are other issues
behind this as I didn't chase it further. Let me know if you want me to
do this.

-- Hal




More information about the general mailing list