[Openib-windows] RE: [PATCH] IPOIB counters

Fab Tillier ftillier at silverstorm.com
Wed Nov 30 11:40:32 PST 2005


Hi Yossi,

> Sent: Tuesday, November 15, 2005 6:24 AM
> 
> While trying to fix the IPoIB counters I found the following bugs:
> 
> 1. send length in the WC is not valid ( Mellanox PRM state that byte_cnt
> field is valid only in rcv operation (or send of RDMA READ))
>     so the field length in the WC is not valid in send operation .
>     To fix the statistic I Query the NDIS packet for total length of the
> packet

I changed this to use NdisQueryPacketLength, which should be more efficient than
NdisQueryPacket with a bunch of NULL parameters.

> 2. On the recv flow all the packets were counting as multicast or
> broadcast packets
> the problem was in the if statement, the code use p_endpt but should use
> "p_endpt->h_mcast"

Good catch, thanks.

> 3. On the recv flow the IPoIB report on length + 40bytes (I saw it on
> simple ping test , instead of size of 74 it report 114)
> These bytes are from the GRH data in the begging of the buffer.
> I think that its more clean to remove the GRH bytes in the start of the
> function
> And in that way you don't have to carry them to all the if statements
> and you report the right length to NDIS.
> 
> I check the patch over ping and it works

I applied this with minor changes to the syntax.  Note that I had to manually
edit the patch so that it would apply - the source and destination line numbers
were totally off.  I didn't apply ipoib_counters2.patch since it's unnecessary -
cl_zalloc returns zeroed memory.
 
Committed in revision 193.

Thanks!

- Fab





More information about the ofw mailing list