\doxysection{src/ss7\+\_\+route.h File Reference}
\label{ss7__route_8h}\index{src/ss7\_route.h@{src/ss7\_route.h}}
{\ttfamily \#include $<$stdint.\+h$>$}\newline
{\ttfamily \#include $<$stdbool.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/linuxlist.\+h$>$}\newline
\doxysubsubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+route}
\end{DoxyCompactItemize}
\doxysubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ROUTE\+\_\+\+PRIO\+\_\+\+DEFAULT}~5
\item 
\#define \textbf{ LOGPRT}(rt,  subsys,  level,  fmt,  args ...)
\end{DoxyCompactItemize}
\doxysubsubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+status} \{ \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ROUTE\+\_\+\+STATUS\+\_\+\+UNAVAILABLE}
, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ROUTE\+\_\+\+STATUS\+\_\+\+AVAILABLE}
, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ROUTE\+\_\+\+STATUS\+\_\+\+RESTRICTED}
 \}
\end{DoxyCompactItemize}
\doxysubsubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
static const char $\ast$ \textbf{ ss7\+\_\+route\+\_\+status\+\_\+name} (enum \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+status} val)
\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$ \textbf{ ss7\+\_\+route\+\_\+alloc} (struct \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table} $\ast$rtbl, uint32\+\_\+t \textbf{ pc}, uint32\+\_\+t mask, bool dynamic)
\begin{DoxyCompactList}\small\item\em Allocate a route entry. \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$ \textbf{ ss7\+\_\+route\+\_\+create} (struct \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table} $\ast$rtbl, uint32\+\_\+t \textbf{ dpc}, uint32\+\_\+t mask, bool dynamic, const char $\ast$linkset\+\_\+name)
\begin{DoxyCompactList}\small\item\em Create a new route in the given routing table. \end{DoxyCompactList}\item 
void \textbf{ ss7\+\_\+route\+\_\+destroy} (struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$rt)
\begin{DoxyCompactList}\small\item\em Destroy a given SS7 route. \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$ \textbf{ ss7\+\_\+route\+\_\+find\+\_\+dpc} (struct \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table} $\ast$rtbl, uint32\+\_\+t \textbf{ dpc})
\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$ \textbf{ ss7\+\_\+route\+\_\+find\+\_\+dpc\+\_\+mask} (struct \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table} $\ast$rtbl, uint32\+\_\+t \textbf{ dpc}, uint32\+\_\+t mask)
\item 
int \textbf{ ss7\+\_\+route\+\_\+set\+\_\+linkset} (struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$rt, const char $\ast$linkset\+\_\+name)
\begin{DoxyCompactList}\small\item\em Set linkset on route entry. \end{DoxyCompactList}\item 
int \textbf{ ss7\+\_\+route\+\_\+insert} (struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$rt)
\begin{DoxyCompactList}\small\item\em Insert route into its routing table. \end{DoxyCompactList}\item 
bool \textbf{ ss7\+\_\+route\+\_\+dest\+\_\+is\+\_\+available} (const struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$rt)
\item 
bool \textbf{ ss7\+\_\+route\+\_\+is\+\_\+available} (const struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$rt)
\item 
bool \textbf{ ss7\+\_\+route\+\_\+is\+\_\+fully\+\_\+qualified} (const struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$rt)
\item 
static bool \textbf{ ss7\+\_\+route\+\_\+is\+\_\+summary} (const struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$rt)
\item 
void \textbf{ ss7\+\_\+route\+\_\+update\+\_\+route\+\_\+status} (struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$rt, enum \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+status} status)
\end{DoxyCompactItemize}
\doxysubsubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
const struct value\+\_\+string \textbf{ ss7\+\_\+route\+\_\+status\+\_\+names} [$\,$]
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\label{ss7__route_8h_abb60b631127583753e1d0504c3bbbccb} 
\index{ss7\_route.h@{ss7\_route.h}!LOGPRT@{LOGPRT}}
\index{LOGPRT@{LOGPRT}!ss7\_route.h@{ss7\_route.h}}
\doxysubsubsection{LOGPRT}
{\footnotesize\ttfamily \#define LOGPRT(\begin{DoxyParamCaption}\item[{}]{rt,  }\item[{}]{subsys,  }\item[{}]{level,  }\item[{}]{fmt,  }\item[{}]{args ... }\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{keywordflow}{do}\ \{\ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{keywordtype}{char}\ \_pc\_str[MAX\_PC\_STR\_LEN];\ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \textcolor{keywordtype}{char}\ \_mask\_str[MAX\_PC\_STR\_LEN];\ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \_LOGSS7((rt)-\/>rtable-\/>inst,\ subsys,\ level,\ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{stringliteral}{"{}RT(dpc=\%u=\%s,mask=0x\%x=\%s,prio=\%u,via=\%s,st=\%s)\ "{}}\ fmt,\ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (rt)-\/>cfg.pc,\ osmo\_ss7\_pointcode\_print\_buf(\_pc\_str,\ MAX\_PC\_STR\_LEN,\ (rt)-\/>rtable-\/>inst,\ (rt)-\/>cfg.pc),\ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (rt)-\/>cfg.mask,\ osmo\_ss7\_pointcode\_print\_buf(\_mask\_str,\ MAX\_PC\_STR\_LEN,\ (rt)-\/>rtable-\/>inst,\ (rt)-\/>cfg.mask),\ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (rt)-\/>cfg.priority,\ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ (rt)-\/>cfg.linkset\_name\ ?\ (rt)-\/>cfg.linkset\_name\ :\ \textcolor{stringliteral}{"{}"{}},\ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ss7\_route\_status\_name((rt)-\/>status),\ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \#\#\ args);\ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ \ \ \ \ \}\ \textcolor{keywordflow}{while}\ (0)}

\end{DoxyCode}
\label{ss7__route_8h_a203ea4f16e9c9f19abcdab98cf1ca111} 
\index{ss7\_route.h@{ss7\_route.h}!OSMO\_SS7\_ROUTE\_PRIO\_DEFAULT@{OSMO\_SS7\_ROUTE\_PRIO\_DEFAULT}}
\index{OSMO\_SS7\_ROUTE\_PRIO\_DEFAULT@{OSMO\_SS7\_ROUTE\_PRIO\_DEFAULT}!ss7\_route.h@{ss7\_route.h}}
\doxysubsubsection{OSMO\_SS7\_ROUTE\_PRIO\_DEFAULT}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+SS7\+\_\+\+ROUTE\+\_\+\+PRIO\+\_\+\+DEFAULT~5}



\doxysubsection{Enumeration Type Documentation}
\label{ss7__route_8h_af7484db224a01c37163136306b28b6b2} 
\index{ss7\_route.h@{ss7\_route.h}!osmo\_ss7\_route\_status@{osmo\_ss7\_route\_status}}
\index{osmo\_ss7\_route\_status@{osmo\_ss7\_route\_status}!ss7\_route.h@{ss7\_route.h}}
\doxysubsubsection{osmo\_ss7\_route\_status}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+status}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SS7\_ROUTE\_STATUS\_UNAVAILABLE@{OSMO\_SS7\_ROUTE\_STATUS\_UNAVAILABLE}!ss7\_route.h@{ss7\_route.h}}\index{ss7\_route.h@{ss7\_route.h}!OSMO\_SS7\_ROUTE\_STATUS\_UNAVAILABLE@{OSMO\_SS7\_ROUTE\_STATUS\_UNAVAILABLE}}}\label{ss7__route_8h_af7484db224a01c37163136306b28b6b2acbf9c12799aced76d60f0a5caa5243a3} 
OSMO\+\_\+\+SS7\+\_\+\+ROUTE\+\_\+\+STATUS\+\_\+\+UNAVAILABLE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SS7\_ROUTE\_STATUS\_AVAILABLE@{OSMO\_SS7\_ROUTE\_STATUS\_AVAILABLE}!ss7\_route.h@{ss7\_route.h}}\index{ss7\_route.h@{ss7\_route.h}!OSMO\_SS7\_ROUTE\_STATUS\_AVAILABLE@{OSMO\_SS7\_ROUTE\_STATUS\_AVAILABLE}}}\label{ss7__route_8h_af7484db224a01c37163136306b28b6b2a12a0aef7bb96617138a4346e5134626b} 
OSMO\+\_\+\+SS7\+\_\+\+ROUTE\+\_\+\+STATUS\+\_\+\+AVAILABLE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SS7\_ROUTE\_STATUS\_RESTRICTED@{OSMO\_SS7\_ROUTE\_STATUS\_RESTRICTED}!ss7\_route.h@{ss7\_route.h}}\index{ss7\_route.h@{ss7\_route.h}!OSMO\_SS7\_ROUTE\_STATUS\_RESTRICTED@{OSMO\_SS7\_ROUTE\_STATUS\_RESTRICTED}}}\label{ss7__route_8h_af7484db224a01c37163136306b28b6b2ad2f78ba4e19fe9a1185583616baa3d32} 
OSMO\+\_\+\+SS7\+\_\+\+ROUTE\+\_\+\+STATUS\+\_\+\+RESTRICTED&\\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\label{ss7__route_8h_a45861dcd35546b9e984494d449bef6c7} 
\index{ss7\_route.h@{ss7\_route.h}!ss7\_route\_alloc@{ss7\_route\_alloc}}
\index{ss7\_route\_alloc@{ss7\_route\_alloc}!ss7\_route.h@{ss7\_route.h}}
\doxysubsubsection{ss7\_route\_alloc()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$ ss7\+\_\+route\+\_\+alloc (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table} $\ast$}]{rtbl,  }\item[{uint32\+\_\+t}]{pc,  }\item[{uint32\+\_\+t}]{mask,  }\item[{bool}]{dynamic }\end{DoxyParamCaption})}



Allocate a route entry. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rtbl} & Routing Table where the route belongs \\
\hline
\mbox{\texttt{ in}}  & {\em pc} & Point Code of the destination of the route \\
\hline
\mbox{\texttt{ in}}  & {\em mask} & Mask of the destination Point Code \doxyref{pc}{p.}{ss7__as__loadshare__tcap_8c_afaa20335217fae16f0e22b466017dae1} \\
\hline
\mbox{\texttt{ in}}  & {\em dynamic} & Whether the route is dynamic \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Allocated route (not yet inserted into its rtbl), NULL on error
\end{DoxyReturn}
The returned route has no linkset associated yet, user {\itshape must} associate it using API \doxyref{ss7\+\_\+route\+\_\+set\+\_\+linkset()}{p.}{ss7__route_8c_a46ccd2320c3e917d0e9bef6b90e78601} before inserting the route into its routing table.

Fields priority and qos\+\_\+class may be set {\itshape before} inserting the route into its routing table\+:
\begin{DoxyItemize}
\item A default priority of 0 is configured on the route.
\item A default qos-\/class of 0 is configured on the route.
\end{DoxyItemize}

Use API \doxyref{ss7\+\_\+route\+\_\+insert()}{p.}{ss7__route_8c_acf75f3605c463d7c4cef4e73257194ab} to insert the route into its routing table.

The route entry allocated with this API can be destroyed/freed at any point using API \doxyref{ss7\+\_\+route\+\_\+destroy()}{p.}{ss7__route_8c_a6ce127d1c6de224f5a6297f68fba4cfc}, regardless of it being already inserted or not in its routing table.

Dynamic routes are not configured by the user (VTY), and hence cannot be removed by the user. Dynamic routes are not stored in the config and hence they don\textquotesingle{}t show up in eg "{}show running-\/config"{}; they can be listed using specific VTY commands like "{}show cs7 instance 0 route"{}. 

References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::dyn\+\_\+allocated}, \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::list}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::mask}, \textbf{ NULL}, \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+normalize()}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ROUTE\+\_\+\+PRIO\+\_\+\+DEFAULT}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ROUTE\+\_\+\+STATUS\+\_\+\+AVAILABLE}, \textbf{ pc}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::pc}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::pc\+\_\+fmt}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::priority}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::rtable}, \textbf{ ss7\+\_\+initialized}, and \textbf{ osmo\+\_\+ss7\+\_\+route\+::status}.



Referenced by \textbf{ DEFUN\+\_\+\+ATTR()}, and \textbf{ ss7\+\_\+route\+\_\+create()}.

\label{ss7__route_8h_a41b6340db5529489f47a930ca9eb915d} 
\index{ss7\_route.h@{ss7\_route.h}!ss7\_route\_create@{ss7\_route\_create}}
\index{ss7\_route\_create@{ss7\_route\_create}!ss7\_route.h@{ss7\_route.h}}
\doxysubsubsection{ss7\_route\_create()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$ ss7\+\_\+route\+\_\+create (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table} $\ast$}]{rtbl,  }\item[{uint32\+\_\+t}]{pc,  }\item[{uint32\+\_\+t}]{mask,  }\item[{bool}]{dynamic,  }\item[{const char $\ast$}]{linkset\+\_\+name }\end{DoxyParamCaption})}



Create a new route in the given routing table. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rtbl} & Routing Table in which the route is to be created \\
\hline
\mbox{\texttt{ in}}  & {\em pc} & Point Code of the destination of the route \\
\hline
\mbox{\texttt{ in}}  & {\em mask} & Mask of the destination Point Code \doxyref{pc}{p.}{ss7__as__loadshare__tcap_8c_afaa20335217fae16f0e22b466017dae1} \\
\hline
\mbox{\texttt{ in}}  & {\em dynamic} & Whether the route is dynamic \\
\hline
\mbox{\texttt{ in}}  & {\em linkset\+\_\+name} & string name of the linkset to be used \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated + initialized route, NULL on error
\end{DoxyReturn}
The route allocated and returned by this API is already inserted into the routing table, with priority and qos-\/class set to 0. If you plan to use different values for priority and qos-\/class, avoid using this API and use \doxyref{ss7\+\_\+route\+\_\+alloc()}{p.}{ss7__route_8c_a45861dcd35546b9e984494d449bef6c7} + \doxyref{ss7\+\_\+route\+\_\+set\+\_\+linkset()}{p.}{ss7__route_8c_a46ccd2320c3e917d0e9bef6b90e78601} + \doxyref{ss7\+\_\+route\+\_\+insert()}{p.}{ss7__route_8c_acf75f3605c463d7c4cef4e73257194ab} instead. 

References \textbf{ osmo\+\_\+ss7\+\_\+route\+::linkset\+\_\+name}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::mask}, \textbf{ NULL}, \textbf{ pc}, \textbf{ ss7\+\_\+route\+\_\+alloc()}, \textbf{ ss7\+\_\+route\+\_\+insert()}, \textbf{ ss7\+\_\+route\+\_\+set\+\_\+linkset()}, and \textbf{ ss7\+\_\+route\+\_\+table\+\_\+find\+\_\+route\+\_\+by\+\_\+dpc\+\_\+mask()}.



Referenced by \textbf{ handle\+\_\+rkey\+\_\+reg()}, \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id()}, \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+server\+\_\+add\+\_\+clnt()}, and \textbf{ xua\+\_\+snm\+\_\+srm\+\_\+pc\+\_\+available\+\_\+single()}.

\label{ss7__route_8h_afe8797bdb0452bb1227f190f3132a8e6} 
\index{ss7\_route.h@{ss7\_route.h}!ss7\_route\_dest\_is\_available@{ss7\_route\_dest\_is\_available}}
\index{ss7\_route\_dest\_is\_available@{ss7\_route\_dest\_is\_available}!ss7\_route.h@{ss7\_route.h}}
\doxysubsubsection{ss7\_route\_dest\_is\_available()}
{\footnotesize\ttfamily bool ss7\+\_\+route\+\_\+dest\+\_\+is\+\_\+available (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$}]{rt }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+route\+::as}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::dest}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::linkset}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+active()}, and \textbf{ ss7\+\_\+linkset\+\_\+is\+\_\+available()}.



Referenced by \textbf{ ss7\+\_\+route\+\_\+is\+\_\+available()}, and \textbf{ vty\+\_\+dump\+\_\+rtable()}.

\label{ss7__route_8h_a6ce127d1c6de224f5a6297f68fba4cfc} 
\index{ss7\_route.h@{ss7\_route.h}!ss7\_route\_destroy@{ss7\_route\_destroy}}
\index{ss7\_route\_destroy@{ss7\_route\_destroy}!ss7\_route.h@{ss7\_route.h}}
\doxysubsubsection{ss7\_route\_destroy()}
{\footnotesize\ttfamily void ss7\+\_\+route\+\_\+destroy (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$}]{rt }\end{DoxyParamCaption})}



Destroy a given SS7 route. 



References \textbf{ LOGPRT}, \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+name()}, \textbf{ ss7\+\_\+combined\+\_\+linkset\+\_\+del\+\_\+route()}, \textbf{ ss7\+\_\+initialized}, and \textbf{ ss7\+\_\+route\+\_\+inserted()}.



Referenced by \textbf{ DEFUN\+\_\+\+ATTR()}, \textbf{ DEFUN\+\_\+\+ATTR()}, \textbf{ handle\+\_\+rkey\+\_\+dereg()}, \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id()}, \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+server\+\_\+add\+\_\+clnt()}, \textbf{ ss7\+\_\+route\+\_\+table\+\_\+del\+\_\+routes\+\_\+by\+\_\+as()}, and \textbf{ ss7\+\_\+route\+\_\+table\+\_\+del\+\_\+routes\+\_\+by\+\_\+linkset()}.

\label{ss7__route_8h_a6089b2cc0e2616cea85a644641cf29b7} 
\index{ss7\_route.h@{ss7\_route.h}!ss7\_route\_find\_dpc@{ss7\_route\_find\_dpc}}
\index{ss7\_route\_find\_dpc@{ss7\_route\_find\_dpc}!ss7\_route.h@{ss7\_route.h}}
\doxysubsubsection{ss7\_route\_find\_dpc()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$ ss7\+\_\+route\+\_\+find\+\_\+dpc (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table} $\ast$}]{rtbl,  }\item[{uint32\+\_\+t}]{dpc }\end{DoxyParamCaption})}

\label{ss7__route_8h_ac484bdd16ce44ebe412847eb6e52e086} 
\index{ss7\_route.h@{ss7\_route.h}!ss7\_route\_find\_dpc\_mask@{ss7\_route\_find\_dpc\_mask}}
\index{ss7\_route\_find\_dpc\_mask@{ss7\_route\_find\_dpc\_mask}!ss7\_route.h@{ss7\_route.h}}
\doxysubsubsection{ss7\_route\_find\_dpc\_mask()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$ ss7\+\_\+route\+\_\+find\+\_\+dpc\+\_\+mask (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table} $\ast$}]{rtbl,  }\item[{uint32\+\_\+t}]{dpc,  }\item[{uint32\+\_\+t}]{mask }\end{DoxyParamCaption})}

\label{ss7__route_8h_acf75f3605c463d7c4cef4e73257194ab} 
\index{ss7\_route.h@{ss7\_route.h}!ss7\_route\_insert@{ss7\_route\_insert}}
\index{ss7\_route\_insert@{ss7\_route\_insert}!ss7\_route.h@{ss7\_route.h}}
\doxysubsubsection{ss7\_route\_insert()}
{\footnotesize\ttfamily int ss7\+\_\+route\+\_\+insert (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$}]{rt }\end{DoxyParamCaption})}



Insert route into its routing table. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rt} & Route to be inserted into its routing table \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, negative on error
\end{DoxyReturn}
A route is only really used once it has been inserted into its routing table. 

References \textbf{ osmo\+\_\+ss7\+\_\+route\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::clset}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::dyn\+\_\+allocated}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::linkset\+\_\+name}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::list}, \textbf{ LOGPRT}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::mask}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::pc}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::priority}, \textbf{ osmo\+\_\+ss7\+\_\+combined\+\_\+linkset\+::routes}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::rtable}, \textbf{ ss7\+\_\+combined\+\_\+linkset\+\_\+add\+\_\+route()}, \textbf{ ss7\+\_\+combined\+\_\+linkset\+\_\+alloc()}, \textbf{ ss7\+\_\+route\+\_\+inserted()}, and \textbf{ ss7\+\_\+route\+\_\+table\+\_\+find\+\_\+combined\+\_\+linkset()}.



Referenced by \textbf{ DEFUN\+\_\+\+ATTR()}, and \textbf{ ss7\+\_\+route\+\_\+create()}.

\label{ss7__route_8h_adea2871496432ff17d7e980d0011e952} 
\index{ss7\_route.h@{ss7\_route.h}!ss7\_route\_is\_available@{ss7\_route\_is\_available}}
\index{ss7\_route\_is\_available@{ss7\_route\_is\_available}!ss7\_route.h@{ss7\_route.h}}
\doxysubsubsection{ss7\_route\_is\_available()}
{\footnotesize\ttfamily bool ss7\+\_\+route\+\_\+is\+\_\+available (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$}]{rt }\end{DoxyParamCaption})}



References \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ROUTE\+\_\+\+STATUS\+\_\+\+AVAILABLE}, \textbf{ ss7\+\_\+route\+\_\+dest\+\_\+is\+\_\+available()}, and \textbf{ osmo\+\_\+ss7\+\_\+route\+::status}.



Referenced by \textbf{ current\+\_\+rt()}, \textbf{ DEFUN()}, \textbf{ ss7\+\_\+combined\+\_\+linkset\+\_\+is\+\_\+available()}, \textbf{ ss7\+\_\+combined\+\_\+linkset\+\_\+lookup\+\_\+route()}, \textbf{ ss7\+\_\+combined\+\_\+linkset\+\_\+select\+\_\+route\+\_\+roundrobin()}, \textbf{ ss7\+\_\+route\+\_\+table\+\_\+dpc\+\_\+is\+\_\+accessible\+\_\+skip\+\_\+as()}, and \textbf{ ss7\+\_\+route\+\_\+table\+\_\+dpc\+\_\+is\+\_\+accessible\+\_\+via\+\_\+as()}.

\label{ss7__route_8h_a5a34ccb548bee6b07328d9c0daec8f81} 
\index{ss7\_route.h@{ss7\_route.h}!ss7\_route\_is\_fully\_qualified@{ss7\_route\_is\_fully\_qualified}}
\index{ss7\_route\_is\_fully\_qualified@{ss7\_route\_is\_fully\_qualified}!ss7\_route.h@{ss7\_route.h}}
\doxysubsubsection{ss7\_route\_is\_fully\_qualified()}
{\footnotesize\ttfamily bool ss7\+\_\+route\+\_\+is\+\_\+fully\+\_\+qualified (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$}]{rt }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::mask}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::pc\+\_\+fmt}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::rtable}, and \textbf{ ss7\+\_\+pc\+\_\+full\+\_\+mask()}.



Referenced by \textbf{ ss7\+\_\+route\+\_\+is\+\_\+summary()}.

\label{ss7__route_8h_ae813cc6d6aab62607315b714359a5d06} 
\index{ss7\_route.h@{ss7\_route.h}!ss7\_route\_is\_summary@{ss7\_route\_is\_summary}}
\index{ss7\_route\_is\_summary@{ss7\_route\_is\_summary}!ss7\_route.h@{ss7\_route.h}}
\doxysubsubsection{ss7\_route\_is\_summary()}
{\footnotesize\ttfamily static bool ss7\+\_\+route\+\_\+is\+\_\+summary (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$}]{rt }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ ss7\+\_\+route\+\_\+is\+\_\+fully\+\_\+qualified()}.



Referenced by \textbf{ as\+\_\+snm\+\_\+pc\+\_\+available()}, \textbf{ as\+\_\+snm\+\_\+pc\+\_\+unavailable()}, and \textbf{ ss7\+\_\+route\+\_\+table\+\_\+update\+\_\+route\+\_\+status\+\_\+by\+\_\+as()}.

\label{ss7__route_8h_a46ccd2320c3e917d0e9bef6b90e78601} 
\index{ss7\_route.h@{ss7\_route.h}!ss7\_route\_set\_linkset@{ss7\_route\_set\_linkset}}
\index{ss7\_route\_set\_linkset@{ss7\_route\_set\_linkset}!ss7\_route.h@{ss7\_route.h}}
\doxysubsubsection{ss7\_route\_set\_linkset()}
{\footnotesize\ttfamily int ss7\+\_\+route\+\_\+set\+\_\+linkset (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$}]{rt,  }\item[{const char $\ast$}]{linkset\+\_\+name }\end{DoxyParamCaption})}



Set linkset on route entry. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rt} & Route to be configured \\
\hline
\mbox{\texttt{ in}}  & {\em linkset\+\_\+name} & string name of the linkset to be used \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, negative on error. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+ss7\+\_\+route\+::as}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::dest}, \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::linkset}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::linkset\+\_\+name}, \textbf{ LOGPRT}, \textbf{ NULL}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+name()}, \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+name()}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::rtable}, \textbf{ ss7\+\_\+linkset\+\_\+find\+\_\+by\+\_\+name()}, and \textbf{ ss7\+\_\+route\+\_\+inserted()}.



Referenced by \textbf{ DEFUN\+\_\+\+ATTR()}, and \textbf{ ss7\+\_\+route\+\_\+create()}.

\label{ss7__route_8h_a753c7e007be9cb449358725862c7f274} 
\index{ss7\_route.h@{ss7\_route.h}!ss7\_route\_status\_name@{ss7\_route\_status\_name}}
\index{ss7\_route\_status\_name@{ss7\_route\_status\_name}!ss7\_route.h@{ss7\_route.h}}
\doxysubsubsection{ss7\_route\_status\_name()}
{\footnotesize\ttfamily static const char $\ast$ ss7\+\_\+route\+\_\+status\+\_\+name (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+status}}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ ss7\+\_\+route\+\_\+status\+\_\+names}.



Referenced by \textbf{ ss7\+\_\+route\+\_\+update\+\_\+route\+\_\+status()}, and \textbf{ xua\+\_\+snm\+\_\+srm\+\_\+pc\+\_\+available\+\_\+single()}.

\label{ss7__route_8h_ab65be259b79426bd174e0a0638c80be0} 
\index{ss7\_route.h@{ss7\_route.h}!ss7\_route\_update\_route\_status@{ss7\_route\_update\_route\_status}}
\index{ss7\_route\_update\_route\_status@{ss7\_route\_update\_route\_status}!ss7\_route.h@{ss7\_route.h}}
\doxysubsubsection{ss7\_route\_update\_route\_status()}
{\footnotesize\ttfamily void ss7\+\_\+route\+\_\+update\+\_\+route\+\_\+status (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$}]{rt,  }\item[{enum \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+status}}]{status }\end{DoxyParamCaption})}



References \textbf{ LOGPRT}, \textbf{ ss7\+\_\+route\+\_\+status\+\_\+name()}, and \textbf{ osmo\+\_\+ss7\+\_\+route\+::status}.



Referenced by \textbf{ ss7\+\_\+route\+\_\+table\+\_\+update\+\_\+route\+\_\+status\+\_\+by\+\_\+as()}, and \textbf{ xua\+\_\+snm\+\_\+srm\+\_\+pc\+\_\+available\+\_\+single()}.



\doxysubsection{Variable Documentation}
\label{ss7__route_8h_a56393b318d5954b30e21a540c407886a} 
\index{ss7\_route.h@{ss7\_route.h}!ss7\_route\_status\_names@{ss7\_route\_status\_names}}
\index{ss7\_route\_status\_names@{ss7\_route\_status\_names}!ss7\_route.h@{ss7\_route.h}}
\doxysubsubsection{ss7\_route\_status\_names}
{\footnotesize\ttfamily const struct value\+\_\+string ss7\+\_\+route\+\_\+status\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ ss7\+\_\+route\+\_\+status\+\_\+name()}.

