@@ -201,6 +201,8 @@ typedef struct osm_subn_opt {
char *guid_routing_order_file;
char *sa_db_file;
boolean_t sa_db_dump;
+ boolean_t path_rec_dump;
+ char *path_rec_file;
boolean_t do_mesh_analysis;
boolean_t exit_on_fatal;
boolean_t honor_guid2lid_file;
@@ -418,6 +420,14 @@ typedef struct osm_subn_opt {
* When TRUE causes OpenSM to dump SA DB at the end of every
* light sweep regardless the current verbosity level.
*
+* path_rec_file
+* Name of the PathRecords dump file.
+*
+* path_rec_dump
+* When TRUE causes OpenSM to dump PathRecords for all the
+* CA-2-CA paths at the end of every heavy sweep, regardless
+* of the verbosity level.
+*
* exit_on_fatal
* If TRUE (default) - SM will exit on fatal subnet initialization
* issues.
@@ -757,6 +757,8 @@ void osm_subn_set_default_opt(IN osm_subn_opt_t * p_opt)
p_opt->guid_routing_order_file = NULL;
p_opt->sa_db_file = NULL;
p_opt->sa_db_dump = FALSE;
+ p_opt->path_rec_file = NULL;
+ p_opt->path_rec_dump = FALSE;
p_opt->do_mesh_analysis = FALSE;
p_opt->exit_on_fatal = TRUE;
p_opt->enable_quirks = FALSE;
@@ -1464,6 +1466,18 @@ int osm_subn_output_conf(FILE *out, IN osm_subn_opt_t * p_opts)
p_opts->sa_db_dump ? "TRUE" : "FALSE");
fprintf(out,
+ "# PathRecords dump file name\n"
+ "path_rec_file %s\n\n",
+ p_opts->path_rec_file ? p_opts->path_rec_file : null_str);
+
+ fprintf(out,
+ "# If TRUE causes OpenSM to dump PathRecords for all the\n"
+ "# CA-2-CA paths at the end of every heavy sweep, regardless\n"
+ "# of the verbosity level\n"
+ "path_rec_dump %s\n\n",
+ p_opts->path_rec_dump ? "TRUE" : "FALSE");
+
+ fprintf(out,
"#\n# HANDOVER - MULTIPLE SMs OPTIONS\n#\n"
"# SM priority used for deciding who is the master\n"
"# Range goes from 0 (lowest priority) to 15 (highest).\n"