[openib-general] [PATCH] opensm: use LMC value with ESP0 only when not disabled by user

Eitan Zahavi eitan at mellanox.co.il
Mon Nov 20 23:40:24 PST 2006


Hi Sasha,

Thanks for the good catch!

Eitan
Sasha Khapyorsky wrote:
> The problem is that some buggy Enhanced SP0 is not supports LMC setting,
> to workaround this subnet opt->lmc_esp0 was used. In most of cases it is
> handled properly, but LID manager still allocate 2^^LMC lids for this
> port, as result we have invalid entries in switches' forwarding tables.
>
> Signed-off-by: Sasha Khapyorsky <sashak at voltaire.com>
> ---
>  osm/opensm/osm_lid_mgr.c |    4 ++--
>  1 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/osm/opensm/osm_lid_mgr.c b/osm/opensm/osm_lid_mgr.c
> index ba5f120..e9bc295 100644
> --- a/osm/opensm/osm_lid_mgr.c
> +++ b/osm/opensm/osm_lid_mgr.c
> @@ -856,7 +856,7 @@ __osm_lid_mgr_get_port_lid(
>      /* Determine if base switch port 0 */
>      p_sw = osm_get_switch_by_guid(p_mgr->p_subn,
>                                    osm_node_get_node_guid(osm_port_get_parent_node(p_port)));
> -    if (!osm_switch_is_sp0_enhanced(p_sw))
> +    if (!p_mgr->p_subn->opt.lmc_esp0 || !osm_switch_is_sp0_enhanced(p_sw))
>      {
>        num_lids = 1;
>      }
> @@ -1242,7 +1242,7 @@ __osm_lid_mgr_set_physp_pi(
>  
>      /* Determine if enhanced switch port 0 and if so set LMC */
>      p_sw = osm_get_switch_by_guid( p_mgr->p_subn, p_node->node_info.node_guid );
> -    if (osm_switch_is_sp0_enhanced(p_sw))
> +    if (p_mgr->p_subn->opt.lmc_esp0 && osm_switch_is_sp0_enhanced(p_sw))
>      {
>        /* M_KeyProtectBits are always zero */
>        p_pi->mkey_lmc = p_mgr->p_subn->opt.lmc;
>   





More information about the general mailing list