\doxysection{src/gsm/gsm29118.c File Reference}
\label{gsm29118_8c}\index{src/gsm/gsm29118.c@{src/gsm/gsm29118.c}}
{\ttfamily \#include $<$osmocom/core/utils.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gsm/tlv.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gsm/protocol/gsm\+\_\+29\+\_\+118.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gsm/gsm29118.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gsm/apn.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gsm/gsm48.\+h$>$}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm29118\+\_\+msgb\+\_\+alloc} (void)
\item 
static int \textbf{ msgb\+\_\+sgsap\+\_\+name\+\_\+put} (struct \textbf{ msgb} $\ast$\textbf{ msg}, enum \textbf{ sgsap\+\_\+iei} \textbf{ iei}, const char $\ast$\textbf{ name})
\item 
static void \textbf{ msgb\+\_\+sgsap\+\_\+imsi\+\_\+put} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const char $\ast$imsi)
\item 
static void \textbf{ msgb\+\_\+sgsap\+\_\+lai\+\_\+put} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const struct \textbf{ osmo\+\_\+location\+\_\+area\+\_\+id} $\ast$\textbf{ lai})
\item 
static struct \textbf{ msgb} $\ast$ \textbf{ create\+\_\+simple\+\_\+msg} (enum \textbf{ sgsap\+\_\+msg\+\_\+type} \textbf{ msg\+\_\+type}, const char $\ast$imsi)
\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm29118\+\_\+create\+\_\+alert\+\_\+req} (const char $\ast$imsi)
\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm29118\+\_\+create\+\_\+dl\+\_\+ud} (const char $\ast$imsi, struct \textbf{ msgb} $\ast$nas\+\_\+msg)
\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm29118\+\_\+create\+\_\+eps\+\_\+det\+\_\+ack} (const char $\ast$imsi)
\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm29118\+\_\+create\+\_\+imsi\+\_\+det\+\_\+ack} (const char $\ast$imsi)
\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm29118\+\_\+create\+\_\+lu\+\_\+ack} (const char $\ast$imsi, const struct \textbf{ osmo\+\_\+location\+\_\+area\+\_\+id} $\ast$\textbf{ lai}, const uint8\+\_\+t $\ast$new\+\_\+id, unsigned int new\+\_\+id\+\_\+len)
\begin{DoxyCompactList}\small\item\em 8.\+9 SGs\+AP-\/\+LOCATION-\/\+UPDATE-\/\+ACCEPT. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm29118\+\_\+create\+\_\+lu\+\_\+rej} (const char $\ast$imsi, uint8\+\_\+t rej\+\_\+cause, const struct \textbf{ osmo\+\_\+location\+\_\+area\+\_\+id} $\ast$\textbf{ lai})
\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm29118\+\_\+create\+\_\+mm\+\_\+info\+\_\+req} (const char $\ast$imsi, const uint8\+\_\+t $\ast$mm\+\_\+info, uint8\+\_\+t mm\+\_\+info\+\_\+len)
\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm29118\+\_\+create\+\_\+paging\+\_\+req} (struct \textbf{ gsm29118\+\_\+paging\+\_\+req} $\ast$\textbf{ params})
\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm29118\+\_\+create\+\_\+reset\+\_\+ack} (struct \textbf{ gsm29118\+\_\+reset\+\_\+msg} $\ast$\textbf{ params})
\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm29118\+\_\+create\+\_\+reset\+\_\+ind} (struct \textbf{ gsm29118\+\_\+reset\+\_\+msg} $\ast$\textbf{ params})
\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm29118\+\_\+create\+\_\+status} (const char $\ast$imsi, enum \textbf{ sgsap\+\_\+sgs\+\_\+cause} \textbf{ cause}, const struct \textbf{ msgb} $\ast$err\+\_\+msg)
\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm29118\+\_\+create\+\_\+release\+\_\+req} (const char $\ast$imsi, const uint8\+\_\+t sgs\+\_\+cause)
\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm29118\+\_\+create\+\_\+service\+\_\+abort\+\_\+req} (const char $\ast$imsi)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
const struct \textbf{ value\+\_\+string} \textbf{ sgsap\+\_\+msg\+\_\+type\+\_\+names} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ sgsap\+\_\+iei\+\_\+names} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ sgsap\+\_\+eps\+\_\+lu\+\_\+type\+\_\+names} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ sgsap\+\_\+ismi\+\_\+det\+\_\+eps\+\_\+type\+\_\+names} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ sgsap\+\_\+ismi\+\_\+det\+\_\+noneps\+\_\+type\+\_\+names} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ sgsap\+\_\+service\+\_\+ind\+\_\+names} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ sgsap\+\_\+sgs\+\_\+cause\+\_\+names} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ sgsap\+\_\+ue\+\_\+emm\+\_\+mode\+\_\+names} [$\,$]
\item 
const struct \textbf{ tlv\+\_\+definition} \textbf{ sgsap\+\_\+ie\+\_\+tlvdef}
\end{DoxyCompactItemize}


\doxysubsection{Function Documentation}
\mbox{\label{gsm29118_8c_a83e9afaf9f015c4b552f16de0de9a89f}} 
\index{gsm29118.c@{gsm29118.c}!create\_simple\_msg@{create\_simple\_msg}}
\index{create\_simple\_msg@{create\_simple\_msg}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{create\_simple\_msg()}
{\footnotesize\ttfamily static struct \textbf{ msgb} $\ast$ create\+\_\+simple\+\_\+msg (\begin{DoxyParamCaption}\item[{enum \textbf{ sgsap\+\_\+msg\+\_\+type}}]{msg\+\_\+type,  }\item[{const char $\ast$}]{imsi }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ gsm29118\+\_\+msgb\+\_\+alloc()}, \textbf{ msg}, \textbf{ msg\+\_\+type}, \textbf{ msgb\+\_\+push\+\_\+u8()}, and \textbf{ msgb\+\_\+sgsap\+\_\+imsi\+\_\+put()}.



Referenced by \textbf{ gsm29118\+\_\+create\+\_\+alert\+\_\+req()}, \textbf{ gsm29118\+\_\+create\+\_\+eps\+\_\+det\+\_\+ack()}, \textbf{ gsm29118\+\_\+create\+\_\+imsi\+\_\+det\+\_\+ack()}, and \textbf{ gsm29118\+\_\+create\+\_\+service\+\_\+abort\+\_\+req()}.

\mbox{\label{gsm29118_8c_a5ac0cf42e285c26f5891979143c7b277}} 
\index{gsm29118.c@{gsm29118.c}!gsm29118\_create\_alert\_req@{gsm29118\_create\_alert\_req}}
\index{gsm29118\_create\_alert\_req@{gsm29118\_create\_alert\_req}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{gsm29118\_create\_alert\_req()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm29118\+\_\+create\+\_\+alert\+\_\+req (\begin{DoxyParamCaption}\item[{const char $\ast$}]{imsi }\end{DoxyParamCaption})}



References \textbf{ create\+\_\+simple\+\_\+msg()}, and \textbf{ SGSAP\+\_\+\+MSGT\+\_\+\+ALERT\+\_\+\+REQ}.

\mbox{\label{gsm29118_8c_a12d3b5a6ce3449da9b9855643ed1c431}} 
\index{gsm29118.c@{gsm29118.c}!gsm29118\_create\_dl\_ud@{gsm29118\_create\_dl\_ud}}
\index{gsm29118\_create\_dl\_ud@{gsm29118\_create\_dl\_ud}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{gsm29118\_create\_dl\_ud()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm29118\+\_\+create\+\_\+dl\+\_\+ud (\begin{DoxyParamCaption}\item[{const char $\ast$}]{imsi,  }\item[{struct \textbf{ msgb} $\ast$}]{nas\+\_\+msg }\end{DoxyParamCaption})}



References \textbf{ msgb\+::data}, \textbf{ gsm29118\+\_\+msgb\+\_\+alloc()}, \textbf{ msgb\+::len}, \textbf{ msg}, \textbf{ msgb\+\_\+push\+\_\+u8()}, \textbf{ msgb\+\_\+sgsap\+\_\+imsi\+\_\+put()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ SGSAP\+\_\+\+IE\+\_\+\+NAS\+\_\+\+MSG\+\_\+\+CONTAINER}, and \textbf{ SGSAP\+\_\+\+MSGT\+\_\+\+DL\+\_\+\+UD}.

\mbox{\label{gsm29118_8c_a8a3583391baf48311600f4a8938a6299}} 
\index{gsm29118.c@{gsm29118.c}!gsm29118\_create\_eps\_det\_ack@{gsm29118\_create\_eps\_det\_ack}}
\index{gsm29118\_create\_eps\_det\_ack@{gsm29118\_create\_eps\_det\_ack}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{gsm29118\_create\_eps\_det\_ack()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm29118\+\_\+create\+\_\+eps\+\_\+det\+\_\+ack (\begin{DoxyParamCaption}\item[{const char $\ast$}]{imsi }\end{DoxyParamCaption})}



References \textbf{ create\+\_\+simple\+\_\+msg()}, and \textbf{ SGSAP\+\_\+\+MSGT\+\_\+\+EPS\+\_\+\+DET\+\_\+\+ACK}.

\mbox{\label{gsm29118_8c_a223d3bf1404844d993c36c43d7a3905a}} 
\index{gsm29118.c@{gsm29118.c}!gsm29118\_create\_imsi\_det\_ack@{gsm29118\_create\_imsi\_det\_ack}}
\index{gsm29118\_create\_imsi\_det\_ack@{gsm29118\_create\_imsi\_det\_ack}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{gsm29118\_create\_imsi\_det\_ack()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm29118\+\_\+create\+\_\+imsi\+\_\+det\+\_\+ack (\begin{DoxyParamCaption}\item[{const char $\ast$}]{imsi }\end{DoxyParamCaption})}



References \textbf{ create\+\_\+simple\+\_\+msg()}, and \textbf{ SGSAP\+\_\+\+MSGT\+\_\+\+IMSI\+\_\+\+DET\+\_\+\+ACK}.

\mbox{\label{gsm29118_8c_a7d8ba1f1e50e0c72dbddc9042bb888ea}} 
\index{gsm29118.c@{gsm29118.c}!gsm29118\_create\_lu\_ack@{gsm29118\_create\_lu\_ack}}
\index{gsm29118\_create\_lu\_ack@{gsm29118\_create\_lu\_ack}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{gsm29118\_create\_lu\_ack()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm29118\+\_\+create\+\_\+lu\+\_\+ack (\begin{DoxyParamCaption}\item[{const char $\ast$}]{imsi,  }\item[{const struct \textbf{ osmo\+\_\+location\+\_\+area\+\_\+id} $\ast$}]{lai,  }\item[{const uint8\+\_\+t $\ast$}]{new\+\_\+id,  }\item[{unsigned int}]{new\+\_\+id\+\_\+len }\end{DoxyParamCaption})}



8.\+9 SGs\+AP-\/\+LOCATION-\/\+UPDATE-\/\+ACCEPT. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em imsi} & IMSI of the subscriber. \\
\hline
\mbox{\texttt{ in}}  & {\em lai} & Location Area Identity (optional, may be NULL). \\
\hline
\mbox{\texttt{ in}}  & {\em new\+\_\+id} & value part of new Mobile Identity (optional, may be NULL). \\
\hline
\mbox{\texttt{ in}}  & {\em new\+\_\+id\+\_\+len} & length of {\itshape new\+\_\+id} in octets. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with the encoded message 
\end{DoxyReturn}


References \textbf{ gsm29118\+\_\+msgb\+\_\+alloc()}, \textbf{ lai}, \textbf{ msg}, \textbf{ msgb\+\_\+push\+\_\+u8()}, \textbf{ msgb\+\_\+sgsap\+\_\+imsi\+\_\+put()}, \textbf{ msgb\+\_\+sgsap\+\_\+lai\+\_\+put()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ SGSAP\+\_\+\+IE\+\_\+\+MOBILE\+\_\+\+ID}, and \textbf{ SGSAP\+\_\+\+MSGT\+\_\+\+LOC\+\_\+\+UPD\+\_\+\+ACK}.

\mbox{\label{gsm29118_8c_aba346b97fd888e9da6e067d51ec28a8c}} 
\index{gsm29118.c@{gsm29118.c}!gsm29118\_create\_lu\_rej@{gsm29118\_create\_lu\_rej}}
\index{gsm29118\_create\_lu\_rej@{gsm29118\_create\_lu\_rej}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{gsm29118\_create\_lu\_rej()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm29118\+\_\+create\+\_\+lu\+\_\+rej (\begin{DoxyParamCaption}\item[{const char $\ast$}]{imsi,  }\item[{uint8\+\_\+t}]{rej\+\_\+cause,  }\item[{const struct \textbf{ osmo\+\_\+location\+\_\+area\+\_\+id} $\ast$}]{lai }\end{DoxyParamCaption})}



References \textbf{ gsm29118\+\_\+msgb\+\_\+alloc()}, \textbf{ lai}, \textbf{ msg}, \textbf{ msgb\+\_\+push\+\_\+u8()}, \textbf{ msgb\+\_\+sgsap\+\_\+imsi\+\_\+put()}, \textbf{ msgb\+\_\+sgsap\+\_\+lai\+\_\+put()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ SGSAP\+\_\+\+IE\+\_\+\+REJECT\+\_\+\+CAUSE}, and \textbf{ SGSAP\+\_\+\+MSGT\+\_\+\+LOC\+\_\+\+UPD\+\_\+\+REJ}.

\mbox{\label{gsm29118_8c_af71a1493af3802fd9f9778f2f5361c06}} 
\index{gsm29118.c@{gsm29118.c}!gsm29118\_create\_mm\_info\_req@{gsm29118\_create\_mm\_info\_req}}
\index{gsm29118\_create\_mm\_info\_req@{gsm29118\_create\_mm\_info\_req}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{gsm29118\_create\_mm\_info\_req()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm29118\+\_\+create\+\_\+mm\+\_\+info\+\_\+req (\begin{DoxyParamCaption}\item[{const char $\ast$}]{imsi,  }\item[{const uint8\+\_\+t $\ast$}]{mm\+\_\+info,  }\item[{uint8\+\_\+t}]{mm\+\_\+info\+\_\+len }\end{DoxyParamCaption})}



References \textbf{ gsm29118\+\_\+msgb\+\_\+alloc()}, \textbf{ msg}, \textbf{ msgb\+\_\+push\+\_\+u8()}, \textbf{ msgb\+\_\+sgsap\+\_\+imsi\+\_\+put()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ SGSAP\+\_\+\+IE\+\_\+\+MM\+\_\+\+INFO}, and \textbf{ SGSAP\+\_\+\+MSGT\+\_\+\+MM\+\_\+\+INFO\+\_\+\+REQ}.

\mbox{\label{gsm29118_8c_a32ffca55a782b26e82d27c0955a8a2cf}} 
\index{gsm29118.c@{gsm29118.c}!gsm29118\_create\_paging\_req@{gsm29118\_create\_paging\_req}}
\index{gsm29118\_create\_paging\_req@{gsm29118\_create\_paging\_req}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{gsm29118\_create\_paging\_req()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm29118\+\_\+create\+\_\+paging\+\_\+req (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm29118\+\_\+paging\+\_\+req} $\ast$}]{params }\end{DoxyParamCaption})}



References \textbf{ gsm29118\+\_\+msgb\+\_\+alloc()}, \textbf{ msg}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+push\+\_\+u8()}, \textbf{ msgb\+\_\+sgsap\+\_\+imsi\+\_\+put()}, \textbf{ msgb\+\_\+sgsap\+\_\+lai\+\_\+put()}, \textbf{ msgb\+\_\+sgsap\+\_\+name\+\_\+put()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ params}, \textbf{ SGSAP\+\_\+\+IE\+\_\+\+SERVICE\+\_\+\+INDICATOR}, \textbf{ SGSAP\+\_\+\+IE\+\_\+\+VLR\+\_\+\+NAME}, and \textbf{ SGSAP\+\_\+\+MSGT\+\_\+\+PAGING\+\_\+\+REQ}.

\mbox{\label{gsm29118_8c_a001a289ced42c425b298f6e7cdd350d8}} 
\index{gsm29118.c@{gsm29118.c}!gsm29118\_create\_release\_req@{gsm29118\_create\_release\_req}}
\index{gsm29118\_create\_release\_req@{gsm29118\_create\_release\_req}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{gsm29118\_create\_release\_req()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm29118\+\_\+create\+\_\+release\+\_\+req (\begin{DoxyParamCaption}\item[{const char $\ast$}]{imsi,  }\item[{const uint8\+\_\+t}]{sgs\+\_\+cause }\end{DoxyParamCaption})}



References \textbf{ gsm29118\+\_\+msgb\+\_\+alloc()}, \textbf{ msg}, \textbf{ msgb\+\_\+push\+\_\+u8()}, \textbf{ msgb\+\_\+sgsap\+\_\+imsi\+\_\+put()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ SGSAP\+\_\+\+IE\+\_\+\+SGS\+\_\+\+CAUSE}, and \textbf{ SGSAP\+\_\+\+MSGT\+\_\+\+RELEASE\+\_\+\+REQ}.

\mbox{\label{gsm29118_8c_ae43f78ae98f90cc8b397039138e22562}} 
\index{gsm29118.c@{gsm29118.c}!gsm29118\_create\_reset\_ack@{gsm29118\_create\_reset\_ack}}
\index{gsm29118\_create\_reset\_ack@{gsm29118\_create\_reset\_ack}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{gsm29118\_create\_reset\_ack()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm29118\+\_\+create\+\_\+reset\+\_\+ack (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm29118\+\_\+reset\+\_\+msg} $\ast$}]{params }\end{DoxyParamCaption})}



References \textbf{ gsm29118\+\_\+msgb\+\_\+alloc()}, \textbf{ msg}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+push\+\_\+u8()}, \textbf{ msgb\+\_\+sgsap\+\_\+name\+\_\+put()}, \textbf{ params}, \textbf{ SGSAP\+\_\+\+IE\+\_\+\+MME\+\_\+\+NAME}, \textbf{ SGSAP\+\_\+\+IE\+\_\+\+VLR\+\_\+\+NAME}, and \textbf{ SGSAP\+\_\+\+MSGT\+\_\+\+RESET\+\_\+\+ACK}.

\mbox{\label{gsm29118_8c_a829e9a032d7d7fffe728163a135ddf3b}} 
\index{gsm29118.c@{gsm29118.c}!gsm29118\_create\_reset\_ind@{gsm29118\_create\_reset\_ind}}
\index{gsm29118\_create\_reset\_ind@{gsm29118\_create\_reset\_ind}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{gsm29118\_create\_reset\_ind()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm29118\+\_\+create\+\_\+reset\+\_\+ind (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm29118\+\_\+reset\+\_\+msg} $\ast$}]{params }\end{DoxyParamCaption})}



References \textbf{ gsm29118\+\_\+msgb\+\_\+alloc()}, \textbf{ msg}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+push\+\_\+u8()}, \textbf{ msgb\+\_\+sgsap\+\_\+name\+\_\+put()}, \textbf{ params}, \textbf{ SGSAP\+\_\+\+IE\+\_\+\+MME\+\_\+\+NAME}, \textbf{ SGSAP\+\_\+\+IE\+\_\+\+VLR\+\_\+\+NAME}, and \textbf{ SGSAP\+\_\+\+MSGT\+\_\+\+RESET\+\_\+\+IND}.

\mbox{\label{gsm29118_8c_aecafeef2bea5cdd2448047f78bd1b899}} 
\index{gsm29118.c@{gsm29118.c}!gsm29118\_create\_service\_abort\_req@{gsm29118\_create\_service\_abort\_req}}
\index{gsm29118\_create\_service\_abort\_req@{gsm29118\_create\_service\_abort\_req}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{gsm29118\_create\_service\_abort\_req()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm29118\+\_\+create\+\_\+service\+\_\+abort\+\_\+req (\begin{DoxyParamCaption}\item[{const char $\ast$}]{imsi }\end{DoxyParamCaption})}



References \textbf{ create\+\_\+simple\+\_\+msg()}, and \textbf{ SGSAP\+\_\+\+MSGT\+\_\+\+SERVICE\+\_\+\+ABORT\+\_\+\+REQ}.

\mbox{\label{gsm29118_8c_ae854d36f43ce62f58fdd0bd5130b5dac}} 
\index{gsm29118.c@{gsm29118.c}!gsm29118\_create\_status@{gsm29118\_create\_status}}
\index{gsm29118\_create\_status@{gsm29118\_create\_status}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{gsm29118\_create\_status()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm29118\+\_\+create\+\_\+status (\begin{DoxyParamCaption}\item[{const char $\ast$}]{imsi,  }\item[{enum \textbf{ sgsap\+\_\+sgs\+\_\+cause}}]{cause,  }\item[{const struct \textbf{ msgb} $\ast$}]{err\+\_\+msg }\end{DoxyParamCaption})}



References \textbf{ cause}, \textbf{ gsm29118\+\_\+msgb\+\_\+alloc()}, \textbf{ msg}, \textbf{ msgb\+\_\+l2}, \textbf{ msgb\+\_\+l2len()}, \textbf{ msgb\+\_\+push\+\_\+u8()}, \textbf{ msgb\+\_\+sgsap\+\_\+imsi\+\_\+put()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ SGSAP\+\_\+\+IE\+\_\+\+ERR\+\_\+\+MSG}, \textbf{ SGSAP\+\_\+\+IE\+\_\+\+SGS\+\_\+\+CAUSE}, and \textbf{ SGSAP\+\_\+\+MSGT\+\_\+\+STATUS}.

\mbox{\label{gsm29118_8c_a3962ec97e150a541ec99974928b3878d}} 
\index{gsm29118.c@{gsm29118.c}!gsm29118\_msgb\_alloc@{gsm29118\_msgb\_alloc}}
\index{gsm29118\_msgb\_alloc@{gsm29118\_msgb\_alloc}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{gsm29118\_msgb\_alloc()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm29118\+\_\+msgb\+\_\+alloc (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



References \textbf{ msgb\+\_\+alloc\+\_\+headroom()}.



Referenced by \textbf{ create\+\_\+simple\+\_\+msg()}, \textbf{ gsm29118\+\_\+create\+\_\+dl\+\_\+ud()}, \textbf{ gsm29118\+\_\+create\+\_\+lu\+\_\+ack()}, \textbf{ gsm29118\+\_\+create\+\_\+lu\+\_\+rej()}, \textbf{ gsm29118\+\_\+create\+\_\+mm\+\_\+info\+\_\+req()}, \textbf{ gsm29118\+\_\+create\+\_\+paging\+\_\+req()}, \textbf{ gsm29118\+\_\+create\+\_\+release\+\_\+req()}, \textbf{ gsm29118\+\_\+create\+\_\+reset\+\_\+ack()}, \textbf{ gsm29118\+\_\+create\+\_\+reset\+\_\+ind()}, and \textbf{ gsm29118\+\_\+create\+\_\+status()}.

\mbox{\label{gsm29118_8c_a3a89d4de686e39fa4b29ac2716df833a}} 
\index{gsm29118.c@{gsm29118.c}!msgb\_sgsap\_imsi\_put@{msgb\_sgsap\_imsi\_put}}
\index{msgb\_sgsap\_imsi\_put@{msgb\_sgsap\_imsi\_put}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{msgb\_sgsap\_imsi\_put()}
{\footnotesize\ttfamily static void msgb\+\_\+sgsap\+\_\+imsi\+\_\+put (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const char $\ast$}]{imsi }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ gsm48\+\_\+generate\+\_\+mid\+\_\+from\+\_\+imsi()}, \textbf{ len}, \textbf{ msg}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, and \textbf{ SGSAP\+\_\+\+IE\+\_\+\+IMSI}.



Referenced by \textbf{ create\+\_\+simple\+\_\+msg()}, \textbf{ gsm29118\+\_\+create\+\_\+dl\+\_\+ud()}, \textbf{ gsm29118\+\_\+create\+\_\+lu\+\_\+ack()}, \textbf{ gsm29118\+\_\+create\+\_\+lu\+\_\+rej()}, \textbf{ gsm29118\+\_\+create\+\_\+mm\+\_\+info\+\_\+req()}, \textbf{ gsm29118\+\_\+create\+\_\+paging\+\_\+req()}, \textbf{ gsm29118\+\_\+create\+\_\+release\+\_\+req()}, and \textbf{ gsm29118\+\_\+create\+\_\+status()}.

\mbox{\label{gsm29118_8c_a39f44c947d3eb4a739374fa0db0a4402}} 
\index{gsm29118.c@{gsm29118.c}!msgb\_sgsap\_lai\_put@{msgb\_sgsap\_lai\_put}}
\index{msgb\_sgsap\_lai\_put@{msgb\_sgsap\_lai\_put}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{msgb\_sgsap\_lai\_put()}
{\footnotesize\ttfamily static void msgb\+\_\+sgsap\+\_\+lai\+\_\+put (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const struct \textbf{ osmo\+\_\+location\+\_\+area\+\_\+id} $\ast$}]{lai }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ gsm48\+\_\+generate\+\_\+lai2()}, \textbf{ lai}, \textbf{ msg}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, and \textbf{ SGSAP\+\_\+\+IE\+\_\+\+LAI}.



Referenced by \textbf{ gsm29118\+\_\+create\+\_\+lu\+\_\+ack()}, \textbf{ gsm29118\+\_\+create\+\_\+lu\+\_\+rej()}, and \textbf{ gsm29118\+\_\+create\+\_\+paging\+\_\+req()}.

\mbox{\label{gsm29118_8c_ae7982194beacd82a6dad185d89fc87ca}} 
\index{gsm29118.c@{gsm29118.c}!msgb\_sgsap\_name\_put@{msgb\_sgsap\_name\_put}}
\index{msgb\_sgsap\_name\_put@{msgb\_sgsap\_name\_put}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{msgb\_sgsap\_name\_put()}
{\footnotesize\ttfamily static int msgb\+\_\+sgsap\+\_\+name\+\_\+put (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{enum \textbf{ sgsap\+\_\+iei}}]{iei,  }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ APN\+\_\+\+MAXLEN}, \textbf{ iei}, \textbf{ len}, \textbf{ msg}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ name}, \textbf{ osmo\+\_\+apn\+\_\+from\+\_\+str()}, \textbf{ SGS\+\_\+\+MME\+\_\+\+NAME\+\_\+\+LEN}, and \textbf{ SGSAP\+\_\+\+IE\+\_\+\+MME\+\_\+\+NAME}.



Referenced by \textbf{ gsm29118\+\_\+create\+\_\+paging\+\_\+req()}, \textbf{ gsm29118\+\_\+create\+\_\+reset\+\_\+ack()}, and \textbf{ gsm29118\+\_\+create\+\_\+reset\+\_\+ind()}.



\doxysubsection{Variable Documentation}
\mbox{\label{gsm29118_8c_af106c3740145dc5e48f259e9b1c58859}} 
\index{gsm29118.c@{gsm29118.c}!sgsap\_eps\_lu\_type\_names@{sgsap\_eps\_lu\_type\_names}}
\index{sgsap\_eps\_lu\_type\_names@{sgsap\_eps\_lu\_type\_names}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{sgsap\_eps\_lu\_type\_names}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} sgsap\+\_\+eps\+\_\+lu\+\_\+type\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ SGSAP\_EPS\_LUT\_IMSI\_ATTACH,   \textcolor{stringliteral}{"{}IMSI Attach"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_EPS\_LUT\_NORMAL,             \textcolor{stringliteral}{"{}Normal"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ sgsap\+\_\+eps\+\_\+lu\+\_\+type\+\_\+name()}.

\mbox{\label{gsm29118_8c_af0b0f94e3aba443dbe03c8c5ad42d769}} 
\index{gsm29118.c@{gsm29118.c}!sgsap\_ie\_tlvdef@{sgsap\_ie\_tlvdef}}
\index{sgsap\_ie\_tlvdef@{sgsap\_ie\_tlvdef}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{sgsap\_ie\_tlvdef}
{\footnotesize\ttfamily const struct \textbf{ tlv\+\_\+definition} sgsap\+\_\+ie\+\_\+tlvdef}

\mbox{\label{gsm29118_8c_ac98f2c8a6e431097e8a8937f781a4d60}} 
\index{gsm29118.c@{gsm29118.c}!sgsap\_iei\_names@{sgsap\_iei\_names}}
\index{sgsap\_iei\_names@{sgsap\_iei\_names}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{sgsap\_iei\_names}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} sgsap\+\_\+iei\+\_\+names[$\,$]}



Referenced by \textbf{ sgsap\+\_\+iei\+\_\+name()}.

\mbox{\label{gsm29118_8c_a49ad18c1e83045e211a36129accf2176}} 
\index{gsm29118.c@{gsm29118.c}!sgsap\_ismi\_det\_eps\_type\_names@{sgsap\_ismi\_det\_eps\_type\_names}}
\index{sgsap\_ismi\_det\_eps\_type\_names@{sgsap\_ismi\_det\_eps\_type\_names}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{sgsap\_ismi\_det\_eps\_type\_names}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} sgsap\+\_\+ismi\+\_\+det\+\_\+eps\+\_\+type\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ SGSAP\_ID\_EPS\_T\_NETWORK\_INITIATED,     \textcolor{stringliteral}{"{}Network initiated IMSI detach from EPS"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_ID\_EPS\_T\_UE\_INITIATED,               \textcolor{stringliteral}{"{}UE initiated IMSI detach from EPS"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_ID\_EPS\_T\_EPS\_NOT\_ALLOWED, \textcolor{stringliteral}{"{}EPS not allowed"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ sgsap\+\_\+imsi\+\_\+det\+\_\+eps\+\_\+type\+\_\+name()}.

\mbox{\label{gsm29118_8c_a7b474868b911233d7b4a8f5891900f5b}} 
\index{gsm29118.c@{gsm29118.c}!sgsap\_ismi\_det\_noneps\_type\_names@{sgsap\_ismi\_det\_noneps\_type\_names}}
\index{sgsap\_ismi\_det\_noneps\_type\_names@{sgsap\_ismi\_det\_noneps\_type\_names}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{sgsap\_ismi\_det\_noneps\_type\_names}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} sgsap\+\_\+ismi\+\_\+det\+\_\+noneps\+\_\+type\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ SGSAP\_ID\_NONEPS\_T\_EXPLICIT\_UE\_NONEPS,}
\DoxyCodeLine{          \textcolor{stringliteral}{"{}Explicit UE initiated IMSI detach from non-\/EPS"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_ID\_NONEPS\_T\_COMBINED\_UE\_EPS\_NONEPS,}
\DoxyCodeLine{          \textcolor{stringliteral}{"{}Combined UE initiated IMSI detach from EPS and non-\/EPS"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_ID\_NONEPS\_T\_IMPLICIT\_UE\_EPS\_NONEPS,}
\DoxyCodeLine{          \textcolor{stringliteral}{"{}Implicit network initiated IMSI detach from EPS and non-\/EPS"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ sgsap\+\_\+imsi\+\_\+det\+\_\+noneps\+\_\+type\+\_\+name()}.

\mbox{\label{gsm29118_8c_ae53434dd35729adac3e5c47043529475}} 
\index{gsm29118.c@{gsm29118.c}!sgsap\_msg\_type\_names@{sgsap\_msg\_type\_names}}
\index{sgsap\_msg\_type\_names@{sgsap\_msg\_type\_names}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{sgsap\_msg\_type\_names}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} sgsap\+\_\+msg\+\_\+type\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ SGSAP\_MSGT\_PAGING\_REQ,   \textcolor{stringliteral}{"{}PAGING-\/REQUEST"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_MSGT\_PAGING\_REJ,   \textcolor{stringliteral}{"{}PAGING-\/REJECT"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_MSGT\_SERVICE\_REQ, \textcolor{stringliteral}{"{}SERVICE-\/REQUEST"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_MSGT\_DL\_UD,             \textcolor{stringliteral}{"{}DOWNLINK-\/UNITDATA"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_MSGT\_UL\_UD,             \textcolor{stringliteral}{"{}UPLINK-\/UNITDATA"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_MSGT\_LOC\_UPD\_REQ, \textcolor{stringliteral}{"{}LOCATION-\/UPDATE-\/REQUEST"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_MSGT\_LOC\_UPD\_ACK, \textcolor{stringliteral}{"{}LOCATION-\/UPDATE-\/ACCEPT"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_MSGT\_LOC\_UPD\_REJ, \textcolor{stringliteral}{"{}LOCATION-\/UPDATE-\/REJECT"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_MSGT\_TMSI\_REALL\_CMPL, \textcolor{stringliteral}{"{}TMSI-\/REALLOCATION-\/COMPLETE"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_MSGT\_ALERT\_REQ,             \textcolor{stringliteral}{"{}ALERT-\/REQQUEST"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_MSGT\_ALERT\_ACK,             \textcolor{stringliteral}{"{}ALERT-\/ACK"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_MSGT\_ALERT\_REJ,             \textcolor{stringliteral}{"{}ALERT-\/REJECT"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_MSGT\_UE\_ACT\_IND,   \textcolor{stringliteral}{"{}UE-\/ACTIVITY-\/INDICATION"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_MSGT\_EPS\_DET\_IND, \textcolor{stringliteral}{"{}EPS-\/DETACH-\/INDICATION"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_MSGT\_EPS\_DET\_ACK, \textcolor{stringliteral}{"{}EPS-\/DETACH-\/ACK"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_MSGT\_IMSI\_DET\_IND,       \textcolor{stringliteral}{"{}IMSI-\/DETACH-\/INDICATION"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_MSGT\_IMSI\_DET\_ACK,       \textcolor{stringliteral}{"{}IMSI-\/DETACH-\/ACK"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_MSGT\_RESET\_IND,             \textcolor{stringliteral}{"{}RESET-\/INDICATION"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_MSGT\_RESET\_ACK,             \textcolor{stringliteral}{"{}RESET-\/ACK"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_MSGT\_SERVICE\_ABORT\_REQ,     \textcolor{stringliteral}{"{}SERVICE-\/ABORT-\/REQUEST"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_MSGT\_MO\_CSFB\_IND, \textcolor{stringliteral}{"{}MO-\/CSFB-\/INDICATION"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_MSGT\_MM\_INFO\_REQ, \textcolor{stringliteral}{"{}MM-\/INFO-\/REQUEST"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_MSGT\_RELEASE\_REQ, \textcolor{stringliteral}{"{}RELEASE-\/REQUEST"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_MSGT\_STATUS,           \textcolor{stringliteral}{"{}STATUS"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_MSGT\_UE\_UNREACHABLE,   \textcolor{stringliteral}{"{}UE-\/UNREACHABLE"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ sgsap\+\_\+msg\+\_\+type\+\_\+name()}.

\mbox{\label{gsm29118_8c_a0af4136fb51c97968147108350fc1808}} 
\index{gsm29118.c@{gsm29118.c}!sgsap\_service\_ind\_names@{sgsap\_service\_ind\_names}}
\index{sgsap\_service\_ind\_names@{sgsap\_service\_ind\_names}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{sgsap\_service\_ind\_names}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} sgsap\+\_\+service\+\_\+ind\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ SGSAP\_SERV\_IND\_CS\_CALL, \textcolor{stringliteral}{"{}CS Call"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_SERV\_IND\_SMS,         \textcolor{stringliteral}{"{}SMS"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ sgsap\+\_\+service\+\_\+ind\+\_\+name()}.

\mbox{\label{gsm29118_8c_aa6365e66dd9953086fc8846eff0ea97d}} 
\index{gsm29118.c@{gsm29118.c}!sgsap\_sgs\_cause\_names@{sgsap\_sgs\_cause\_names}}
\index{sgsap\_sgs\_cause\_names@{sgsap\_sgs\_cause\_names}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{sgsap\_sgs\_cause\_names}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} sgsap\+\_\+sgs\+\_\+cause\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ SGSAP\_SGS\_CAUSE\_IMSI\_DET\_EPS,             \textcolor{stringliteral}{"{}IMSI detached for EPS"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_SGS\_CAUSE\_IMSI\_DET\_EPS\_NONEPS,       \textcolor{stringliteral}{"{}IMSI detached for EPS and non-\/EPS"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_SGS\_CAUSE\_IMSI\_UNKNOWN,             \textcolor{stringliteral}{"{}IMSI unknown"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_SGS\_CAUSE\_IMSI\_DET\_NON\_EPS,     \textcolor{stringliteral}{"{}IMSI detached for non-\/EPS"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_SGS\_CAUSE\_IMSI\_IMPL\_DET\_NON\_EPS,\textcolor{stringliteral}{"{}IMSI implicitly detached for non-\/EPS"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_SGS\_CAUSE\_UE\_UNREACHABLE, \textcolor{stringliteral}{"{}UE unreachable"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_SGS\_CAUSE\_MSG\_INCOMP\_STATE,     \textcolor{stringliteral}{"{}Message not compatible with protocol state"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_SGS\_CAUSE\_MISSING\_MAND\_IE,       \textcolor{stringliteral}{"{}Missing mandatory IE"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_SGS\_CAUSE\_INVALID\_MAND\_IE,       \textcolor{stringliteral}{"{}Invalid mandatory IE"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_SGS\_CAUSE\_COND\_IE\_ERROR,   \textcolor{stringliteral}{"{}Conditional IE error"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_SGS\_CAUSE\_SEMANT\_INCORR\_MSG,   \textcolor{stringliteral}{"{}Semantically incorrect message"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_SGS\_CAUSE\_MSG\_UNKNOWN,               \textcolor{stringliteral}{"{}Message unknown"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_SGS\_CAUSE\_MT\_CSFB\_REJ\_USER,     \textcolor{stringliteral}{"{}MT CSFB call rejected by user"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_SGS\_CAUSE\_UE\_TEMP\_UNREACHABLE,       \textcolor{stringliteral}{"{}UE temporarily unreachable"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ sgsap\+\_\+sgs\+\_\+cause\+\_\+name()}.

\mbox{\label{gsm29118_8c_a06e3f35a6c76a1c78a9bafcbb7e83228}} 
\index{gsm29118.c@{gsm29118.c}!sgsap\_ue\_emm\_mode\_names@{sgsap\_ue\_emm\_mode\_names}}
\index{sgsap\_ue\_emm\_mode\_names@{sgsap\_ue\_emm\_mode\_names}!gsm29118.c@{gsm29118.c}}
\doxysubsubsection{sgsap\_ue\_emm\_mode\_names}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} sgsap\+\_\+ue\+\_\+emm\+\_\+mode\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ SGSAP\_UE\_EMM\_MODE\_IDLE,                 \textcolor{stringliteral}{"{}EMM-\/IDLE"{}} \},}
\DoxyCodeLine{        \{ SGSAP\_UE\_EMM\_MODE\_CONNECTED,               \textcolor{stringliteral}{"{}EMM-\/CONNECTED"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ sgsap\+\_\+ue\+\_\+emm\+\_\+mode\+\_\+name()}.

