\doxysection{src/mtp3\+\_\+hmdt.c File Reference}
\label{mtp3__hmdt_8c}\index{src/mtp3\_hmdt.c@{src/mtp3\_hmdt.c}}
{\ttfamily \#include $<$osmocom/core/logging.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/protocol/m3ua.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/protocol/sua.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/osmo\+\_\+ss7.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/mtp\+\_\+sap.\+h$>$}\newline
{\ttfamily \#include \char`\"{}ss7\+\_\+as.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}ss7\+\_\+instance.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}ss7\+\_\+internal.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}ss7\+\_\+route.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}ss7\+\_\+route\+\_\+table.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}ss7\+\_\+user.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}xua\+\_\+internal.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}xua\+\_\+msg.\+h\char`\"{}}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
static struct \textbf{ xua\+\_\+msg} $\ast$ \textbf{ gen\+\_\+dupu\+\_\+ret\+\_\+msg} (enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol} proto, uint8\+\_\+t user\+\_\+part, const struct \textbf{ xua\+\_\+msg} $\ast$orig\+\_\+xua)
\item 
static int \textbf{ mtp3\+\_\+hmdt\+\_\+rx\+\_\+msg\+\_\+for\+\_\+local\+\_\+unavailable\+\_\+part} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, uint8\+\_\+t user\+\_\+part, const struct \textbf{ xua\+\_\+msg} $\ast$orig\+\_\+xua)
\item 
static struct \textbf{ osmo\+\_\+mtp\+\_\+prim} $\ast$ \textbf{ m3ua\+\_\+to\+\_\+xfer\+\_\+ind} (struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
static int \textbf{ deliver\+\_\+to\+\_\+mtp\+\_\+user} (const struct \textbf{ osmo\+\_\+ss7\+\_\+user} $\ast$osu, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\item 
int \textbf{ mtp3\+\_\+hmdt\+\_\+message\+\_\+for\+\_\+distribution} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, struct \textbf{ xua\+\_\+msg} $\ast$xua)
\end{DoxyCompactItemize}


\doxysubsection{Function Documentation}
\mbox{\label{mtp3__hmdt_8c_ab0f4b1309a8a2006635950c46ddd3b06}} 
\index{mtp3\_hmdt.c@{mtp3\_hmdt.c}!deliver\_to\_mtp\_user@{deliver\_to\_mtp\_user}}
\index{deliver\_to\_mtp\_user@{deliver\_to\_mtp\_user}!mtp3\_hmdt.c@{mtp3\_hmdt.c}}
\doxysubsubsection{deliver\_to\_mtp\_user()}
{\footnotesize\ttfamily static int deliver\+\_\+to\+\_\+mtp\+\_\+user (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+user} $\ast$}]{osu,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ m3ua\+\_\+to\+\_\+xfer\+\_\+ind()}, \textbf{ xua\+\_\+msg\+::mtp}, \textbf{ ss7\+\_\+user\+\_\+mtp\+\_\+sap\+\_\+prim\+\_\+up()}, \textbf{ osmo\+\_\+mtp\+\_\+prim\+::transfer}, \textbf{ osmo\+\_\+mtp\+\_\+prim\+::u}, and \textbf{ xua\+\_\+msg\+\_\+free()}.



Referenced by \textbf{ mtp3\+\_\+hmdt\+\_\+message\+\_\+for\+\_\+distribution()}.

\mbox{\label{mtp3__hmdt_8c_a0ec66ed2013547e83b78fd3a3a145232}} 
\index{mtp3\_hmdt.c@{mtp3\_hmdt.c}!gen\_dupu\_ret\_msg@{gen\_dupu\_ret\_msg}}
\index{gen\_dupu\_ret\_msg@{gen\_dupu\_ret\_msg}!mtp3\_hmdt.c@{mtp3\_hmdt.c}}
\doxysubsubsection{gen\_dupu\_ret\_msg()}
{\footnotesize\ttfamily static struct \textbf{ xua\+\_\+msg} $\ast$ gen\+\_\+dupu\+\_\+ret\+\_\+msg (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol}}]{proto,  }\item[{uint8\+\_\+t}]{user\+\_\+part,  }\item[{const struct \textbf{ xua\+\_\+msg} $\ast$}]{orig\+\_\+xua }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::dpc}, \textbf{ m3ua\+\_\+encode\+\_\+dupu()}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ xua\+\_\+msg\+::mtp}, \textbf{ MTP\+\_\+\+UNAVAIL\+\_\+\+C\+\_\+\+UNKNOWN}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::opc}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+M3\+UA}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+SUA}, \textbf{ sua\+\_\+encode\+\_\+dupu()}, \textbf{ SUA\+\_\+\+IEI\+\_\+\+ROUTE\+\_\+\+CTX}, \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}, and \textbf{ xua\+\_\+msg\+\_\+part\+\_\+get\+\_\+u32()}.



Referenced by \textbf{ mtp3\+\_\+hmdt\+\_\+rx\+\_\+msg\+\_\+for\+\_\+local\+\_\+unavailable\+\_\+part()}.

\mbox{\label{mtp3__hmdt_8c_acf36da0e2b5f299737e172eddd40ad2a}} 
\index{mtp3\_hmdt.c@{mtp3\_hmdt.c}!m3ua\_to\_xfer\_ind@{m3ua\_to\_xfer\_ind}}
\index{m3ua\_to\_xfer\_ind@{m3ua\_to\_xfer\_ind}!mtp3\_hmdt.c@{mtp3\_hmdt.c}}
\doxysubsubsection{m3ua\_to\_xfer\_ind()}
{\footnotesize\ttfamily static struct \textbf{ osmo\+\_\+mtp\+\_\+prim} $\ast$ m3ua\+\_\+to\+\_\+xfer\+\_\+ind (\begin{DoxyParamCaption}\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ xua\+\_\+msg\+\_\+part\+::dat}, \textbf{ xua\+\_\+msg\+\_\+part\+::len}, \textbf{ m3ua\+\_\+dh\+\_\+to\+\_\+xfer\+\_\+param()}, \textbf{ M3\+UA\+\_\+\+IEI\+\_\+\+PROT\+\_\+\+DATA}, \textbf{ mtp\+\_\+prim\+\_\+xfer\+\_\+ind\+\_\+alloc()}, \textbf{ NULL}, \textbf{ osmo\+\_\+mtp\+\_\+prim\+::transfer}, \textbf{ osmo\+\_\+mtp\+\_\+prim\+::u}, and \textbf{ xua\+\_\+msg\+\_\+find\+\_\+tag()}.



Referenced by \textbf{ deliver\+\_\+to\+\_\+mtp\+\_\+user()}.

\mbox{\label{mtp3__hmdt_8c_a5c73624163b25cc5c5f7c4d9f573298d}} 
\index{mtp3\_hmdt.c@{mtp3\_hmdt.c}!mtp3\_hmdt\_message\_for\_distribution@{mtp3\_hmdt\_message\_for\_distribution}}
\index{mtp3\_hmdt\_message\_for\_distribution@{mtp3\_hmdt\_message\_for\_distribution}!mtp3\_hmdt.c@{mtp3\_hmdt.c}}
\doxysubsubsection{mtp3\_hmdt\_message\_for\_distribution()}
{\footnotesize\ttfamily int mtp3\+\_\+hmdt\+\_\+message\+\_\+for\+\_\+distribution (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{struct \textbf{ xua\+\_\+msg} $\ast$}]{xua }\end{DoxyParamCaption})}



References \textbf{ data\+\_\+hdr\+\_\+from\+\_\+m3ua()}, \textbf{ deliver\+\_\+to\+\_\+mtp\+\_\+user()}, \textbf{ xua\+\_\+msg\+::hdr}, \textbf{ osmo\+\_\+ss7\+\_\+user\+::inst}, \textbf{ LOGSS7}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+SNM}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+XFER}, \textbf{ M3\+UA\+\_\+\+XFER\+\_\+\+DATA}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ mtp3\+\_\+hmdt\+\_\+rx\+\_\+msg\+\_\+for\+\_\+local\+\_\+unavailable\+\_\+part()}, \textbf{ osmo\+\_\+ss7\+\_\+user\+\_\+find\+\_\+by\+\_\+si()}, \textbf{ m3ua\+\_\+data\+\_\+hdr\+::si}, and \textbf{ xua\+\_\+msg\+\_\+free()}.



Referenced by \textbf{ m3ua\+\_\+rx\+\_\+xfer()}, \textbf{ mtp3\+\_\+hmdc\+\_\+rx\+\_\+from\+\_\+l2()}, and \textbf{ mtp3\+\_\+rtpc\+\_\+rx\+\_\+msg\+\_\+for\+\_\+inaccessible\+\_\+sp()}.

\mbox{\label{mtp3__hmdt_8c_a654927732c545478e3ed61b8f0850eac}} 
\index{mtp3\_hmdt.c@{mtp3\_hmdt.c}!mtp3\_hmdt\_rx\_msg\_for\_local\_unavailable\_part@{mtp3\_hmdt\_rx\_msg\_for\_local\_unavailable\_part}}
\index{mtp3\_hmdt\_rx\_msg\_for\_local\_unavailable\_part@{mtp3\_hmdt\_rx\_msg\_for\_local\_unavailable\_part}!mtp3\_hmdt.c@{mtp3\_hmdt.c}}
\doxysubsubsection{mtp3\_hmdt\_rx\_msg\_for\_local\_unavailable\_part()}
{\footnotesize\ttfamily static int mtp3\+\_\+hmdt\+\_\+rx\+\_\+msg\+\_\+for\+\_\+local\+\_\+unavailable\+\_\+part (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{uint8\+\_\+t}]{user\+\_\+part,  }\item[{const struct \textbf{ xua\+\_\+msg} $\ast$}]{orig\+\_\+xua }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+ss7\+\_\+route\+::as}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+route\+::dest}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::dpc}, \textbf{ gen\+\_\+dupu\+\_\+ret\+\_\+msg()}, \textbf{ LOGSS7}, \textbf{ m3ua\+\_\+tx\+\_\+xua\+\_\+as()}, \textbf{ MAX\+\_\+\+PC\+\_\+\+STR\+\_\+\+LEN}, \textbf{ xua\+\_\+msg\+::mtp}, \textbf{ mtp\+\_\+si\+\_\+vals}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::opc}, \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+label\+::opc}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+IPA}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+M3\+UA}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+SUA}, \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+is\+\_\+local()}, \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print\+\_\+buf()}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::proto}, \textbf{ osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::sls}, and \textbf{ ss7\+\_\+instance\+\_\+lookup\+\_\+route()}.



Referenced by \textbf{ mtp3\+\_\+hmdt\+\_\+message\+\_\+for\+\_\+distribution()}.

