iPXE
ib_srp.h
Go to the documentation of this file.
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 FILE_SECBOOT ( PERMITTED );
12 
13 #include <stdint.h>
14 #include <ipxe/acpi.h>
15 #include <ipxe/interface.h>
16 #include <ipxe/infiniband.h>
17 #include <ipxe/srp.h>
18 
19 /** SRP initiator port identifier for Infiniband */
21  /** SRP version of port identifier */
23  /** Infiniband version of port identifier */
24  struct {
25  /** Identifier extension */
26  union ib_guid id_ext;
27  /** IB channel adapter GUID */
29  } __attribute__ (( packed )) ib;
30 };
31 
32 /** SRP target port identifier for Infiniband */
34  /** SRP version of port identifier */
36  /** Infiniband version of port identifier */
37  struct {
38  /** Identifier extension */
39  union ib_guid id_ext;
40  /** I/O controller GUID */
42  } __attribute__ (( packed )) ib;
43 };
44 
45 /**
46  * sBFT Infiniband subtable
47  */
49  /** Source GID */
50  union ib_gid sgid;
51  /** Destination GID */
52  union ib_gid dgid;
53  /** Service ID */
55  /** Partition key */
57  /** Reserved */
59 } __attribute__ (( packed ));
60 
61 /**
62  * An Infiniband SRP sBFT created by iPXE
63  */
64 struct ipxe_ib_sbft {
65  /** The table header */
66  struct sbft_table table;
67  /** The SCSI subtable */
69  /** The SRP subtable */
71  /** The Infiniband subtable */
73 };
74 
75 /** An Infiniband SRP device */
76 struct ib_srp_device {
77  /** Reference count */
78  struct refcnt refcnt;
79 
80  /** SRP transport interface */
81  struct interface srp;
82  /** CMRC interface */
83  struct interface cmrc;
84 
85  /** Infiniband device */
86  struct ib_device *ibdev;
87 
88  /** ACPI descriptor */
90  /** Boot firmware table parameters */
92 };
93 
94 #endif /* _IPXE_IB_SRP_H */
#define __attribute__(x)
Definition: compiler.h:10
An SRP port ID.
Definition: srp.h:37
Infiniband protocol.
unsigned short uint16_t
Definition: stdint.h:11
union srp_port_id srp
SRP version of port identifier.
Definition: ib_srp.h:35
struct ipxe_ib_sbft sbft
Boot firmware table parameters.
Definition: ib_srp.h:91
FILE_LICENCE(BSD2)
struct interface cmrc
CMRC interface.
Definition: ib_srp.h:83
SRP target port identifier for Infiniband.
Definition: ib_srp.h:33
struct interface srp
SRP transport interface.
Definition: ib_srp.h:81
FILE_SECBOOT(PERMITTED)
sBFT Infiniband subtable
Definition: ib_srp.h:48
union ib_gid dgid
Destination GID.
Definition: ib_srp.h:52
sBFT SCSI subtable
Definition: srp.h:808
union srp_port_id srp
SRP version of port identifier.
Definition: ib_srp.h:22
An Infiniband Global Identifier.
Definition: ib_packet.h:34
uint8_t reserved[6]
Reserved.
Definition: ib_srp.h:58
A reference counter.
Definition: refcnt.h:27
SCSI RDMA Protocol.
An Infiniband device.
Definition: infiniband.h:399
SRP Boot Firmware Table.
Definition: srp.h:792
SRP initiator port identifier for Infiniband.
Definition: ib_srp.h:20
An object interface.
Definition: interface.h:125
struct sbft_table table
The table header.
Definition: ib_srp.h:66
struct ib_srp_target_port_id::@628 ib
Infiniband version of port identifier.
Object interfaces.
struct sbft_srp_subtable srp
The SRP subtable.
Definition: ib_srp.h:70
sBFT SRP subtable
Definition: srp.h:816
An Infiniband SRP sBFT created by iPXE.
Definition: ib_srp.h:64
union ib_gid sgid
Source GID.
Definition: ib_srp.h:50
union ib_guid service_id
Service ID.
Definition: ib_srp.h:54
ACPI data structures.
An Infiniband Globally Unique Identifier.
Definition: ib_packet.h:19
unsigned char uint8_t
Definition: stdint.h:10
struct sbft_scsi_subtable scsi
The SCSI subtable.
Definition: ib_srp.h:68
An Infiniband SRP device.
Definition: ib_srp.h:76
struct ib_srp_initiator_port_id::@627 ib
Infiniband version of port identifier.
union ib_guid ioc_guid
I/O controller GUID.
Definition: ib_srp.h:41
An ACPI descriptor (used to construct ACPI tables)
Definition: acpi.h:295
union ib_guid hca_guid
IB channel adapter GUID.
Definition: ib_srp.h:28
struct ib_device * ibdev
Infiniband device.
Definition: ib_srp.h:86
struct sbft_ib_subtable ib
The Infiniband subtable.
Definition: ib_srp.h:72
uint16_t pkey
Partition key.
Definition: ib_srp.h:56
union ib_guid id_ext
Identifier extension.
Definition: ib_srp.h:39
union ib_guid id_ext
Identifier extension.
Definition: ib_srp.h:26
struct acpi_descriptor desc
ACPI descriptor.
Definition: ib_srp.h:89