Title: RE: [openib-general] [PATCH] OpenSM: Clear port number in attribute modifier for P_KeyTable when not switch

It's ok.

Eitan Zahavi
Design Technology Director
Mellanox Technologies LTD
Tel:+972-4-9097208
Fax:+972-4-9593245
P.O. Box 586 Yokneam 20692 ISRAEL


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

_______________________________________________
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