[ofw] [Patch] [IPoIB_NDIS6_CM] Fixing port rate reporting mechanism
Smith, Stan
stan.smith at intel.com
Wed Jan 13 11:11:57 PST 2010
Revision: 2658
Author: stansmith
Date: 10:40:25 AM, Wednesday, January 13, 2010
Message:
[IPOIB_NDIS6_CM] fix the improper reporting of IPoIB port rate and removes obsolete OID_GEN_LINK_SPEED
signed-off by: Alexander Naslednikov (xalex at mellanox.co.il)
----
Modified : /gen1/branches/WOF2-2/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.cpp
Modified : /gen1/branches/WOF2-2/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.h
Modified : /gen1/branches/WOF2-2/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp
Modified : /gen1/branches/WOF2-2/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp
Modified : /gen1/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.cpp
Modified : /gen1/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.h
Modified : /gen1/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp
Modified : /gen1/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp
Alex Naslednikov wrote:
> This patch fixes the improper reporting of IPoIB port rate and removes
> obsolete OID_GEN_LINK_SPEED
>
> signed-off by: Alexander Naslednikov (xalex at mellanox.co.il)
>
> Index:
> D:/windows/MLNX_WinOF-2_1/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.cpp
> ===================================================================
> ---
> D:/windows/MLNX_WinOF-2_1/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.cpp (revision
> 5450) +++
> D:/windows/MLNX_WinOF-2_1/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.cpp (revision
> 5451) @@ -52,6 +52,8 @@ #define TWELVE_X_IN_100BPS 300000000
>
>
> +
> +
> /* Declarations */
> static void
> adapter_construct(
> @@ -596,7 +598,7 @@
> link_state.MediaConnectState = MediaConnectStateDisconnected;
> link_state.MediaDuplexState = MediaDuplexStateFull;
> link_state.XmitLinkSpeed =
> - link_state.RcvLinkSpeed = IPOIB_MEDIA_MAX_SPEED;
> + link_state.RcvLinkSpeed = SET_PORT_RATE_BPS( p_adapter->port_rate );
> link_state.PauseFunctions = NdisPauseFunctionsSendAndReceive;
>
> IPOIB_INIT_NDIS_STATUS_INDICATION(&status_indication,
> @@ -742,6 +744,7 @@
>
> cl_obj_lock( &p_adapter->obj );
> old_state = p_adapter->state;
> + ASSERT( p_adapter->state != IB_PNP_PORT_REMOVE );
> p_adapter->state = IB_PNP_PORT_DOWN;
> cl_obj_unlock( &p_adapter->obj );
> status = IB_SUCCESS;
> @@ -771,7 +774,7 @@
> link_state.MediaConnectState = MediaConnectStateDisconnected;
> link_state.MediaDuplexState = MediaDuplexStateFull;
> link_state.XmitLinkSpeed =
> - link_state.RcvLinkSpeed = IPOIB_MEDIA_MAX_SPEED;
> + link_state.RcvLinkSpeed = SET_PORT_RATE_BPS(
> p_adapter->port_rate ); link_state.PauseFunctions =
> NdisPauseFunctionsSendAndReceive;
>
> IPOIB_INIT_NDIS_STATUS_INDICATION(&status_indication,
> @@ -848,7 +851,7 @@
> link_state.MediaConnectState = MediaConnectStateDisconnected;
> link_state.MediaDuplexState = MediaDuplexStateFull;
> link_state.XmitLinkSpeed =
> - link_state.RcvLinkSpeed = IPOIB_MEDIA_MAX_SPEED;
> + link_state.RcvLinkSpeed = SET_PORT_RATE_BPS( p_adapter->port_rate
> ); link_state.PauseFunctions = NdisPauseFunctionsSendAndReceive;
>
> IPOIB_INIT_NDIS_STATUS_INDICATION(&status_indication,
> @@ -1227,7 +1230,7 @@
> link_state.MediaConnectState = MediaConnectStateConnected;
> link_state.MediaDuplexState = MediaDuplexStateFull;
> link_state.XmitLinkSpeed =
> - link_state.RcvLinkSpeed = IPOIB_MEDIA_MAX_SPEED;
> + link_state.RcvLinkSpeed = SET_PORT_RATE_BPS(
> p_adapter->port_rate ); link_state.PauseFunctions =
> NdisPauseFunctionsSendAndReceive;
> IPOIB_INIT_NDIS_STATUS_INDICATION(&status_indication,
> p_adapter->h_adapter, @@ -1287,7 +1290,7 @@
> link_state.MediaConnectState = MediaConnectStateDisconnected;
> link_state.MediaDuplexState = MediaDuplexStateFull;
> link_state.XmitLinkSpeed =
> - link_state.RcvLinkSpeed = IPOIB_MEDIA_MAX_SPEED;
> + link_state.RcvLinkSpeed = SET_PORT_RATE_BPS( p_adapter->port_rate
> ); link_state.PauseFunctions = NdisPauseFunctionsSendAndReceive;
>
> IPOIB_INIT_NDIS_STATUS_INDICATION(&status_indication,
> Index:
> D:/windows/MLNX_WinOF-2_1/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp
> ===================================================================
> ---
> D:/windows/MLNX_WinOF-2_1/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp (revision
> 5450) +++
> D:/windows/MLNX_WinOF-2_1/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp (revision
> 5451) @@ -6033,7 +6033,8 @@ link_state.Header.Size =
> sizeof(NDIS_LINK_STATE); link_state.MediaConnectState =
> MediaConnectStateDisconnected; link_state.MediaDuplexState =
> MediaDuplexStateFull; - link_state.XmitLinkSpeed =
> link_state.RcvLinkSpeed = IPOIB_MEDIA_MAX_SPEED;
> + link_state.XmitLinkSpeed = + link_state.RcvLinkSpeed =
> SET_PORT_RATE_BPS( p_port->p_adapter->port_rate );
>
> IPOIB_INIT_NDIS_STATUS_INDICATION(&status_indication,
> p_port->p_adapter->h_adapter,
> Index:
> D:/windows/MLNX_WinOF-2_1/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.h
> ===================================================================
> ---
> D:/windows/MLNX_WinOF-2_1/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.h (revision
> 5450) +++
>
> D:/windows/MLNX_WinOF-2_1/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.h (revision
> 5451) @@ -495,7 +495,9 @@ (_pStatusIndication)->StatusBufferSize =
> _BufSize; \ }
>
> -// TODO: Set this according to device
> #define IPOIB_MEDIA_MAX_SPEED 40000000000
>
> +#define SET_PORT_RATE_BPS(x) (uint64_t(100) * x)
> +
> +
> #endif /* _IPOIB_ADAPTER_H_ */
> Index:
> D:/windows/MLNX_WinOF-2_1/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp
> ===================================================================
> ---
> D:/windows/MLNX_WinOF-2_1/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp (revision
> 5450) +++
> D:/windows/MLNX_WinOF-2_1/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp (revision
> 5451) @@ -64,154 +64,8 @@ PDRIVER_OBJECT g_p_drv_obj;
>
>
> -#if 0
> -static const NDIS_OID SUPPORTED_OIDS[] =
> -{
> - OID_GEN_SUPPORTED_LIST,
> - OID_GEN_HARDWARE_STATUS,
> - OID_GEN_MEDIA_SUPPORTED,
> - OID_GEN_MEDIA_IN_USE,
> - OID_GEN_MAXIMUM_LOOKAHEAD,
> - OID_GEN_MAXIMUM_FRAME_SIZE,
> - OID_GEN_LINK_SPEED,
> - OID_GEN_TRANSMIT_BUFFER_SPACE,
> - OID_GEN_RECEIVE_BUFFER_SPACE,
> - OID_GEN_TRANSMIT_BLOCK_SIZE,
> - OID_GEN_RECEIVE_BLOCK_SIZE,
> - OID_GEN_VENDOR_ID,
> - OID_GEN_VENDOR_DESCRIPTION,
> - OID_GEN_CURRENT_PACKET_FILTER,
> - OID_GEN_CURRENT_LOOKAHEAD,
> - OID_GEN_DRIVER_VERSION,
> - OID_GEN_MAXIMUM_TOTAL_SIZE,
> - OID_GEN_PROTOCOL_OPTIONS,
> - OID_GEN_MAC_OPTIONS,
> - OID_GEN_MEDIA_CONNECT_STATUS,
> - OID_GEN_MAXIMUM_SEND_PACKETS,
> - OID_GEN_NETWORK_LAYER_ADDRESSES,
> - OID_GEN_VENDOR_DRIVER_VERSION,
> - OID_GEN_PHYSICAL_MEDIUM,
> - OID_GEN_XMIT_OK,
> - OID_GEN_RCV_OK,
> - OID_GEN_XMIT_ERROR,
> - OID_GEN_RCV_ERROR,
> - OID_GEN_RCV_NO_BUFFER,
> - OID_GEN_DIRECTED_BYTES_XMIT,
> - OID_GEN_DIRECTED_FRAMES_XMIT,
> - OID_GEN_MULTICAST_BYTES_XMIT,
> - OID_GEN_MULTICAST_FRAMES_XMIT,
> - OID_GEN_BROADCAST_BYTES_XMIT,
> - OID_GEN_BROADCAST_FRAMES_XMIT,
> - OID_GEN_DIRECTED_BYTES_RCV,
> - OID_GEN_DIRECTED_FRAMES_RCV,
> - OID_GEN_MULTICAST_BYTES_RCV,
> - OID_GEN_MULTICAST_FRAMES_RCV,
> - OID_GEN_BROADCAST_BYTES_RCV,
> - OID_GEN_BROADCAST_FRAMES_RCV,
> - OID_802_3_PERMANENT_ADDRESS,
> - OID_802_3_CURRENT_ADDRESS,
> - OID_802_3_MULTICAST_LIST,
> - OID_802_3_MAXIMUM_LIST_SIZE,
> - OID_802_3_MAC_OPTIONS,
> - OID_802_3_RCV_ERROR_ALIGNMENT,
> - OID_802_3_XMIT_ONE_COLLISION,
> - OID_802_3_XMIT_MORE_COLLISIONS,
> - OID_TCP_TASK_OFFLOAD
> -};
> -#endif
>
> -NDIS_OID NICSupportedOidsTest[] =
> -{
> - OID_GEN_SUPPORTED_LIST,
> - OID_GEN_HARDWARE_STATUS,
> - OID_GEN_MEDIA_SUPPORTED,
> - OID_GEN_MEDIA_IN_USE,
> - OID_GEN_MAXIMUM_LOOKAHEAD,
> - OID_GEN_MAXIMUM_FRAME_SIZE,
> - OID_GEN_TRANSMIT_BUFFER_SPACE,
> - OID_GEN_RECEIVE_BUFFER_SPACE,
> - OID_GEN_TRANSMIT_BLOCK_SIZE,
> - OID_GEN_RECEIVE_BLOCK_SIZE,
> - OID_GEN_VENDOR_ID,
> - OID_GEN_VENDOR_DESCRIPTION,
> - OID_GEN_VENDOR_DRIVER_VERSION,
> - OID_GEN_CURRENT_PACKET_FILTER,
> - OID_GEN_CURRENT_LOOKAHEAD,
> - OID_GEN_DRIVER_VERSION,
> - OID_GEN_MAXIMUM_TOTAL_SIZE,
> - OID_GEN_MAC_OPTIONS,
> - OID_GEN_MAXIMUM_SEND_PACKETS,
> - OID_GEN_XMIT_OK,
> - OID_GEN_RCV_OK,
> - OID_GEN_XMIT_ERROR,
> - OID_GEN_RCV_ERROR,
> - OID_GEN_RCV_NO_BUFFER,
> - OID_GEN_RCV_CRC_ERROR,
> - OID_GEN_TRANSMIT_QUEUE_LENGTH,
> - OID_802_3_PERMANENT_ADDRESS,
> - OID_802_3_CURRENT_ADDRESS,
> - OID_802_3_MULTICAST_LIST,
> - OID_802_3_MAXIMUM_LIST_SIZE,
> - OID_802_3_RCV_ERROR_ALIGNMENT,
> - OID_802_3_XMIT_ONE_COLLISION,
> - OID_802_3_XMIT_MORE_COLLISIONS,
> - OID_802_3_XMIT_DEFERRED,
> - OID_802_3_XMIT_MAX_COLLISIONS,
> - OID_802_3_RCV_OVERRUN,
> - OID_802_3_XMIT_UNDERRUN,
> - OID_802_3_XMIT_HEARTBEAT_FAILURE,
> - OID_802_3_XMIT_TIMES_CRS_LOST,
> - OID_802_3_XMIT_LATE_COLLISIONS,
>
> -#if !BUILD_W2K
> - OID_GEN_PHYSICAL_MEDIUM,
> -#endif
> -
> - OID_TCP_TASK_OFFLOAD,
> -
> -/* powermanagement */
> -
> - OID_PNP_CAPABILITIES,
> - OID_PNP_SET_POWER,
> - OID_PNP_QUERY_POWER,
> - OID_PNP_ADD_WAKE_UP_PATTERN,
> - OID_PNP_REMOVE_WAKE_UP_PATTERN,
> - OID_PNP_ENABLE_WAKE_UP,
> -
> -
> -/* custom oid WMI support */
> -// OID_CUSTOM_PERF_COUNTERS,
> - // OID_CUSTOM_STRING,
> -
> - OID_GEN_RECEIVE_SCALE_CAPABILITIES,
> - OID_GEN_RECEIVE_SCALE_PARAMETERS,
> -
> -//
> -// new and required for NDIS 6 miniports
> -//
> - OID_GEN_LINK_PARAMETERS,
> - OID_GEN_INTERRUPT_MODERATION,
> - OID_GEN_STATISTICS,
> -
> -/* Offload */
> - OID_TCP_OFFLOAD_CURRENT_CONFIG,
> - OID_TCP_OFFLOAD_PARAMETERS,
> - OID_TCP_OFFLOAD_HARDWARE_CAPABILITIES,
> - OID_OFFLOAD_ENCAPSULATION,
> -
> -/* Header - Data seperation */
> - // OID_GEN_HD_SPLIT_PARAMETERS,
> - // OID_GEN_HD_SPLIT_CURRENT_CONFIG,
> -
> -/* VLAN */
> - // OID_ADD_VALN_ID,
> - // OID_DELETE_VLAN_ID,
> -
> -/* Set MAC */
> - // OID_SET_MAC_ADDRESS
> -
> -};
> -
> static const NDIS_OID SUPPORTED_OIDS[] =
> {
> OID_GEN_SUPPORTED_LIST,
> @@ -1167,11 +1021,11 @@
> gat.Header.Revision =
> NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES_REVISION_1;
> gat.Header.Size = sizeof(NDIS_MINIPORT_ADAPTER_GENERAL_ATTRIBUTES);
>
> - gat.MediaType = NdisMedium802_3;
> - gat.MaxXmitLinkSpeed = IPOIB_MEDIA_MAX_SPEED;
> - gat.MaxRcvLinkSpeed = IPOIB_MEDIA_MAX_SPEED;
> - gat.XmitLinkSpeed = IPOIB_MEDIA_MAX_SPEED; //TODO NDIS60
> NDIS_LINK_SPEED_UNKNOWN
> - gat.RcvLinkSpeed = IPOIB_MEDIA_MAX_SPEED; // TODO NDIS60
> NDIS_LINK_SPEED_UNKNOWN ??? + gat.MediaType = NdisMedium802_3;
> + gat.MaxXmitLinkSpeed = IPOIB_MEDIA_MAX_SPEED;
> + gat.MaxRcvLinkSpeed = IPOIB_MEDIA_MAX_SPEED;
> + gat.XmitLinkSpeed = NDIS_LINK_SPEED_UNKNOWN;
> + gat.RcvLinkSpeed = NDIS_LINK_SPEED_UNKNOWN;
>
> gat.MediaConnectState = MediaConnectStateConnected; //TODO NDIS60
> Check the current state gat.MediaDuplexState = MediaDuplexStateFull;
> @@ -2347,44 +2201,6 @@
> }
> break;
>
> - case OID_GEN_LINK_SPEED:
> - IPOIB_PRINT( TRACE_LEVEL_INFORMATION,IPOIB_DBG_OID,
> - ("Port %d received query for OID_GEN_LINK_SPEED\n", port_num) );
> - if (oid_info.buf_len < buf_len)
> - {
> - break;
> - }
> -
> - cl_obj_lock( &p_adapter->obj );
> - switch( p_adapter->state )
> - {
> - case IB_PNP_PORT_ADD:
> - /* Mark the adapter as pending an OID */
> - p_adapter->pending_query = TRUE;
> -
> - /* Save the request parameters. */
> - p_adapter->query_oid = oid_info;
> - p_adapter->query_oid.p_pending_oid = pNdisRequest;
> -
> - IPOIB_PRINT( TRACE_LEVEL_INFORMATION,IPOIB_DBG_OID,
> - ("Port %d returning NDIS_STATUS_PENDING\n", port_num) );
> - status = NDIS_STATUS_PENDING;
> - break;
> -
> - case IB_PNP_PORT_REMOVE:
> - IPOIB_PRINT( TRACE_LEVEL_INFORMATION,IPOIB_DBG_OID,
> - ("Port %d returning NDIS_STATUS_NOT_ACCEPTED\n", port_num) );
> - status = NDIS_STATUS_NOT_ACCEPTED;
> - break;
> -
> - default:
> - CL_ASSERT( p_adapter->p_port );
> - info = p_adapter->port_rate;
> - break;
> - }
> - cl_obj_unlock( &p_adapter->obj );
> - break;
> -
> case OID_GEN_TRANSMIT_BUFFER_SPACE:
> IPOIB_PRINT( TRACE_LEVEL_INFORMATION,IPOIB_DBG_OID,
> ("Port %d received query for OID_GEN_TRANSMIT_BUFFER_SPACE\n",
> port_num) );
More information about the ofw
mailing list