[ofa-general] Re: [PATCH 3/6] opensm/Unicast Routing Cache: add osm_ucast_cache.{c,h} files

Sasha Khapyorsky sashak at voltaire.com
Thu Oct 9 11:35:47 PDT 2008


>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.

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:
-- 
1.6.0.1.196.g01914




More information about the general mailing list