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 <[EMAIL PROTECTED]>

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)



_______________________________________________
openib-general mailing list
[email protected]
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to