[ofa-general] [PATCH 1/4][v2] dapl: add support for private data in CR reject.

Arlin Davis arlin.r.davis at intel.com
Fri Apr 4 16:40:10 PDT 2008


Private data support via dat_cr_reject was added to
the v2 DAT specification but dapl was never extended
to support at the provider level. Add support in OFA
uDAPL provider.

Signed-off by: Arlin Davis ardavis at ichips.intel.com
---
 dapl/common/dapl_adapter_util.h  |    6 ++++--
 dapl/common/dapl_cr_callback.c   |    9 ++++++---
 dapl/common/dapl_cr_reject.c     |    3 ++-
 dapl/ibal-scm/dapl_ibal-scm_cm.c |    4 +++-
 dapl/ibal/dapl_ibal_cm.c         |    4 +++-
 dapl/openib/dapl_ib_cm.c         |    4 +++-
 dapl/openib_cma/dapl_ib_cm.c     |    6 +++++-
 dapl/openib_scm/dapl_ib_cm.c     |    4 +++-
 8 files changed, 29 insertions(+), 11 deletions(-)

diff --git a/dapl/common/dapl_adapter_util.h b/dapl/common/dapl_adapter_util.h
index d664bf6..43175a9 100755
--- a/dapl/common/dapl_adapter_util.h
+++ b/dapl/common/dapl_adapter_util.h
@@ -112,8 +112,10 @@ DAT_RETURN dapls_ib_accept_connection (
 	IN  const DAT_PVOID		private_data);
 
 DAT_RETURN dapls_ib_reject_connection (
-	IN  dp_ib_cm_handle_t	cm_handle,
-	IN  int				reject_reason);
+	IN  dp_ib_cm_handle_t		cm_handle,
+	IN  int				reject_reason,
+	IN  DAT_COUNT			private_data_size,
+	IN  const DAT_PVOID		private_data);
 
 DAT_RETURN dapls_ib_setup_async_callback (
 	IN  DAPL_IA			*ia_ptr,
diff --git a/dapl/common/dapl_cr_callback.c b/dapl/common/dapl_cr_callback.c
index 46d2b4c..aafdbfb 100644
--- a/dapl/common/dapl_cr_callback.c
+++ b/dapl/common/dapl_cr_callback.c
@@ -173,7 +173,8 @@ dapls_cr_callback (
 		dapl_dbg_log (DAPL_DBG_TYPE_CM,
 			  "---> dapls_cr_callback: conn event on down SP\n");
 		(void)dapls_ib_reject_connection (ib_cm_handle,
-						  DAT_CONNECTION_EVENT_UNREACHABLE );
+						  DAT_CONNECTION_EVENT_UNREACHABLE,
+						  0, NULL);
 
 		return;
 	    }
@@ -300,7 +301,8 @@ dapls_cr_callback (
     {
 	/* The event post failed; take appropriate action.  */
 	(void)dapls_ib_reject_connection ( ib_cm_handle,
-					   DAT_CONNECTION_EVENT_BROKEN);
+					   DAT_CONNECTION_EVENT_BROKEN,
+					   0, NULL);
 
 	return;
     }
@@ -456,7 +458,8 @@ dapli_connection_request (
     {
 	dapls_cr_free (cr_ptr);
 	(void)dapls_ib_reject_connection (ib_cm_handle,
-					  DAT_CONNECTION_EVENT_BROKEN);
+					  DAT_CONNECTION_EVENT_BROKEN,
+					  0, NULL);
 
 	/* Take the CR off the list, we can't use it */
 	dapl_os_lock (&sp_ptr->header.lock);
diff --git a/dapl/common/dapl_cr_reject.c b/dapl/common/dapl_cr_reject.c
index d6842b3..029cdfa 100755
--- a/dapl/common/dapl_cr_reject.c
+++ b/dapl/common/dapl_cr_reject.c
@@ -97,7 +97,8 @@ dapl_cr_reject (
     }
 
     dat_status =  dapls_ib_reject_connection ( cr_ptr->ib_cm_handle,
-					       IB_CM_REJ_REASON_CONSUMER_REJ );
+					       IB_CM_REJ_REASON_CONSUMER_REJ,
+					       pdata_size, pdata );
 
     if ( dat_status != DAT_SUCCESS)
     {
diff --git a/dapl/ibal-scm/dapl_ibal-scm_cm.c b/dapl/ibal-scm/dapl_ibal-scm_cm.c
index fcf5215..df83008 100644
--- a/dapl/ibal-scm/dapl_ibal-scm_cm.c
+++ b/dapl/ibal-scm/dapl_ibal-scm_cm.c
@@ -951,7 +951,9 @@ dapls_ib_accept_connection (
 DAT_RETURN
 dapls_ib_reject_connection (
 	IN  dp_ib_cm_handle_t	ib_cm_handle,
-	IN  int			reject_reason )
+	IN  int			reject_reason,
+	IN  DAT_COUNT 		private_data_size,
+	IN  const DAT_PVOID 	private_data)
 {
     	ib_cm_srvc_handle_t	cm_ptr = ib_cm_handle;
 
diff --git a/dapl/ibal/dapl_ibal_cm.c b/dapl/ibal/dapl_ibal_cm.c
index 6cd652f..a986430 100644
--- a/dapl/ibal/dapl_ibal_cm.c
+++ b/dapl/ibal/dapl_ibal_cm.c
@@ -1228,7 +1228,9 @@ dapls_ib_remove_conn_listener (
  */
 DAT_RETURN
 dapls_ib_reject_connection ( IN  dp_ib_cm_handle_t   ib_cm_handle,
-                             IN  int                 reject_reason )
+                             IN  int                 reject_reason,
+                             IN  DAT_COUNT           private_data_size,
+                             IN  const DAT_PVOID     private_data)
 {
     ib_api_status_t        ib_status;
     ib_cm_rej_t            cm_rej;
diff --git a/dapl/openib/dapl_ib_cm.c b/dapl/openib/dapl_ib_cm.c
index 76d5968..c887a0b 100644
--- a/dapl/openib/dapl_ib_cm.c
+++ b/dapl/openib/dapl_ib_cm.c
@@ -971,7 +971,9 @@ reject:
 DAT_RETURN
 dapls_ib_reject_connection (
 	IN  ib_cm_handle_t	cm_handle,
-	IN  int			reject_reason )
+	IN  int			reject_reason,
+	IN  DAT_COUNT           private_data_size,
+	IN  const DAT_PVOID     private_data)
 {
     	int status;
 
diff --git a/dapl/openib_cma/dapl_ib_cm.c b/dapl/openib_cma/dapl_ib_cm.c
index cf79142..a040ffb 100755
--- a/dapl/openib_cma/dapl_ib_cm.c
+++ b/dapl/openib_cma/dapl_ib_cm.c
@@ -890,7 +890,11 @@ bail:
  *
  */
 DAT_RETURN
-dapls_ib_reject_connection(IN dp_ib_cm_handle_t cm_handle, IN int reason)
+dapls_ib_reject_connection(
+	IN dp_ib_cm_handle_t cm_handle, 
+	IN int reason,
+	IN DAT_COUNT private_data_size,
+	IN const DAT_PVOID private_data)
 {
     	int ret;
 
diff --git a/dapl/openib_scm/dapl_ib_cm.c b/dapl/openib_scm/dapl_ib_cm.c
index 485ab9b..94e3959 100644
--- a/dapl/openib_scm/dapl_ib_cm.c
+++ b/dapl/openib_scm/dapl_ib_cm.c
@@ -759,7 +759,9 @@ dapls_ib_accept_connection (
 DAT_RETURN
 dapls_ib_reject_connection (
 	IN  ib_cm_handle_t	ib_cm_handle,
-	IN  int			reject_reason )
+	IN  int			reject_reason,
+	IN  DAT_COUNT           private_data_size,
+	IN  const DAT_PVOID     private_data)
 {
     	ib_cm_srvc_handle_t	cm_ptr = ib_cm_handle;
 
-- 
1.5.2.5






More information about the general mailing list