OpenSM: Workaround for IBM eHCA logical switch partition enforcement

The problem is that the eHCA logical switches do not support partition 
enforcement. This *should* be reflected by a zero value in the 
PartitionEnforcementCap component of the switchinfo attribute.  The IBM 
firmware bug is that it returns a one rather than a zero in this field.
However, when subsequent requests to the switch port are received for
the P_KeyTable, the firmware drops them on the floor and opensm thrashes
timing out all the get P_KeyTable MADs it issues for all of the ports on
the two logical switches.

Remainder of patch supplied by Brad Benton <[EMAIL PROTECTED]>

Signed-off-by: Hal Rosenstock <[EMAIL PROTECTED]>

Index: osm_port_info_rcv.c
===================================================================
--- osm_port_info_rcv.c (revision 3959)
+++ osm_port_info_rcv.c (working copy)
@@ -416,6 +416,7 @@ __osm_pi_rcv_process_router_port(
   OSM_LOG_EXIT( p_rcv->p_log );
 }
 
+#define IBM_VENDOR_ID  (0x5076)
 /**********************************************************************
  **********************************************************************/
 void osm_pkey_get_tables(
@@ -468,7 +469,11 @@ void osm_pkey_get_tables(
       goto Exit;
     }
 
-    /* bail out if this is a switch with no partition enforcement capability */
+    /* Check for IBM eHCA firmware defect in reporting partition enforcement 
cap */
+    if (cl_ntoh32(ib_node_info_get_vendor_id(&p_node->node_info)) == 
IBM_VENDOR_ID)
+      p_switch->switch_info.enforce_cap = 0;
+
+    /* Bail out if this is a switch with no partition enforcement capability */
     if (cl_ntoh16(p_switch->switch_info.enforce_cap) == 0)
       goto Exit;
 



_______________________________________________
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