<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2654.45">
<TITLE>RE: [openib-general] [PATCH] OpenSM: Clear port number in attribute modifier for P_KeyTable when not switch</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=2>It's ok.</FONT>
</P>

<P><FONT SIZE=2>Eitan Zahavi</FONT>
<BR><FONT SIZE=2>Design Technology Director</FONT>
<BR><FONT SIZE=2>Mellanox Technologies LTD</FONT>
<BR><FONT SIZE=2>Tel:+972-4-9097208</FONT>
<BR><FONT SIZE=2>Fax:+972-4-9593245</FONT>
<BR><FONT SIZE=2>P.O. Box 586 Yokneam 20692 ISRAEL</FONT>
</P>
<BR>

<P><FONT SIZE=2>> -----Original Message-----</FONT>
<BR><FONT SIZE=2>> From: Hal Rosenstock [<A HREF="mailto:halr@voltaire.com">mailto:halr@voltaire.com</A>]</FONT>
<BR><FONT SIZE=2>> Sent: Wednesday, November 02, 2005 2:43 PM</FONT>
<BR><FONT SIZE=2>> To: openib-general@openib.org</FONT>
<BR><FONT SIZE=2>> Subject: [openib-general] [PATCH] OpenSM: Clear port number in attribute modifier</FONT>
<BR><FONT SIZE=2>> for P_KeyTable when not switch</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> Hi,</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> Any objections to committing the patch below ?</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> -- Hal</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> When obtaining the P_KeyTable, clear the high 16 bits of the attribute</FONT>
<BR><FONT SIZE=2>> modifier when node is not a switch. This is supposed to be an ignore</FONT>
<BR><FONT SIZE=2>> field but not all implementations are conformant with this.</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> Signed-off-by: Hal Rosenstock <halr@voltaire.com></FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> Index: osm_port_info_rcv.c</FONT>
<BR><FONT SIZE=2>> ===================================================================</FONT>
<BR><FONT SIZE=2>> --- osm_port_info_rcv.c       (revision 3906)</FONT>
<BR><FONT SIZE=2>> +++ osm_port_info_rcv.c       (working copy)</FONT>
<BR><FONT SIZE=2>> @@ -430,6 +430,7 @@ void osm_pkey_get_tables(</FONT>
<BR><FONT SIZE=2>>    osm_dr_path_t path;</FONT>
<BR><FONT SIZE=2>>    uint8_t  port_num;</FONT>
<BR><FONT SIZE=2>>    uint16_t block_num, max_blocks;</FONT>
<BR><FONT SIZE=2>> +  uint32_t attr_mod_ho;</FONT>
<BR><FONT SIZE=2>>    osm_switch_t* p_switch;</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>>    OSM_LOG_ENTER( p_log, osm_physp_has_pkey );</FONT>
<BR><FONT SIZE=2>> @@ -455,7 +456,7 @@ void osm_pkey_get_tables(</FONT>
<BR><FONT SIZE=2>>    else</FONT>
<BR><FONT SIZE=2>>    {</FONT>
<BR><FONT SIZE=2>>      /* This is a switch, and not a management port. The maximum blocks is defined</FONT>
<BR><FONT SIZE=2>> -       on the switch info partition enforcement cap. */</FONT>
<BR><FONT SIZE=2>> +       in the switch info partition enforcement cap. */</FONT>
<BR><FONT SIZE=2>>      p_switch = osm_get_switch_by_guid(p_subn, p_node->node_info.node_guid);</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>>      if (! p_switch)</FONT>
<BR><FONT SIZE=2>> @@ -472,10 +473,14 @@ void osm_pkey_get_tables(</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>>    for (block_num = 0 ; block_num < max_blocks  ; block_num++)</FONT>
<BR><FONT SIZE=2>>    {</FONT>
<BR><FONT SIZE=2>> +    if (osm_node_get_type( p_node ) != IB_NODE_TYPE_SWITCH)</FONT>
<BR><FONT SIZE=2>> +      attr_mod_ho = block_num;</FONT>
<BR><FONT SIZE=2>> +    else</FONT>
<BR><FONT SIZE=2>> +      attr_mod_ho = block_num | (port_num << 16);</FONT>
<BR><FONT SIZE=2>>      status = osm_req_get( p_req,</FONT>
<BR><FONT SIZE=2>>                            &path,</FONT>
<BR><FONT SIZE=2>>                            IB_MAD_ATTR_P_KEY_TABLE,</FONT>
<BR><FONT SIZE=2>> -                          cl_hton32(block_num | (port_num << 16) ),</FONT>
<BR><FONT SIZE=2>> +                          cl_hton32(attr_mod_ho),</FONT>
<BR><FONT SIZE=2>>                            CL_DISP_MSGID_NONE,</FONT>
<BR><FONT SIZE=2>>                            &context );</FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> _______________________________________________</FONT>
<BR><FONT SIZE=2>> openib-general mailing list</FONT>
<BR><FONT SIZE=2>> openib-general@openib.org</FONT>
<BR><FONT SIZE=2>> <A HREF="http://openib.org/mailman/listinfo/openib-general" TARGET="_blank">http://openib.org/mailman/listinfo/openib-general</A></FONT>
<BR><FONT SIZE=2>> </FONT>
<BR><FONT SIZE=2>> To unsubscribe, please visit <A HREF="http://openib.org/mailman/listinfo/openib-general" TARGET="_blank">http://openib.org/mailman/listinfo/openib-general</A></FONT>
</P>

</BODY>
</HTML>