\doxysection{src/ss7\+\_\+instance.c File Reference}
\label{ss7__instance_8c}\index{src/ss7\_instance.c@{src/ss7\_instance.c}}
{\ttfamily \#include $<$errno.\+h$>$}\newline
{\ttfamily \#include $<$stdint.\+h$>$}\newline
{\ttfamily \#include $<$unistd.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/linuxlist.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/talloc.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/osmo\+\_\+ss7.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/sccp\+\_\+sap.\+h$>$}\newline
{\ttfamily \#include \char`\"{}ss7\+\_\+as.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}ss7\+\_\+asp.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}ss7\+\_\+internal.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}ss7\+\_\+instance.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}ss7\+\_\+linkset.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}ss7\+\_\+route\+\_\+table.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}sccp\+\_\+internal.\+h\char`\"{}}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
\textbf{ osmo\+\_\+static\+\_\+assert} (ARRAY\+\_\+\+SIZE(\textbf{ ss7\+\_\+instance\+\_\+xua\+\_\+timer\+\_\+defaults})==(\textbf{ SS7\+\_\+\+INST\+\_\+\+XUA\+\_\+\+TIMERS\+\_\+\+LEN}) \&\&ARRAY\+\_\+\+SIZE(\textbf{ ss7\+\_\+instance\+\_\+xua\+\_\+timer\+\_\+names})==(\textbf{ SS7\+\_\+\+INST\+\_\+\+XUA\+\_\+\+TIMERS\+\_\+\+LEN}), assert\+\_\+ss7\+\_\+instance\+\_\+xua\+\_\+timer\+\_\+count)
\item 
static void \textbf{ t8\+\_\+inaccessible\+\_\+sp\+\_\+timer\+\_\+cb} (void $\ast$\+\_\+inst)
\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$ \textbf{ ss7\+\_\+instance\+\_\+alloc} (void $\ast$ctx, uint32\+\_\+t id)
\item 
void \textbf{ osmo\+\_\+ss7\+\_\+instance\+\_\+destroy} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst)
\begin{DoxyCompactList}\small\item\em Destroy a SS7 Instance. \end{DoxyCompactList}\item 
uint32\+\_\+t \textbf{ osmo\+\_\+ss7\+\_\+instance\+\_\+get\+\_\+id} (const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst)
\item 
const char $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+instance\+\_\+get\+\_\+name} (const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst)
\item 
uint32\+\_\+t \textbf{ osmo\+\_\+ss7\+\_\+instance\+\_\+get\+\_\+primary\+\_\+pc} (const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst)
\item 
uint8\+\_\+t \textbf{ osmo\+\_\+ss7\+\_\+instance\+\_\+get\+\_\+network\+\_\+indicator} (const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst)
\item 
int \textbf{ osmo\+\_\+ss7\+\_\+instance\+\_\+set\+\_\+pc\+\_\+fmt} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, uint8\+\_\+t c0, uint8\+\_\+t c1, uint8\+\_\+t c2)
\begin{DoxyCompactList}\small\item\em Set the point code format used in given SS7 instance. \end{DoxyCompactList}\item 
const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+instance\+\_\+get\+\_\+pc\+\_\+fmt} (const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst)
\item 
struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+ensure\+\_\+sccp} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst)
\begin{DoxyCompactList}\small\item\em Allocate an SCCP instance, if not present yet. \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+get\+\_\+sccp} (const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst)
\begin{DoxyCompactList}\small\item\em Get the SCCP instance, if present. \end{DoxyCompactList}\item 
bool \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+is\+\_\+local} (const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, uint32\+\_\+t \textbf{ pc})
\item 
int \textbf{ osmo\+\_\+ss7\+\_\+find\+\_\+free\+\_\+rctx} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst)
\item 
uint32\+\_\+t \textbf{ ss7\+\_\+find\+\_\+free\+\_\+l\+\_\+rk\+\_\+id} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst)
\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$ \textbf{ ss7\+\_\+instance\+\_\+lookup\+\_\+route} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const struct \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+label} $\ast$rtlabel)
\begin{DoxyCompactList}\small\item\em Find a SS7 route for given destination point code in given SS7. \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+name} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$name)
\begin{DoxyCompactList}\small\item\em Find Application Server by given name. \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+rctx} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, uint32\+\_\+t rctx)
\begin{DoxyCompactList}\small\item\em Find Application Server by given routing context. \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+l\+\_\+rk\+\_\+id} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, uint32\+\_\+t l\+\_\+rk\+\_\+id)
\begin{DoxyCompactList}\small\item\em Find Application Server by given local routing key ID. \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+proto} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol} proto)
\begin{DoxyCompactList}\small\item\em Find Application Server (AS) by given protocol. \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+or\+\_\+create} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$name, enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol} proto)
\begin{DoxyCompactList}\small\item\em Find or Create Application Server. \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+name} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$name)
\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+proto} (struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as, enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol} proto)
\begin{DoxyCompactList}\small\item\em Find an ASP that matches the given ASP protocol (x\+UA variant). \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+find2} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$name, uint16\+\_\+t remote\+\_\+port, uint16\+\_\+t local\+\_\+port, int trans\+\_\+proto, enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol} proto)
\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+find} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$name, uint16\+\_\+t remote\+\_\+port, uint16\+\_\+t local\+\_\+port, enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol} proto)
\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create2} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$name, uint16\+\_\+t remote\+\_\+port, uint16\+\_\+t local\+\_\+port, int trans\+\_\+proto, enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol} proto)
\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$name, uint16\+\_\+t remote\+\_\+port, uint16\+\_\+t local\+\_\+port, enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol} proto)
\item 
static int \textbf{ strnappendchar} (char $\ast$str, char c, size\+\_\+t n)
\item 
static const char $\ast$ \textbf{ gen\+\_\+pc\+\_\+fmtstr} (const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} $\ast$pc\+\_\+fmt, unsigned int $\ast$num\+\_\+comp\+\_\+exp)
\item 
static unsigned int \textbf{ num\+\_\+pc\+\_\+comp\+\_\+exp} (const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} $\ast$pc\+\_\+fmt)
\item 
static unsigned int \textbf{ get\+\_\+pc\+\_\+comp\+\_\+shift} (const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} $\ast$pc\+\_\+fmt, unsigned int comp\+\_\+num)
\item 
static uint32\+\_\+t \textbf{ pc\+\_\+comp\+\_\+shift\+\_\+and\+\_\+mask} (const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} $\ast$pc\+\_\+fmt, unsigned int comp\+\_\+num, uint32\+\_\+t \textbf{ pc})
\item 
int \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse} (const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$str)
\item 
const char $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print\+\_\+buf} (char $\ast$buf, size\+\_\+t \textbf{ len}, const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, uint32\+\_\+t \textbf{ pc})
\item 
const char $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print} (const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, uint32\+\_\+t \textbf{ pc})
\item 
const char $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print2} (const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, uint32\+\_\+t \textbf{ pc})
\item 
int \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse\+\_\+mask\+\_\+or\+\_\+len} (const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$in)
\item 
\textbf{ LLIST\+\_\+\+HEAD} (\textbf{ sccp\+\_\+address\+\_\+book\+\_\+global})
\item 
static struct \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry} $\ast$ \textbf{ addr\+\_\+entry\+\_\+alloc} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$name, const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$addr)
\item 
int \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+create} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$name, const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$dest\+\_\+addr)
\begin{DoxyCompactList}\small\item\em Add an SCCP address entry to the addressbook. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+update} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$name, const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$dest\+\_\+addr)
\begin{DoxyCompactList}\small\item\em Update the value of an SCCP address entry already present in the addressbook. \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry} $\ast$ \textbf{ addr\+\_\+entry\+\_\+by\+\_\+name\+\_\+local} (const char $\ast$name, const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst)
\item 
struct \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry} $\ast$ \textbf{ addr\+\_\+entry\+\_\+by\+\_\+name\+\_\+global} (const char $\ast$name)
\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$ \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+by\+\_\+name} (struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$dest\+\_\+addr, const char $\ast$name)
\begin{DoxyCompactList}\small\item\em Lookup an SCCP address from the addressbook by its name. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+by\+\_\+name\+\_\+local} (struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$dest\+\_\+addr, const char $\ast$name, const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst)
\begin{DoxyCompactList}\small\item\em Lookup an SCCP address from the addressbook of a specific instance by its name. \end{DoxyCompactList}\item 
const char $\ast$ \textbf{ osmo\+\_\+sccp\+\_\+name\+\_\+by\+\_\+addr} (const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$addr)
\begin{DoxyCompactList}\small\item\em Reverse lookup the lookup-\/name of a specified SCCP address. \end{DoxyCompactList}\item 
bool \textbf{ ss7\+\_\+instance\+\_\+t8\+\_\+inaccessible\+\_\+sp\+\_\+running} (const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, uint32\+\_\+t \textbf{ dpc})
\item 
void \textbf{ ss7\+\_\+instance\+\_\+t8\+\_\+inaccessible\+\_\+sp\+\_\+start} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, uint32\+\_\+t \textbf{ dpc})
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
static int32\+\_\+t \textbf{ next\+\_\+rctx} = 1
\item 
static int32\+\_\+t \textbf{ next\+\_\+l\+\_\+rk\+\_\+id} = 1
\item 
static const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} \textbf{ default\+\_\+pc\+\_\+fmt}
\item 
static const struct rate\+\_\+ctr\+\_\+desc \textbf{ ss7\+\_\+inst\+\_\+rcd} [$\,$]
\item 
static const struct rate\+\_\+ctr\+\_\+group\+\_\+desc \textbf{ ss7\+\_\+inst\+\_\+rcgd}
\item 
const struct osmo\+\_\+tdef \textbf{ ss7\+\_\+instance\+\_\+xua\+\_\+timer\+\_\+defaults} [\textbf{ SS7\+\_\+\+INST\+\_\+\+XUA\+\_\+\+TIMERS\+\_\+\+LEN}]
\item 
const struct value\+\_\+string \textbf{ ss7\+\_\+instance\+\_\+xua\+\_\+timer\+\_\+names} [$\,$]
\end{DoxyCompactItemize}


\doxysubsection{Function Documentation}
\mbox{\label{ss7__instance_8c_a1116d16387505ef95d2af36c1a9b6274}} 
\index{ss7\_instance.c@{ss7\_instance.c}!addr\_entry\_alloc@{addr\_entry\_alloc}}
\index{addr\_entry\_alloc@{addr\_entry\_alloc}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{addr\_entry\_alloc()}
{\footnotesize\ttfamily static struct \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry} $\ast$ addr\+\_\+entry\+\_\+alloc (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{const char $\ast$}]{name,  }\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{addr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::addr}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::cfg}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::inst}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::list}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::list\+\_\+global}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::name}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::sccp\+\_\+address\+\_\+book}, and \textbf{ sccp\+\_\+address\+\_\+book\+\_\+global}.



Referenced by \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+create()}.

\mbox{\label{ss7__instance_8c_a5d9d69978ec8635f8c1884aafb57b651}} 
\index{ss7\_instance.c@{ss7\_instance.c}!addr\_entry\_by\_name\_global@{addr\_entry\_by\_name\_global}}
\index{addr\_entry\_by\_name\_global@{addr\_entry\_by\_name\_global}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{addr\_entry\_by\_name\_global()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry} $\ast$ addr\+\_\+entry\+\_\+by\+\_\+name\+\_\+global (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::list\+\_\+global}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::name}, \textbf{ NULL}, and \textbf{ sccp\+\_\+address\+\_\+book\+\_\+global}.



Referenced by \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+by\+\_\+name()}, and \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+create()}.

\mbox{\label{ss7__instance_8c_a3275f8a93d080733c921503ecb80eb06}} 
\index{ss7\_instance.c@{ss7\_instance.c}!addr\_entry\_by\_name\_local@{addr\_entry\_by\_name\_local}}
\index{addr\_entry\_by\_name\_local@{addr\_entry\_by\_name\_local}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{addr\_entry\_by\_name\_local()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry} $\ast$ addr\+\_\+entry\+\_\+by\+\_\+name\+\_\+local (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name,  }\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::cfg}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::inst}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::list}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::name}, \textbf{ NULL}, and \textbf{ osmo\+\_\+ss7\+\_\+instance\+::sccp\+\_\+address\+\_\+book}.



Referenced by \textbf{ DEFUN\+\_\+\+ATTR()}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+by\+\_\+name\+\_\+local()}, and \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+update()}.

\mbox{\label{ss7__instance_8c_aabb5ff7e5820e268a941510bd387fce2}} 
\index{ss7\_instance.c@{ss7\_instance.c}!gen\_pc\_fmtstr@{gen\_pc\_fmtstr}}
\index{gen\_pc\_fmtstr@{gen\_pc\_fmtstr}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{gen\_pc\_fmtstr()}
{\footnotesize\ttfamily static const char $\ast$ gen\+\_\+pc\+\_\+fmtstr (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} $\ast$}]{pc\+\_\+fmt,  }\item[{unsigned int $\ast$}]{num\+\_\+comp\+\_\+exp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt\+::component\+\_\+len}, \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt\+::delimiter}, \textbf{ MAX\+\_\+\+PC\+\_\+\+STR\+\_\+\+LEN}, and \textbf{ strnappendchar()}.



Referenced by \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse()}, and \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print\+\_\+buf()}.

\mbox{\label{ss7__instance_8c_ae2dc16490ad0d3a263aa80160bc36828}} 
\index{ss7\_instance.c@{ss7\_instance.c}!get\_pc\_comp\_shift@{get\_pc\_comp\_shift}}
\index{get\_pc\_comp\_shift@{get\_pc\_comp\_shift}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{get\_pc\_comp\_shift()}
{\footnotesize\ttfamily static unsigned int get\+\_\+pc\+\_\+comp\+\_\+shift (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} $\ast$}]{pc\+\_\+fmt,  }\item[{unsigned int}]{comp\+\_\+num }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt\+::component\+\_\+len}, and \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+width()}.



Referenced by \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse()}, and \textbf{ pc\+\_\+comp\+\_\+shift\+\_\+and\+\_\+mask()}.

\mbox{\label{ss7__instance_8c_a32d8898ccbfdadf43521f749b9b37b9a}} 
\index{ss7\_instance.c@{ss7\_instance.c}!LLIST\_HEAD@{LLIST\_HEAD}}
\index{LLIST\_HEAD@{LLIST\_HEAD}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{LLIST\_HEAD()}
{\footnotesize\ttfamily LLIST\+\_\+\+HEAD (\begin{DoxyParamCaption}\item[{\textbf{ sccp\+\_\+address\+\_\+book\+\_\+global}}]{ }\end{DoxyParamCaption})}

\mbox{\label{ss7__instance_8c_abf3c0ef5eb29ad67de6ea862d7e2cfed}} 
\index{ss7\_instance.c@{ss7\_instance.c}!num\_pc\_comp\_exp@{num\_pc\_comp\_exp}}
\index{num\_pc\_comp\_exp@{num\_pc\_comp\_exp}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{num\_pc\_comp\_exp()}
{\footnotesize\ttfamily static unsigned int num\+\_\+pc\+\_\+comp\+\_\+exp (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} $\ast$}]{pc\+\_\+fmt }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt\+::component\+\_\+len}.



Referenced by \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse()}, and \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print\+\_\+buf()}.

\mbox{\label{ss7__instance_8c_a4b5916b441a0441510f6feca9ba09310}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_sccp\_addr\_by\_name@{osmo\_sccp\_addr\_by\_name}}
\index{osmo\_sccp\_addr\_by\_name@{osmo\_sccp\_addr\_by\_name}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_sccp\_addr\_by\_name()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$ osmo\+\_\+sccp\+\_\+addr\+\_\+by\+\_\+name (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{dest\+\_\+addr,  }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}



Lookup an SCCP address from the addressbook by its name. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em dest\+\_\+addr} & pointer to output the resulting sccp-\/address; (set to NULL if not interested) \\
\hline
\mbox{\texttt{ in}}  & {\em name} & of the address to lookup \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
SS7 instance; NULL on error 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::addr}, \textbf{ addr\+\_\+entry\+\_\+by\+\_\+name\+\_\+global()}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::inst}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::name}, and \textbf{ NULL}.

\mbox{\label{ss7__instance_8c_a673062adcb4dcd4615ef8e485d70ed07}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_sccp\_addr\_by\_name\_local@{osmo\_sccp\_addr\_by\_name\_local}}
\index{osmo\_sccp\_addr\_by\_name\_local@{osmo\_sccp\_addr\_by\_name\_local}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_sccp\_addr\_by\_name\_local()}
{\footnotesize\ttfamily int osmo\+\_\+sccp\+\_\+addr\+\_\+by\+\_\+name\+\_\+local (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{dest\+\_\+addr,  }\item[{const char $\ast$}]{name,  }\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})}



Lookup an SCCP address from the addressbook of a specific instance by its name. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em dest\+\_\+addr} & pointer to output the resulting sccp-\/address; (set to NULL if not interested) \\
\hline
\mbox{\texttt{ in}}  & {\em name} & of the address to lookup \\
\hline
\mbox{\texttt{ in}}  & {\em inst} & ss7 instance of which the address book will be searched \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; $<$0 on error 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::addr}, \textbf{ addr\+\_\+entry\+\_\+by\+\_\+name\+\_\+local()}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::inst}, and \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::name}.

\mbox{\label{ss7__instance_8c_aa0877f3f7bcf3f59ec08f98488de3f6a}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_sccp\_addr\_create@{osmo\_sccp\_addr\_create}}
\index{osmo\_sccp\_addr\_create@{osmo\_sccp\_addr\_create}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_sccp\_addr\_create()}
{\footnotesize\ttfamily int osmo\+\_\+sccp\+\_\+addr\+\_\+create (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{const char $\ast$}]{name,  }\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{dest\+\_\+addr }\end{DoxyParamCaption})}



Add an SCCP address entry to the addressbook. 


\begin{DoxyParams}[1]{Parameters}
 & {\em \mbox{[}int\mbox{]}} & inst cs7 instance where this address belongs \\
\hline
\mbox{\texttt{ in}}  & {\em name} & of the address to create \\
\hline
\mbox{\texttt{ in}}  & {\em dest\+\_\+addr} & address value to add to the addressbook. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, negative error code on error.
\end{DoxyReturn}
Validates that the name is unique among all cs7 instances of the process, and that no such entry already exists. 

References \textbf{ addr\+\_\+entry\+\_\+alloc()}, \textbf{ addr\+\_\+entry\+\_\+by\+\_\+name\+\_\+global()}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::id}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::inst}, \textbf{ LOGSS7}, and \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::name}.



Referenced by \textbf{ DEFUN\+\_\+\+ATTR()}.

\mbox{\label{ss7__instance_8c_aaf489c16310c0af80dd868102ad2d57a}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_sccp\_addr\_update@{osmo\_sccp\_addr\_update}}
\index{osmo\_sccp\_addr\_update@{osmo\_sccp\_addr\_update}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_sccp\_addr\_update()}
{\footnotesize\ttfamily int osmo\+\_\+sccp\+\_\+addr\+\_\+update (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{const char $\ast$}]{name,  }\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{dest\+\_\+addr }\end{DoxyParamCaption})}



Update the value of an SCCP address entry already present in the addressbook. 


\begin{DoxyParams}[1]{Parameters}
 & {\em \mbox{[}int\mbox{]}} & inst cs7 instance where this address belongs \\
\hline
\mbox{\texttt{ in}}  & {\em name} & of the address to update \\
\hline
\mbox{\texttt{ in}}  & {\em dest\+\_\+addr} & address value to store in the addressbook. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, negative error code on error. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::addr}, \textbf{ addr\+\_\+entry\+\_\+by\+\_\+name\+\_\+local()}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::id}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::inst}, \textbf{ LOGSS7}, and \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::name}.

\mbox{\label{ss7__instance_8c_abc34d0320ec536b5b359cd2dfcaefd08}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_sccp\_name\_by\_addr@{osmo\_sccp\_name\_by\_addr}}
\index{osmo\_sccp\_name\_by\_addr@{osmo\_sccp\_name\_by\_addr}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_sccp\_name\_by\_addr()}
{\footnotesize\ttfamily const char $\ast$ osmo\+\_\+sccp\+\_\+name\+\_\+by\+\_\+addr (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{addr }\end{DoxyParamCaption})}



Reverse lookup the lookup-\/name of a specified SCCP address. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em name} & of the address to lookup \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
char pointer to the lookup-\/name; NULL on error 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::addr}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::list\+\_\+global}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::name}, \textbf{ NULL}, and \textbf{ sccp\+\_\+address\+\_\+book\+\_\+global}.

\mbox{\label{ss7__instance_8c_a4425a62d1138a1face7ce0f4461c1811}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_as\_find\_by\_l\_rk\_id@{osmo\_ss7\_as\_find\_by\_l\_rk\_id}}
\index{osmo\_ss7\_as\_find\_by\_l\_rk\_id@{osmo\_ss7\_as\_find\_by\_l\_rk\_id}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_as\_find\_by\_l\_rk\_id()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+l\+\_\+rk\+\_\+id (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{uint32\+\_\+t}]{l\+\_\+rk\+\_\+id }\end{DoxyParamCaption})}



Find Application Server by given local routing key ID. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em inst} & SS7 Instance on which we operate \\
\hline
\mbox{\texttt{ in}}  & {\em l\+\_\+rk\+\_\+id} & Local Routing Key ID \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
pointer to Application Server on success; NULL otherwise 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::as\+\_\+list}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+routing\+\_\+key\+::l\+\_\+rk\+\_\+id}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::list}, \textbf{ NULL}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::routing\+\_\+key}, and \textbf{ ss7\+\_\+initialized}.



Referenced by \textbf{ handle\+\_\+reg\+\_\+conf()}, and \textbf{ ss7\+\_\+find\+\_\+free\+\_\+l\+\_\+rk\+\_\+id()}.

\mbox{\label{ss7__instance_8c_a04274a80653a9a83afd823b31c55e6c6}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_as\_find\_by\_name@{osmo\_ss7\_as\_find\_by\_name}}
\index{osmo\_ss7\_as\_find\_by\_name@{osmo\_ss7\_as\_find\_by\_name}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_as\_find\_by\_name()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+name (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}



Find Application Server by given name. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em inst} & SS7 Instance on which we operate \\
\hline
\mbox{\texttt{ in}}  & {\em name} & Name of AS \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
pointer to Application Server on success; NULL otherwise 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::as\+\_\+list}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::list}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::name}, \textbf{ NULL}, and \textbf{ ss7\+\_\+initialized}.



Referenced by \textbf{ DEFUN()}, \textbf{ DEFUN\+\_\+\+ATTR()}, \textbf{ ipa\+\_\+asp\+\_\+fsm\+\_\+wait\+\_\+id\+\_\+resp()}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+or\+\_\+create()}, \textbf{ show\+\_\+as()}, and \textbf{ ss7\+\_\+route\+\_\+set\+\_\+linkset()}.

\mbox{\label{ss7__instance_8c_a36cd354a3665015410895188d3d2afaa}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_as\_find\_by\_proto@{osmo\_ss7\_as\_find\_by\_proto}}
\index{osmo\_ss7\_as\_find\_by\_proto@{osmo\_ss7\_as\_find\_by\_proto}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_as\_find\_by\_proto()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+proto (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol}}]{proto }\end{DoxyParamCaption})}



Find Application Server (AS) by given protocol. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em inst} & SS7 Instance on which we operate \\
\hline
\mbox{\texttt{ in}}  & {\em proto} & Protocol identifier that must match \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
pointer to AS on success; NULL otherwise If an AS has an ASP also matching the given protocol, that AS is preferred. If there are multiple matches, return the first matching AS. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::as\+\_\+list}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::list}, \textbf{ NULL}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+proto()}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::proto}, and \textbf{ ss7\+\_\+initialized}.



Referenced by \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id()}.

\mbox{\label{ss7__instance_8c_a62014d2e42c76eb8e16ed079240a550a}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_as\_find\_by\_rctx@{osmo\_ss7\_as\_find\_by\_rctx}}
\index{osmo\_ss7\_as\_find\_by\_rctx@{osmo\_ss7\_as\_find\_by\_rctx}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_as\_find\_by\_rctx()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+rctx (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{uint32\+\_\+t}]{rctx }\end{DoxyParamCaption})}



Find Application Server by given routing context. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em inst} & SS7 Instance on which we operate \\
\hline
\mbox{\texttt{ in}}  & {\em rctx} & Routing Context \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
pointer to Application Server on success; NULL otherwise 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::as\+\_\+list}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+routing\+\_\+key\+::context}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::list}, \textbf{ NULL}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::routing\+\_\+key}, and \textbf{ ss7\+\_\+initialized}.



Referenced by \textbf{ handle\+\_\+rkey\+\_\+dereg()}, \textbf{ handle\+\_\+rkey\+\_\+reg()}, \textbf{ osmo\+\_\+ss7\+\_\+find\+\_\+free\+\_\+rctx()}, \textbf{ xua\+\_\+asp\+\_\+fsm\+\_\+inactive()}, and \textbf{ xua\+\_\+find\+\_\+as\+\_\+for\+\_\+asp()}.

\mbox{\label{ss7__instance_8c_adeeee1a2cbcab7653a422473d4d59950}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_as\_find\_or\_create@{osmo\_ss7\_as\_find\_or\_create}}
\index{osmo\_ss7\_as\_find\_or\_create@{osmo\_ss7\_as\_find\_or\_create}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_as\_find\_or\_create()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+or\+\_\+create (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{const char $\ast$}]{name,  }\item[{enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol}}]{proto }\end{DoxyParamCaption})}



Find or Create Application Server. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em inst} & SS7 Instance on which we operate \\
\hline
\mbox{\texttt{ in}}  & {\em name} & Name of Application Server \\
\hline
\mbox{\texttt{ in}}  & {\em proto} & Protocol of Application Server \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
pointer to Application Server on success; NULL otherwise 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+ss7\+\_\+as\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::inst}, \textbf{ LOGPAS}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::name}, \textbf{ NULL}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+name()}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::proto}, \textbf{ ss7\+\_\+as\+\_\+alloc()}, and \textbf{ ss7\+\_\+initialized}.



Referenced by \textbf{ DEFUN\+\_\+\+ATTR()}, \textbf{ handle\+\_\+rkey\+\_\+reg()}, \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id()}, and \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+server\+\_\+add\+\_\+clnt()}.

\mbox{\label{ss7__instance_8c_a237f11eac97e4d4fd1464c9e6217cb63}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_asp\_find@{osmo\_ss7\_asp\_find}}
\index{osmo\_ss7\_asp\_find@{osmo\_ss7\_asp\_find}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_asp\_find()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ osmo\+\_\+ss7\+\_\+asp\+\_\+find (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{const char $\ast$}]{name,  }\item[{uint16\+\_\+t}]{remote\+\_\+port,  }\item[{uint16\+\_\+t}]{local\+\_\+port,  }\item[{enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol}}]{proto }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::name}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+find2()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}, \textbf{ ss7\+\_\+default\+\_\+trans\+\_\+proto\+\_\+for\+\_\+asp\+\_\+proto()}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+::trans\+\_\+proto}.

\mbox{\label{ss7__instance_8c_a6d441982a917c3e081e48333cd5b5cb0}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_asp\_find2@{osmo\_ss7\_asp\_find2}}
\index{osmo\_ss7\_asp\_find2@{osmo\_ss7\_asp\_find2}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_asp\_find2()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ osmo\+\_\+ss7\+\_\+asp\+\_\+find2 (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{const char $\ast$}]{name,  }\item[{uint16\+\_\+t}]{remote\+\_\+port,  }\item[{uint16\+\_\+t}]{local\+\_\+port,  }\item[{int}]{trans\+\_\+proto,  }\item[{enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol}}]{proto }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::local}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::name}, \textbf{ NULL}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+name()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::port}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::remote}, \textbf{ ss7\+\_\+initialized}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+::trans\+\_\+proto}.



Referenced by \textbf{ DEFUN\+\_\+\+ATTR()}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+find()}.

\mbox{\label{ss7__instance_8c_a3c7622dd0920b73b1de4bacb1466a31d}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_asp\_find\_by\_name@{osmo\_ss7\_asp\_find\_by\_name}}
\index{osmo\_ss7\_asp\_find\_by\_name@{osmo\_ss7\_asp\_find\_by\_name}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_asp\_find\_by\_name()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+name (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::asp\+\_\+list}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::list}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::name}, \textbf{ NULL}, and \textbf{ ss7\+\_\+initialized}.



Referenced by \textbf{ DEFUN()}, \textbf{ DEFUN\+\_\+\+ATTR()}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+add\+\_\+asp()}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+del\+\_\+asp()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+find2()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create2()}, \textbf{ show\+\_\+asp()}, \textbf{ show\+\_\+asp\+\_\+assoc\+\_\+status()}, and \textbf{ show\+\_\+asp\+\_\+remaddr()}.

\mbox{\label{ss7__instance_8c_acff40fa25f195d4b065214ede9d5a200}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_asp\_find\_by\_proto@{osmo\_ss7\_asp\_find\_by\_proto}}
\index{osmo\_ss7\_asp\_find\_by\_proto@{osmo\_ss7\_asp\_find\_by\_proto}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_asp\_find\_by\_proto()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+proto (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as,  }\item[{enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol}}]{proto }\end{DoxyParamCaption})}



Find an ASP that matches the given ASP protocol (x\+UA variant). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em as} & Application Server in which to look for asp \\
\hline
\mbox{\texttt{ in}}  & {\em proto} & ASP protocol (x\+UA variant) to match \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
SS7 ASP in case a matching one is found; NULL otherwise 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+ss7\+\_\+as\+::asps}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ NULL}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}.



Referenced by \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id()}, and \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+proto()}.

\mbox{\label{ss7__instance_8c_a4f361e41e148a1235e41e989a6a3e5ef}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_asp\_find\_or\_create@{osmo\_ss7\_asp\_find\_or\_create}}
\index{osmo\_ss7\_asp\_find\_or\_create@{osmo\_ss7\_asp\_find\_or\_create}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_asp\_find\_or\_create()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{const char $\ast$}]{name,  }\item[{uint16\+\_\+t}]{remote\+\_\+port,  }\item[{uint16\+\_\+t}]{local\+\_\+port,  }\item[{enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol}}]{proto }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::name}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create2()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}, \textbf{ ss7\+\_\+default\+\_\+trans\+\_\+proto\+\_\+for\+\_\+asp\+\_\+proto()}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+::trans\+\_\+proto}.

\mbox{\label{ss7__instance_8c_abcef629eaf44fa0a9580dbaf79614b10}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_asp\_find\_or\_create2@{osmo\_ss7\_asp\_find\_or\_create2}}
\index{osmo\_ss7\_asp\_find\_or\_create2@{osmo\_ss7\_asp\_find\_or\_create2}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_asp\_find\_or\_create2()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create2 (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{const char $\ast$}]{name,  }\item[{uint16\+\_\+t}]{remote\+\_\+port,  }\item[{uint16\+\_\+t}]{local\+\_\+port,  }\item[{int}]{trans\+\_\+proto,  }\item[{enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol}}]{proto }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::local}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::name}, \textbf{ NULL}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+name()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::port}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::remote}, \textbf{ ss7\+\_\+asp\+\_\+alloc()}, \textbf{ ss7\+\_\+initialized}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+::trans\+\_\+proto}.



Referenced by \textbf{ DEFUN\+\_\+\+ATTR()}, \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id()}, \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+server\+\_\+add\+\_\+clnt()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create()}, and \textbf{ xua\+\_\+accept\+\_\+cb()}.

\mbox{\label{ss7__instance_8c_a72373e61bde57eeafd151102aae20b28}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_ensure\_sccp@{osmo\_ss7\_ensure\_sccp}}
\index{osmo\_ss7\_ensure\_sccp@{osmo\_ss7\_ensure\_sccp}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_ensure\_sccp()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$ osmo\+\_\+ss7\+\_\+ensure\+\_\+sccp (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})}



Allocate an SCCP instance, if not present yet. 

\begin{DoxyReturn}{Returns}
inst-\/$>$sccp. 
\end{DoxyReturn}


References \textbf{ LOGSS7}, \textbf{ NULL}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+\_\+create()}, and \textbf{ osmo\+\_\+ss7\+\_\+instance\+::sccp}.



Referenced by \textbf{ DEFUN\+\_\+\+ATTR()}, \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id()}, \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+server\+\_\+on\+\_\+ss7\+\_\+id()}, \textbf{ ss7\+\_\+asp\+\_\+alloc()}, and \textbf{ ss7\+\_\+xua\+\_\+server\+\_\+create2()}.

\mbox{\label{ss7__instance_8c_ad995eb65a7ba20e8d134033669126231}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_find\_free\_rctx@{osmo\_ss7\_find\_free\_rctx}}
\index{osmo\_ss7\_find\_free\_rctx@{osmo\_ss7\_find\_free\_rctx}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_find\_free\_rctx()}
{\footnotesize\ttfamily int osmo\+\_\+ss7\+\_\+find\+\_\+free\+\_\+rctx (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})}



References \textbf{ next\+\_\+rctx}, and \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+rctx()}.



Referenced by \textbf{ handle\+\_\+rkey\+\_\+reg()}.

\mbox{\label{ss7__instance_8c_a5c222268e9a51842ea413861f736f390}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_get\_sccp@{osmo\_ss7\_get\_sccp}}
\index{osmo\_ss7\_get\_sccp@{osmo\_ss7\_get\_sccp}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_get\_sccp()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$ osmo\+\_\+ss7\+\_\+get\+\_\+sccp (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})}



Get the SCCP instance, if present. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em inst} & SS7 Instance on which we operate \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
inst-\/$>$sccp, may be NULL if no SCCP instance was created yet (see \doxyref{osmo\+\_\+ss7\+\_\+ensure\+\_\+sccp()}{p.}{ss7__instance_8c_a72373e61bde57eeafd151102aae20b28}). 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::sccp}.

\mbox{\label{ss7__instance_8c_a55d7a596847108913e0e9e03dbf1a933}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_instance\_destroy@{osmo\_ss7\_instance\_destroy}}
\index{osmo\_ss7\_instance\_destroy@{osmo\_ss7\_instance\_destroy}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_instance\_destroy()}
{\footnotesize\ttfamily void osmo\+\_\+ss7\+\_\+instance\+\_\+destroy (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})}



Destroy a SS7 Instance. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em inst} & SS7 Instance to be destroyed \\
\hline
\end{DoxyParams}


References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::as\+\_\+list}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::asp\+\_\+list}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::ctrg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::linksets}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::list}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::list}, \textbf{ LOGSS7}, \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+destroy()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+destroy()}, \textbf{ ss7\+\_\+initialized}, \textbf{ ss7\+\_\+linkset\+\_\+destroy()}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::t8\+\_\+inaccessible\+\_\+sp}, and \textbf{ osmo\+\_\+ss7\+\_\+instance\+::timer}.



Referenced by \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id()}, and \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+server\+\_\+on\+\_\+ss7\+\_\+id()}.

\mbox{\label{ss7__instance_8c_a3595c88f1b7d084a9c71b303b83d8712}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_instance\_get\_id@{osmo\_ss7\_instance\_get\_id}}
\index{osmo\_ss7\_instance\_get\_id@{osmo\_ss7\_instance\_get\_id}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_instance\_get\_id()}
{\footnotesize\ttfamily uint32\+\_\+t osmo\+\_\+ss7\+\_\+instance\+\_\+get\+\_\+id (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::id}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}.

\mbox{\label{ss7__instance_8c_af57f72917f7308becf16d548dfb4e62a}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_instance\_get\_name@{osmo\_ss7\_instance\_get\_name}}
\index{osmo\_ss7\_instance\_get\_name@{osmo\_ss7\_instance\_get\_name}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_instance\_get\_name()}
{\footnotesize\ttfamily const char $\ast$ osmo\+\_\+ss7\+\_\+instance\+\_\+get\+\_\+name (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, and \textbf{ osmo\+\_\+ss7\+\_\+instance\+::name}.

\mbox{\label{ss7__instance_8c_aaeb130c12ea9b9d4012b25126f734a8f}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_instance\_get\_network\_indicator@{osmo\_ss7\_instance\_get\_network\_indicator}}
\index{osmo\_ss7\_instance\_get\_network\_indicator@{osmo\_ss7\_instance\_get\_network\_indicator}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_instance\_get\_network\_indicator()}
{\footnotesize\ttfamily uint8\+\_\+t osmo\+\_\+ss7\+\_\+instance\+\_\+get\+\_\+network\+\_\+indicator (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, and \textbf{ osmo\+\_\+ss7\+\_\+instance\+::network\+\_\+indicator}.

\mbox{\label{ss7__instance_8c_ab7a32e6866b73437629f9f5662fe2380}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_instance\_get\_pc\_fmt@{osmo\_ss7\_instance\_get\_pc\_fmt}}
\index{osmo\_ss7\_instance\_get\_pc\_fmt@{osmo\_ss7\_instance\_get\_pc\_fmt}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_instance\_get\_pc\_fmt()}
{\footnotesize\ttfamily const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} $\ast$ osmo\+\_\+ss7\+\_\+instance\+\_\+get\+\_\+pc\+\_\+fmt (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::cfg}, and \textbf{ osmo\+\_\+ss7\+\_\+instance\+::pc\+\_\+fmt}.

\mbox{\label{ss7__instance_8c_a20a5157955a10832980b3cf55510b33b}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_instance\_get\_primary\_pc@{osmo\_ss7\_instance\_get\_primary\_pc}}
\index{osmo\_ss7\_instance\_get\_primary\_pc@{osmo\_ss7\_instance\_get\_primary\_pc}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_instance\_get\_primary\_pc()}
{\footnotesize\ttfamily uint32\+\_\+t osmo\+\_\+ss7\+\_\+instance\+\_\+get\+\_\+primary\+\_\+pc (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, and \textbf{ osmo\+\_\+ss7\+\_\+instance\+::primary\+\_\+pc}.

\mbox{\label{ss7__instance_8c_adc19747b6de70d033959ee3cf5d26bdf}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_instance\_set\_pc\_fmt@{osmo\_ss7\_instance\_set\_pc\_fmt}}
\index{osmo\_ss7\_instance\_set\_pc\_fmt@{osmo\_ss7\_instance\_set\_pc\_fmt}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_instance\_set\_pc\_fmt()}
{\footnotesize\ttfamily int osmo\+\_\+ss7\+\_\+instance\+\_\+set\+\_\+pc\+\_\+fmt (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{uint8\+\_\+t}]{c0,  }\item[{uint8\+\_\+t}]{c1,  }\item[{uint8\+\_\+t}]{c2 }\end{DoxyParamCaption})}



Set the point code format used in given SS7 instance. 



References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt\+::component\+\_\+len}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ LOGSS7}, and \textbf{ osmo\+\_\+ss7\+\_\+instance\+::pc\+\_\+fmt}.

\mbox{\label{ss7__instance_8c_a190e38496f2cbbea8e8dbab451cd5c1e}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_pc\_is\_local@{osmo\_ss7\_pc\_is\_local}}
\index{osmo\_ss7\_pc\_is\_local@{osmo\_ss7\_pc\_is\_local}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_pc\_is\_local()}
{\footnotesize\ttfamily bool osmo\+\_\+ss7\+\_\+pc\+\_\+is\+\_\+local (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{uint32\+\_\+t}]{pc }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+is\+\_\+valid()}, \textbf{ pc}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::primary\+\_\+pc}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::secondary\+\_\+pc}, and \textbf{ ss7\+\_\+initialized}.



Referenced by \textbf{ as\+\_\+snm\+\_\+pc\+\_\+available()}, \textbf{ as\+\_\+snm\+\_\+pc\+\_\+unavailable()}, \textbf{ dpc\+\_\+accessible()}, \textbf{ mtp3\+\_\+hmdc\+\_\+rx\+\_\+from\+\_\+l2()}, \textbf{ mtp3\+\_\+rtpc\+\_\+rx\+\_\+msg\+\_\+for\+\_\+inaccessible\+\_\+sp()}, \textbf{ sccp\+\_\+sclc\+\_\+rx\+\_\+scrc\+\_\+rout\+\_\+fail()}, \textbf{ scrc\+\_\+local\+\_\+out\+\_\+common()}, \textbf{ scrc\+\_\+translate\+\_\+node\+\_\+9()}, \textbf{ ss7\+\_\+vty\+\_\+node\+\_\+as\+\_\+go\+\_\+parent()}, and \textbf{ xua\+\_\+asp\+\_\+tx\+\_\+snm\+\_\+daud\+\_\+address\+\_\+book()}.

\mbox{\label{ss7__instance_8c_a2cfd271ba23f83329b046b245b7dc083}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_pointcode\_parse@{osmo\_ss7\_pointcode\_parse}}
\index{osmo\_ss7\_pointcode\_parse@{osmo\_ss7\_pointcode\_parse}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_pointcode\_parse()}
{\footnotesize\ttfamily int osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{const char $\ast$}]{str }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt\+::component\+\_\+len}, \textbf{ default\+\_\+pc\+\_\+fmt}, \textbf{ err}, \textbf{ gen\+\_\+pc\+\_\+fmtstr()}, \textbf{ get\+\_\+pc\+\_\+comp\+\_\+shift()}, \textbf{ LOGSS7}, \textbf{ num\+\_\+pc\+\_\+comp\+\_\+exp()}, and \textbf{ osmo\+\_\+ss7\+\_\+instance\+::pc\+\_\+fmt}.



Referenced by \textbf{ \+\_\+rout\+\_\+key()}, \textbf{ DEFUN()}, \textbf{ DEFUN\+\_\+\+ATTR()}, and \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse\+\_\+mask\+\_\+or\+\_\+len()}.

\mbox{\label{ss7__instance_8c_a084299ae59a9c06a7274cdab910456d5}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_pointcode\_parse\_mask\_or\_len@{osmo\_ss7\_pointcode\_parse\_mask\_or\_len}}
\index{osmo\_ss7\_pointcode\_parse\_mask\_or\_len@{osmo\_ss7\_pointcode\_parse\_mask\_or\_len}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_pointcode\_parse\_mask\_or\_len()}
{\footnotesize\ttfamily int osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse\+\_\+mask\+\_\+or\+\_\+len (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{const char $\ast$}]{in }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::cfg}, \textbf{ default\+\_\+pc\+\_\+fmt}, \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+width()}, \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse()}, and \textbf{ osmo\+\_\+ss7\+\_\+instance\+::pc\+\_\+fmt}.



Referenced by \textbf{ DEFUN\+\_\+\+ATTR()}.

\mbox{\label{ss7__instance_8c_accae8bcfd3577b2fcae21c55d97be313}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_pointcode\_print@{osmo\_ss7\_pointcode\_print}}
\index{osmo\_ss7\_pointcode\_print@{osmo\_ss7\_pointcode\_print}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_pointcode\_print()}
{\footnotesize\ttfamily const char $\ast$ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{uint32\+\_\+t}]{pc }\end{DoxyParamCaption})}



References \textbf{ MAX\+\_\+\+PC\+\_\+\+STR\+\_\+\+LEN}, \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print\+\_\+buf()}, and \textbf{ pc}.



Referenced by \textbf{ as\+\_\+snm\+\_\+pc\+\_\+available()}, \textbf{ as\+\_\+snm\+\_\+pc\+\_\+unavailable()}, \textbf{ DEFUN()}, \textbf{ format\+\_\+affected\+\_\+pcs\+\_\+c()}, \textbf{ handle\+\_\+rkey\+\_\+dereg()}, \textbf{ handle\+\_\+rkey\+\_\+reg()}, \textbf{ m3ua\+\_\+rx\+\_\+xfer()}, \textbf{ mtp3\+\_\+hmdc\+\_\+rx\+\_\+from\+\_\+l2()}, \textbf{ mtp3\+\_\+hmrt\+\_\+message\+\_\+for\+\_\+routing()}, \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id()}, \textbf{ sccp\+\_\+user\+\_\+bind\+\_\+pc()}, \textbf{ scrc\+\_\+node\+\_\+6()}, \textbf{ show\+\_\+one\+\_\+as()}, \textbf{ show\+\_\+one\+\_\+tcap\+\_\+range()}, \textbf{ show\+\_\+user()}, \textbf{ ss7\+\_\+as\+\_\+select\+\_\+asp\+\_\+loadshare()}, \textbf{ ss7\+\_\+vty\+\_\+write\+\_\+one\+\_\+as()}, \textbf{ vty\+\_\+show\+\_\+connection()}, \textbf{ write\+\_\+one\+\_\+cs7()}, \textbf{ write\+\_\+one\+\_\+rtable()}, \textbf{ write\+\_\+sccp\+\_\+addressbook()}, \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+dupu()}, and \textbf{ xua\+\_\+snm\+\_\+srm\+\_\+pc\+\_\+available\+\_\+single()}.

\mbox{\label{ss7__instance_8c_a9c9283afabd1e1566f511e66698ea44d}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_pointcode\_print2@{osmo\_ss7\_pointcode\_print2}}
\index{osmo\_ss7\_pointcode\_print2@{osmo\_ss7\_pointcode\_print2}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_pointcode\_print2()}
{\footnotesize\ttfamily const char $\ast$ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print2 (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{uint32\+\_\+t}]{pc }\end{DoxyParamCaption})}



References \textbf{ MAX\+\_\+\+PC\+\_\+\+STR\+\_\+\+LEN}, \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print\+\_\+buf()}, and \textbf{ pc}.



Referenced by \textbf{ DEFUN()}, \textbf{ m3ua\+\_\+rx\+\_\+xfer()}, \textbf{ write\+\_\+one\+\_\+rtable()}, and \textbf{ xua\+\_\+asp\+\_\+tx\+\_\+snm\+\_\+daud\+\_\+address\+\_\+book()}.

\mbox{\label{ss7__instance_8c_ae328ce407109fdd25911be8750f56694}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_ss7\_pointcode\_print\_buf@{osmo\_ss7\_pointcode\_print\_buf}}
\index{osmo\_ss7\_pointcode\_print\_buf@{osmo\_ss7\_pointcode\_print\_buf}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_ss7\_pointcode\_print\_buf()}
{\footnotesize\ttfamily const char $\ast$ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print\+\_\+buf (\begin{DoxyParamCaption}\item[{char $\ast$}]{buf,  }\item[{size\+\_\+t}]{len,  }\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{uint32\+\_\+t}]{pc }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::cfg}, \textbf{ default\+\_\+pc\+\_\+fmt}, \textbf{ gen\+\_\+pc\+\_\+fmtstr()}, \textbf{ len}, \textbf{ num\+\_\+pc\+\_\+comp\+\_\+exp()}, \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+is\+\_\+valid()}, \textbf{ pc}, \textbf{ pc\+\_\+comp\+\_\+shift\+\_\+and\+\_\+mask()}, and \textbf{ osmo\+\_\+ss7\+\_\+instance\+::pc\+\_\+fmt}.



Referenced by \textbf{ dpc\+\_\+accessible()}, \textbf{ mtp3\+\_\+rtpc\+\_\+rx\+\_\+msg\+\_\+for\+\_\+inaccessible\+\_\+sp()}, \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print()}, \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print2()}, \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+name()}, \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+print()}, \textbf{ sccp\+\_\+addr\+\_\+to\+\_\+str\+\_\+buf()}, \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+inval\+\_\+opc()}, \textbf{ ss7\+\_\+instance\+\_\+t8\+\_\+inaccessible\+\_\+sp\+\_\+start()}, \textbf{ ss7\+\_\+route\+\_\+label\+\_\+to\+\_\+str()}, \textbf{ t8\+\_\+inaccessible\+\_\+sp\+\_\+timer\+\_\+cb()}, \textbf{ tcap\+\_\+trans\+\_\+track\+\_\+entry\+\_\+create()}, and \textbf{ tx\+\_\+daud\+\_\+pc()}.

\mbox{\label{ss7__instance_8c_a51084dcfade7179b98fc4d7bd2379326}} 
\index{ss7\_instance.c@{ss7\_instance.c}!osmo\_static\_assert@{osmo\_static\_assert}}
\index{osmo\_static\_assert@{osmo\_static\_assert}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{osmo\_static\_assert()}
{\footnotesize\ttfamily osmo\+\_\+static\+\_\+assert (\begin{DoxyParamCaption}\item[{ARRAY\+\_\+\+SIZE(\textbf{ ss7\+\_\+instance\+\_\+xua\+\_\+timer\+\_\+defaults})}]{ = {\ttfamily =(\textbf{ SS7\+\_\+\+INST\+\_\+\+XUA\+\_\+\+TIMERS\+\_\+\+LEN})~\&\&ARRAY\+\_\+SIZE(\textbf{ ss7\+\_\+instance\+\_\+xua\+\_\+timer\+\_\+names})==(\textbf{ SS7\+\_\+\+INST\+\_\+\+XUA\+\_\+\+TIMERS\+\_\+\+LEN})},  }\item[{assert\+\_\+ss7\+\_\+instance\+\_\+xua\+\_\+timer\+\_\+count}]{ }\end{DoxyParamCaption})}

\mbox{\label{ss7__instance_8c_a505d8cbb59e414f24d56a83a29799a42}} 
\index{ss7\_instance.c@{ss7\_instance.c}!pc\_comp\_shift\_and\_mask@{pc\_comp\_shift\_and\_mask}}
\index{pc\_comp\_shift\_and\_mask@{pc\_comp\_shift\_and\_mask}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{pc\_comp\_shift\_and\_mask()}
{\footnotesize\ttfamily static uint32\+\_\+t pc\+\_\+comp\+\_\+shift\+\_\+and\+\_\+mask (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} $\ast$}]{pc\+\_\+fmt,  }\item[{unsigned int}]{comp\+\_\+num,  }\item[{uint32\+\_\+t}]{pc }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt\+::component\+\_\+len}, \textbf{ get\+\_\+pc\+\_\+comp\+\_\+shift()}, and \textbf{ pc}.



Referenced by \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print\+\_\+buf()}.

\mbox{\label{ss7__instance_8c_a6ecdf4b66511e0d65caedeab81f3f4d3}} 
\index{ss7\_instance.c@{ss7\_instance.c}!ss7\_find\_free\_l\_rk\_id@{ss7\_find\_free\_l\_rk\_id}}
\index{ss7\_find\_free\_l\_rk\_id@{ss7\_find\_free\_l\_rk\_id}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{ss7\_find\_free\_l\_rk\_id()}
{\footnotesize\ttfamily uint32\+\_\+t ss7\+\_\+find\+\_\+free\+\_\+l\+\_\+rk\+\_\+id (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})}



References \textbf{ next\+\_\+l\+\_\+rk\+\_\+id}, and \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+l\+\_\+rk\+\_\+id()}.



Referenced by \textbf{ ss7\+\_\+as\+\_\+alloc()}.

\mbox{\label{ss7__instance_8c_afc494c6614b4d872e414b662ae23baf7}} 
\index{ss7\_instance.c@{ss7\_instance.c}!ss7\_instance\_alloc@{ss7\_instance\_alloc}}
\index{ss7\_instance\_alloc@{ss7\_instance\_alloc}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{ss7\_instance\_alloc()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$ ss7\+\_\+instance\+\_\+alloc (\begin{DoxyParamCaption}\item[{void $\ast$}]{ctx,  }\item[{uint32\+\_\+t}]{id }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::as\+\_\+list}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::asp\+\_\+list}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt\+::component\+\_\+len}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::ctrg}, \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt\+::delimiter}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::id}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::linksets}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::list}, \textbf{ LOGSS7}, \textbf{ NULL}, \textbf{ osmo\+\_\+ss7\+\_\+instances}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+PC\+\_\+\+INVALID}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::pc\+\_\+fmt}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::primary\+\_\+pc}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::rtable\+\_\+list}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::rtable\+\_\+system}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::sccp\+\_\+address\+\_\+book}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::secondary\+\_\+pc}, \textbf{ ss7\+\_\+inst\+\_\+rcgd}, \textbf{ ss7\+\_\+instance\+\_\+xua\+\_\+timer\+\_\+defaults}, \textbf{ ss7\+\_\+route\+\_\+table\+\_\+find\+\_\+or\+\_\+create()}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::t8\+\_\+inaccessible\+\_\+sp}, \textbf{ t8\+\_\+inaccessible\+\_\+sp\+\_\+timer\+\_\+cb()}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::\+T\+\_\+defs\+\_\+xua}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::timer}, and \textbf{ osmo\+\_\+ss7\+\_\+instance\+::xua\+\_\+servers}.



Referenced by \textbf{ osmo\+\_\+ss7\+\_\+instance\+\_\+find\+\_\+or\+\_\+create()}.

\mbox{\label{ss7__instance_8c_a154eb42c95d9d897d8abeb337c9200eb}} 
\index{ss7\_instance.c@{ss7\_instance.c}!ss7\_instance\_lookup\_route@{ss7\_instance\_lookup\_route}}
\index{ss7\_instance\_lookup\_route@{ss7\_instance\_lookup\_route}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{ss7\_instance\_lookup\_route()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$ ss7\+\_\+instance\+\_\+lookup\+\_\+route (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+label} $\ast$}]{rtlabel }\end{DoxyParamCaption})}



Find a SS7 route for given destination point code in given SS7. 



References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::rtable\+\_\+system}, \textbf{ ss7\+\_\+initialized}, and \textbf{ ss7\+\_\+route\+\_\+table\+\_\+lookup\+\_\+route()}.



Referenced by \textbf{ DEFUN()}, \textbf{ gen\+\_\+mtp\+\_\+transfer\+\_\+req\+\_\+xua()}, \textbf{ mtp3\+\_\+hmrt\+\_\+message\+\_\+for\+\_\+routing()}, \textbf{ mtp3\+\_\+rtpc\+\_\+rx\+\_\+msg\+\_\+for\+\_\+inaccessible\+\_\+sp()}, and \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+lookup()}.

\mbox{\label{ss7__instance_8c_a19ed0836cbb9f57171078d03e5189631}} 
\index{ss7\_instance.c@{ss7\_instance.c}!ss7\_instance\_t8\_inaccessible\_sp\_running@{ss7\_instance\_t8\_inaccessible\_sp\_running}}
\index{ss7\_instance\_t8\_inaccessible\_sp\_running@{ss7\_instance\_t8\_inaccessible\_sp\_running}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{ss7\_instance\_t8\_inaccessible\_sp\_running()}
{\footnotesize\ttfamily bool ss7\+\_\+instance\+\_\+t8\+\_\+inaccessible\+\_\+sp\+\_\+running (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{uint32\+\_\+t}]{dpc }\end{DoxyParamCaption})}



References \textbf{ dpc}, \textbf{ t8\+\_\+inaccessible\+\_\+sp\+\_\+entry\+::dpc}, \textbf{ t8\+\_\+inaccessible\+\_\+sp\+\_\+entry\+::entry}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::list}, and \textbf{ osmo\+\_\+ss7\+\_\+instance\+::t8\+\_\+inaccessible\+\_\+sp}.



Referenced by \textbf{ mtp3\+\_\+rtpc\+\_\+rx\+\_\+msg\+\_\+for\+\_\+inaccessible\+\_\+sp()}, and \textbf{ ss7\+\_\+instance\+\_\+t8\+\_\+inaccessible\+\_\+sp\+\_\+start()}.

\mbox{\label{ss7__instance_8c_abaeb44378c124cc9d288311fad51afaa}} 
\index{ss7\_instance.c@{ss7\_instance.c}!ss7\_instance\_t8\_inaccessible\_sp\_start@{ss7\_instance\_t8\_inaccessible\_sp\_start}}
\index{ss7\_instance\_t8\_inaccessible\_sp\_start@{ss7\_instance\_t8\_inaccessible\_sp\_start}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{ss7\_instance\_t8\_inaccessible\_sp\_start()}
{\footnotesize\ttfamily void ss7\+\_\+instance\+\_\+t8\+\_\+inaccessible\+\_\+sp\+\_\+start (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{uint32\+\_\+t}]{dpc }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::cfg}, \textbf{ dpc}, \textbf{ t8\+\_\+inaccessible\+\_\+sp\+\_\+entry\+::dpc}, \textbf{ t8\+\_\+inaccessible\+\_\+sp\+\_\+entry\+::entry}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::list}, \textbf{ LOGSS7}, \textbf{ MAX\+\_\+\+PC\+\_\+\+STR\+\_\+\+LEN}, \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print\+\_\+buf()}, \textbf{ SS7\+\_\+\+INST\+\_\+\+XUA\+\_\+\+T8}, \textbf{ ss7\+\_\+instance\+\_\+t8\+\_\+inaccessible\+\_\+sp\+\_\+running()}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::t8\+\_\+inaccessible\+\_\+sp}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::\+T\+\_\+defs\+\_\+xua}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::timer}, and \textbf{ t8\+\_\+inaccessible\+\_\+sp\+\_\+entry\+::ts\+\_\+started}.



Referenced by \textbf{ mtp3\+\_\+rtpc\+\_\+rx\+\_\+msg\+\_\+for\+\_\+inaccessible\+\_\+sp()}.

\mbox{\label{ss7__instance_8c_afadad76c76c0630eed4b7a10b68f2b7c}} 
\index{ss7\_instance.c@{ss7\_instance.c}!strnappendchar@{strnappendchar}}
\index{strnappendchar@{strnappendchar}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{strnappendchar()}
{\footnotesize\ttfamily static int strnappendchar (\begin{DoxyParamCaption}\item[{char $\ast$}]{str,  }\item[{char}]{c,  }\item[{size\+\_\+t}]{n }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



Referenced by \textbf{ gen\+\_\+pc\+\_\+fmtstr()}.

\mbox{\label{ss7__instance_8c_a091ce6bc42828cff103c56f6fc8d12c2}} 
\index{ss7\_instance.c@{ss7\_instance.c}!t8\_inaccessible\_sp\_timer\_cb@{t8\_inaccessible\_sp\_timer\_cb}}
\index{t8\_inaccessible\_sp\_timer\_cb@{t8\_inaccessible\_sp\_timer\_cb}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{t8\_inaccessible\_sp\_timer\_cb()}
{\footnotesize\ttfamily static void t8\+\_\+inaccessible\+\_\+sp\+\_\+timer\+\_\+cb (\begin{DoxyParamCaption}\item[{void $\ast$}]{\+\_\+inst }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::cfg}, \textbf{ t8\+\_\+inaccessible\+\_\+sp\+\_\+entry\+::dpc}, \textbf{ t8\+\_\+inaccessible\+\_\+sp\+\_\+entry\+::entry}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::list}, \textbf{ LOGSS7}, \textbf{ MAX\+\_\+\+PC\+\_\+\+STR\+\_\+\+LEN}, \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print\+\_\+buf()}, \textbf{ SS7\+\_\+\+INST\+\_\+\+XUA\+\_\+\+T8}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::t8\+\_\+inaccessible\+\_\+sp}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::\+T\+\_\+defs\+\_\+xua}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::timer}, and \textbf{ t8\+\_\+inaccessible\+\_\+sp\+\_\+entry\+::ts\+\_\+started}.



Referenced by \textbf{ ss7\+\_\+instance\+\_\+alloc()}.



\doxysubsection{Variable Documentation}
\mbox{\label{ss7__instance_8c_a7e710ac37bf4c2d56a17e65086ec9684}} 
\index{ss7\_instance.c@{ss7\_instance.c}!default\_pc\_fmt@{default\_pc\_fmt}}
\index{default\_pc\_fmt@{default\_pc\_fmt}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{default\_pc\_fmt}
{\footnotesize\ttfamily const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} default\+\_\+pc\+\_\+fmt\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .delimiter = \textcolor{charliteral}{'.'},}
\DoxyCodeLine{        .component\_len = \{ 3, 8, 3\},}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse()}, \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse\+\_\+mask\+\_\+or\+\_\+len()}, and \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print\+\_\+buf()}.

\mbox{\label{ss7__instance_8c_a82b1fae92faad2df658d676f19203112}} 
\index{ss7\_instance.c@{ss7\_instance.c}!next\_l\_rk\_id@{next\_l\_rk\_id}}
\index{next\_l\_rk\_id@{next\_l\_rk\_id}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{next\_l\_rk\_id}
{\footnotesize\ttfamily int32\+\_\+t next\+\_\+l\+\_\+rk\+\_\+id = 1\hspace{0.3cm}{\ttfamily [static]}}



Referenced by \textbf{ ss7\+\_\+find\+\_\+free\+\_\+l\+\_\+rk\+\_\+id()}.

\mbox{\label{ss7__instance_8c_ac371d9ef3ce4d17cd66e9f4446879ffc}} 
\index{ss7\_instance.c@{ss7\_instance.c}!next\_rctx@{next\_rctx}}
\index{next\_rctx@{next\_rctx}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{next\_rctx}
{\footnotesize\ttfamily int32\+\_\+t next\+\_\+rctx = 1\hspace{0.3cm}{\ttfamily [static]}}



Referenced by \textbf{ osmo\+\_\+ss7\+\_\+find\+\_\+free\+\_\+rctx()}.

\mbox{\label{ss7__instance_8c_a9aa304c5159799ec40ae7d0d82195ea6}} 
\index{ss7\_instance.c@{ss7\_instance.c}!ss7\_inst\_rcd@{ss7\_inst\_rcd}}
\index{ss7\_inst\_rcd@{ss7\_inst\_rcd}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{ss7\_inst\_rcd}
{\footnotesize\ttfamily const struct rate\+\_\+ctr\+\_\+desc ss7\+\_\+inst\+\_\+rcd[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        [SS7\_INST\_CTR\_PKT\_RX\_TOTAL] = \{ \textcolor{stringliteral}{"{}rx:packets:total"{}}, \textcolor{stringliteral}{"{}Total number of packets received"{}} \},}
\DoxyCodeLine{        [SS7\_INST\_CTR\_PKT\_RX\_UNKNOWN] = \{ \textcolor{stringliteral}{"{}rx:packets:unknown"{}}, \textcolor{stringliteral}{"{}Number of packets received for unknown PPID"{}} \},}
\DoxyCodeLine{        [SS7\_INST\_CTR\_PKT\_RX\_NI\_MISMATCH] = \{ \textcolor{stringliteral}{"{}rx:packets:ni\_mismatch"{}}, \textcolor{stringliteral}{"{}Number of packets received and dropped due to Network Indicator mismatch"{}} \},}
\DoxyCodeLine{        [SS7\_INST\_CTR\_PKT\_TX\_TOTAL] = \{ \textcolor{stringliteral}{"{}tx:packets:total"{}}, \textcolor{stringliteral}{"{}Total number of packets transmitted"{}} \},}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{ss7__instance_8c_a6a147fc05810736ad66e8fe7135bf0bc}} 
\index{ss7\_instance.c@{ss7\_instance.c}!ss7\_inst\_rcgd@{ss7\_inst\_rcgd}}
\index{ss7\_inst\_rcgd@{ss7\_inst\_rcgd}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{ss7\_inst\_rcgd}
{\footnotesize\ttfamily const struct rate\+\_\+ctr\+\_\+group\+\_\+desc ss7\+\_\+inst\+\_\+rcgd\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .group\_name\_prefix = \textcolor{stringliteral}{"{}s7i"{}},}
\DoxyCodeLine{        .group\_description = \textcolor{stringliteral}{"{}SS7 Instance"{}},}
\DoxyCodeLine{        .num\_ctr = ARRAY\_SIZE(ss7\_inst\_rcd),}
\DoxyCodeLine{        .ctr\_desc = ss7\_inst\_rcd,}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ ss7\+\_\+instance\+\_\+alloc()}.

\mbox{\label{ss7__instance_8c_adbdd407c528dd2393a1ba7b3c4c9e46f}} 
\index{ss7\_instance.c@{ss7\_instance.c}!ss7\_instance\_xua\_timer\_defaults@{ss7\_instance\_xua\_timer\_defaults}}
\index{ss7\_instance\_xua\_timer\_defaults@{ss7\_instance\_xua\_timer\_defaults}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{ss7\_instance\_xua\_timer\_defaults}
{\footnotesize\ttfamily const struct osmo\+\_\+tdef ss7\+\_\+instance\+\_\+xua\+\_\+timer\+\_\+defaults[\textbf{ SS7\+\_\+\+INST\+\_\+\+XUA\+\_\+\+TIMERS\+\_\+\+LEN}]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ .T = SS7\_INST\_XUA\_T8,  .default\_val = SS7\_INST\_XUA\_DEFAULT\_T8\_MSEC,        .unit = OSMO\_TDEF\_MS,}
\DoxyCodeLine{          .desc = \textcolor{stringliteral}{"{}T8 -\/ Transfer prohibited inhibition timer (transient solution) (ms)"{}},}
\DoxyCodeLine{          .min\_val = 800, .max\_val = 1200\},}
\DoxyCodeLine{        \{\}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ gen\+\_\+cs7\+\_\+timer\+\_\+xua\+\_\+cmd\+\_\+strs()}, and \textbf{ ss7\+\_\+instance\+\_\+alloc()}.

\mbox{\label{ss7__instance_8c_aff5e6fc6d5f9484e1c72054619a35a92}} 
\index{ss7\_instance.c@{ss7\_instance.c}!ss7\_instance\_xua\_timer\_names@{ss7\_instance\_xua\_timer\_names}}
\index{ss7\_instance\_xua\_timer\_names@{ss7\_instance\_xua\_timer\_names}!ss7\_instance.c@{ss7\_instance.c}}
\doxysubsubsection{ss7\_instance\_xua\_timer\_names}
{\footnotesize\ttfamily const struct value\+\_\+string ss7\+\_\+instance\+\_\+xua\+\_\+timer\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ SS7\_INST\_XUA\_T8, \textcolor{stringliteral}{"{}T8"{}} \},}
\DoxyCodeLine{        \{\}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ DEFUN\+\_\+\+ATTR()}, \textbf{ gen\+\_\+cs7\+\_\+timer\+\_\+xua\+\_\+cmd\+\_\+strs()}, and \textbf{ write\+\_\+cs7\+\_\+timers\+\_\+xua()}.

