You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ib_srp.h 1.2KB

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