Hi Sasha,

There's a mess in host vs. network order in lids handling in ftree.
In vast majority of the cases lid is required to be in host order,
so there are many cl_ntoh16() conversions.
Fixing it to be always in host order.

Signed-off-by: Yevgeny Kliteynik <[email protected]>
---
 opensm/opensm/osm_ucast_ftree.c |  163 +++++++++++++++++++--------------------
 1 files changed, 78 insertions(+), 85 deletions(-)

diff --git a/opensm/opensm/osm_ucast_ftree.c b/opensm/opensm/osm_ucast_ftree.c
index 58d1c14..38ade6d 100644
--- a/opensm/opensm/osm_ucast_ftree.c
+++ b/opensm/opensm/osm_ucast_ftree.c
@@ -138,8 +138,8 @@ typedef union ftree_hca_or_sw_ {

 typedef struct ftree_port_group_t_ {
        cl_map_item_t map_item;
-       ib_net16_t base_lid;    /* base lid of the current node */
-       ib_net16_t remote_base_lid;     /* base lid of the remote node */
+       uint16_t base_lid;      /* base lid of the current node */
+       uint16_t remote_base_lid;       /* base lid of the remote node */
        ib_net64_t port_guid;   /* port guid of this port */
        ib_net64_t node_guid;   /* this node's guid */
        uint8_t node_type;      /* this node's type */
@@ -165,7 +165,7 @@ typedef struct ftree_sw_t_ {
        osm_switch_t *p_osm_sw;
        uint32_t rank;
        ftree_tuple_t tuple;
-       ib_net16_t base_lid;
+       uint16_t base_lid;
        ftree_port_group_t **down_port_groups;
        uint8_t down_port_groups_num;
        ftree_port_group_t **up_port_groups;
@@ -207,7 +207,7 @@ typedef struct ftree_fabric_t_ {
        ftree_sw_t **leaf_switches;
        uint32_t leaf_switches_num;
        uint16_t max_cn_per_leaf;
-       uint16_t lft_max_lid_ho;
+       uint16_t lft_max_lid;
        boolean_t fabric_built;
 } ftree_fabric_t;

@@ -371,8 +371,8 @@ static void port_destroy(IN ftree_port_t * p_port)
  **
  ***************************************************/

-static ftree_port_group_t *port_group_create(IN ib_net16_t base_lid,
-                                            IN ib_net16_t remote_base_lid,
+static ftree_port_group_t *port_group_create(IN uint16_t base_lid,
+                                            IN uint16_t remote_base_lid,
                                             IN ib_net64_t port_guid,
                                             IN ib_net64_t node_guid,
                                             IN uint8_t node_type,
@@ -490,9 +490,9 @@ static void port_group_dump(IN ftree_fabric_t * p_ftree,
                "0x%016" PRIx64 " (0x%04x) <--> 0x%016" PRIx64 " (0x%04x)\n",
                size, buff,
                (direction == FTREE_DIRECTION_DOWN) ? "DOWN" : "UP",
-               cl_ntoh64(p_group->port_guid), cl_ntoh16(p_group->base_lid),
+               cl_ntoh64(p_group->port_guid), p_group->base_lid,
                cl_ntoh64(p_group->remote_port_guid),
-               cl_ntoh16(p_group->remote_base_lid));
+               p_group->remote_base_lid);

 }                              /* port_group_dump() */

@@ -539,7 +539,8 @@ static ftree_sw_t *sw_create(IN ftree_fabric_t * p_ftree,
        p_sw->rank = 0xFFFFFFFF;
        tuple_init(p_sw->tuple);

-       p_sw->base_lid = osm_node_get_base_lid(p_sw->p_osm_sw->p_node, 0);
+       p_sw->base_lid = cl_ntoh16(
+               osm_node_get_base_lid(p_sw->p_osm_sw->p_node, 0));

        ports_num = osm_node_get_num_physp(p_sw->p_osm_sw->p_node);
        p_sw->down_port_groups =
@@ -631,7 +632,7 @@ static boolean_t sw_ranked(IN ftree_sw_t * p_sw)
 /***************************************************/

 static ftree_port_group_t *sw_get_port_group_by_remote_lid(IN ftree_sw_t * 
p_sw,
-                                                          IN ib_net16_t
+                                                          IN uint16_t
                                                           remote_base_lid,
                                                           IN ftree_direction_t
                                                           direction)
@@ -658,8 +659,8 @@ static ftree_port_group_t 
*sw_get_port_group_by_remote_lid(IN ftree_sw_t * p_sw,
 /***************************************************/

 static void sw_add_port(IN ftree_sw_t * p_sw, IN uint8_t port_num,
-                       IN uint8_t remote_port_num, IN ib_net16_t base_lid,
-                       IN ib_net16_t remote_base_lid, IN ib_net64_t port_guid,
+                       IN uint8_t remote_port_num, IN uint16_t base_lid,
+                       IN uint16_t remote_base_lid, IN ib_net64_t port_guid,
                        IN ib_net64_t remote_port_guid,
                        IN ib_net64_t remote_node_guid,
                        IN uint8_t remote_node_type,
@@ -691,17 +692,17 @@ static void sw_add_port(IN ftree_sw_t * p_sw, IN uint8_t 
port_num,

 /***************************************************/

-static inline cl_status_t sw_set_hops(IN ftree_sw_t * p_sw, IN uint16_t lid_ho,
+static inline cl_status_t sw_set_hops(IN ftree_sw_t * p_sw, IN uint16_t lid,
                                      IN uint8_t port_num, IN uint8_t hops)
 {
        /* set local min hop table(LID) */
-       return osm_switch_set_hops(p_sw->p_osm_sw, lid_ho, port_num, hops);
+       return osm_switch_set_hops(p_sw->p_osm_sw, lid, port_num, hops);
 }

 /***************************************************/

 static int set_hops_on_remote_sw(IN ftree_port_group_t * p_group,
-                                IN ib_net16_t target_lid, IN uint8_t hops)
+                                IN uint16_t target_lid, IN uint8_t hops)
 {
        ftree_port_t *p_port;
        uint8_t i, ports_num;
@@ -711,7 +712,7 @@ static int set_hops_on_remote_sw(IN ftree_port_group_t * 
p_group,
        ports_num = (uint8_t) cl_ptr_vector_get_size(&p_group->ports);
        for (i = 0; i < ports_num; i++) {
                cl_ptr_vector_at(&p_group->ports, i, (void *)&p_port);
-               if (sw_set_hops(p_remote_sw, cl_ntoh16(target_lid),
+               if (sw_set_hops(p_remote_sw, target_lid,
                                p_port->remote_port_num, hops))
                        return -1;
        }
@@ -800,7 +801,7 @@ static void hca_dump(IN ftree_fabric_t * p_ftree, IN 
ftree_hca_t * p_hca)

 static ftree_port_group_t *hca_get_port_group_by_remote_lid(IN ftree_hca_t *
                                                            p_hca,
-                                                           IN ib_net16_t
+                                                           IN uint16_t
                                                            remote_base_lid)
 {
        uint32_t i;
@@ -815,8 +816,8 @@ static ftree_port_group_t 
*hca_get_port_group_by_remote_lid(IN ftree_hca_t *
 /***************************************************/

 static void hca_add_port(IN ftree_hca_t * p_hca, IN uint8_t port_num,
-                        IN uint8_t remote_port_num, IN ib_net16_t base_lid,
-                        IN ib_net16_t remote_base_lid, IN ib_net64_t port_guid,
+                        IN uint8_t remote_port_num, IN uint16_t base_lid,
+                        IN uint16_t remote_base_lid, IN ib_net64_t port_guid,
                         IN ib_net64_t remote_port_guid,
                         IN ib_net64_t remote_node_guid,
                         IN uint8_t remote_node_type,
@@ -951,7 +952,7 @@ static void fabric_clear(ftree_fabric_t * p_ftree)
        p_ftree->leaf_switch_rank = 0;
        p_ftree->max_switch_rank = 0;
        p_ftree->max_cn_per_leaf = 0;
-       p_ftree->lft_max_lid_ho = 0;
+       p_ftree->lft_max_lid = 0;
        p_ftree->leaf_switches = NULL;
        p_ftree->fabric_built = FALSE;

@@ -998,8 +999,8 @@ static void fabric_add_sw(ftree_fabric_t * p_ftree, 
osm_switch_t * p_osm_sw)
                       &p_sw->map_item);

        /* track the max lid (in host order) that exists in the fabric */
-       if (cl_ntoh16(p_sw->base_lid) > p_ftree->lft_max_lid_ho)
-               p_ftree->lft_max_lid_ho = cl_ntoh16(p_sw->base_lid);
+       if (p_sw->base_lid > p_ftree->lft_max_lid)
+               p_ftree->lft_max_lid = p_sw->base_lid;
 }

 /***************************************************/
@@ -1156,7 +1157,7 @@ static void fabric_dump_general_info(IN ftree_fabric_t * 
p_ftree)
                                        "      GUID: 0x%016" PRIx64
                                        ", LID: %u, Index %s\n",
                                        sw_get_guid_ho(p_sw),
-                                       cl_ntoh16(p_sw->base_lid),
+                                       p_sw->base_lid,
                                        tuple_to_str(p_sw->tuple));
                }

@@ -1167,7 +1168,7 @@ static void fabric_dump_general_info(IN ftree_fabric_t * 
p_ftree)
                                "      GUID: 0x%016" PRIx64
                                ", LID: %u, Index %s\n",
                                sw_get_guid_ho(p_ftree->leaf_switches[i]),
-                               cl_ntoh16(p_ftree->leaf_switches[i]->base_lid),
+                               p_ftree->leaf_switches[i]->base_lid,
                                tuple_to_str(p_ftree->leaf_switches[i]->tuple));
                }
        }
@@ -1222,7 +1223,7 @@ static void fabric_dump_hca_ordering(IN ftree_fabric_t * 
p_ftree)
                                continue;

                        fprintf(p_hca_ordering_file, "0x%04x\t%s\n",
-                               cl_ntoh16(p_group_on_hca->base_lid),
+                               p_group_on_hca->base_lid,
                                p_hca->p_osm_node->print_desc);

                        printed_hcas_on_leaf++;
@@ -1426,7 +1427,7 @@ static void fabric_make_indexing(IN ftree_fabric_t * 
p_ftree)
                "                                            - Node LID     : 
%u\n"
                "                                            - Node GUID    : 
0x%016"
                PRIx64 "\n", p_sw->rank, tuple_to_str(p_sw->tuple),
-               cl_ntoh16(p_sw->base_lid), sw_get_guid_ho(p_sw));
+               p_sw->base_lid, sw_get_guid_ho(p_sw));

        /*
         * Now run BFS and assign indexes to all switches
@@ -1697,14 +1698,13 @@ static boolean_t fabric_validate_topology(IN 
ftree_fabric_t * p_ftree)
                                        ", LID %u, Index %s - %u groups\n",
                                        sw_get_guid_ho
                                        (reference_sw_arr[p_sw->rank]),
-                                       cl_ntoh16(reference_sw_arr[p_sw->rank]->
-                                                 base_lid),
+                                       reference_sw_arr[p_sw->rank]->base_lid,
                                        tuple_to_str
                                        (reference_sw_arr[p_sw->rank]->tuple),
                                        reference_sw_arr[p_sw->rank]->
                                        up_port_groups_num,
                                        sw_get_guid_ho(p_sw),
-                                       cl_ntoh16(p_sw->base_lid),
+                                       p_sw->base_lid,
                                        tuple_to_str(p_sw->tuple),
                                        p_sw->up_port_groups_num);
                                res = FALSE;
@@ -1724,14 +1724,13 @@ static boolean_t fabric_validate_topology(IN 
ftree_fabric_t * p_ftree)
                                        ", LID %u, Index %s - %u port groups\n",
                                        sw_get_guid_ho
                                        (reference_sw_arr[p_sw->rank]),
-                                       cl_ntoh16(reference_sw_arr[p_sw->rank]->
-                                                 base_lid),
+                                       reference_sw_arr[p_sw->rank]->base_lid,
                                        tuple_to_str
                                        (reference_sw_arr[p_sw->rank]->tuple),
                                        reference_sw_arr[p_sw->rank]->
                                        down_port_groups_num,
                                        sw_get_guid_ho(p_sw),
-                                       cl_ntoh16(p_sw->base_lid),
+                                       p_sw->base_lid,
                                        tuple_to_str(p_sw->tuple),
                                        p_sw->down_port_groups_num);
                                res = FALSE;
@@ -1761,10 +1760,9 @@ static boolean_t fabric_validate_topology(IN 
ftree_fabric_t * p_ftree)
                                                        sw_get_guid_ho
                                                        (reference_sw_arr
                                                         [p_sw->rank]),
-                                                       cl_ntoh16
-                                                       (reference_sw_arr
+                                                       reference_sw_arr
                                                         [p_sw->rank]->
-                                                        base_lid),
+                                                        base_lid,
                                                        tuple_to_str
                                                        (reference_sw_arr
                                                         [p_sw->rank]->tuple),
@@ -1772,8 +1770,7 @@ static boolean_t fabric_validate_topology(IN 
ftree_fabric_t * p_ftree)
                                                        (&p_ref_group->ports),
                                                        sw_get_guid_ho
                                                        (p_sw),
-                                                       cl_ntoh16(p_sw->
-                                                                 base_lid),
+                                                       p_sw->base_lid,
                                                        tuple_to_str
                                                        (p_sw->tuple),
                                                        cl_ptr_vector_get_size
@@ -1808,10 +1805,9 @@ static boolean_t fabric_validate_topology(IN 
ftree_fabric_t * p_ftree)
                                                        sw_get_guid_ho
                                                        (reference_sw_arr
                                                         [p_sw->rank]),
-                                                       cl_ntoh16
-                                                       (reference_sw_arr
+                                                       reference_sw_arr
                                                         [p_sw->rank]->
-                                                        base_lid),
+                                                        base_lid,
                                                        tuple_to_str
                                                        (reference_sw_arr
                                                         [p_sw->rank]->tuple),
@@ -1819,8 +1815,7 @@ static boolean_t fabric_validate_topology(IN 
ftree_fabric_t * p_ftree)
                                                        (&p_ref_group->ports),
                                                        sw_get_guid_ho
                                                        (p_sw),
-                                                       cl_ntoh16(p_sw->
-                                                                 base_lid),
+                                                       p_sw->base_lid,
                                                        tuple_to_str
                                                        (p_sw->tuple),
                                                        cl_ptr_vector_get_size
@@ -1854,7 +1849,7 @@ static void set_sw_fwd_table(IN cl_map_item_t * const 
p_map_item,
        ftree_sw_t *p_sw = (ftree_sw_t * const)p_map_item;
        ftree_fabric_t *p_ftree = (ftree_fabric_t *) context;

-       p_sw->p_osm_sw->max_lid_ho = p_ftree->lft_max_lid_ho;
+       p_sw->p_osm_sw->max_lid_ho = p_ftree->lft_max_lid;
        osm_ucast_mgr_set_fwd_table(&p_ftree->p_osm->sm.ucast_mgr,
                                    p_sw->p_osm_sw);
 }
@@ -1879,7 +1874,7 @@ static boolean_t
 fabric_route_upgoing_by_going_down(IN ftree_fabric_t * p_ftree,
                                   IN ftree_sw_t * p_sw,
                                   IN ftree_sw_t * p_prev_sw,
-                                  IN ib_net16_t target_lid,
+                                  IN uint16_t target_lid,
                                   IN uint8_t target_rank,
                                   IN boolean_t is_real_lid,
                                   IN boolean_t is_main_path,
@@ -1946,8 +1941,7 @@ fabric_route_upgoing_by_going_down(IN ftree_fabric_t * 
p_ftree,
                p_remote_sw = p_group->remote_hca_or_sw.p_sw;

                if (osm_switch_get_least_hops(p_remote_sw->p_osm_sw,
-                                             cl_ntoh16(target_lid)) !=
-                   OSM_NO_PATH) {
+                                             target_lid) != OSM_NO_PATH) {
                        /* Loop in the fabric - we already routed the remote 
switch
                           on our way UP, and now we see it again on our way 
DOWN */
                        OSM_LOG(&p_ftree->p_osm->log, OSM_LOG_DEBUG,
@@ -1955,9 +1949,9 @@ fabric_route_upgoing_by_going_down(IN ftree_fabric_t * 
p_ftree,
                                "Switch %s (LID %u) closes loop through switch 
%s (LID %u)\n",
                                (p_remote_sw->rank - highest_rank_in_route) * 2,
                                tuple_to_str(p_remote_sw->tuple),
-                               cl_ntoh16(p_group->base_lid),
+                               p_group->base_lid,
                                tuple_to_str(p_sw->tuple),
-                               cl_ntoh16(p_group->remote_base_lid));
+                               p_group->remote_base_lid);
                        continue;
                }

@@ -1991,18 +1985,18 @@ fabric_route_upgoing_by_going_down(IN ftree_fabric_t * 
p_ftree,
                /* second case: skip the port group if the remote (lower)
                   switch has been already configured for this target LID */
                if (is_real_lid && !is_main_path &&
-                   p_remote_sw->p_osm_sw->new_lft[cl_ntoh16(target_lid)] !=
+                   p_remote_sw->p_osm_sw->new_lft[target_lid] !=
                    OSM_NO_PATH)
                        continue;

                /* setting fwd tbl port only if this is real LID */
                if (is_real_lid) {
-                       p_remote_sw->p_osm_sw->new_lft[cl_ntoh16(target_lid)] =
+                       p_remote_sw->p_osm_sw->new_lft[target_lid] =
                            p_min_port->remote_port_num;
                        OSM_LOG(&p_ftree->p_osm->log, OSM_LOG_DEBUG,
                                "Switch %s: set path to CA LID %u through port 
%u\n",
                                tuple_to_str(p_remote_sw->tuple),
-                               cl_ntoh16(target_lid),
+                               target_lid,
                                p_min_port->remote_port_num);

                        /* On the remote switch that is pointed by the p_group,
@@ -2062,7 +2056,7 @@ fabric_route_upgoing_by_going_down(IN ftree_fabric_t * 
p_ftree,
 static void fabric_route_downgoing_by_going_up(IN ftree_fabric_t * p_ftree,
                                               IN ftree_sw_t * p_sw,
                                               IN ftree_sw_t * p_prev_sw,
-                                              IN ib_net16_t target_lid,
+                                              IN uint16_t target_lid,
                                               IN uint8_t target_rank,
                                               IN boolean_t is_real_lid,
                                               IN boolean_t is_main_path,
@@ -2198,7 +2192,7 @@ static void fabric_route_downgoing_by_going_up(IN 
ftree_fabric_t * p_ftree,
                        OSM_LOG(&p_ftree->p_osm->log, OSM_LOG_DEBUG,
                                " - Routing MAIN path for %s CA LID %u: %s --> 
%s\n",
                                (is_real_lid) ? "real" : "DUMMY",
-                               cl_ntoh16(target_lid),
+                               target_lid,
                                tuple_to_str(p_sw->tuple),
                                tuple_to_str(p_remote_sw->tuple));
                }
@@ -2212,14 +2206,14 @@ static void fabric_route_downgoing_by_going_up(IN 
ftree_fabric_t * p_ftree,
                        /* This LID may already be in the LFT in the 
reverse_hop feature is used */
                        /* We update the LFT only if this LID isn't already 
present. */
                        if (p_remote_sw->p_osm_sw->
-                           new_lft[cl_ntoh16(target_lid)] == OSM_NO_PATH) {
+                           new_lft[target_lid] == OSM_NO_PATH) {
                                p_remote_sw->p_osm_sw->
-                                   new_lft[cl_ntoh16(target_lid)] =
+                                   new_lft[target_lid] =
                                    p_min_port->remote_port_num;
                                OSM_LOG(&p_ftree->p_osm->log, OSM_LOG_DEBUG,
                                        "Switch %s: set path to CA LID %u 
through port %u\n",
                                        tuple_to_str(p_remote_sw->tuple),
-                                       cl_ntoh16(target_lid),
+                                       target_lid,
                                        p_min_port->remote_port_num);
                        }
                        /* On the remote switch that is pointed by the 
min_group,
@@ -2283,14 +2277,14 @@ static void fabric_route_downgoing_by_going_up(IN 
ftree_fabric_t * p_ftree,
                p_remote_sw = p_group->remote_hca_or_sw.p_sw;

                /* skip if target lid has been already set on remote switch fwd 
tbl */
-               if (p_remote_sw->p_osm_sw->new_lft[cl_ntoh16(target_lid)] !=
+               if (p_remote_sw->p_osm_sw->new_lft[target_lid] !=
                    OSM_NO_PATH)
                        continue;

                if (p_sw->is_leaf) {
                        OSM_LOG(&p_ftree->p_osm->log, OSM_LOG_DEBUG,
                                " - Routing SECONDARY path for LID %u: %s --> 
%s\n",
-                               cl_ntoh16(target_lid),
+                               target_lid,
                                tuple_to_str(p_sw->tuple),
                                tuple_to_str(p_remote_sw->tuple));
                }
@@ -2302,7 +2296,7 @@ static void fabric_route_downgoing_by_going_up(IN 
ftree_fabric_t * p_ftree,
                   trying to balance these routes - always pick port 0. */

                cl_ptr_vector_at(&p_group->ports, 0, (void *)&p_port);
-               p_remote_sw->p_osm_sw->new_lft[cl_ntoh16(target_lid)] =
+               p_remote_sw->p_osm_sw->new_lft[target_lid] =
                    p_port->remote_port_num;

                /* On the remote switch that is pointed by the p_group,
@@ -2376,7 +2370,7 @@ static void fabric_route_to_cns(IN ftree_fabric_t * 
p_ftree)
        ftree_port_t *p_port;
        uint32_t i;
        uint32_t j;
-       ib_net16_t hca_lid;
+       uint16_t hca_lid;
        unsigned routed_targets_on_leaf;

        OSM_LOG_ENTER(&p_ftree->p_osm->log);
@@ -2417,16 +2411,16 @@ static void fabric_route_to_cns(IN ftree_fabric_t * 
p_ftree)
                        /* set local LFT(LID) to the port that is connected to 
HCA */
                        cl_ptr_vector_at(&p_leaf_port_group->ports, 0,
                                         (void *)&p_port);
-                       p_sw->p_osm_sw->new_lft[cl_ntoh16(hca_lid)] =
+                       p_sw->p_osm_sw->new_lft[hca_lid] =
                            p_port->port_num;

                        OSM_LOG(&p_ftree->p_osm->log, OSM_LOG_DEBUG,
                                "Switch %s: set path to CN LID %u through port 
%u\n",
                                tuple_to_str(p_sw->tuple),
-                               cl_ntoh16(hca_lid), p_port->port_num);
+                               hca_lid, p_port->port_num);

                        /* set local min hop table(LID) to route to the CA */
-                       sw_set_hops(p_sw, cl_ntoh16(hca_lid),
+                       sw_set_hops(p_sw, hca_lid,
                                    p_port->port_num, 1);

                        /* Assign downgoing ports by stepping up.
@@ -2500,7 +2494,7 @@ static void fabric_route_to_non_cns(IN ftree_fabric_t * 
p_ftree)
        ftree_hca_t *p_next_hca;
        ftree_port_t *p_hca_port;
        ftree_port_group_t *p_hca_port_group;
-       ib_net16_t hca_lid;
+       uint16_t hca_lid;
        unsigned port_num_on_switch;
        unsigned i;

@@ -2530,16 +2524,15 @@ static void fabric_route_to_non_cns(IN ftree_fabric_t * 
p_ftree)
                        cl_ptr_vector_at(&p_hca_port_group->ports, 0,
                                         (void *)&p_hca_port);
                        port_num_on_switch = p_hca_port->remote_port_num;
-                       p_sw->p_osm_sw->new_lft[cl_ntoh16(hca_lid)] =
-                           port_num_on_switch;
+                       p_sw->p_osm_sw->new_lft[hca_lid] = port_num_on_switch;

                        OSM_LOG(&p_ftree->p_osm->log, OSM_LOG_DEBUG,
                                "Switch %s: set path to non-CN HCA LID %u 
through port %u\n",
                                tuple_to_str(p_sw->tuple),
-                               cl_ntoh16(hca_lid), port_num_on_switch);
+                               hca_lid, port_num_on_switch);

                        /* set local min hop table(LID) to route to the CA */
-                       sw_set_hops(p_sw, cl_ntoh16(hca_lid), 
port_num_on_switch,       /* port num */
+                       sw_set_hops(p_sw, hca_lid, port_num_on_switch,  /* port 
num */
                                    1); /* hops */

                        /* Assign downgoing ports by stepping up.
@@ -2588,14 +2581,14 @@ static void fabric_route_to_switches(IN ftree_fabric_t 
* p_ftree)
                p_next_sw = (ftree_sw_t *) cl_qmap_next(&p_sw->map_item);

                /* set local LFT(LID) to 0 (route to itself) */
-               p_sw->p_osm_sw->new_lft[cl_ntoh16(p_sw->base_lid)] = 0;
+               p_sw->p_osm_sw->new_lft[p_sw->base_lid] = 0;

                OSM_LOG(&p_ftree->p_osm->log, OSM_LOG_DEBUG,
                        "Switch %s (LID %u): routing switch-to-switch paths\n",
-                       tuple_to_str(p_sw->tuple), cl_ntoh16(p_sw->base_lid));
+                       tuple_to_str(p_sw->tuple), p_sw->base_lid);

                /* set min hop table of the switch to itself */
-               sw_set_hops(p_sw, cl_ntoh16(p_sw->base_lid), 0, /* port_num */
+               sw_set_hops(p_sw, p_sw->base_lid, 0,    /* port_num */
                            0); /* hops     */

                fabric_route_downgoing_by_going_up(p_ftree, p_sw,       /* 
local switch - used as a route-downgoing alg. start point */
@@ -2797,7 +2790,7 @@ static int rank_leaf_switches(IN ftree_fabric_t * p_ftree,
                        PRIx64 "\n"
                        "                                            - Switch 
LID : %u\n",
                        hca_get_guid_ho(p_hca),
-                       sw_get_guid_ho(p_sw), cl_ntoh16(p_sw->base_lid));
+                       sw_get_guid_ho(p_sw), p_sw->base_lid);
                cl_list_insert_tail(p_ranking_bfs_list, p_sw);
        }

@@ -2937,8 +2930,8 @@ fabric_construct_hca_ports(IN ftree_fabric_t * p_ftree, 
IN ftree_hca_t * p_hca)
                hca_add_port(p_hca,     /* local ftree_hca object */
                             i, /* local port number */
                             remote_port_num,   /* remote port number */
-                            osm_node_get_base_lid(p_node, i),  /* local lid */
-                            osm_node_get_base_lid(p_remote_node, 0),   /* 
remote lid */
+                            cl_ntoh16(osm_node_get_base_lid(p_node, i)),       
/* local lid */
+                            cl_ntoh16(osm_node_get_base_lid(p_remote_node, 
0)),        /* remote lid */
                             osm_physp_get_port_guid(p_osm_port),       /* 
local port guid */
                             osm_physp_get_port_guid(p_remote_osm_port),        
/* remote port guid */
                             remote_node_guid,  /* remote node guid */
@@ -2961,7 +2954,7 @@ static int fabric_construct_sw_ports(IN ftree_fabric_t * 
p_ftree,
        ftree_sw_t *p_remote_sw;
        osm_node_t *p_node = p_sw->p_osm_sw->p_node;
        osm_node_t *p_remote_node;
-       ib_net16_t remote_base_lid;
+       uint16_t remote_base_lid;
        uint8_t remote_node_type;
        ib_net64_t remote_node_guid;
        osm_physp_t *p_remote_osm_port;
@@ -2991,7 +2984,7 @@ static int fabric_construct_sw_ports(IN ftree_fabric_t * 
p_ftree,
                                "Ignoring loopback on switch GUID 0x%016" PRIx64
                                ", LID %u, rank %u\n",
                                sw_get_guid_ho(p_sw),
-                               cl_ntoh16(p_sw->base_lid), p_sw->rank);
+                               p_sw->base_lid, p_sw->rank);
                        continue;
                }

@@ -3013,8 +3006,8 @@ static int fabric_construct_sw_ports(IN ftree_fabric_t * 
p_ftree,
                        p_remote_hca_or_sw = (void *)p_remote_hca;
                        direction = FTREE_DIRECTION_DOWN;

-                       remote_base_lid =
-                           osm_physp_get_base_lid(p_remote_osm_port);
+                       remote_base_lid = cl_ntoh16(
+                           osm_physp_get_base_lid(p_remote_osm_port));
                        break;

                case IB_NODE_TYPE_SWITCH:
@@ -3036,9 +3029,9 @@ static int fabric_construct_sw_ports(IN ftree_fabric_t * 
p_ftree,
                                        ", LID %u, rank %u\n", p_sw->rank,
                                        p_remote_sw->rank,
                                        sw_get_guid_ho(p_sw),
-                                       cl_ntoh16(p_sw->base_lid), p_sw->rank,
+                                       p_sw->base_lid, p_sw->rank,
                                        sw_get_guid_ho(p_remote_sw),
-                                       cl_ntoh16(p_remote_sw->base_lid),
+                                       p_remote_sw->base_lid,
                                        p_remote_sw->rank);
                                res = -1;
                                goto Exit;
@@ -3050,8 +3043,8 @@ static int fabric_construct_sw_ports(IN ftree_fabric_t * 
p_ftree,
                                direction = FTREE_DIRECTION_DOWN;

                        /* switch LID is only in port 0 port_info structure */
-                       remote_base_lid =
-                           osm_node_get_base_lid(p_remote_node, 0);
+                       remote_base_lid = cl_ntoh16(
+                           osm_node_get_base_lid(p_remote_node, 0));

                        break;

@@ -3077,8 +3070,8 @@ static int fabric_construct_sw_ports(IN ftree_fabric_t * 
p_ftree,
                            direction); /* port direction (up or down) */

                /* Track the max lid (in host order) that exists in the fabric 
*/
-               if (cl_ntoh16(remote_base_lid) > p_ftree->lft_max_lid_ho)
-                       p_ftree->lft_max_lid_ho = cl_ntoh16(remote_base_lid);
+               if (remote_base_lid > p_ftree->lft_max_lid)
+                       p_ftree->lft_max_lid = remote_base_lid;
        }

 Exit:
@@ -3610,7 +3603,7 @@ static int construct_fabric(IN void *context)
        }

        OSM_LOG(&p_ftree->p_osm->log, OSM_LOG_VERBOSE,
-               "Max LID in switch LFTs: %u\n", p_ftree->lft_max_lid_ho);
+               "Max LID in switch LFTs: %u\n", p_ftree->lft_max_lid);

 Exit:
        if (status != 0) {
-- 
1.5.1.4


_______________________________________________
general mailing list
[email protected]
http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general

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

Reply via email to