summaryrefslogtreecommitdiffstats
path: root/src/include/gpxe
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/gpxe')
-rw-r--r--src/include/gpxe/ib_mad.h3
-rw-r--r--src/include/gpxe/ib_packet.h6
-rw-r--r--src/include/gpxe/ib_sma.h20
-rw-r--r--src/include/gpxe/infiniband.h5
4 files changed, 28 insertions, 6 deletions
diff --git a/src/include/gpxe/ib_mad.h b/src/include/gpxe/ib_mad.h
index cfd8ef9a..ac9a1d4b 100644
--- a/src/include/gpxe/ib_mad.h
+++ b/src/include/gpxe/ib_mad.h
@@ -30,9 +30,6 @@ struct ib_smp_hdr {
uint8_t reserved[28];
} __attribute__ (( packed ));
-/** Bits to ignore in the management class for subnet management MADs */
-#define IB_SMP_CLASS_IGNORE 0x80
-
/** Subnet management class version */
#define IB_SMP_CLASS_VERSION 1
diff --git a/src/include/gpxe/ib_packet.h b/src/include/gpxe/ib_packet.h
index a014352e..d4688596 100644
--- a/src/include/gpxe/ib_packet.h
+++ b/src/include/gpxe/ib_packet.h
@@ -16,7 +16,11 @@ struct io_buffer;
/** Half of an Infiniband Global Identifier */
struct ib_gid_half {
- uint8_t bytes[8];
+ union {
+ uint8_t bytes[8];
+ uint16_t words[4];
+ uint32_t dwords[2];
+ } u;
};
/** An Infiniband Global Identifier */
diff --git a/src/include/gpxe/ib_sma.h b/src/include/gpxe/ib_sma.h
new file mode 100644
index 00000000..78fc6729
--- /dev/null
+++ b/src/include/gpxe/ib_sma.h
@@ -0,0 +1,20 @@
+#ifndef _GPXE_IB_SMA_H
+#define _GPXE_IB_SMA_H
+
+/** @file
+ *
+ * Infiniband subnet management agent
+ *
+ */
+
+FILE_LICENCE ( GPL2_OR_LATER );
+
+struct ib_device;
+struct ib_mad_interface;
+
+extern int ib_create_sma ( struct ib_device *ibdev,
+ struct ib_mad_interface *mi );
+extern void ib_destroy_sma ( struct ib_device *ibdev,
+ struct ib_mad_interface *mi );
+
+#endif /* _GPXE_IB_SMA_H */
diff --git a/src/include/gpxe/infiniband.h b/src/include/gpxe/infiniband.h
index 2581b17b..d300a77b 100644
--- a/src/include/gpxe/infiniband.h
+++ b/src/include/gpxe/infiniband.h
@@ -45,6 +45,7 @@ struct ib_device;
struct ib_queue_pair;
struct ib_address_vector;
struct ib_completion_queue;
+struct ib_mad_interface;
struct ib_gma;
/** Infiniband transmission rates */
@@ -413,8 +414,8 @@ struct ib_device {
*/
uint32_t rdma_key;
- /** Subnet management agent */
- struct ib_gma *sma;
+ /** Subnet management interface */
+ struct ib_mad_interface *smi;
/** General management agent */
struct ib_gma *gma;