aboutsummaryrefslogtreecommitdiffstats
path: root/include/rdma/ib_user_sa.h
diff options
context:
space:
mode:
authorSean Hefty <sean.hefty@intel.com>2009-11-16 09:30:33 -0800
committerRoland Dreier <rolandd@cisco.com>2009-11-16 09:30:33 -0800
commita7ca1f00ed2921b804d7ebda0f6fca8c9078fa42 (patch)
tree5235dfe07cfdf1ce60442a33fd7f6b4cb24ef80c /include/rdma/ib_user_sa.h
parentMerge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/anholt/drm-intel (diff)
downloadlinux-dev-a7ca1f00ed2921b804d7ebda0f6fca8c9078fa42.tar.xz
linux-dev-a7ca1f00ed2921b804d7ebda0f6fca8c9078fa42.zip
RDMA/ucma: Add option to manually set IB path
Export rdma_set_ib_paths to user space to allow applications to manually set the IB path used for connections. This allows alternative ways for a user space application or library to obtain path record information, including retrieving path information from cached data, avoiding direct interaction with the IB SA. The IB SA is a single, centralized entity that can limit scaling on large clusters running MPI applications. Future changes to the rdma cm can expand on this framework to support the full range of features allowed by the IB CM, such as separate forward and reverse paths and APM. Signed-off-by: Sean Hefty <sean.hefty@intel.com> Reviewed-By: Jason Gunthorpe <jgunthorpe@obsidianresearch.com> Signed-off-by: Roland Dreier <rolandd@cisco.com>
Diffstat (limited to 'include/rdma/ib_user_sa.h')
-rw-r--r--include/rdma/ib_user_sa.h16
1 files changed, 16 insertions, 0 deletions
diff --git a/include/rdma/ib_user_sa.h b/include/rdma/ib_user_sa.h
index 659120157e14..cfc7c9ba781e 100644
--- a/include/rdma/ib_user_sa.h
+++ b/include/rdma/ib_user_sa.h
@@ -35,6 +35,22 @@
#include <linux/types.h>
+enum {
+ IB_PATH_GMP = 1,
+ IB_PATH_PRIMARY = (1<<1),
+ IB_PATH_ALTERNATE = (1<<2),
+ IB_PATH_OUTBOUND = (1<<3),
+ IB_PATH_INBOUND = (1<<4),
+ IB_PATH_INBOUND_REVERSE = (1<<5),
+ IB_PATH_BIDIRECTIONAL = IB_PATH_OUTBOUND | IB_PATH_INBOUND_REVERSE
+};
+
+struct ib_path_rec_data {
+ __u32 flags;
+ __u32 reserved;
+ __u32 path_rec[16];
+};
+
struct ib_user_path_rec {
__u8 dgid[16];
__u8 sgid[16];