summaryrefslogtreecommitdiffstats
path: root/src/include
diff options
context:
space:
mode:
authorMichael Brown2009-07-07 17:07:31 +0200
committerMichael Brown2009-07-18 00:06:34 +0200
commit0fbf2f6bda3f380fd54d1aa2c0275c0a0227eea7 (patch)
treeeca6dfb6d3c6fb9e17cb91d54fc4ab4e9d3f4bb4 /src/include
parent[infiniband] Allow for sending MADs via GMA without retransmission (diff)
downloadipxe-0fbf2f6bda3f380fd54d1aa2c0275c0a0227eea7.tar.gz
ipxe-0fbf2f6bda3f380fd54d1aa2c0275c0a0227eea7.tar.xz
ipxe-0fbf2f6bda3f380fd54d1aa2c0275c0a0227eea7.zip
[infiniband] Provide a general mechanism for multicast group joins
Generalise out the multicast group membership record code from IPoIB.
Diffstat (limited to 'src/include')
-rw-r--r--src/include/gpxe/errfile.h1
-rw-r--r--src/include/gpxe/ib_mad.h2
-rw-r--r--src/include/gpxe/ib_mcast.h19
3 files changed, 22 insertions, 0 deletions
diff --git a/src/include/gpxe/errfile.h b/src/include/gpxe/errfile.h
index 0eac0a8eb..5e7fa09b8 100644
--- a/src/include/gpxe/errfile.h
+++ b/src/include/gpxe/errfile.h
@@ -146,6 +146,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
#define ERRFILE_ib_qset ( ERRFILE_NET | 0x001a0000 )
#define ERRFILE_ib_gma ( ERRFILE_NET | 0x001b0000 )
#define ERRFILE_ib_pathrec ( ERRFILE_NET | 0x001c0000 )
+#define ERRFILE_ib_mcast ( ERRFILE_NET | 0x001d0000 )
#define ERRFILE_image ( ERRFILE_IMAGE | 0x00000000 )
#define ERRFILE_elf ( ERRFILE_IMAGE | 0x00010000 )
diff --git a/src/include/gpxe/ib_mad.h b/src/include/gpxe/ib_mad.h
index eaea12b83..d4582c342 100644
--- a/src/include/gpxe/ib_mad.h
+++ b/src/include/gpxe/ib_mad.h
@@ -203,6 +203,8 @@ struct ib_smp_class_specific {
#define IB_SA_CLASS_VERSION 2
+#define IB_SA_METHOD_DELETE_RESP 0x95
+
struct ib_rmpp_hdr {
uint32_t raw[3];
} __attribute__ (( packed ));
diff --git a/src/include/gpxe/ib_mcast.h b/src/include/gpxe/ib_mcast.h
new file mode 100644
index 000000000..2ca3382be
--- /dev/null
+++ b/src/include/gpxe/ib_mcast.h
@@ -0,0 +1,19 @@
+#ifndef _GPXE_IB_MCAST_H
+#define _GPXE_IB_MCAST_H
+
+/** @file
+ *
+ * Infiniband multicast groups
+ *
+ */
+
+FILE_LICENCE ( GPL2_OR_LATER );
+
+#include <gpxe/infiniband.h>
+
+extern int ib_mcast_join ( struct ib_device *ibdev, struct ib_queue_pair *qp,
+ struct ib_gid *gid );
+extern void ib_mcast_leave ( struct ib_device *ibdev, struct ib_queue_pair *qp,
+ struct ib_gid *gid );
+
+#endif /* _GPXE_IB_MCAST_H */