diff options
| author | Sean Hefty <sean.hefty@intel.com> | 2013-05-29 13:09:25 -0400 |
|---|---|---|
| committer | Roland Dreier <roland@purestorage.com> | 2013-06-21 02:35:39 -0400 |
| commit | ee7aed4528fb3c44a36abd79eb23fd5401a5b697 (patch) | |
| tree | 16e084d5abbf42b117b8a4b4cb24dcb6d5bd281e /include/uapi | |
| parent | 94d0c939416480066d4e4d69e0d3c217bc083cea (diff) | |
RDMA/ucma: Support querying for AF_IB addresses
The sockaddr structure for AF_IB is larger than sockaddr_in6. The
rdma cm user space ABI uses the latter to exchange address information
between user space and the kernel.
To support querying for larger addresses, define a new query command
that exchanges data using sockaddr_storage, rather than sockaddr_in6.
Unlike the existing query_route command, the new command only returns
address information. Route (i.e. path record) data is separated.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'include/uapi')
| -rw-r--r-- | include/uapi/rdma/rdma_user_cm.h | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/include/uapi/rdma/rdma_user_cm.h b/include/uapi/rdma/rdma_user_cm.h index 29de08f603ac..3ea7e7a4d54b 100644 --- a/include/uapi/rdma/rdma_user_cm.h +++ b/include/uapi/rdma/rdma_user_cm.h | |||
| @@ -61,7 +61,8 @@ enum { | |||
| 61 | RDMA_USER_CM_CMD_NOTIFY, | 61 | RDMA_USER_CM_CMD_NOTIFY, |
| 62 | RDMA_USER_CM_CMD_JOIN_MCAST, | 62 | RDMA_USER_CM_CMD_JOIN_MCAST, |
| 63 | RDMA_USER_CM_CMD_LEAVE_MCAST, | 63 | RDMA_USER_CM_CMD_LEAVE_MCAST, |
| 64 | RDMA_USER_CM_CMD_MIGRATE_ID | 64 | RDMA_USER_CM_CMD_MIGRATE_ID, |
| 65 | RDMA_USER_CM_CMD_QUERY | ||
| 65 | }; | 66 | }; |
| 66 | 67 | ||
| 67 | /* | 68 | /* |
| @@ -113,10 +114,14 @@ struct rdma_ucm_resolve_route { | |||
| 113 | __u32 timeout_ms; | 114 | __u32 timeout_ms; |
| 114 | }; | 115 | }; |
| 115 | 116 | ||
| 116 | struct rdma_ucm_query_route { | 117 | enum { |
| 118 | RDMA_USER_CM_QUERY_ADDR | ||
| 119 | }; | ||
| 120 | |||
| 121 | struct rdma_ucm_query { | ||
| 117 | __u64 response; | 122 | __u64 response; |
| 118 | __u32 id; | 123 | __u32 id; |
| 119 | __u32 reserved; | 124 | __u32 option; |
| 120 | }; | 125 | }; |
| 121 | 126 | ||
| 122 | struct rdma_ucm_query_route_resp { | 127 | struct rdma_ucm_query_route_resp { |
| @@ -129,6 +134,17 @@ struct rdma_ucm_query_route_resp { | |||
| 129 | __u8 reserved[3]; | 134 | __u8 reserved[3]; |
| 130 | }; | 135 | }; |
| 131 | 136 | ||
| 137 | struct rdma_ucm_query_addr_resp { | ||
| 138 | __u64 node_guid; | ||
| 139 | __u8 port_num; | ||
| 140 | __u8 reserved; | ||
| 141 | __u16 pkey; | ||
| 142 | __u16 src_size; | ||
| 143 | __u16 dst_size; | ||
| 144 | struct sockaddr_storage src_addr; | ||
| 145 | struct sockaddr_storage dst_addr; | ||
| 146 | }; | ||
| 147 | |||
| 132 | struct rdma_ucm_conn_param { | 148 | struct rdma_ucm_conn_param { |
| 133 | __u32 qp_num; | 149 | __u32 qp_num; |
| 134 | __u32 qkey; | 150 | __u32 qkey; |
