[infiniband] Add support for performing service record lookups

Signed-off-by: Michael Brown <mcb30@ipxe.org>
This commit is contained in:
Michael Brown
2016-03-01 09:41:11 +00:00
parent 7544763626
commit ff13eeb747
3 changed files with 106 additions and 1 deletions

View File

@@ -219,8 +219,25 @@ struct ib_sa_hdr {
uint32_t comp_mask[2];
} __attribute__ (( packed ));
#define IB_SA_ATTR_MC_MEMBER_REC 0x38
#define IB_SA_ATTR_SERVICE_REC 0x31
#define IB_SA_ATTR_PATH_REC 0x35
#define IB_SA_ATTR_MC_MEMBER_REC 0x38
struct ib_service_record {
uint64_t id;
union ib_gid gid;
uint16_t pkey;
uint16_t reserved;
uint32_t lease;
uint8_t key[16];
char name[64];
uint8_t data8[16];
uint16_t data16[8];
uint32_t data32[4];
uint64_t data64[2];
} __attribute__ (( packed ));
#define IB_SA_SERVICE_REC_NAME (1<<6)
struct ib_path_record {
uint32_t reserved0[2];
@@ -278,6 +295,7 @@ struct ib_mc_member_record {
#define IB_SA_MCMEMBER_REC_PROXY_JOIN (1<<17)
union ib_sa_data {
struct ib_service_record service_record;
struct ib_path_record path_record;
struct ib_mc_member_record mc_member_record;
} __attribute__ (( packed ));

View File

@@ -0,0 +1,20 @@
#ifndef _IPXE_IB_SERVICE_H
#define _IPXE_IB_SERVICE_H
/** @file
*
* Infiniband service records
*
*/
FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
#include <ipxe/infiniband.h>
#include <ipxe/ib_mi.h>
extern struct ib_mad_transaction *
ib_create_service_madx ( struct ib_device *ibdev,
struct ib_mad_interface *mi, const char *name,
struct ib_mad_transaction_operations *op );
#endif /* _IPXE_IB_SERVICE_H */