NAME¶
umad_set_grh - set GRH fields within umad buffer using host ordering
SYNOPSIS¶
#include <infiniband/umad.h>
int umad_set_grh(void *umad, void *mad_addr);
DESCRIPTION¶
umad_set_grh() sets the GRH fields (grh_present, gid, hop_limit,
traffic_class, flow_label) within the specified umad buffer based on
the mad_addr supplied. The provided mad_addr fields are expected
to be in host order. If the mad_addr pointer supplied is NULL, no GRH
is set. The argument mad_addr is a pointer to an ib_mad_addr_t
struct, as specified in <infiniband/umad.h>. The argument
umad is a pointer to an ib_user_mad_t struct, as specified in
<infiniband/umad.h>.
typedef struct ib_mad_addr {
uint32_t qpn;
uint32_t qkey;
uint16_t lid;
uint8_t sl;
uint8_t path_bits;
uint8_t grh_present;
uint8_t gid_index;
uint8_t hop_limit;
uint8_t traffic_class;
uint8_t gid[16];
uint32_t flow_label;
} ib_mad_addr_t;
typedef struct ib_user_mad {
uint32_t agent_id;
uint32_t status;
uint32_t timeout_ms;
uint32_t retries;
uint32_t length;
ib_mad_addr_t addr;
uint8_t data[0];
} ib_user_mad_t;
RETURN VALUE¶
umad_set_grh() returns 0 on success, and a negative value on errors.
Currently, there are no errors indicated.
AUTHOR¶
- Hal Rosenstock <halr@voltaire.com>