aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorSean Hefty <sean.hefty@intel.com>2013-05-29 13:09:27 -0400
committerRoland Dreier <roland@purestorage.com>2013-06-21 02:35:40 -0400
commitac53b264b2f39e89781e3b855008123dfdb44aea (patch)
treec72f7ee7aed7071da300d1f5cb52b0767b949ef5 /include
parent2e08b5879e9244fa893fe09f5b887f72f4e6c29b (diff)
RDMA/ucma: Support querying when IB paths are not reversible
The current query_route call can return up to two path records. The assumption being that one is the primary path, with optional support for an alternate path. In both cases, the paths are assumed to be reversible and are used to send CM MADs. With the ability to manually set IB path data, the rdma cm can eventually be capable of using up to 6 paths per connection: forward primary, reverse primary, forward alternate, reverse alternate, reversible primary path for CM MADs reversible alternate path for CM MADs. (It is unclear at this time if IB routing will complicate this) In order to handle more flexible routing topologies, add a new command to report any number of paths. Signed-off-by: Sean Hefty <sean.hefty@intel.com> Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'include')
-rw-r--r--include/uapi/rdma/rdma_user_cm.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/include/uapi/rdma/rdma_user_cm.h b/include/uapi/rdma/rdma_user_cm.h
index 3ea7e7a4d54b..07eb6cfa926c 100644
--- a/include/uapi/rdma/rdma_user_cm.h
+++ b/include/uapi/rdma/rdma_user_cm.h
@@ -115,7 +115,8 @@ struct rdma_ucm_resolve_route {
115}; 115};
116 116
117enum { 117enum {
118 RDMA_USER_CM_QUERY_ADDR 118 RDMA_USER_CM_QUERY_ADDR,
119 RDMA_USER_CM_QUERY_PATH
119}; 120};
120 121
121struct rdma_ucm_query { 122struct rdma_ucm_query {
@@ -145,6 +146,12 @@ struct rdma_ucm_query_addr_resp {
145 struct sockaddr_storage dst_addr; 146 struct sockaddr_storage dst_addr;
146}; 147};
147 148
149struct rdma_ucm_query_path_resp {
150 __u32 num_paths;
151 __u32 reserved;
152 struct ib_path_rec_data path_data[0];
153};
154
148struct rdma_ucm_conn_param { 155struct rdma_ucm_conn_param {
149 __u32 qp_num; 156 __u32 qp_num;
150 __u32 qkey; 157 __u32 qkey;