diff options
Diffstat (limited to 'src/include/gpxe')
-rw-r--r-- | src/include/gpxe/ib_mad.h | 3 | ||||
-rw-r--r-- | src/include/gpxe/ib_packet.h | 6 | ||||
-rw-r--r-- | src/include/gpxe/ib_sma.h | 20 | ||||
-rw-r--r-- | src/include/gpxe/infiniband.h | 5 |
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; |