diff options
author | Erez Shitrit <erezsh@mellanox.co.il> | 2012-06-19 04:21:38 -0400 |
---|---|---|
committer | Roland Dreier <roland@purestorage.com> | 2012-07-08 21:05:06 -0400 |
commit | aeab97ed1503bedbe14d1e1c5ab7b90253a67664 (patch) | |
tree | 49e7e2d930982c66ba5b627ac63c6a70f8e85840 /include/rdma | |
parent | b1d8eb5a213640f1be98a90e73a241d15b70045c (diff) |
IB/sa: Add GuidInfoRecord query support
This query is needed for SRIOV alias GUID support.
The query is implemented per the IB Spec definition
in section 15.2.5.18 (GuidInfoRecord).
Signed-off-by: Erez Shitrit <erezsh@mellanox.co.il>
Signed-off-by: Jack Morgenstein <jackm@dev.mellanox.co.il>
Signed-off-by: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Roland Dreier <roland@purestorage.com>
Diffstat (limited to 'include/rdma')
-rw-r--r-- | include/rdma/ib_sa.h | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/include/rdma/ib_sa.h b/include/rdma/ib_sa.h index d44a56388a3e..8275e539bace 100644 --- a/include/rdma/ib_sa.h +++ b/include/rdma/ib_sa.h | |||
@@ -251,6 +251,28 @@ struct ib_sa_service_rec { | |||
251 | u64 data64[2]; | 251 | u64 data64[2]; |
252 | }; | 252 | }; |
253 | 253 | ||
254 | #define IB_SA_GUIDINFO_REC_LID IB_SA_COMP_MASK(0) | ||
255 | #define IB_SA_GUIDINFO_REC_BLOCK_NUM IB_SA_COMP_MASK(1) | ||
256 | #define IB_SA_GUIDINFO_REC_RES1 IB_SA_COMP_MASK(2) | ||
257 | #define IB_SA_GUIDINFO_REC_RES2 IB_SA_COMP_MASK(3) | ||
258 | #define IB_SA_GUIDINFO_REC_GID0 IB_SA_COMP_MASK(4) | ||
259 | #define IB_SA_GUIDINFO_REC_GID1 IB_SA_COMP_MASK(5) | ||
260 | #define IB_SA_GUIDINFO_REC_GID2 IB_SA_COMP_MASK(6) | ||
261 | #define IB_SA_GUIDINFO_REC_GID3 IB_SA_COMP_MASK(7) | ||
262 | #define IB_SA_GUIDINFO_REC_GID4 IB_SA_COMP_MASK(8) | ||
263 | #define IB_SA_GUIDINFO_REC_GID5 IB_SA_COMP_MASK(9) | ||
264 | #define IB_SA_GUIDINFO_REC_GID6 IB_SA_COMP_MASK(10) | ||
265 | #define IB_SA_GUIDINFO_REC_GID7 IB_SA_COMP_MASK(11) | ||
266 | |||
267 | struct ib_sa_guidinfo_rec { | ||
268 | __be16 lid; | ||
269 | u8 block_num; | ||
270 | /* reserved */ | ||
271 | u8 res1; | ||
272 | __be32 res2; | ||
273 | u8 guid_info_list[64]; | ||
274 | }; | ||
275 | |||
254 | struct ib_sa_client { | 276 | struct ib_sa_client { |
255 | atomic_t users; | 277 | atomic_t users; |
256 | struct completion comp; | 278 | struct completion comp; |
@@ -385,4 +407,15 @@ int ib_init_ah_from_path(struct ib_device *device, u8 port_num, | |||
385 | */ | 407 | */ |
386 | void ib_sa_unpack_path(void *attribute, struct ib_sa_path_rec *rec); | 408 | void ib_sa_unpack_path(void *attribute, struct ib_sa_path_rec *rec); |
387 | 409 | ||
410 | /* Support GuidInfoRecord */ | ||
411 | int ib_sa_guid_info_rec_query(struct ib_sa_client *client, | ||
412 | struct ib_device *device, u8 port_num, | ||
413 | struct ib_sa_guidinfo_rec *rec, | ||
414 | ib_sa_comp_mask comp_mask, u8 method, | ||
415 | int timeout_ms, gfp_t gfp_mask, | ||
416 | void (*callback)(int status, | ||
417 | struct ib_sa_guidinfo_rec *resp, | ||
418 | void *context), | ||
419 | void *context, | ||
420 | struct ib_sa_query **sa_query); | ||
388 | #endif /* IB_SA_H */ | 421 | #endif /* IB_SA_H */ |