\doxysection{src/sccp\+\_\+internal.h File Reference}
\label{sccp__internal_8h}\index{src/sccp\_internal.h@{src/sccp\_internal.h}}
{\ttfamily \#include $<$osmocom/core/fsm.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/prim.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/linuxlist.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/linuxrbtree.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/tdef.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/sccp\+\_\+sap.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/osmo\+\_\+ss7.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/protocol/mtp.\+h$>$}\newline
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ osmo\+\_\+sccp\+\_\+instance}
\item 
struct \textbf{ osmo\+\_\+sccp\+\_\+user}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ SCCP\+\_\+\+STR}~\char`\"{}Signalling Connection Control Part\textbackslash{}n\char`\"{}
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \textbf{ osmo\+\_\+sccp\+\_\+timer} \{ \newline
\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+CONN\+\_\+\+EST} = 1
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+IAS}
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+IAR}
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+REL}
, \newline
\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+REPEAT\+\_\+\+REL}
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+INT}
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+GUARD}
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+RESET}
, \newline
\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+REASSEMBLY}
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMERS\+\_\+\+LEN}
 \}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
static const char $\ast$ \textbf{ osmo\+\_\+sccp\+\_\+timer\+\_\+name} (enum \textbf{ osmo\+\_\+sccp\+\_\+timer} val)
\item 
struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$ \textbf{ sccp\+\_\+user\+\_\+find} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, uint16\+\_\+t ssn, uint32\+\_\+t pc)
\begin{DoxyCompactList}\small\item\em Find a SCCP User registered for given PC+\+SSN or SSN only First search all users with a valid PC for a full PC+\+SSN match. \end{DoxyCompactList}\item 
int \textbf{ sccp\+\_\+scrc\+\_\+rx\+\_\+scoc\+\_\+conn\+\_\+msg} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
int \textbf{ sccp\+\_\+scrc\+\_\+rx\+\_\+sclc\+\_\+msg} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
int \textbf{ scrc\+\_\+rx\+\_\+mtp\+\_\+xfer\+\_\+ind\+\_\+xua} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
void \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+from\+\_\+scrc} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\begin{DoxyCompactList}\small\item\em Main entrance function for primitives from the SCRC (Routing Control) \end{DoxyCompactList}\item 
void \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+scrc\+\_\+rout\+\_\+fail} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, struct \textbf{ xua\+\_\+msg} $\ast$xua, uint32\+\_\+t cause)
\begin{DoxyCompactList}\small\item\em SCOC\+: Receive SCRC Routing Failure. \end{DoxyCompactList}\item 
void \textbf{ sccp\+\_\+scoc\+\_\+flush\+\_\+connections} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst)
\item 
int \textbf{ sccp\+\_\+sclc\+\_\+rx\+\_\+from\+\_\+scrc} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\begin{DoxyCompactList}\small\item\em SCRC -\/$>$ SCLC (connectionless message) \end{DoxyCompactList}\item 
void \textbf{ sccp\+\_\+sclc\+\_\+rx\+\_\+scrc\+\_\+rout\+\_\+fail} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, struct \textbf{ xua\+\_\+msg} $\ast$xua, uint32\+\_\+t cause)
\begin{DoxyCompactList}\small\item\em SCRC -\/$>$ SCLC (Routing Failure. \end{DoxyCompactList}\item 
int \textbf{ sccp\+\_\+user\+\_\+prim\+\_\+up} (struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$scut, struct \textbf{ osmo\+\_\+scu\+\_\+prim} $\ast$prim)
\begin{DoxyCompactList}\small\item\em Send a SCCP User SAP Primitive up to the User. \end{DoxyCompactList}\item 
int \textbf{ sccp\+\_\+sclc\+\_\+user\+\_\+sap\+\_\+down} (struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$scu, struct osmo\+\_\+prim\+\_\+hdr $\ast$oph)
\begin{DoxyCompactList}\small\item\em Main entrance function for primitives from SCCP User. \end{DoxyCompactList}\item 
int \textbf{ sccp\+\_\+sclc\+\_\+user\+\_\+sap\+\_\+down\+\_\+nofree} (struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$scu, struct osmo\+\_\+prim\+\_\+hdr $\ast$oph)
\begin{DoxyCompactList}\small\item\em Main entrance function for primitives from SCCP User. \end{DoxyCompactList}\item 
struct msgb $\ast$ \textbf{ sccp\+\_\+msgb\+\_\+alloc} (const char $\ast$name)
\item 
void \textbf{ sccp\+\_\+scoc\+\_\+show\+\_\+connections} (struct vty $\ast$vty, struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst)
\item 
void \textbf{ osmo\+\_\+sccp\+\_\+vty\+\_\+write\+\_\+cs7\+\_\+node} (struct vty $\ast$vty, const char $\ast$indent, struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst)
\item 
void \textbf{ sccp\+\_\+lbcs\+\_\+local\+\_\+bcast\+\_\+pcstate} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, const struct \textbf{ osmo\+\_\+scu\+\_\+pcstate\+\_\+param} $\ast$pcstate)
\item 
void \textbf{ sccp\+\_\+lbcs\+\_\+local\+\_\+bcast\+\_\+state} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, const struct \textbf{ osmo\+\_\+scu\+\_\+state\+\_\+param} $\ast$state)
\item 
void \textbf{ sccp\+\_\+scmg\+\_\+rx\+\_\+ssn\+\_\+allowed} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, uint32\+\_\+t \textbf{ dpc}, uint32\+\_\+t ssn, uint32\+\_\+t \textbf{ smi})
\item 
void \textbf{ sccp\+\_\+scmg\+\_\+rx\+\_\+ssn\+\_\+prohibited} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, uint32\+\_\+t \textbf{ dpc}, uint32\+\_\+t ssn, uint32\+\_\+t \textbf{ smi})
\item 
void \textbf{ sccp\+\_\+scmg\+\_\+rx\+\_\+mtp\+\_\+pause} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, uint32\+\_\+t \textbf{ dpc})
\begin{DoxyCompactList}\small\item\em brief MTP -\/$>$ SNM (MTP-\/\+PAUSE.\+ind) -\/ inability to providing MTP service Q.\+714 5.\+2.\+2 \end{DoxyCompactList}\item 
void \textbf{ sccp\+\_\+scmg\+\_\+rx\+\_\+mtp\+\_\+resume} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, uint32\+\_\+t \textbf{ dpc})
\begin{DoxyCompactList}\small\item\em brief MTP -\/$>$ SNM (MTP-\/\+RESUME.\+ind) -\/ ability of providing the MTP service Q.\+714 5.\+2.\+3 \end{DoxyCompactList}\item 
void \textbf{ sccp\+\_\+scmg\+\_\+rx\+\_\+mtp\+\_\+status} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, uint32\+\_\+t \textbf{ dpc}, enum \textbf{ mtp\+\_\+unavail\+\_\+cause} cause)
\item 
int \textbf{ sccp\+\_\+scmg\+\_\+init} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
const struct osmo\+\_\+tdef \textbf{ osmo\+\_\+sccp\+\_\+timer\+\_\+defaults} [\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMERS\+\_\+\+LEN}]
\item 
const struct value\+\_\+string \textbf{ osmo\+\_\+sccp\+\_\+timer\+\_\+names} [$\,$]
\item 
int \textbf{ DSCCP}
\item 
struct osmo\+\_\+fsm \textbf{ sccp\+\_\+scoc\+\_\+fsm}
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\label{sccp__internal_8h_aece26f11b022cc13c6691b4b8f20ea3c}} 
\index{sccp\_internal.h@{sccp\_internal.h}!SCCP\_STR@{SCCP\_STR}}
\index{SCCP\_STR@{SCCP\_STR}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{SCCP\_STR}
{\footnotesize\ttfamily \#define SCCP\+\_\+\+STR~\char`\"{}Signalling Connection Control Part\textbackslash{}n\char`\"{}}



\doxysubsection{Enumeration Type Documentation}
\mbox{\label{sccp__internal_8h_a47b8e3df2fb2f2c26ad96d5988144f14}} 
\index{sccp\_internal.h@{sccp\_internal.h}!osmo\_sccp\_timer@{osmo\_sccp\_timer}}
\index{osmo\_sccp\_timer@{osmo\_sccp\_timer}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{osmo\_sccp\_timer}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+sccp\+\_\+timer}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_TIMER\_CONN\_EST@{OSMO\_SCCP\_TIMER\_CONN\_EST}!sccp\_internal.h@{sccp\_internal.h}}\index{sccp\_internal.h@{sccp\_internal.h}!OSMO\_SCCP\_TIMER\_CONN\_EST@{OSMO\_SCCP\_TIMER\_CONN\_EST}}}\mbox{\label{sccp__internal_8h_a47b8e3df2fb2f2c26ad96d5988144f14ae4ed5869e21520b16e4b0f2cd878516f}} 
OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+CONN\+\_\+\+EST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_TIMER\_IAS@{OSMO\_SCCP\_TIMER\_IAS}!sccp\_internal.h@{sccp\_internal.h}}\index{sccp\_internal.h@{sccp\_internal.h}!OSMO\_SCCP\_TIMER\_IAS@{OSMO\_SCCP\_TIMER\_IAS}}}\mbox{\label{sccp__internal_8h_a47b8e3df2fb2f2c26ad96d5988144f14ae39ee3132d645374f9110373c651e33b}} 
OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+IAS&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_TIMER\_IAR@{OSMO\_SCCP\_TIMER\_IAR}!sccp\_internal.h@{sccp\_internal.h}}\index{sccp\_internal.h@{sccp\_internal.h}!OSMO\_SCCP\_TIMER\_IAR@{OSMO\_SCCP\_TIMER\_IAR}}}\mbox{\label{sccp__internal_8h_a47b8e3df2fb2f2c26ad96d5988144f14af773199473ee326757b50818c6a50e3a}} 
OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+IAR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_TIMER\_REL@{OSMO\_SCCP\_TIMER\_REL}!sccp\_internal.h@{sccp\_internal.h}}\index{sccp\_internal.h@{sccp\_internal.h}!OSMO\_SCCP\_TIMER\_REL@{OSMO\_SCCP\_TIMER\_REL}}}\mbox{\label{sccp__internal_8h_a47b8e3df2fb2f2c26ad96d5988144f14ac8dc9ae42a9b305d4fe4c9940d7c48b3}} 
OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+REL&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_TIMER\_REPEAT\_REL@{OSMO\_SCCP\_TIMER\_REPEAT\_REL}!sccp\_internal.h@{sccp\_internal.h}}\index{sccp\_internal.h@{sccp\_internal.h}!OSMO\_SCCP\_TIMER\_REPEAT\_REL@{OSMO\_SCCP\_TIMER\_REPEAT\_REL}}}\mbox{\label{sccp__internal_8h_a47b8e3df2fb2f2c26ad96d5988144f14a31c206a7d13023be866802fadb811697}} 
OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+REPEAT\+\_\+\+REL&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_TIMER\_INT@{OSMO\_SCCP\_TIMER\_INT}!sccp\_internal.h@{sccp\_internal.h}}\index{sccp\_internal.h@{sccp\_internal.h}!OSMO\_SCCP\_TIMER\_INT@{OSMO\_SCCP\_TIMER\_INT}}}\mbox{\label{sccp__internal_8h_a47b8e3df2fb2f2c26ad96d5988144f14a6cf826de2f97fa78507b8da7f6aac674}} 
OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+INT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_TIMER\_GUARD@{OSMO\_SCCP\_TIMER\_GUARD}!sccp\_internal.h@{sccp\_internal.h}}\index{sccp\_internal.h@{sccp\_internal.h}!OSMO\_SCCP\_TIMER\_GUARD@{OSMO\_SCCP\_TIMER\_GUARD}}}\mbox{\label{sccp__internal_8h_a47b8e3df2fb2f2c26ad96d5988144f14aa093571f840d3c0647dbf49fb174e97f}} 
OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+GUARD&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_TIMER\_RESET@{OSMO\_SCCP\_TIMER\_RESET}!sccp\_internal.h@{sccp\_internal.h}}\index{sccp\_internal.h@{sccp\_internal.h}!OSMO\_SCCP\_TIMER\_RESET@{OSMO\_SCCP\_TIMER\_RESET}}}\mbox{\label{sccp__internal_8h_a47b8e3df2fb2f2c26ad96d5988144f14af4e02ea8c9b11acfefb361fe045c5514}} 
OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+RESET&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_TIMER\_REASSEMBLY@{OSMO\_SCCP\_TIMER\_REASSEMBLY}!sccp\_internal.h@{sccp\_internal.h}}\index{sccp\_internal.h@{sccp\_internal.h}!OSMO\_SCCP\_TIMER\_REASSEMBLY@{OSMO\_SCCP\_TIMER\_REASSEMBLY}}}\mbox{\label{sccp__internal_8h_a47b8e3df2fb2f2c26ad96d5988144f14ab0f8b986256e7d3c73c99b9c68a8171a}} 
OSMO\+\_\+\+SCCP\+\_\+\+TIMER\+\_\+\+REASSEMBLY&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_TIMERS\_LEN@{OSMO\_SCCP\_TIMERS\_LEN}!sccp\_internal.h@{sccp\_internal.h}}\index{sccp\_internal.h@{sccp\_internal.h}!OSMO\_SCCP\_TIMERS\_LEN@{OSMO\_SCCP\_TIMERS\_LEN}}}\mbox{\label{sccp__internal_8h_a47b8e3df2fb2f2c26ad96d5988144f14ab333867710241fb0cfe60000555104af}} 
OSMO\+\_\+\+SCCP\+\_\+\+TIMERS\+\_\+\+LEN&\\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\mbox{\label{sccp__internal_8h_ad2135c93b65cbc3c7c23558c1de7e2a4}} 
\index{sccp\_internal.h@{sccp\_internal.h}!osmo\_sccp\_timer\_name@{osmo\_sccp\_timer\_name}}
\index{osmo\_sccp\_timer\_name@{osmo\_sccp\_timer\_name}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{osmo\_sccp\_timer\_name()}
{\footnotesize\ttfamily static const char $\ast$ osmo\+\_\+sccp\+\_\+timer\+\_\+name (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+sccp\+\_\+timer}}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ osmo\+\_\+sccp\+\_\+timer\+\_\+names}.

\mbox{\label{sccp__internal_8h_a03d33d5b19ae71529da0ac0984de2794}} 
\index{sccp\_internal.h@{sccp\_internal.h}!osmo\_sccp\_vty\_write\_cs7\_node@{osmo\_sccp\_vty\_write\_cs7\_node}}
\index{osmo\_sccp\_vty\_write\_cs7\_node@{osmo\_sccp\_vty\_write\_cs7\_node}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{osmo\_sccp\_vty\_write\_cs7\_node()}
{\footnotesize\ttfamily void osmo\+\_\+sccp\+\_\+vty\+\_\+write\+\_\+cs7\+\_\+node (\begin{DoxyParamCaption}\item[{struct vty $\ast$}]{vty,  }\item[{const char $\ast$}]{indent,  }\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+sccp\+\_\+instance\+::max\+\_\+optional\+\_\+data}, and \textbf{ write\+\_\+sccp\+\_\+timers()}.



Referenced by \textbf{ write\+\_\+one\+\_\+cs7()}.

\mbox{\label{sccp__internal_8h_ab1db96d27a773af541638dc93fdace21}} 
\index{sccp\_internal.h@{sccp\_internal.h}!sccp\_lbcs\_local\_bcast\_pcstate@{sccp\_lbcs\_local\_bcast\_pcstate}}
\index{sccp\_lbcs\_local\_bcast\_pcstate@{sccp\_lbcs\_local\_bcast\_pcstate}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{sccp\_lbcs\_local\_bcast\_pcstate()}
{\footnotesize\ttfamily void sccp\+\_\+lbcs\+\_\+local\+\_\+bcast\+\_\+pcstate (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{const struct \textbf{ osmo\+\_\+scu\+\_\+pcstate\+\_\+param} $\ast$}]{pcstate }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+sccp\+\_\+user\+::inst}, \textbf{ osmo\+\_\+sccp\+\_\+user\+::list}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::oph}, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+PCSTATE}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::pcstate}, \textbf{ sccp\+\_\+msgb\+\_\+alloc()}, \textbf{ SCCP\+\_\+\+SAP\+\_\+\+USER}, \textbf{ sccp\+\_\+user\+\_\+prim\+\_\+up()}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::u}, and \textbf{ osmo\+\_\+sccp\+\_\+instance\+::users}.



Referenced by \textbf{ sccp\+\_\+scmg\+\_\+rx\+\_\+mtp\+\_\+pause()}, \textbf{ sccp\+\_\+scmg\+\_\+rx\+\_\+mtp\+\_\+resume()}, and \textbf{ sccp\+\_\+scmg\+\_\+rx\+\_\+mtp\+\_\+status()}.

\mbox{\label{sccp__internal_8h_aabfd5fec32f2a90b0e50d028b39b1291}} 
\index{sccp\_internal.h@{sccp\_internal.h}!sccp\_lbcs\_local\_bcast\_state@{sccp\_lbcs\_local\_bcast\_state}}
\index{sccp\_lbcs\_local\_bcast\_state@{sccp\_lbcs\_local\_bcast\_state}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{sccp\_lbcs\_local\_bcast\_state()}
{\footnotesize\ttfamily void sccp\+\_\+lbcs\+\_\+local\+\_\+bcast\+\_\+state (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{const struct \textbf{ osmo\+\_\+scu\+\_\+state\+\_\+param} $\ast$}]{state }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+sccp\+\_\+user\+::inst}, \textbf{ osmo\+\_\+sccp\+\_\+user\+::list}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::oph}, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+STATE}, \textbf{ sccp\+\_\+msgb\+\_\+alloc()}, \textbf{ SCCP\+\_\+\+SAP\+\_\+\+USER}, \textbf{ sccp\+\_\+user\+\_\+prim\+\_\+up()}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::state}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::u}, and \textbf{ osmo\+\_\+sccp\+\_\+instance\+::users}.



Referenced by \textbf{ sccp\+\_\+scmg\+\_\+rx\+\_\+ssn\+\_\+allowed()}, and \textbf{ sccp\+\_\+scmg\+\_\+rx\+\_\+ssn\+\_\+prohibited()}.

\mbox{\label{sccp__internal_8h_a314fa68b28682a608594b73638ef701e}} 
\index{sccp\_internal.h@{sccp\_internal.h}!sccp\_msgb\_alloc@{sccp\_msgb\_alloc}}
\index{sccp\_msgb\_alloc@{sccp\_msgb\_alloc}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{sccp\_msgb\_alloc()}
{\footnotesize\ttfamily struct msgb $\ast$ sccp\+\_\+msgb\+\_\+alloc (\begin{DoxyParamCaption}\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}



References \textbf{ SCCP\+\_\+\+MSG\+\_\+\+HEADROOM}, and \textbf{ SCCP\+\_\+\+MSG\+\_\+\+SIZE}.



Referenced by \textbf{ osmo\+\_\+sua\+\_\+to\+\_\+sccp()}, \textbf{ sccp\+\_\+lbcs\+\_\+local\+\_\+bcast\+\_\+pcstate()}, \textbf{ sccp\+\_\+lbcs\+\_\+local\+\_\+bcast\+\_\+state()}, \textbf{ sccp\+\_\+scmg\+\_\+tx()}, \textbf{ sclc\+\_\+rx\+\_\+cldr()}, and \textbf{ sclc\+\_\+rx\+\_\+cldt()}.

\mbox{\label{sccp__internal_8h_a839b843770fe7a81ec460ace5ddfe7d0}} 
\index{sccp\_internal.h@{sccp\_internal.h}!sccp\_sclc\_rx\_from\_scrc@{sccp\_sclc\_rx\_from\_scrc}}
\index{sccp\_sclc\_rx\_from\_scrc@{sccp\_sclc\_rx\_from\_scrc}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{sccp\_sclc\_rx\_from\_scrc()}
{\footnotesize\ttfamily int sccp\+\_\+sclc\+\_\+rx\+\_\+from\+\_\+scrc (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



SCRC -\/$>$ SCLC (connectionless message) 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em inst} & SCCP Instance in which we operate \\
\hline
\mbox{\texttt{ in}}  & {\em xua} & SUA connectionless message \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative on error 
\end{DoxyReturn}


References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ sclc\+\_\+rx\+\_\+cldr()}, \textbf{ sclc\+\_\+rx\+\_\+cldt()}, \textbf{ SUA\+\_\+\+CL\+\_\+\+CLDR}, \textbf{ SUA\+\_\+\+CL\+\_\+\+CLDT}, \textbf{ SUA\+\_\+\+MSGC\+\_\+\+CL}, \textbf{ xua\+\_\+dialect\+\_\+sua}, and \textbf{ xua\+\_\+hdr\+\_\+dump()}.



Referenced by \textbf{ scrc\+\_\+node\+\_\+6()}, and \textbf{ scrc\+\_\+translate\+\_\+node\+\_\+9()}.

\mbox{\label{sccp__internal_8h_a086464ecc2db005660b615f84680b7fd}} 
\index{sccp\_internal.h@{sccp\_internal.h}!sccp\_sclc\_rx\_scrc\_rout\_fail@{sccp\_sclc\_rx\_scrc\_rout\_fail}}
\index{sccp\_sclc\_rx\_scrc\_rout\_fail@{sccp\_sclc\_rx\_scrc\_rout\_fail}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{sccp\_sclc\_rx\_scrc\_rout\_fail()}
{\footnotesize\ttfamily void sccp\+\_\+sclc\+\_\+rx\+\_\+scrc\+\_\+rout\+\_\+fail (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua\+\_\+in,  }\item[{uint32\+\_\+t}]{cause }\end{DoxyParamCaption})}



SCRC -\/$>$ SCLC (Routing Failure. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em inst} & SCCP Instance in which we operate \\
\hline
\mbox{\texttt{ in}}  & {\em xua\+\_\+in} & Message that failed to be routed \\
\hline
\mbox{\texttt{ in}}  & {\em cause} & SCCP Return Cause \\
\hline
\end{DoxyParams}


References \textbf{ gen\+\_\+ret\+\_\+msg()}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ xua\+\_\+msg\+::mtp}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::opc}, \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+is\+\_\+local()}, \textbf{ sccp\+\_\+scrc\+\_\+rx\+\_\+sclc\+\_\+msg()}, \textbf{ sclc\+\_\+rx\+\_\+cldr()}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::ss7}, \textbf{ SUA\+\_\+\+CL\+\_\+\+CLDR}, \textbf{ SUA\+\_\+\+CL\+\_\+\+CLDT}, and \textbf{ xua\+\_\+msg\+\_\+free()}.



Referenced by \textbf{ scrc\+\_\+node\+\_\+4()}, \textbf{ scrc\+\_\+node\+\_\+6()}, and \textbf{ scrc\+\_\+translate\+\_\+node\+\_\+9()}.

\mbox{\label{sccp__internal_8h_a5a395d329728106701783c2a6a1c965c}} 
\index{sccp\_internal.h@{sccp\_internal.h}!sccp\_sclc\_user\_sap\_down@{sccp\_sclc\_user\_sap\_down}}
\index{sccp\_sclc\_user\_sap\_down@{sccp\_sclc\_user\_sap\_down}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{sccp\_sclc\_user\_sap\_down()}
{\footnotesize\ttfamily int sccp\+\_\+sclc\+\_\+user\+\_\+sap\+\_\+down (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$}]{scu,  }\item[{struct osmo\+\_\+prim\+\_\+hdr $\ast$}]{oph }\end{DoxyParamCaption})}



Main entrance function for primitives from SCCP User. 

Implies a msgb\+\_\+free(oph-\/$>$msg), otherwise the same as \doxyref{sccp\+\_\+sclc\+\_\+user\+\_\+sap\+\_\+down\+\_\+nofree()}{p.}{sccp__sclc_8c_a60bc93a2c2c73fd5ff578713e0f1bde5}. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em scu} & SCCP User who is sending the primitive \\
\hline
 & {\em \mbox{[}on\mbox{]}} & oph Osmocom primitive header of the primitive \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative in case of error 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+scu\+\_\+prim\+::oph}, and \textbf{ sccp\+\_\+sclc\+\_\+user\+\_\+sap\+\_\+down\+\_\+nofree()}.

\mbox{\label{sccp__internal_8h_a60bc93a2c2c73fd5ff578713e0f1bde5}} 
\index{sccp\_internal.h@{sccp\_internal.h}!sccp\_sclc\_user\_sap\_down\_nofree@{sccp\_sclc\_user\_sap\_down\_nofree}}
\index{sccp\_sclc\_user\_sap\_down\_nofree@{sccp\_sclc\_user\_sap\_down\_nofree}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{sccp\_sclc\_user\_sap\_down\_nofree()}
{\footnotesize\ttfamily int sccp\+\_\+sclc\+\_\+user\+\_\+sap\+\_\+down\+\_\+nofree (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$}]{scu,  }\item[{struct osmo\+\_\+prim\+\_\+hdr $\ast$}]{oph }\end{DoxyParamCaption})}



Main entrance function for primitives from SCCP User. 

The caller is required to free oph-\/$>$msg, otherwise the same as \doxyref{sccp\+\_\+sclc\+\_\+user\+\_\+sap\+\_\+down()}{p.}{sccp__sclc_8c_a5a395d329728106701783c2a6a1c965c}. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em scu} & SCCP User who is sending the primitive \\
\hline
 & {\em \mbox{[}on\mbox{]}} & oph Osmocom primitive header of the primitive \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative in case of error 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+scu\+\_\+prim\+::oph}, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+UNITDATA}, \textbf{ osmo\+\_\+scu\+\_\+prim\+\_\+name()}, \textbf{ SUA\+\_\+\+CL\+\_\+\+CLDT}, and \textbf{ xua\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send()}.



Referenced by \textbf{ osmo\+\_\+sccp\+\_\+user\+\_\+sap\+\_\+down\+\_\+nofree()}, and \textbf{ sccp\+\_\+sclc\+\_\+user\+\_\+sap\+\_\+down()}.

\mbox{\label{sccp__internal_8h_a78005d521d9f14a1a8504b2d18691539}} 
\index{sccp\_internal.h@{sccp\_internal.h}!sccp\_scmg\_init@{sccp\_scmg\_init}}
\index{sccp\_scmg\_init@{sccp\_scmg\_init}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{sccp\_scmg\_init()}
{\footnotesize\ttfamily int sccp\+\_\+scmg\+\_\+init (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+sccp\+\_\+user\+::inst}, \textbf{ osmo\+\_\+sccp\+\_\+user\+\_\+bind()}, and \textbf{ scmg\+\_\+prim\+\_\+cb()}.



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

\mbox{\label{sccp__internal_8h_a6e1de1fdffab62084b3e51db5a09b7c4}} 
\index{sccp\_internal.h@{sccp\_internal.h}!sccp\_scmg\_rx\_mtp\_pause@{sccp\_scmg\_rx\_mtp\_pause}}
\index{sccp\_scmg\_rx\_mtp\_pause@{sccp\_scmg\_rx\_mtp\_pause}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{sccp\_scmg\_rx\_mtp\_pause()}
{\footnotesize\ttfamily void sccp\+\_\+scmg\+\_\+rx\+\_\+mtp\+\_\+pause (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{uint32\+\_\+t}]{dpc }\end{DoxyParamCaption})}



brief MTP -\/$>$ SNM (MTP-\/\+PAUSE.\+ind) -\/ inability to providing MTP service Q.\+714 5.\+2.\+2 



References \textbf{ osmo\+\_\+scu\+\_\+pcstate\+\_\+param\+::affected\+\_\+pc}, \textbf{ dpc}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+REM\+\_\+\+SCCP\+\_\+\+S\+\_\+\+UNAVAILABLE\+\_\+\+UNKNOWN}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SP\+\_\+\+S\+\_\+\+INACCESSIBLE}, and \textbf{ sccp\+\_\+lbcs\+\_\+local\+\_\+bcast\+\_\+pcstate()}.



Referenced by \textbf{ xua\+\_\+snm\+\_\+pc\+\_\+available\+\_\+to\+\_\+sccp()}.

\mbox{\label{sccp__internal_8h_a9b395f6f66a9d5cd22fec3841738d6ca}} 
\index{sccp\_internal.h@{sccp\_internal.h}!sccp\_scmg\_rx\_mtp\_resume@{sccp\_scmg\_rx\_mtp\_resume}}
\index{sccp\_scmg\_rx\_mtp\_resume@{sccp\_scmg\_rx\_mtp\_resume}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{sccp\_scmg\_rx\_mtp\_resume()}
{\footnotesize\ttfamily void sccp\+\_\+scmg\+\_\+rx\+\_\+mtp\+\_\+resume (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{uint32\+\_\+t}]{dpc }\end{DoxyParamCaption})}



brief MTP -\/$>$ SNM (MTP-\/\+RESUME.\+ind) -\/ ability of providing the MTP service Q.\+714 5.\+2.\+3 



References \textbf{ osmo\+\_\+scu\+\_\+pcstate\+\_\+param\+::affected\+\_\+pc}, \textbf{ dpc}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+REM\+\_\+\+SCCP\+\_\+\+S\+\_\+\+AVAILABLE}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SP\+\_\+\+S\+\_\+\+ACCESSIBLE}, and \textbf{ sccp\+\_\+lbcs\+\_\+local\+\_\+bcast\+\_\+pcstate()}.



Referenced by \textbf{ xua\+\_\+snm\+\_\+pc\+\_\+available\+\_\+to\+\_\+sccp()}.

\mbox{\label{sccp__internal_8h_a52ebba6e3b52df06bb6b8e21ea937dda}} 
\index{sccp\_internal.h@{sccp\_internal.h}!sccp\_scmg\_rx\_mtp\_status@{sccp\_scmg\_rx\_mtp\_status}}
\index{sccp\_scmg\_rx\_mtp\_status@{sccp\_scmg\_rx\_mtp\_status}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{sccp\_scmg\_rx\_mtp\_status()}
{\footnotesize\ttfamily void sccp\+\_\+scmg\+\_\+rx\+\_\+mtp\+\_\+status (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{uint32\+\_\+t}]{dpc,  }\item[{enum \textbf{ mtp\+\_\+unavail\+\_\+cause}}]{cause }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+scu\+\_\+pcstate\+\_\+param\+::affected\+\_\+pc}, \textbf{ dpc}, \textbf{ MTP\+\_\+\+UNAVAIL\+\_\+\+C\+\_\+\+INACC\+\_\+\+REM\+\_\+\+USER}, \textbf{ MTP\+\_\+\+UNAVAIL\+\_\+\+C\+\_\+\+UNEQUIP\+\_\+\+REM\+\_\+\+USER}, \textbf{ MTP\+\_\+\+UNAVAIL\+\_\+\+C\+\_\+\+UNKNOWN}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+REM\+\_\+\+SCCP\+\_\+\+S\+\_\+\+UNAVAILABLE\+\_\+\+UNKNOWN}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SP\+\_\+\+S\+\_\+\+ACCESSIBLE}, and \textbf{ sccp\+\_\+lbcs\+\_\+local\+\_\+bcast\+\_\+pcstate()}.



Referenced by \textbf{ xua\+\_\+snm\+\_\+upu()}.

\mbox{\label{sccp__internal_8h_a112a6f006b73b2b5dc475c6ccd33337d}} 
\index{sccp\_internal.h@{sccp\_internal.h}!sccp\_scmg\_rx\_ssn\_allowed@{sccp\_scmg\_rx\_ssn\_allowed}}
\index{sccp\_scmg\_rx\_ssn\_allowed@{sccp\_scmg\_rx\_ssn\_allowed}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{sccp\_scmg\_rx\_ssn\_allowed()}
{\footnotesize\ttfamily void sccp\+\_\+scmg\+\_\+rx\+\_\+ssn\+\_\+allowed (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{uint32\+\_\+t}]{dpc,  }\item[{uint32\+\_\+t}]{ssn,  }\item[{uint32\+\_\+t}]{smi }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+scu\+\_\+state\+\_\+param\+::affected\+\_\+pc}, \textbf{ dpc}, \textbf{ sccp\+\_\+lbcs\+\_\+local\+\_\+bcast\+\_\+state()}, and \textbf{ smi}.



Referenced by \textbf{ scmg\+\_\+rx\+\_\+ssa()}, and \textbf{ sua\+\_\+snm\+\_\+ssn\+\_\+available\+\_\+to\+\_\+sccp()}.

\mbox{\label{sccp__internal_8h_a6790766deb21c57560ab062d8a7ee0be}} 
\index{sccp\_internal.h@{sccp\_internal.h}!sccp\_scmg\_rx\_ssn\_prohibited@{sccp\_scmg\_rx\_ssn\_prohibited}}
\index{sccp\_scmg\_rx\_ssn\_prohibited@{sccp\_scmg\_rx\_ssn\_prohibited}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{sccp\_scmg\_rx\_ssn\_prohibited()}
{\footnotesize\ttfamily void sccp\+\_\+scmg\+\_\+rx\+\_\+ssn\+\_\+prohibited (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{uint32\+\_\+t}]{dpc,  }\item[{uint32\+\_\+t}]{ssn,  }\item[{uint32\+\_\+t}]{smi }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+scu\+\_\+state\+\_\+param\+::affected\+\_\+pc}, \textbf{ dpc}, \textbf{ sccp\+\_\+lbcs\+\_\+local\+\_\+bcast\+\_\+state()}, and \textbf{ smi}.



Referenced by \textbf{ scmg\+\_\+rx\+\_\+ssp()}, and \textbf{ sua\+\_\+snm\+\_\+ssn\+\_\+available\+\_\+to\+\_\+sccp()}.

\mbox{\label{sccp__internal_8h_ac9947e47665a8aa2e294b26c599a4ca7}} 
\index{sccp\_internal.h@{sccp\_internal.h}!sccp\_scoc\_flush\_connections@{sccp\_scoc\_flush\_connections}}
\index{sccp\_scoc\_flush\_connections@{sccp\_scoc\_flush\_connections}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{sccp\_scoc\_flush\_connections()}
{\footnotesize\ttfamily void sccp\+\_\+scoc\+\_\+flush\+\_\+connections (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})}



References \textbf{ conn\+\_\+destroy()}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::connections}, and \textbf{ sccp\+\_\+connection\+::node}.



Referenced by \textbf{ osmo\+\_\+sccp\+\_\+instance\+\_\+destroy()}.

\mbox{\label{sccp__internal_8h_a7e6ca58debc34b50244590c90e68943f}} 
\index{sccp\_internal.h@{sccp\_internal.h}!sccp\_scoc\_rx\_from\_scrc@{sccp\_scoc\_rx\_from\_scrc}}
\index{sccp\_scoc\_rx\_from\_scrc@{sccp\_scoc\_rx\_from\_scrc}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{sccp\_scoc\_rx\_from\_scrc()}
{\footnotesize\ttfamily void sccp\+\_\+scoc\+\_\+rx\+\_\+from\+\_\+scrc (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



Main entrance function for primitives from the SCRC (Routing Control) 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em inst} & SCCP Instance in which we operate \\
\hline
\mbox{\texttt{ in}}  & {\em xua} & SUA message in \doxyref{xua\+\_\+msg}{p.}{structxua__msg} format \\
\hline
\end{DoxyParams}


References \textbf{ conn\+\_\+create()}, \textbf{ conn\+\_\+find\+\_\+by\+\_\+id()}, \textbf{ sccp\+\_\+connection\+::conn\+\_\+id}, \textbf{ sccp\+\_\+connection\+::fi}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ sccp\+\_\+connection\+::incoming}, \textbf{ osmo\+\_\+sccp\+\_\+user\+::inst}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ xua\+\_\+msg\+::mtp}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::opc}, \textbf{ sccp\+\_\+connection\+::remote\+\_\+pc}, \textbf{ sccp\+\_\+connection\+::remote\+\_\+ref}, \textbf{ sccp\+\_\+find\+\_\+user()}, \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+inval\+\_\+opc()}, \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+inval\+\_\+src\+\_\+ref()}, \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+unass\+\_\+local\+\_\+ref()}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COAK}, \textbf{ SUA\+\_\+\+CO\+\_\+\+CORE}, \textbf{ SUA\+\_\+\+CO\+\_\+\+COREF}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DEST\+\_\+\+REF}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+SRC\+\_\+\+REF}, \textbf{ sua\+\_\+scoc\+\_\+event\+\_\+map}, \textbf{ xua\+\_\+dialect\+\_\+sua}, \textbf{ xua\+\_\+hdr\+\_\+dump()}, \textbf{ xua\+\_\+msg\+\_\+event\+\_\+map()}, \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}, and \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32()}.



Referenced by \textbf{ scrc\+\_\+node\+\_\+6()}, \textbf{ scrc\+\_\+rx\+\_\+mtp\+\_\+xfer\+\_\+ind\+\_\+xua()}, and \textbf{ scrc\+\_\+translate\+\_\+node\+\_\+9()}.

\mbox{\label{sccp__internal_8h_a92800c00e934b3faaf1c7dc6552d9bf5}} 
\index{sccp\_internal.h@{sccp\_internal.h}!sccp\_scoc\_rx\_scrc\_rout\_fail@{sccp\_scoc\_rx\_scrc\_rout\_fail}}
\index{sccp\_scoc\_rx\_scrc\_rout\_fail@{sccp\_scoc\_rx\_scrc\_rout\_fail}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{sccp\_scoc\_rx\_scrc\_rout\_fail()}
{\footnotesize\ttfamily void sccp\+\_\+scoc\+\_\+rx\+\_\+scrc\+\_\+rout\+\_\+fail (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua,  }\item[{uint32\+\_\+t}]{return\+\_\+cause }\end{DoxyParamCaption})}



SCOC\+: Receive SCRC Routing Failure. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em inst} & SCCP Instance on which we operate \\
\hline
\mbox{\texttt{ in}}  & {\em xua} & SUA message that was failed to route \\
\hline
\mbox{\texttt{ in}}  & {\em return\+\_\+cause} & Reason (cause) for routing failure \\
\hline
\end{DoxyParams}


References \textbf{ conn\+\_\+find\+\_\+by\+\_\+id()}, \textbf{ sccp\+\_\+connection\+::conn\+\_\+id}, \textbf{ sccp\+\_\+connection\+::fi}, \textbf{ gen\+\_\+coref\+\_\+without\+\_\+conn()}, \textbf{ get\+\_\+cref\+\_\+cause\+\_\+for\+\_\+ret()}, \textbf{ sccp\+\_\+connection\+::inst}, \textbf{ sccp\+\_\+scrc\+\_\+rx\+\_\+scoc\+\_\+conn\+\_\+msg()}, \textbf{ SCOC\+\_\+\+E\+\_\+\+RCOC\+\_\+\+ROUT\+\_\+\+FAIL\+\_\+\+IND}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DEST\+\_\+\+REF}, \textbf{ xua\+\_\+dialect\+\_\+sua}, \textbf{ xua\+\_\+hdr\+\_\+dump()}, \textbf{ xua\+\_\+msg\+\_\+free()}, and \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32()}.



Referenced by \textbf{ scrc\+\_\+node\+\_\+2()}, \textbf{ scrc\+\_\+node\+\_\+4()}, and \textbf{ scrc\+\_\+node\+\_\+6()}.

\mbox{\label{sccp__internal_8h_a9b54133b478681e048c5556e100e463f}} 
\index{sccp\_internal.h@{sccp\_internal.h}!sccp\_scoc\_show\_connections@{sccp\_scoc\_show\_connections}}
\index{sccp\_scoc\_show\_connections@{sccp\_scoc\_show\_connections}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{sccp\_scoc\_show\_connections()}
{\footnotesize\ttfamily void sccp\+\_\+scoc\+\_\+show\+\_\+connections (\begin{DoxyParamCaption}\item[{struct vty $\ast$}]{vty,  }\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+sccp\+\_\+instance\+::connections}, and \textbf{ vty\+\_\+show\+\_\+connection()}.



Referenced by \textbf{ DEFUN()}.

\mbox{\label{sccp__internal_8h_a8dc48be976019be4ab89019aabcb3bbc}} 
\index{sccp\_internal.h@{sccp\_internal.h}!sccp\_scrc\_rx\_sclc\_msg@{sccp\_scrc\_rx\_sclc\_msg}}
\index{sccp\_scrc\_rx\_sclc\_msg@{sccp\_scrc\_rx\_sclc\_msg}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{sccp\_scrc\_rx\_sclc\_msg()}
{\footnotesize\ttfamily int sccp\+\_\+scrc\+\_\+rx\+\_\+sclc\+\_\+msg (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+RI\+\_\+\+GT}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::ri}, \textbf{ scrc\+\_\+local\+\_\+out\+\_\+common()}, \textbf{ scrc\+\_\+node\+\_\+12()}, \textbf{ scrc\+\_\+node\+\_\+7()}, \textbf{ sua\+\_\+addr\+\_\+parse()}, \textbf{ SUA\+\_\+\+CL\+\_\+\+CLDR}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DEST\+\_\+\+ADDR}, \textbf{ xua\+\_\+dialect\+\_\+sua}, and \textbf{ xua\+\_\+msg\+\_\+dump()}.



Referenced by \textbf{ sccp\+\_\+sclc\+\_\+rx\+\_\+scrc\+\_\+rout\+\_\+fail()}, and \textbf{ xua\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send()}.

\mbox{\label{sccp__internal_8h_a15a6de5f59a65101717acc2d1597d955}} 
\index{sccp\_internal.h@{sccp\_internal.h}!sccp\_scrc\_rx\_scoc\_conn\_msg@{sccp\_scrc\_rx\_scoc\_conn\_msg}}
\index{sccp\_scrc\_rx\_scoc\_conn\_msg@{sccp\_scrc\_rx\_scoc\_conn\_msg}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{sccp\_scrc\_rx\_scoc\_conn\_msg()}
{\footnotesize\ttfamily int sccp\+\_\+scrc\+\_\+rx\+\_\+scoc\+\_\+conn\+\_\+msg (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



References \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ scrc\+\_\+local\+\_\+out\+\_\+common()}, \textbf{ scrc\+\_\+node\+\_\+2()}, \textbf{ sua\+\_\+addr\+\_\+parse()}, \textbf{ SUA\+\_\+\+CO\+\_\+\+CORE}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DEST\+\_\+\+ADDR}, \textbf{ xua\+\_\+dialect\+\_\+sua}, and \textbf{ xua\+\_\+msg\+\_\+dump()}.



Referenced by \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+scrc\+\_\+rout\+\_\+fail()}, \textbf{ tx\+\_\+coerr\+\_\+from\+\_\+xua()}, \textbf{ tx\+\_\+relco\+\_\+from\+\_\+xua()}, \textbf{ tx\+\_\+rlsd\+\_\+from\+\_\+xua\+\_\+twoway()}, \textbf{ xua\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send()}, and \textbf{ xua\+\_\+gen\+\_\+relre\+\_\+and\+\_\+send()}.

\mbox{\label{sccp__internal_8h_a5e91462e8e3dd81c8e1255b872c1b941}} 
\index{sccp\_internal.h@{sccp\_internal.h}!sccp\_user\_find@{sccp\_user\_find}}
\index{sccp\_user\_find@{sccp\_user\_find}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{sccp\_user\_find()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$ sccp\+\_\+user\+\_\+find (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{uint16\+\_\+t}]{ssn,  }\item[{uint32\+\_\+t}]{pc }\end{DoxyParamCaption})}



Find a SCCP User registered for given PC+\+SSN or SSN only First search all users with a valid PC for a full PC+\+SSN match. 

If no such match was found, search all users with an invalid PC for an SSN-\/only match. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em inst} & SCCP Instance in which to search \\
\hline
\mbox{\texttt{ in}}  & {\em ssn} & Sub-\/\+System Number to search for \\
\hline
\mbox{\texttt{ in}}  & {\em pc} & Point Code to search for \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Matching SCCP User; NULL if none found 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+sccp\+\_\+user\+::inst}, \textbf{ osmo\+\_\+sccp\+\_\+user\+::list}, \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+is\+\_\+valid()}, \textbf{ osmo\+\_\+sccp\+\_\+user\+::pc}, \textbf{ osmo\+\_\+sccp\+\_\+user\+::ssn}, and \textbf{ osmo\+\_\+sccp\+\_\+instance\+::users}.



Referenced by \textbf{ DEFUN()}, \textbf{ osmo\+\_\+sccp\+\_\+user\+\_\+find()}, \textbf{ sccp\+\_\+find\+\_\+user()}, \textbf{ sccp\+\_\+user\+\_\+bind\+\_\+pc()}, \textbf{ sclc\+\_\+rx\+\_\+cldr()}, \textbf{ sclc\+\_\+rx\+\_\+cldt()}, \textbf{ scmg\+\_\+rx\+\_\+sst()}, and \textbf{ scrc\+\_\+node\+\_\+6()}.

\mbox{\label{sccp__internal_8h_acac4bf761e73af753df023703e6faf83}} 
\index{sccp\_internal.h@{sccp\_internal.h}!sccp\_user\_prim\_up@{sccp\_user\_prim\_up}}
\index{sccp\_user\_prim\_up@{sccp\_user\_prim\_up}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{sccp\_user\_prim\_up()}
{\footnotesize\ttfamily int sccp\+\_\+user\+\_\+prim\+\_\+up (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$}]{scu,  }\item[{struct \textbf{ osmo\+\_\+scu\+\_\+prim} $\ast$}]{prim }\end{DoxyParamCaption})}



Send a SCCP User SAP Primitive up to the User. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em scu} & SCCP User to whom to send the primitive \\
\hline
\mbox{\texttt{ in}}  & {\em prim} & Primitive to send to the user \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
return value of the SCCP User\textquotesingle{}s prim\+\_\+cb() function 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+sccp\+\_\+user\+::name}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::oph}, \textbf{ osmo\+\_\+scu\+\_\+prim\+\_\+name()}, and \textbf{ osmo\+\_\+sccp\+\_\+user\+::prim\+\_\+cb}.



Referenced by \textbf{ sccp\+\_\+lbcs\+\_\+local\+\_\+bcast\+\_\+pcstate()}, \textbf{ sccp\+\_\+lbcs\+\_\+local\+\_\+bcast\+\_\+state()}, \textbf{ sclc\+\_\+rx\+\_\+cldr()}, \textbf{ sclc\+\_\+rx\+\_\+cldt()}, and \textbf{ scu\+\_\+gen\+\_\+encode\+\_\+and\+\_\+send()}.

\mbox{\label{sccp__internal_8h_a52d608a935f14519bcf883fc7858145e}} 
\index{sccp\_internal.h@{sccp\_internal.h}!scrc\_rx\_mtp\_xfer\_ind\_xua@{scrc\_rx\_mtp\_xfer\_ind\_xua}}
\index{scrc\_rx\_mtp\_xfer\_ind\_xua@{scrc\_rx\_mtp\_xfer\_ind\_xua}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{scrc\_rx\_mtp\_xfer\_ind\_xua()}
{\footnotesize\ttfamily int scrc\+\_\+rx\+\_\+mtp\+\_\+xfer\+\_\+ind\+\_\+xua (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



References \textbf{ xua\+\_\+msg\+\_\+part\+::dat}, \textbf{ ensure\+\_\+opc\+\_\+in\+\_\+calling\+\_\+ssn()}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+RI\+\_\+\+GT}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::ri}, \textbf{ sccp\+\_\+scoc\+\_\+rx\+\_\+from\+\_\+scrc()}, \textbf{ scrc\+\_\+node\+\_\+4()}, \textbf{ scrc\+\_\+node\+\_\+6()}, \textbf{ scrc\+\_\+translate\+\_\+node\+\_\+9()}, \textbf{ sua\+\_\+addr\+\_\+parse()}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+DEST\+\_\+\+ADDR}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+PROTO\+\_\+\+CLASS}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+S7\+\_\+\+HOP\+\_\+\+CTR}, \textbf{ sua\+\_\+is\+\_\+connectionless()}, \textbf{ sua\+\_\+is\+\_\+cr()}, \textbf{ xua\+\_\+dialect\+\_\+sua}, \textbf{ xua\+\_\+msg\+\_\+dump()}, \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}, \textbf{ xua\+\_\+msg\+\_\+get\+\_\+u32()}, and \textbf{ xua\+\_\+msg\+\_\+part\+\_\+get\+\_\+u32()}.



Referenced by \textbf{ mtp\+\_\+user\+\_\+prim\+\_\+cb()}, \textbf{ sua\+\_\+rx\+\_\+cl()}, and \textbf{ sua\+\_\+rx\+\_\+co()}.



\doxysubsection{Variable Documentation}
\mbox{\label{sccp__internal_8h_a76289a1eaad826ce833ea29955728e6b}} 
\index{sccp\_internal.h@{sccp\_internal.h}!DSCCP@{DSCCP}}
\index{DSCCP@{DSCCP}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{DSCCP}
{\footnotesize\ttfamily int DSCCP\hspace{0.3cm}{\ttfamily [extern]}}

\mbox{\label{sccp__internal_8h_ae4f0f4b8faf5d7ba93d5d5ead401c2b3}} 
\index{sccp\_internal.h@{sccp\_internal.h}!osmo\_sccp\_timer\_defaults@{osmo\_sccp\_timer\_defaults}}
\index{osmo\_sccp\_timer\_defaults@{osmo\_sccp\_timer\_defaults}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{osmo\_sccp\_timer\_defaults}
{\footnotesize\ttfamily const struct osmo\+\_\+tdef osmo\+\_\+sccp\+\_\+timer\+\_\+defaults[\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+TIMERS\+\_\+\+LEN}]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ gen\+\_\+sccp\+\_\+timer\+\_\+cmd\+\_\+strs()}, and \textbf{ osmo\+\_\+sccp\+\_\+instance\+\_\+create()}.

\mbox{\label{sccp__internal_8h_adb142ce6fd39a4884c7fa9144ff15c3f}} 
\index{sccp\_internal.h@{sccp\_internal.h}!osmo\_sccp\_timer\_names@{osmo\_sccp\_timer\_names}}
\index{osmo\_sccp\_timer\_names@{osmo\_sccp\_timer\_names}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{osmo\_sccp\_timer\_names}
{\footnotesize\ttfamily const struct value\+\_\+string osmo\+\_\+sccp\+\_\+timer\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



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

\mbox{\label{sccp__internal_8h_acc3f4c3c00682b6a4190a5a998b129f1}} 
\index{sccp\_internal.h@{sccp\_internal.h}!sccp\_scoc\_fsm@{sccp\_scoc\_fsm}}
\index{sccp\_scoc\_fsm@{sccp\_scoc\_fsm}!sccp\_internal.h@{sccp\_internal.h}}
\doxysubsubsection{sccp\_scoc\_fsm}
{\footnotesize\ttfamily struct osmo\+\_\+fsm sccp\+\_\+scoc\+\_\+fsm\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ conn\+\_\+create\+\_\+id()}, and \textbf{ osmo\+\_\+ss7\+\_\+init()}.

