From e36569ca4a14b9cc5e53f35344a332c92017c59a Mon Sep 17 00:00:00 2001 From: Stan Smith Date: Wed, 13 Jan 2010 18:40:25 +0000 Subject: [PATCH] [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) git-svn-id: svn://openib.tc.cornell.edu/gen1@2658 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86 --- .../ipoib_NDIS6_CM/kernel/ipoib_adapter.cpp | 11 +- .../ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.h | 4 +- .../ipoib_NDIS6_CM/kernel/ipoib_driver.cpp | 194 +----------------- .../ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp | 3 +- .../ipoib_NDIS6_CM/kernel/ipoib_adapter.cpp | 11 +- .../ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.h | 4 +- .../ipoib_NDIS6_CM/kernel/ipoib_driver.cpp | 194 +----------------- .../ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp | 3 +- 8 files changed, 32 insertions(+), 392 deletions(-) diff --git a/branches/WOF2-2/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.cpp b/branches/WOF2-2/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.cpp index 07599738..c18dfee7 100644 --- a/branches/WOF2-2/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.cpp +++ b/branches/WOF2-2/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.cpp @@ -595,7 +595,7 @@ static inline void __ipoib_get_down( 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, @@ -741,6 +741,7 @@ __ipoib_pnp_cb( 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; @@ -770,7 +771,7 @@ __ipoib_pnp_cb( 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, @@ -847,7 +848,7 @@ __ipoib_pnp_cb( 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, @@ -1226,7 +1227,7 @@ ipoib_set_active( 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, @@ -1286,7 +1287,7 @@ ipoib_set_inactive( 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, diff --git a/branches/WOF2-2/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.h b/branches/WOF2-2/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.h index c739ea15..c0718e9a 100644 --- a/branches/WOF2-2/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.h +++ b/branches/WOF2-2/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.h @@ -495,7 +495,9 @@ ipoib_dereg_addrs( (_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_ */ diff --git a/branches/WOF2-2/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp b/branches/WOF2-2/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp index 7ec6a5d6..fff1d6cc 100644 --- a/branches/WOF2-2/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp +++ b/branches/WOF2-2/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp @@ -64,153 +64,7 @@ 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[] = { @@ -1167,11 +1021,11 @@ SetGenericAttributes( 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; @@ -2344,44 +2198,6 @@ ipoib_query_info( } 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) ); diff --git a/branches/WOF2-2/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp b/branches/WOF2-2/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp index 2bff8450..df8d9bf2 100644 --- a/branches/WOF2-2/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp +++ b/branches/WOF2-2/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp @@ -6006,7 +6006,8 @@ __endpt_mgr_reset_all( 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 = 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, diff --git a/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.cpp b/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.cpp index 07599738..c18dfee7 100644 --- a/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.cpp +++ b/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.cpp @@ -595,7 +595,7 @@ static inline void __ipoib_get_down( 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, @@ -741,6 +741,7 @@ __ipoib_pnp_cb( 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; @@ -770,7 +771,7 @@ __ipoib_pnp_cb( 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, @@ -847,7 +848,7 @@ __ipoib_pnp_cb( 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, @@ -1226,7 +1227,7 @@ ipoib_set_active( 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, @@ -1286,7 +1287,7 @@ ipoib_set_inactive( 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, diff --git a/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.h b/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.h index c739ea15..c0718e9a 100644 --- a/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.h +++ b/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_adapter.h @@ -495,7 +495,9 @@ ipoib_dereg_addrs( (_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_ */ diff --git a/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp b/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp index 7ec6a5d6..fff1d6cc 100644 --- a/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp +++ b/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_driver.cpp @@ -64,153 +64,7 @@ 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[] = { @@ -1167,11 +1021,11 @@ SetGenericAttributes( 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; @@ -2344,44 +2198,6 @@ ipoib_query_info( } 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) ); diff --git a/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp b/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp index 2bff8450..df8d9bf2 100644 --- a/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp +++ b/trunk/ulp/ipoib_NDIS6_CM/kernel/ipoib_port.cpp @@ -6006,7 +6006,8 @@ __endpt_mgr_reset_all( 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 = 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, -- 2.41.0