[ofa-general] [PATCH] osm: adding root_guid_file and cn_guid_file OpenSM options
Yevgeny Kliteynik
kliteyn at dev.mellanox.co.il
Sun Jun 17 05:26:02 PDT 2007
Hi Hal,
This patch replaces updn_guid_file in the Up/Down routing with
root_guid_file for Up/Down and Fat-Tree routing, and adds a new
option - cn_guid_file for Fat-Tree routing.
OpenSM command line options for these two files are:
'-a' or '--root_guid_file' for roots
'-u' or '--cn_guid_file' for compute nodes
Signed-off-by: Yevgeny Kliteynik <kliteyn at dev.mellanox.co.il>
---
opensm/include/opensm/osm_subnet.h | 12 +++++++++---
opensm/opensm/main.c | 29 ++++++++++++++++++++++-------
opensm/opensm/osm_subnet.c | 25 ++++++++++++++++++-------
opensm/opensm/osm_ucast_updn.c | 6 +++---
4 files changed, 52 insertions(+), 20 deletions(-)
diff --git a/opensm/include/opensm/osm_subnet.h b/opensm/include/opensm/osm_subnet.h
index c62128b..a38fc49 100644
--- a/opensm/include/opensm/osm_subnet.h
+++ b/opensm/include/opensm/osm_subnet.h
@@ -278,7 +278,8 @@ typedef struct _osm_subn_opt
char * routing_engine_name;
char * lid_matrix_dump_file;
char * ucast_dump_file;
- char * updn_guid_file;
+ char * root_guid_file;
+ char * cn_guid_file;
char * sa_db_file;
boolean_t exit_on_fatal;
boolean_t honor_guid2lid_file;
@@ -452,8 +453,13 @@ typedef struct _osm_subn_opt
* Name of the unicast routing dump file from where switch
* forwarding tables will be loaded
*
-* updn_guid_file
-* Pointer to name of the UPDN guid file given by User
+* root_guid_file
+* Name of the file that contains list of root guids that
+* will be used by fat-tree or up/dn routing (provided by User)
+*
+* cn_guid_file
+* Name of the file that contains list of compute node guids that
+* will be used by fat-tree routing (provided by User)
*
* sa_db_file
* Name of the SA database file.
diff --git a/opensm/opensm/main.c b/opensm/opensm/main.c
index 6b4cb4f..d17a994 100644
--- a/opensm/opensm/main.c
+++ b/opensm/opensm/main.c
@@ -189,8 +189,14 @@ show_usage(void)
" This option specifies the name of the SA DB dump file\n"
" from where SA database will be loaded.\n\n");
printf ("-a\n"
- "--add_guid_file <path to file>\n"
- " Set the root nodes for the Up/Down routing algorithm\n"
+ "--root_guid_file <path to file>\n"
+ " Set the root nodes for the Up/Down or Fat-Tree routing\n"
+ " algorithm to the guids provided in the given file (one\n"
+ " to a line)\n"
+ "\n");
+ printf ("-u\n"
+ "--cn_guid_file <path to file>\n"
+ " Set the compute nodes for the Fat-Tree routing algorithm\n"
" to the guids provided in the given file (one to a line)\n"
"\n");
printf( "-o\n"
@@ -585,7 +591,7 @@ main(
char *ignore_guids_file_name = NULL;
uint32_t val;
const char * const short_option =
- "i:f:ed:g:l:L:s:t:a:R:M:U:S:P:NBIQvVhorcyxp:n:q:k:C:";
+ "i:f:ed:g:l:L:s:t:a:u:R:M:U:S:P:NBIQvVhorcyxp:n:q:k:C:";
/*
In the array below, the 2nd parameter specifies the number
@@ -622,7 +628,8 @@ main(
{ "lid_matrix_file",1, NULL, 'M'},
{ "ucast_file", 1, NULL, 'U'},
{ "sadb_file", 1, NULL, 'S'},
- { "add_guid_file", 1, NULL, 'a'},
+ { "root_guid_file",1, NULL, 'a'},
+ { "cn_guid_file", 1, NULL, 'u'},
{ "cache-options", 0, NULL, 'c'},
{ "stay_on_fatal", 0, NULL, 'y'},
{ "honor_guid2lid",0, NULL, 'x'},
@@ -886,10 +893,18 @@ main(
case 'a':
/*
- Specifies port guids file
+ Specifies root guids file
+ */
+ opt.root_guid_file = optarg;
+ printf (" Root Guid File: %s\n", opt.root_guid_file );
+ break;
+
+ case 'u':
+ /*
+ Specifies compute node guids file
*/
- opt.updn_guid_file = optarg;
- printf (" UPDN Guid File: %s\n", opt.updn_guid_file );
+ opt.cn_guid_file = optarg;
+ printf (" Compute Node Guid File: %s\n", opt.cn_guid_file );
break;
case 'c':
diff --git a/opensm/opensm/osm_subnet.c b/opensm/opensm/osm_subnet.c
index 736f49a..4e080ba 100644
--- a/opensm/opensm/osm_subnet.c
+++ b/opensm/opensm/osm_subnet.c
@@ -500,7 +500,8 @@ osm_subn_set_default_opt(
p_opt->routing_engine_name = NULL;
p_opt->lid_matrix_dump_file = NULL;
p_opt->ucast_dump_file = NULL;
- p_opt->updn_guid_file = NULL;
+ p_opt->root_guid_file = NULL;
+ p_opt->cn_guid_file = NULL;
p_opt->sa_db_file = NULL;
p_opt->exit_on_fatal = TRUE;
p_opt->enable_quirks = FALSE;
@@ -1323,8 +1324,12 @@ osm_subn_parse_conf_file(
p_key, p_val, &p_opts->ucast_dump_file);
__osm_subn_opts_unpack_charp(
- "updn_guid_file",
- p_key, p_val, &p_opts->updn_guid_file);
+ "root_guid_file",
+ p_key, p_val, &p_opts->root_guid_file);
+
+ __osm_subn_opts_unpack_charp(
+ "cn_guid_file",
+ p_key, p_val, &p_opts->cn_guid_file);
__osm_subn_opts_unpack_charp(
"sa_db_file",
@@ -1548,12 +1553,18 @@ osm_subn_write_conf_file(
"# Ucast dump file name\n"
"ucast_dump_file %s\n\n",
p_opts->ucast_dump_file);
- if (p_opts->updn_guid_file)
+ if (p_opts->root_guid_file)
+ fprintf( opts_file,
+ "# The file holding the root node guids (for fat-tree or Up/Down)\n"
+ "# One guid in each line\n"
+ "root_guid_file %s\n\n",
+ p_opts->root_guid_file);
+ if (p_opts->cn_guid_file)
fprintf( opts_file,
- "# The file holding the Up/Down root node guids\n"
+ "# The file holding the fat-tree compute node guids\n"
"# One guid in each line\n"
- "updn_guid_file %s\n\n",
- p_opts->updn_guid_file);
+ "cn_guid_file %s\n\n",
+ p_opts->cn_guid_file);
if (p_opts->sa_db_file)
fprintf( opts_file,
"# SA database file name\n"
diff --git a/opensm/opensm/osm_ucast_updn.c b/opensm/opensm/osm_ucast_updn.c
index 2448246..af5ee4e 100644
--- a/opensm/opensm/osm_ucast_updn.c
+++ b/opensm/opensm/osm_ucast_updn.c
@@ -311,10 +311,10 @@ updn_init(
Check the source for root node list, if file parse it, otherwise
wait for a callback to activate auto detection
*/
- if (p_osm->subn.opt.updn_guid_file)
+ if (p_osm->subn.opt.root_guid_file)
{
status = osm_ucast_mgr_read_guid_file( &p_osm->sm.ucast_mgr,
- p_osm->subn.opt.updn_guid_file,
+ p_osm->subn.opt.root_guid_file,
p_updn->p_root_nodes );
if (status != IB_SUCCESS)
goto Exit;
@@ -323,7 +323,7 @@ updn_init(
osm_log( &p_osm->log, OSM_LOG_DEBUG,
"updn_init: "
"UPDN - Fetching root nodes from file %s\n",
- p_osm->subn.opt.updn_guid_file );
+ p_osm->subn.opt.root_guid_file );
guid_iterator = cl_list_head(p_updn->p_root_nodes);
while( guid_iterator != cl_list_end(p_updn->p_root_nodes) )
{
--
1.5.1.4
More information about the general
mailing list