Lines Matching refs:mad
82 struct ib_mad mad;
88 struct ib_mad mad;
220 static void smp_snoop(struct ib_device *ibdev, u8 port_num, const struct ib_mad *mad,
231 if ((mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_SUBN_LID_ROUTED ||
232 mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_SUBN_DIRECTED_ROUTE) &&
233 mad->mad_hdr.method == IB_MGMT_METHOD_SET)
234 switch (mad->mad_hdr.attr_id) {
238 pinfo = (struct ib_port_info *) ((struct ib_smp *) mad)->data;
264 bn = be32_to_cpu(((struct ib_smp *)mad)->attr_mod) & 0xFFFF;
265 base = (__be16 *) &(((struct ib_smp *)mad)->data[0]);
300 bn = be32_to_cpu(((struct ib_smp *)mad)->attr_mod);
302 (u8 *)(&((struct ib_smp *)mad)->data));
304 (u8 *)(&((struct ib_smp *)mad)->data));
320 sl2vl64.sl8[jj] = ((struct ib_smp *)mad)->data[jj];
368 struct ib_mad *mad)
372 if ((mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_SUBN_LID_ROUTED ||
373 mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_SUBN_DIRECTED_ROUTE) &&
374 mad->mad_hdr.method == IB_MGMT_METHOD_GET_RESP &&
375 mad->mad_hdr.attr_id == IB_SMP_ATTR_NODE_DESC) {
377 memcpy(((struct ib_smp *) mad)->data, dev->node_desc,
383 static void forward_trap(struct mlx4_ib_dev *dev, u8 port_num, const struct ib_mad *mad)
385 int qpn = mad->mad_hdr.mgmt_class != IB_MGMT_CLASS_SUBN_LID_ROUTED;
404 memcpy(send_buf->mad, mad, sizeof *mad);
512 struct ib_grh *grh, struct ib_mad *mad)
614 memcpy(&tun_mad->mad, mad, sizeof *mad);
683 struct ib_mad *mad)
706 if (mad->mad_hdr.mgmt_class != IB_MGMT_CLASS_CM) {
730 if (mlx4_ib_demux_cm_handler(ibdev, port, NULL, mad))
733 err = mlx4_ib_send_to_slave(dev, slave, port, wc->qp->qp_type, wc, grh, mad);
741 /* Initially assume that this mad is for us */
744 /* See if the slave id is encoded in a response mad */
745 if (mad->mad_hdr.method & 0x80) {
746 slave_id = (u8 *) &mad->mad_hdr.tid;
769 switch (mad->mad_hdr.mgmt_class) {
777 if (!(mad->mad_hdr.method & IB_MGMT_METHOD_RESP)) {
778 mlx4_ib_warn(ibdev, "demux QP0. rejecting unsolicited mad for slave %d class 0x%x, method 0x%x\n",
779 slave, mad->mad_hdr.mgmt_class,
780 mad->mad_hdr.method);
787 (struct ib_sa_mad *) mad))
791 if (mlx4_ib_demux_cm_handler(ibdev, port, &slave, mad))
795 if (mad->mad_hdr.method != IB_MGMT_METHOD_GET_RESP)
801 pr_debug("dropping unsupported ingress mad from class:%d "
802 "for slave:%d\n", mad->mad_hdr.mgmt_class, slave);
813 err = mlx4_ib_send_to_slave(dev, slave, port, wc->qp->qp_type, wc, grh, mad);
1357 u8 *s_mac, u16 vlan_id, struct ib_mad *mad)
1422 memcpy(&sqp_mad->payload, mad, sizeof *mad);
1510 switch (tunnel->mad.mad_hdr.method) {
1518 slave_id = (u8 *) &tunnel->mad.mad_hdr.tid;
1520 mlx4_ib_warn(ctx->ib_dev, "egress mad has non-null tid msb:%d "
1522 tunnel->mad.mad_hdr.mgmt_class, slave);
1531 switch (tunnel->mad.mad_hdr.mgmt_class) {
1540 (struct ib_sa_mad *) &tunnel->mad))
1545 (struct ib_mad *) &tunnel->mad))
1549 if (tunnel->mad.mad_hdr.method != IB_MGMT_METHOD_GET &&
1550 tunnel->mad.mad_hdr.method != IB_MGMT_METHOD_SET)
1556 mlx4_ib_warn(ctx->ib_dev, "dropping unsupported egress mad from class:%d "
1557 "for slave:%d\n", tunnel->mad.mad_hdr.mgmt_class, slave);
1562 /* We are using standard ib_core services to send the mad, so generate a
1592 &ah_attr, wc->smac, vlan_id, &tunnel->mad);
1901 struct ib_mad *mad;
1920 mad = (struct ib_mad *) &(((struct mlx4_mad_rcv_buf *)
1926 mlx4_ib_demux_mad(ctx->ib_dev, ctx->port, &wc, grh, mad);