[openib-general] [PATCH] OpenSM: Set retries to 0 if RMPP

Hal Rosenstock halr at voltaire.com
Tue Jun 7 15:12:49 PDT 2005


OpenSM: Set retries to 0 if RMPP (in vendor layer)
With this change, able to interoperate with Solaris 10 SA client (which
uses RMPP) with OpenSM

Signed-off-by: Hal Rosenstock <halr at voltaire.com>

Index: osm_vendor_ibumad.c
===================================================================
--- osm_vendor_ibumad.c	(revision 2567)
+++ osm_vendor_ibumad.c	(working copy)
@@ -828,6 +828,7 @@
 	ib_mad_t* const p_mad = osm_madw_get_mad_ptr( p_madw );
 	ib_sa_mad_t* const p_sa = (ib_sa_mad_t *)p_mad;
 	int ret = -1;
+	int is_rmpp = 0;
 #ifndef VENDOR_RMPP_SUPPORT
 	uint32_t paylen = 0;
 #endif
@@ -860,7 +861,8 @@
 			p_sa->rmpp_flags = 0;
 			p_sa->rmpp_status = 0;
 #ifdef VENDOR_RMPP_SUPPORT
-		}
+		} else
+			is_rmpp = 1;
 		osm_log( p_vend->p_log, OSM_LOG_ERROR, "osm_vendor_send: RMPP %d length %d\n", ib_rmpp_is_flag_set((ib_rmpp_mad_t *)p_sa, IB_RMPP_FLAG_ACTIVE), p_madw->mad_size);
 #else
 		} else { 
@@ -882,7 +884,7 @@
 	if ((ret = umad_send(p_bind->port_id, p_bind->agent_id, p_vw->umad,
 			     p_madw->mad_size,
 			     resp_expected ? p_vend->timeout : 0,
-			     p_vend->max_retries)) < 0) {
+			     is_rmpp ? 0 : p_vend->max_retries)) < 0) {
 		osm_log( p_vend->p_log, OSM_LOG_ERROR, "osm_vendor_send: Send failed %d (%m).\n", ret);
 		(*p_bind->send_err_callback)(p_bind->client_context, p_madw);	/* cb frees madw */
 		if (resp_expected)






More information about the general mailing list