[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