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