1 #ifndef _IPXE_IB_SRP_H 2 #define _IPXE_IB_SRP_H 3 4 /** @file 5 * 6 * SCSI RDMA Protocol over Infiniband 7 * 8 */ 9 10 FILE_LICENCE ( BSD2 ); 11 12 #include <stdint.h> 13 #include <ipxe/infiniband.h> 14 #include <ipxe/srp.h> 15 16 /** SRP initiator port identifier for Infiniband */ 17 union ib_srp_initiator_port_id { 18 /** SRP version of port identifier */ 19 union srp_port_id srp; 20 /** Infiniband version of port identifier */ 21 struct { 22 /** Identifier extension */ 23 union ib_guid id_ext; 24 /** IB channel adapter GUID */ 25 union ib_guid hca_guid; 26 } __attribute__ (( packed )) ib; 27 }; 28 29 /** SRP target port identifier for Infiniband */ 30 union ib_srp_target_port_id { 31 /** SRP version of port identifier */ 32 union srp_port_id srp; 33 /** Infiniband version of port identifier */ 34 struct { 35 /** Identifier extension */ 36 union ib_guid id_ext; 37 /** I/O controller GUID */ 38 union ib_guid ioc_guid; 39 } __attribute__ (( packed )) ib; 40 }; 41 42 /** 43 * sBFT Infiniband subtable 44 */ 45 struct sbft_ib_subtable { 46 /** Source GID */ 47 union ib_gid sgid; 48 /** Destination GID */ 49 union ib_gid dgid; 50 /** Service ID */ 51 union ib_guid service_id; 52 /** Partition key */ 53 uint16_t pkey; 54 /** Reserved */ 55 uint8_t reserved[6]; 56 } __attribute__ (( packed )); 57 58 #endif /* _IPXE_IB_SRP_H */ 59