Lines Matching refs:mad

72 					struct ib_mad *mad);
74 struct ib_mad_private *mad);
178 int ib_response_mad(struct ib_mad *mad)
180 return ((mad->mad_hdr.method & IB_MGMT_METHOD_RESP) ||
181 (mad->mad_hdr.method == IB_MGMT_METHOD_TRAP_REPRESS) ||
182 ((mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_BM) &&
183 (mad->mad_hdr.attr_mod & IB_BM_ATTR_MOD_RESP)));
379 /* Add mad agent into port's agent list */
687 struct ib_smp *smp = mad_send_wr->send_buf.mad;
748 (struct ib_mad *)&mad_priv->mad);
752 if (ib_response_mad(&mad_priv->mad.mad) &&
772 memcpy(&mad_priv->mad.mad, smp, sizeof(struct ib_mad));
774 &mad_priv->mad.mad);
834 struct ib_rmpp_mad *rmpp_mad = send_buf->mad;
899 mad_send_wr->send_buf.mad = buf;
990 return mad_send_wr->send_buf.mad +
1005 kfree(send_buf->mad);
1028 mad_send_wr->send_buf.mad,
1093 if (!ib_is_mad_class_rmpp(((struct ib_mad_hdr *) send_buf->mad)->mgmt_class)) {
1108 if (((struct ib_mad_hdr *) send_buf->mad)->mgmt_class ==
1118 mad_send_wr->tid = ((struct ib_mad_hdr *) send_buf->mad)->tid;
1299 /* Remove any methods for this mad agent */
1356 /* Remove any methods for this mad agent */
1455 /* Remove any methods for this mad agent */
1505 /* Remove any methods for this mad agent */
1542 /* Remove any methods for this mad agent */
1577 struct ib_mad *mad)
1583 if (ib_response_mad(mad)) {
1591 hi_tid = be64_to_cpu(mad->mad_hdr.tid) >> 32;
1610 if (mad->mad_hdr.class_version >= MAX_MGMT_VERSION)
1612 if (!is_vendor_class(mad->mad_hdr.mgmt_class)) {
1614 mad->mad_hdr.class_version].class;
1618 mad->mad_hdr.mgmt_class)];
1620 mad_agent = method->agent[mad->mad_hdr.method &
1624 mad->mad_hdr.class_version].vendor;
1628 mad->mad_hdr.mgmt_class)];
1632 vendor_mad = (struct ib_vendor_mad *)mad;
1638 mad_agent = method->agent[mad->mad_hdr.method &
1660 static int validate_mad(struct ib_mad *mad, u32 qp_num)
1665 if (mad->mad_hdr.base_version != IB_MGMT_BASE_VERSION) {
1667 "version %d\n", mad->mad_hdr.base_version);
1672 if ((mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_SUBN_LID_ROUTED) ||
1673 (mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_SUBN_DIRECTED_ROUTE)) {
1701 return ((struct ib_mad *)(wr->send_buf.mad))->mad_hdr.mgmt_class ==
1702 rwc->recv_buf.mad->mad_hdr.mgmt_class;
1716 send_resp = ib_response_mad((struct ib_mad *)wr->send_buf.mad);
1717 rcv_resp = ib_response_mad(rwc->recv_buf.mad);
1766 struct ib_mad *mad;
1768 mad = (struct ib_mad *)wc->recv_buf.mad;
1771 if ((wr->tid == mad->mad_hdr.tid) &&
1777 (is_direct(wc->recv_buf.mad->mad_hdr.mgmt_class) ||
1787 if (is_data_mad(mad_agent_priv, wr->send_buf.mad) &&
1788 wr->tid == mad->mad_hdr.tid &&
1795 (is_direct(wc->recv_buf.mad->mad_hdr.mgmt_class) ||
1830 if (ib_response_mad(mad_recv_wc->recv_buf.mad)) {
1886 recv->header.recv_wc.recv_buf.mad = &recv->mad.mad;
1893 if (!validate_mad(&recv->mad.mad, qp_info->qp->qp_num))
1908 if (recv->mad.mad.mad_hdr.mgmt_class ==
1912 if (smi_handle_dr_smp_recv(&recv->mad.smp,
1919 retsmi = smi_check_forward_dr_smp(&recv->mad.smp);
1924 if (smi_handle_dr_smp_send(&recv->mad.smp,
1929 if (smi_check_local_smp(&recv->mad.smp, port_priv->device) == IB_SMI_DISCARD)
1935 response->header.recv_wc.recv_buf.mad = &response->mad.mad;
1938 agent_send_response(&response->mad.mad,
1941 smi_get_fwd_port(&recv->mad.smp),
1956 &recv->mad.mad,
1957 &response->mad.mad);
1962 agent_send_response(&response->mad.mad,
1972 mad_agent = find_mad_agent(port_priv, &recv->mad.mad);
2316 if (is_data_mad(mad_agent_priv, mad_send_wr->send_buf.mad) &&
2409 local->mad_priv->header.recv_wc.recv_buf.mad =
2410 &local->mad_priv->mad.mad;
2539 struct ib_mad_private *mad)
2559 if (mad) {
2560 mad_priv = mad;
2561 mad = NULL;
3005 .name = "mad",