Lines Matching refs:mad
76 struct ib_mad *mad);
78 struct ib_mad_private *mad);
182 int ib_response_mad(struct ib_mad *mad) in ib_response_mad() argument
184 return ((mad->mad_hdr.method & IB_MGMT_METHOD_RESP) || in ib_response_mad()
185 (mad->mad_hdr.method == IB_MGMT_METHOD_TRAP_REPRESS) || in ib_response_mad()
186 ((mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_BM) && in ib_response_mad()
187 (mad->mad_hdr.attr_mod & IB_BM_ATTR_MOD_RESP))); in ib_response_mad()
729 struct ib_smp *smp = mad_send_wr->send_buf.mad; in handle_outgoing_dr_smp()
790 (struct ib_mad *)&mad_priv->mad); in handle_outgoing_dr_smp()
794 if (ib_response_mad(&mad_priv->mad.mad) && in handle_outgoing_dr_smp()
814 memcpy(&mad_priv->mad.mad, smp, sizeof(struct ib_mad)); in handle_outgoing_dr_smp()
816 &mad_priv->mad.mad); in handle_outgoing_dr_smp()
876 struct ib_rmpp_mad *rmpp_mad = send_buf->mad; in alloc_send_rmpp_list()
949 mad_send_wr->send_buf.mad = buf; in ib_create_send_mad()
1040 return mad_send_wr->send_buf.mad + in ib_get_payload()
1055 kfree(send_buf->mad); in ib_free_send_mad()
1078 mad_send_wr->send_buf.mad, in ib_send_mad()
1152 if (!ib_is_mad_class_rmpp(((struct ib_mad_hdr *) send_buf->mad)->mgmt_class)) { in ib_post_send_mad()
1167 if (((struct ib_mad_hdr *) send_buf->mad)->mgmt_class == in ib_post_send_mad()
1177 mad_send_wr->tid = ((struct ib_mad_hdr *) send_buf->mad)->tid; in ib_post_send_mad()
1625 struct ib_mad *mad) in find_mad_agent() argument
1631 if (ib_response_mad(mad)) { in find_mad_agent()
1639 hi_tid = be64_to_cpu(mad->mad_hdr.tid) >> 32; in find_mad_agent()
1658 if (mad->mad_hdr.class_version >= MAX_MGMT_VERSION) in find_mad_agent()
1660 if (!is_vendor_class(mad->mad_hdr.mgmt_class)) { in find_mad_agent()
1662 mad->mad_hdr.class_version].class; in find_mad_agent()
1665 if (convert_mgmt_class(mad->mad_hdr.mgmt_class) >= in find_mad_agent()
1669 mad->mad_hdr.mgmt_class)]; in find_mad_agent()
1671 mad_agent = method->agent[mad->mad_hdr.method & in find_mad_agent()
1675 mad->mad_hdr.class_version].vendor; in find_mad_agent()
1679 mad->mad_hdr.mgmt_class)]; in find_mad_agent()
1683 vendor_mad = (struct ib_vendor_mad *)mad; in find_mad_agent()
1689 mad_agent = method->agent[mad->mad_hdr.method & in find_mad_agent()
1711 static int validate_mad(struct ib_mad *mad, u32 qp_num) in validate_mad() argument
1716 if (mad->mad_hdr.base_version != IB_MGMT_BASE_VERSION) { in validate_mad()
1718 mad->mad_hdr.base_version); in validate_mad()
1723 if ((mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_SUBN_LID_ROUTED) || in validate_mad()
1724 (mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_SUBN_DIRECTED_ROUTE)) { in validate_mad()
1753 return ((struct ib_mad *)(wr->send_buf.mad))->mad_hdr.mgmt_class == in rcv_has_same_class()
1754 rwc->recv_buf.mad->mad_hdr.mgmt_class; in rcv_has_same_class()
1768 send_resp = ib_response_mad((struct ib_mad *)wr->send_buf.mad); in rcv_has_same_gid()
1769 rcv_resp = ib_response_mad(rwc->recv_buf.mad); in rcv_has_same_gid()
1818 struct ib_mad *mad; in ib_find_send_mad() local
1820 mad = (struct ib_mad *)wc->recv_buf.mad; in ib_find_send_mad()
1823 if ((wr->tid == mad->mad_hdr.tid) && in ib_find_send_mad()
1829 (is_direct(wc->recv_buf.mad->mad_hdr.mgmt_class) || in ib_find_send_mad()
1839 if (is_data_mad(mad_agent_priv, wr->send_buf.mad) && in ib_find_send_mad()
1840 wr->tid == mad->mad_hdr.tid && in ib_find_send_mad()
1847 (is_direct(wc->recv_buf.mad->mad_hdr.mgmt_class) || in ib_find_send_mad()
1882 if (ib_response_mad(mad_recv_wc->recv_buf.mad)) { in ib_mad_complete_recv()
1888 && ib_is_mad_class_rmpp(mad_recv_wc->recv_buf.mad->mad_hdr.mgmt_class) in ib_mad_complete_recv()
1889 && (ib_get_rmpp_flags(&((struct ib_rmpp_mad *)mad_recv_wc->recv_buf.mad)->rmpp_hdr) in ib_mad_complete_recv()
1930 if (recv->mad.mad.mad_hdr.method == IB_MGMT_METHOD_GET || in generate_unmatched_resp()
1931 recv->mad.mad.mad_hdr.method == IB_MGMT_METHOD_SET) { in generate_unmatched_resp()
1934 response->header.recv_wc.recv_buf.mad = &response->mad.mad; in generate_unmatched_resp()
1936 response->mad.mad.mad_hdr.method = IB_MGMT_METHOD_GET_RESP; in generate_unmatched_resp()
1937 response->mad.mad.mad_hdr.status = in generate_unmatched_resp()
1939 if (recv->mad.mad.mad_hdr.mgmt_class == IB_MGMT_CLASS_SUBN_DIRECTED_ROUTE) in generate_unmatched_resp()
1940 response->mad.mad.mad_hdr.status |= IB_SMP_DIRECTION; in generate_unmatched_resp()
1975 recv->header.recv_wc.recv_buf.mad = &recv->mad.mad; in ib_mad_recv_done_handler()
1982 if (!validate_mad(&recv->mad.mad, qp_info->qp->qp_num)) in ib_mad_recv_done_handler()
1997 if (recv->mad.mad.mad_hdr.mgmt_class == in ib_mad_recv_done_handler()
2001 if (smi_handle_dr_smp_recv(&recv->mad.smp, in ib_mad_recv_done_handler()
2008 retsmi = smi_check_forward_dr_smp(&recv->mad.smp); in ib_mad_recv_done_handler()
2013 if (smi_handle_dr_smp_send(&recv->mad.smp, in ib_mad_recv_done_handler()
2018 if (smi_check_local_smp(&recv->mad.smp, port_priv->device) == IB_SMI_DISCARD) in ib_mad_recv_done_handler()
2024 response->header.recv_wc.recv_buf.mad = &response->mad.mad; in ib_mad_recv_done_handler()
2027 agent_send_response(&response->mad.mad, in ib_mad_recv_done_handler()
2030 smi_get_fwd_port(&recv->mad.smp), in ib_mad_recv_done_handler()
2043 &recv->mad.mad, in ib_mad_recv_done_handler()
2044 &response->mad.mad); in ib_mad_recv_done_handler()
2049 agent_send_response(&response->mad.mad, in ib_mad_recv_done_handler()
2059 mad_agent = find_mad_agent(port_priv, &recv->mad.mad); in ib_mad_recv_done_handler()
2069 agent_send_response(&response->mad.mad, &recv->grh, wc, in ib_mad_recv_done_handler()
2414 if (is_data_mad(mad_agent_priv, mad_send_wr->send_buf.mad) && in find_send_wr()
2508 local->mad_priv->header.recv_wc.recv_buf.mad = in local_completions()
2509 &local->mad_priv->mad.mad; in local_completions()
2642 struct ib_mad_private *mad) in ib_mad_post_receive_mads() argument
2662 if (mad) { in ib_mad_post_receive_mads()
2663 mad_priv = mad; in ib_mad_post_receive_mads()
2664 mad = NULL; in ib_mad_post_receive_mads()