Hi Al, On 14:25 Mon 07 Jul , Al Chu wrote: > > With all of these file-input possibilities for OpenSM routing, I don't > think there is a way to tell OpenSM to reroute if (for example) the file > input has changed but the network/fabric has not.
Yes, but you can request a heavy sweep with SIGHUP or from console. > This is a patch to > add a command to the console to tell the console to reroute but not do a > heavy sweep. [snip...] > diff --git a/opensm/opensm/osm_state_mgr.c b/opensm/opensm/osm_state_mgr.c > index 87d6d5b..0501aa2 100644 > --- a/opensm/opensm/osm_state_mgr.c > +++ b/opensm/opensm/osm_state_mgr.c > @@ -1020,6 +1020,7 @@ static void do_sweep(osm_sm_t * sm) > && sm->p_subn->sm_state != IB_SMINFO_STATE_DISCOVERING > && sm->p_subn->opt.force_heavy_sweep == FALSE > && sm->p_subn->force_heavy_sweep == FALSE > + && sm->p_subn->force_reroute == FALSE > && sm->p_subn->subnet_initialization_error == FALSE > && (__osm_state_mgr_light_sweep_start(sm) == IB_SUCCESS)) { > if (wait_for_pending_transactions(&sm->p_subn->p_osm->stats)) > @@ -1031,11 +1032,43 @@ static void do_sweep(osm_sm_t * sm) > } > } > > + /* > + * If we don't need to do a heavy sweep and we want to do a reroute, > + * just reroute only. > + */ > + if (cl_qmap_count(&sm->p_subn->sw_guid_tbl) > + && sm->p_subn->sm_state != IB_SMINFO_STATE_DISCOVERING > + && sm->p_subn->opt.force_heavy_sweep == FALSE > + && sm->p_subn->force_heavy_sweep == FALSE > + && sm->p_subn->force_reroute == TRUE > + && sm->p_subn->subnet_initialization_error == FALSE) { > + /* Reset flag */ > + sm->p_subn->force_reroute = FALSE; > + > + /* Re-program the switches fully */ > + sm->p_subn->ignore_existing_lfts = TRUE; > + > + osm_ucast_mgr_process(&sm->ucast_mgr); > + > + /* Reset flag */ > + sm->p_subn->ignore_existing_lfts = FALSE; > + > + if (wait_for_pending_transactions(&sm->p_subn->p_osm->stats)) > + return; > + > + if (!sm->p_subn->force_heavy_sweep) { I cannot see how 'force_heavy_sweep' can be triggered by osm_ucast_mgr_process(), but I do see that 'subnet_initialization_error' can be set to TRUE during re-routing. So it looks that we need to check this flag instead. Sasha > + osm_log_msg_box(sm->p_log, OSM_LOG_VERBOSE, > + __FUNCTION__, "REROUTE COMPLETE"); > + return; > + } > + } > + > /* go to heavy sweep */ > _repeat_discovery: > > /* First of all - unset all flags */ > sm->p_subn->force_heavy_sweep = FALSE; > + sm->p_subn->force_reroute = FALSE; > sm->p_subn->subnet_initialization_error = FALSE; > > /* rescan configuration updates */ > -- > 1.5.4.5 > _______________________________________________ general mailing list general@lists.openfabrics.org http://lists.openfabrics.org/cgi-bin/mailman/listinfo/general To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general