\doxysection{Generic Subscriber Update Protocol}
\label{group__gsup}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}


The Generic Subscriber Update Protocol (GSUP) is an Osmocom-\/specific non-\/standard protocol replacing MAP as the protocol between MSC/\+VLR/\+SGSN and HLR in a 3GPP cellular communications network.  


\doxysubsection*{Files}
\begin{DoxyCompactItemize}
\item 
file \textbf{ gsup.\+h}
\begin{DoxyCompactList}\small\item\em Osmocom Generic Subscriber Update Protocol message encoder/decoder. \end{DoxyCompactList}\item 
file \textbf{ gsup\+\_\+sms.\+h}
\begin{DoxyCompactList}\small\item\em SMS (Short Message Service) extensions for Osmocom GSUP. \end{DoxyCompactList}\item 
file \textbf{ gsup.\+c}
\begin{DoxyCompactList}\small\item\em Osmocom Generic Subscriber Update Protocol. \end{DoxyCompactList}\item 
file \textbf{ gsup\+\_\+sms.\+c}
\begin{DoxyCompactList}\small\item\em SMS (Short Message Service) extensions for Osmocom GSUP. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info}
\begin{DoxyCompactList}\small\item\em parsed/decoded PDP context information \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+gsup\+\_\+an\+\_\+apdu}
\begin{DoxyCompactList}\small\item\em Access\+Network\+Signal\+Info as in 3GPP TS 29.\+002. \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+gsup\+\_\+message}
\begin{DoxyCompactList}\small\item\em parsed/decoded GSUP protocol message \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+PORT}~4222
\item 
\#define \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MAX\+\_\+\+NUM\+\_\+\+PDP\+\_\+\+INFO}~10 /$\ast$ GSM 09.\+02 limits this to 50 $\ast$/
\begin{DoxyCompactList}\small\item\em Maximum nubmer of PDP inside \doxyref{osmo\+\_\+gsup\+\_\+message}{p.}{structosmo__gsup__message}. \end{DoxyCompactList}\item 
\#define \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MAX\+\_\+\+NUM\+\_\+\+AUTH\+\_\+\+INFO}~5
\begin{DoxyCompactList}\small\item\em Maximum number of auth info inside \doxyref{osmo\+\_\+gsup\+\_\+message}{p.}{structosmo__gsup__message}. \end{DoxyCompactList}\item 
\#define \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MAX\+\_\+\+MSISDN\+\_\+\+LEN}~9
\begin{DoxyCompactList}\small\item\em Maximum number of octets encoding MSISDN in BCD format. \end{DoxyCompactList}\item 
\#define \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MAX\+\_\+\+CALLED\+\_\+\+PARTY\+\_\+\+BCD\+\_\+\+LEN}~43 /$\ast$ TS 24.\+008 10.\+5.\+4.\+7 $\ast$/
\item 
\#define \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MAX\+\_\+\+PCO\+\_\+\+LEN}~251
\item 
\#define \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+ROUTING\+\_\+\+ERROR}~\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+ROUTING\+\_\+\+ERROR}
\item 
\#define \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+IS\+\_\+\+MSGT\+\_\+\+REQUEST}(msgt)~(((msgt) \& 0b00000011) == 0b00)
\item 
\#define \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+IS\+\_\+\+MSGT\+\_\+\+ERROR}(msgt)~(((msgt) \& 0b00000011) == 0b01)
\item 
\#define \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+IS\+\_\+\+MSGT\+\_\+\+RESULT}(msgt)~(((msgt) \& 0b00000011) == 0b10)
\item 
\#define \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+TO\+\_\+\+MSGT\+\_\+\+REQUEST}(msgt)~(((msgt) \& 0b11111100))
\item 
\#define \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+TO\+\_\+\+MSGT\+\_\+\+ERROR}(msgt)~(((msgt) \& 0b11111100) $\vert$ 0b01)
\item 
\#define \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+TO\+\_\+\+MSGT\+\_\+\+RESULT}(msgt)~(((msgt) \& 0b11111100) $\vert$ 0b10)
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \textbf{ osmo\+\_\+gsup\+\_\+iei} \{ \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+IMSI\+\_\+\+IE} = 0x01
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CAUSE\+\_\+\+IE} = 0x02
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+AUTH\+\_\+\+TUPLE\+\_\+\+IE} = 0x03
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+PDP\+\_\+\+INFO\+\_\+\+COMPL\+\_\+\+IE} = 0x04
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+PDP\+\_\+\+INFO\+\_\+\+IE} = 0x05
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CANCEL\+\_\+\+TYPE\+\_\+\+IE} = 0x06
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+FREEZE\+\_\+\+PTMSI\+\_\+\+IE} = 0x07
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSISDN\+\_\+\+IE} = 0x08
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+HLR\+\_\+\+NUMBER\+\_\+\+IE} = 0x09
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MESSAGE\+\_\+\+CLASS\+\_\+\+IE} = 0x0a
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+PDP\+\_\+\+CONTEXT\+\_\+\+ID\+\_\+\+IE} = 0x10
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+PDP\+\_\+\+ADDRESS\+\_\+\+IE} = 0x11
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+ACCESS\+\_\+\+POINT\+\_\+\+NAME\+\_\+\+IE} = 0x12
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+PDP\+\_\+\+QOS\+\_\+\+IE} = 0x13
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CHARG\+\_\+\+CHAR\+\_\+\+IE} = 0x14
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+PCO\+\_\+\+IE} = 0x15
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+RAND\+\_\+\+IE} = 0x20
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SRES\+\_\+\+IE} = 0x21
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+KC\+\_\+\+IE} = 0x22
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+IK\+\_\+\+IE} = 0x23
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CK\+\_\+\+IE} = 0x24
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+AUTN\+\_\+\+IE} = 0x25
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+AUTS\+\_\+\+IE} = 0x26
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+RES\+\_\+\+IE} = 0x27
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CN\+\_\+\+DOMAIN\+\_\+\+IE} = 0x28
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SUPPORTED\+\_\+\+RAT\+\_\+\+TYPES\+\_\+\+IE} = 0x29
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CURRENT\+\_\+\+RAT\+\_\+\+TYPE\+\_\+\+IE} = 0x2a
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SESSION\+\_\+\+ID\+\_\+\+IE} = 0x30
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SESSION\+\_\+\+STATE\+\_\+\+IE} = 0x31
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SS\+\_\+\+INFO\+\_\+\+IE} = 0x35
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+RP\+\_\+\+MR\+\_\+\+IE} = 0x40
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+RP\+\_\+\+DA\+\_\+\+IE} = 0x41
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+RP\+\_\+\+OA\+\_\+\+IE} = 0x42
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+RP\+\_\+\+UI\+\_\+\+IE} = 0x43
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+RP\+\_\+\+CAUSE\+\_\+\+IE} = 0x44
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+RP\+\_\+\+MMS\+\_\+\+IE} = 0x45
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+ALERT\+\_\+\+RSN\+\_\+\+IE} = 0x46
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+IMEI\+\_\+\+IE} = 0x50
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+IMEI\+\_\+\+RESULT\+\_\+\+IE} = 0x51
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+NUM\+\_\+\+VECTORS\+\_\+\+REQ\+\_\+\+IE} = 0x52
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SOURCE\+\_\+\+NAME\+\_\+\+IE} = 0x60
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+DESTINATION\+\_\+\+NAME\+\_\+\+IE} = 0x61
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+AN\+\_\+\+APDU\+\_\+\+IE} = 0x62
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CAUSE\+\_\+\+RR\+\_\+\+IE} = 0x63
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CAUSE\+\_\+\+BSSAP\+\_\+\+IE} = 0x64
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CAUSE\+\_\+\+SM\+\_\+\+IE} = 0x65
, \newline
\textbf{ \+\_\+\+OSMO\+\_\+\+GSUP\+\_\+\+IEI\+\_\+\+END\+\_\+\+MARKER}
 \}
\begin{DoxyCompactList}\small\item\em Information Element Identifiers for GSUP IEs. \end{DoxyCompactList}\item 
enum \textbf{ osmo\+\_\+gsup\+\_\+message\+\_\+type} \{ \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+UPDATE\+\_\+\+LOCATION\+\_\+\+REQUEST} = 0b00000100
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+UPDATE\+\_\+\+LOCATION\+\_\+\+ERROR} = 0b00000101
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+UPDATE\+\_\+\+LOCATION\+\_\+\+RESULT} = 0b00000110
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+SEND\+\_\+\+AUTH\+\_\+\+INFO\+\_\+\+REQUEST} = 0b00001000
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+SEND\+\_\+\+AUTH\+\_\+\+INFO\+\_\+\+ERROR} = 0b00001001
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+SEND\+\_\+\+AUTH\+\_\+\+INFO\+\_\+\+RESULT} = 0b00001010
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+AUTH\+\_\+\+FAIL\+\_\+\+REPORT} = 0b00001011
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+PURGE\+\_\+\+MS\+\_\+\+REQUEST} = 0b00001100
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+PURGE\+\_\+\+MS\+\_\+\+ERROR} = 0b00001101
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+PURGE\+\_\+\+MS\+\_\+\+RESULT} = 0b00001110
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+INSERT\+\_\+\+DATA\+\_\+\+REQUEST} = 0b00010000
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+INSERT\+\_\+\+DATA\+\_\+\+ERROR} = 0b00010001
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+INSERT\+\_\+\+DATA\+\_\+\+RESULT} = 0b00010010
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+DELETE\+\_\+\+DATA\+\_\+\+REQUEST} = 0b00010100
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+DELETE\+\_\+\+DATA\+\_\+\+ERROR} = 0b00010101
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+DELETE\+\_\+\+DATA\+\_\+\+RESULT} = 0b00010110
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+LOCATION\+\_\+\+CANCEL\+\_\+\+REQUEST} = 0b00011100
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+LOCATION\+\_\+\+CANCEL\+\_\+\+ERROR} = 0b00011101
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+LOCATION\+\_\+\+CANCEL\+\_\+\+RESULT} = 0b00011110
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+PROC\+\_\+\+SS\+\_\+\+REQUEST} = 0b00100000
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+PROC\+\_\+\+SS\+\_\+\+ERROR} = 0b00100001
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+PROC\+\_\+\+SS\+\_\+\+RESULT} = 0b00100010
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+MO\+\_\+\+FORWARD\+\_\+\+SM\+\_\+\+REQUEST} = 0b00100100
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+MO\+\_\+\+FORWARD\+\_\+\+SM\+\_\+\+ERROR} = 0b00100101
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+MO\+\_\+\+FORWARD\+\_\+\+SM\+\_\+\+RESULT} = 0b00100110
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+MT\+\_\+\+FORWARD\+\_\+\+SM\+\_\+\+REQUEST} = 0b00101000
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+MT\+\_\+\+FORWARD\+\_\+\+SM\+\_\+\+ERROR} = 0b00101001
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+MT\+\_\+\+FORWARD\+\_\+\+SM\+\_\+\+RESULT} = 0b00101010
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+READY\+\_\+\+FOR\+\_\+\+SM\+\_\+\+REQUEST} = 0b00101100
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+READY\+\_\+\+FOR\+\_\+\+SM\+\_\+\+ERROR} = 0b00101101
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+READY\+\_\+\+FOR\+\_\+\+SM\+\_\+\+RESULT} = 0b00101110
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+CHECK\+\_\+\+IMEI\+\_\+\+REQUEST} = 0b00110000
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+CHECK\+\_\+\+IMEI\+\_\+\+ERROR} = 0b00110001
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+CHECK\+\_\+\+IMEI\+\_\+\+RESULT} = 0b00110010
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+PREPARE\+\_\+\+HANDOVER\+\_\+\+REQUEST} = 0b00110100
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+PREPARE\+\_\+\+HANDOVER\+\_\+\+ERROR} = 0b00110101
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+PREPARE\+\_\+\+HANDOVER\+\_\+\+RESULT} = 0b00110110
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+PREPARE\+\_\+\+SUBSEQUENT\+\_\+\+HANDOVER\+\_\+\+REQUEST} = 0b00111000
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+PREPARE\+\_\+\+SUBSEQUENT\+\_\+\+HANDOVER\+\_\+\+ERROR} = 0b00111001
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+PREPARE\+\_\+\+SUBSEQUENT\+\_\+\+HANDOVER\+\_\+\+RESULT} = 0b00111010
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+SEND\+\_\+\+END\+\_\+\+SIGNAL\+\_\+\+REQUEST} = 0b00111100
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+SEND\+\_\+\+END\+\_\+\+SIGNAL\+\_\+\+ERROR} = 0b00111101
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+SEND\+\_\+\+END\+\_\+\+SIGNAL\+\_\+\+RESULT} = 0b00111110
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+PROCESS\+\_\+\+ACCESS\+\_\+\+SIGNALLING\+\_\+\+REQUEST} = 0b01000000
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+FORWARD\+\_\+\+ACCESS\+\_\+\+SIGNALLING\+\_\+\+REQUEST} = 0b01000100
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+CLOSE} = 0b01000111
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+ABORT} = 0b01001011
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+ROUTING\+\_\+\+ERROR} = 0b01001110
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+EPDG\+\_\+\+TUNNEL\+\_\+\+REQUEST} = 0b01010000
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+EPDG\+\_\+\+TUNNEL\+\_\+\+ERROR} = 0b01010001
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+EPDG\+\_\+\+TUNNEL\+\_\+\+RESULT} = 0b01010010
 \}
\begin{DoxyCompactList}\small\item\em GSUP message type Make sure that new messages follow this scheme\+:\end{DoxyCompactList}\item 
enum \textbf{ osmo\+\_\+gsup\+\_\+cancel\+\_\+type} \{ \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CANCEL\+\_\+\+TYPE\+\_\+\+UPDATE} = 1
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CANCEL\+\_\+\+TYPE\+\_\+\+WITHDRAW} = 2
 \}
\item 
enum \textbf{ osmo\+\_\+gsup\+\_\+cn\+\_\+domain} \{ \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CN\+\_\+\+DOMAIN\+\_\+\+PS} = 1
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CN\+\_\+\+DOMAIN\+\_\+\+CS} = 2
 \}
\item 
enum \textbf{ osmo\+\_\+gsup\+\_\+imei\+\_\+result} \{ \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+IMEI\+\_\+\+RESULT\+\_\+\+ACK} = 1
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+IMEI\+\_\+\+RESULT\+\_\+\+NACK} = 2
 \}
\item 
enum \textbf{ osmo\+\_\+gsup\+\_\+access\+\_\+network\+\_\+protocol} \{ \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+ACCESS\+\_\+\+NETWORK\+\_\+\+PROTOCOL\+\_\+\+TS3\+G\+\_\+48006} = 1
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+ACCESS\+\_\+\+NETWORK\+\_\+\+PROTOCOL\+\_\+\+TS3\+G\+\_\+25413} = 2
 \}
\item 
enum \textbf{ osmo\+\_\+gsup\+\_\+session\+\_\+state} \{ \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SESSION\+\_\+\+STATE\+\_\+\+NONE} = 0x00
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SESSION\+\_\+\+STATE\+\_\+\+BEGIN} = 0x01
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SESSION\+\_\+\+STATE\+\_\+\+CONTINUE} = 0x02
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SESSION\+\_\+\+STATE\+\_\+\+END} = 0x03
 \}
\begin{DoxyCompactList}\small\item\em TCAP-\/like session state. \end{DoxyCompactList}\item 
enum \textbf{ osmo\+\_\+gsup\+\_\+message\+\_\+class} \{ \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MESSAGE\+\_\+\+CLASS\+\_\+\+UNSET} = 0
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MESSAGE\+\_\+\+CLASS\+\_\+\+SUBSCRIBER\+\_\+\+MANAGEMENT} = 1
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MESSAGE\+\_\+\+CLASS\+\_\+\+SMS} = 2
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MESSAGE\+\_\+\+CLASS\+\_\+\+USSD} = 3
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MESSAGE\+\_\+\+CLASS\+\_\+\+INTER\+\_\+\+MSC} = 4
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MESSAGE\+\_\+\+CLASS\+\_\+\+IPSEC\+\_\+\+EPDG} = 5
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MESSAGE\+\_\+\+CLASS\+\_\+\+ARRAYSIZE}
 \}
\item 
enum \textbf{ osmo\+\_\+gsup\+\_\+sms\+\_\+sm\+\_\+rp\+\_\+oda\+\_\+t} \{ \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+NONE} = 0x00
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+IMSI} = 0x01
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+MSISDN} = 0x02
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+SMSC\+\_\+\+ADDR} = 0x03
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+NULL} = 0xff
 \}
\begin{DoxyCompactList}\small\item\em Possible identity types for SM-\/\+RP-\/\{OA$\vert$\+DA\}. \end{DoxyCompactList}\item 
enum \textbf{ osmo\+\_\+gsup\+\_\+sms\+\_\+sm\+\_\+alert\+\_\+rsn\+\_\+t} \{ \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+ALERT\+\_\+\+RSN\+\_\+\+NONE} = 0x00
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+ALERT\+\_\+\+RSN\+\_\+\+MS\+\_\+\+PRESENT} = 0x01
, \newline
\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+ALERT\+\_\+\+RSN\+\_\+\+MEM\+\_\+\+AVAIL} = 0x02
 \}
\begin{DoxyCompactList}\small\item\em Alert reason values, see 7.\+6.\+8.\+8. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
static const char $\ast$ \textbf{ osmo\+\_\+gsup\+\_\+message\+\_\+type\+\_\+name} (enum \textbf{ osmo\+\_\+gsup\+\_\+message\+\_\+type} val)
\item 
static const char $\ast$ \textbf{ osmo\+\_\+gsup\+\_\+session\+\_\+state\+\_\+name} (enum \textbf{ osmo\+\_\+gsup\+\_\+session\+\_\+state} val)
\item 
static const char $\ast$ \textbf{ osmo\+\_\+gsup\+\_\+message\+\_\+class\+\_\+name} (enum \textbf{ osmo\+\_\+gsup\+\_\+message\+\_\+class} val)
\item 
int \textbf{ osmo\+\_\+gsup\+\_\+decode} (const uint8\+\_\+t $\ast$const\+\_\+data, size\+\_\+t data\+\_\+len, struct \textbf{ osmo\+\_\+gsup\+\_\+message} $\ast$gsup\+\_\+msg)
\begin{DoxyCompactList}\small\item\em Decode (parse) a GSUP message. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+gsup\+\_\+encode} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const struct \textbf{ osmo\+\_\+gsup\+\_\+message} $\ast$gsup\+\_\+msg)
\begin{DoxyCompactList}\small\item\em Encode a GSUP message. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+gsup\+\_\+get\+\_\+err\+\_\+msg\+\_\+type} (enum \textbf{ osmo\+\_\+gsup\+\_\+message\+\_\+type} type\+\_\+in)
\begin{DoxyCompactList}\small\item\em return the error message type corresponding to {\itshape type\+\_\+in}. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+gsup\+\_\+sms\+\_\+encode\+\_\+sm\+\_\+rp\+\_\+da} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const struct \textbf{ osmo\+\_\+gsup\+\_\+message} $\ast$gsup\+\_\+msg)
\begin{DoxyCompactList}\small\item\em Encode SM-\/\+RP-\/\+DA IE (see 7.\+6.\+8.\+1), Destination Address. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+gsup\+\_\+sms\+\_\+decode\+\_\+sm\+\_\+rp\+\_\+da} (struct \textbf{ osmo\+\_\+gsup\+\_\+message} $\ast$gsup\+\_\+msg, uint8\+\_\+t $\ast$\textbf{ data}, size\+\_\+t data\+\_\+len)
\begin{DoxyCompactList}\small\item\em Decode SM-\/\+RP-\/\+DA IE (see 7.\+6.\+8.\+1), Destination Address. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+gsup\+\_\+sms\+\_\+encode\+\_\+sm\+\_\+rp\+\_\+oa} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const struct \textbf{ osmo\+\_\+gsup\+\_\+message} $\ast$gsup\+\_\+msg)
\begin{DoxyCompactList}\small\item\em Encode SM-\/\+RP-\/\+OA IE (see 7.\+6.\+8.\+2), Originating Address. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+gsup\+\_\+sms\+\_\+decode\+\_\+sm\+\_\+rp\+\_\+oa} (struct \textbf{ osmo\+\_\+gsup\+\_\+message} $\ast$gsup\+\_\+msg, uint8\+\_\+t $\ast$\textbf{ data}, size\+\_\+t data\+\_\+len)
\begin{DoxyCompactList}\small\item\em Decode SM-\/\+RP-\/\+OA IE (see 7.\+6.\+8.\+2), Originating Address. \end{DoxyCompactList}\item 
static int \textbf{ decode\+\_\+pdp\+\_\+address} (const uint8\+\_\+t $\ast$\textbf{ data}, size\+\_\+t data\+\_\+len, struct \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info} $\ast$pdp\+\_\+info)
\item 
static int \textbf{ decode\+\_\+pdp\+\_\+info} (uint8\+\_\+t $\ast$\textbf{ data}, size\+\_\+t data\+\_\+len, struct \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info} $\ast$pdp\+\_\+info)
\item 
static int \textbf{ decode\+\_\+auth\+\_\+info} (uint8\+\_\+t $\ast$\textbf{ data}, size\+\_\+t data\+\_\+len, struct \textbf{ osmo\+\_\+auth\+\_\+vector} $\ast$auth\+\_\+vector)
\item 
int \textbf{ osmo\+\_\+gsup\+\_\+decode\+\_\+an\+\_\+apdu} (struct \textbf{ osmo\+\_\+gsup\+\_\+message} $\ast$gsup\+\_\+msg, const uint8\+\_\+t $\ast$\textbf{ data}, size\+\_\+t data\+\_\+len)
\begin{DoxyCompactList}\small\item\em Decode AN-\/apdu (see 3GPP TS 29.\+002 7.\+6.\+9.\+1). \end{DoxyCompactList}\item 
static void \textbf{ encode\+\_\+pdp\+\_\+info} (struct \textbf{ msgb} $\ast$\textbf{ msg}, enum \textbf{ osmo\+\_\+gsup\+\_\+iei} \textbf{ iei}, const struct \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info} $\ast$pdp\+\_\+info)
\item 
static void \textbf{ encode\+\_\+auth\+\_\+info} (struct \textbf{ msgb} $\ast$\textbf{ msg}, enum \textbf{ osmo\+\_\+gsup\+\_\+iei} \textbf{ iei}, const struct \textbf{ osmo\+\_\+auth\+\_\+vector} $\ast$auth\+\_\+vector)
\item 
int \textbf{ osmo\+\_\+gsup\+\_\+encode\+\_\+an\+\_\+apdu} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const struct \textbf{ osmo\+\_\+gsup\+\_\+message} $\ast$gsup\+\_\+msg)
\begin{DoxyCompactList}\small\item\em Encode AN-\/apdu (see 3GPP TS 29.\+002 7.\+6.\+9.\+1). \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
const struct \textbf{ value\+\_\+string} \textbf{ osmo\+\_\+gsup\+\_\+message\+\_\+type\+\_\+names} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ osmo\+\_\+gsup\+\_\+session\+\_\+state\+\_\+names} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ osmo\+\_\+gsup\+\_\+message\+\_\+class\+\_\+names} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ osmo\+\_\+gsup\+\_\+message\+\_\+type\+\_\+names} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ osmo\+\_\+gsup\+\_\+session\+\_\+state\+\_\+names} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ osmo\+\_\+gsup\+\_\+message\+\_\+class\+\_\+names} [$\,$]
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
The Generic Subscriber Update Protocol (GSUP) is an Osmocom-\/specific non-\/standard protocol replacing MAP as the protocol between MSC/\+VLR/\+SGSN and HLR in a 3GPP cellular communications network. 

This header defines SMS (Short Message Service) extensions for Osmocom GSUP (Generic Subscriber Update Protocol).

It was designed around the same transactions and architecture as the MAP messages/operations, but without the complexity of TCAP and MAP, and without the need for ASN.\+1 encoding.

The purpose is to keep protocol complexity out of Osmo\+SGSN and Osmo\+MSC, while providing a clean path to an external GSUP to MAP translator.

The scope of this module is defined by 3GPP TS 29.\+002, section 12. 

\doxysubsection{Macro Definition Documentation}
\mbox{\label{group__gsup_ga676934d175a0aa76a014b9c8f09a0174}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_IS\_MSGT\_ERROR@{OSMO\_GSUP\_IS\_MSGT\_ERROR}}
\index{OSMO\_GSUP\_IS\_MSGT\_ERROR@{OSMO\_GSUP\_IS\_MSGT\_ERROR}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{OSMO\_GSUP\_IS\_MSGT\_ERROR}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+GSUP\+\_\+\+IS\+\_\+\+MSGT\+\_\+\+ERROR(\begin{DoxyParamCaption}\item[{}]{msgt }\end{DoxyParamCaption})~(((msgt) \& 0b00000011) == 0b01)}

\mbox{\label{group__gsup_ga6d3280d2dde95d734fbabc435a6cb0f3}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_IS\_MSGT\_REQUEST@{OSMO\_GSUP\_IS\_MSGT\_REQUEST}}
\index{OSMO\_GSUP\_IS\_MSGT\_REQUEST@{OSMO\_GSUP\_IS\_MSGT\_REQUEST}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{OSMO\_GSUP\_IS\_MSGT\_REQUEST}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+GSUP\+\_\+\+IS\+\_\+\+MSGT\+\_\+\+REQUEST(\begin{DoxyParamCaption}\item[{}]{msgt }\end{DoxyParamCaption})~(((msgt) \& 0b00000011) == 0b00)}

\mbox{\label{group__gsup_gadebd955a3a25307f46a25624a8ada9cd}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_IS\_MSGT\_RESULT@{OSMO\_GSUP\_IS\_MSGT\_RESULT}}
\index{OSMO\_GSUP\_IS\_MSGT\_RESULT@{OSMO\_GSUP\_IS\_MSGT\_RESULT}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{OSMO\_GSUP\_IS\_MSGT\_RESULT}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+GSUP\+\_\+\+IS\+\_\+\+MSGT\+\_\+\+RESULT(\begin{DoxyParamCaption}\item[{}]{msgt }\end{DoxyParamCaption})~(((msgt) \& 0b00000011) == 0b10)}

\mbox{\label{group__gsup_gaede3d55e9816ea78f58d0eeefe5e6a6a}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MAX\_CALLED\_PARTY\_BCD\_LEN@{OSMO\_GSUP\_MAX\_CALLED\_PARTY\_BCD\_LEN}}
\index{OSMO\_GSUP\_MAX\_CALLED\_PARTY\_BCD\_LEN@{OSMO\_GSUP\_MAX\_CALLED\_PARTY\_BCD\_LEN}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{OSMO\_GSUP\_MAX\_CALLED\_PARTY\_BCD\_LEN}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+GSUP\+\_\+\+MAX\+\_\+\+CALLED\+\_\+\+PARTY\+\_\+\+BCD\+\_\+\+LEN~43 /$\ast$ TS 24.\+008 10.\+5.\+4.\+7 $\ast$/}

\mbox{\label{group__gsup_ga27a67321ebdcf3390467bf16513a59ae}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MAX\_MSISDN\_LEN@{OSMO\_GSUP\_MAX\_MSISDN\_LEN}}
\index{OSMO\_GSUP\_MAX\_MSISDN\_LEN@{OSMO\_GSUP\_MAX\_MSISDN\_LEN}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{OSMO\_GSUP\_MAX\_MSISDN\_LEN}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+GSUP\+\_\+\+MAX\+\_\+\+MSISDN\+\_\+\+LEN~9}



Maximum number of octets encoding MSISDN in BCD format. 

\mbox{\label{group__gsup_ga4b5f1ff75124b806b40d3de8cd68e252}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MAX\_NUM\_AUTH\_INFO@{OSMO\_GSUP\_MAX\_NUM\_AUTH\_INFO}}
\index{OSMO\_GSUP\_MAX\_NUM\_AUTH\_INFO@{OSMO\_GSUP\_MAX\_NUM\_AUTH\_INFO}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{OSMO\_GSUP\_MAX\_NUM\_AUTH\_INFO}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+GSUP\+\_\+\+MAX\+\_\+\+NUM\+\_\+\+AUTH\+\_\+\+INFO~5}



Maximum number of auth info inside \doxyref{osmo\+\_\+gsup\+\_\+message}{p.}{structosmo__gsup__message}. 

\mbox{\label{group__gsup_ga7d2fa5bceea7aa48046229469bd73ec4}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MAX\_NUM\_PDP\_INFO@{OSMO\_GSUP\_MAX\_NUM\_PDP\_INFO}}
\index{OSMO\_GSUP\_MAX\_NUM\_PDP\_INFO@{OSMO\_GSUP\_MAX\_NUM\_PDP\_INFO}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{OSMO\_GSUP\_MAX\_NUM\_PDP\_INFO}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+GSUP\+\_\+\+MAX\+\_\+\+NUM\+\_\+\+PDP\+\_\+\+INFO~10 /$\ast$ GSM 09.\+02 limits this to 50 $\ast$/}



Maximum nubmer of PDP inside \doxyref{osmo\+\_\+gsup\+\_\+message}{p.}{structosmo__gsup__message}. 

\mbox{\label{group__gsup_gafa82ab829ba7629c306dc8c0aa990631}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MAX\_PCO\_LEN@{OSMO\_GSUP\_MAX\_PCO\_LEN}}
\index{OSMO\_GSUP\_MAX\_PCO\_LEN@{OSMO\_GSUP\_MAX\_PCO\_LEN}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{OSMO\_GSUP\_MAX\_PCO\_LEN}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+GSUP\+\_\+\+MAX\+\_\+\+PCO\+\_\+\+LEN~251}

\mbox{\label{group__gsup_gac502e3a27dab5699c9cbe87e1fae6fe1}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_E\_ROUTING\_ERROR@{OSMO\_GSUP\_MSGT\_E\_ROUTING\_ERROR}}
\index{OSMO\_GSUP\_MSGT\_E\_ROUTING\_ERROR@{OSMO\_GSUP\_MSGT\_E\_ROUTING\_ERROR}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{OSMO\_GSUP\_MSGT\_E\_ROUTING\_ERROR}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+ROUTING\+\_\+\+ERROR~\textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+ROUTING\+\_\+\+ERROR}}

\mbox{\label{group__gsup_ga417abe881b0880e73deb655567dd710f}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_PORT@{OSMO\_GSUP\_PORT}}
\index{OSMO\_GSUP\_PORT@{OSMO\_GSUP\_PORT}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{OSMO\_GSUP\_PORT}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+GSUP\+\_\+\+PORT~4222}

\mbox{\label{group__gsup_gae55d69cdf2cce42f396325c6a6801864}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_TO\_MSGT\_ERROR@{OSMO\_GSUP\_TO\_MSGT\_ERROR}}
\index{OSMO\_GSUP\_TO\_MSGT\_ERROR@{OSMO\_GSUP\_TO\_MSGT\_ERROR}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{OSMO\_GSUP\_TO\_MSGT\_ERROR}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+GSUP\+\_\+\+TO\+\_\+\+MSGT\+\_\+\+ERROR(\begin{DoxyParamCaption}\item[{}]{msgt }\end{DoxyParamCaption})~(((msgt) \& 0b11111100) $\vert$ 0b01)}

\mbox{\label{group__gsup_ga68c18099a0371c67247013967fcf01ec}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_TO\_MSGT\_REQUEST@{OSMO\_GSUP\_TO\_MSGT\_REQUEST}}
\index{OSMO\_GSUP\_TO\_MSGT\_REQUEST@{OSMO\_GSUP\_TO\_MSGT\_REQUEST}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{OSMO\_GSUP\_TO\_MSGT\_REQUEST}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+GSUP\+\_\+\+TO\+\_\+\+MSGT\+\_\+\+REQUEST(\begin{DoxyParamCaption}\item[{}]{msgt }\end{DoxyParamCaption})~(((msgt) \& 0b11111100))}

\mbox{\label{group__gsup_ga25bfae8a866f9058f6e4bae8e43a0e5a}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_TO\_MSGT\_RESULT@{OSMO\_GSUP\_TO\_MSGT\_RESULT}}
\index{OSMO\_GSUP\_TO\_MSGT\_RESULT@{OSMO\_GSUP\_TO\_MSGT\_RESULT}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{OSMO\_GSUP\_TO\_MSGT\_RESULT}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+GSUP\+\_\+\+TO\+\_\+\+MSGT\+\_\+\+RESULT(\begin{DoxyParamCaption}\item[{}]{msgt }\end{DoxyParamCaption})~(((msgt) \& 0b11111100) $\vert$ 0b10)}



\doxysubsection{Enumeration Type Documentation}
\mbox{\label{group__gsup_ga28324ffdf9244e6355ee340cc0d0db75}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_access\_network\_protocol@{osmo\_gsup\_access\_network\_protocol}}
\index{osmo\_gsup\_access\_network\_protocol@{osmo\_gsup\_access\_network\_protocol}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_access\_network\_protocol}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+gsup\+\_\+access\+\_\+network\+\_\+protocol}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_ACCESS\_NETWORK\_PROTOCOL\_TS3G\_48006@{OSMO\_GSUP\_ACCESS\_NETWORK\_PROTOCOL\_TS3G\_48006}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_ACCESS\_NETWORK\_PROTOCOL\_TS3G\_48006@{OSMO\_GSUP\_ACCESS\_NETWORK\_PROTOCOL\_TS3G\_48006}}}\mbox{\label{group__gsup_gga28324ffdf9244e6355ee340cc0d0db75a60dcadd3aee6341a1bf01d9c0ca10f5e}} 
OSMO\+\_\+\+GSUP\+\_\+\+ACCESS\+\_\+\+NETWORK\+\_\+\+PROTOCOL\+\_\+\+TS3\+G\+\_\+48006&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_ACCESS\_NETWORK\_PROTOCOL\_TS3G\_25413@{OSMO\_GSUP\_ACCESS\_NETWORK\_PROTOCOL\_TS3G\_25413}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_ACCESS\_NETWORK\_PROTOCOL\_TS3G\_25413@{OSMO\_GSUP\_ACCESS\_NETWORK\_PROTOCOL\_TS3G\_25413}}}\mbox{\label{group__gsup_gga28324ffdf9244e6355ee340cc0d0db75adc4d1957f572a0aa26317957b8cfabef}} 
OSMO\+\_\+\+GSUP\+\_\+\+ACCESS\+\_\+\+NETWORK\+\_\+\+PROTOCOL\+\_\+\+TS3\+G\+\_\+25413&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{group__gsup_ga422f48c3d3879addcf50b1300bfbc521}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_cancel\_type@{osmo\_gsup\_cancel\_type}}
\index{osmo\_gsup\_cancel\_type@{osmo\_gsup\_cancel\_type}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_cancel\_type}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+gsup\+\_\+cancel\+\_\+type}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_CANCEL\_TYPE\_UPDATE@{OSMO\_GSUP\_CANCEL\_TYPE\_UPDATE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_CANCEL\_TYPE\_UPDATE@{OSMO\_GSUP\_CANCEL\_TYPE\_UPDATE}}}\mbox{\label{group__gsup_gga422f48c3d3879addcf50b1300bfbc521ade0be3e986bbb85a14c75c5b36589de5}} 
OSMO\+\_\+\+GSUP\+\_\+\+CANCEL\+\_\+\+TYPE\+\_\+\+UPDATE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_CANCEL\_TYPE\_WITHDRAW@{OSMO\_GSUP\_CANCEL\_TYPE\_WITHDRAW}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_CANCEL\_TYPE\_WITHDRAW@{OSMO\_GSUP\_CANCEL\_TYPE\_WITHDRAW}}}\mbox{\label{group__gsup_gga422f48c3d3879addcf50b1300bfbc521aea8d527014c1802548f78f249ceb0757}} 
OSMO\+\_\+\+GSUP\+\_\+\+CANCEL\+\_\+\+TYPE\+\_\+\+WITHDRAW&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{group__gsup_gae19e8165fcbb423fdbe67dccc28dbdbb}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_cn\_domain@{osmo\_gsup\_cn\_domain}}
\index{osmo\_gsup\_cn\_domain@{osmo\_gsup\_cn\_domain}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_cn\_domain}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+gsup\+\_\+cn\+\_\+domain}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_CN\_DOMAIN\_PS@{OSMO\_GSUP\_CN\_DOMAIN\_PS}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_CN\_DOMAIN\_PS@{OSMO\_GSUP\_CN\_DOMAIN\_PS}}}\mbox{\label{group__gsup_ggae19e8165fcbb423fdbe67dccc28dbdbbac5fce9fba0d856e0106663294bf15054}} 
OSMO\+\_\+\+GSUP\+\_\+\+CN\+\_\+\+DOMAIN\+\_\+\+PS&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_CN\_DOMAIN\_CS@{OSMO\_GSUP\_CN\_DOMAIN\_CS}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_CN\_DOMAIN\_CS@{OSMO\_GSUP\_CN\_DOMAIN\_CS}}}\mbox{\label{group__gsup_ggae19e8165fcbb423fdbe67dccc28dbdbbac70efc3206d86703ccd6d94435fd4814}} 
OSMO\+\_\+\+GSUP\+\_\+\+CN\+\_\+\+DOMAIN\+\_\+\+CS&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{group__gsup_ga990b30d81ab9b9b885c8ef8c0d589224}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_iei@{osmo\_gsup\_iei}}
\index{osmo\_gsup\_iei@{osmo\_gsup\_iei}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_iei}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+gsup\+\_\+iei}}



Information Element Identifiers for GSUP IEs. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_IMSI\_IE@{OSMO\_GSUP\_IMSI\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_IMSI\_IE@{OSMO\_GSUP\_IMSI\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a909e35d86ba8486e7331047092c88804}} 
OSMO\+\_\+\+GSUP\+\_\+\+IMSI\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_CAUSE\_IE@{OSMO\_GSUP\_CAUSE\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_CAUSE\_IE@{OSMO\_GSUP\_CAUSE\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a2cb165793b211d1de5b9233d9a776648}} 
OSMO\+\_\+\+GSUP\+\_\+\+CAUSE\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_AUTH\_TUPLE\_IE@{OSMO\_GSUP\_AUTH\_TUPLE\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_AUTH\_TUPLE\_IE@{OSMO\_GSUP\_AUTH\_TUPLE\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a2fc33b17da2581d71bd0ccc304c7ac9d}} 
OSMO\+\_\+\+GSUP\+\_\+\+AUTH\+\_\+\+TUPLE\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_PDP\_INFO\_COMPL\_IE@{OSMO\_GSUP\_PDP\_INFO\_COMPL\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_PDP\_INFO\_COMPL\_IE@{OSMO\_GSUP\_PDP\_INFO\_COMPL\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224abf8d0188529139d7f482b090fd9b1947}} 
OSMO\+\_\+\+GSUP\+\_\+\+PDP\+\_\+\+INFO\+\_\+\+COMPL\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_PDP\_INFO\_IE@{OSMO\_GSUP\_PDP\_INFO\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_PDP\_INFO\_IE@{OSMO\_GSUP\_PDP\_INFO\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a7760d9b38c36f8f3ab60e9bbcc2a44d0}} 
OSMO\+\_\+\+GSUP\+\_\+\+PDP\+\_\+\+INFO\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_CANCEL\_TYPE\_IE@{OSMO\_GSUP\_CANCEL\_TYPE\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_CANCEL\_TYPE\_IE@{OSMO\_GSUP\_CANCEL\_TYPE\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224add4045a6e020a57745733b354c54e554}} 
OSMO\+\_\+\+GSUP\+\_\+\+CANCEL\+\_\+\+TYPE\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_FREEZE\_PTMSI\_IE@{OSMO\_GSUP\_FREEZE\_PTMSI\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_FREEZE\_PTMSI\_IE@{OSMO\_GSUP\_FREEZE\_PTMSI\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a480d7db308b3f12578b270fea42bc944}} 
OSMO\+\_\+\+GSUP\+\_\+\+FREEZE\+\_\+\+PTMSI\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSISDN\_IE@{OSMO\_GSUP\_MSISDN\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSISDN\_IE@{OSMO\_GSUP\_MSISDN\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a04e2565d647c55d07dd7027be7ed2d3b}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSISDN\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_HLR\_NUMBER\_IE@{OSMO\_GSUP\_HLR\_NUMBER\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_HLR\_NUMBER\_IE@{OSMO\_GSUP\_HLR\_NUMBER\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224aec2ac9ec2834916648eba05d9957d005}} 
OSMO\+\_\+\+GSUP\+\_\+\+HLR\+\_\+\+NUMBER\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MESSAGE\_CLASS\_IE@{OSMO\_GSUP\_MESSAGE\_CLASS\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MESSAGE\_CLASS\_IE@{OSMO\_GSUP\_MESSAGE\_CLASS\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a8f603241b9ba29f6980b6d2bbc17a165}} 
OSMO\+\_\+\+GSUP\+\_\+\+MESSAGE\+\_\+\+CLASS\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_PDP\_CONTEXT\_ID\_IE@{OSMO\_GSUP\_PDP\_CONTEXT\_ID\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_PDP\_CONTEXT\_ID\_IE@{OSMO\_GSUP\_PDP\_CONTEXT\_ID\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a4018a59ca93641ae8876d8c663441def}} 
OSMO\+\_\+\+GSUP\+\_\+\+PDP\+\_\+\+CONTEXT\+\_\+\+ID\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_PDP\_ADDRESS\_IE@{OSMO\_GSUP\_PDP\_ADDRESS\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_PDP\_ADDRESS\_IE@{OSMO\_GSUP\_PDP\_ADDRESS\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a0e4386bd28da42188a09fbf24f84b4cc}} 
OSMO\+\_\+\+GSUP\+\_\+\+PDP\+\_\+\+ADDRESS\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_ACCESS\_POINT\_NAME\_IE@{OSMO\_GSUP\_ACCESS\_POINT\_NAME\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_ACCESS\_POINT\_NAME\_IE@{OSMO\_GSUP\_ACCESS\_POINT\_NAME\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a796229cbd37c71c4d518d59ff7e7c8ef}} 
OSMO\+\_\+\+GSUP\+\_\+\+ACCESS\+\_\+\+POINT\+\_\+\+NAME\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_PDP\_QOS\_IE@{OSMO\_GSUP\_PDP\_QOS\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_PDP\_QOS\_IE@{OSMO\_GSUP\_PDP\_QOS\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224acb0515d0f1c7867ce767aa97d66ffb53}} 
OSMO\+\_\+\+GSUP\+\_\+\+PDP\+\_\+\+QOS\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_CHARG\_CHAR\_IE@{OSMO\_GSUP\_CHARG\_CHAR\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_CHARG\_CHAR\_IE@{OSMO\_GSUP\_CHARG\_CHAR\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a72476426b3b446d983f185e75676616d}} 
OSMO\+\_\+\+GSUP\+\_\+\+CHARG\+\_\+\+CHAR\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_PCO\_IE@{OSMO\_GSUP\_PCO\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_PCO\_IE@{OSMO\_GSUP\_PCO\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224ac9c899394abe75a17201b8b82a9714a2}} 
OSMO\+\_\+\+GSUP\+\_\+\+PCO\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_RAND\_IE@{OSMO\_GSUP\_RAND\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_RAND\_IE@{OSMO\_GSUP\_RAND\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224abe71ff31ce064fc1819fe059c21a7f02}} 
OSMO\+\_\+\+GSUP\+\_\+\+RAND\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_SRES\_IE@{OSMO\_GSUP\_SRES\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_SRES\_IE@{OSMO\_GSUP\_SRES\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224ab05e751299b98a840e9d9a0222361dc7}} 
OSMO\+\_\+\+GSUP\+\_\+\+SRES\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_KC\_IE@{OSMO\_GSUP\_KC\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_KC\_IE@{OSMO\_GSUP\_KC\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a232466f8551bba10562e7c4979dc4ab6}} 
OSMO\+\_\+\+GSUP\+\_\+\+KC\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_IK\_IE@{OSMO\_GSUP\_IK\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_IK\_IE@{OSMO\_GSUP\_IK\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a2e5b7e1a4c4062f2f10c772406e7a1d7}} 
OSMO\+\_\+\+GSUP\+\_\+\+IK\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_CK\_IE@{OSMO\_GSUP\_CK\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_CK\_IE@{OSMO\_GSUP\_CK\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a288fb84382f0948fed140398d725dab9}} 
OSMO\+\_\+\+GSUP\+\_\+\+CK\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_AUTN\_IE@{OSMO\_GSUP\_AUTN\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_AUTN\_IE@{OSMO\_GSUP\_AUTN\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224ae784f1b7901db2f84fa7139c040d10bd}} 
OSMO\+\_\+\+GSUP\+\_\+\+AUTN\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_AUTS\_IE@{OSMO\_GSUP\_AUTS\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_AUTS\_IE@{OSMO\_GSUP\_AUTS\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a60932872e91079c0b449a5e7a253f827}} 
OSMO\+\_\+\+GSUP\+\_\+\+AUTS\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_RES\_IE@{OSMO\_GSUP\_RES\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_RES\_IE@{OSMO\_GSUP\_RES\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a800c7cdce35b87398f928884d1c569f1}} 
OSMO\+\_\+\+GSUP\+\_\+\+RES\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_CN\_DOMAIN\_IE@{OSMO\_GSUP\_CN\_DOMAIN\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_CN\_DOMAIN\_IE@{OSMO\_GSUP\_CN\_DOMAIN\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a7c9f18accdaf0c3bfc2c8503861fb88a}} 
OSMO\+\_\+\+GSUP\+\_\+\+CN\+\_\+\+DOMAIN\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_SUPPORTED\_RAT\_TYPES\_IE@{OSMO\_GSUP\_SUPPORTED\_RAT\_TYPES\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_SUPPORTED\_RAT\_TYPES\_IE@{OSMO\_GSUP\_SUPPORTED\_RAT\_TYPES\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a9738ffcf8f5c0867b6fc92527cfbb7cd}} 
OSMO\+\_\+\+GSUP\+\_\+\+SUPPORTED\+\_\+\+RAT\+\_\+\+TYPES\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_CURRENT\_RAT\_TYPE\_IE@{OSMO\_GSUP\_CURRENT\_RAT\_TYPE\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_CURRENT\_RAT\_TYPE\_IE@{OSMO\_GSUP\_CURRENT\_RAT\_TYPE\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a42bc75e1b22b53b09ebf05f58d102160}} 
OSMO\+\_\+\+GSUP\+\_\+\+CURRENT\+\_\+\+RAT\+\_\+\+TYPE\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_SESSION\_ID\_IE@{OSMO\_GSUP\_SESSION\_ID\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_SESSION\_ID\_IE@{OSMO\_GSUP\_SESSION\_ID\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a1fa2e71f48eb09d09b9ad24ced4530fe}} 
OSMO\+\_\+\+GSUP\+\_\+\+SESSION\+\_\+\+ID\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_SESSION\_STATE\_IE@{OSMO\_GSUP\_SESSION\_STATE\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_SESSION\_STATE\_IE@{OSMO\_GSUP\_SESSION\_STATE\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a24ca72cbde0907244f752d7110d4a1bb}} 
OSMO\+\_\+\+GSUP\+\_\+\+SESSION\+\_\+\+STATE\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_SS\_INFO\_IE@{OSMO\_GSUP\_SS\_INFO\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_SS\_INFO\_IE@{OSMO\_GSUP\_SS\_INFO\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a3ef9e7da8eee46577b7e62da7f52fd02}} 
OSMO\+\_\+\+GSUP\+\_\+\+SS\+\_\+\+INFO\+\_\+\+IE&Supplementary Services payload. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_SM\_RP\_MR\_IE@{OSMO\_GSUP\_SM\_RP\_MR\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_SM\_RP\_MR\_IE@{OSMO\_GSUP\_SM\_RP\_MR\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a0164e5a4434861655a47de4d0d80d061}} 
OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+RP\+\_\+\+MR\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_SM\_RP\_DA\_IE@{OSMO\_GSUP\_SM\_RP\_DA\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_SM\_RP\_DA\_IE@{OSMO\_GSUP\_SM\_RP\_DA\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a309a5f1a3b56e3e3395d168f64d271e6}} 
OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+RP\+\_\+\+DA\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_SM\_RP\_OA\_IE@{OSMO\_GSUP\_SM\_RP\_OA\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_SM\_RP\_OA\_IE@{OSMO\_GSUP\_SM\_RP\_OA\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a824b72cb21da6846c725fef136d48b35}} 
OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+RP\+\_\+\+OA\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_SM\_RP\_UI\_IE@{OSMO\_GSUP\_SM\_RP\_UI\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_SM\_RP\_UI\_IE@{OSMO\_GSUP\_SM\_RP\_UI\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a523f76fdc51391e9462c0c6bd168b9a7}} 
OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+RP\+\_\+\+UI\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_SM\_RP\_CAUSE\_IE@{OSMO\_GSUP\_SM\_RP\_CAUSE\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_SM\_RP\_CAUSE\_IE@{OSMO\_GSUP\_SM\_RP\_CAUSE\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224ae243934646664860b8847000b16414e7}} 
OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+RP\+\_\+\+CAUSE\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_SM\_RP\_MMS\_IE@{OSMO\_GSUP\_SM\_RP\_MMS\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_SM\_RP\_MMS\_IE@{OSMO\_GSUP\_SM\_RP\_MMS\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a70fb3c845347f7be7012de2d7ea5a6d1}} 
OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+RP\+\_\+\+MMS\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_SM\_ALERT\_RSN\_IE@{OSMO\_GSUP\_SM\_ALERT\_RSN\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_SM\_ALERT\_RSN\_IE@{OSMO\_GSUP\_SM\_ALERT\_RSN\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224ae95bedfc9ac6c7cbd5412591ec4cc248}} 
OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+ALERT\+\_\+\+RSN\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_IMEI\_IE@{OSMO\_GSUP\_IMEI\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_IMEI\_IE@{OSMO\_GSUP\_IMEI\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224ab0261c8cabe9d8f91f77f9a28adcb7d4}} 
OSMO\+\_\+\+GSUP\+\_\+\+IMEI\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_IMEI\_RESULT\_IE@{OSMO\_GSUP\_IMEI\_RESULT\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_IMEI\_RESULT\_IE@{OSMO\_GSUP\_IMEI\_RESULT\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a57c4f5bfb512a4c1b24703e32575eb25}} 
OSMO\+\_\+\+GSUP\+\_\+\+IMEI\+\_\+\+RESULT\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_NUM\_VECTORS\_REQ\_IE@{OSMO\_GSUP\_NUM\_VECTORS\_REQ\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_NUM\_VECTORS\_REQ\_IE@{OSMO\_GSUP\_NUM\_VECTORS\_REQ\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a5afd05ac6791c625548f952b440c6c4c}} 
OSMO\+\_\+\+GSUP\+\_\+\+NUM\+\_\+\+VECTORS\+\_\+\+REQ\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_SOURCE\_NAME\_IE@{OSMO\_GSUP\_SOURCE\_NAME\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_SOURCE\_NAME\_IE@{OSMO\_GSUP\_SOURCE\_NAME\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a0c01d5d3bf9865f38e0e7740e663a762}} 
OSMO\+\_\+\+GSUP\+\_\+\+SOURCE\+\_\+\+NAME\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_DESTINATION\_NAME\_IE@{OSMO\_GSUP\_DESTINATION\_NAME\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_DESTINATION\_NAME\_IE@{OSMO\_GSUP\_DESTINATION\_NAME\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224ad53ee270f22c76eb44c42dffe9b2ab3c}} 
OSMO\+\_\+\+GSUP\+\_\+\+DESTINATION\+\_\+\+NAME\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_AN\_APDU\_IE@{OSMO\_GSUP\_AN\_APDU\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_AN\_APDU\_IE@{OSMO\_GSUP\_AN\_APDU\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a957ed5b70f8fa7897cbe48ad45397e8c}} 
OSMO\+\_\+\+GSUP\+\_\+\+AN\+\_\+\+APDU\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_CAUSE\_RR\_IE@{OSMO\_GSUP\_CAUSE\_RR\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_CAUSE\_RR\_IE@{OSMO\_GSUP\_CAUSE\_RR\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a63e3a2ae98acf00cbe92b4035bfc983a}} 
OSMO\+\_\+\+GSUP\+\_\+\+CAUSE\+\_\+\+RR\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_CAUSE\_BSSAP\_IE@{OSMO\_GSUP\_CAUSE\_BSSAP\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_CAUSE\_BSSAP\_IE@{OSMO\_GSUP\_CAUSE\_BSSAP\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a7acde5e3f8718dc1399a09373ad6a680}} 
OSMO\+\_\+\+GSUP\+\_\+\+CAUSE\+\_\+\+BSSAP\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_CAUSE\_SM\_IE@{OSMO\_GSUP\_CAUSE\_SM\_IE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_CAUSE\_SM\_IE@{OSMO\_GSUP\_CAUSE\_SM\_IE}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224ae97ccdd7cd025165928090980fab660d}} 
OSMO\+\_\+\+GSUP\+\_\+\+CAUSE\+\_\+\+SM\+\_\+\+IE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_OSMO\_GSUP\_IEI\_END\_MARKER@{\_OSMO\_GSUP\_IEI\_END\_MARKER}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!\_OSMO\_GSUP\_IEI\_END\_MARKER@{\_OSMO\_GSUP\_IEI\_END\_MARKER}}}\mbox{\label{group__gsup_gga990b30d81ab9b9b885c8ef8c0d589224a60be32f4aa60e379fea8be9d1ae82768}} 
\+\_\+\+OSMO\+\_\+\+GSUP\+\_\+\+IEI\+\_\+\+END\+\_\+\+MARKER&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{group__gsup_gaeb7460e17449cd3715b55ec19b620b1a}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_imei\_result@{osmo\_gsup\_imei\_result}}
\index{osmo\_gsup\_imei\_result@{osmo\_gsup\_imei\_result}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_imei\_result}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+gsup\+\_\+imei\+\_\+result}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_IMEI\_RESULT\_ACK@{OSMO\_GSUP\_IMEI\_RESULT\_ACK}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_IMEI\_RESULT\_ACK@{OSMO\_GSUP\_IMEI\_RESULT\_ACK}}}\mbox{\label{group__gsup_ggaeb7460e17449cd3715b55ec19b620b1aa85e15ac835958fe57e66ecc28dfe0b8e}} 
OSMO\+\_\+\+GSUP\+\_\+\+IMEI\+\_\+\+RESULT\+\_\+\+ACK&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_IMEI\_RESULT\_NACK@{OSMO\_GSUP\_IMEI\_RESULT\_NACK}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_IMEI\_RESULT\_NACK@{OSMO\_GSUP\_IMEI\_RESULT\_NACK}}}\mbox{\label{group__gsup_ggaeb7460e17449cd3715b55ec19b620b1aa800d5abe320138b9c6b6318b571f9a1e}} 
OSMO\+\_\+\+GSUP\+\_\+\+IMEI\+\_\+\+RESULT\+\_\+\+NACK&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{group__gsup_ga942220f97bba27ee45e230219fdecef4}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_message\_class@{osmo\_gsup\_message\_class}}
\index{osmo\_gsup\_message\_class@{osmo\_gsup\_message\_class}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_message\_class}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+gsup\+\_\+message\+\_\+class}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MESSAGE\_CLASS\_UNSET@{OSMO\_GSUP\_MESSAGE\_CLASS\_UNSET}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MESSAGE\_CLASS\_UNSET@{OSMO\_GSUP\_MESSAGE\_CLASS\_UNSET}}}\mbox{\label{group__gsup_gga942220f97bba27ee45e230219fdecef4a21a21f40ce6c589331c6074a5077fe38}} 
OSMO\+\_\+\+GSUP\+\_\+\+MESSAGE\+\_\+\+CLASS\+\_\+\+UNSET&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MESSAGE\_CLASS\_SUBSCRIBER\_MANAGEMENT@{OSMO\_GSUP\_MESSAGE\_CLASS\_SUBSCRIBER\_MANAGEMENT}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MESSAGE\_CLASS\_SUBSCRIBER\_MANAGEMENT@{OSMO\_GSUP\_MESSAGE\_CLASS\_SUBSCRIBER\_MANAGEMENT}}}\mbox{\label{group__gsup_gga942220f97bba27ee45e230219fdecef4ae659272e931850f4f188ee6d379eec5f}} 
OSMO\+\_\+\+GSUP\+\_\+\+MESSAGE\+\_\+\+CLASS\+\_\+\+SUBSCRIBER\+\_\+\+MANAGEMENT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MESSAGE\_CLASS\_SMS@{OSMO\_GSUP\_MESSAGE\_CLASS\_SMS}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MESSAGE\_CLASS\_SMS@{OSMO\_GSUP\_MESSAGE\_CLASS\_SMS}}}\mbox{\label{group__gsup_gga942220f97bba27ee45e230219fdecef4a05c65e6dc8376571686993956fdc30dc}} 
OSMO\+\_\+\+GSUP\+\_\+\+MESSAGE\+\_\+\+CLASS\+\_\+\+SMS&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MESSAGE\_CLASS\_USSD@{OSMO\_GSUP\_MESSAGE\_CLASS\_USSD}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MESSAGE\_CLASS\_USSD@{OSMO\_GSUP\_MESSAGE\_CLASS\_USSD}}}\mbox{\label{group__gsup_gga942220f97bba27ee45e230219fdecef4ab3cd3e98738bde37e687e883ea78e086}} 
OSMO\+\_\+\+GSUP\+\_\+\+MESSAGE\+\_\+\+CLASS\+\_\+\+USSD&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MESSAGE\_CLASS\_INTER\_MSC@{OSMO\_GSUP\_MESSAGE\_CLASS\_INTER\_MSC}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MESSAGE\_CLASS\_INTER\_MSC@{OSMO\_GSUP\_MESSAGE\_CLASS\_INTER\_MSC}}}\mbox{\label{group__gsup_gga942220f97bba27ee45e230219fdecef4aa463a74c605007f53f3c52e3ccfe196a}} 
OSMO\+\_\+\+GSUP\+\_\+\+MESSAGE\+\_\+\+CLASS\+\_\+\+INTER\+\_\+\+MSC&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MESSAGE\_CLASS\_IPSEC\_EPDG@{OSMO\_GSUP\_MESSAGE\_CLASS\_IPSEC\_EPDG}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MESSAGE\_CLASS\_IPSEC\_EPDG@{OSMO\_GSUP\_MESSAGE\_CLASS\_IPSEC\_EPDG}}}\mbox{\label{group__gsup_gga942220f97bba27ee45e230219fdecef4a2e40de0c85372e9913c87a624cd68335}} 
OSMO\+\_\+\+GSUP\+\_\+\+MESSAGE\+\_\+\+CLASS\+\_\+\+IPSEC\+\_\+\+EPDG&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MESSAGE\_CLASS\_ARRAYSIZE@{OSMO\_GSUP\_MESSAGE\_CLASS\_ARRAYSIZE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MESSAGE\_CLASS\_ARRAYSIZE@{OSMO\_GSUP\_MESSAGE\_CLASS\_ARRAYSIZE}}}\mbox{\label{group__gsup_gga942220f97bba27ee45e230219fdecef4ad850ad6762ca8b4a6050406dbd4b392d}} 
OSMO\+\_\+\+GSUP\+\_\+\+MESSAGE\+\_\+\+CLASS\+\_\+\+ARRAYSIZE&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{group__gsup_ga9f3f0838120b5d318a7548ea6cfece57}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_message\_type@{osmo\_gsup\_message\_type}}
\index{osmo\_gsup\_message\_type@{osmo\_gsup\_message\_type}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_message\_type}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+gsup\+\_\+message\+\_\+type}}



GSUP message type Make sure that new messages follow this scheme\+:

-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/---. $\vert$ Ending Bits $\vert$ Category $\vert$ $\vert$-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/---$\vert$ $\vert$ 00 $\vert$ Request $\vert$ $\vert$ 01 $\vert$ Error $\vert$ $\vert$ 10 $\vert$ Result $\vert$ $\vert$ 11 $\vert$ Other $\vert$ \textquotesingle{}-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/-\/---\textquotesingle{} Request, Error and Result messages must only differ in these last two bits. \begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_UPDATE\_LOCATION\_REQUEST@{OSMO\_GSUP\_MSGT\_UPDATE\_LOCATION\_REQUEST}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_UPDATE\_LOCATION\_REQUEST@{OSMO\_GSUP\_MSGT\_UPDATE\_LOCATION\_REQUEST}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57ac686a0e043b0e4dc8dd6ea92c5d970b9}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+UPDATE\+\_\+\+LOCATION\+\_\+\+REQUEST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_UPDATE\_LOCATION\_ERROR@{OSMO\_GSUP\_MSGT\_UPDATE\_LOCATION\_ERROR}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_UPDATE\_LOCATION\_ERROR@{OSMO\_GSUP\_MSGT\_UPDATE\_LOCATION\_ERROR}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a88b2d0f2d1df1af769e2677205e0e5d1}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+UPDATE\+\_\+\+LOCATION\+\_\+\+ERROR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_UPDATE\_LOCATION\_RESULT@{OSMO\_GSUP\_MSGT\_UPDATE\_LOCATION\_RESULT}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_UPDATE\_LOCATION\_RESULT@{OSMO\_GSUP\_MSGT\_UPDATE\_LOCATION\_RESULT}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a69665b20d532abfbf29c9b398b09929c}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+UPDATE\+\_\+\+LOCATION\+\_\+\+RESULT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_SEND\_AUTH\_INFO\_REQUEST@{OSMO\_GSUP\_MSGT\_SEND\_AUTH\_INFO\_REQUEST}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_SEND\_AUTH\_INFO\_REQUEST@{OSMO\_GSUP\_MSGT\_SEND\_AUTH\_INFO\_REQUEST}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a7e2dd6f4492d024e6f304f042e17bf84}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+SEND\+\_\+\+AUTH\+\_\+\+INFO\+\_\+\+REQUEST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_SEND\_AUTH\_INFO\_ERROR@{OSMO\_GSUP\_MSGT\_SEND\_AUTH\_INFO\_ERROR}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_SEND\_AUTH\_INFO\_ERROR@{OSMO\_GSUP\_MSGT\_SEND\_AUTH\_INFO\_ERROR}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a71394ea5e409a2aabbd275aad78b1b88}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+SEND\+\_\+\+AUTH\+\_\+\+INFO\+\_\+\+ERROR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_SEND\_AUTH\_INFO\_RESULT@{OSMO\_GSUP\_MSGT\_SEND\_AUTH\_INFO\_RESULT}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_SEND\_AUTH\_INFO\_RESULT@{OSMO\_GSUP\_MSGT\_SEND\_AUTH\_INFO\_RESULT}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a498e2165c89fe877e304ff086aeeaba2}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+SEND\+\_\+\+AUTH\+\_\+\+INFO\+\_\+\+RESULT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_AUTH\_FAIL\_REPORT@{OSMO\_GSUP\_MSGT\_AUTH\_FAIL\_REPORT}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_AUTH\_FAIL\_REPORT@{OSMO\_GSUP\_MSGT\_AUTH\_FAIL\_REPORT}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57ad1b3d21fe5a4f0ae6b185b4706fc6c97}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+AUTH\+\_\+\+FAIL\+\_\+\+REPORT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_PURGE\_MS\_REQUEST@{OSMO\_GSUP\_MSGT\_PURGE\_MS\_REQUEST}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_PURGE\_MS\_REQUEST@{OSMO\_GSUP\_MSGT\_PURGE\_MS\_REQUEST}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a4352608190f18044611569906d82414b}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+PURGE\+\_\+\+MS\+\_\+\+REQUEST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_PURGE\_MS\_ERROR@{OSMO\_GSUP\_MSGT\_PURGE\_MS\_ERROR}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_PURGE\_MS\_ERROR@{OSMO\_GSUP\_MSGT\_PURGE\_MS\_ERROR}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a63fd38ae3cda71f3b4a1c2a942f22033}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+PURGE\+\_\+\+MS\+\_\+\+ERROR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_PURGE\_MS\_RESULT@{OSMO\_GSUP\_MSGT\_PURGE\_MS\_RESULT}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_PURGE\_MS\_RESULT@{OSMO\_GSUP\_MSGT\_PURGE\_MS\_RESULT}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a986c0c3ba9ed98a6cbd4aa96278e7b5f}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+PURGE\+\_\+\+MS\+\_\+\+RESULT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_INSERT\_DATA\_REQUEST@{OSMO\_GSUP\_MSGT\_INSERT\_DATA\_REQUEST}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_INSERT\_DATA\_REQUEST@{OSMO\_GSUP\_MSGT\_INSERT\_DATA\_REQUEST}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57afde818238f1cada6f8d1e8cfad474bbb}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+INSERT\+\_\+\+DATA\+\_\+\+REQUEST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_INSERT\_DATA\_ERROR@{OSMO\_GSUP\_MSGT\_INSERT\_DATA\_ERROR}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_INSERT\_DATA\_ERROR@{OSMO\_GSUP\_MSGT\_INSERT\_DATA\_ERROR}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a512ea490728a6628209061e7d39ee59d}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+INSERT\+\_\+\+DATA\+\_\+\+ERROR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_INSERT\_DATA\_RESULT@{OSMO\_GSUP\_MSGT\_INSERT\_DATA\_RESULT}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_INSERT\_DATA\_RESULT@{OSMO\_GSUP\_MSGT\_INSERT\_DATA\_RESULT}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a31eaf6f923f44f7530f8efc10fd70271}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+INSERT\+\_\+\+DATA\+\_\+\+RESULT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_DELETE\_DATA\_REQUEST@{OSMO\_GSUP\_MSGT\_DELETE\_DATA\_REQUEST}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_DELETE\_DATA\_REQUEST@{OSMO\_GSUP\_MSGT\_DELETE\_DATA\_REQUEST}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a16094810fc0efeccbc737a61aca5e611}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+DELETE\+\_\+\+DATA\+\_\+\+REQUEST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_DELETE\_DATA\_ERROR@{OSMO\_GSUP\_MSGT\_DELETE\_DATA\_ERROR}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_DELETE\_DATA\_ERROR@{OSMO\_GSUP\_MSGT\_DELETE\_DATA\_ERROR}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a078a9ae17dac039659895f57d242605e}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+DELETE\+\_\+\+DATA\+\_\+\+ERROR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_DELETE\_DATA\_RESULT@{OSMO\_GSUP\_MSGT\_DELETE\_DATA\_RESULT}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_DELETE\_DATA\_RESULT@{OSMO\_GSUP\_MSGT\_DELETE\_DATA\_RESULT}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a4ff94be2442306e60807e705f85d9b95}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+DELETE\+\_\+\+DATA\+\_\+\+RESULT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_LOCATION\_CANCEL\_REQUEST@{OSMO\_GSUP\_MSGT\_LOCATION\_CANCEL\_REQUEST}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_LOCATION\_CANCEL\_REQUEST@{OSMO\_GSUP\_MSGT\_LOCATION\_CANCEL\_REQUEST}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57ad39caeafe083b951ea0b32c0a7777257}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+LOCATION\+\_\+\+CANCEL\+\_\+\+REQUEST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_LOCATION\_CANCEL\_ERROR@{OSMO\_GSUP\_MSGT\_LOCATION\_CANCEL\_ERROR}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_LOCATION\_CANCEL\_ERROR@{OSMO\_GSUP\_MSGT\_LOCATION\_CANCEL\_ERROR}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a3ae9d4838f39eb5645c94197c528ac71}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+LOCATION\+\_\+\+CANCEL\+\_\+\+ERROR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_LOCATION\_CANCEL\_RESULT@{OSMO\_GSUP\_MSGT\_LOCATION\_CANCEL\_RESULT}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_LOCATION\_CANCEL\_RESULT@{OSMO\_GSUP\_MSGT\_LOCATION\_CANCEL\_RESULT}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a69a94971daf81be27452e5451d67c6db}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+LOCATION\+\_\+\+CANCEL\+\_\+\+RESULT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_PROC\_SS\_REQUEST@{OSMO\_GSUP\_MSGT\_PROC\_SS\_REQUEST}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_PROC\_SS\_REQUEST@{OSMO\_GSUP\_MSGT\_PROC\_SS\_REQUEST}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a6956c8ad8d77bbd237f4df140658a437}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+PROC\+\_\+\+SS\+\_\+\+REQUEST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_PROC\_SS\_ERROR@{OSMO\_GSUP\_MSGT\_PROC\_SS\_ERROR}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_PROC\_SS\_ERROR@{OSMO\_GSUP\_MSGT\_PROC\_SS\_ERROR}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a7302f7eace5d4a86d93c64445d83d984}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+PROC\+\_\+\+SS\+\_\+\+ERROR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_PROC\_SS\_RESULT@{OSMO\_GSUP\_MSGT\_PROC\_SS\_RESULT}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_PROC\_SS\_RESULT@{OSMO\_GSUP\_MSGT\_PROC\_SS\_RESULT}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57aac8fff2b319d3740fd248b6af7d71bcf}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+PROC\+\_\+\+SS\+\_\+\+RESULT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_MO\_FORWARD\_SM\_REQUEST@{OSMO\_GSUP\_MSGT\_MO\_FORWARD\_SM\_REQUEST}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_MO\_FORWARD\_SM\_REQUEST@{OSMO\_GSUP\_MSGT\_MO\_FORWARD\_SM\_REQUEST}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57addbce2787d324a1efe20c30fb7a73a6d}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+MO\+\_\+\+FORWARD\+\_\+\+SM\+\_\+\+REQUEST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_MO\_FORWARD\_SM\_ERROR@{OSMO\_GSUP\_MSGT\_MO\_FORWARD\_SM\_ERROR}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_MO\_FORWARD\_SM\_ERROR@{OSMO\_GSUP\_MSGT\_MO\_FORWARD\_SM\_ERROR}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57ac7071bde4304966d2f5bc71b635ded45}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+MO\+\_\+\+FORWARD\+\_\+\+SM\+\_\+\+ERROR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_MO\_FORWARD\_SM\_RESULT@{OSMO\_GSUP\_MSGT\_MO\_FORWARD\_SM\_RESULT}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_MO\_FORWARD\_SM\_RESULT@{OSMO\_GSUP\_MSGT\_MO\_FORWARD\_SM\_RESULT}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a15f49b85a9d75be069984a6e32a15f41}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+MO\+\_\+\+FORWARD\+\_\+\+SM\+\_\+\+RESULT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_MT\_FORWARD\_SM\_REQUEST@{OSMO\_GSUP\_MSGT\_MT\_FORWARD\_SM\_REQUEST}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_MT\_FORWARD\_SM\_REQUEST@{OSMO\_GSUP\_MSGT\_MT\_FORWARD\_SM\_REQUEST}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a7492828fbb15c0f448fd83abef41b39c}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+MT\+\_\+\+FORWARD\+\_\+\+SM\+\_\+\+REQUEST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_MT\_FORWARD\_SM\_ERROR@{OSMO\_GSUP\_MSGT\_MT\_FORWARD\_SM\_ERROR}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_MT\_FORWARD\_SM\_ERROR@{OSMO\_GSUP\_MSGT\_MT\_FORWARD\_SM\_ERROR}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a8ea5536d1e1f2fc812bed29854866f51}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+MT\+\_\+\+FORWARD\+\_\+\+SM\+\_\+\+ERROR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_MT\_FORWARD\_SM\_RESULT@{OSMO\_GSUP\_MSGT\_MT\_FORWARD\_SM\_RESULT}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_MT\_FORWARD\_SM\_RESULT@{OSMO\_GSUP\_MSGT\_MT\_FORWARD\_SM\_RESULT}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a532083d53e526f307fdad9e0a07904dc}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+MT\+\_\+\+FORWARD\+\_\+\+SM\+\_\+\+RESULT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_READY\_FOR\_SM\_REQUEST@{OSMO\_GSUP\_MSGT\_READY\_FOR\_SM\_REQUEST}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_READY\_FOR\_SM\_REQUEST@{OSMO\_GSUP\_MSGT\_READY\_FOR\_SM\_REQUEST}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a9d2f0dd2fbd094b4dbd6e8f0123e1e8a}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+READY\+\_\+\+FOR\+\_\+\+SM\+\_\+\+REQUEST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_READY\_FOR\_SM\_ERROR@{OSMO\_GSUP\_MSGT\_READY\_FOR\_SM\_ERROR}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_READY\_FOR\_SM\_ERROR@{OSMO\_GSUP\_MSGT\_READY\_FOR\_SM\_ERROR}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57afb317e211f16b44bf58e08252865a5b9}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+READY\+\_\+\+FOR\+\_\+\+SM\+\_\+\+ERROR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_READY\_FOR\_SM\_RESULT@{OSMO\_GSUP\_MSGT\_READY\_FOR\_SM\_RESULT}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_READY\_FOR\_SM\_RESULT@{OSMO\_GSUP\_MSGT\_READY\_FOR\_SM\_RESULT}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a4967893a6d0c04bcf9e2954d509f46db}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+READY\+\_\+\+FOR\+\_\+\+SM\+\_\+\+RESULT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_CHECK\_IMEI\_REQUEST@{OSMO\_GSUP\_MSGT\_CHECK\_IMEI\_REQUEST}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_CHECK\_IMEI\_REQUEST@{OSMO\_GSUP\_MSGT\_CHECK\_IMEI\_REQUEST}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57ab50f1799884614f9ac5f97d627b28560}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+CHECK\+\_\+\+IMEI\+\_\+\+REQUEST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_CHECK\_IMEI\_ERROR@{OSMO\_GSUP\_MSGT\_CHECK\_IMEI\_ERROR}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_CHECK\_IMEI\_ERROR@{OSMO\_GSUP\_MSGT\_CHECK\_IMEI\_ERROR}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a704919446e504d7f799a2519ba48d925}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+CHECK\+\_\+\+IMEI\+\_\+\+ERROR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_CHECK\_IMEI\_RESULT@{OSMO\_GSUP\_MSGT\_CHECK\_IMEI\_RESULT}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_CHECK\_IMEI\_RESULT@{OSMO\_GSUP\_MSGT\_CHECK\_IMEI\_RESULT}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57ae847a6a546c7643a897cbc17dc8cd40e}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+CHECK\+\_\+\+IMEI\+\_\+\+RESULT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_E\_PREPARE\_HANDOVER\_REQUEST@{OSMO\_GSUP\_MSGT\_E\_PREPARE\_HANDOVER\_REQUEST}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_E\_PREPARE\_HANDOVER\_REQUEST@{OSMO\_GSUP\_MSGT\_E\_PREPARE\_HANDOVER\_REQUEST}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a17af86fa097a862a78dcedc692fa398e}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+PREPARE\+\_\+\+HANDOVER\+\_\+\+REQUEST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_E\_PREPARE\_HANDOVER\_ERROR@{OSMO\_GSUP\_MSGT\_E\_PREPARE\_HANDOVER\_ERROR}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_E\_PREPARE\_HANDOVER\_ERROR@{OSMO\_GSUP\_MSGT\_E\_PREPARE\_HANDOVER\_ERROR}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a9f973a6dd95ed340552ac4b68c06bdc6}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+PREPARE\+\_\+\+HANDOVER\+\_\+\+ERROR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_E\_PREPARE\_HANDOVER\_RESULT@{OSMO\_GSUP\_MSGT\_E\_PREPARE\_HANDOVER\_RESULT}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_E\_PREPARE\_HANDOVER\_RESULT@{OSMO\_GSUP\_MSGT\_E\_PREPARE\_HANDOVER\_RESULT}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a5ec0cbced0e412c52d344e7c84e66e8d}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+PREPARE\+\_\+\+HANDOVER\+\_\+\+RESULT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_E\_PREPARE\_SUBSEQUENT\_HANDOVER\_REQUEST@{OSMO\_GSUP\_MSGT\_E\_PREPARE\_SUBSEQUENT\_HANDOVER\_REQUEST}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_E\_PREPARE\_SUBSEQUENT\_HANDOVER\_REQUEST@{OSMO\_GSUP\_MSGT\_E\_PREPARE\_SUBSEQUENT\_HANDOVER\_REQUEST}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a3b84fea14f0d7556ad5a1a1cd62133da}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+PREPARE\+\_\+\+SUBSEQUENT\+\_\+\+HANDOVER\+\_\+\+REQUEST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_E\_PREPARE\_SUBSEQUENT\_HANDOVER\_ERROR@{OSMO\_GSUP\_MSGT\_E\_PREPARE\_SUBSEQUENT\_HANDOVER\_ERROR}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_E\_PREPARE\_SUBSEQUENT\_HANDOVER\_ERROR@{OSMO\_GSUP\_MSGT\_E\_PREPARE\_SUBSEQUENT\_HANDOVER\_ERROR}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57affece1165b0d1cacd17b6e595e89ef33}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+PREPARE\+\_\+\+SUBSEQUENT\+\_\+\+HANDOVER\+\_\+\+ERROR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_E\_PREPARE\_SUBSEQUENT\_HANDOVER\_RESULT@{OSMO\_GSUP\_MSGT\_E\_PREPARE\_SUBSEQUENT\_HANDOVER\_RESULT}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_E\_PREPARE\_SUBSEQUENT\_HANDOVER\_RESULT@{OSMO\_GSUP\_MSGT\_E\_PREPARE\_SUBSEQUENT\_HANDOVER\_RESULT}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57afbf0e21586e66e1721e2f71af288fae0}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+PREPARE\+\_\+\+SUBSEQUENT\+\_\+\+HANDOVER\+\_\+\+RESULT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_E\_SEND\_END\_SIGNAL\_REQUEST@{OSMO\_GSUP\_MSGT\_E\_SEND\_END\_SIGNAL\_REQUEST}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_E\_SEND\_END\_SIGNAL\_REQUEST@{OSMO\_GSUP\_MSGT\_E\_SEND\_END\_SIGNAL\_REQUEST}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a3cfa5fbb274e6d6da2dfad4a64d10c00}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+SEND\+\_\+\+END\+\_\+\+SIGNAL\+\_\+\+REQUEST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_E\_SEND\_END\_SIGNAL\_ERROR@{OSMO\_GSUP\_MSGT\_E\_SEND\_END\_SIGNAL\_ERROR}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_E\_SEND\_END\_SIGNAL\_ERROR@{OSMO\_GSUP\_MSGT\_E\_SEND\_END\_SIGNAL\_ERROR}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a50856755c61d804d1cf0dc29fcd501c7}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+SEND\+\_\+\+END\+\_\+\+SIGNAL\+\_\+\+ERROR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_E\_SEND\_END\_SIGNAL\_RESULT@{OSMO\_GSUP\_MSGT\_E\_SEND\_END\_SIGNAL\_RESULT}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_E\_SEND\_END\_SIGNAL\_RESULT@{OSMO\_GSUP\_MSGT\_E\_SEND\_END\_SIGNAL\_RESULT}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57ac8df089511bd5d99c0d3955acf020dc0}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+SEND\+\_\+\+END\+\_\+\+SIGNAL\+\_\+\+RESULT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_E\_PROCESS\_ACCESS\_SIGNALLING\_REQUEST@{OSMO\_GSUP\_MSGT\_E\_PROCESS\_ACCESS\_SIGNALLING\_REQUEST}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_E\_PROCESS\_ACCESS\_SIGNALLING\_REQUEST@{OSMO\_GSUP\_MSGT\_E\_PROCESS\_ACCESS\_SIGNALLING\_REQUEST}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a303408b2758e66f26dc27aa9ded9caae}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+PROCESS\+\_\+\+ACCESS\+\_\+\+SIGNALLING\+\_\+\+REQUEST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_E\_FORWARD\_ACCESS\_SIGNALLING\_REQUEST@{OSMO\_GSUP\_MSGT\_E\_FORWARD\_ACCESS\_SIGNALLING\_REQUEST}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_E\_FORWARD\_ACCESS\_SIGNALLING\_REQUEST@{OSMO\_GSUP\_MSGT\_E\_FORWARD\_ACCESS\_SIGNALLING\_REQUEST}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a914faf24762fa601260defb37312a7b9}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+FORWARD\+\_\+\+ACCESS\+\_\+\+SIGNALLING\+\_\+\+REQUEST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_E\_CLOSE@{OSMO\_GSUP\_MSGT\_E\_CLOSE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_E\_CLOSE@{OSMO\_GSUP\_MSGT\_E\_CLOSE}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57addece5913f0e7ad576b891716d6ecd0c}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+CLOSE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_E\_ABORT@{OSMO\_GSUP\_MSGT\_E\_ABORT}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_E\_ABORT@{OSMO\_GSUP\_MSGT\_E\_ABORT}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57adca0309b8f1e43e7667f29cb50a4d3c1}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+E\+\_\+\+ABORT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_ROUTING\_ERROR@{OSMO\_GSUP\_MSGT\_ROUTING\_ERROR}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_ROUTING\_ERROR@{OSMO\_GSUP\_MSGT\_ROUTING\_ERROR}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a16ca7441acb1c74ebd6a4acb7276aafc}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+ROUTING\+\_\+\+ERROR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_EPDG\_TUNNEL\_REQUEST@{OSMO\_GSUP\_MSGT\_EPDG\_TUNNEL\_REQUEST}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_EPDG\_TUNNEL\_REQUEST@{OSMO\_GSUP\_MSGT\_EPDG\_TUNNEL\_REQUEST}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a292112e4fdf9de6ff2d56685fbb7ed07}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+EPDG\+\_\+\+TUNNEL\+\_\+\+REQUEST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_EPDG\_TUNNEL\_ERROR@{OSMO\_GSUP\_MSGT\_EPDG\_TUNNEL\_ERROR}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_EPDG\_TUNNEL\_ERROR@{OSMO\_GSUP\_MSGT\_EPDG\_TUNNEL\_ERROR}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a18c9a5153e89fc3e7b6c5f99c4fd4dc2}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+EPDG\+\_\+\+TUNNEL\+\_\+\+ERROR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_MSGT\_EPDG\_TUNNEL\_RESULT@{OSMO\_GSUP\_MSGT\_EPDG\_TUNNEL\_RESULT}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_MSGT\_EPDG\_TUNNEL\_RESULT@{OSMO\_GSUP\_MSGT\_EPDG\_TUNNEL\_RESULT}}}\mbox{\label{group__gsup_gga9f3f0838120b5d318a7548ea6cfece57a0b2381cdc72aaa3833d5f33b5d117ef7}} 
OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+EPDG\+\_\+\+TUNNEL\+\_\+\+RESULT&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{group__gsup_ga261182d1e1296688d6f2a4994803407c}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_session\_state@{osmo\_gsup\_session\_state}}
\index{osmo\_gsup\_session\_state@{osmo\_gsup\_session\_state}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_session\_state}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+gsup\+\_\+session\+\_\+state}}



TCAP-\/like session state. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_SESSION\_STATE\_NONE@{OSMO\_GSUP\_SESSION\_STATE\_NONE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_SESSION\_STATE\_NONE@{OSMO\_GSUP\_SESSION\_STATE\_NONE}}}\mbox{\label{group__gsup_gga261182d1e1296688d6f2a4994803407ca2c7e381a88667ce863a31541ef917cea}} 
OSMO\+\_\+\+GSUP\+\_\+\+SESSION\+\_\+\+STATE\+\_\+\+NONE&Undefined session state. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_SESSION\_STATE\_BEGIN@{OSMO\_GSUP\_SESSION\_STATE\_BEGIN}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_SESSION\_STATE\_BEGIN@{OSMO\_GSUP\_SESSION\_STATE\_BEGIN}}}\mbox{\label{group__gsup_gga261182d1e1296688d6f2a4994803407caab6c52dec6481043752220f9f5379934}} 
OSMO\+\_\+\+GSUP\+\_\+\+SESSION\+\_\+\+STATE\+\_\+\+BEGIN&Initiation of a new session. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_SESSION\_STATE\_CONTINUE@{OSMO\_GSUP\_SESSION\_STATE\_CONTINUE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_SESSION\_STATE\_CONTINUE@{OSMO\_GSUP\_SESSION\_STATE\_CONTINUE}}}\mbox{\label{group__gsup_gga261182d1e1296688d6f2a4994803407ca580280e373319feaf9fcebd7287f5e4c}} 
OSMO\+\_\+\+GSUP\+\_\+\+SESSION\+\_\+\+STATE\+\_\+\+CONTINUE&Communication of an existing session. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_SESSION\_STATE\_END@{OSMO\_GSUP\_SESSION\_STATE\_END}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_SESSION\_STATE\_END@{OSMO\_GSUP\_SESSION\_STATE\_END}}}\mbox{\label{group__gsup_gga261182d1e1296688d6f2a4994803407caed493cf3f0e9fea23fd0f5c418ff24fa}} 
OSMO\+\_\+\+GSUP\+\_\+\+SESSION\+\_\+\+STATE\+\_\+\+END&Indication of the session end. \\
\hline

\end{DoxyEnumFields}
\mbox{\label{group__gsup_ga8f8248b8091dc8f1a8eb5c33e3deb6fe}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_sms\_sm\_alert\_rsn\_t@{osmo\_gsup\_sms\_sm\_alert\_rsn\_t}}
\index{osmo\_gsup\_sms\_sm\_alert\_rsn\_t@{osmo\_gsup\_sms\_sm\_alert\_rsn\_t}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_sms\_sm\_alert\_rsn\_t}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+gsup\+\_\+sms\+\_\+sm\+\_\+alert\+\_\+rsn\+\_\+t}}



Alert reason values, see 7.\+6.\+8.\+8. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_SMS\_SM\_ALERT\_RSN\_NONE@{OSMO\_GSUP\_SMS\_SM\_ALERT\_RSN\_NONE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_SMS\_SM\_ALERT\_RSN\_NONE@{OSMO\_GSUP\_SMS\_SM\_ALERT\_RSN\_NONE}}}\mbox{\label{group__gsup_gga8f8248b8091dc8f1a8eb5c33e3deb6fea8a3f135024553fc6a3afde11a89301f1}} 
OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+ALERT\+\_\+\+RSN\+\_\+\+NONE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_SMS\_SM\_ALERT\_RSN\_MS\_PRESENT@{OSMO\_GSUP\_SMS\_SM\_ALERT\_RSN\_MS\_PRESENT}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_SMS\_SM\_ALERT\_RSN\_MS\_PRESENT@{OSMO\_GSUP\_SMS\_SM\_ALERT\_RSN\_MS\_PRESENT}}}\mbox{\label{group__gsup_gga8f8248b8091dc8f1a8eb5c33e3deb6fea45233b4db42eccf06275a3122e2f99da}} 
OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+ALERT\+\_\+\+RSN\+\_\+\+MS\+\_\+\+PRESENT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_SMS\_SM\_ALERT\_RSN\_MEM\_AVAIL@{OSMO\_GSUP\_SMS\_SM\_ALERT\_RSN\_MEM\_AVAIL}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_SMS\_SM\_ALERT\_RSN\_MEM\_AVAIL@{OSMO\_GSUP\_SMS\_SM\_ALERT\_RSN\_MEM\_AVAIL}}}\mbox{\label{group__gsup_gga8f8248b8091dc8f1a8eb5c33e3deb6fea9d07b6d74e9c1d989e18444152974941}} 
OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+ALERT\+\_\+\+RSN\+\_\+\+MEM\+\_\+\+AVAIL&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{group__gsup_ga952890692edf6d6013e82092f9d17d41}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_sms\_sm\_rp\_oda\_t@{osmo\_gsup\_sms\_sm\_rp\_oda\_t}}
\index{osmo\_gsup\_sms\_sm\_rp\_oda\_t@{osmo\_gsup\_sms\_sm\_rp\_oda\_t}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_sms\_sm\_rp\_oda\_t}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+gsup\+\_\+sms\+\_\+sm\+\_\+rp\+\_\+oda\+\_\+t}}



Possible identity types for SM-\/\+RP-\/\{OA$\vert$\+DA\}. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_SMS\_SM\_RP\_ODA\_NONE@{OSMO\_GSUP\_SMS\_SM\_RP\_ODA\_NONE}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_SMS\_SM\_RP\_ODA\_NONE@{OSMO\_GSUP\_SMS\_SM\_RP\_ODA\_NONE}}}\mbox{\label{group__gsup_gga952890692edf6d6013e82092f9d17d41aad62393916a8c82460593616c0484ee2}} 
OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+NONE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_SMS\_SM\_RP\_ODA\_IMSI@{OSMO\_GSUP\_SMS\_SM\_RP\_ODA\_IMSI}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_SMS\_SM\_RP\_ODA\_IMSI@{OSMO\_GSUP\_SMS\_SM\_RP\_ODA\_IMSI}}}\mbox{\label{group__gsup_gga952890692edf6d6013e82092f9d17d41a0c54946efd434c2f09a58d0255fc92d8}} 
OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+IMSI&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_SMS\_SM\_RP\_ODA\_MSISDN@{OSMO\_GSUP\_SMS\_SM\_RP\_ODA\_MSISDN}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_SMS\_SM\_RP\_ODA\_MSISDN@{OSMO\_GSUP\_SMS\_SM\_RP\_ODA\_MSISDN}}}\mbox{\label{group__gsup_gga952890692edf6d6013e82092f9d17d41a4e81de0403efb5661a97aa55cc90d607}} 
OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+MSISDN&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_SMS\_SM\_RP\_ODA\_SMSC\_ADDR@{OSMO\_GSUP\_SMS\_SM\_RP\_ODA\_SMSC\_ADDR}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_SMS\_SM\_RP\_ODA\_SMSC\_ADDR@{OSMO\_GSUP\_SMS\_SM\_RP\_ODA\_SMSC\_ADDR}}}\mbox{\label{group__gsup_gga952890692edf6d6013e82092f9d17d41a8137021fc97984b498227d70c97af4e9}} 
OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+SMSC\+\_\+\+ADDR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_GSUP\_SMS\_SM\_RP\_ODA\_NULL@{OSMO\_GSUP\_SMS\_SM\_RP\_ODA\_NULL}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!OSMO\_GSUP\_SMS\_SM\_RP\_ODA\_NULL@{OSMO\_GSUP\_SMS\_SM\_RP\_ODA\_NULL}}}\mbox{\label{group__gsup_gga952890692edf6d6013e82092f9d17d41a0dee849e08cefb8d533a14c31456a66c}} 
OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+NULL&Special value for no\+SM-\/\+RP-\/\+DA and no\+SM-\/\+RP-\/\+OA. \\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\mbox{\label{group__gsup_ga5d1f798ca9cbddd13640d4efaa08c93e}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!decode\_auth\_info@{decode\_auth\_info}}
\index{decode\_auth\_info@{decode\_auth\_info}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{decode\_auth\_info()}
{\footnotesize\ttfamily static int decode\+\_\+auth\+\_\+info (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{data,  }\item[{size\+\_\+t}]{data\+\_\+len,  }\item[{struct \textbf{ osmo\+\_\+auth\+\_\+vector} $\ast$}]{auth\+\_\+vector }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+auth\+\_\+vector\+::auth\+\_\+types}, \textbf{ osmo\+\_\+auth\+\_\+vector\+::autn}, \textbf{ osmo\+\_\+auth\+\_\+vector\+::ck}, \textbf{ data}, \textbf{ DLGSUP}, \textbf{ GMM\+\_\+\+CAUSE\+\_\+\+PROTO\+\_\+\+ERR\+\_\+\+UNSPEC}, \textbf{ iei}, \textbf{ osmo\+\_\+auth\+\_\+vector\+::ik}, \textbf{ osmo\+\_\+auth\+\_\+vector\+::kc}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ LOGP}, \textbf{ OSMO\+\_\+\+AUTH\+\_\+\+TYPE\+\_\+\+GSM}, \textbf{ OSMO\+\_\+\+AUTH\+\_\+\+TYPE\+\_\+\+UMTS}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+AUTN\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CK\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+IK\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+KC\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+RAND\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+RES\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SRES\+\_\+\+IE}, \textbf{ osmo\+\_\+shift\+\_\+tlv()}, \textbf{ osmo\+\_\+auth\+\_\+vector\+::rand}, \textbf{ osmo\+\_\+auth\+\_\+vector\+::res}, \textbf{ osmo\+\_\+auth\+\_\+vector\+::res\+\_\+len}, and \textbf{ osmo\+\_\+auth\+\_\+vector\+::sres}.



Referenced by \textbf{ osmo\+\_\+gsup\+\_\+decode()}.

\mbox{\label{group__gsup_ga253e299932ed12ba1537f21efecf9339}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!decode\_pdp\_address@{decode\_pdp\_address}}
\index{decode\_pdp\_address@{decode\_pdp\_address}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{decode\_pdp\_address()}
{\footnotesize\ttfamily static int decode\+\_\+pdp\+\_\+address (\begin{DoxyParamCaption}\item[{const uint8\+\_\+t $\ast$}]{data,  }\item[{size\+\_\+t}]{data\+\_\+len,  }\item[{struct \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info} $\ast$}]{pdp\+\_\+info }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ data}, \textbf{ GMM\+\_\+\+CAUSE\+\_\+\+PROTO\+\_\+\+ERR\+\_\+\+UNSPEC}, \textbf{ gsm48\+\_\+pdp\+\_\+address\+::ietf}, \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info\+::pdp\+\_\+address}, \textbf{ PDP\+\_\+\+TYPE\+\_\+\+N\+\_\+\+IETF\+\_\+\+IPv4}, \textbf{ PDP\+\_\+\+TYPE\+\_\+\+N\+\_\+\+IETF\+\_\+\+IPv4v6}, \textbf{ PDP\+\_\+\+TYPE\+\_\+\+N\+\_\+\+IETF\+\_\+\+IPv6}, \textbf{ PDP\+\_\+\+TYPE\+\_\+\+ORG\+\_\+\+IETF}, \textbf{ osmo\+\_\+sockaddr\+::sa}, \textbf{ osmo\+\_\+sockaddr\+::sin}, \textbf{ osmo\+\_\+sockaddr\+::sin6}, \textbf{ gsm48\+\_\+pdp\+\_\+address\+::type}, \textbf{ osmo\+\_\+sockaddr\+::u}, \textbf{ gsm48\+\_\+pdp\+\_\+address\+::v4}, and \textbf{ gsm48\+\_\+pdp\+\_\+address\+::v6}.



Referenced by \textbf{ decode\+\_\+pdp\+\_\+info()}.

\mbox{\label{group__gsup_ga61fae9d785093099fc4b41562bbafa96}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!decode\_pdp\_info@{decode\_pdp\_info}}
\index{decode\_pdp\_info@{decode\_pdp\_info}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{decode\_pdp\_info()}
{\footnotesize\ttfamily static int decode\+\_\+pdp\+\_\+info (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{data,  }\item[{size\+\_\+t}]{data\+\_\+len,  }\item[{struct \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info} $\ast$}]{pdp\+\_\+info }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info\+::apn\+\_\+enc}, \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info\+::apn\+\_\+enc\+\_\+len}, \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info\+::context\+\_\+id}, \textbf{ data}, \textbf{ decode\+\_\+pdp\+\_\+address()}, \textbf{ DLGSUP}, \textbf{ GMM\+\_\+\+CAUSE\+\_\+\+PROTO\+\_\+\+ERR\+\_\+\+UNSPEC}, \textbf{ iei}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ LOGP}, \textbf{ osmo\+\_\+decode\+\_\+big\+\_\+endian()}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+ACCESS\+\_\+\+POINT\+\_\+\+NAME\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CHARG\+\_\+\+CHAR\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+PDP\+\_\+\+ADDRESS\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+PDP\+\_\+\+CONTEXT\+\_\+\+ID\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+PDP\+\_\+\+QOS\+\_\+\+IE}, \textbf{ osmo\+\_\+shift\+\_\+tlv()}, \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info\+::pdp\+\_\+charg\+\_\+enc}, \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info\+::pdp\+\_\+charg\+\_\+enc\+\_\+len}, \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info\+::qos\+\_\+enc}, and \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info\+::qos\+\_\+enc\+\_\+len}.



Referenced by \textbf{ osmo\+\_\+gsup\+\_\+decode()}.

\mbox{\label{group__gsup_gabfa9910903f980f88bb8158ed75ea2bf}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!encode\_auth\_info@{encode\_auth\_info}}
\index{encode\_auth\_info@{encode\_auth\_info}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{encode\_auth\_info()}
{\footnotesize\ttfamily static void encode\+\_\+auth\+\_\+info (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{enum \textbf{ osmo\+\_\+gsup\+\_\+iei}}]{iei,  }\item[{const struct \textbf{ osmo\+\_\+auth\+\_\+vector} $\ast$}]{auth\+\_\+vector }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+auth\+\_\+vector\+::auth\+\_\+types}, \textbf{ osmo\+\_\+auth\+\_\+vector\+::autn}, \textbf{ osmo\+\_\+auth\+\_\+vector\+::ck}, \textbf{ iei}, \textbf{ osmo\+\_\+auth\+\_\+vector\+::ik}, \textbf{ osmo\+\_\+auth\+\_\+vector\+::kc}, \textbf{ msg}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ OSMO\+\_\+\+AUTH\+\_\+\+TYPE\+\_\+\+GSM}, \textbf{ OSMO\+\_\+\+AUTH\+\_\+\+TYPE\+\_\+\+UMTS}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+AUTN\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CK\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+IK\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+KC\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+RAND\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+RES\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SRES\+\_\+\+IE}, \textbf{ osmo\+\_\+auth\+\_\+vector\+::rand}, \textbf{ osmo\+\_\+auth\+\_\+vector\+::res}, \textbf{ osmo\+\_\+auth\+\_\+vector\+::res\+\_\+len}, and \textbf{ osmo\+\_\+auth\+\_\+vector\+::sres}.



Referenced by \textbf{ osmo\+\_\+gsup\+\_\+encode()}.

\mbox{\label{group__gsup_ga2d0937a8bdf19cef81b5d4b6145765ed}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!encode\_pdp\_info@{encode\_pdp\_info}}
\index{encode\_pdp\_info@{encode\_pdp\_info}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{encode\_pdp\_info()}
{\footnotesize\ttfamily static void encode\+\_\+pdp\+\_\+info (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{enum \textbf{ osmo\+\_\+gsup\+\_\+iei}}]{iei,  }\item[{const struct \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info} $\ast$}]{pdp\+\_\+info }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info\+::apn\+\_\+enc}, \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info\+::apn\+\_\+enc\+\_\+len}, \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info\+::context\+\_\+id}, \textbf{ iei}, \textbf{ gsm48\+\_\+pdp\+\_\+address\+::ietf}, \textbf{ msg}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+ACCESS\+\_\+\+POINT\+\_\+\+NAME\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CHARG\+\_\+\+CHAR\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+PDP\+\_\+\+ADDRESS\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+PDP\+\_\+\+CONTEXT\+\_\+\+ID\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+PDP\+\_\+\+QOS\+\_\+\+IE}, \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info\+::pdp\+\_\+address}, \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info\+::pdp\+\_\+charg\+\_\+enc}, \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info\+::pdp\+\_\+charg\+\_\+enc\+\_\+len}, \textbf{ PDP\+\_\+\+TYPE\+\_\+\+N\+\_\+\+IETF\+\_\+\+IPv4}, \textbf{ PDP\+\_\+\+TYPE\+\_\+\+N\+\_\+\+IETF\+\_\+\+IPv4v6}, \textbf{ PDP\+\_\+\+TYPE\+\_\+\+N\+\_\+\+IETF\+\_\+\+IPv6}, \textbf{ PDP\+\_\+\+TYPE\+\_\+\+ORG\+\_\+\+IETF}, \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info\+::qos\+\_\+enc}, \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info\+::qos\+\_\+enc\+\_\+len}, \textbf{ osmo\+\_\+sockaddr\+::sa}, \textbf{ osmo\+\_\+sockaddr\+::sin}, \textbf{ osmo\+\_\+sockaddr\+::sin6}, \textbf{ gsm48\+\_\+pdp\+\_\+address\+::type}, \textbf{ osmo\+\_\+sockaddr\+::u}, \textbf{ gsm48\+\_\+pdp\+\_\+address\+::v4}, and \textbf{ gsm48\+\_\+pdp\+\_\+address\+::v6}.



Referenced by \textbf{ osmo\+\_\+gsup\+\_\+encode()}.

\mbox{\label{group__gsup_gadb5f5dc2f70985ac3e7447751fa56b91}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_decode@{osmo\_gsup\_decode}}
\index{osmo\_gsup\_decode@{osmo\_gsup\_decode}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_decode()}
{\footnotesize\ttfamily int osmo\+\_\+gsup\+\_\+decode (\begin{DoxyParamCaption}\item[{const uint8\+\_\+t $\ast$}]{const\+\_\+data,  }\item[{size\+\_\+t}]{data\+\_\+len,  }\item[{struct \textbf{ osmo\+\_\+gsup\+\_\+message} $\ast$}]{gsup\+\_\+msg }\end{DoxyParamCaption})}



Decode (parse) a GSUP message. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em const\+\_\+data} & input data to be parsed \\
\hline
\mbox{\texttt{ in}}  & {\em data\+\_\+len} & length of input ({\itshape const\+\_\+data}) \\
\hline
\mbox{\texttt{ out}}  & {\em gsup\+\_\+msg} & callee-\/allocated output data structure \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative otherwise 
\end{DoxyReturn}


References \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::auth\+\_\+vectors}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::auts}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::cancel\+\_\+type}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::cause}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::cause\+\_\+bssap}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::cause\+\_\+bssap\+\_\+set}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::cause\+\_\+rr}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::cause\+\_\+rr\+\_\+set}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::cause\+\_\+sm}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::cn\+\_\+domain}, \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info\+::context\+\_\+id}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::current\+\_\+rat\+\_\+type}, \textbf{ data}, \textbf{ decode\+\_\+auth\+\_\+info()}, \textbf{ decode\+\_\+pdp\+\_\+info()}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::destination\+\_\+name}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::destination\+\_\+name\+\_\+len}, \textbf{ DLGSUP}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::freeze\+\_\+ptmsi}, \textbf{ GMM\+\_\+\+CAUSE\+\_\+\+COND\+\_\+\+IE\+\_\+\+ERR}, \textbf{ GMM\+\_\+\+CAUSE\+\_\+\+INV\+\_\+\+MAND\+\_\+\+INFO}, \textbf{ GMM\+\_\+\+CAUSE\+\_\+\+PROTO\+\_\+\+ERR\+\_\+\+UNSPEC}, \textbf{ gsm48\+\_\+decode\+\_\+bcd\+\_\+number2()}, \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info\+::have\+\_\+info}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::hlr\+\_\+enc}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::hlr\+\_\+enc\+\_\+len}, \textbf{ iei}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::imei\+\_\+enc}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::imei\+\_\+enc\+\_\+len}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::imei\+\_\+result}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::imsi}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGP}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::message\+\_\+class}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::message\+\_\+type}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::msisdn\+\_\+enc}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::msisdn\+\_\+enc\+\_\+len}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::num\+\_\+auth\+\_\+vectors}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::num\+\_\+pdp\+\_\+infos}, \textbf{ osmo\+\_\+decode\+\_\+big\+\_\+endian()}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+ACCESS\+\_\+\+POINT\+\_\+\+NAME\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+AN\+\_\+\+APDU\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+AUTH\+\_\+\+TUPLE\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+AUTS\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CANCEL\+\_\+\+TYPE\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CAUSE\+\_\+\+BSSAP\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CAUSE\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CAUSE\+\_\+\+RR\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CAUSE\+\_\+\+SM\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CHARG\+\_\+\+CHAR\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CN\+\_\+\+DOMAIN\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CURRENT\+\_\+\+RAT\+\_\+\+TYPE\+\_\+\+IE}, \textbf{ osmo\+\_\+gsup\+\_\+decode\+\_\+an\+\_\+apdu()}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+DESTINATION\+\_\+\+NAME\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+FREEZE\+\_\+\+PTMSI\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+HLR\+\_\+\+NUMBER\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+IMEI\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+IMEI\+\_\+\+RESULT\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+IMSI\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+KC\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MAX\+\_\+\+NUM\+\_\+\+AUTH\+\_\+\+INFO}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MAX\+\_\+\+NUM\+\_\+\+PDP\+\_\+\+INFO}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MESSAGE\+\_\+\+CLASS\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+SEND\+\_\+\+AUTH\+\_\+\+INFO\+\_\+\+REQUEST}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSISDN\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+NUM\+\_\+\+VECTORS\+\_\+\+REQ\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+PCO\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+PDP\+\_\+\+ADDRESS\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+PDP\+\_\+\+CONTEXT\+\_\+\+ID\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+PDP\+\_\+\+INFO\+\_\+\+COMPL\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+PDP\+\_\+\+INFO\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+RAND\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SESSION\+\_\+\+ID\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SESSION\+\_\+\+STATE\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+ALERT\+\_\+\+RSN\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+RP\+\_\+\+CAUSE\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+RP\+\_\+\+DA\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+RP\+\_\+\+MMS\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+RP\+\_\+\+MR\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+RP\+\_\+\+OA\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+RP\+\_\+\+UI\+\_\+\+IE}, \textbf{ osmo\+\_\+gsup\+\_\+sms\+\_\+decode\+\_\+sm\+\_\+rp\+\_\+da()}, \textbf{ osmo\+\_\+gsup\+\_\+sms\+\_\+decode\+\_\+sm\+\_\+rp\+\_\+oa()}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SOURCE\+\_\+\+NAME\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SRES\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SS\+\_\+\+INFO\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SUPPORTED\+\_\+\+RAT\+\_\+\+TYPES\+\_\+\+IE}, \textbf{ osmo\+\_\+match\+\_\+shift\+\_\+tlv()}, \textbf{ osmo\+\_\+shift\+\_\+tlv()}, \textbf{ osmo\+\_\+shift\+\_\+v\+\_\+fixed()}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::pco}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::pco\+\_\+len}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::pdp\+\_\+charg\+\_\+enc}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::pdp\+\_\+charg\+\_\+enc\+\_\+len}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::pdp\+\_\+info\+\_\+compl}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::pdp\+\_\+infos}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::rand}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::session\+\_\+id}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::session\+\_\+state}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+alert\+\_\+rsn}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+rp\+\_\+cause}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+rp\+\_\+mms}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+rp\+\_\+mr}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+rp\+\_\+ui}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+rp\+\_\+ui\+\_\+len}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::source\+\_\+name}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::source\+\_\+name\+\_\+len}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::ss\+\_\+info}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::ss\+\_\+info\+\_\+len}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::supported\+\_\+rat\+\_\+types}, and \textbf{ osmo\+\_\+gsup\+\_\+message\+::supported\+\_\+rat\+\_\+types\+\_\+len}.

\mbox{\label{group__gsup_ga202ff41bfb4c935575a36029dc17c22f}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_decode\_an\_apdu@{osmo\_gsup\_decode\_an\_apdu}}
\index{osmo\_gsup\_decode\_an\_apdu@{osmo\_gsup\_decode\_an\_apdu}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_decode\_an\_apdu()}
{\footnotesize\ttfamily int osmo\+\_\+gsup\+\_\+decode\+\_\+an\+\_\+apdu (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+gsup\+\_\+message} $\ast$}]{gsup\+\_\+msg,  }\item[{const uint8\+\_\+t $\ast$}]{data,  }\item[{size\+\_\+t}]{data\+\_\+len }\end{DoxyParamCaption})}



Decode AN-\/apdu (see 3GPP TS 29.\+002 7.\+6.\+9.\+1). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em gsup\+\_\+msg} & abstract GSUP message structure \\
\hline
\mbox{\texttt{ in}}  & {\em data} & pointer to the raw IE payload \\
\hline
\mbox{\texttt{ in}}  & {\em data\+\_\+len} & length of IE pointed by \doxyref{data}{p.}{bssmap__le_8c_ac3c027f9a365f5741871df5ace13943f} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 in case of success, negative in case of error 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+gsup\+\_\+an\+\_\+apdu\+::access\+\_\+network\+\_\+proto}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::an\+\_\+apdu}, \textbf{ data}, \textbf{ osmo\+\_\+gsup\+\_\+an\+\_\+apdu\+::data}, \textbf{ osmo\+\_\+gsup\+\_\+an\+\_\+apdu\+::data\+\_\+len}, \textbf{ DLGSUP}, \textbf{ LOGL\+\_\+\+ERROR}, and \textbf{ LOGP}.



Referenced by \textbf{ osmo\+\_\+gsup\+\_\+decode()}.

\mbox{\label{group__gsup_gac6889e9f0207f60170bb802721316e80}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_encode@{osmo\_gsup\_encode}}
\index{osmo\_gsup\_encode@{osmo\_gsup\_encode}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_encode()}
{\footnotesize\ttfamily int osmo\+\_\+gsup\+\_\+encode (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const struct \textbf{ osmo\+\_\+gsup\+\_\+message} $\ast$}]{gsup\+\_\+msg }\end{DoxyParamCaption})}



Encode a GSUP message. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em msg} & message buffer to which encoded message is written \\
\hline
\mbox{\texttt{ in}}  & {\em gsup\+\_\+msg} & \doxyref{osmo\+\_\+gsup\+\_\+message}{p.}{structosmo__gsup__message} data to be encoded \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative otherwise 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+gsup\+\_\+an\+\_\+apdu\+::access\+\_\+network\+\_\+proto}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::an\+\_\+apdu}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::auth\+\_\+vectors}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::auts}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::cancel\+\_\+type}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::cause}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::cause\+\_\+bssap}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::cause\+\_\+bssap\+\_\+set}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::cause\+\_\+rr}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::cause\+\_\+rr\+\_\+set}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::cause\+\_\+sm}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::cn\+\_\+domain}, \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info\+::context\+\_\+id}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::current\+\_\+rat\+\_\+type}, \textbf{ osmo\+\_\+gsup\+\_\+an\+\_\+apdu\+::data\+\_\+len}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::destination\+\_\+name}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::destination\+\_\+name\+\_\+len}, \textbf{ DLGSUP}, \textbf{ encode\+\_\+auth\+\_\+info()}, \textbf{ encode\+\_\+pdp\+\_\+info()}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::freeze\+\_\+ptmsi}, \textbf{ gsm48\+\_\+encode\+\_\+bcd\+\_\+number()}, \textbf{ GSM48\+\_\+\+MI\+\_\+\+SIZE}, \textbf{ osmo\+\_\+gsup\+\_\+pdp\+\_\+info\+::have\+\_\+info}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::hlr\+\_\+enc}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::hlr\+\_\+enc\+\_\+len}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::imei\+\_\+enc}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::imei\+\_\+enc\+\_\+len}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::imei\+\_\+result}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::imsi}, \textbf{ len}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ LOGP}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::message\+\_\+class}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::message\+\_\+type}, \textbf{ msg}, \textbf{ msgb\+\_\+tl\+\_\+put()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ msgb\+\_\+v\+\_\+put()}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::msisdn\+\_\+enc}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::msisdn\+\_\+enc\+\_\+len}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::num\+\_\+auth\+\_\+vectors}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::num\+\_\+pdp\+\_\+infos}, \textbf{ osmo\+\_\+encode\+\_\+big\+\_\+endian()}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+AUTH\+\_\+\+TUPLE\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+AUTS\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CANCEL\+\_\+\+TYPE\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CAUSE\+\_\+\+BSSAP\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CAUSE\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CAUSE\+\_\+\+RR\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CAUSE\+\_\+\+SM\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CHARG\+\_\+\+CHAR\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CN\+\_\+\+DOMAIN\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+CURRENT\+\_\+\+RAT\+\_\+\+TYPE\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+DESTINATION\+\_\+\+NAME\+\_\+\+IE}, \textbf{ osmo\+\_\+gsup\+\_\+encode\+\_\+an\+\_\+apdu()}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+FREEZE\+\_\+\+PTMSI\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+HLR\+\_\+\+NUMBER\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+IMEI\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+IMEI\+\_\+\+RESULT\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+IMSI\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MAX\+\_\+\+PCO\+\_\+\+LEN}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MESSAGE\+\_\+\+CLASS\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MESSAGE\+\_\+\+CLASS\+\_\+\+UNSET}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSGT\+\_\+\+SEND\+\_\+\+AUTH\+\_\+\+INFO\+\_\+\+REQUEST}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+MSISDN\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+NUM\+\_\+\+VECTORS\+\_\+\+REQ\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+PCO\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+PDP\+\_\+\+CONTEXT\+\_\+\+ID\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+PDP\+\_\+\+INFO\+\_\+\+COMPL\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+PDP\+\_\+\+INFO\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+RAND\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SESSION\+\_\+\+ID\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SESSION\+\_\+\+STATE\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+ALERT\+\_\+\+RSN\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+RP\+\_\+\+CAUSE\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+RP\+\_\+\+MMS\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+RP\+\_\+\+MR\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+RP\+\_\+\+UI\+\_\+\+IE}, \textbf{ osmo\+\_\+gsup\+\_\+sms\+\_\+encode\+\_\+sm\+\_\+rp\+\_\+da()}, \textbf{ osmo\+\_\+gsup\+\_\+sms\+\_\+encode\+\_\+sm\+\_\+rp\+\_\+oa()}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SOURCE\+\_\+\+NAME\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SS\+\_\+\+INFO\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SUPPORTED\+\_\+\+RAT\+\_\+\+TYPES\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+RAT\+\_\+\+COUNT}, \textbf{ osmo\+\_\+rat\+\_\+type\+\_\+name()}, \textbf{ OSMO\+\_\+\+RAT\+\_\+\+UNKNOWN}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::pco}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::pco\+\_\+len}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::pdp\+\_\+charg\+\_\+enc}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::pdp\+\_\+charg\+\_\+enc\+\_\+len}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::pdp\+\_\+info\+\_\+compl}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::pdp\+\_\+infos}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::rand}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::session\+\_\+id}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::session\+\_\+state}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+alert\+\_\+rsn}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+rp\+\_\+cause}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+rp\+\_\+da\+\_\+type}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+rp\+\_\+mms}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+rp\+\_\+mr}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+rp\+\_\+oa\+\_\+type}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+rp\+\_\+ui}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+rp\+\_\+ui\+\_\+len}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::source\+\_\+name}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::source\+\_\+name\+\_\+len}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::ss\+\_\+info}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::ss\+\_\+info\+\_\+len}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::supported\+\_\+rat\+\_\+types}, and \textbf{ osmo\+\_\+gsup\+\_\+message\+::supported\+\_\+rat\+\_\+types\+\_\+len}.

\mbox{\label{group__gsup_ga7d147eee3a83a53875da90364e914d3a}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_encode\_an\_apdu@{osmo\_gsup\_encode\_an\_apdu}}
\index{osmo\_gsup\_encode\_an\_apdu@{osmo\_gsup\_encode\_an\_apdu}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_encode\_an\_apdu()}
{\footnotesize\ttfamily int osmo\+\_\+gsup\+\_\+encode\+\_\+an\+\_\+apdu (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const struct \textbf{ osmo\+\_\+gsup\+\_\+message} $\ast$}]{gsup\+\_\+msg }\end{DoxyParamCaption})}



Encode AN-\/apdu (see 3GPP TS 29.\+002 7.\+6.\+9.\+1). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em msg} & target message buffer (caller-\/allocated) \\
\hline
\mbox{\texttt{ in}}  & {\em gsup\+\_\+msg} & abstract GSUP message structure \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 in case of success, negative in case of error 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+gsup\+\_\+an\+\_\+apdu\+::access\+\_\+network\+\_\+proto}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::an\+\_\+apdu}, \textbf{ osmo\+\_\+gsup\+\_\+an\+\_\+apdu\+::data}, \textbf{ osmo\+\_\+gsup\+\_\+an\+\_\+apdu\+::data\+\_\+len}, \textbf{ DLGSUP}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ LOGP}, \textbf{ msg}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+tailroom()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, \textbf{ msgb\+\_\+v\+\_\+put()}, and \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+AN\+\_\+\+APDU\+\_\+\+IE}.



Referenced by \textbf{ osmo\+\_\+gsup\+\_\+encode()}.

\mbox{\label{group__gsup_ga2d6006d52cedf8c66062d4c5bc261f07}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_get\_err\_msg\_type@{osmo\_gsup\_get\_err\_msg\_type}}
\index{osmo\_gsup\_get\_err\_msg\_type@{osmo\_gsup\_get\_err\_msg\_type}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_get\_err\_msg\_type()}
{\footnotesize\ttfamily int osmo\+\_\+gsup\+\_\+get\+\_\+err\+\_\+msg\+\_\+type (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+gsup\+\_\+message\+\_\+type}}]{type\+\_\+in }\end{DoxyParamCaption})}



return the error message type corresponding to {\itshape type\+\_\+in}. 

Deprecated, use \doxyref{OSMO\+\_\+\+GSUP\+\_\+\+TO\+\_\+\+MSGT\+\_\+\+ERROR()}{p.}{group__gsup_gae55d69cdf2cce42f396325c6a6801864} instead. 

References \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+TO\+\_\+\+MSGT\+\_\+\+ERROR}.

\mbox{\label{group__gsup_ga211086f2c11b855288d17e1e4f3307df}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_message\_class\_name@{osmo\_gsup\_message\_class\_name}}
\index{osmo\_gsup\_message\_class\_name@{osmo\_gsup\_message\_class\_name}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_message\_class\_name()}
{\footnotesize\ttfamily static const char $\ast$ osmo\+\_\+gsup\+\_\+message\+\_\+class\+\_\+name (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+gsup\+\_\+message\+\_\+class}}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ get\+\_\+value\+\_\+string()}, and \textbf{ osmo\+\_\+gsup\+\_\+message\+\_\+class\+\_\+names}.

\mbox{\label{group__gsup_ga5105b25f6340ddd9e34c596a5382d301}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_message\_type\_name@{osmo\_gsup\_message\_type\_name}}
\index{osmo\_gsup\_message\_type\_name@{osmo\_gsup\_message\_type\_name}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_message\_type\_name()}
{\footnotesize\ttfamily static const char $\ast$ osmo\+\_\+gsup\+\_\+message\+\_\+type\+\_\+name (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+gsup\+\_\+message\+\_\+type}}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ get\+\_\+value\+\_\+string()}, and \textbf{ osmo\+\_\+gsup\+\_\+message\+\_\+type\+\_\+names}.

\mbox{\label{group__gsup_gaba24261935cb34aad189a8e9a93cbe49}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_session\_state\_name@{osmo\_gsup\_session\_state\_name}}
\index{osmo\_gsup\_session\_state\_name@{osmo\_gsup\_session\_state\_name}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_session\_state\_name()}
{\footnotesize\ttfamily static const char $\ast$ osmo\+\_\+gsup\+\_\+session\+\_\+state\+\_\+name (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+gsup\+\_\+session\+\_\+state}}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ get\+\_\+value\+\_\+string()}, and \textbf{ osmo\+\_\+gsup\+\_\+session\+\_\+state\+\_\+names}.

\mbox{\label{group__gsup_gabf989ed55bf938b215dec6f645cc7f0b}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_sms\_decode\_sm\_rp\_da@{osmo\_gsup\_sms\_decode\_sm\_rp\_da}}
\index{osmo\_gsup\_sms\_decode\_sm\_rp\_da@{osmo\_gsup\_sms\_decode\_sm\_rp\_da}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_sms\_decode\_sm\_rp\_da()}
{\footnotesize\ttfamily int osmo\+\_\+gsup\+\_\+sms\+\_\+decode\+\_\+sm\+\_\+rp\+\_\+da (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+gsup\+\_\+message} $\ast$}]{gsup\+\_\+msg,  }\item[{uint8\+\_\+t $\ast$}]{data,  }\item[{size\+\_\+t}]{data\+\_\+len }\end{DoxyParamCaption})}



Decode SM-\/\+RP-\/\+DA IE (see 7.\+6.\+8.\+1), Destination Address. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em gsup\+\_\+msg} & abstract GSUP message structure \\
\hline
\mbox{\texttt{ in}}  & {\em data} & pointer to the raw IE payload \\
\hline
\mbox{\texttt{ in}}  & {\em data\+\_\+len} & length of IE pointed by \doxyref{data}{p.}{bssmap__le_8c_ac3c027f9a365f5741871df5ace13943f} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 in case of success, negative in case of error 
\end{DoxyReturn}


References \textbf{ data}, \textbf{ DLGSUP}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ LOGP}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+IMSI}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+MSISDN}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+NONE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+NULL}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+SMSC\+\_\+\+ADDR}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+rp\+\_\+da}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+rp\+\_\+da\+\_\+len}, and \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+rp\+\_\+da\+\_\+type}.



Referenced by \textbf{ osmo\+\_\+gsup\+\_\+decode()}.

\mbox{\label{group__gsup_gaac60d7c4843df50097469793da236519}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_sms\_decode\_sm\_rp\_oa@{osmo\_gsup\_sms\_decode\_sm\_rp\_oa}}
\index{osmo\_gsup\_sms\_decode\_sm\_rp\_oa@{osmo\_gsup\_sms\_decode\_sm\_rp\_oa}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_sms\_decode\_sm\_rp\_oa()}
{\footnotesize\ttfamily int osmo\+\_\+gsup\+\_\+sms\+\_\+decode\+\_\+sm\+\_\+rp\+\_\+oa (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+gsup\+\_\+message} $\ast$}]{gsup\+\_\+msg,  }\item[{uint8\+\_\+t $\ast$}]{data,  }\item[{size\+\_\+t}]{data\+\_\+len }\end{DoxyParamCaption})}



Decode SM-\/\+RP-\/\+OA IE (see 7.\+6.\+8.\+2), Originating Address. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em gsup\+\_\+msg} & abstract GSUP message structure \\
\hline
\mbox{\texttt{ in}}  & {\em data} & pointer to the raw IE payload \\
\hline
\mbox{\texttt{ in}}  & {\em data\+\_\+len} & length of IE pointed by \doxyref{data}{p.}{bssmap__le_8c_ac3c027f9a365f5741871df5ace13943f} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 in case of success, negative in case of error 
\end{DoxyReturn}


References \textbf{ data}, \textbf{ DLGSUP}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ LOGP}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+IMSI}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+MSISDN}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+NONE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+NULL}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+SMSC\+\_\+\+ADDR}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+rp\+\_\+oa}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+rp\+\_\+oa\+\_\+len}, and \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+rp\+\_\+oa\+\_\+type}.



Referenced by \textbf{ osmo\+\_\+gsup\+\_\+decode()}.

\mbox{\label{group__gsup_gaf9b844341291d471587f6857b5714269}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_sms\_encode\_sm\_rp\_da@{osmo\_gsup\_sms\_encode\_sm\_rp\_da}}
\index{osmo\_gsup\_sms\_encode\_sm\_rp\_da@{osmo\_gsup\_sms\_encode\_sm\_rp\_da}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_sms\_encode\_sm\_rp\_da()}
{\footnotesize\ttfamily int osmo\+\_\+gsup\+\_\+sms\+\_\+encode\+\_\+sm\+\_\+rp\+\_\+da (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const struct \textbf{ osmo\+\_\+gsup\+\_\+message} $\ast$}]{gsup\+\_\+msg }\end{DoxyParamCaption})}



Encode SM-\/\+RP-\/\+DA IE (see 7.\+6.\+8.\+1), Destination Address. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em msg} & target message buffer (caller-\/allocated) \\
\hline
\mbox{\texttt{ in}}  & {\em gsup\+\_\+msg} & abstract GSUP message structure \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 in case of success, negative in case of error 
\end{DoxyReturn}


References \textbf{ DLGSUP}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ LOGP}, \textbf{ msg}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, \textbf{ msgb\+\_\+v\+\_\+put()}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+RP\+\_\+\+DA\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+IMSI}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+MSISDN}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+NONE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+NULL}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+SMSC\+\_\+\+ADDR}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+rp\+\_\+da}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+rp\+\_\+da\+\_\+len}, and \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+rp\+\_\+da\+\_\+type}.



Referenced by \textbf{ osmo\+\_\+gsup\+\_\+encode()}.

\mbox{\label{group__gsup_gaf402e4f58cbe5078b10a59e6a413b62c}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_sms\_encode\_sm\_rp\_oa@{osmo\_gsup\_sms\_encode\_sm\_rp\_oa}}
\index{osmo\_gsup\_sms\_encode\_sm\_rp\_oa@{osmo\_gsup\_sms\_encode\_sm\_rp\_oa}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_sms\_encode\_sm\_rp\_oa()}
{\footnotesize\ttfamily int osmo\+\_\+gsup\+\_\+sms\+\_\+encode\+\_\+sm\+\_\+rp\+\_\+oa (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const struct \textbf{ osmo\+\_\+gsup\+\_\+message} $\ast$}]{gsup\+\_\+msg }\end{DoxyParamCaption})}



Encode SM-\/\+RP-\/\+OA IE (see 7.\+6.\+8.\+2), Originating Address. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em msg} & target message buffer (caller-\/allocated) \\
\hline
\mbox{\texttt{ in}}  & {\em gsup\+\_\+msg} & abstract GSUP message structure \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 in case of success, negative in case of error 
\end{DoxyReturn}


References \textbf{ DLGSUP}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ LOGP}, \textbf{ msg}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, \textbf{ msgb\+\_\+v\+\_\+put()}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SM\+\_\+\+RP\+\_\+\+OA\+\_\+\+IE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+MSISDN}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+NONE}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+NULL}, \textbf{ OSMO\+\_\+\+GSUP\+\_\+\+SMS\+\_\+\+SM\+\_\+\+RP\+\_\+\+ODA\+\_\+\+SMSC\+\_\+\+ADDR}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+rp\+\_\+oa}, \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+rp\+\_\+oa\+\_\+len}, and \textbf{ osmo\+\_\+gsup\+\_\+message\+::sm\+\_\+rp\+\_\+oa\+\_\+type}.



Referenced by \textbf{ osmo\+\_\+gsup\+\_\+encode()}.



\doxysubsection{Variable Documentation}
\mbox{\label{group__gsup_gaa84aebbc71af2e0f0c1b788f45822697}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_message\_class\_names@{osmo\_gsup\_message\_class\_names}}
\index{osmo\_gsup\_message\_class\_names@{osmo\_gsup\_message\_class\_names}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_message\_class\_names\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} osmo\+\_\+gsup\+\_\+message\+\_\+class\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ osmo\+\_\+gsup\+\_\+message\+\_\+class\+\_\+name()}.

\mbox{\label{group__gsup_gaa84aebbc71af2e0f0c1b788f45822697}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_message\_class\_names@{osmo\_gsup\_message\_class\_names}}
\index{osmo\_gsup\_message\_class\_names@{osmo\_gsup\_message\_class\_names}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_message\_class\_names\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} osmo\+\_\+gsup\+\_\+message\+\_\+class\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ OSMO\_GSUP\_MESSAGE\_CLASS\_UNSET, \textcolor{stringliteral}{"{}unset"{}} \},}
\DoxyCodeLine{        \{ OSMO\_GSUP\_MESSAGE\_CLASS\_SUBSCRIBER\_MANAGEMENT, \textcolor{stringliteral}{"{}Subscriber-\/Management"{}} \},}
\DoxyCodeLine{        \{ OSMO\_GSUP\_MESSAGE\_CLASS\_SMS, \textcolor{stringliteral}{"{}SMS"{}} \},}
\DoxyCodeLine{        \{ OSMO\_GSUP\_MESSAGE\_CLASS\_USSD, \textcolor{stringliteral}{"{}USSD"{}} \},}
\DoxyCodeLine{        \{ OSMO\_GSUP\_MESSAGE\_CLASS\_INTER\_MSC, \textcolor{stringliteral}{"{}Inter-\/MSC"{}} \},}
\DoxyCodeLine{        \{ OSMO\_GSUP\_MESSAGE\_CLASS\_IPSEC\_EPDG, \textcolor{stringliteral}{"{}IPsec-\/ePDG"{}} \},}
\DoxyCodeLine{        \{\}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ osmo\+\_\+gsup\+\_\+message\+\_\+class\+\_\+name()}.

\mbox{\label{group__gsup_ga3abaa217e74cd35135cf14c92eefebe7}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_message\_type\_names@{osmo\_gsup\_message\_type\_names}}
\index{osmo\_gsup\_message\_type\_names@{osmo\_gsup\_message\_type\_names}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_message\_type\_names\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} osmo\+\_\+gsup\+\_\+message\+\_\+type\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ osmo\+\_\+gsup\+\_\+message\+\_\+type\+\_\+name()}.

\mbox{\label{group__gsup_ga3abaa217e74cd35135cf14c92eefebe7}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_message\_type\_names@{osmo\_gsup\_message\_type\_names}}
\index{osmo\_gsup\_message\_type\_names@{osmo\_gsup\_message\_type\_names}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_message\_type\_names\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} osmo\+\_\+gsup\+\_\+message\+\_\+type\+\_\+names[$\,$]}



Referenced by \textbf{ osmo\+\_\+gsup\+\_\+message\+\_\+type\+\_\+name()}.

\mbox{\label{group__gsup_ga9f02aa3b074acb62588a37b3649bb68a}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_session\_state\_names@{osmo\_gsup\_session\_state\_names}}
\index{osmo\_gsup\_session\_state\_names@{osmo\_gsup\_session\_state\_names}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_session\_state\_names\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} osmo\+\_\+gsup\+\_\+session\+\_\+state\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ osmo\+\_\+gsup\+\_\+session\+\_\+state\+\_\+name()}.

\mbox{\label{group__gsup_ga9f02aa3b074acb62588a37b3649bb68a}} 
\index{Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}!osmo\_gsup\_session\_state\_names@{osmo\_gsup\_session\_state\_names}}
\index{osmo\_gsup\_session\_state\_names@{osmo\_gsup\_session\_state\_names}!Generic Subscriber Update Protocol@{Generic Subscriber Update Protocol}}
\doxysubsubsection{osmo\_gsup\_session\_state\_names\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} osmo\+\_\+gsup\+\_\+session\+\_\+state\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ OSMO\_GSUP\_SESSION\_STATE\_NONE, \textcolor{stringliteral}{"{}NONE"{}} \},}
\DoxyCodeLine{        \{ OSMO\_GSUP\_SESSION\_STATE\_BEGIN, \textcolor{stringliteral}{"{}BEGIN"{}} \},}
\DoxyCodeLine{        \{ OSMO\_GSUP\_SESSION\_STATE\_CONTINUE, \textcolor{stringliteral}{"{}CONTINUE"{}} \},}
\DoxyCodeLine{        \{ OSMO\_GSUP\_SESSION\_STATE\_END, \textcolor{stringliteral}{"{}END"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ osmo\+\_\+gsup\+\_\+session\+\_\+state\+\_\+name()}.

