Version: 1
-Previous: 1dcc46fbdf9065e7e9d6a4d15e2ae4dcaa7ed30f
-Head: 82b3db165240e4534c37e665782b9d2604c16a2f
+Previous: df40055767942162e7bffdd6e4f98a652127cc9d
+Head: 8f4ccd3a8407ac94dc37cecb5aaea604f91a8fec
Applied:
sync: 452ce3b051e10e10363baa77834962a89267e052
pre-af-ib: 73504ef1f812bea6d1fd59f194f90e5194ca2efa
opt-cp: 0c67e54602a5ce5524698f8aba7f543f356a865a
gai: 720aaa185b9ce215b2d0678f103ccdf50fa7ffbf
getreq: 0b8f86a7e557e3b9abf4c2586ae9e7e885462623
- ep: 4c77d0089a8e37cf5b269dc507b98d8da1ca17de
- refresh-temp: 82b3db165240e4534c37e665782b9d2604c16a2f
+ ep: 8f4ccd3a8407ac94dc37cecb5aaea604f91a8fec
Unapplied:
cq-status: d4535a68c8d41302c9ee9d44b98a75ea19b4f172
wv-rm-ioctl: 2c4f8b27f89993bc9c1215e8c358046b2934f755
Bottom: a45cf3510a8be501cd8adbda6d59d519d5ea9468
-Top: a45cf3510a8be501cd8adbda6d59d519d5ea9468
+Top: 316a6a93d53c6f6306f12f5dda9e7fb1c0d7bc0c
Author: Sean Hefty <sean.hefty@intel.com>
Date: 2010-08-16 11:10:48 -0700
---
-
+diff --git a/trunk/ulp/librdmacm/include/rdma/rdma_cma.h b/trunk/ulp/librdmacm/include/rdma/rdma_cma.h
+index 66932ca..6307eb5 100644
+--- a/trunk/ulp/librdmacm/include/rdma/rdma_cma.h
++++ b/trunk/ulp/librdmacm/include/rdma/rdma_cma.h
+@@ -265,6 +265,43 @@ int rdma_create_id(struct rdma_event_channel *channel,
+ enum rdma_port_space ps);\r
+ \r
+ /**\r
++ * rdma_create_ep - Allocate a communication identifier and qp.\r
++ * @id: A reference where the allocated communication identifier will be\r
++ * returned.\r
++ * @res: Result from rdma_getaddrinfo, which specifies the source and\r
++ * destination addresses, plus optional routing and connection information.\r
++ * @pd: Optional protection domain. This parameter is ignored if qp_init_attr\r
++ * is NULL.\r
++ * @qp_init_attr: Optional attributes for a QP created on the rdma_cm_id.\r
++ * Description:\r
++ * Create an identifier and option QP used for communication.\r
++ * Notes:\r
++ * If qp_init_attr is provided, then a queue pair will be allocated and\r
++ * associated with the rdma_cm_id. If a pd is provided, the QP will be\r
++ * created on that PD. Otherwise, the QP will be allocated on a default\r
++ * PD.\r
++ * The rdma_cm_id will be set to use synchronous operations (connect,\r
++ * listen, and get_request). To convert to asynchronous operation, the\r
++ * rdma_cm_id should be migrated to a user allocated event channel.\r
++ * See also:\r
++ * rdma_create_id, rdma_create_qp, rdma_migrate_id, rdma_connect,\r
++ * rdma_listen\r
++ */\r
++int rdma_create_ep(struct rdma_cm_id **id, struct rdma_addrinfo *res,\r
++ struct ibv_pd *pd, struct ibv_qp_init_attr *qp_init_attr);\r
++\r
++/**\r
++ * rdma_destroy_ep - Deallocates a communication identifier and qp.\r
++ * @id: The communication identifer to destroy.\r
++ * Description:\r
++ * Destroys the specified rdma_cm_id and any associated QP created\r
++ * on that id.\r
++ * See also:\r
++ * rdma_create_ep\r
++ */\r
++void rdma_destroy_ep(struct rdma_cm_id *id);\r
++\r
++/**\r
+ * rdma_destroy_id - Release a communication identifier.\r
+ * @id: The communication identifier to destroy.\r
+ * Description:\r
+diff --git a/trunk/ulp/librdmacm/src/cma.cpp b/trunk/ulp/librdmacm/src/cma.cpp
+index 77cceb0..d58e1eb 100644
+--- a/trunk/ulp/librdmacm/src/cma.cpp
++++ b/trunk/ulp/librdmacm/src/cma.cpp
+@@ -1343,6 +1343,53 @@ int rdma_migrate_id(struct rdma_cm_id *id, struct rdma_event_channel *channel)
+ return 0;\r
+ }\r
+ \r
++int rdma_create_ep(struct rdma_cm_id **id, struct rdma_addrinfo *res,\r
++ struct ibv_pd *pd, struct ibv_qp_init_attr *qp_init_attr)\r
++{\r
++ struct rdma_cm_id *cm_id;\r
++ int ret;\r
++\r
++ ret = rdma_create_id(NULL, &cm_id, NULL, (enum rdma_port_space) res->ai_port_space);\r
++ if (ret)\r
++ return ret;\r
++\r
++ if (res->ai_flags & RAI_PASSIVE) {\r
++ ret = rdma_bind_addr(cm_id, res->ai_src_addr);\r
++ if (ret)\r
++ goto err;\r
++ goto out;\r
++ }\r
++\r
++ ret = rdma_resolve_addr(cm_id, res->ai_src_addr, res->ai_dst_addr, 2000);\r
++ if (ret)\r
++ goto err;\r
++\r
++ ret = rdma_resolve_route(cm_id, 2000);\r
++ if (ret)\r
++ goto err;\r
++\r
++ qp_init_attr->qp_type = (enum ibv_qp_type) res->ai_qp_type;\r
++ ret = rdma_create_qp(cm_id, pd, qp_init_attr);\r
++ if (ret)\r
++ goto err;\r
++\r
++out:\r
++ *id = cm_id;\r
++ return 0;\r
++\r
++err:\r
++ rdma_destroy_ep(cm_id);\r
++ return ret;\r
++}\r
++\r
++void rdma_destroy_ep(struct rdma_cm_id *id)\r
++{\r
++ if (id->qp)\r
++ rdma_destroy_qp(id);\r
++\r
++ rdma_destroy_id(id);\r
++}\r
++\r
+ __declspec(dllexport)\r
+ int rdmaw_wsa_errno(int wsa_err)\r
+ {\r
+diff --git a/trunk/ulp/librdmacm/src/cma_exports.src b/trunk/ulp/librdmacm/src/cma_exports.src
+index 2d6b336..707daa4 100644
+--- a/trunk/ulp/librdmacm/src/cma_exports.src
++++ b/trunk/ulp/librdmacm/src/cma_exports.src
+@@ -33,5 +33,7 @@ rdma_migrate_id
+ rdma_getaddrinfo\r
+ rdma_freeaddrinfo\r
+ rdma_get_request\r
++rdma_create_ep\r
++rdma_destroy_ep\r
+ rdmaw_wsa_errno\r
+ #endif
+++ /dev/null
-Bottom: a45cf3510a8be501cd8adbda6d59d519d5ea9468
-Top: 316a6a93d53c6f6306f12f5dda9e7fb1c0d7bc0c
-Author: Sean Hefty <sean.hefty@intel.com>
-Date: 2010-08-16 11:40:14 -0700
-
-Refresh of ep
-
----
-
-diff --git a/trunk/ulp/librdmacm/include/rdma/rdma_cma.h b/trunk/ulp/librdmacm/include/rdma/rdma_cma.h
-index 66932ca..6307eb5 100644
---- a/trunk/ulp/librdmacm/include/rdma/rdma_cma.h
-+++ b/trunk/ulp/librdmacm/include/rdma/rdma_cma.h
-@@ -265,6 +265,43 @@ int rdma_create_id(struct rdma_event_channel *channel,
- enum rdma_port_space ps);\r
- \r
- /**\r
-+ * rdma_create_ep - Allocate a communication identifier and qp.\r
-+ * @id: A reference where the allocated communication identifier will be\r
-+ * returned.\r
-+ * @res: Result from rdma_getaddrinfo, which specifies the source and\r
-+ * destination addresses, plus optional routing and connection information.\r
-+ * @pd: Optional protection domain. This parameter is ignored if qp_init_attr\r
-+ * is NULL.\r
-+ * @qp_init_attr: Optional attributes for a QP created on the rdma_cm_id.\r
-+ * Description:\r
-+ * Create an identifier and option QP used for communication.\r
-+ * Notes:\r
-+ * If qp_init_attr is provided, then a queue pair will be allocated and\r
-+ * associated with the rdma_cm_id. If a pd is provided, the QP will be\r
-+ * created on that PD. Otherwise, the QP will be allocated on a default\r
-+ * PD.\r
-+ * The rdma_cm_id will be set to use synchronous operations (connect,\r
-+ * listen, and get_request). To convert to asynchronous operation, the\r
-+ * rdma_cm_id should be migrated to a user allocated event channel.\r
-+ * See also:\r
-+ * rdma_create_id, rdma_create_qp, rdma_migrate_id, rdma_connect,\r
-+ * rdma_listen\r
-+ */\r
-+int rdma_create_ep(struct rdma_cm_id **id, struct rdma_addrinfo *res,\r
-+ struct ibv_pd *pd, struct ibv_qp_init_attr *qp_init_attr);\r
-+\r
-+/**\r
-+ * rdma_destroy_ep - Deallocates a communication identifier and qp.\r
-+ * @id: The communication identifer to destroy.\r
-+ * Description:\r
-+ * Destroys the specified rdma_cm_id and any associated QP created\r
-+ * on that id.\r
-+ * See also:\r
-+ * rdma_create_ep\r
-+ */\r
-+void rdma_destroy_ep(struct rdma_cm_id *id);\r
-+\r
-+/**\r
- * rdma_destroy_id - Release a communication identifier.\r
- * @id: The communication identifier to destroy.\r
- * Description:\r
-diff --git a/trunk/ulp/librdmacm/src/cma.cpp b/trunk/ulp/librdmacm/src/cma.cpp
-index 77cceb0..d58e1eb 100644
---- a/trunk/ulp/librdmacm/src/cma.cpp
-+++ b/trunk/ulp/librdmacm/src/cma.cpp
-@@ -1343,6 +1343,53 @@ int rdma_migrate_id(struct rdma_cm_id *id, struct rdma_event_channel *channel)
- return 0;\r
- }\r
- \r
-+int rdma_create_ep(struct rdma_cm_id **id, struct rdma_addrinfo *res,\r
-+ struct ibv_pd *pd, struct ibv_qp_init_attr *qp_init_attr)\r
-+{\r
-+ struct rdma_cm_id *cm_id;\r
-+ int ret;\r
-+\r
-+ ret = rdma_create_id(NULL, &cm_id, NULL, (enum rdma_port_space) res->ai_port_space);\r
-+ if (ret)\r
-+ return ret;\r
-+\r
-+ if (res->ai_flags & RAI_PASSIVE) {\r
-+ ret = rdma_bind_addr(cm_id, res->ai_src_addr);\r
-+ if (ret)\r
-+ goto err;\r
-+ goto out;\r
-+ }\r
-+\r
-+ ret = rdma_resolve_addr(cm_id, res->ai_src_addr, res->ai_dst_addr, 2000);\r
-+ if (ret)\r
-+ goto err;\r
-+\r
-+ ret = rdma_resolve_route(cm_id, 2000);\r
-+ if (ret)\r
-+ goto err;\r
-+\r
-+ qp_init_attr->qp_type = (enum ibv_qp_type) res->ai_qp_type;\r
-+ ret = rdma_create_qp(cm_id, pd, qp_init_attr);\r
-+ if (ret)\r
-+ goto err;\r
-+\r
-+out:\r
-+ *id = cm_id;\r
-+ return 0;\r
-+\r
-+err:\r
-+ rdma_destroy_ep(cm_id);\r
-+ return ret;\r
-+}\r
-+\r
-+void rdma_destroy_ep(struct rdma_cm_id *id)\r
-+{\r
-+ if (id->qp)\r
-+ rdma_destroy_qp(id);\r
-+\r
-+ rdma_destroy_id(id);\r
-+}\r
-+\r
- __declspec(dllexport)\r
- int rdmaw_wsa_errno(int wsa_err)\r
- {\r
-diff --git a/trunk/ulp/librdmacm/src/cma_exports.src b/trunk/ulp/librdmacm/src/cma_exports.src
-index 2d6b336..707daa4 100644
---- a/trunk/ulp/librdmacm/src/cma_exports.src
-+++ b/trunk/ulp/librdmacm/src/cma_exports.src
-@@ -33,5 +33,7 @@ rdma_migrate_id
- rdma_getaddrinfo\r
- rdma_freeaddrinfo\r
- rdma_get_request\r
-+rdma_create_ep\r
-+rdma_destroy_ep\r
- rdmaw_wsa_errno\r
- #endif