\hypertarget{routed_8h}{\section{orte/mca/routed/routed.h File Reference}
\label{routed_8h}\index{orte/mca/routed/routed.\+h@{orte/mca/routed/routed.\+h}}
}


Routing table for the R\+M\+L.  


{\ttfamily \#include \char`\"{}orte\+\_\+config.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}orte/types.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/mca/mca.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/dss/dss\+\_\+types.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/mca/crs/crs.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}opal/mca/crs/base/base.\+h\char`\"{}}\\*
{\ttfamily \#include \char`\"{}orte/mca/routed/routed\+\_\+types.\+h\char`\"{}}\\*
\subsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \hyperlink{structorte__routed__component__2__0__0__t}{orte\+\_\+routed\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t}
\begin{DoxyCompactList}\small\item\em routed component interface \end{DoxyCompactList}\item 
struct \hyperlink{structorte__routed__module__t}{orte\+\_\+routed\+\_\+module\+\_\+t}
\begin{DoxyCompactList}\small\item\em routed module interface \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \hyperlink{routed_8h_a5fdf11147deeb46549127152a9f35524}{O\+R\+T\+E\+\_\+\+R\+O\+U\+T\+E\+D\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0}
\begin{DoxyCompactList}\small\item\em Macro for use in components that are of type routed. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
\hypertarget{routed_8h_a664c4c33a3f1e9027448a851acf19e32}{typedef struct \\*
\hyperlink{structorte__routed__component__2__0__0__t}{orte\+\_\+routed\+\_\+component\+\_\+2\+\_\+0\+\_\+0\+\_\+t} \hyperlink{routed_8h_a664c4c33a3f1e9027448a851acf19e32}{orte\+\_\+routed\+\_\+component\+\_\+t}}\label{routed_8h_a664c4c33a3f1e9027448a851acf19e32}

\begin{DoxyCompactList}\small\item\em Convienence typedef. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{routed_8h_a2060e213fc678bff5d8240519807e4ab}{orte\+\_\+routed\+\_\+module\+\_\+init\+\_\+fn\+\_\+t} )(void)
\begin{DoxyCompactList}\small\item\em Initialize the routed module. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{routed_8h_a35cf38afe9da5b4dedc6c761f216b2a8}{orte\+\_\+routed\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t} )(void)
\begin{DoxyCompactList}\small\item\em Finalize the routed module. \end{DoxyCompactList}\item 
\hypertarget{routed_8h_a8ee25960264cbd8bb999c54175fdf3ef}{typedef int($\ast$ {\bfseries orte\+\_\+routed\+\_\+module\+\_\+delete\+\_\+route\+\_\+fn\+\_\+t} )(\hyperlink{structorte__process__name__t}{orte\+\_\+process\+\_\+name\+\_\+t} $\ast$proc)}\label{routed_8h_a8ee25960264cbd8bb999c54175fdf3ef}

\item 
typedef int($\ast$ \hyperlink{routed_8h_aba4e296977cd28b25a2e965aee5755b0}{orte\+\_\+routed\+\_\+module\+\_\+update\+\_\+route\+\_\+fn\+\_\+t} )(\hyperlink{structorte__process__name__t}{orte\+\_\+process\+\_\+name\+\_\+t} $\ast$target, \hyperlink{structorte__process__name__t}{orte\+\_\+process\+\_\+name\+\_\+t} $\ast$route)
\begin{DoxyCompactList}\small\item\em Update route table with new information. \end{DoxyCompactList}\item 
typedef \hyperlink{structorte__process__name__t}{orte\+\_\+process\+\_\+name\+\_\+t}($\ast$ \hyperlink{routed_8h_a76994708080f5cea6155e1a57c70e46e}{orte\+\_\+routed\+\_\+module\+\_\+get\+\_\+route\+\_\+fn\+\_\+t} )(\hyperlink{structorte__process__name__t}{orte\+\_\+process\+\_\+name\+\_\+t} $\ast$target)
\begin{DoxyCompactList}\small\item\em Get the next hop towards the target. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{routed_8h_a53e677d89a774377a4ea8b044fd3519c}{orte\+\_\+routed\+\_\+module\+\_\+init\+\_\+routes\+\_\+fn\+\_\+t} )(\hyperlink{orte_2include_2orte_2types_8h_addefe647f31eee13c7f756f0d959a99b}{orte\+\_\+jobid\+\_\+t} job, \hyperlink{structopal__buffer__t}{opal\+\_\+buffer\+\_\+t} $\ast$ndat)
\begin{DoxyCompactList}\small\item\em Initialize the routing table. \end{DoxyCompactList}\item 
typedef int($\ast$ \hyperlink{routed_8h_a2039d670a53e430e37d1c08de47cf42f}{orte\+\_\+routed\+\_\+module\+\_\+route\+\_\+lost\+\_\+fn\+\_\+t} )(const \hyperlink{structorte__process__name__t}{orte\+\_\+process\+\_\+name\+\_\+t} $\ast$route)
\begin{DoxyCompactList}\small\item\em Report a route as \char`\"{}lost\char`\"{}. \end{DoxyCompactList}\item 
\hypertarget{routed_8h_aa89f5cfa677de480fae1a294ca2d8d9c}{typedef bool($\ast$ {\bfseries orte\+\_\+routed\+\_\+module\+\_\+route\+\_\+is\+\_\+defined\+\_\+fn\+\_\+t} )(const \hyperlink{structorte__process__name__t}{orte\+\_\+process\+\_\+name\+\_\+t} $\ast$target)}\label{routed_8h_aa89f5cfa677de480fae1a294ca2d8d9c}

\item 
typedef int($\ast$ \hyperlink{routed_8h_a168778fd37a899fdd355d1ab5b766b90}{orte\+\_\+routed\+\_\+module\+\_\+get\+\_\+wireup\+\_\+info\+\_\+fn\+\_\+t} )(\hyperlink{structopal__buffer__t}{opal\+\_\+buffer\+\_\+t} $\ast$buf)
\begin{DoxyCompactList}\small\item\em Get wireup data for daemons. \end{DoxyCompactList}\item 
\hypertarget{routed_8h_aba31235f51329f512c95ec909a31d83c}{typedef int($\ast$ {\bfseries orte\+\_\+routed\+\_\+module\+\_\+update\+\_\+routing\+\_\+tree\+\_\+fn\+\_\+t} )(\hyperlink{orte_2include_2orte_2types_8h_addefe647f31eee13c7f756f0d959a99b}{orte\+\_\+jobid\+\_\+t} jobid)}\label{routed_8h_aba31235f51329f512c95ec909a31d83c}

\item 
\hypertarget{routed_8h_afd807058cc4665d9c8c5fa1ad06980a3}{typedef orte\+\_\+vpid\+\_\+t($\ast$ {\bfseries orte\+\_\+routed\+\_\+module\+\_\+get\+\_\+routing\+\_\+tree\+\_\+fn\+\_\+t} )(\hyperlink{structopal__list__t}{opal\+\_\+list\+\_\+t} $\ast$children)}\label{routed_8h_afd807058cc4665d9c8c5fa1ad06980a3}

\item 
\hypertarget{routed_8h_ab0b48ae9988ecd920b9dc84545fbe4e3}{typedef int($\ast$ {\bfseries orte\+\_\+routed\+\_\+module\+\_\+set\+\_\+lifeline\+\_\+fn\+\_\+t} )(\hyperlink{structorte__process__name__t}{orte\+\_\+process\+\_\+name\+\_\+t} $\ast$proc)}\label{routed_8h_ab0b48ae9988ecd920b9dc84545fbe4e3}

\item 
\hypertarget{routed_8h_a4bf7ac11f91fe8e5231b41f804dee4c0}{typedef size\+\_\+t($\ast$ {\bfseries orte\+\_\+routed\+\_\+module\+\_\+num\+\_\+routes\+\_\+fn\+\_\+t} )(void)}\label{routed_8h_a4bf7ac11f91fe8e5231b41f804dee4c0}

\item 
typedef int($\ast$ \hyperlink{routed_8h_a34819d928e2b53bbaec419a4c65ebb5b}{orte\+\_\+routed\+\_\+module\+\_\+ft\+\_\+event\+\_\+fn\+\_\+t} )(int state)
\begin{DoxyCompactList}\small\item\em Handle fault tolerance updates. \end{DoxyCompactList}\item 
\hypertarget{routed_8h_ac7479c65cec599baa0f328bb8f6cc810}{typedef struct \hyperlink{structorte__routed__module__t}{orte\+\_\+routed\+\_\+module\+\_\+t} \hyperlink{routed_8h_ac7479c65cec599baa0f328bb8f6cc810}{orte\+\_\+routed\+\_\+module\+\_\+t}}\label{routed_8h_ac7479c65cec599baa0f328bb8f6cc810}

\begin{DoxyCompactList}\small\item\em Convenience typedef. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\hypertarget{routed_8h_ab70753c1b39a4af326b07b477d86c3a4}{O\+R\+T\+E\+\_\+\+D\+E\+C\+L\+S\+P\+E\+C \hyperlink{structorte__routed__module__t}{orte\+\_\+routed\+\_\+module\+\_\+t} \hyperlink{routed_8h_ab70753c1b39a4af326b07b477d86c3a4}{orte\+\_\+routed}}\label{routed_8h_ab70753c1b39a4af326b07b477d86c3a4}

\begin{DoxyCompactList}\small\item\em Interface for routed communication. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Routing table for the R\+M\+L. 

A flexible routing infrastructure for the R\+M\+L. Provides \char`\"{}next hop\char`\"{} service. Only deals with orte\+\_\+process\+\_\+name\+\_\+ts. 

\subsection{Macro Definition Documentation}
\hypertarget{routed_8h_a5fdf11147deeb46549127152a9f35524}{\index{routed.\+h@{routed.\+h}!O\+R\+T\+E\+\_\+\+R\+O\+U\+T\+E\+D\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0@{O\+R\+T\+E\+\_\+\+R\+O\+U\+T\+E\+D\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0}}
\index{O\+R\+T\+E\+\_\+\+R\+O\+U\+T\+E\+D\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0@{O\+R\+T\+E\+\_\+\+R\+O\+U\+T\+E\+D\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0}!routed.\+h@{routed.\+h}}
\subsubsection[{O\+R\+T\+E\+\_\+\+R\+O\+U\+T\+E\+D\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0}]{\setlength{\rightskip}{0pt plus 5cm}\#define O\+R\+T\+E\+\_\+\+R\+O\+U\+T\+E\+D\+\_\+\+B\+A\+S\+E\+\_\+\+V\+E\+R\+S\+I\+O\+N\+\_\+2\+\_\+0\+\_\+0}}\label{routed_8h_a5fdf11147deeb46549127152a9f35524}
{\bfseries Value\+:}
\begin{DoxyCode}
MCA\_BASE\_VERSION\_2\_0\_0, \(\backslash\)
  \textcolor{stringliteral}{"routed"}, 2, 0, 0
\end{DoxyCode}


Macro for use in components that are of type routed. 



\subsection{Typedef Documentation}
\hypertarget{routed_8h_a35cf38afe9da5b4dedc6c761f216b2a8}{\index{routed.\+h@{routed.\+h}!orte\+\_\+routed\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t@{orte\+\_\+routed\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t}}
\index{orte\+\_\+routed\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t@{orte\+\_\+routed\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t}!routed.\+h@{routed.\+h}}
\subsubsection[{orte\+\_\+routed\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+routed\+\_\+module\+\_\+finalize\+\_\+fn\+\_\+t)(void)}}\label{routed_8h_a35cf38afe9da5b4dedc6c761f216b2a8}


Finalize the routed module. 

Finalize the routed module, ending cleaning up all resources associated with the module. After the finalize function is called, all interface functions (and the module structure itself) are not available for use.

\begin{DoxyNote}{Note}
Whether or not the finalize function returns successfully, the module should not be used once this function is called.
\end{DoxyNote}

\begin{DoxyRetVals}{Return values}
{\em O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S} & Success \\
\hline
{\em O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R} & An unspecified error occurred \\
\hline
\end{DoxyRetVals}
\hypertarget{routed_8h_a34819d928e2b53bbaec419a4c65ebb5b}{\index{routed.\+h@{routed.\+h}!orte\+\_\+routed\+\_\+module\+\_\+ft\+\_\+event\+\_\+fn\+\_\+t@{orte\+\_\+routed\+\_\+module\+\_\+ft\+\_\+event\+\_\+fn\+\_\+t}}
\index{orte\+\_\+routed\+\_\+module\+\_\+ft\+\_\+event\+\_\+fn\+\_\+t@{orte\+\_\+routed\+\_\+module\+\_\+ft\+\_\+event\+\_\+fn\+\_\+t}!routed.\+h@{routed.\+h}}
\subsubsection[{orte\+\_\+routed\+\_\+module\+\_\+ft\+\_\+event\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+routed\+\_\+module\+\_\+ft\+\_\+event\+\_\+fn\+\_\+t)(int state)}}\label{routed_8h_a34819d928e2b53bbaec419a4c65ebb5b}


Handle fault tolerance updates. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em state} & Fault tolerance state update\\
\hline
\end{DoxyParams}

\begin{DoxyRetVals}{Return values}
{\em O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S} & The operation completed successfully \\
\hline
{\em O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R} & An unspecifed error occurred \\
\hline
\end{DoxyRetVals}
\hypertarget{routed_8h_a76994708080f5cea6155e1a57c70e46e}{\index{routed.\+h@{routed.\+h}!orte\+\_\+routed\+\_\+module\+\_\+get\+\_\+route\+\_\+fn\+\_\+t@{orte\+\_\+routed\+\_\+module\+\_\+get\+\_\+route\+\_\+fn\+\_\+t}}
\index{orte\+\_\+routed\+\_\+module\+\_\+get\+\_\+route\+\_\+fn\+\_\+t@{orte\+\_\+routed\+\_\+module\+\_\+get\+\_\+route\+\_\+fn\+\_\+t}!routed.\+h@{routed.\+h}}
\subsubsection[{orte\+\_\+routed\+\_\+module\+\_\+get\+\_\+route\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef {\bf orte\+\_\+process\+\_\+name\+\_\+t}($\ast$ orte\+\_\+routed\+\_\+module\+\_\+get\+\_\+route\+\_\+fn\+\_\+t)({\bf orte\+\_\+process\+\_\+name\+\_\+t} $\ast$target)}}\label{routed_8h_a76994708080f5cea6155e1a57c70e46e}


Get the next hop towards the target. 

Obtain the next process on the route to the target. O\+R\+T\+E's routing system works one hop at-\/a-\/time, so this function doesn't return the entire path to the target -\/ it only returns the next hop. This could be the target itself, or it could be an intermediate relay. By design, we -\/never-\/ use application procs as relays, so any relay will be an orted. \hypertarget{routed_8h_a168778fd37a899fdd355d1ab5b766b90}{\index{routed.\+h@{routed.\+h}!orte\+\_\+routed\+\_\+module\+\_\+get\+\_\+wireup\+\_\+info\+\_\+fn\+\_\+t@{orte\+\_\+routed\+\_\+module\+\_\+get\+\_\+wireup\+\_\+info\+\_\+fn\+\_\+t}}
\index{orte\+\_\+routed\+\_\+module\+\_\+get\+\_\+wireup\+\_\+info\+\_\+fn\+\_\+t@{orte\+\_\+routed\+\_\+module\+\_\+get\+\_\+wireup\+\_\+info\+\_\+fn\+\_\+t}!routed.\+h@{routed.\+h}}
\subsubsection[{orte\+\_\+routed\+\_\+module\+\_\+get\+\_\+wireup\+\_\+info\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+routed\+\_\+module\+\_\+get\+\_\+wireup\+\_\+info\+\_\+fn\+\_\+t)({\bf opal\+\_\+buffer\+\_\+t} $\ast$buf)}}\label{routed_8h_a168778fd37a899fdd355d1ab5b766b90}


Get wireup data for daemons. 

Add whatever routing data this module requires to allow inter-\/process messaging. \hypertarget{routed_8h_a2060e213fc678bff5d8240519807e4ab}{\index{routed.\+h@{routed.\+h}!orte\+\_\+routed\+\_\+module\+\_\+init\+\_\+fn\+\_\+t@{orte\+\_\+routed\+\_\+module\+\_\+init\+\_\+fn\+\_\+t}}
\index{orte\+\_\+routed\+\_\+module\+\_\+init\+\_\+fn\+\_\+t@{orte\+\_\+routed\+\_\+module\+\_\+init\+\_\+fn\+\_\+t}!routed.\+h@{routed.\+h}}
\subsubsection[{orte\+\_\+routed\+\_\+module\+\_\+init\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+routed\+\_\+module\+\_\+init\+\_\+fn\+\_\+t)(void)}}\label{routed_8h_a2060e213fc678bff5d8240519807e4ab}


Initialize the routed module. 

Do whatever needs to be done to initialize the selected module


\begin{DoxyRetVals}{Return values}
{\em O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S} & Success \\
\hline
{\em O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R} & Error code from whatever was encountered \\
\hline
\end{DoxyRetVals}
\hypertarget{routed_8h_a53e677d89a774377a4ea8b044fd3519c}{\index{routed.\+h@{routed.\+h}!orte\+\_\+routed\+\_\+module\+\_\+init\+\_\+routes\+\_\+fn\+\_\+t@{orte\+\_\+routed\+\_\+module\+\_\+init\+\_\+routes\+\_\+fn\+\_\+t}}
\index{orte\+\_\+routed\+\_\+module\+\_\+init\+\_\+routes\+\_\+fn\+\_\+t@{orte\+\_\+routed\+\_\+module\+\_\+init\+\_\+routes\+\_\+fn\+\_\+t}!routed.\+h@{routed.\+h}}
\subsubsection[{orte\+\_\+routed\+\_\+module\+\_\+init\+\_\+routes\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+routed\+\_\+module\+\_\+init\+\_\+routes\+\_\+fn\+\_\+t)({\bf orte\+\_\+jobid\+\_\+t} job, {\bf opal\+\_\+buffer\+\_\+t} $\ast$ndat)}}\label{routed_8h_a53e677d89a774377a4ea8b044fd3519c}


Initialize the routing table. 

Initialize the routing table for the specified job. This can be rather complex and depends entirely upon both the selected module A\+N\+D whether the function is being called by the H\+N\+P, an orted, a tool, or an application proc. To understand what is happening, you really need to look at the specific module.

Regardless, at the end of the function, the routes to any other process in the specified job -\/must-\/ be defined (even if it is direct) \hypertarget{routed_8h_a2039d670a53e430e37d1c08de47cf42f}{\index{routed.\+h@{routed.\+h}!orte\+\_\+routed\+\_\+module\+\_\+route\+\_\+lost\+\_\+fn\+\_\+t@{orte\+\_\+routed\+\_\+module\+\_\+route\+\_\+lost\+\_\+fn\+\_\+t}}
\index{orte\+\_\+routed\+\_\+module\+\_\+route\+\_\+lost\+\_\+fn\+\_\+t@{orte\+\_\+routed\+\_\+module\+\_\+route\+\_\+lost\+\_\+fn\+\_\+t}!routed.\+h@{routed.\+h}}
\subsubsection[{orte\+\_\+routed\+\_\+module\+\_\+route\+\_\+lost\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+routed\+\_\+module\+\_\+route\+\_\+lost\+\_\+fn\+\_\+t)(const {\bf orte\+\_\+process\+\_\+name\+\_\+t} $\ast$route)}}\label{routed_8h_a2039d670a53e430e37d1c08de47cf42f}


Report a route as \char`\"{}lost\char`\"{}. 

Report that an existing connection has been lost, therefore potentially \char`\"{}breaking\char`\"{} a route in the routing table. It is critical that broken connections be reported so that the selected routing module has the option of dealing with it. This could consist of nothing more than removing that route from the routing table, or could -\/ in the case of a \char`\"{}lifeline\char`\"{} connection -\/ result in abort of the process. \hypertarget{routed_8h_aba4e296977cd28b25a2e965aee5755b0}{\index{routed.\+h@{routed.\+h}!orte\+\_\+routed\+\_\+module\+\_\+update\+\_\+route\+\_\+fn\+\_\+t@{orte\+\_\+routed\+\_\+module\+\_\+update\+\_\+route\+\_\+fn\+\_\+t}}
\index{orte\+\_\+routed\+\_\+module\+\_\+update\+\_\+route\+\_\+fn\+\_\+t@{orte\+\_\+routed\+\_\+module\+\_\+update\+\_\+route\+\_\+fn\+\_\+t}!routed.\+h@{routed.\+h}}
\subsubsection[{orte\+\_\+routed\+\_\+module\+\_\+update\+\_\+route\+\_\+fn\+\_\+t}]{\setlength{\rightskip}{0pt plus 5cm}typedef int($\ast$ orte\+\_\+routed\+\_\+module\+\_\+update\+\_\+route\+\_\+fn\+\_\+t)({\bf orte\+\_\+process\+\_\+name\+\_\+t} $\ast$target, {\bf orte\+\_\+process\+\_\+name\+\_\+t} $\ast$route)}}\label{routed_8h_aba4e296977cd28b25a2e965aee5755b0}


Update route table with new information. 

Update routing table with a new entry. If an existing exact match for the entry exists, it will be replaced with the current information. If the entry is new, it will be inserted behind all entries of similar \char`\"{}mask\char`\"{}. So a wildcard cellid entry will be inserted after any fully-\/specified entries and any other wildcard cellid entries, but before any wildcard cellid and jobid entries.


\begin{DoxyRetVals}{Return values}
{\em O\+R\+T\+E\+\_\+\+S\+U\+C\+C\+E\+S\+S} & Success \\
\hline
{\em O\+R\+T\+E\+\_\+\+E\+R\+R\+\_\+\+N\+O\+T\+\_\+\+S\+U\+P\+P\+O\+R\+T\+E\+D} & The updated is not supported. This is likely due to using partially-\/specified names with a component that does not support such functionality \\
\hline
{\em O\+R\+T\+E\+\_\+\+E\+R\+R\+O\+R} & An unspecified error occurred \\
\hline
\end{DoxyRetVals}
