summaryrefslogtreecommitdiffstats
path: root/include/rdma/opa_addr.h
diff options
context:
space:
mode:
authorHiatt, Don2017-06-08 19:38:02 +0200
committerDoug Ledford2017-08-08 20:50:25 +0200
commite92aa00a518971fca6b79aa87a1a9c5e5aa51f3b (patch)
tree5c5af9e2c932e7008f3cfc0ad776544ea16b9e38 /include/rdma/opa_addr.h
parentIB/core: Change wc.slid from 16 to 32 bits (diff)
downloadkernel-qcow2-linux-e92aa00a518971fca6b79aa87a1a9c5e5aa51f3b.tar.gz
kernel-qcow2-linux-e92aa00a518971fca6b79aa87a1a9c5e5aa51f3b.tar.xz
kernel-qcow2-linux-e92aa00a518971fca6b79aa87a1a9c5e5aa51f3b.zip
IB/CM: Add OPA Path record support to CM
Add OPA path record support to the Connection Manager. Signed-off-by: Don Hiatt <don.hiatt@intel.com> Reviewed-by: Ira Weiny <ira.weiny@intel.com> Signed-off-by: Doug Ledford <dledford@redhat.com>
Diffstat (limited to 'include/rdma/opa_addr.h')
-rw-r--r--include/rdma/opa_addr.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/include/rdma/opa_addr.h b/include/rdma/opa_addr.h
index 46d0567fffea..9b5e642cf550 100644
--- a/include/rdma/opa_addr.h
+++ b/include/rdma/opa_addr.h
@@ -77,4 +77,22 @@ static inline u32 opa_get_lid_from_gid(union ib_gid *gid)
{
return be64_to_cpu(gid->global.interface_id) & 0xFFFFFFFF;
}
+
+/**
+ * opa_is_extended_lid: Returns true if dlid or slid are
+ * extended.
+ *
+ * @dlid: The DLID
+ * @slid: The SLID
+ */
+static inline bool opa_is_extended_lid(u32 dlid, u32 slid)
+{
+ if ((be32_to_cpu(dlid) >=
+ be16_to_cpu(IB_MULTICAST_LID_BASE)) ||
+ (be32_to_cpu(slid) >=
+ be16_to_cpu(IB_MULTICAST_LID_BASE)))
+ return true;
+ else
+ return false;
+}
#endif /* OPA_ADDR_H */