OpenSM/osm_ucast_lash.c: In osm_get_lash_sl, fix SL when CA ports on same switch
    
This change resolves an issue with strange SL assignment when
two HCAs communicate with other and are on the same switch.
Since LASH is switch to switch routing, the get_lash_sl
function was casting 9999 (the value assigned to the
variable NONE) to be a uint8_t when asked for an SL assignment
in this case. This change resolves this issue.
    
Signed-off-by: Thomas Sødring <[EMAIL PROTECTED]>
Signed-off-by: Hal Rosenstock <[EMAIL PROTECTED]>

diff --git a/osm/opensm/osm_ucast_lash.c b/osm/opensm/osm_ucast_lash.c
index 5dfe068..e5f751c 100644
--- a/osm/opensm/osm_ucast_lash.c
+++ b/osm/opensm/osm_ucast_lash.c
@@ -1468,6 +1468,7 @@ uint8_t osm_get_lash_sl(osm_opensm_t *p_
                        osm_port_t *p_src_port, osm_port_t *p_dst_port)
 {
        unsigned dst_id;
+       unsigned src_id;
        osm_switch_t *p_sw;
 
        if (p_osm->routing_engine.ucast_build_fwd_tables != lash_process)
@@ -1482,6 +1483,10 @@ uint8_t osm_get_lash_sl(osm_opensm_t *p_
        if (!p_sw || !p_sw->priv)
                return OSM_DEFAULT_SL;
 
+       src_id = get_lash_id(p_sw);
+       if (src_id == dst_id) 
+               return OSM_DEFAULT_SL;
+
        return (uint8_t)((switch_t *)p_sw->priv)->routing_table[dst_id].lane;
 }
 


_______________________________________________
openib-general mailing list
openib-general@openib.org
http://openib.org/mailman/listinfo/openib-general

To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general

Reply via email to