[ofa-general] [PATCH 2/2] opensm: Added documentation for external routing engines.
Vincent Ficet
jean-vincent.ficet at bull.net
Thu Jun 11 00:39:10 PDT 2009
Signed-off-by: Jean-Vincent Ficet <jean-vincent.ficet at bull.net>
---
opensm/doc/current-routing.txt | 26 +++++++++++++++++++++++++-
opensm/man/opensm.8.in | 2 ++
2 files changed, 27 insertions(+), 1 deletions(-)
diff --git a/opensm/doc/current-routing.txt b/opensm/doc/current-routing.txt
index 1302860..b0dc5bc 100644
--- a/opensm/doc/current-routing.txt
+++ b/opensm/doc/current-routing.txt
@@ -1,7 +1,7 @@
Current OpenSM Routing
7/9/07
-OpenSM offers five routing engines:
+OpenSM offers six routing engines:
1. Min Hop Algorithm - based on the minimum hops to each node where the
path length is optimized.
@@ -28,6 +28,10 @@ two switches. This provides deadlock free routes for hypercubes when
the fabric is cabled as a hypercube and for meshes when cabled as a
mesh (see details below).
+6. External routing engine - OpenSM provides the ability to dynamically load
+an external routing engine.
+
+
OpenSM provides an optional unicast routing cache (enabled by -A or
--ucast_cache options). When enabled, unicast routing cache prevents
routing recalculation (which is a heavy task in a large cluster) when
@@ -388,3 +392,23 @@ ports, one port on one end of the cable, and the other port on the
other end, continuing along the mesh dimension.
Use '-R dor' option to activate the DOR algorithm.
+
+External routing engines
+------------------------
+
+OpenSM also offer the ability to dynamically load routing plugins.
+When OpenSM is provided with a routing engine name which is not in the
+standard list, OpenSM will try to open a library called lib'engine_name'.so.
+There are three things required to build a fonctional plugin:
+ - <opensm/osm_config.h> should be included first in the plugin to
+ ensure the right defines and struct are used.
+ - a setup function that fills a routing_engine struct with the
+ appropriate methods
+ - a osm_routing_plugin_t struct named OSM_ROUTING_PLUGIN_IMPL_NAME
+ which contains:
+ * osm_version = OSM_VERSION to make sure the plugin was build
+ with the same OpenSM Version
+ * setup pointing to the setup function described above.
+If these requirements are filled, OpenSM will load the external plugin and
+setup the routing engine. It can then be used as any other routing engine.
+
diff --git a/opensm/man/opensm.8.in b/opensm/man/opensm.8.in
index 66d2fe6..6a6fb30 100644
--- a/opensm/man/opensm.8.in
+++ b/opensm/man/opensm.8.in
@@ -141,6 +141,8 @@ algorithm (default). Multiple routing engines can be specified
separated by commas so that specific ordering of routing algorithms
will be tried if earlier routing engines fail.
Supported engines: minhop, updn, file, ftree, lash, dor
+If the algorithm name cannot be found within the standard list,
+OpenSM will try do open an external library named lib'name'.so.
.TP
\fB\-\-do_mesh_analysis\fR
This option enables additional analysis for the lash routing engine to
--
1.6.2.rc1.30.gd43c
More information about the general
mailing list