Lines Matching refs:rpc

51 int mad_send(ib_rpc_t * rpc, ib_portid_t * dport, ib_rmpp_hdr_t * rmpp,
54 return mad_send_via(rpc, dport, rmpp, data, ibmp);
57 int mad_send_via(ib_rpc_t * rpc, ib_portid_t * dport, ib_rmpp_hdr_t * rmpp,
67 if (mad_build_pkt(umad, rpc, dport, rmpp, data) < 0)
71 IBWARN("data offs %d sz %d", rpc->dataoffs, rpc->datasz);
73 (char *)umad_get_mad(umad) + rpc->dataoffs, rpc->datasz);
76 if (umad_send(srcport->port_id, srcport->class_agents[rpc->mgtclass & 0xff],
77 umad, IB_MAD_SIZE, mad_get_timeout(srcport, rpc->timeout),
96 ib_rpc_t rpc = { 0 };
123 rpc.mgtclass = mad_get_field(mad, 0, IB_MAD_MGMTCLASS_F);
125 rpc.method = mad_get_field(mad, 0, IB_MAD_METHOD_F);
126 if (rpc.method == IB_MAD_METHOD_SET)
127 rpc.method = IB_MAD_METHOD_GET;
128 if (rpc.method != IB_MAD_METHOD_SEND)
129 rpc.method |= IB_MAD_RESPONSE;
131 rpc.attr.id = mad_get_field(mad, 0, IB_MAD_ATTRID_F);
132 rpc.attr.mod = mad_get_field(mad, 0, IB_MAD_ATTRMOD_F);
133 if (rpc.mgtclass == IB_SA_CLASS)
134 rpc.recsz = mad_get_field(mad, 0, IB_SA_ATTROFFS_F);
135 if (mad_is_vendor_range2(rpc.mgtclass))
136 rpc.oui = mad_get_field(mad, 0, IB_VEND2_OUI_F);
138 rpc.trid = mad_get_field64(mad, 0, IB_MAD_TRID_F);
139 rpc.rstatus = rstatus;
143 is_smi = rpc.mgtclass == IB_SMI_CLASS ||
144 rpc.mgtclass == IB_SMI_DIRECT_CLASS;
156 portid->qp, rpc.mgtclass, rpc.method, rpc.attr.id, rpc.attr.mod,
157 rpc.datasz, rpc.dataoffs, portid->qkey);
159 if (mad_build_pkt(umad, &rpc, portid, 0, 0) < 0)
166 (srcport->port_id, srcport->class_agents[rpc.mgtclass], umad,
167 IB_MAD_SIZE, mad_get_timeout(srcport, rpc.timeout), 0) < 0) {