[ofw] ib_portinfo_record_t padding history?

Hal Rosenstock hal.rosenstock at gmail.com
Tue May 18 19:20:57 PDT 2010


On Tue, May 18, 2010 at 3:08 PM, Sean Hefty <sean.hefty at intel.com> wrote:
>>Thoughts?
>
> The padding looks wrong based on the IB spec.  PortInfoRecord should have
> PortInfo as its last field.  The size of PortInfoRecord should be 58 bytes.

I don't think that size for PortInfoRecord is correct as PortInfo is
60 bytes with MaxCreditHint and LinkRtLatency.

-- Hal

>
>>#include <complib/cl_packon.h>
>>typedef struct _ib_portinfo_record
>>{
>>        ib_net16_t              lid;
>>        uint8_t         port_num;
>>        uint8_t         resv;
>>        ib_port_info_t  port_info;
>>        uint8_t         pad[6];         <-- ??
>>
>>}       PACK_SUFFIX ib_portinfo_record_t;
>>#include <complib/cl_packoff.h>
>
> My guess (and this is only a guess) is that the padding was added to make
> PortInfoRecord align on a 64-bit boundary, probably in case it were sent as part
> of an RMPP mad.  The PortInfo structure contains 64-bit values at the top of the
> structure.
>
> You should be safe removing the padding.  It may cause Itanium to complain about
> unaligned fields, but I would expect it to work.
>
> - Sean
>
> _______________________________________________
> ofw mailing list
> ofw at lists.openfabrics.org
> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
>



More information about the ofw mailing list