\section{src/sccp\+\_\+scmg.c File Reference} \label{sccp__scmg_8c}\index{src/sccp\+\_\+scmg.\+c@{src/sccp\+\_\+scmg.\+c}} {\ttfamily \#include $<$string.\+h$>$}\newline {\ttfamily \#include $<$osmocom/core/utils.\+h$>$}\newline {\ttfamily \#include $<$osmocom/core/linuxlist.\+h$>$}\newline {\ttfamily \#include $<$osmocom/core/logging.\+h$>$}\newline {\ttfamily \#include $<$osmocom/core/timer.\+h$>$}\newline {\ttfamily \#include $<$osmocom/core/fsm.\+h$>$}\newline {\ttfamily \#include $<$osmocom/sigtran/sccp\+\_\+sap.\+h$>$}\newline {\ttfamily \#include $<$osmocom/sigtran/protocol/sua.\+h$>$}\newline {\ttfamily \#include $<$osmocom/sigtran/protocol/sccp\+\_\+scmg.\+h$>$}\newline {\ttfamily \#include $<$osmocom/sccp/sccp\+\_\+types.\+h$>$}\newline {\ttfamily \#include \char`\"{}xua\+\_\+internal.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}sccp\+\_\+internal.\+h\char`\"{}}\newline \subsection*{Functions} \begin{DoxyCompactItemize} \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 M\+TP -\/$>$ S\+NM (M\+T\+P-\/\+P\+A\+U\+S\+E.\+ind) -\/ inability to providing M\+TP 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 M\+TP -\/$>$ S\+NM (M\+T\+P-\/\+R\+E\+S\+U\+M\+E.\+ind) -\/ ability of providing the M\+TP 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 static int \textbf{ sccp\+\_\+scmg\+\_\+tx} (struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$scu, const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$calling\+\_\+addr, const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$called\+\_\+addr, uint8\+\_\+t \textbf{ msg\+\_\+type}, uint8\+\_\+t ssn, uint16\+\_\+t pc, uint8\+\_\+t \textbf{ smi}, uint8\+\_\+t $\ast$ssc\+\_\+cong\+\_\+lvl) \item static int \textbf{ scmg\+\_\+rx\+\_\+ssa} (struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$scu, const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$calling\+\_\+addr, const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$called\+\_\+addr, const struct \textbf{ sccp\+\_\+scmg\+\_\+msg} $\ast$ssa) \item static int \textbf{ scmg\+\_\+rx\+\_\+ssp} (struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$scu, const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$calling\+\_\+addr, const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$called\+\_\+addr, const struct \textbf{ sccp\+\_\+scmg\+\_\+msg} $\ast$ssp) \item static int \textbf{ scmg\+\_\+rx\+\_\+sst} (struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$scu, const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$calling\+\_\+addr, const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$called\+\_\+addr, const struct \textbf{ sccp\+\_\+scmg\+\_\+msg} $\ast$sst) \item static int \textbf{ scmg\+\_\+rx} (struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$scu, const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$calling\+\_\+addr, const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$called\+\_\+addr, const struct \textbf{ sccp\+\_\+scmg\+\_\+msg} $\ast$scmg) \item static int \textbf{ scmg\+\_\+prim\+\_\+cb} (struct osmo\+\_\+prim\+\_\+hdr $\ast$oph, void $\ast$\+\_\+scu) \item int \textbf{ sccp\+\_\+scmg\+\_\+init} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst) \end{DoxyCompactItemize} \subsection*{Variables} \begin{DoxyCompactItemize} \item const struct value\+\_\+string \textbf{ sccp\+\_\+scmg\+\_\+msgt\+\_\+names} [$\,$] \end{DoxyCompactItemize} \subsection{Function Documentation} \mbox{\label{sccp__scmg_8c_a78005d521d9f14a1a8504b2d18691539}} \index{sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}!sccp\+\_\+scmg\+\_\+init@{sccp\+\_\+scmg\+\_\+init}} \index{sccp\+\_\+scmg\+\_\+init@{sccp\+\_\+scmg\+\_\+init}!sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}} \subsubsection{sccp\+\_\+scmg\+\_\+init()} {\footnotesize\ttfamily int sccp\+\_\+scmg\+\_\+init (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})} References osmo\+\_\+sccp\+\_\+user\+\_\+bind(), and scmg\+\_\+prim\+\_\+cb(). Referenced by osmo\+\_\+sccp\+\_\+instance\+\_\+create(). \mbox{\label{sccp__scmg_8c_a6e1de1fdffab62084b3e51db5a09b7c4}} \index{sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}!sccp\+\_\+scmg\+\_\+rx\+\_\+mtp\+\_\+pause@{sccp\+\_\+scmg\+\_\+rx\+\_\+mtp\+\_\+pause}} \index{sccp\+\_\+scmg\+\_\+rx\+\_\+mtp\+\_\+pause@{sccp\+\_\+scmg\+\_\+rx\+\_\+mtp\+\_\+pause}!sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}} \subsubsection{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 M\+TP -\/$>$ S\+NM (M\+T\+P-\/\+P\+A\+U\+S\+E.\+ind) -\/ inability to providing M\+TP service Q.\+714 5.\+2.\+2 References osmo\+\_\+scu\+\_\+pcstate\+\_\+param\+::affected\+\_\+pc, dpc, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+R\+E\+M\+\_\+\+S\+C\+C\+P\+\_\+\+S\+\_\+\+U\+N\+A\+V\+A\+I\+L\+A\+B\+L\+E\+\_\+\+U\+N\+K\+N\+O\+WN, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+S\+P\+\_\+\+S\+\_\+\+I\+N\+A\+C\+C\+E\+S\+S\+I\+B\+LE, and sccp\+\_\+lbcs\+\_\+local\+\_\+bcast\+\_\+pcstate(). Referenced by xua\+\_\+snm\+\_\+pc\+\_\+available\+\_\+to\+\_\+sccp(). \mbox{\label{sccp__scmg_8c_a9b395f6f66a9d5cd22fec3841738d6ca}} \index{sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}!sccp\+\_\+scmg\+\_\+rx\+\_\+mtp\+\_\+resume@{sccp\+\_\+scmg\+\_\+rx\+\_\+mtp\+\_\+resume}} \index{sccp\+\_\+scmg\+\_\+rx\+\_\+mtp\+\_\+resume@{sccp\+\_\+scmg\+\_\+rx\+\_\+mtp\+\_\+resume}!sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}} \subsubsection{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 M\+TP -\/$>$ S\+NM (M\+T\+P-\/\+R\+E\+S\+U\+M\+E.\+ind) -\/ ability of providing the M\+TP service Q.\+714 5.\+2.\+3 References osmo\+\_\+scu\+\_\+pcstate\+\_\+param\+::affected\+\_\+pc, dpc, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+R\+E\+M\+\_\+\+S\+C\+C\+P\+\_\+\+S\+\_\+\+A\+V\+A\+I\+L\+A\+B\+LE, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+S\+P\+\_\+\+S\+\_\+\+A\+C\+C\+E\+S\+S\+I\+B\+LE, and sccp\+\_\+lbcs\+\_\+local\+\_\+bcast\+\_\+pcstate(). Referenced by xua\+\_\+snm\+\_\+pc\+\_\+available\+\_\+to\+\_\+sccp(). \mbox{\label{sccp__scmg_8c_a52ebba6e3b52df06bb6b8e21ea937dda}} \index{sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}!sccp\+\_\+scmg\+\_\+rx\+\_\+mtp\+\_\+status@{sccp\+\_\+scmg\+\_\+rx\+\_\+mtp\+\_\+status}} \index{sccp\+\_\+scmg\+\_\+rx\+\_\+mtp\+\_\+status@{sccp\+\_\+scmg\+\_\+rx\+\_\+mtp\+\_\+status}!sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}} \subsubsection{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 osmo\+\_\+scu\+\_\+pcstate\+\_\+param\+::affected\+\_\+pc, dpc, M\+T\+P\+\_\+\+U\+N\+A\+V\+A\+I\+L\+\_\+\+C\+\_\+\+I\+N\+A\+C\+C\+\_\+\+R\+E\+M\+\_\+\+U\+S\+ER, M\+T\+P\+\_\+\+U\+N\+A\+V\+A\+I\+L\+\_\+\+C\+\_\+\+U\+N\+E\+Q\+U\+I\+P\+\_\+\+R\+E\+M\+\_\+\+U\+S\+ER, M\+T\+P\+\_\+\+U\+N\+A\+V\+A\+I\+L\+\_\+\+C\+\_\+\+U\+N\+K\+N\+O\+WN, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+R\+E\+M\+\_\+\+S\+C\+C\+P\+\_\+\+S\+\_\+\+U\+N\+A\+V\+A\+I\+L\+A\+B\+L\+E\+\_\+\+U\+N\+K\+N\+O\+WN, O\+S\+M\+O\+\_\+\+S\+C\+C\+P\+\_\+\+S\+P\+\_\+\+S\+\_\+\+A\+C\+C\+E\+S\+S\+I\+B\+LE, and sccp\+\_\+lbcs\+\_\+local\+\_\+bcast\+\_\+pcstate(). Referenced by xua\+\_\+snm\+\_\+upu(). \mbox{\label{sccp__scmg_8c_a112a6f006b73b2b5dc475c6ccd33337d}} \index{sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}!sccp\+\_\+scmg\+\_\+rx\+\_\+ssn\+\_\+allowed@{sccp\+\_\+scmg\+\_\+rx\+\_\+ssn\+\_\+allowed}} \index{sccp\+\_\+scmg\+\_\+rx\+\_\+ssn\+\_\+allowed@{sccp\+\_\+scmg\+\_\+rx\+\_\+ssn\+\_\+allowed}!sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}} \subsubsection{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 osmo\+\_\+scu\+\_\+state\+\_\+param\+::affected\+\_\+pc, dpc, sccp\+\_\+lbcs\+\_\+local\+\_\+bcast\+\_\+state(), and smi. Referenced by scmg\+\_\+rx\+\_\+ssa(), and sua\+\_\+snm\+\_\+ssn\+\_\+available\+\_\+to\+\_\+sccp(). \mbox{\label{sccp__scmg_8c_a6790766deb21c57560ab062d8a7ee0be}} \index{sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}!sccp\+\_\+scmg\+\_\+rx\+\_\+ssn\+\_\+prohibited@{sccp\+\_\+scmg\+\_\+rx\+\_\+ssn\+\_\+prohibited}} \index{sccp\+\_\+scmg\+\_\+rx\+\_\+ssn\+\_\+prohibited@{sccp\+\_\+scmg\+\_\+rx\+\_\+ssn\+\_\+prohibited}!sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}} \subsubsection{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 osmo\+\_\+scu\+\_\+state\+\_\+param\+::affected\+\_\+pc, dpc, sccp\+\_\+lbcs\+\_\+local\+\_\+bcast\+\_\+state(), and smi. Referenced by scmg\+\_\+rx\+\_\+ssp(), and sua\+\_\+snm\+\_\+ssn\+\_\+available\+\_\+to\+\_\+sccp(). \mbox{\label{sccp__scmg_8c_ab62f2db95b4ad197732d6cc6cfbb9281}} \index{sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}!sccp\+\_\+scmg\+\_\+tx@{sccp\+\_\+scmg\+\_\+tx}} \index{sccp\+\_\+scmg\+\_\+tx@{sccp\+\_\+scmg\+\_\+tx}!sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}} \subsubsection{sccp\+\_\+scmg\+\_\+tx()} {\footnotesize\ttfamily static int sccp\+\_\+scmg\+\_\+tx (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$}]{scu, }\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{calling\+\_\+addr, }\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{called\+\_\+addr, }\item[{uint8\+\_\+t}]{msg\+\_\+type, }\item[{uint8\+\_\+t}]{ssn, }\item[{uint16\+\_\+t}]{pc, }\item[{uint8\+\_\+t}]{smi, }\item[{uint8\+\_\+t $\ast$}]{ssc\+\_\+cong\+\_\+lvl }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References sccp\+\_\+scmg\+\_\+msg\+::affected\+\_\+pc, sccp\+\_\+scmg\+\_\+msg\+::affected\+\_\+ssn, osmo\+\_\+scu\+\_\+unitdata\+\_\+param\+::called\+\_\+addr, osmo\+\_\+scu\+\_\+unitdata\+\_\+param\+::calling\+\_\+addr, sccp\+\_\+scmg\+\_\+msg\+::msg\+\_\+type, osmo\+\_\+scu\+\_\+prim\+::oph, osmo\+\_\+sccp\+\_\+user\+\_\+sap\+\_\+down(), O\+S\+M\+O\+\_\+\+S\+C\+U\+\_\+\+P\+R\+I\+M\+\_\+\+N\+\_\+\+U\+N\+I\+T\+D\+A\+TA, sccp\+\_\+msgb\+\_\+alloc(), S\+C\+C\+P\+\_\+\+S\+A\+P\+\_\+\+U\+S\+ER, S\+C\+C\+P\+\_\+\+S\+C\+M\+G\+\_\+\+M\+S\+G\+T\+\_\+\+S\+SC, sccp\+\_\+scmg\+\_\+msg\+::smi, sccp\+\_\+scmg\+\_\+msg\+::ssc\+\_\+congestion\+\_\+lvl, osmo\+\_\+scu\+\_\+prim\+::u, and osmo\+\_\+scu\+\_\+prim\+::unitdata. Referenced by scmg\+\_\+rx\+\_\+sst(). \mbox{\label{sccp__scmg_8c_a1d014dedd003fe64f1d63154a0bae72d}} \index{sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}!scmg\+\_\+prim\+\_\+cb@{scmg\+\_\+prim\+\_\+cb}} \index{scmg\+\_\+prim\+\_\+cb@{scmg\+\_\+prim\+\_\+cb}!sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}} \subsubsection{scmg\+\_\+prim\+\_\+cb()} {\footnotesize\ttfamily static int scmg\+\_\+prim\+\_\+cb (\begin{DoxyParamCaption}\item[{struct osmo\+\_\+prim\+\_\+hdr $\ast$}]{oph, }\item[{void $\ast$}]{\+\_\+scu }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References sccp\+\_\+scmg\+\_\+msg\+::affected\+\_\+pc, osmo\+\_\+scu\+\_\+unitdata\+\_\+param\+::called\+\_\+addr, osmo\+\_\+scu\+\_\+unitdata\+\_\+param\+::calling\+\_\+addr, sccp\+\_\+scmg\+\_\+msg\+::msg\+\_\+type, O\+S\+M\+O\+\_\+\+S\+C\+U\+\_\+\+P\+R\+I\+M\+\_\+\+N\+\_\+\+P\+C\+S\+T\+A\+TE, O\+S\+M\+O\+\_\+\+S\+C\+U\+\_\+\+P\+R\+I\+M\+\_\+\+N\+\_\+\+U\+N\+I\+T\+D\+A\+TA, osmo\+\_\+scu\+\_\+prim\+\_\+name(), S\+C\+C\+P\+\_\+\+S\+C\+M\+G\+\_\+\+M\+S\+G\+T\+\_\+\+S\+SC, scmg\+\_\+rx(), osmo\+\_\+scu\+\_\+prim\+::u, and osmo\+\_\+scu\+\_\+prim\+::unitdata. Referenced by sccp\+\_\+scmg\+\_\+init(). \mbox{\label{sccp__scmg_8c_a0e3a3cdc35df69b38f7f37eb4d359d9b}} \index{sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}!scmg\+\_\+rx@{scmg\+\_\+rx}} \index{scmg\+\_\+rx@{scmg\+\_\+rx}!sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}} \subsubsection{scmg\+\_\+rx()} {\footnotesize\ttfamily static int scmg\+\_\+rx (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$}]{scu, }\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{calling\+\_\+addr, }\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{called\+\_\+addr, }\item[{const struct \textbf{ sccp\+\_\+scmg\+\_\+msg} $\ast$}]{scmg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References sccp\+\_\+scmg\+\_\+msg\+::msg\+\_\+type, sccp\+\_\+scmg\+\_\+msgt\+\_\+name(), S\+C\+C\+P\+\_\+\+S\+C\+M\+G\+\_\+\+M\+S\+G\+T\+\_\+\+S\+OG, S\+C\+C\+P\+\_\+\+S\+C\+M\+G\+\_\+\+M\+S\+G\+T\+\_\+\+S\+OR, S\+C\+C\+P\+\_\+\+S\+C\+M\+G\+\_\+\+M\+S\+G\+T\+\_\+\+S\+SA, S\+C\+C\+P\+\_\+\+S\+C\+M\+G\+\_\+\+M\+S\+G\+T\+\_\+\+S\+SC, S\+C\+C\+P\+\_\+\+S\+C\+M\+G\+\_\+\+M\+S\+G\+T\+\_\+\+S\+SP, S\+C\+C\+P\+\_\+\+S\+C\+M\+G\+\_\+\+M\+S\+G\+T\+\_\+\+S\+ST, scmg\+\_\+rx\+\_\+ssa(), scmg\+\_\+rx\+\_\+ssp(), and scmg\+\_\+rx\+\_\+sst(). Referenced by scmg\+\_\+prim\+\_\+cb(). \mbox{\label{sccp__scmg_8c_ac0ac40d9fd1003fe9e40f8681bb49c3f}} \index{sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}!scmg\+\_\+rx\+\_\+ssa@{scmg\+\_\+rx\+\_\+ssa}} \index{scmg\+\_\+rx\+\_\+ssa@{scmg\+\_\+rx\+\_\+ssa}!sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}} \subsubsection{scmg\+\_\+rx\+\_\+ssa()} {\footnotesize\ttfamily static int scmg\+\_\+rx\+\_\+ssa (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$}]{scu, }\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{calling\+\_\+addr, }\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{called\+\_\+addr, }\item[{const struct \textbf{ sccp\+\_\+scmg\+\_\+msg} $\ast$}]{ssa }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References sccp\+\_\+scmg\+\_\+msg\+::affected\+\_\+pc, sccp\+\_\+scmg\+\_\+msg\+::affected\+\_\+ssn, osmo\+\_\+sccp\+\_\+user\+::inst, sccp\+\_\+scmg\+\_\+rx\+\_\+ssn\+\_\+allowed(), and sccp\+\_\+scmg\+\_\+msg\+::smi. Referenced by scmg\+\_\+rx(). \mbox{\label{sccp__scmg_8c_af5d62e1daa9a2ad529c6efa6f4356b74}} \index{sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}!scmg\+\_\+rx\+\_\+ssp@{scmg\+\_\+rx\+\_\+ssp}} \index{scmg\+\_\+rx\+\_\+ssp@{scmg\+\_\+rx\+\_\+ssp}!sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}} \subsubsection{scmg\+\_\+rx\+\_\+ssp()} {\footnotesize\ttfamily static int scmg\+\_\+rx\+\_\+ssp (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$}]{scu, }\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{calling\+\_\+addr, }\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{called\+\_\+addr, }\item[{const struct \textbf{ sccp\+\_\+scmg\+\_\+msg} $\ast$}]{ssp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References sccp\+\_\+scmg\+\_\+msg\+::affected\+\_\+pc, sccp\+\_\+scmg\+\_\+msg\+::affected\+\_\+ssn, osmo\+\_\+sccp\+\_\+user\+::inst, sccp\+\_\+scmg\+\_\+rx\+\_\+ssn\+\_\+prohibited(), and sccp\+\_\+scmg\+\_\+msg\+::smi. Referenced by scmg\+\_\+rx(). \mbox{\label{sccp__scmg_8c_aa49df1828fb01829cef1912faa0d3999}} \index{sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}!scmg\+\_\+rx\+\_\+sst@{scmg\+\_\+rx\+\_\+sst}} \index{scmg\+\_\+rx\+\_\+sst@{scmg\+\_\+rx\+\_\+sst}!sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}} \subsubsection{scmg\+\_\+rx\+\_\+sst()} {\footnotesize\ttfamily static int scmg\+\_\+rx\+\_\+sst (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$}]{scu, }\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{calling\+\_\+addr, }\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{called\+\_\+addr, }\item[{const struct \textbf{ sccp\+\_\+scmg\+\_\+msg} $\ast$}]{sst }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References sccp\+\_\+scmg\+\_\+msg\+::affected\+\_\+pc, sccp\+\_\+scmg\+\_\+msg\+::affected\+\_\+ssn, osmo\+\_\+sccp\+\_\+user\+::inst, S\+C\+C\+P\+\_\+\+S\+C\+M\+G\+\_\+\+M\+S\+G\+T\+\_\+\+S\+SA, sccp\+\_\+scmg\+\_\+tx(), and sccp\+\_\+user\+\_\+find(). Referenced by scmg\+\_\+rx(). \subsection{Variable Documentation} \mbox{\label{sccp__scmg_8c_a19984f8b6a5a4a9d11eb79090088649a}} \index{sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}!sccp\+\_\+scmg\+\_\+msgt\+\_\+names@{sccp\+\_\+scmg\+\_\+msgt\+\_\+names}} \index{sccp\+\_\+scmg\+\_\+msgt\+\_\+names@{sccp\+\_\+scmg\+\_\+msgt\+\_\+names}!sccp\+\_\+scmg.\+c@{sccp\+\_\+scmg.\+c}} \subsubsection{sccp\+\_\+scmg\+\_\+msgt\+\_\+names} {\footnotesize\ttfamily const struct value\+\_\+string sccp\+\_\+scmg\+\_\+msgt\+\_\+names[$\,$]} {\bfseries Initial value\+:} \begin{DoxyCode} = \{ \{ SCCP_SCMG_MSGT_SSA, \textcolor{stringliteral}{"SSA (Subsystem Allowed)"} \}, \{ SCCP_SCMG_MSGT_SSP, \textcolor{stringliteral}{"SSP (Subsystem Prohibited)"} \}, \{ SCCP_SCMG_MSGT_SST, \textcolor{stringliteral}{"SST (Subsystem Status Test)"} \}, \{ SCCP_SCMG_MSGT_SOR, \textcolor{stringliteral}{"SOR (Subsystem Out-of-service Request)"} \}, \{ SCCP_SCMG_MSGT_SOG, \textcolor{stringliteral}{"SOG (Subsystem Out-of-service Grant)"} \}, \{ SCCP_SCMG_MSGT_SSC, \textcolor{stringliteral}{"SSC (Subsystem Congested)"} \}, \{ 0, NULL \} \} \end{DoxyCode} Referenced by sccp\+\_\+scmg\+\_\+msgt\+\_\+name().