[ofa-general] Re: [PATCH 3/6] opensm/Unicast Routing Cache: add osm_ucast_cache.{c, h} files
Yevgeny Kliteynik
kliteyn at dev.mellanox.co.il
Thu Oct 9 18:19:21 PDT 2008
Hi Sasha,
Sasha Khapyorsky wrote:
>>From 8f361ce2159c8a37a68a472abd495208b02a7279 Mon Sep 17 00:00:00 2001
> From: Sasha Khapyorsky <sashak at voltaire.com>
> Date: Wed, 8 Oct 2008 15:42:40 +0200
> Subject: [PATCH] opensm/ucast_cache: simplify osm_ucast_cache_add_link() prototype
>
> Simplify osm_ucast_cache_add_link() prototype - instead of pair of node,
> port number parameter list get just two pointers to physical ports.
Good idea.
Patch is fine, thanks.
-- Yevgeny
> Signed-off-by: Sasha Khapyorsky <sashak at voltaire.com>
> ---
> opensm/include/opensm/osm_ucast_cache.h | 19 +++---------
> opensm/opensm/osm_drop_mgr.c | 5 +--
> opensm/opensm/osm_port_info_rcv.c | 5 +--
> opensm/opensm/osm_ucast_cache.c | 49 +++++++++++++-----------------
> 4 files changed, 29 insertions(+), 49 deletions(-)
>
> diff --git a/opensm/include/opensm/osm_ucast_cache.h b/opensm/include/opensm/osm_ucast_cache.h
> index caffc83..3ecd2d8 100644
> --- a/opensm/include/opensm/osm_ucast_cache.h
> +++ b/opensm/include/opensm/osm_ucast_cache.h
> @@ -282,26 +282,17 @@ osm_ucast_cache_check_new_link(osm_ucast_cache_t * p_cache,
> */
> void
> osm_ucast_cache_add_link(osm_ucast_cache_t * p_cache,
> - osm_node_t * p_node_1,
> - uint8_t port_num_1,
> - osm_node_t * p_node_2,
> - uint8_t port_num_2);
> + osm_physp_t *physp1, osm_physp_t *physp2);
> /*
> * PARAMETERS
> * p_cache
> * [in] Pointer to the cache object.
> *
> -* p_node_1
> -* [in] Pointer to the first node of the link.
> -*
> -* port_num_1
> -* [in] Port number on the first node of the link.
> +* physp1
> +* [in] Pointer to the first physical port of the link.
> *
> -* p_node_2
> -* [in] Pointer to the second node of the link.
> -*
> -* port_num_2
> -* [in] Port number on the second node of the link.
> +* physp2
> +* [in] Pointer to the second physical port of the link.
> *
> * RETURN VALUE
> * This function does not return any value.
> diff --git a/opensm/opensm/osm_drop_mgr.c b/opensm/opensm/osm_drop_mgr.c
> index 5fc46a9..eceb9a6 100644
> --- a/opensm/opensm/osm_drop_mgr.c
> +++ b/opensm/opensm/osm_drop_mgr.c
> @@ -137,10 +137,7 @@ static void drop_mgr_clean_physp(osm_sm_t * sm, IN osm_physp_t * p_physp)
>
> if (sm->p_subn->opt.use_ucast_cache)
> osm_ucast_cache_add_link(sm->ucast_mgr.p_cache,
> - p_physp->p_node,
> - p_physp->port_num,
> - p_remote_physp->p_node,
> - p_remote_physp->port_num);
> + p_physp, p_remote_physp);
>
> osm_physp_unlink(p_physp, p_remote_physp);
>
> diff --git a/opensm/opensm/osm_port_info_rcv.c b/opensm/opensm/osm_port_info_rcv.c
> index d8d2021..8004fa8 100644
> --- a/opensm/opensm/osm_port_info_rcv.c
> +++ b/opensm/opensm/osm_port_info_rcv.c
> @@ -247,9 +247,8 @@ __osm_pi_rcv_process_switch_port(IN osm_sm_t * sm,
>
> if (sm->p_subn->opt.use_ucast_cache)
> osm_ucast_cache_add_link(sm->ucast_mgr.p_cache,
> - p_node, port_num,
> - p_remote_node,
> - remote_port_num);
> + p_physp,
> + p_remote_physp);
>
> osm_node_unlink(p_node, (uint8_t) port_num,
> p_remote_node,
> diff --git a/opensm/opensm/osm_ucast_cache.c b/opensm/opensm/osm_ucast_cache.c
> index 57dc0a0..e5264cd 100644
> --- a/opensm/opensm/osm_ucast_cache.c
> +++ b/opensm/opensm/osm_ucast_cache.c
> @@ -929,15 +929,11 @@ Exit:
> /**********************************************************************
> **********************************************************************/
>
> -void
> -osm_ucast_cache_add_link(osm_ucast_cache_t * p_cache,
> - osm_node_t * p_node_1,
> - uint8_t port_num_1,
> - osm_node_t * p_node_2,
> - uint8_t port_num_2)
> +void osm_ucast_cache_add_link(osm_ucast_cache_t * p_cache,
> + osm_physp_t *physp1, osm_physp_t *physp2)
> {
> - uint16_t lid_ho_1;
> - uint16_t lid_ho_2;
> + osm_node_t *p_node_1 = physp1->p_node, *p_node_2 = physp2->p_node;
> + uint16_t lid_ho_1, lid_ho_2;
>
> OSM_LOG_ENTER(p_cache->p_ucast_mgr->p_log);
>
> @@ -961,7 +957,7 @@ osm_ucast_cache_add_link(osm_ucast_cache_t * p_cache,
> OSM_LOG(p_cache->p_ucast_mgr->p_log, OSM_LOG_VERBOSE,
> "Port %u <-> port %u: port0 on one of the nodes"
> "has already been dropped and cached\n",
> - port_num_1, port_num_2);
> + physp1->port_num, physp2->port_num);
> goto Exit;
> }
>
> @@ -969,12 +965,11 @@ osm_ucast_cache_add_link(osm_ucast_cache_t * p_cache,
> simplicity, make sure that it's the first node. */
>
> if (osm_node_get_type(p_node_1) != IB_NODE_TYPE_SWITCH) {
> - osm_node_t * tmp_node = p_node_1;
> - uint8_t tmp_port_num = port_num_1;
> - p_node_1 = p_node_2;
> - port_num_1 = port_num_2;
> - p_node_2 = tmp_node;
> - port_num_2 = tmp_port_num;
> + osm_physp_t *tmp = physp1;
> + physp1 = physp2;
> + physp2 = tmp;
> + p_node_1 = physp1->p_node;
> + p_node_2 = physp2->p_node;
> }
>
> if (!p_node_1->sw) {
> @@ -983,7 +978,7 @@ osm_ucast_cache_add_link(osm_ucast_cache_t * p_cache,
> goto Exit;
> }
>
> - lid_ho_1 = cl_ntoh16(osm_node_get_base_lid(p_node_1,0));
> + lid_ho_1 = cl_ntoh16(osm_node_get_base_lid(p_node_1, 0));
>
> if (osm_node_get_type(p_node_2) == IB_NODE_TYPE_SWITCH) {
>
> @@ -993,20 +988,19 @@ osm_ucast_cache_add_link(osm_ucast_cache_t * p_cache,
> goto Exit;
> }
>
> - lid_ho_2 = cl_ntoh16(osm_node_get_base_lid(p_node_2,0));
> + lid_ho_2 = cl_ntoh16(osm_node_get_base_lid(p_node_2, 0));
>
> /* lost switch-2-switch link - cache both sides */
> - __cache_add_port(p_cache, lid_ho_1, port_num_1,
> + __cache_add_port(p_cache, lid_ho_1, physp1->port_num,
> lid_ho_2, FALSE);
> - __cache_add_port(p_cache, lid_ho_2, port_num_2,
> + __cache_add_port(p_cache, lid_ho_2, physp2->port_num,
> lid_ho_1, FALSE);
> }
> else {
> - lid_ho_2 = cl_ntoh16(
> - osm_node_get_base_lid(p_node_2, port_num_2));
> + lid_ho_2 = cl_ntoh16(osm_physp_get_base_lid(physp2));
>
> /* lost link to CA/RTR - cache only switch side */
> - __cache_add_port(p_cache, lid_ho_1, port_num_1,
> + __cache_add_port(p_cache, lid_ho_1, physp1->port_num,
> lid_ho_2, TRUE);
> }
>
> @@ -1059,9 +1053,8 @@ osm_ucast_cache_add_node(osm_ucast_cache_t * p_cache,
> !p_physp->p_remote_physp->p_node)
> continue;
>
> - osm_ucast_cache_add_link(p_cache, p_node, port_num,
> - p_physp->p_remote_physp->p_node,
> - p_physp->p_remote_physp->port_num);
> + osm_ucast_cache_add_link(p_cache, p_physp,
> + p_physp->p_remote_physp);
> }
>
> /*
> @@ -1128,9 +1121,9 @@ osm_ucast_cache_add_node(osm_ucast_cache_t * p_cache,
> goto Exit;
> }
>
> - osm_ucast_cache_add_link(p_cache, p_remote_node,
> - p_physp->p_remote_physp->port_num,
> - p_node, port_num);
> + osm_ucast_cache_add_link(p_cache,
> + p_physp->p_remote_physp,
> + p_physp);
> }
> }
> Exit:
More information about the general
mailing list