[Openib-windows] [PATCH] client reregister bit and static mac for Mellanox device

Yossi Leybovich sleybo at mellanox.co.il
Mon Apr 24 05:50:07 PDT 2006


Fab
 
While debug the IPoIB reregister I found 2 bugs:
 
1. FW bug, our latest FW does not clear the client reregister bit on
port_info_set response.
This will be fix in the coming release but meanwhile I think we should
add work around for the problem.
It will add stability to our reregister flow.
 
2. I had bug in the generation of Mac from mlnx guids so mlnx guids were
always generated laa MACs.
 
this patch address these 2 issues
 
10x
Yossi
 
Singed-off-by: Yossi Leybovich (sleybo at mellanox.co.il)
Index: core/al/kernel/al_smi.c
===================================================================
--- core/al/kernel/al_smi.c (revision 1280)
+++ core/al/kernel/al_smi.c (working copy)
@@ -1810,12 +1810,14 @@
 
    if( p_port_info )
    {
+    /* Work around for FW bug , client reregister bit is not clear in
response*/
+    ib_port_info_t   *p_port_info_req =
ib_smp_get_payload_ptr((ib_smp_t*)p_mad);
     p_spl_qp_svc->base_lid = p_port_info->base_lid;
     p_spl_qp_svc->lmc = ib_port_info_get_lmc( p_port_info );
-    if (p_port_info->subnet_timeout & 0x80)
+    if (p_port_info_req->subnet_timeout & 0x80)
     {
      AL_TRACE(AL_DBG_PNP,
-      ("Client reregister event, setting sm_lid to 0.\n"));
+      ("Client reregister event, setting sm_lid 0 to tran_id
0x%I64x.\n",p_smp->trans_id));
      ci_ca_lock_attr(p_spl_qp_svc->obj.p_ci_ca);
      p_spl_qp_svc->obj.p_ci_ca->p_pnp_attr->
       p_port_attr->sm_lid= 0;
Index: ulp/ipoib/kernel/ipoib_xfr_mgr.h
===================================================================
--- ulp/ipoib/kernel/ipoib_xfr_mgr.h (revision 1280)
+++ ulp/ipoib/kernel/ipoib_xfr_mgr.h (working copy)
@@ -211,8 +211,8 @@
  /* Port guid is in network byte order.  OUI is in lower 3 bytes. */
  ASSERT( p_guid[0] == 0x00 && p_guid[1] == 0x02 && p_guid[2] == 0xc9 );
 
- if( (port_guid & CL_HTON64( 0x000000ffff0000 )) !=
-  CL_HTON64(0x00000002000000))
+ if( (port_guid & CL_HTON64( 0x000000ffff000000 )) !=
+  CL_HTON64(0x0000000200000000))
  {
   return IB_INVALID_GUID;
  }

-------------- next part --------------
A non-text attachment was scrubbed...
Name: ipoib_static_mac_client.patch
Type: application/octet-stream
Size: 1552 bytes
Desc: ipoib_static_mac_client.patch
URL: <http://lists.openfabrics.org/pipermail/ofw/attachments/20060424/e6bb6c27/attachment.obj>


More information about the ofw mailing list