Lines Matching refs:rpc
86 void *mad_encode(void *buf, ib_rpc_t * rpc, ib_dr_path_t * drpath, void *data) in mad_encode() argument
88 int is_resp = rpc->method & IB_MAD_RESPONSE; in mad_encode()
92 mad_set_field(buf, 0, IB_MAD_METHOD_F, rpc->method); in mad_encode()
94 mgtclass = rpc->mgtclass & 0xff; in mad_encode()
99 mad_set_field(buf, 0, IB_MAD_MGMTCLASS_F, rpc->mgtclass & 0xff); in mad_encode()
103 if ((rpc->mgtclass & 0xff) == IB_SMI_DIRECT_CLASS) { in mad_encode()
117 mad_set_field(buf, 0, IB_DRSMP_STATUS_F, rpc->rstatus); in mad_encode()
120 mad_set_field(buf, 0, IB_MAD_STATUS_F, rpc->rstatus); in mad_encode()
123 if (!rpc->trid) in mad_encode()
124 rpc->trid = mad_trid(); in mad_encode()
126 mad_set_field64(buf, 0, IB_MAD_TRID_F, rpc->trid); in mad_encode()
127 mad_set_field(buf, 0, IB_MAD_ATTRID_F, rpc->attr.id); in mad_encode()
128 mad_set_field(buf, 0, IB_MAD_ATTRMOD_F, rpc->attr.mod); in mad_encode()
131 mad_set_field64(buf, 0, IB_MAD_MKEY_F, rpc->mkey); in mad_encode()
133 if ((rpc->mgtclass & 0xff) == IB_SMI_DIRECT_CLASS) { in mad_encode()
147 if ((rpc->mgtclass & 0xff) == IB_SA_CLASS) in mad_encode()
148 mad_set_field64(buf, 0, IB_SA_COMPMASK_F, rpc->mask); in mad_encode()
150 if ((rpc->mgtclass & 0xff) == IB_CC_CLASS) { in mad_encode()
151 ib_rpc_cc_t *rpccc = (ib_rpc_cc_t *)rpc; in mad_encode()
156 memcpy((char *)buf + rpc->dataoffs, data, rpc->datasz); in mad_encode()
159 if (mad_is_vendor_range2(rpc->mgtclass & 0xff)) in mad_encode()
160 mad_set_field(buf, 0, IB_VEND2_OUI_F, rpc->oui); in mad_encode()
165 int mad_build_pkt(void *umad, ib_rpc_t * rpc, ib_portid_t * dport, in mad_build_pkt() argument
169 int lid_routed = (rpc->mgtclass & 0xff) != IB_SMI_DIRECT_CLASS; in mad_build_pkt()
170 int is_smi = ((rpc->mgtclass & 0xff) == IB_SMI_CLASS || in mad_build_pkt()
171 (rpc->mgtclass & 0xff) == IB_SMI_DIRECT_CLASS); in mad_build_pkt()
196 p = mad_encode(mad, rpc, lid_routed ? 0 : &dport->drpath, data); in mad_build_pkt()