Hi Eli,
On 11:02 Tue 03 May , Eli Dorfman wrote:
> clean partition enforcement on inter-switch links
>
> after connectivity change from switch-host to switch-switch the
> partition enforcement bits were not cleared on the port.
> since the pkey table is not set on inter-switch links,
> packets with pkey other than default are dropped.
>
> Signed-off-by: Eli Dorfman <[email protected]>
> ---
> opensm/osm_pkey_mgr.c | 24 ++++++++++++++++++++++++
> 1 files changed, 24 insertions(+), 0 deletions(-)
>
> diff --git a/opensm/osm_pkey_mgr.c b/opensm/osm_pkey_mgr.c
> index f6bc9d1..b135cf9 100644
> --- a/opensm/osm_pkey_mgr.c
> +++ b/opensm/osm_pkey_mgr.c
> @@ -507,6 +507,10 @@ int osm_pkey_mgr_process(IN osm_opensm_t * p_osm)
> cl_map_item_t *p_next;
> osm_prtn_t *p_prtn;
> osm_port_t *p_port;
> + osm_switch_t *p_sw;
> + osm_physp_t *p_physp;
> + osm_node_t *p_remote_node;
> + uint8_t i;
> int ret = 0;
>
> CL_ASSERT(p_osm);
> @@ -550,6 +554,26 @@ int osm_pkey_mgr_process(IN osm_opensm_t * p_osm)
> ret = -1;
> }
>
> + /* clear partition enforcement on inter-switch links */
> + p_tbl = &p_osm->subn.sw_guid_tbl;
> + p_next = cl_qmap_head(p_tbl);
> + while (p_next != cl_qmap_end(p_tbl)) {
> + p_sw = (osm_switch_t * *) p_next;
> + p_next = cl_qmap_next(p_next);
> + for (i = 1; i < p_sw->num_ports; i++) {
> + p_physp = osm_node_get_physp_ptr(p_sw->p_node, i);
> + if (p_physp && p_physp->p_remote_physp)
> + p_remote_node = p_physp->p_remote_physp->p_node;
> + else
> + continue;
> + if (osm_node_get_type(p_remote_node) !=
> IB_NODE_TYPE_SWITCH)
> + continue;
> +
> + /* clear partition enforcement */
Don't you want limit the pkey_mgr_enforce_partition() only on ports that have
these bits enable in portinfo?
Something like:
if(! p_physp->p_remote_physp->port_info.vl_enforce &&
0xc )
continue;
> + if (pkey_mgr_enforce_partition(&p_osm->log, &p_osm->sm,
> p_physp, FALSE))
> + ret = -1;
> + }
> + }
> _err:
> CL_PLOCK_RELEASE(&p_osm->lock);
> OSM_LOG_EXIT(&p_osm->log);
> --
> 1.7.4.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
-- Alex
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html