iPXE
|
Infiniband Packet Formats. More...
#include <stdint.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <byteswap.h>
#include <ipxe/iobuf.h>
#include <ipxe/infiniband.h>
#include <ipxe/ib_packet.h>
Go to the source code of this file.
Functions | |
FILE_LICENCE (GPL2_OR_LATER_OR_UBDL) | |
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 *dest) |
Add IB headers. More... | |
int | ib_pull (struct ib_device *ibdev, struct io_buffer *iobuf, struct ib_queue_pair **qp, size_t *payload_len, struct ib_address_vector *dest, struct ib_address_vector *source) |
Remove IB headers. More... | |
Infiniband Packet Formats.
Definition in file ib_packet.c.
FILE_LICENCE | ( | GPL2_OR_LATER_OR_UBDL | ) |
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 * | dest | ||
) |
Add IB headers.
ibdev | Infiniband device |
iobuf | I/O buffer to contain headers |
qp | Queue pair |
payload_len | Payload length |
dest | Destination address vector |
rc | Return status code |
Definition at line 52 of file ib_packet.c.
References ib_base_transport_header::ack__psn, bth, BTH_OPCODE_UD_SEND, io_buffer::data, DBGC2, DBGCP_HDA, dest, ib_base_transport_header::dest_qp, deth, ib_global_route_header::dgid, ib_local_route_header::dlid, ib_device::gid, grh, ib_global_route_header::hoplmt, htonl, htons, IB_GRH_IPVER_IPv6, IB_GRH_NXTHDR_IBA, IB_LNH_BTH, IB_LNH_GRH, IB_QPN_SMI, IB_VL_DEFAULT, IB_VL_SMP, iob_len(), iob_push, ib_global_route_header::ipver__tclass__flowlabel, ib_local_route_header::length, ib_device::lid, lrh, memcpy(), ib_device::name, NULL, ib_global_route_header::nxthdr, ib_base_transport_header::opcode, pad_len, ib_global_route_header::paylen, ib_base_transport_header::pkey, ib_device::pkey, ib_datagram_extended_transport_header::qkey, qp, ib_base_transport_header::se__m__padcnt__tver, ib_global_route_header::sgid, ib_local_route_header::sl__lnh, ib_local_route_header::slid, ib_datagram_extended_transport_header::src_qp, and ib_local_route_header::vl__lver.
Referenced by arbel_fill_mlx_send_wqe(), hermon_fill_mlx_send_wqe(), linda_post_send(), and qib7322_post_send().
int ib_pull | ( | struct ib_device * | ibdev, |
struct io_buffer * | iobuf, | ||
struct ib_queue_pair ** | qp, | ||
size_t * | payload_len, | ||
struct ib_address_vector * | dest, | ||
struct ib_address_vector * | source | ||
) |
Remove IB headers.
ibdev | Infiniband device |
iobuf | I/O buffer containing headers |
qp | Queue pair to fill in, or NULL |
payload_len | Payload length to fill in, or NULL |
dest | Destination address vector to fill in |
source | Source address vector to fill in |
rc | Return status code |
Definition at line 133 of file ib_packet.c.
References assert(), bth, BTH_OPCODE_UD_SEND, io_buffer::data, DBGC, DBGC2, DBGCP_HDA, dest, ib_base_transport_header::dest_qp, deth, ib_global_route_header::dgid, ib_local_route_header::dlid, EINVAL, ENODEV, ENOTSUP, ib_address_vector::gid, ib_address_vector::gid_present, grh, ib_find_qp_mgid(), ib_find_qp_qpn(), IB_GID_ARGS, IB_GID_FMT, IB_LID_MULTICAST, IB_LNH_BTH, IB_LNH_GRH, iob_len(), iob_pull, ib_local_route_header::length, ib_address_vector::lid, lrh, memcpy(), memset(), ib_device::name, ntohl, ntohs, NULL, ib_base_transport_header::opcode, pad_len, ib_address_vector::qkey, ib_datagram_extended_transport_header::qkey, qp, ib_address_vector::qpn, ib_base_transport_header::se__m__padcnt__tver, ib_global_route_header::sgid, ib_address_vector::sl, ib_local_route_header::sl__lnh, ib_local_route_header::slid, and ib_datagram_extended_transport_header::src_qp.
Referenced by linda_complete_recv(), and qib7322_complete_recv().