[openib-general] [PATCH] OpenSM - fix osm_vendor_send on vendor mads

Yael Kalka yael at mellanox.co.il
Wed Apr 5 01:54:15 PDT 2006


Hi Hal,

We saw the following problem in the osm_vendor_send mad (in
osm_vendor_ibumad.c). Currently, there is a case on the Management
Class values, where the cases are
IB_MCLASS_SUBN_DIR/IB_MCLASS_SUBN_LID and default, when the assumption
is that in the default case the management class is
IB_MCLASS_SUBN_ADM.
So when the libosmvendor is used for sending for example Vendor type
mads, we address it as SA mad, and address the rmpp fields, which are
not relevant in this case.
The following patch addes the default as case of IB_MCLASS_SUBN_ADM,
and changes the default case to not to check the rmpp header.
Please apply the patch on both trunk and branch 1.0.
Thanks,

Yael

Signed-off-by:  Yael Kalka <yael at mellanox.co.il>

Index: libvendor/osm_vendor_ibumad.c
===================================================================
--- libvendor/osm_vendor_ibumad.c	(revision 6192)
+++ libvendor/osm_vendor_ibumad.c	(working copy)
@@ -1053,7 +1053,7 @@ osm_vendor_send(
 		umad_set_addr_net(p_vw->umad, p_mad_addr->dest_lid, 0, 0, 0);
 		umad_set_grh(p_vw->umad, 0);
 		break;
-	default:	/* GSI		FIXME: no GRH */
+   case IB_MCLASS_SUBN_ADM: /* GSI		FIXME: no GRH */
 		umad_set_addr_net(p_vw->umad, p_mad_addr->dest_lid,
 				  p_mad_addr->addr_type.gsi.remote_qp,
 				  p_mad_addr->addr_type.gsi.service_level,
@@ -1087,6 +1087,14 @@ osm_vendor_send(
 		}
 #endif
 		break;
+	default:	/* GSI		FIXME: no GRH */
+		umad_set_addr_net(p_vw->umad, p_mad_addr->dest_lid,
+				  p_mad_addr->addr_type.gsi.remote_qp,
+				  p_mad_addr->addr_type.gsi.service_level,
+				  IB_QP1_WELL_KNOWN_Q_KEY);
+		umad_set_grh(p_vw->umad, 0);	/* FIXME: GRH support */
+		umad_set_pkey(p_vw->umad, p_mad_addr->addr_type.gsi.pkey);
+		break;
 	}
 
 	if (resp_expected)




More information about the general mailing list