\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 {\ttfamily \#include \char`\"{}ss7\+\_\+user.\+h\char`\"{}}\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()}.