[ofw] [Patch] [IPoIB_NDIS6_CM] Calling receive statistics twice

Smith, Stan stan.smith at intel.com
Wed Jan 13 09:43:49 PST 2010


Revision: 2657
Author: stansmith
Date: 9:39:56 AM, Wednesday, January 13, 2010
Message:
[IPOIB/IPOIB_NDIS6_CM] fix the problem when IPoIB increments the receive statistics twice.

Signed-off by: Tzachi Dar (tzachid at mellanox.co.il)
Signed-off by: Alex Naslednikov (xalex at mellanox.co.il)
----
Modified : /gen1/branches/WOF2-2/ulp/ipoib/kernel/ipoib_port.c
Modified : /gen1/branches/WOF2-2/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp
Modified : /gen1/trunk/ulp/ipoib/kernel/ipoib_port.c
Modified : /gen1/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp


Alex Naslednikov wrote:
> This patch fixes the same problem
> when reporting the statistic twice
> for IPoIB based on NDIS 5.3
>
> Index: ipoib_port.c
> ===================================================================
> --- ipoib_port.c      (revision 5436)
> +++ ipoib_port.c      (working copy)
> @@ -2136,7 +2136,6 @@
>               }
>               else
>               {
> -                     ip_stat_sel_t               ip_stat;
>                       p_desc->len =
>                               len + sizeof(eth_hdr_t) -
> sizeof(ipoib_hdr_t);
>                       if( p_dst->h_mcast)
> @@ -2147,22 +2146,18 @@
>
> p_dst->dgid.multicast.raw_group_id[13] == 0xFF )
>                               {
>                                       p_desc->type = PKT_TYPE_BCAST;
> -                                     ip_stat = IP_STAT_BCAST_BYTES;
>                               }
>                               else
>                               {
>                                       p_desc->type = PKT_TYPE_MCAST;
> -                                     ip_stat = IP_STAT_MCAST_BYTES;
>                               }
>                       }
>                       else
>                       {
>                               p_desc->type = PKT_TYPE_UCAST;
> -                             ip_stat = IP_STAT_UCAST_BYTES;
>
>                       }
>                       cl_qlist_insert_tail( p_done_list,
> &p_desc->item.list_item );
> -                     ipoib_inc_recv_stat( p_port->p_adapter,ip_stat ,
> p_desc->len );
>               }
>       }
>
>
> -----Original Message-----
> From: Alex Naslednikov
> Sent: Monday, January 04, 2010 1:02 PM
> To: ofw at lists.openfabrics.org
> Cc: Tzachi Dar
> Subject: [ofw] [Patch] [IPoIB_NDIS6_CM] Calling receive statistics
> twice
>
> This patch fixes the problem when IPoIB increments the receive
> statistics twice Signed-off by: Tzachi Dar (tzachid at mellanox.co.il)
> Index:
> D:/windows/MLNX_WinOF_trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp
> ===================================================================
> ---
> D:/windows/MLNX_WinOF_trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp
> (revision 5415) +++
> D:/windows/MLNX_WinOF_trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp
>
> +++ (revision 5416)
> @@ -2958,7 +2958,6 @@
>  {
>   NDIS_STATUS       status;
>   uint32_t       pkt_filter;
> - ip_stat_sel_t      type;
>   //NDIS60
>   NDIS_TCP_IP_CHECKSUM_NET_BUFFER_LIST_INFO  chksum;
>   //NDIS_TCP_IP_CHECKSUM_PACKET_INFO chksum; @@ -2980,14 +2979,12 @@
>     pkt_filter & NDIS_PACKET_TYPE_DIRECTED )
>    {
>     /* OK to report. */
> -   type = IP_STAT_UCAST_BYTES;
>     status = NDIS_STATUS_SUCCESS;
>     IPOIB_PRINT( TRACE_LEVEL_VERBOSE, IPOIB_DBG_ERROR,
>     ("Received UCAST PKT.\n"));
>    }
>    else
>    {
> -   type = IP_STAT_DROPPED;
>     status = NDIS_STATUS_FAILURE;
>     IPOIB_PRINT( TRACE_LEVEL_ERROR, IPOIB_DBG_ERROR,
>      ("Received UCAST PKT with ERROR !!!!\n")); @@ -2998,14 +2995,12
>     @@ pkt_filter & NDIS_PACKET_TYPE_BROADCAST )
>    {
>     /* OK to report. */
> -   type = IP_STAT_BCAST_BYTES;
>     status = NDIS_STATUS_SUCCESS;
>     IPOIB_PRINT( TRACE_LEVEL_VERBOSE, IPOIB_DBG_RECV,
>     ("Received BCAST PKT.\n"));
>    }
>    else
>    {
> -   type = IP_STAT_DROPPED;
>     status = NDIS_STATUS_FAILURE;
>     IPOIB_PRINT( TRACE_LEVEL_ERROR, IPOIB_DBG_ERROR,
>     ("Received BCAST PKT with ERROR !!!!\n")); @@ -3017,14 +3012,12 @@
>     pkt_filter & NDIS_PACKET_TYPE_MULTICAST )
>    {
>     /* OK to report. */
> -   type = IP_STAT_MCAST_BYTES;
>     status = NDIS_STATUS_SUCCESS;
>     IPOIB_PRINT( TRACE_LEVEL_VERBOSE, IPOIB_DBG_RECV,
>     ("Received UCAST PKT.\n"));
>    }
>    else
>    {
> -   type = IP_STAT_DROPPED;
>     status = NDIS_STATUS_FAILURE;
>     IPOIB_PRINT( TRACE_LEVEL_ERROR, IPOIB_DBG_ERROR,
>     ("Received MCAST PKT with ERROR !!!!\n")); @@ -3034,7 +3027,6 @@
>
>   if( status != NDIS_STATUS_SUCCESS )
>   {
> -  ipoib_inc_recv_stat( p_port->p_adapter, type, 0, 0 );
>    /* Return the receive descriptor to the pool. */
>    __buf_mgr_put_recv( p_port, p_desc, NULL );
>    IPOIB_PRINT_EXIT( TRACE_LEVEL_ERROR, IPOIB_DBG_ERROR, @@ -3088,7
> +3080,6 @@
>    (void*)(uintn_t)chksum.Value;
>    break;
>   }
> - ipoib_inc_recv_stat( p_port->p_adapter, type, p_desc->len, 1 );
>
>   IPOIB_EXIT( IPOIB_DBG_RECV );
>   return IB_SUCCESS;
>
> _______________________________________________
> ofw mailing list
> ofw at lists.openfabrics.org
> http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw




More information about the ofw mailing list