iPXE
ib_srp.h
Go to the documentation of this file.
00001 #ifndef _IPXE_IB_SRP_H
00002 #define _IPXE_IB_SRP_H
00003 
00004 /** @file
00005  *
00006  * SCSI RDMA Protocol over Infiniband
00007  *
00008  */
00009 
00010 FILE_LICENCE ( BSD2 );
00011 
00012 #include <stdint.h>
00013 #include <ipxe/infiniband.h>
00014 #include <ipxe/srp.h>
00015 
00016 /** SRP initiator port identifier for Infiniband */
00017 union ib_srp_initiator_port_id {
00018         /** SRP version of port identifier */
00019         union srp_port_id srp;
00020         /** Infiniband version of port identifier */
00021         struct {
00022                 /** Identifier extension */
00023                 union ib_guid id_ext;
00024                 /** IB channel adapter GUID */
00025                 union ib_guid hca_guid;
00026         } __attribute__ (( packed )) ib;
00027 };
00028 
00029 /** SRP target port identifier for Infiniband */
00030 union ib_srp_target_port_id {
00031         /** SRP version of port identifier */
00032         union srp_port_id srp;
00033         /** Infiniband version of port identifier */
00034         struct {
00035                 /** Identifier extension */
00036                 union ib_guid id_ext;
00037                 /** I/O controller GUID */
00038                 union ib_guid ioc_guid;
00039         } __attribute__ (( packed )) ib;
00040 };
00041 
00042 /**
00043  * sBFT Infiniband subtable
00044  */
00045 struct sbft_ib_subtable {
00046         /** Source GID */
00047         union ib_gid sgid;
00048         /** Destination GID */
00049         union ib_gid dgid;
00050         /** Service ID */
00051         union ib_guid service_id;
00052         /** Partition key */
00053         uint16_t pkey;
00054         /** Reserved */
00055         uint8_t reserved[6];
00056 } __attribute__ (( packed ));
00057 
00058 #endif /* _IPXE_IB_SRP_H */