]> git.openfabrics.org - ~shefty/rdma-win.git/commitdiff
[DAPL] fix typos & whitespace alignment. Support ib CM descriptor as a list of descri...
authorStan Smith <stan.smith@intel.com>
Wed, 3 Mar 2010 23:43:04 +0000 (23:43 +0000)
committerStan Smith <stan.smith@intel.com>
Wed, 3 Mar 2010 23:43:04 +0000 (23:43 +0000)
git-svn-id: svn://openib.tc.cornell.edu/gen1@2718 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86

branches/WOF2-2/ulp/dapl2/dapl/common/dapl_cr_util.c
branches/WOF2-2/ulp/dapl2/dapl/ibal/dapl_ibal_cm.c
branches/WOF2-2/ulp/dapl2/dapl/ibal/dapl_ibal_qp.c

index 39b61addafa636b8d419767b533e056a5855e43c..5970fa0fe596ac52049dc6b78bd39e65a07a0673 100644 (file)
@@ -81,7 +81,7 @@ DAPL_CR *dapls_cr_alloc(DAPL_IA * ia_ptr)
 /*
  * dapls_cr_free
  *
- * Free the passed in EP structure.
+ * Free the passed in CR structure.
  *
  * Input:
  *     entry point pointer
index aa962cae7243b42e42f4531a4b57821a3cabb428..a35b1188cebacf3d2528e2fe6c017865ff6bbb1c 100644 (file)
@@ -94,7 +94,7 @@ void dapli_print_private_data( char *prefix, const uint8_t *pd, int len )
     if ( !pd || len <= 0 )\r
        return;\r
 \r
-    dapl_log ( DAPL_DBG_TYPE_CM, "--> %s: private_data:\n    ",prefix);\r
+    dapl_log ( DAPL_DBG_TYPE_CM, "--> %s: private_data(len %d)\n    ",prefix,len);\r
 \r
     if (len > IB_MAX_REP_PDATA_SIZE)\r
     {\r
@@ -107,7 +107,7 @@ void dapli_print_private_data( char *prefix, const uint8_t *pd, int len )
     for ( i = 0 ; i < len; i++ )\r
     {\r
        dapl_log ( DAPL_DBG_TYPE_CM, "%2x ", pd[i]);\r
-       if ( ((i+1) % 20) == 0 ) \r
+       if ( ((i+1) % 5) == 0 ) \r
            dapl_log ( DAPL_DBG_TYPE_CM, "\n    ");\r
     }\r
    dapl_log ( DAPL_DBG_TYPE_CM, "\n");\r
@@ -126,8 +126,10 @@ dp_ib_cm_handle_t ibal_cm_alloc(void)
        (void)dapl_os_memzero(cm_ptr, sizeof(*cm_ptr));\r
        cm_ptr->ref_count = 1;\r
 \r
-       if (dapl_os_lock_init(&cm_ptr->lock))\r
+       if (dapl_os_lock_init(&cm_ptr->lock)) {\r
+               dapl_os_free(cm_ptr, sizeof(*cm_ptr));\r
                return NULL;\r
+       }\r
 \r
        dapl_llist_init_entry((DAPL_LLIST_ENTRY *)&cm_ptr->list_entry);\r
        \r
@@ -142,7 +144,6 @@ static void ibal_cm_dealloc(dp_ib_cm_handle_t cm_ptr)
        dapl_os_free(cm_ptr, sizeof(*cm_ptr));\r
 }\r
 \r
-/* dapl_ep_link_cm() */\r
 void dapls_cm_acquire(dp_ib_cm_handle_t cm_ptr)\r
 {\r
        dapl_os_lock(&cm_ptr->lock);\r
@@ -150,7 +151,6 @@ void dapls_cm_acquire(dp_ib_cm_handle_t cm_ptr)
        dapl_os_unlock(&cm_ptr->lock);\r
 }\r
 \r
-/* dapl_ep_unlink_cm() */\r
 void dapls_cm_release(dp_ib_cm_handle_t cm_ptr)\r
 {\r
        dapl_os_lock(&cm_ptr->lock);\r
@@ -404,7 +404,7 @@ dapli_ib_cm_rep_cb (
     dapl_os_assert(cm_ptr->ib_cm.h_qp == p_cm_rep_rec->h_cm_rep.h_qp);\r
 \r
     dapl_dbg_log (DAPL_DBG_TYPE_CM, \r
-                  "--> DiCRpcb: EP %lx local_max_rdma_read_in %d\n", \r
+                  "--> DiCRpcb: EP %lx local_max_rdma_read_in %d\n", \r
                   ep_ptr, p_cm_rep_rec->resp_res);\r
 \r
     p_ca   = (dapl_ibal_ca_t *) \r
@@ -654,20 +654,6 @@ dapli_ib_cm_req_cb ( IN  ib_cm_req_rec_t  *p_cm_req_rec )
 \r
 #endif /* NO_NAME_SERVICE */\r
 \r
-#if defined(DAPL_DBG)\r
-    {\r
-        char ipa[20];\r
-  \r
-        //rval = ((struct sockaddr_in *) (&dest_ia_addr))->sin_addr.s_addr;\r
-\r
-        dapl_dbg_log (DAPL_DBG_TYPE_CM|DAPL_DBG_TYPE_CALLBACK, \r
-                      "%s: query SA for RemoteAddr: %s\n",\r
-                      __FUNCTION__,\r
-                      dapli_get_ip_addr_str( (DAT_SOCK_ADDR6*)\r
-                                                         &dest_ia_addr, ipa) );\r
-    }\r
-#endif\r
-\r
     /* preserve CR cm handle data */\r
     dapl_os_memcpy( (void*)&cm_ptr->ib_cm,\r
                     (void*)&p_cm_req_rec->h_cm_req,\r
@@ -678,6 +664,20 @@ dapli_ib_cm_req_cb ( IN  ib_cm_req_rec_t  *p_cm_req_rec )
                     (void*)&dest_ia_addr,\r
                     sizeof(dest_ia_addr));\r
 \r
+#if defined(DAPL_DBG)\r
+    {\r
+        char ipa[20];\r
+  \r
+        //rval = ((struct sockaddr_in *) (&dest_ia_addr))->sin_addr.s_addr;\r
+\r
+        dapl_dbg_log (DAPL_DBG_TYPE_CM|DAPL_DBG_TYPE_CALLBACK, \r
+                      "%s: query SA (CM %lx)->dst_ip_addr: %s\n",\r
+                      __FUNCTION__,cm_ptr,\r
+                      dapli_get_ip_addr_str(\r
+                               (DAT_SOCK_ADDR6*) &cm_ptr->dst_ip_addr, ipa) );\r
+    }\r
+#endif\r
+\r
     /* FIXME - Vu\r
      * We have NOT used/saved the primary and alternative path record\r
      * ie. p_cm_req_rec->p_primary_path and p_cm_req_rec->p_alt_path\r
@@ -694,7 +694,7 @@ dapli_ib_cm_req_cb ( IN  ib_cm_req_rec_t  *p_cm_req_rec )
     dapls_cr_callback ( cm_ptr,\r
                         IB_CME_CONNECTION_REQUEST_PENDING,\r
                         (void * __ptr64) p_cm_req_rec->p_req_pdata,\r
-                       IB_REQ_PDATA_SIZE,\r
+                                               IB_REQ_PDATA_SIZE,\r
                         (void * __ptr64) sp_ptr );\r
 }\r
 \r
@@ -704,7 +704,7 @@ dapli_ib_cm_mra_cb (
         IN    ib_cm_mra_rec_t          *p_cm_mra_rec )\r
 {\r
        UNUSED_PARAM( p_cm_mra_rec );\r
-    dapl_dbg_log (DAPL_DBG_TYPE_CM | DAPL_DBG_TYPE_CALLBACK, \r
+       dapl_dbg_log (DAPL_DBG_TYPE_CM | DAPL_DBG_TYPE_CALLBACK, \r
                        "--> DiCMcb: CM callback MRA\n");\r
 }\r
 \r
@@ -712,7 +712,7 @@ static void
 dapli_ib_cm_rtu_cb (\r
         IN    ib_cm_rtu_rec_t          *p_cm_rtu_rec )\r
 {\r
-    DAPL_EP         *ep_ptr;\r
+    DAPL_EP            *ep_ptr;\r
     dp_ib_cm_handle_t  cm_ptr;\r
 \r
     dapl_os_assert (p_cm_rtu_rec != NULL);\r
@@ -735,7 +735,8 @@ dapli_ib_cm_rtu_cb (
     dapl_os_assert(cm_ptr->ib_cm.h_qp == p_cm_rtu_rec->h_qp);\r
 \r
     dapl_dbg_log (DAPL_DBG_TYPE_CM | DAPL_DBG_TYPE_CALLBACK, \r
-                  "--> DiCRucb: EP %lx QP %lx\n", ep_ptr, ep_ptr->qp_handle); \r
+                  "--> DiCRucb: EP %lx QP %lx CR %lx\n",\r
+                  ep_ptr, ep_ptr->qp_handle, ep_ptr->cr_ptr); \r
 \r
     if (ep_ptr->cr_ptr)\r
     {\r
@@ -743,6 +744,7 @@ dapli_ib_cm_rtu_cb (
 \r
         sp_ptr = ((DAPL_CR *) ep_ptr->cr_ptr)->sp_ptr;\r
 \r
+        /* passive connection side */\r
         dapls_cr_callback ( cm_ptr,\r
                             IB_CME_CONNECTED,\r
                             (void * __ptr64) p_cm_rtu_rec->p_rtu_pdata,\r
@@ -784,18 +786,21 @@ dapls_ib_cm_remote_addr (
 {\r
 \r
     DAPL_HEADER        *header;\r
-    void               *vp;\r
+    dp_ib_cm_handle_t  cm;\r
     char               ipa[20];\r
+    char               *rtype;\r
 \r
     header = (DAPL_HEADER *)dat_handle;\r
 \r
     if (header->magic == DAPL_MAGIC_EP) \r
     {\r
-       vp = &((DAPL_EP *) dat_handle)->remote_ia_address;\r
+       cm = dapl_get_cm_from_ep((DAPL_EP *)dat_handle);\r
+       rtype = "EP";\r
     }\r
     else if (header->magic == DAPL_MAGIC_CR) \r
     {\r
-       vp = &((DAPL_CR *) dat_handle)->remote_ia_address;\r
+       cm = ((DAPL_CR *) dat_handle)->ib_cm_handle;\r
+       rtype = "CR";\r
     }\r
     else \r
     {\r
@@ -805,10 +810,10 @@ dapls_ib_cm_remote_addr (
        return DAT_INVALID_HANDLE;\r
     }\r
 \r
-    dapl_os_memcpy( remote_address, vp, sizeof(DAT_SOCK_ADDR6) );\r
+    dapl_os_memcpy( remote_address, &cm->dst_ip_addr, sizeof(DAT_SOCK_ADDR6) );\r
 \r
-    dapl_dbg_log ( DAPL_DBG_TYPE_CM, "%s: returns %s\n",\r
-                   __FUNCTION__,\r
+    dapl_dbg_log ( DAPL_DBG_TYPE_CM, "%s: returns %s remote Addrs %s\n",\r
+                   __FUNCTION__, rtype,\r
                    dapli_get_ip_addr_str((DAT_SOCK_ADDR6*)remote_address,ipa) );\r
 \r
     return DAT_SUCCESS;\r
@@ -1097,8 +1102,8 @@ dapls_ib_disconnect ( IN   DAPL_EP           *ep_ptr,
                       IN   DAT_CLOSE_FLAGS   disconnect_flags )\r
 {\r
     ib_api_status_t    ib_status = IB_SUCCESS;\r
-    ib_cm_dreq_t                   cm_dreq;\r
-    dp_ib_cm_handle_t cm_ptr;\r
+    ib_cm_dreq_t       cm_dreq;\r
+    dp_ib_cm_handle_t  cm_ptr;\r
 \r
     dapl_os_assert(ep_ptr);\r
 \r
@@ -1524,16 +1529,11 @@ dapls_ib_accept_connection (
     /* EP-CM, save/release CR CM object, use EP CM object already linked */\r
     cm_ptr = dapl_get_cm_from_ep(ep_ptr);\r
     if (!cm_ptr) {\r
-            dapl_dbg_log ( DAPL_DBG_TYPE_ERR,\r
+       dapl_dbg_log ( DAPL_DBG_TYPE_ERR,\r
                        "--> DsIBAC: CM linking to EP %p not available\n",\r
                        ep_ptr);\r
-        return (DAT_INVALID_STATE);\r
+       return (DAT_INVALID_STATE);\r
     }\r
-    /* get h_al and connection ID from CR CM object, h_qp already set */\r
-    cm_ptr->ib_cm.cid = cr_ptr->ib_cm_handle->ib_cm.cid; \r
-    cm_ptr->ib_cm.h_al = cr_ptr->ib_cm_handle->ib_cm.h_al;\r
-    dapls_cm_release(cr_ptr->ib_cm_handle);\r
-    cr_ptr->ib_cm_handle = NULL;\r
      \r
     /* set remote IP addr fields. IP addr data is deduced from Connection\r
      * Request record (gid/lib) and stashed away for use here. DAPL 1.1\r
@@ -1541,14 +1541,14 @@ dapls_ib_accept_connection (
      * in 2.0?\r
      */\r
     dapl_os_memcpy( (void*)&ep_ptr->remote_ia_address,\r
-                    (void*)&cm_ptr->dst_ip_addr,\r
+                    (void*)&cr_ptr->ib_cm_handle->dst_ip_addr,\r
                     sizeof(DAT_SOCK_ADDR6) );\r
 \r
     dapl_os_memcpy( (void*)&cr_ptr->remote_ia_address,\r
                     (void*)&ep_ptr->remote_ia_address,\r
                     sizeof(DAT_SOCK_ADDR6) );\r
 \r
-#if defined(DAPL_DBG) && 0\r
+#if defined(DAPL_DBG)\r
     {\r
         char ipa[20];\r
 \r
@@ -1556,11 +1556,21 @@ dapls_ib_accept_connection (
                       "%s: EP(%lx) RemoteAddr: %s\n",\r
                       __FUNCTION__, ep_ptr,\r
                      dapli_get_ip_addr_str(\r
-                             (DAT_SOCK_ADDR6*)&ep_ptr->remote_ia_address, ipa));\r
+                            (DAT_SOCK_ADDR6*)&ep_ptr->remote_ia_address, ipa) );\r
     }\r
 #endif\r
 \r
-    ep_ptr->qp_state      = IB_QPS_INIT;\r
+    dapl_os_memcpy( (void*)&cm_ptr->dst_ip_addr,\r
+                    (void*)&cr_ptr->ib_cm_handle->dst_ip_addr,\r
+                    sizeof(DAT_SOCK_ADDR6) );\r
+\r
+    /* get h_al and connection ID from CR CM object, h_qp already set */\r
+    cm_ptr->ib_cm.cid = cr_ptr->ib_cm_handle->ib_cm.cid; \r
+    cm_ptr->ib_cm.h_al = cr_ptr->ib_cm_handle->ib_cm.h_al;\r
+    dapls_cm_release(cr_ptr->ib_cm_handle);\r
+\r
+    cr_ptr->ib_cm_handle = cm_ptr; /* for dapli_get_sp_ep() upcall */\r
+\r
     ep_ptr->cr_ptr        = cr_ptr;\r
 \r
     dapl_os_memzero ( (void*)&cm_rep, sizeof (ib_cm_rep_t) );\r
@@ -1634,10 +1644,6 @@ dapls_ib_accept_connection (
        dapl_dbg_log ( DAPL_DBG_TYPE_ERR,\r
                        "--> DsIBAC: EP %lx QP %lx CR reply failed '%s'\n",\r
                        ep_ptr, ep_ptr->qp_handle, ib_get_err_str(ib_status) );\r
-\r
-        /* errors not perculated back to CR callback which allocated the\r
-         * memory, free it here on error.\r
-         */\r
     }\r
  \r
     return ( dapl_ib_status_convert ( ib_status ) );\r
index c759bc6849e8532b344968077f34d323450411af..eff6d11445462776963f35acfc9d963f7a80b837 100644 (file)
@@ -134,8 +134,8 @@ dapls_ib_qp_alloc (
     ib_cq_handle_t        cq_send;\r
     dapl_ibal_ca_t        *p_ca;\r
     dapl_ibal_port_t      *p_active_port;\r
-    ib_qp_attr_t           qp_attr;\r
-       dp_ib_cm_handle_t     cm_ptr;\r
+    ib_qp_attr_t          qp_attr;\r
+    dp_ib_cm_handle_t     cm_ptr;\r
 \r
     attr = &ep_ptr->param.ep_attr;\r
 \r
@@ -251,7 +251,7 @@ dapls_ib_qp_alloc (
        return (DAT_INSUFFICIENT_RESOURCES);\r
     }\r
     cm_ptr->ib_cm.h_qp = ep_ptr->qp_handle;\r
-       cm_ptr->ep = ep_ptr;\r
+    cm_ptr->ep = ep_ptr;\r
     dapl_ep_link_cm(ep_ptr, cm_ptr); \r
 \r
     dapl_dbg_log (DAPL_DBG_TYPE_EP, "--> DsQA: EP=%p, tEVD=%p, rEVD=%p QP=%p\n",\r