]> git.openfabrics.org - ~shefty/rdma-win.git/commitdiff
[ipoib]cm
authoraestrin <aestrin@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Fri, 10 Oct 2008 16:43:24 +0000 (16:43 +0000)
committeraestrin <aestrin@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Fri, 10 Oct 2008 16:43:24 +0000 (16:43 +0000)
- fix for cm rej callback - have to remove failed endpt from all lists before destroy obj to prevent  race with sending data to that endpt.
- temp!!! wrokaround until understand why large cm mtu size doesn't work for NDIS.
- fix debug printout for ARP msg.
- remove unnecessary macro to ease re-merging code to the trunk.

git-svn-id: svn://openib.tc.cornell.edu/gen1@1642 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

branches/ipoib_cm/kernel/ipoib_cm.c
branches/ipoib_cm/kernel/ipoib_driver.c
branches/ipoib_cm/kernel/ipoib_port.c
branches/ipoib_cm/kernel/ipoib_xfr_mgr.h

index 2706df77914d20a8e203cff484d2b6fef5105de9..3922b6e3814864d578cda991a7d51998deb301a4 100644 (file)
@@ -713,7 +713,7 @@ __conn_rej_cb(
        InterlockedCompareExchange( (volatile LONG *)&p_endpt->conn.state, \r
                                                        IPOIB_CM_REJ_RECVD, IPOIB_CM_DISCONNECTED );\r
 \r
-       endpt_cm_destroy_conn( p_port, p_endpt );\r
+       ipoib_port_remove_endpt( p_port, p_endpt->mac );\r
 \r
        ipoib_port_resume( p_port );\r
 \r
index e83a1e21b6b58eaaad5ceb543597ba39c6826f76..0052b029523ea202c9dbd91686e0cf080624e98c 100644 (file)
@@ -988,11 +988,8 @@ ipoib_query_info(
        case OID_GEN_MAXIMUM_FRAME_SIZE:\r
                IPOIB_PRINT( TRACE_LEVEL_INFORMATION,IPOIB_DBG_OID,\r
                        ("Port %d received query for OID_GEN_MAXIMUM_FRAME_SIZE\n", port_num) );\r
-               if( p_adapter->params.cm_enabled )\r
-                       info = p_adapter->params.cm_payload_mtu;\r
-               else\r
                        info = p_adapter->params.payload_mtu;\r
-               break;\r
+                       break;\r
 \r
        case OID_GEN_LINK_SPEED:\r
                IPOIB_PRINT( TRACE_LEVEL_VERBOSE,IPOIB_DBG_OID,\r
@@ -1057,7 +1054,7 @@ ipoib_query_info(
                        "OID_GEN_RECEIVE_BLOCK_SIZE or "\r
                        "OID_GEN_MAXIMUM_TOTAL_SIZE\n", port_num) );\r
                if( p_adapter->params.cm_enabled )\r
-                       info = p_adapter->params.cm_payload_mtu + sizeof(eth_hdr_t);\r
+                       info = p_adapter->params.cm_xfer_block_size;\r
                else\r
                        info = p_adapter->params.xfer_block_size;\r
                break;\r
index 4621cfb73aae4940e70d1e2ee192a03aaf44a1a6..5b405aa367099ac34b90822c48516753237df766 100644 (file)
@@ -2669,15 +2669,18 @@ __recv_arp(
        }\r
 \r
 #if DBG\r
-       \r
-       IPOIB_PRINT_EXIT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_INIT,\r
-               ("ARP REQUEST from ENDPT[%p] state %d CM cap: %d QPN: %#x MAC: %02x:%02x:%02x:%02x:%02x:%02x\n",\r
+       if( p_port->p_adapter->params.cm_enabled )\r
+       {\r
+               IPOIB_PRINT_EXIT( TRACE_LEVEL_INFORMATION, IPOIB_DBG_INIT,\r
+                       (" ARP %s from ENDPT[%p] state %d CM cap: %d QPN: %#x MAC: %02x:%02x:%02x:%02x:%02x:%02x\n",\r
+                       ((p_ib_arp->op == ARP_OP_REQ )? "REQUEST" : "REPLY"),\r
                        *pp_src, endpt_cm_get_state( *pp_src ), \r
                        ((cm_capable == IPOIB_CM_FLAG_RC)? 1: 0),\r
                        cl_ntoh32( ipoib_addr_get_qpn( &p_ib_arp->src_hw ) ),\r
                        (*pp_src)->mac.addr[0], (*pp_src)->mac.addr[1],\r
                        (*pp_src)->mac.addr[2], (*pp_src)->mac.addr[3],\r
                        (*pp_src)->mac.addr[4], (*pp_src)->mac.addr[5] ));\r
+       }\r
 #endif\r
 \r
        /* Now swizzle the data. */\r
@@ -4225,7 +4228,7 @@ __build_send_desc(
        p_desc->wr.ds_array = p_desc->local_ds;\r
 \r
        /* check if we can send data through RC QP */\r
-       if( ETH_IS_UNICAST( p_eth_hdr->dst.addr ) &&  \r
+       if( !( p_eth_hdr->dst.addr[0] & (uint8_t)0x01 ) &&  \r
                endpt_cm_get_state( p_desc->p_endpt) == IPOIB_CM_CONNECTED )\r
        {\r
                p_desc->send_qp = p_desc->p_endpt->conn.h_work_qp;\r
index e47758147eb893f2fb6e277950841c97872e2f39..17c618813b13636142dd211e6d908e23e4343363 100644 (file)
@@ -81,10 +81,6 @@ typedef struct _ipoib_hw_addr
 *********/\r
 #include <complib/cl_packoff.h>\r
 \r
-/* TODO: move this macro to  inc\kernel\ip_packet.h*/\r
-#define ETH_IS_UNICAST(addr) \\r
-               !(BOOLEAN)(((PUCHAR)(addr))[0] & ((UCHAR)0x01))\r
-\r
 \r
 #ifdef __cplusplus\r
 extern "C"\r