diff options
Diffstat (limited to 'gpxe/src/include/gpxe/ib_packet.h')
-rw-r--r-- | gpxe/src/include/gpxe/ib_packet.h | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/gpxe/src/include/gpxe/ib_packet.h b/gpxe/src/include/gpxe/ib_packet.h deleted file mode 100644 index d4688596..00000000 --- a/gpxe/src/include/gpxe/ib_packet.h +++ /dev/null @@ -1,147 +0,0 @@ -#ifndef _GPXE_IB_PACKET_H -#define _GPXE_IB_PACKET_H - -/** @file - * - * Infiniband packet format - * - */ - -FILE_LICENCE ( GPL2_OR_LATER ); - -struct ib_device; -struct ib_queue_pair; -struct ib_address_vector; -struct io_buffer; - -/** Half of an Infiniband Global Identifier */ -struct ib_gid_half { - union { - uint8_t bytes[8]; - uint16_t words[4]; - uint32_t dwords[2]; - } u; -}; - -/** An Infiniband Global Identifier */ -struct ib_gid { - union { - uint8_t bytes[16]; - uint16_t words[8]; - uint32_t dwords[4]; - struct ib_gid_half half[2]; - } u; -}; - -/** An Infiniband Local Route Header */ -struct ib_local_route_header { - /** Virtual lane and link version */ - uint8_t vl__lver; - /** Service level and next link header */ - uint8_t sl__lnh; - /** Destination LID */ - uint16_t dlid; - /** Packet length */ - uint16_t length; - /** Source LID */ - uint16_t slid; -} __attribute__ (( packed )); - -/** Infiniband virtual lanes */ -enum ib_vl { - IB_VL_DEFAULT = 0, - IB_VL_SMP = 15, -}; - -/** An Infiniband Link Next Header value */ -enum ib_lnh { - IB_LNH_RAW = 0, - IB_LNH_IPv6 = 1, - IB_LNH_BTH = 2, - IB_LNH_GRH = 3 -}; - -/** Default Infiniband LID */ -#define IB_LID_NONE 0xffff - -/** Test for multicast LID */ -#define IB_LID_MULTICAST( lid ) ( ( (lid) >= 0xc000 ) && ( (lid) <= 0xfffe ) ) - -/** An Infiniband Global Route Header */ -struct ib_global_route_header { - /** IP version, traffic class, and flow label - * - * 4 bits : Version of the GRH - * 8 bits : Traffic class - * 20 bits : Flow label - */ - uint32_t ipver__tclass__flowlabel; - /** Payload length */ - uint16_t paylen; - /** Next header */ - uint8_t nxthdr; - /** Hop limit */ - uint8_t hoplmt; - /** Source GID */ - struct ib_gid sgid; - /** Destiniation GID */ - struct ib_gid dgid; -} __attribute__ (( packed )); - -#define IB_GRH_IPVER_IPv6 0x06 -#define IB_GRH_NXTHDR_IBA 0x1b - -/** An Infiniband Base Transport Header */ -struct ib_base_transport_header { - /** Opcode */ - uint8_t opcode; - /** Transport header version, pad count, migration and solicitation */ - uint8_t se__m__padcnt__tver; - /** Partition key */ - uint16_t pkey; - /** Destination queue pair */ - uint32_t dest_qp; - /** Packet sequence number and acknowledge request */ - uint32_t ack__psn; -} __attribute__ (( packed )); - -/** An Infiniband BTH opcode */ -enum ib_bth_opcode { - BTH_OPCODE_UD_SEND = 0x64, -}; - -/** An Infiniband Datagram Extended Transport Header */ -struct ib_datagram_extended_transport_header { - /** Queue key */ - uint32_t qkey; - /** Source queue pair */ - uint32_t src_qp; -} __attribute__ (( packed )); - -/** All known IB header formats */ -union ib_headers { - struct ib_local_route_header lrh; - struct { - struct ib_local_route_header lrh; - struct ib_global_route_header grh; - struct ib_base_transport_header bth; - struct ib_datagram_extended_transport_header deth; - } __attribute__ (( packed )) lrh__grh__bth__deth; - struct { - struct ib_local_route_header lrh; - struct ib_base_transport_header bth; - struct ib_datagram_extended_transport_header deth; - } __attribute__ (( packed )) lrh__bth__deth; -} __attribute__ (( packed )); - -/** Maximum size required for IB headers */ -#define IB_MAX_HEADER_SIZE sizeof ( union ib_headers ) - -extern int ib_push ( struct ib_device *ibdev, struct io_buffer *iobuf, - struct ib_queue_pair *qp, size_t payload_len, - const struct ib_address_vector *av ); -extern int ib_pull ( struct ib_device *ibdev, struct io_buffer *iobuf, - struct ib_queue_pair **qp, size_t *payload_len, - struct ib_address_vector *av ); - -#endif /* _GPXE_IB_PACKET_H */ |