\doxysection{GSM 08.08 / 3GPP TS 48.008 A Interface}
\label{group__gsm0808}\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsection*{Files}
\begin{DoxyCompactItemize}
\item 
file \textbf{ gsm0808.\+h}
\item 
file \textbf{ gsm0808\+\_\+lcs.\+h}
\begin{DoxyCompactList}\small\item\em Declarations that depend on both gsm0808.\+h and bssmap\+\_\+le.\+h\+: LCS related message coding. \end{DoxyCompactList}\item 
file \textbf{ gsm0808\+\_\+utils.\+h}
\item 
file \textbf{ gsm0808.\+c}
\begin{DoxyCompactList}\small\item\em Helper functions regarding the TS 08.\+08 / 48.\+008 A interface, primarily message generation/encoding. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ gsm0808\+\_\+cipher\+\_\+mode\+\_\+command}
\item 
struct \textbf{ gsm0808\+\_\+old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info}
\begin{DoxyCompactList}\small\item\em 3GPP TS 48.\+008 §3.2.\+2.\+5.\+8 Old BSS to New BSS information \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+handover\+\_\+required}
\begin{DoxyCompactList}\small\item\em 3GPP TS 48.\+008 §3.2.\+1.\+9 HANDOVER REQUIRED \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+handover\+\_\+required\+\_\+reject}
\begin{DoxyCompactList}\small\item\em 3GPP TS 48.\+008 §3.2.\+1.\+37 HANDOVER REQUIRED REJECT \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+handover\+\_\+request}
\begin{DoxyCompactList}\small\item\em 3GPP TS 48.\+008 §3.2.\+1.\+8 HANDOVER REQUEST \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+handover\+\_\+request\+\_\+ack}
\item 
struct \textbf{ gsm0808\+\_\+handover\+\_\+command}
\item 
struct \textbf{ gsm0808\+\_\+handover\+\_\+complete}
\item 
struct \textbf{ gsm0808\+\_\+handover\+\_\+failure}
\item 
struct \textbf{ gsm0808\+\_\+handover\+\_\+performed}
\item 
struct \textbf{ gsm0808\+\_\+vgcs\+\_\+vbs\+\_\+setup}
\begin{DoxyCompactList}\small\item\em 3GPP TS 48.\+008 §3.2.\+1.\+50 VGCS/\+VBS SETUP \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+vgcs\+\_\+vbs\+\_\+setup\+\_\+ack}
\begin{DoxyCompactList}\small\item\em 3GPP TS 48.\+008 §3.2.\+1.\+51 VGCS/\+VBS SETUP ACK \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+req}
\begin{DoxyCompactList}\small\item\em 3GPP TS 48.\+008 §3.2.\+1.\+53 VGCS/\+VBS ASSIGNMENT REQUEST \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+res}
\begin{DoxyCompactList}\small\item\em 3GPP TS 48.\+008 §3.2.\+1.\+54 VGCS/\+VBS ASSIGNMENT RESULT \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+fail}
\begin{DoxyCompactList}\small\item\em 3GPP TS 48.\+008 §3.2.\+1.\+55 VGCS/\+VBS ASSIGNMENT FAILURE \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+uplink\+\_\+request}
\begin{DoxyCompactList}\small\item\em 3GPP TS 48.\+008 §3.2.\+1.\+57 (VGCS) UPLINK REQUEST \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+uplink\+\_\+request\+\_\+ack}
\begin{DoxyCompactList}\small\item\em 3GPP TS 48.\+008 §3.2.\+1.\+58 (VGCS) UPLINK REQUEST ACKNOWLEDGE \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+uplink\+\_\+request\+\_\+cnf}
\begin{DoxyCompactList}\small\item\em 3GPP TS 48.\+008 §3.2.\+1.\+59 (VGCS) UPLINK REQUEST CONFIRM \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+uplink\+\_\+app\+\_\+data}
\begin{DoxyCompactList}\small\item\em 3GPP TS 48.\+008 §3.2.\+1.\+59a (VGCS) UPLINK APPLICATION DATA \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+uplink\+\_\+release\+\_\+ind}
\begin{DoxyCompactList}\small\item\em 3GPP TS 48.\+008 §3.2.\+1.\+60 (VGCS) UPLINK RELEASE INDICATION \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+uplink\+\_\+reject\+\_\+cmd}
\begin{DoxyCompactList}\small\item\em 3GPP TS 48.\+008 §3.2.\+1.\+61 (VGCS) UPLINK REJECT COMMAND \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+uplink\+\_\+seized\+\_\+cmd}
\begin{DoxyCompactList}\small\item\em 3GPP TS 48.\+008 §3.2.\+1.\+63 (VGCS) UPLINK SEIZED COMMAND \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+vgcs\+\_\+vbs\+\_\+area\+\_\+cell\+\_\+info}
\begin{DoxyCompactList}\small\item\em 3GPP TS 48.\+008 §3.2.\+1.\+79 VGCS/\+VBS AREA CELL INFO \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+stat}
\begin{DoxyCompactList}\small\item\em 3GPP TS 48.\+008 §3.2.\+1.\+80 VGCS/\+VBS ASSIGNMENT STATUS \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+notification\+\_\+data}
\begin{DoxyCompactList}\small\item\em 3GPP TS 48.\+008 §3.2.\+1.\+82 (VGCS/\+VBS) NOTIFICATION DATA \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+perform\+\_\+location\+\_\+request}
\item 
struct \textbf{ gsm0808\+\_\+perform\+\_\+location\+\_\+response}
\item 
union \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u}
\begin{DoxyCompactList}\small\item\em Instead of this, use either struct \doxyref{gsm0808\+\_\+cell\+\_\+id}{p.}{structgsm0808__cell__id} or \doxyref{gsm0808\+\_\+cell\+\_\+id\+\_\+list2}{p.}{structgsm0808__cell__id__list2}. \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+cell\+\_\+id}
\begin{DoxyCompactList}\small\item\em Parsed representation of Cell Identifier IE (3GPP TS 48.\+008 3.\+2.\+2.\+17) \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2}
\begin{DoxyCompactList}\small\item\em Parsed representation of a Cell Identifier List IE (3GPP TS 48.\+008 3.\+2.\+2.\+27). \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+priority}
\begin{DoxyCompactList}\small\item\em Packed representation of a Priority IE (GGPP TS 48.\+008 3.\+2.\+2.\+18) \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+vgcs\+\_\+feature\+\_\+flags}
\begin{DoxyCompactList}\small\item\em Packed representation of a VGCS Feature Flags IE (3GPP TS 48.\+008 3.\+2.\+2.\+88) \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+group\+\_\+callref}
\begin{DoxyCompactList}\small\item\em Packed representation of a Group Call Reference IE (3GPP TS 48.\+008 3.\+2.\+2.\+55) \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+segment}
\begin{DoxyCompactList}\small\item\em Parsed representation of a Cell Identifier List Segment IE (3GPP TS 48.\+008 3.\+2.\+2.\+27a) \end{DoxyCompactList}\item 
struct \textbf{ gsm0808\+\_\+circuit\+\_\+pool\+\_\+list}
\item 
struct \textbf{ gsm0808\+\_\+layer\+\_\+3\+\_\+information}
\item 
struct \textbf{ gsm0808\+\_\+talker\+\_\+identity}
\item 
struct \textbf{ gsm0808\+\_\+sms\+\_\+to\+\_\+vgcs}
\item 
struct \textbf{ gsm0808\+\_\+application\+\_\+data}
\item 
struct \textbf{ gsm0808\+\_\+data\+\_\+identity}
\item 
struct \textbf{ osmo\+\_\+lcls}
\begin{DoxyCompactList}\small\item\em LCLS-\/related parameters from 3GPP TS 48.\+008. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}~1024
\item 
\#define \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}~512
\item 
\#define \textbf{ osmo\+\_\+bssap\+\_\+tlv\+\_\+parse}(dec,  buf,  \textbf{ len})~\textbf{ tlv\+\_\+parse}(dec, \textbf{ gsm0808\+\_\+att\+\_\+tlvdef}(), buf, \textbf{ len}, 0, 0)
\begin{DoxyCompactList}\small\item\em Parse BSSAP TLV structure using \doxyref{tlv\+\_\+parse}{p.}{group__tlv_gaa52227475e0050c2f0c78cb612e01d65}. \end{DoxyCompactList}\item 
\#define \textbf{ osmo\+\_\+bssap\+\_\+tlv\+\_\+parse2}(dec,  dec\+\_\+multiples,  buf,  \textbf{ len})~ \textbf{ tlv\+\_\+parse2}(dec, dec\+\_\+multiples, \textbf{ gsm0808\+\_\+att\+\_\+tlvdef}(), buf, \textbf{ len}, 0, 0)
\begin{DoxyCompactList}\small\item\em Parse BSSAP TLV structure using \doxyref{tlv\+\_\+parse2}{p.}{group__tlv_ga4859a889693eec53ecb79f361e1884a7}. \end{DoxyCompactList}\item 
\#define \textbf{ GSM0808\+\_\+\+CELL\+\_\+\+ID\+\_\+\+LIST2\+\_\+\+MAXLEN}~127
\begin{DoxyCompactList}\small\item\em (225-\/1)/2 is the maximum number of elements in a cell identifier list. \end{DoxyCompactList}\item 
\#define \textbf{ CIRCUIT\+\_\+\+POOL\+\_\+\+LIST\+\_\+\+MAXLEN}~252
\begin{DoxyCompactList}\small\item\em Parsed representation of a Circuit Pool List IE (3GPP TS 48.\+008 3.\+2.\+2.\+26) \end{DoxyCompactList}\item 
\#define \textbf{ LAYER\+\_\+3\+\_\+\+INFORMATION\+\_\+\+MAXLEN}~252
\begin{DoxyCompactList}\small\item\em Parsed representation of a Layer 3 Information IE (3GPP TS 48.\+008 3.\+2.\+2.\+24) \end{DoxyCompactList}\item 
\#define \textbf{ TALKER\+\_\+\+IDENTITY\+\_\+\+MAXLEN}~17
\begin{DoxyCompactList}\small\item\em Parsed representation of a Talker Identity IE (3GPP TS 48.\+008 3.\+2.\+2.\+91) \end{DoxyCompactList}\item 
\#define \textbf{ SMS\+\_\+\+TO\+\_\+\+VGCS\+\_\+\+MAXLEN}~252
\begin{DoxyCompactList}\small\item\em Parsed representation of a SMS to VGCS IE (3GPP TS 48.\+008 3.\+2.\+2.\+92) \end{DoxyCompactList}\item 
\#define \textbf{ APP\+\_\+\+DATA\+\_\+\+MAXLEN}~9
\begin{DoxyCompactList}\small\item\em Parsed representation of a Application Data IE (3GPP TS 48.\+008 3.\+2.\+2.\+98) \end{DoxyCompactList}\item 
\#define \textbf{ GSM0808\+\_\+\+DP\+\_\+\+MASK\+\_\+\+TALKERS\+\_\+\+LISTENERS}~0x04
\item 
\#define \textbf{ GSM0808\+\_\+\+DP\+\_\+\+MASK\+\_\+\+DISPATCHERS}~0x02
\item 
\#define \textbf{ GSM0808\+\_\+\+DP\+\_\+\+MASK\+\_\+\+NETWORK\+\_\+\+APP}~0x01
\item 
\#define \textbf{ MSISDN\+\_\+\+MAXLEN}~20
\begin{DoxyCompactList}\small\item\em Parsed representation of a MSISDN IE (3GPP TS 48.\+008 3.\+2.\+2.\+101) \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \textbf{ gsm0808\+\_\+assignment\+\_\+requirement} \{ \newline
\textbf{ GSM0808\+\_\+\+ASRQ\+\_\+\+DELAY\+\_\+\+ALLOWED} = 0x00
, \newline
\textbf{ GSM0808\+\_\+\+ASRQ\+\_\+\+IMMEDIATE} = 0x01
, \newline
\textbf{ GSM0808\+\_\+\+ASRQ\+\_\+\+IMMEDIATE\+\_\+\+ON\+\_\+\+DEMAND} = 0x02
 \}
\item 
enum \textbf{ gsm0808\+\_\+service\+\_\+flag} \{ \newline
\textbf{ GSM0808\+\_\+\+SF\+\_\+\+VBS} = 0
, \newline
\textbf{ GSM0808\+\_\+\+SF\+\_\+\+VGCS} = 1
 \}
\item 
enum \textbf{ gsm0808\+\_\+call\+\_\+priority} \{ \newline
\textbf{ GSM0808\+\_\+\+CALL\+\_\+\+PRIORITY\+\_\+\+NONE} = 0x00
, \newline
\textbf{ GSM0808\+\_\+\+CALL\+\_\+\+PRIORITY\+\_\+\+LEVEL\+\_\+4} = 0x01
, \newline
\textbf{ GSM0808\+\_\+\+CALL\+\_\+\+PRIORITY\+\_\+\+LEVEL\+\_\+3} = 0x02
, \newline
\textbf{ GSM0808\+\_\+\+CALL\+\_\+\+PRIORITY\+\_\+\+LEVEL\+\_\+2} = 0x03
, \newline
\textbf{ GSM0808\+\_\+\+CALL\+\_\+\+PRIORITY\+\_\+\+LEVEL\+\_\+1} = 0x04
, \newline
\textbf{ GSM0808\+\_\+\+CALL\+\_\+\+PRIORITY\+\_\+\+LEVEL\+\_\+0} = 0x05
, \newline
\textbf{ GSM0808\+\_\+\+CALL\+\_\+\+PRIORITY\+\_\+\+LEVEL\+\_\+B} = 0x06
, \newline
\textbf{ GSM0808\+\_\+\+CALL\+\_\+\+PRIORITY\+\_\+\+LEVEL\+\_\+A} = 0x07
 \}
\item 
enum \textbf{ gsm0808\+\_\+downlink\+\_\+dtx\+\_\+flag} \{ \newline
\textbf{ GSM0808\+\_\+\+DTX\+\_\+\+FLAG\+\_\+\+ALLOW} = 0
, \newline
\textbf{ GSM0808\+\_\+\+DTX\+\_\+\+FLAG\+\_\+\+FORBID} = 1
 \}
\item 
enum \textbf{ gsm0808\+\_\+talker\+\_\+priority} \{ \newline
\textbf{ GSM0808\+\_\+\+TALKER\+\_\+\+PRIORITY\+\_\+\+NORMAL} = 0x00
, \newline
\textbf{ GSM0808\+\_\+\+TALKER\+\_\+\+PRIORITY\+\_\+\+PRIVILEGED} = 0x01
, \newline
\textbf{ GSM0808\+\_\+\+TALKER\+\_\+\+PRIORITY\+\_\+\+EMERGENCY} = 0x02
 \}
\item 
enum \textbf{ gsm0808\+\_\+vgcs\+\_\+vbs\+\_\+cell\+\_\+status} \{ \newline
\textbf{ GSM0808\+\_\+\+CSTAT\+\_\+\+ESTABLISHED} = 0x00
, \newline
\textbf{ GSM0808\+\_\+\+CSTAT\+\_\+\+NOT\+\_\+\+ESTABLISHED1} = 0x01
, \newline
\textbf{ GSM0808\+\_\+\+CSTAT\+\_\+\+RELEASED\+\_\+\+NO\+\_\+\+USER} = 0x02
, \newline
\textbf{ GSM0808\+\_\+\+CSTAT\+\_\+\+NOT\+\_\+\+ESTABLISHED2} = 0x03
 \}
\item 
enum \textbf{ gsm0808\+\_\+application\+\_\+idndicator} \{ \newline
\textbf{ GSM0808\+\_\+\+AI\+\_\+\+APP\+\_\+\+DATA} = 0x00
, \newline
\textbf{ GSM0808\+\_\+\+AI\+\_\+\+CONFIRM\+\_\+\+APP\+\_\+\+DATA} = 0x01
 \}
\begin{DoxyCompactList}\small\item\em Packed representation of a Data Identity IE (GGPP TS 48.\+008 3.\+2.\+2.\+99) \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+layer3} (struct \textbf{ msgb} $\ast$msg\+\_\+l3, uint16\+\_\+t nc, uint16\+\_\+t cc, int \textbf{ lac}, uint16\+\_\+t \+\_\+ci)
\begin{DoxyCompactList}\small\item\em Create \char`\"{}\+Complete L3 Info\char`\"{} for A, legacy implementation. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+layer3\+\_\+aoip} (const struct \textbf{ msgb} $\ast$msg\+\_\+l3, uint16\+\_\+t nc, uint16\+\_\+t cc, int \textbf{ lac}, uint16\+\_\+t \+\_\+ci, const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list} $\ast$scl)
\begin{DoxyCompactList}\small\item\em Create \char`\"{}\+Complete L3 Info\char`\"{} for Ao\+IP, legacy implementation. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+layer3\+\_\+2} (const struct \textbf{ msgb} $\ast$msg\+\_\+l3, const struct \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id} $\ast$cell, const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list} $\ast$scl)
\begin{DoxyCompactList}\small\item\em Create \char`\"{}\+Complete L3 Info\char`\"{} for Ao\+IP. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+reset} (void)
\begin{DoxyCompactList}\small\item\em Create BSSMAP RESET message. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+reset\+\_\+ack} (void)
\begin{DoxyCompactList}\small\item\em Create BSSMAP RESET ACK message. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+clear\+\_\+command} (uint8\+\_\+t \textbf{ cause})
\begin{DoxyCompactList}\small\item\em Create BSSMAP Clear Command message with BSSAP header {\itshape before} l3h and BSSMAP in l3h. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+clear\+\_\+command2} (uint8\+\_\+t \textbf{ cause}, bool csfb\+\_\+ind)
\begin{DoxyCompactList}\small\item\em Create BSSMAP Clear Command message. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+clear\+\_\+complete} (void)
\begin{DoxyCompactList}\small\item\em Create BSSMAP Clear Complete message. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+cipher} (const struct \textbf{ gsm0808\+\_\+encrypt\+\_\+info} $\ast$ei, const uint8\+\_\+t $\ast$cipher\+\_\+response\+\_\+mode)
\begin{DoxyCompactList}\small\item\em Superseded by \doxyref{gsm0808\+\_\+create\+\_\+cipher2()}{p.}{group__gsm0808_ga10e9815fbea313738b6c5616df8e5491} to include Kc128. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+cipher2} (const struct \textbf{ gsm0808\+\_\+cipher\+\_\+mode\+\_\+command} $\ast$cmc)
\begin{DoxyCompactList}\small\item\em Create BSSMAP Cipher Mode Command message. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+cipher\+\_\+complete} (struct \textbf{ msgb} $\ast$layer3, uint8\+\_\+t alg\+\_\+id)
\begin{DoxyCompactList}\small\item\em Create BSSMAP Cipher Mode Complete message. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+cipher\+\_\+reject} (enum \textbf{ gsm0808\+\_\+cause} \textbf{ cause})
\begin{DoxyCompactList}\small\item\em Create BSSMAP Cipher Mode Reject message. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+cipher\+\_\+reject\+\_\+ext} (enum \textbf{ gsm0808\+\_\+cause\+\_\+class} class, uint8\+\_\+t ext)
\begin{DoxyCompactList}\small\item\em Create BSSMAP Cipher Mode Reject message. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+classmark\+\_\+request} (void)
\begin{DoxyCompactList}\small\item\em Create BSSMAP Classmark Request message. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+classmark\+\_\+update} (const uint8\+\_\+t $\ast$\textbf{ cm2}, uint8\+\_\+t \textbf{ cm2\+\_\+len}, const uint8\+\_\+t $\ast$cm3, uint8\+\_\+t cm3\+\_\+len)
\begin{DoxyCompactList}\small\item\em Create BSSMAP Classmark Update message. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+sapi\+\_\+reject\+\_\+cause} (uint8\+\_\+t \textbf{ link\+\_\+id}, uint16\+\_\+t \textbf{ cause})
\begin{DoxyCompactList}\small\item\em Create BSSMAP SAPI N Reject message. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+sapi\+\_\+reject} (uint8\+\_\+t \textbf{ link\+\_\+id})
\begin{DoxyCompactList}\small\item\em Create BSSMAP SAPI N Reject message (with hard-\/coded cause \char`\"{}\+BSS not equipped\char`\"{}). \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+ass} (const struct \textbf{ gsm0808\+\_\+channel\+\_\+type} $\ast$ct, const uint16\+\_\+t $\ast$cic, const struct sockaddr\+\_\+storage $\ast$ss, const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list} $\ast$scl, const uint32\+\_\+t $\ast$ci)
\begin{DoxyCompactList}\small\item\em Create BSSMAP Assignment Request message, 3GPP TS 48.\+008 §3.2.\+1.\+1. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+ass2} (const struct \textbf{ gsm0808\+\_\+channel\+\_\+type} $\ast$ct, const uint16\+\_\+t $\ast$cic, const struct sockaddr\+\_\+storage $\ast$ss, const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list} $\ast$scl, const uint32\+\_\+t $\ast$ci, const uint8\+\_\+t $\ast$kc, const struct \textbf{ osmo\+\_\+lcls} $\ast$lcls)
\begin{DoxyCompactList}\small\item\em Create BSSMAP Assignment Request message, 3GPP TS 48.\+008 §3.2.\+1.\+1. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+ass\+\_\+compl} (uint8\+\_\+t \textbf{ rr\+\_\+cause}, uint8\+\_\+t chosen\+\_\+channel, uint8\+\_\+t encr\+\_\+alg\+\_\+id, uint8\+\_\+t speech\+\_\+mode, const struct sockaddr\+\_\+storage $\ast$ss, const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec} $\ast$sc, const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list} $\ast$scl)
\begin{DoxyCompactList}\small\item\em Create BSSMAP Assignment Completed message. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+ass\+\_\+compl2} (uint8\+\_\+t \textbf{ rr\+\_\+cause}, uint8\+\_\+t chosen\+\_\+channel, uint8\+\_\+t encr\+\_\+alg\+\_\+id, uint8\+\_\+t speech\+\_\+mode, const struct sockaddr\+\_\+storage $\ast$ss, const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec} $\ast$sc, const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list} $\ast$scl, enum \textbf{ gsm0808\+\_\+lcls\+\_\+status} lcls\+\_\+bss\+\_\+status)
\begin{DoxyCompactList}\small\item\em Create BSSMAP Assignment Completed message as per 3GPP TS 48.\+008 §3.2.\+1.\+2. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+assignment\+\_\+completed} (uint8\+\_\+t \textbf{ rr\+\_\+cause}, uint8\+\_\+t chosen\+\_\+channel, uint8\+\_\+t encr\+\_\+alg\+\_\+id, uint8\+\_\+t speech\+\_\+mode)
\begin{DoxyCompactList}\small\item\em Create BSSMAP Assignment Completed message. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+ass\+\_\+fail} (uint8\+\_\+t \textbf{ cause}, const uint8\+\_\+t $\ast$\textbf{ rr\+\_\+cause}, const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list} $\ast$scl)
\begin{DoxyCompactList}\small\item\em Create BSSMAP Assignment Failure message. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+assignment\+\_\+failure} (uint8\+\_\+t \textbf{ cause}, uint8\+\_\+t $\ast$\textbf{ rr\+\_\+cause})
\begin{DoxyCompactList}\small\item\em Create BSSMAP Assignment Failure message. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+clear\+\_\+rqst} (uint8\+\_\+t \textbf{ cause})
\begin{DoxyCompactList}\small\item\em Create BSSMAP Clear Request message. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+paging2} (const char $\ast$imsi, const uint32\+\_\+t $\ast$tmsi, const struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2} $\ast$cil, const uint8\+\_\+t $\ast$chan\+\_\+needed)
\begin{DoxyCompactList}\small\item\em Create BSSMAP PAGING message. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+paging} (const char $\ast$imsi, const uint32\+\_\+t $\ast$tmsi, const struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list} $\ast$cil, const uint8\+\_\+t $\ast$chan\+\_\+needed)
\begin{DoxyCompactList}\small\item\em DEPRECATED\+: Use gsm0808\+\_\+create\+\_\+paging2 instead. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+lcls\+\_\+conn\+\_\+ctrl} (enum \textbf{ gsm0808\+\_\+lcls\+\_\+config} \textbf{ config}, enum \textbf{ gsm0808\+\_\+lcls\+\_\+control} control)
\begin{DoxyCompactList}\small\item\em Create BSSMAP LCLS CONNECT CONTROL message (TS 48.\+008 3.\+2.\+1.\+91). \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+lcls\+\_\+conn\+\_\+ctrl\+\_\+ack} (enum \textbf{ gsm0808\+\_\+lcls\+\_\+status} status)
\begin{DoxyCompactList}\small\item\em Create BSSMAP LCLS CONNECT CONTROL ACK message (TS 48.\+008 3.\+2.\+1.\+92). \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+lcls\+\_\+notification} (enum \textbf{ gsm0808\+\_\+lcls\+\_\+status} status, bool break\+\_\+req)
\begin{DoxyCompactList}\small\item\em Create BSSMAP LCLS NOTIFICATION message (TS 48.\+008 3.\+2.\+1.\+93). \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+common\+\_\+id} (const char $\ast$imsi, const struct \textbf{ osmo\+\_\+plmn\+\_\+id} $\ast$selected\+\_\+plmn\+\_\+id, const struct \textbf{ osmo\+\_\+plmn\+\_\+id} $\ast$last\+\_\+used\+\_\+eutran\+\_\+plnm\+\_\+id)
\begin{DoxyCompactList}\small\item\em Create BSSMAP COMMON ID message, 3GPP TS 48.\+008 3.\+2.\+1.\+68. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+required} (const struct \textbf{ gsm0808\+\_\+handover\+\_\+required} $\ast$\textbf{ params})
\begin{DoxyCompactList}\small\item\em Create BSSMAP HANDOVER REQUIRED message. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+required\+\_\+reject} (const struct \textbf{ gsm0808\+\_\+handover\+\_\+required\+\_\+reject} $\ast$\textbf{ params})
\begin{DoxyCompactList}\small\item\em Create BSSMAP HANDOVER REQUIRED REJECT message. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+request} (const struct \textbf{ gsm0808\+\_\+handover\+\_\+request} $\ast$\textbf{ params})
\begin{DoxyCompactList}\small\item\em Create BSSMAP HANDOVER REQUEST message, 3GPP TS 48.\+008 3.\+2.\+1.\+8. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+request\+\_\+ack} (const uint8\+\_\+t $\ast$l3\+\_\+info, uint8\+\_\+t l3\+\_\+info\+\_\+len, uint8\+\_\+t chosen\+\_\+channel, uint8\+\_\+t chosen\+\_\+encr\+\_\+alg, uint8\+\_\+t chosen\+\_\+speech\+\_\+version)
\begin{DoxyCompactList}\small\item\em Same as \doxyref{gsm0808\+\_\+create\+\_\+handover\+\_\+request\+\_\+ack2()}{p.}{group__gsm0808_ga0284dcad7523250e84c6f3877a4760a2} but with less parameters. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+request\+\_\+ack2} (const struct \textbf{ gsm0808\+\_\+handover\+\_\+request\+\_\+ack} $\ast$\textbf{ params})
\begin{DoxyCompactList}\small\item\em Create BSSMAP HANDOVER REQUEST ACKNOWLEDGE message, 3GPP TS 48.\+008 3.\+2.\+1.\+10. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+command} (const struct \textbf{ gsm0808\+\_\+handover\+\_\+command} $\ast$\textbf{ params})
\begin{DoxyCompactList}\small\item\em Create BSSMAP HANDOVER COMMAND message, 3GPP TS 48.\+008 3.\+2.\+1.\+11. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+detect} (void)
\begin{DoxyCompactList}\small\item\em Create BSSMAP HANDOVER DETECT message, 3GPP TS 48.\+008 3.\+2.\+1.\+40. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+succeeded} (void)
\begin{DoxyCompactList}\small\item\em Create BSSMAP HANDOVER SUCCEEDED message, 3GPP TS 48.\+008 3.\+2.\+1.\+13. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+complete} (const struct \textbf{ gsm0808\+\_\+handover\+\_\+complete} $\ast$\textbf{ params})
\begin{DoxyCompactList}\small\item\em Create BSSMAP HANDOVER COMPLETE message, 3GPP TS 48.\+008 3.\+2.\+1.\+12. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+failure} (const struct \textbf{ gsm0808\+\_\+handover\+\_\+failure} $\ast$\textbf{ params})
\begin{DoxyCompactList}\small\item\em Create BSSMAP HANDOVER FAILURE message, 3GPP TS 48.\+008 3.\+2.\+1.\+16. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+performed} (const struct \textbf{ gsm0808\+\_\+handover\+\_\+performed} $\ast$\textbf{ params})
\begin{DoxyCompactList}\small\item\em Create BSSMAP HANDOVER PERFORMED message, 3GPP TS 48.\+008 3.\+2.\+1.\+25. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+setup} (const struct \textbf{ gsm0808\+\_\+vgcs\+\_\+vbs\+\_\+setup} $\ast$\textbf{ params})
\begin{DoxyCompactList}\small\item\em Create BSSMAP VGCS/\+VBS SETUP message, 3GPP TS 48.\+008 3.\+2.\+1.\+50. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+setup\+\_\+ack} (const struct \textbf{ gsm0808\+\_\+vgcs\+\_\+vbs\+\_\+setup\+\_\+ack} $\ast$\textbf{ params})
\begin{DoxyCompactList}\small\item\em Create BSSMAP VGCS/\+VBS SETUP ACK message, 3GPP TS 48.\+008 3.\+2.\+1.\+51. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+setup\+\_\+refuse} (enum \textbf{ gsm0808\+\_\+cause} \textbf{ cause})
\begin{DoxyCompactList}\small\item\em 3GPP TS 48.\+008 §3.2.\+1.\+52 VGCS/\+VBS SETUP REFUSE \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+req} (const struct \textbf{ gsm0808\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+req} $\ast$\textbf{ params})
\begin{DoxyCompactList}\small\item\em Create BSSMAP VGCS/\+VBS ASSIGNMENT REQUEST message, 3GPP TS 48.\+008 3.\+2.\+1.\+53. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+res} (const struct \textbf{ gsm0808\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+res} $\ast$\textbf{ params})
\begin{DoxyCompactList}\small\item\em Create BSSMAP VGCS/\+VBS ASSIGNMENT RESULT message, 3GPP TS 48.\+008 3.\+2.\+1.\+54. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+fail} (const struct \textbf{ gsm0808\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+fail} $\ast$\textbf{ params})
\begin{DoxyCompactList}\small\item\em Create BSSMAP VGCS/\+VBS ASSIGNMENT FAILURE message, 3GPP TS 48.\+008 3.\+2.\+1.\+55. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+uplink\+\_\+request} (const struct \textbf{ gsm0808\+\_\+uplink\+\_\+request} $\ast$\textbf{ params})
\begin{DoxyCompactList}\small\item\em Create BSSMAP (VGCS) UPLINK REQUEST message, 3GPP TS 48.\+008 3.\+2.\+1.\+57. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+uplink\+\_\+request\+\_\+ack} (const struct \textbf{ gsm0808\+\_\+uplink\+\_\+request\+\_\+ack} $\ast$\textbf{ params})
\begin{DoxyCompactList}\small\item\em Create BSSMAP (VGCS) UPLINK REQUEST ACKNOWLEDGE message, 3GPP TS 48.\+008 3.\+2.\+1.\+58. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+uplink\+\_\+request\+\_\+cnf} (const struct \textbf{ gsm0808\+\_\+uplink\+\_\+request\+\_\+cnf} $\ast$\textbf{ params})
\begin{DoxyCompactList}\small\item\em Create BSSMAP (VGCS) UPLINK CONFIRM message, 3GPP TS 48.\+008 3.\+2.\+1.\+59. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+uplink\+\_\+app\+\_\+data} (const struct \textbf{ gsm0808\+\_\+uplink\+\_\+app\+\_\+data} $\ast$\textbf{ params})
\begin{DoxyCompactList}\small\item\em Create BSSMAP (VGCS) UPLINK APPLICATION DATA message, 3GPP TS 48.\+008 3.\+2.\+1.\+59a. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+uplink\+\_\+release\+\_\+ind} (const struct \textbf{ gsm0808\+\_\+uplink\+\_\+release\+\_\+ind} $\ast$\textbf{ params})
\begin{DoxyCompactList}\small\item\em Create BSSMAP (VGCS) UPLINK RELEASE INDICATION message, 3GPP TS 48.\+008 3.\+2.\+1.\+60. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+uplink\+\_\+reject\+\_\+cmd} (const struct \textbf{ gsm0808\+\_\+uplink\+\_\+reject\+\_\+cmd} $\ast$\textbf{ params})
\begin{DoxyCompactList}\small\item\em Create BSSMAP (VGCS) UPLINK REJECT COMMAND message, 3GPP TS 48.\+008 3.\+2.\+1.\+61. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+uplink\+\_\+release\+\_\+cmd} (const enum \textbf{ gsm0808\+\_\+cause} \textbf{ cause})
\begin{DoxyCompactList}\small\item\em 3GPP TS 48.\+008 §3.2.\+1.\+62 (VGCS) UPLINK RELEASE COMMAND \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+uplink\+\_\+seized\+\_\+cmd} (const struct \textbf{ gsm0808\+\_\+uplink\+\_\+seized\+\_\+cmd} $\ast$\textbf{ params})
\begin{DoxyCompactList}\small\item\em Create BSSMAP (VGCS) UPLINK SEIZED COMMAND message, 3GPP TS 48.\+008 3.\+2.\+1.\+62. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+additional\+\_\+info} (const struct \textbf{ gsm0808\+\_\+talker\+\_\+identity} $\ast$ti)
\begin{DoxyCompactList}\small\item\em 3GPP TS 48.\+008 §3.2.\+1.\+78 VGCS ADDITIONAL INFORMATION \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+area\+\_\+cell\+\_\+info} (const struct \textbf{ gsm0808\+\_\+vgcs\+\_\+vbs\+\_\+area\+\_\+cell\+\_\+info} $\ast$\textbf{ params})
\begin{DoxyCompactList}\small\item\em Create BSSMAP VGCS/\+VBS AREA CELL INFO message, 3GPP TS 48.\+008 3.\+2.\+1.\+79. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+stat} (const struct \textbf{ gsm0808\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+stat} $\ast$\textbf{ params})
\begin{DoxyCompactList}\small\item\em Create BSSMAP VGCS/\+VBS ASSIGNMENT STATUS message, 3GPP TS 48.\+008 3.\+2.\+1.\+80. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+sms} (const struct \textbf{ gsm0808\+\_\+sms\+\_\+to\+\_\+vgcs} $\ast$sms)
\begin{DoxyCompactList}\small\item\em 3GPP TS 48.\+008 §3.2.\+1.\+81 VGCS SMS \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+notification\+\_\+data} (const struct \textbf{ gsm0808\+\_\+notification\+\_\+data} $\ast$\textbf{ params})
\begin{DoxyCompactList}\small\item\em Create BSSMAP (VGCS/\+VBS) NOTIFICATION DATA message, 3GPP TS 48.\+008 3.\+2.\+1.\+82. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+dtap} (struct \textbf{ msgb} $\ast$msg\+\_\+l3, uint8\+\_\+t \textbf{ link\+\_\+id})
\begin{DoxyCompactList}\small\item\em Create BSSMAP DTAP message. \end{DoxyCompactList}\item 
void \textbf{ gsm0808\+\_\+prepend\+\_\+dtap\+\_\+header} (struct \textbf{ msgb} $\ast$\textbf{ msg}, uint8\+\_\+t \textbf{ link\+\_\+id})
\begin{DoxyCompactList}\small\item\em Prepend a DTAP header to given Message Buffer. \end{DoxyCompactList}\item 
const struct \textbf{ tlv\+\_\+definition} $\ast$ \textbf{ gsm0808\+\_\+att\+\_\+tlvdef} (void)
\item 
const char $\ast$ \textbf{ gsm0808\+\_\+bssmap\+\_\+name} (uint8\+\_\+t \textbf{ msg\+\_\+type})
\begin{DoxyCompactList}\small\item\em Return string name of BSSMAP Message Type. \end{DoxyCompactList}\item 
const char $\ast$ \textbf{ gsm0808\+\_\+bssap\+\_\+name} (uint8\+\_\+t \textbf{ msg\+\_\+type})
\begin{DoxyCompactList}\small\item\em Return string name of BSSAP Message Type. \end{DoxyCompactList}\item 
const char $\ast$ \textbf{ gsm0808\+\_\+cause\+\_\+name} (enum \textbf{ gsm0808\+\_\+cause} \textbf{ cause})
\begin{DoxyCompactList}\small\item\em Return string name of BSSMAP Cause name. \end{DoxyCompactList}\item 
const char $\ast$ \textbf{ gsm0808\+\_\+cause\+\_\+class\+\_\+name} (enum \textbf{ gsm0808\+\_\+cause\+\_\+class} class)
\begin{DoxyCompactList}\small\item\em Return string name of BSSMAP Cause Class name. \end{DoxyCompactList}\item 
enum \textbf{ gsm0808\+\_\+cause} \textbf{ gsm0808\+\_\+get\+\_\+cause} (const struct \textbf{ tlv\+\_\+parsed} $\ast$tp)
\begin{DoxyCompactList}\small\item\em Parse Cause TLV 3GPP TS 08.\+08 §3.2.\+2.\+5. \end{DoxyCompactList}\item 
const char $\ast$ \textbf{ gsm0808\+\_\+diagnostics\+\_\+octet\+\_\+location\+\_\+str} (uint8\+\_\+t pointer)
\item 
const char $\ast$ \textbf{ gsm0808\+\_\+diagnostics\+\_\+bit\+\_\+location\+\_\+str} (uint8\+\_\+t bit\+\_\+pointer)
\item 
static const char $\ast$ \textbf{ gsm0808\+\_\+lcls\+\_\+config\+\_\+name} (enum \textbf{ gsm0808\+\_\+lcls\+\_\+config} val)
\item 
static const char $\ast$ \textbf{ gsm0808\+\_\+lcls\+\_\+control\+\_\+name} (enum \textbf{ gsm0808\+\_\+lcls\+\_\+control} val)
\item 
static const char $\ast$ \textbf{ gsm0808\+\_\+lcls\+\_\+status\+\_\+name} (enum \textbf{ gsm0808\+\_\+lcls\+\_\+status} val)
\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+perform\+\_\+location\+\_\+request} (const struct \textbf{ gsm0808\+\_\+perform\+\_\+location\+\_\+request} $\ast$\textbf{ params})
\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+perform\+\_\+location\+\_\+response} (const struct \textbf{ gsm0808\+\_\+perform\+\_\+location\+\_\+response} $\ast$\textbf{ params})
\item 
int \textbf{ gsm0808\+\_\+enc\+\_\+lcs\+\_\+cause} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const struct \textbf{ lcs\+\_\+cause\+\_\+ie} $\ast$\textbf{ lcs\+\_\+cause})
\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+perform\+\_\+location\+\_\+abort} (const struct \textbf{ lcs\+\_\+cause\+\_\+ie} $\ast$\textbf{ lcs\+\_\+cause})
\item 
struct \textbf{ gsm0808\+\_\+priority} \textbf{ \+\_\+\+\_\+attribute\+\_\+\+\_\+} ((packed))
\item 
char $\ast$ \textbf{ osmo\+\_\+lcls\+\_\+dump} (const struct \textbf{ osmo\+\_\+lcls} $\ast$lcls)
\begin{DoxyCompactList}\small\item\em Dump LCLS parameters (GCR excluded) into static string buffer for printing. \end{DoxyCompactList}\item 
char $\ast$ \textbf{ osmo\+\_\+lcls\+\_\+dump\+\_\+buf} (char $\ast$buf, size\+\_\+t buf\+\_\+len, const struct \textbf{ osmo\+\_\+lcls} $\ast$lcls)
\begin{DoxyCompactList}\small\item\em Dump LCLS parameters (GCR excluded) into string for printing. \end{DoxyCompactList}\item 
char $\ast$ \textbf{ osmo\+\_\+lcls\+\_\+dump\+\_\+c} (void $\ast$ctx, const struct \textbf{ osmo\+\_\+lcls} $\ast$lcls)
\item 
char $\ast$ \textbf{ osmo\+\_\+gcr\+\_\+dump} (const struct \textbf{ osmo\+\_\+lcls} $\ast$lcls)
\begin{DoxyCompactList}\small\item\em Dump GCR struct into static string buffer for printing. \end{DoxyCompactList}\item 
char $\ast$ \textbf{ osmo\+\_\+gcr\+\_\+dump\+\_\+buf} (char $\ast$buf, size\+\_\+t buf\+\_\+len, const struct \textbf{ osmo\+\_\+lcls} $\ast$lcls)
\begin{DoxyCompactList}\small\item\em Dump GCR struct into string for printing. \end{DoxyCompactList}\item 
static const char $\ast$ \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+discr\+\_\+name} (enum \textbf{ CELL\+\_\+\+IDENT} id\+\_\+discr)
\item 
const char $\ast$ \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+name} (const struct \textbf{ gsm0808\+\_\+cell\+\_\+id} $\ast$cid)
\begin{DoxyCompactList}\small\item\em Return a human readable representation of a Cell Identifier, like \char`\"{}\+LAC\+:123\char`\"{} or \char`\"{}\+CGI\+:001-\/01-\/42-\/23\char`\"{}. \end{DoxyCompactList}\item 
const char $\ast$ \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+name2} (const struct \textbf{ gsm0808\+\_\+cell\+\_\+id} $\ast$cid)
\begin{DoxyCompactList}\small\item\em Like \doxyref{gsm0808\+\_\+cell\+\_\+id\+\_\+name()}{p.}{group__gsm0808_ga2b84f9bc343dae5ee69ffcb7e504efeb} but uses a different static buffer. \end{DoxyCompactList}\item 
char $\ast$ \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+name\+\_\+buf} (char $\ast$buf, size\+\_\+t buflen, const struct \textbf{ gsm0808\+\_\+cell\+\_\+id} $\ast$cid)
\item 
char $\ast$ \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+name\+\_\+c} (const void $\ast$ctx, const struct \textbf{ gsm0808\+\_\+cell\+\_\+id} $\ast$cid)
\item 
const char $\ast$ \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+name} (const struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2} $\ast$cil)
\begin{DoxyCompactList}\small\item\em Return a human-\/readable representation of {\itshape cil} in a static buffer. \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+name\+\_\+buf} (char $\ast$buf, size\+\_\+t buflen, const struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2} $\ast$cil)
\begin{DoxyCompactList}\small\item\em Return a human readable representation of the Cell Identifier List, like \char`\"{}\+LAC[2]\+:\{123, 456\}\char`\"{}. \end{DoxyCompactList}\item 
char $\ast$ \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+name\+\_\+c} (const void $\ast$ctx, const struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2} $\ast$cil)
\item 
int \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+\_\+name} (char $\ast$buf, size\+\_\+t buflen, enum \textbf{ CELL\+\_\+\+IDENT} id\+\_\+discr, const union \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u} $\ast$u)
\begin{DoxyCompactList}\small\item\em Print a human readable name of the cell identifier to the char buffer. \end{DoxyCompactList}\item 
bool \textbf{ gsm0808\+\_\+cell\+\_\+ids\+\_\+match} (const struct \textbf{ gsm0808\+\_\+cell\+\_\+id} $\ast$id1, const struct \textbf{ gsm0808\+\_\+cell\+\_\+id} $\ast$id2, bool exact\+\_\+match)
\begin{DoxyCompactList}\small\item\em Return true if the common information between the two Cell Identifiers match. \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+matches\+\_\+list} (const struct \textbf{ gsm0808\+\_\+cell\+\_\+id} $\ast$id, const struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2} $\ast$list, unsigned int match\+\_\+nr, bool exact\+\_\+match)
\begin{DoxyCompactList}\small\item\em Find an index in a Cell Identifier list that matches a given single Cell Identifer. \end{DoxyCompactList}\item 
void \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+from\+\_\+cgi} (struct \textbf{ gsm0808\+\_\+cell\+\_\+id} $\ast$cid, enum \textbf{ CELL\+\_\+\+IDENT} id\+\_\+discr, const struct \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id} $\ast$cgi)
\begin{DoxyCompactList}\small\item\em Copy information from a CGI to form a Cell Identifier of the specified kind. \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+to\+\_\+cgi} (struct \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id} $\ast$cgi, const struct \textbf{ gsm0808\+\_\+cell\+\_\+id} $\ast$cid)
\begin{DoxyCompactList}\small\item\em Overwrite parts of cgi with values from a Cell Identifier. \end{DoxyCompactList}\item 
void \textbf{ gsm0808\+\_\+msgb\+\_\+put\+\_\+cell\+\_\+id\+\_\+u} (struct \textbf{ msgb} $\ast$\textbf{ msg}, enum \textbf{ CELL\+\_\+\+IDENT} id\+\_\+discr, const union \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u} $\ast$u)
\item 
int \textbf{ gsm0808\+\_\+decode\+\_\+cell\+\_\+id\+\_\+u} (union \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u} $\ast$out, enum \textbf{ CELL\+\_\+\+IDENT} discr, const uint8\+\_\+t $\ast$buf, unsigned int \textbf{ len})
\begin{DoxyCompactList}\small\item\em Decode a single GSM 08.\+08 Cell ID list element payload. \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+size} (enum \textbf{ CELL\+\_\+\+IDENT} discr)
\item 
uint8\+\_\+t \textbf{ gsm0808\+\_\+enc\+\_\+cause} (struct \textbf{ msgb} $\ast$\textbf{ msg}, uint16\+\_\+t \textbf{ cause})
\item 
uint8\+\_\+t \textbf{ gsm0808\+\_\+enc\+\_\+aoip\+\_\+trasp\+\_\+addr} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const struct sockaddr\+\_\+storage $\ast$ss)
\item 
int \textbf{ gsm0808\+\_\+dec\+\_\+aoip\+\_\+trasp\+\_\+addr} (struct sockaddr\+\_\+storage $\ast$ss, const uint8\+\_\+t $\ast$elem, uint8\+\_\+t \textbf{ len})
\item 
int \textbf{ gsm0808\+\_\+dec\+\_\+osmux\+\_\+cid} (uint8\+\_\+t $\ast$cid, const uint8\+\_\+t $\ast$elem, uint8\+\_\+t \textbf{ len})
\item 
uint8\+\_\+t \textbf{ gsm0808\+\_\+enc\+\_\+lcls} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const struct \textbf{ osmo\+\_\+lcls} $\ast$lcls)
\begin{DoxyCompactList}\small\item\em Add LCLS parameters to a given msgb, 3GPP TS 48.\+008 §3.2.\+2.\+115 -\/ 3.\+2.\+2.\+120. \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+dec\+\_\+lcls} (struct \textbf{ osmo\+\_\+lcls} $\ast$lcls, const struct \textbf{ tlv\+\_\+parsed} $\ast$tp)
\begin{DoxyCompactList}\small\item\em Decode LCLS parameters to a given msgb, 3GPP TS 48.\+008 §3.2.\+2.\+115 -\/ 3.\+2.\+2.\+120. \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ gsm0808\+\_\+enc\+\_\+speech\+\_\+codec} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec} $\ast$sc) \textbf{ OSMO\+\_\+\+DEPRECATED}(\char`\"{}use \textbf{ gsm0808\+\_\+enc\+\_\+speech\+\_\+codec2}() \textbf{ instead}\char`\"{})
\begin{DoxyCompactList}\small\item\em Deprecated\+: \doxyref{gsm0808\+\_\+enc\+\_\+speech\+\_\+codec2()}{p.}{group__gsm0808_ga21f5330fae0c3b4da8db2ba47adfe665} wrapper for backwards compatibility. \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+enc\+\_\+speech\+\_\+codec2} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec} $\ast$sc)
\begin{DoxyCompactList}\small\item\em Encode TS 08.\+08 Speech Codec IE. \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+dec\+\_\+speech\+\_\+codec} (struct \textbf{ gsm0808\+\_\+speech\+\_\+codec} $\ast$sc, const uint8\+\_\+t $\ast$elem, uint8\+\_\+t \textbf{ len})
\begin{DoxyCompactList}\small\item\em Decode TS 08.\+08 Speech Codec IE. \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ gsm0808\+\_\+enc\+\_\+speech\+\_\+codec\+\_\+list} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list} $\ast$scl) \textbf{ OSMO\+\_\+\+DEPRECATED}(\char`\"{}use \textbf{ gsm0808\+\_\+enc\+\_\+speech\+\_\+codec\+\_\+list2}() \textbf{ instead}\char`\"{})
\begin{DoxyCompactList}\small\item\em Deprecated\+: \doxyref{gsm0808\+\_\+enc\+\_\+speech\+\_\+codec\+\_\+list2()}{p.}{group__gsm0808_ga812216127985fe502c8e5d5e32b02709} wrapper for backwards compatibility. \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+enc\+\_\+speech\+\_\+codec\+\_\+list2} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list} $\ast$scl)
\begin{DoxyCompactList}\small\item\em Encode TS 08.\+08 Speech Codec list. \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+dec\+\_\+speech\+\_\+codec\+\_\+list} (struct \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list} $\ast$scl, const uint8\+\_\+t $\ast$elem, uint8\+\_\+t \textbf{ len})
\begin{DoxyCompactList}\small\item\em Decode TS 08.\+08 Speech Codec list IE. \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ gsm0808\+\_\+enc\+\_\+channel\+\_\+type} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const struct \textbf{ gsm0808\+\_\+channel\+\_\+type} $\ast$ct)
\begin{DoxyCompactList}\small\item\em Encode TS 08.\+08 Channel Type IE. \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+dec\+\_\+channel\+\_\+type} (struct \textbf{ gsm0808\+\_\+channel\+\_\+type} $\ast$ct, const uint8\+\_\+t $\ast$elem, uint8\+\_\+t \textbf{ len})
\begin{DoxyCompactList}\small\item\em Decode TS 08.\+08 Channel Type IE. \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ gsm0808\+\_\+enc\+\_\+encrypt\+\_\+info} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const struct \textbf{ gsm0808\+\_\+encrypt\+\_\+info} $\ast$ei)
\begin{DoxyCompactList}\small\item\em Encode TS 08.\+08 Encryption Information IE. \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+dec\+\_\+encrypt\+\_\+info} (struct \textbf{ gsm0808\+\_\+encrypt\+\_\+info} $\ast$ei, const uint8\+\_\+t $\ast$elem, uint8\+\_\+t \textbf{ len})
\begin{DoxyCompactList}\small\item\em Decode TS 08.\+08 Encryption Information IE. \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+enc\+\_\+kc128} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const uint8\+\_\+t $\ast$kc128)
\begin{DoxyCompactList}\small\item\em Encode TS 48.\+008 Kc128 IE. \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+dec\+\_\+kc128} (uint8\+\_\+t $\ast$kc128, const uint8\+\_\+t $\ast$elem, uint8\+\_\+t \textbf{ len})
\begin{DoxyCompactList}\small\item\em Decode TS 48.\+008 Kc128 IE. \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ gsm0808\+\_\+enc\+\_\+cell\+\_\+id\+\_\+list2} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2} $\ast$cil)
\begin{DoxyCompactList}\small\item\em Encode TS 08.\+08 Cell Identifier List IE. \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ gsm0808\+\_\+enc\+\_\+cell\+\_\+id\+\_\+list} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list} $\ast$cil) \textbf{ OSMO\+\_\+\+DEPRECATED}(\char`\"{}use \textbf{ gsm0808\+\_\+enc\+\_\+cell\+\_\+id\+\_\+list2} \textbf{ instead}\char`\"{})
\begin{DoxyCompactList}\small\item\em DEPRECATED\+: Use gsm0808\+\_\+enc\+\_\+cell\+\_\+id\+\_\+list2 instead. \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+dec\+\_\+cell\+\_\+id\+\_\+list2} (struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2} $\ast$cil, const uint8\+\_\+t $\ast$elem, uint8\+\_\+t \textbf{ len})
\begin{DoxyCompactList}\small\item\em Decode Cell Identifier List IE. \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+dec\+\_\+cell\+\_\+id\+\_\+list} (struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list} $\ast$cil, const uint8\+\_\+t $\ast$elem, uint8\+\_\+t \textbf{ len}) \textbf{ OSMO\+\_\+\+DEPRECATED}(\char`\"{}use \textbf{ gsm0808\+\_\+dec\+\_\+cell\+\_\+id\+\_\+list2} \textbf{ instead}\char`\"{})
\begin{DoxyCompactList}\small\item\em DEPRECATED\+: Use gsm0808\+\_\+dec\+\_\+cell\+\_\+id\+\_\+list2 instead. \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+add} (struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2} $\ast$dst, const struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2} $\ast$src)
\begin{DoxyCompactList}\small\item\em Append entries from one Cell Identifier List to another. \end{DoxyCompactList}\item 
void \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+to\+\_\+list} (struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2} $\ast$dst, const struct \textbf{ gsm0808\+\_\+cell\+\_\+id} $\ast$src)
\begin{DoxyCompactList}\small\item\em Convert a single Cell Identifier to a Cell Identifier List with one entry. \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ gsm0808\+\_\+enc\+\_\+cell\+\_\+id} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const struct \textbf{ gsm0808\+\_\+cell\+\_\+id} $\ast$ci)
\begin{DoxyCompactList}\small\item\em Encode Cell Identifier IE (3GPP TS 48.\+008 3.\+2.\+2.\+17). \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+dec\+\_\+cell\+\_\+id} (struct \textbf{ gsm0808\+\_\+cell\+\_\+id} $\ast$ci, const uint8\+\_\+t $\ast$elem, uint8\+\_\+t \textbf{ len})
\begin{DoxyCompactList}\small\item\em Decode Cell Identifier IE (3GPP TS 48.\+008 3.\+2.\+2.\+17). \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+chan\+\_\+type\+\_\+to\+\_\+speech\+\_\+codec} (uint8\+\_\+t perm\+\_\+spch)
\begin{DoxyCompactList}\small\item\em Convert the representation of the permitted speech codec identifier that is used in struct \doxyref{gsm0808\+\_\+channel\+\_\+type}{p.}{structgsm0808__channel__type} to the speech codec representation we use in struct \doxyref{gsm0808\+\_\+speech\+\_\+codec}{p.}{structgsm0808__speech__codec}. \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+from\+\_\+chan\+\_\+type} (struct \textbf{ gsm0808\+\_\+speech\+\_\+codec} $\ast$sc, uint8\+\_\+t perm\+\_\+spch)
\begin{DoxyCompactList}\small\item\em Extrapolate a speech codec field from a given permitted speech parameter (channel type). \end{DoxyCompactList}\item 
uint16\+\_\+t \textbf{ gsm0808\+\_\+sc\+\_\+cfg\+\_\+from\+\_\+gsm48\+\_\+mr\+\_\+cfg} (const struct \textbf{ gsm48\+\_\+multi\+\_\+rate\+\_\+conf} $\ast$cfg, bool fr)
\begin{DoxyCompactList}\small\item\em Determine a set of AMR speech codec configuration bits (S0-\/\+S15) from a given GSM 04.\+08 AMR configuration struct. \end{DoxyCompactList}\item 
int \textbf{ gsm48\+\_\+mr\+\_\+cfg\+\_\+from\+\_\+gsm0808\+\_\+sc\+\_\+cfg} (struct \textbf{ gsm48\+\_\+multi\+\_\+rate\+\_\+conf} $\ast$cfg, uint16\+\_\+t s15\+\_\+s0)
\begin{DoxyCompactList}\small\item\em Determine a GSM 04.\+08 AMR configuration struct from a set of speech codec configuration bits (S0-\/\+S15) \end{DoxyCompactList}\item 
static enum \textbf{ gsm0808\+\_\+cause\+\_\+class} \textbf{ gsm0808\+\_\+cause\+\_\+class} (enum \textbf{ gsm0808\+\_\+cause} \textbf{ cause})
\item 
static bool \textbf{ gsm0808\+\_\+cause\+\_\+ext} (enum \textbf{ gsm0808\+\_\+cause} \textbf{ cause})
\item 
int \textbf{ gsm0808\+\_\+get\+\_\+cipher\+\_\+reject\+\_\+cause} (const struct \textbf{ tlv\+\_\+parsed} $\ast$tp) \textbf{ OSMO\+\_\+\+DEPRECATED}(\char`\"{}Use \textbf{ gsm0808\+\_\+get\+\_\+cause}() \textbf{ instead}\char`\"{})
\item 
static uint8\+\_\+t \textbf{ gsm0808\+\_\+current\+\_\+channel\+\_\+type\+\_\+1} (enum \textbf{ gsm\+\_\+chan\+\_\+t} \textbf{ type})
\item 
static enum \textbf{ gsm0808\+\_\+permitted\+\_\+speech} \textbf{ gsm0808\+\_\+permitted\+\_\+speech} (enum \textbf{ gsm\+\_\+chan\+\_\+t} \textbf{ type}, enum \textbf{ gsm48\+\_\+chan\+\_\+mode} \textbf{ mode})
\begin{DoxyCompactList}\small\item\em Return 3GPP TS 48.\+008 3.\+2.\+2.\+51 Speech Version aka permitted speech version indication in 3.\+2.\+2.\+11 Channel Type. \end{DoxyCompactList}\item 
static uint8\+\_\+t \textbf{ gsm0808\+\_\+chosen\+\_\+channel} (enum \textbf{ gsm\+\_\+chan\+\_\+t} \textbf{ type}, enum \textbf{ gsm48\+\_\+chan\+\_\+mode} \textbf{ mode})
\begin{DoxyCompactList}\small\item\em Return 3GPP TS 48.\+008 3.\+2.\+2.\+33 Chosen Channel. \end{DoxyCompactList}\item 
const char $\ast$ \textbf{ gsm0808\+\_\+channel\+\_\+type\+\_\+name} (const struct \textbf{ gsm0808\+\_\+channel\+\_\+type} $\ast$ct)
\item 
char $\ast$ \textbf{ gsm0808\+\_\+channel\+\_\+type\+\_\+name\+\_\+buf} (char $\ast$buf, size\+\_\+t buf\+\_\+len, const struct \textbf{ gsm0808\+\_\+channel\+\_\+type} $\ast$ct)
\item 
char $\ast$ \textbf{ gsm0808\+\_\+channel\+\_\+type\+\_\+name\+\_\+c} (const void $\ast$ctx, const struct \textbf{ gsm0808\+\_\+channel\+\_\+type} $\ast$ct)
\item 
uint8\+\_\+t \textbf{ gsm0808\+\_\+enc\+\_\+group\+\_\+callref} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const struct \textbf{ gsm0808\+\_\+group\+\_\+callref} $\ast$gc)
\begin{DoxyCompactList}\small\item\em Encode Group Call Reference IE (3GPP TS 48.\+008 3.\+2.\+2.\+55). \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+dec\+\_\+group\+\_\+callref} (struct \textbf{ gsm0808\+\_\+group\+\_\+callref} $\ast$gc, const uint8\+\_\+t $\ast$elem, uint8\+\_\+t \textbf{ len})
\begin{DoxyCompactList}\small\item\em Decode Group Call Reference IE (3GPP TS 48.\+008 3.\+2.\+2.\+55). \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ gsm0808\+\_\+enc\+\_\+priority} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const struct \textbf{ gsm0808\+\_\+priority} $\ast$pri)
\begin{DoxyCompactList}\small\item\em Encode Priority IE (3GPP TS 48.\+008 3.\+2.\+2.\+18). \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+dec\+\_\+priority} (struct \textbf{ gsm0808\+\_\+priority} $\ast$pri, const uint8\+\_\+t $\ast$elem, uint8\+\_\+t \textbf{ len})
\begin{DoxyCompactList}\small\item\em Decode Priority IE (3GPP TS 48.\+008 3.\+2.\+2.\+18). \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ gsm0808\+\_\+enc\+\_\+vgcs\+\_\+feature\+\_\+flags} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const struct \textbf{ gsm0808\+\_\+vgcs\+\_\+feature\+\_\+flags} $\ast$ff)
\begin{DoxyCompactList}\small\item\em Encode VGCS Feature Flags IE (3GPP TS 48.\+008 3.\+2.\+2.\+88). \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+dec\+\_\+vgcs\+\_\+feature\+\_\+flags} (struct \textbf{ gsm0808\+\_\+vgcs\+\_\+feature\+\_\+flags} $\ast$ff, const uint8\+\_\+t $\ast$elem, uint8\+\_\+t \textbf{ len})
\begin{DoxyCompactList}\small\item\em Decode VGCS Feature Flags IE (3GPP TS 48.\+008 3.\+2.\+2.\+88). \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ gsm0808\+\_\+enc\+\_\+talker\+\_\+identity} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const struct \textbf{ gsm0808\+\_\+talker\+\_\+identity} $\ast$ti)
\begin{DoxyCompactList}\small\item\em Encode Talker Identity IE (3GPP TS 48.\+008 3.\+2.\+2.\+91). \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+dec\+\_\+talker\+\_\+identity} (struct \textbf{ gsm0808\+\_\+talker\+\_\+identity} $\ast$ti, const uint8\+\_\+t $\ast$elem, uint8\+\_\+t \textbf{ len})
\begin{DoxyCompactList}\small\item\em Decode Talker Identity IE (3GPP TS 48.\+008 3.\+2.\+2.\+91). \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ gsm0808\+\_\+enc\+\_\+data\+\_\+identity} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const struct \textbf{ gsm0808\+\_\+data\+\_\+identity} $\ast$ai)
\begin{DoxyCompactList}\small\item\em Encode Data Identity IE (3GPP TS 48.\+008 3.\+2.\+2.\+99). \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+dec\+\_\+data\+\_\+identity} (struct \textbf{ gsm0808\+\_\+data\+\_\+identity} $\ast$ai, const uint8\+\_\+t $\ast$elem, uint8\+\_\+t \textbf{ len})
\begin{DoxyCompactList}\small\item\em Decode Data Identity IE (3GPP TS 48.\+008 3.\+2.\+2.\+99). \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ gsm0808\+\_\+enc\+\_\+msisdn} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const char $\ast$msisdn)
\begin{DoxyCompactList}\small\item\em Encode MSISDN IE (3GPP TS 48.\+008 3.\+2.\+2.\+101). \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+dec\+\_\+msisdn} (char $\ast$msisdn, const char $\ast$elem, uint8\+\_\+t \textbf{ len})
\begin{DoxyCompactList}\small\item\em Decode MSISDN IE (3GPP TS 48.\+008 3.\+2.\+2.\+101). \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ gsm0808\+\_\+enc\+\_\+assign\+\_\+req} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const enum \textbf{ gsm0808\+\_\+assignment\+\_\+requirement} ar)
\begin{DoxyCompactList}\small\item\em Encode Assignment Requirements IE (3GPP TS 48.\+008 3.\+2.\+2.\+52). \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+dec\+\_\+assign\+\_\+req} (enum \textbf{ gsm0808\+\_\+assignment\+\_\+requirement} $\ast$ar, const uint8\+\_\+t $\ast$elem, uint8\+\_\+t \textbf{ len})
\begin{DoxyCompactList}\small\item\em Decode Assignment Requirements IE (3GPP TS 48.\+008 3.\+2.\+2.\+52). \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ gsm0808\+\_\+enc\+\_\+cell\+\_\+id\+\_\+list\+\_\+segment} (struct \textbf{ msgb} $\ast$\textbf{ msg}, uint8\+\_\+t ie\+\_\+type, const struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+segment} $\ast$ci)
\begin{DoxyCompactList}\small\item\em Encode Cell Identifier List Segment IE (3GPP TS 48.\+008 3.\+2.\+2.\+27a). \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+dec\+\_\+cell\+\_\+id\+\_\+list\+\_\+segment} (struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+segment} $\ast$ci, const uint8\+\_\+t $\ast$elem, uint8\+\_\+t \textbf{ len})
\begin{DoxyCompactList}\small\item\em Decode Cell Identifier List Segment IE (3GPP TS 48.\+008 3.\+2.\+2.\+27a). \end{DoxyCompactList}\item 
int \textbf{ gsm0808\+\_\+dec\+\_\+call\+\_\+id} (uint32\+\_\+t $\ast$ci, const uint8\+\_\+t $\ast$elem, uint8\+\_\+t \textbf{ len})
\begin{DoxyCompactList}\small\item\em Decode Call Identifier IE (3GPP TS 48.\+008 3.\+2.\+2.\+105). \end{DoxyCompactList}\item 
static uint8\+\_\+t \textbf{ put\+\_\+old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+information} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const struct \textbf{ gsm0808\+\_\+old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info} $\ast$i)
\item 
struct \textbf{ msgb} $\ast$ \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+queuing\+\_\+ind} (void)
\begin{DoxyCompactList}\small\item\em Create BSSMAP VGCS/\+VBS QUEUING INDICATION message, 3GPP TS 48.\+008 3.\+2.\+1.\+56. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ msgb} to not lose leading zeros in the \textbf{ MNC}
\item 
const struct \textbf{ tlv\+\_\+definition} \textbf{ gsm0808\+\_\+old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info\+\_\+att\+\_\+tlvdef}
\item 
const struct \textbf{ value\+\_\+string} \textbf{ gsm0808\+\_\+lcls\+\_\+config\+\_\+names} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ gsm0808\+\_\+lcls\+\_\+control\+\_\+names} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ gsm0808\+\_\+lcls\+\_\+status\+\_\+names} [$\,$]
\item 
enum \textbf{ gsm0808\+\_\+assignment\+\_\+requirement} \textbf{ \+\_\+\+\_\+attribute\+\_\+\+\_\+}
\item 
const struct \textbf{ value\+\_\+string} \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+discr\+\_\+names} [$\,$]
\begin{DoxyCompactList}\small\item\em \textbf{ value\+\_\+string}[] for enum CELL\+\_\+\+IDENT. \end{DoxyCompactList}\item 
static \+\_\+\+\_\+thread char \textbf{ str\+\_\+buff} [512]
\begin{DoxyCompactList}\small\item\em Char buffer to return strings from functions. \end{DoxyCompactList}\item 
static const struct \textbf{ tlv\+\_\+definition} \textbf{ bss\+\_\+att\+\_\+tlvdef}
\item 
const struct \textbf{ tlv\+\_\+definition} \textbf{ gsm0808\+\_\+old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info\+\_\+att\+\_\+tlvdef}
\item 
const struct \textbf{ value\+\_\+string} \textbf{ gsm0406\+\_\+dlci\+\_\+sapi\+\_\+names} [$\,$]
\item 
static const struct \textbf{ value\+\_\+string} \textbf{ gsm0808\+\_\+msgt\+\_\+names} [$\,$]
\item 
static const struct \textbf{ value\+\_\+string} \textbf{ gsm0808\+\_\+bssap\+\_\+names} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+type\+\_\+names} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ gsm0808\+\_\+permitted\+\_\+speech\+\_\+names} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ gsm0808\+\_\+chosen\+\_\+enc\+\_\+alg\+\_\+names} [$\,$]
\item 
static const struct \textbf{ value\+\_\+string} \textbf{ gsm0808\+\_\+cause\+\_\+names} [$\,$]
\item 
static const struct \textbf{ value\+\_\+string} \textbf{ gsm0808\+\_\+cause\+\_\+class\+\_\+names} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ gsm0808\+\_\+lcls\+\_\+config\+\_\+names} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ gsm0808\+\_\+lcls\+\_\+control\+\_\+names} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ gsm0808\+\_\+lcls\+\_\+status\+\_\+names} [$\,$]
\item 
const uint8\+\_\+t \textbf{ gsm0808\+\_\+amr\+\_\+modes\+\_\+from\+\_\+cfg} [2][16]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ gsm0808\+\_\+amr\+\_\+mode\+\_\+names} [$\,$]
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}


\doxysubsection{Macro Definition Documentation}
\mbox{\label{group__gsm0808_ga3a2c3ff309ba91bd0e4e50e020cdabc8}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!APP\_DATA\_MAXLEN@{APP\_DATA\_MAXLEN}}
\index{APP\_DATA\_MAXLEN@{APP\_DATA\_MAXLEN}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{APP\_DATA\_MAXLEN}
{\footnotesize\ttfamily \#define APP\+\_\+\+DATA\+\_\+\+MAXLEN~9}



Parsed representation of a Application Data IE (3GPP TS 48.\+008 3.\+2.\+2.\+98) 

\mbox{\label{group__gsm0808_ga581d67824ee7c5ee1e601a7485a8581a}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!BSSMAP\_MSG\_HEADROOM@{BSSMAP\_MSG\_HEADROOM}}
\index{BSSMAP\_MSG\_HEADROOM@{BSSMAP\_MSG\_HEADROOM}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{BSSMAP\_MSG\_HEADROOM}
{\footnotesize\ttfamily \#define BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM~512}

\mbox{\label{group__gsm0808_gad849fc0fd6c8606f19b99282d627d953}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!BSSMAP\_MSG\_SIZE@{BSSMAP\_MSG\_SIZE}}
\index{BSSMAP\_MSG\_SIZE@{BSSMAP\_MSG\_SIZE}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{BSSMAP\_MSG\_SIZE}
{\footnotesize\ttfamily \#define BSSMAP\+\_\+\+MSG\+\_\+\+SIZE~1024}

\mbox{\label{group__gsm0808_gafc8d4dd696b4ddb389b3d5d80c7647f9}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!CIRCUIT\_POOL\_LIST\_MAXLEN@{CIRCUIT\_POOL\_LIST\_MAXLEN}}
\index{CIRCUIT\_POOL\_LIST\_MAXLEN@{CIRCUIT\_POOL\_LIST\_MAXLEN}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{CIRCUIT\_POOL\_LIST\_MAXLEN}
{\footnotesize\ttfamily \#define CIRCUIT\+\_\+\+POOL\+\_\+\+LIST\+\_\+\+MAXLEN~252}



Parsed representation of a Circuit Pool List IE (3GPP TS 48.\+008 3.\+2.\+2.\+26) 

\mbox{\label{group__gsm0808_ga823b43edc6124ec7ed919107f6f1a27c}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_CELL\_ID\_LIST2\_MAXLEN@{GSM0808\_CELL\_ID\_LIST2\_MAXLEN}}
\index{GSM0808\_CELL\_ID\_LIST2\_MAXLEN@{GSM0808\_CELL\_ID\_LIST2\_MAXLEN}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{GSM0808\_CELL\_ID\_LIST2\_MAXLEN}
{\footnotesize\ttfamily \#define GSM0808\+\_\+\+CELL\+\_\+\+ID\+\_\+\+LIST2\+\_\+\+MAXLEN~127}



(225-\/1)/2 is the maximum number of elements in a cell identifier list. 

\mbox{\label{group__gsm0808_gacbd15beeb7a58f63ee2b1b346da09658}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_DP\_MASK\_DISPATCHERS@{GSM0808\_DP\_MASK\_DISPATCHERS}}
\index{GSM0808\_DP\_MASK\_DISPATCHERS@{GSM0808\_DP\_MASK\_DISPATCHERS}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{GSM0808\_DP\_MASK\_DISPATCHERS}
{\footnotesize\ttfamily \#define GSM0808\+\_\+\+DP\+\_\+\+MASK\+\_\+\+DISPATCHERS~0x02}

\mbox{\label{group__gsm0808_gabc2eb349ea527c996bc39c0d0819d121}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_DP\_MASK\_NETWORK\_APP@{GSM0808\_DP\_MASK\_NETWORK\_APP}}
\index{GSM0808\_DP\_MASK\_NETWORK\_APP@{GSM0808\_DP\_MASK\_NETWORK\_APP}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{GSM0808\_DP\_MASK\_NETWORK\_APP}
{\footnotesize\ttfamily \#define GSM0808\+\_\+\+DP\+\_\+\+MASK\+\_\+\+NETWORK\+\_\+\+APP~0x01}

\mbox{\label{group__gsm0808_ga420fb167edd15b7256a4b792f2ae4215}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_DP\_MASK\_TALKERS\_LISTENERS@{GSM0808\_DP\_MASK\_TALKERS\_LISTENERS}}
\index{GSM0808\_DP\_MASK\_TALKERS\_LISTENERS@{GSM0808\_DP\_MASK\_TALKERS\_LISTENERS}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{GSM0808\_DP\_MASK\_TALKERS\_LISTENERS}
{\footnotesize\ttfamily \#define GSM0808\+\_\+\+DP\+\_\+\+MASK\+\_\+\+TALKERS\+\_\+\+LISTENERS~0x04}

\mbox{\label{group__gsm0808_gaaf84aabc022503c1a1d9f8fb62724439}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!LAYER\_3\_INFORMATION\_MAXLEN@{LAYER\_3\_INFORMATION\_MAXLEN}}
\index{LAYER\_3\_INFORMATION\_MAXLEN@{LAYER\_3\_INFORMATION\_MAXLEN}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{LAYER\_3\_INFORMATION\_MAXLEN}
{\footnotesize\ttfamily \#define LAYER\+\_\+3\+\_\+\+INFORMATION\+\_\+\+MAXLEN~252}



Parsed representation of a Layer 3 Information IE (3GPP TS 48.\+008 3.\+2.\+2.\+24) 

\mbox{\label{group__gsm0808_ga2b55240d6757acfb4d5c52b20b234b9e}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!MSISDN\_MAXLEN@{MSISDN\_MAXLEN}}
\index{MSISDN\_MAXLEN@{MSISDN\_MAXLEN}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{MSISDN\_MAXLEN}
{\footnotesize\ttfamily \#define MSISDN\+\_\+\+MAXLEN~20}



Parsed representation of a MSISDN IE (3GPP TS 48.\+008 3.\+2.\+2.\+101) 

\mbox{\label{group__gsm0808_gaf73a3e55e7235e4d8423175e4464f54a}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!osmo\_bssap\_tlv\_parse@{osmo\_bssap\_tlv\_parse}}
\index{osmo\_bssap\_tlv\_parse@{osmo\_bssap\_tlv\_parse}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{osmo\_bssap\_tlv\_parse}
{\footnotesize\ttfamily \#define osmo\+\_\+bssap\+\_\+tlv\+\_\+parse(\begin{DoxyParamCaption}\item[{}]{dec,  }\item[{}]{buf,  }\item[{}]{\textbf{ len} }\end{DoxyParamCaption})~\textbf{ tlv\+\_\+parse}(dec, \textbf{ gsm0808\+\_\+att\+\_\+tlvdef}(), buf, \textbf{ len}, 0, 0)}



Parse BSSAP TLV structure using \doxyref{tlv\+\_\+parse}{p.}{group__tlv_gaa52227475e0050c2f0c78cb612e01d65}. 

\mbox{\label{group__gsm0808_ga9badb822a558481da436c5ed8dd32ab5}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!osmo\_bssap\_tlv\_parse2@{osmo\_bssap\_tlv\_parse2}}
\index{osmo\_bssap\_tlv\_parse2@{osmo\_bssap\_tlv\_parse2}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{osmo\_bssap\_tlv\_parse2}
{\footnotesize\ttfamily \#define osmo\+\_\+bssap\+\_\+tlv\+\_\+parse2(\begin{DoxyParamCaption}\item[{}]{dec,  }\item[{}]{dec\+\_\+multiples,  }\item[{}]{buf,  }\item[{}]{\textbf{ len} }\end{DoxyParamCaption})~ \textbf{ tlv\+\_\+parse2}(dec, dec\+\_\+multiples, \textbf{ gsm0808\+\_\+att\+\_\+tlvdef}(), buf, \textbf{ len}, 0, 0)}



Parse BSSAP TLV structure using \doxyref{tlv\+\_\+parse2}{p.}{group__tlv_ga4859a889693eec53ecb79f361e1884a7}. 

\mbox{\label{group__gsm0808_gaf339f99deab919923a7a8597f91bfaf6}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!SMS\_TO\_VGCS\_MAXLEN@{SMS\_TO\_VGCS\_MAXLEN}}
\index{SMS\_TO\_VGCS\_MAXLEN@{SMS\_TO\_VGCS\_MAXLEN}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{SMS\_TO\_VGCS\_MAXLEN}
{\footnotesize\ttfamily \#define SMS\+\_\+\+TO\+\_\+\+VGCS\+\_\+\+MAXLEN~252}



Parsed representation of a SMS to VGCS IE (3GPP TS 48.\+008 3.\+2.\+2.\+92) 

\mbox{\label{group__gsm0808_gaa99dad92d981c09b26a2ba25090cc25a}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!TALKER\_IDENTITY\_MAXLEN@{TALKER\_IDENTITY\_MAXLEN}}
\index{TALKER\_IDENTITY\_MAXLEN@{TALKER\_IDENTITY\_MAXLEN}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{TALKER\_IDENTITY\_MAXLEN}
{\footnotesize\ttfamily \#define TALKER\+\_\+\+IDENTITY\+\_\+\+MAXLEN~17}



Parsed representation of a Talker Identity IE (3GPP TS 48.\+008 3.\+2.\+2.\+91) 



\doxysubsection{Enumeration Type Documentation}
\mbox{\label{group__gsm0808_ga407d1f6b1aa0f540160655569c1d06c6}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_application\_idndicator@{gsm0808\_application\_idndicator}}
\index{gsm0808\_application\_idndicator@{gsm0808\_application\_idndicator}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_application\_idndicator}
{\footnotesize\ttfamily enum \textbf{ gsm0808\+\_\+application\+\_\+idndicator}}



Packed representation of a Data Identity IE (GGPP TS 48.\+008 3.\+2.\+2.\+99) 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{GSM0808\_AI\_APP\_DATA@{GSM0808\_AI\_APP\_DATA}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_AI\_APP\_DATA@{GSM0808\_AI\_APP\_DATA}}}\mbox{\label{group__gsm0808_gga407d1f6b1aa0f540160655569c1d06c6ac2969e8f92100e3a5e9cf378d4911eee}} 
GSM0808\+\_\+\+AI\+\_\+\+APP\+\_\+\+DATA&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{GSM0808\_AI\_CONFIRM\_APP\_DATA@{GSM0808\_AI\_CONFIRM\_APP\_DATA}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_AI\_CONFIRM\_APP\_DATA@{GSM0808\_AI\_CONFIRM\_APP\_DATA}}}\mbox{\label{group__gsm0808_gga407d1f6b1aa0f540160655569c1d06c6a8785fe958867ea4cad7826b567a8bd77}} 
GSM0808\+\_\+\+AI\+\_\+\+CONFIRM\+\_\+\+APP\+\_\+\+DATA&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{group__gsm0808_gae391ef4f2c53689d90b68ff53d7f98f4}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_assignment\_requirement@{gsm0808\_assignment\_requirement}}
\index{gsm0808\_assignment\_requirement@{gsm0808\_assignment\_requirement}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_assignment\_requirement}
{\footnotesize\ttfamily enum \textbf{ gsm0808\+\_\+assignment\+\_\+requirement}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{GSM0808\_ASRQ\_DELAY\_ALLOWED@{GSM0808\_ASRQ\_DELAY\_ALLOWED}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_ASRQ\_DELAY\_ALLOWED@{GSM0808\_ASRQ\_DELAY\_ALLOWED}}}\mbox{\label{group__gsm0808_ggae391ef4f2c53689d90b68ff53d7f98f4aac7060a5f45ea999478ef48820f7abaf}} 
GSM0808\+\_\+\+ASRQ\+\_\+\+DELAY\+\_\+\+ALLOWED&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{GSM0808\_ASRQ\_IMMEDIATE@{GSM0808\_ASRQ\_IMMEDIATE}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_ASRQ\_IMMEDIATE@{GSM0808\_ASRQ\_IMMEDIATE}}}\mbox{\label{group__gsm0808_ggae391ef4f2c53689d90b68ff53d7f98f4aa156a0d341aa85487c6eba83d9e67fa4}} 
GSM0808\+\_\+\+ASRQ\+\_\+\+IMMEDIATE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{GSM0808\_ASRQ\_IMMEDIATE\_ON\_DEMAND@{GSM0808\_ASRQ\_IMMEDIATE\_ON\_DEMAND}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_ASRQ\_IMMEDIATE\_ON\_DEMAND@{GSM0808\_ASRQ\_IMMEDIATE\_ON\_DEMAND}}}\mbox{\label{group__gsm0808_ggae391ef4f2c53689d90b68ff53d7f98f4a1dca062ce63906f82abca542cb7de34d}} 
GSM0808\+\_\+\+ASRQ\+\_\+\+IMMEDIATE\+\_\+\+ON\+\_\+\+DEMAND&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{group__gsm0808_ga3701bad17acc8b2e43dcf4fe6dce5c29}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_call\_priority@{gsm0808\_call\_priority}}
\index{gsm0808\_call\_priority@{gsm0808\_call\_priority}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_call\_priority}
{\footnotesize\ttfamily enum \textbf{ gsm0808\+\_\+call\+\_\+priority}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{GSM0808\_CALL\_PRIORITY\_NONE@{GSM0808\_CALL\_PRIORITY\_NONE}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_CALL\_PRIORITY\_NONE@{GSM0808\_CALL\_PRIORITY\_NONE}}}\mbox{\label{group__gsm0808_gga3701bad17acc8b2e43dcf4fe6dce5c29afdd5d53007154533aa0ce39e35d22996}} 
GSM0808\+\_\+\+CALL\+\_\+\+PRIORITY\+\_\+\+NONE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{GSM0808\_CALL\_PRIORITY\_LEVEL\_4@{GSM0808\_CALL\_PRIORITY\_LEVEL\_4}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_CALL\_PRIORITY\_LEVEL\_4@{GSM0808\_CALL\_PRIORITY\_LEVEL\_4}}}\mbox{\label{group__gsm0808_gga3701bad17acc8b2e43dcf4fe6dce5c29a5fecd603c327eaad9f2c0536a4f89d04}} 
GSM0808\+\_\+\+CALL\+\_\+\+PRIORITY\+\_\+\+LEVEL\+\_\+4&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{GSM0808\_CALL\_PRIORITY\_LEVEL\_3@{GSM0808\_CALL\_PRIORITY\_LEVEL\_3}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_CALL\_PRIORITY\_LEVEL\_3@{GSM0808\_CALL\_PRIORITY\_LEVEL\_3}}}\mbox{\label{group__gsm0808_gga3701bad17acc8b2e43dcf4fe6dce5c29ab1fa9f8b5431306ad76ed5dc4498335a}} 
GSM0808\+\_\+\+CALL\+\_\+\+PRIORITY\+\_\+\+LEVEL\+\_\+3&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{GSM0808\_CALL\_PRIORITY\_LEVEL\_2@{GSM0808\_CALL\_PRIORITY\_LEVEL\_2}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_CALL\_PRIORITY\_LEVEL\_2@{GSM0808\_CALL\_PRIORITY\_LEVEL\_2}}}\mbox{\label{group__gsm0808_gga3701bad17acc8b2e43dcf4fe6dce5c29a74f32ea3f645afdc5f0188ec0bf73c6d}} 
GSM0808\+\_\+\+CALL\+\_\+\+PRIORITY\+\_\+\+LEVEL\+\_\+2&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{GSM0808\_CALL\_PRIORITY\_LEVEL\_1@{GSM0808\_CALL\_PRIORITY\_LEVEL\_1}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_CALL\_PRIORITY\_LEVEL\_1@{GSM0808\_CALL\_PRIORITY\_LEVEL\_1}}}\mbox{\label{group__gsm0808_gga3701bad17acc8b2e43dcf4fe6dce5c29a13a57eba728bb2185703f2f97d316b35}} 
GSM0808\+\_\+\+CALL\+\_\+\+PRIORITY\+\_\+\+LEVEL\+\_\+1&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{GSM0808\_CALL\_PRIORITY\_LEVEL\_0@{GSM0808\_CALL\_PRIORITY\_LEVEL\_0}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_CALL\_PRIORITY\_LEVEL\_0@{GSM0808\_CALL\_PRIORITY\_LEVEL\_0}}}\mbox{\label{group__gsm0808_gga3701bad17acc8b2e43dcf4fe6dce5c29a4a87b64148847293753bb5759d558eb4}} 
GSM0808\+\_\+\+CALL\+\_\+\+PRIORITY\+\_\+\+LEVEL\+\_\+0&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{GSM0808\_CALL\_PRIORITY\_LEVEL\_B@{GSM0808\_CALL\_PRIORITY\_LEVEL\_B}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_CALL\_PRIORITY\_LEVEL\_B@{GSM0808\_CALL\_PRIORITY\_LEVEL\_B}}}\mbox{\label{group__gsm0808_gga3701bad17acc8b2e43dcf4fe6dce5c29a51b1770dda69f11f5a738e6f36a313a5}} 
GSM0808\+\_\+\+CALL\+\_\+\+PRIORITY\+\_\+\+LEVEL\+\_\+B&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{GSM0808\_CALL\_PRIORITY\_LEVEL\_A@{GSM0808\_CALL\_PRIORITY\_LEVEL\_A}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_CALL\_PRIORITY\_LEVEL\_A@{GSM0808\_CALL\_PRIORITY\_LEVEL\_A}}}\mbox{\label{group__gsm0808_gga3701bad17acc8b2e43dcf4fe6dce5c29a84dac416ac7b4f6d31d8b25cd626e77f}} 
GSM0808\+\_\+\+CALL\+\_\+\+PRIORITY\+\_\+\+LEVEL\+\_\+A&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{group__gsm0808_gad9e1cdf27415b215bf8f924efe8399a0}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_downlink\_dtx\_flag@{gsm0808\_downlink\_dtx\_flag}}
\index{gsm0808\_downlink\_dtx\_flag@{gsm0808\_downlink\_dtx\_flag}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_downlink\_dtx\_flag}
{\footnotesize\ttfamily enum \textbf{ gsm0808\+\_\+downlink\+\_\+dtx\+\_\+flag}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{GSM0808\_DTX\_FLAG\_ALLOW@{GSM0808\_DTX\_FLAG\_ALLOW}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_DTX\_FLAG\_ALLOW@{GSM0808\_DTX\_FLAG\_ALLOW}}}\mbox{\label{group__gsm0808_ggad9e1cdf27415b215bf8f924efe8399a0a9266abe6d9eaac5fb7ca07d3ecb3770f}} 
GSM0808\+\_\+\+DTX\+\_\+\+FLAG\+\_\+\+ALLOW&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{GSM0808\_DTX\_FLAG\_FORBID@{GSM0808\_DTX\_FLAG\_FORBID}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_DTX\_FLAG\_FORBID@{GSM0808\_DTX\_FLAG\_FORBID}}}\mbox{\label{group__gsm0808_ggad9e1cdf27415b215bf8f924efe8399a0afae2a9b9c30cf17689c1f68189f66031}} 
GSM0808\+\_\+\+DTX\+\_\+\+FLAG\+\_\+\+FORBID&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{group__gsm0808_ga9ffe5633b500ccbd39245c2533dc9bd6}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_service\_flag@{gsm0808\_service\_flag}}
\index{gsm0808\_service\_flag@{gsm0808\_service\_flag}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_service\_flag}
{\footnotesize\ttfamily enum \textbf{ gsm0808\+\_\+service\+\_\+flag}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{GSM0808\_SF\_VBS@{GSM0808\_SF\_VBS}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_SF\_VBS@{GSM0808\_SF\_VBS}}}\mbox{\label{group__gsm0808_gga9ffe5633b500ccbd39245c2533dc9bd6aa208153791b9a2c3432d20fac10ac70a}} 
GSM0808\+\_\+\+SF\+\_\+\+VBS&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{GSM0808\_SF\_VGCS@{GSM0808\_SF\_VGCS}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_SF\_VGCS@{GSM0808\_SF\_VGCS}}}\mbox{\label{group__gsm0808_gga9ffe5633b500ccbd39245c2533dc9bd6a7386b9b47c6f9ede0ebe4a6a93b9ed30}} 
GSM0808\+\_\+\+SF\+\_\+\+VGCS&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{group__gsm0808_ga5d8e29d17f96e4f0e6ddbc696ab59fbe}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_talker\_priority@{gsm0808\_talker\_priority}}
\index{gsm0808\_talker\_priority@{gsm0808\_talker\_priority}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_talker\_priority}
{\footnotesize\ttfamily enum \textbf{ gsm0808\+\_\+talker\+\_\+priority}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{GSM0808\_TALKER\_PRIORITY\_NORMAL@{GSM0808\_TALKER\_PRIORITY\_NORMAL}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_TALKER\_PRIORITY\_NORMAL@{GSM0808\_TALKER\_PRIORITY\_NORMAL}}}\mbox{\label{group__gsm0808_gga5d8e29d17f96e4f0e6ddbc696ab59fbea31a8385d957a60dd37f71c679398013f}} 
GSM0808\+\_\+\+TALKER\+\_\+\+PRIORITY\+\_\+\+NORMAL&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{GSM0808\_TALKER\_PRIORITY\_PRIVILEGED@{GSM0808\_TALKER\_PRIORITY\_PRIVILEGED}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_TALKER\_PRIORITY\_PRIVILEGED@{GSM0808\_TALKER\_PRIORITY\_PRIVILEGED}}}\mbox{\label{group__gsm0808_gga5d8e29d17f96e4f0e6ddbc696ab59fbea18dfa2bc4de33a366100f7891fca6df4}} 
GSM0808\+\_\+\+TALKER\+\_\+\+PRIORITY\+\_\+\+PRIVILEGED&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{GSM0808\_TALKER\_PRIORITY\_EMERGENCY@{GSM0808\_TALKER\_PRIORITY\_EMERGENCY}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_TALKER\_PRIORITY\_EMERGENCY@{GSM0808\_TALKER\_PRIORITY\_EMERGENCY}}}\mbox{\label{group__gsm0808_gga5d8e29d17f96e4f0e6ddbc696ab59fbea99f63fa317a7bb30e4ac4ec77902cc4d}} 
GSM0808\+\_\+\+TALKER\+\_\+\+PRIORITY\+\_\+\+EMERGENCY&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{group__gsm0808_ga544999859dba7c34d8abedcf054fc9db}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_vgcs\_vbs\_cell\_status@{gsm0808\_vgcs\_vbs\_cell\_status}}
\index{gsm0808\_vgcs\_vbs\_cell\_status@{gsm0808\_vgcs\_vbs\_cell\_status}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_vgcs\_vbs\_cell\_status}
{\footnotesize\ttfamily enum \textbf{ gsm0808\+\_\+vgcs\+\_\+vbs\+\_\+cell\+\_\+status}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{GSM0808\_CSTAT\_ESTABLISHED@{GSM0808\_CSTAT\_ESTABLISHED}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_CSTAT\_ESTABLISHED@{GSM0808\_CSTAT\_ESTABLISHED}}}\mbox{\label{group__gsm0808_gga544999859dba7c34d8abedcf054fc9dba0deb1546f39aaaa15b4a3a0e55fcb458}} 
GSM0808\+\_\+\+CSTAT\+\_\+\+ESTABLISHED&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{GSM0808\_CSTAT\_NOT\_ESTABLISHED1@{GSM0808\_CSTAT\_NOT\_ESTABLISHED1}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_CSTAT\_NOT\_ESTABLISHED1@{GSM0808\_CSTAT\_NOT\_ESTABLISHED1}}}\mbox{\label{group__gsm0808_gga544999859dba7c34d8abedcf054fc9dba016d384492eaa27198f0ba7e5f6eef56}} 
GSM0808\+\_\+\+CSTAT\+\_\+\+NOT\+\_\+\+ESTABLISHED1&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{GSM0808\_CSTAT\_RELEASED\_NO\_USER@{GSM0808\_CSTAT\_RELEASED\_NO\_USER}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_CSTAT\_RELEASED\_NO\_USER@{GSM0808\_CSTAT\_RELEASED\_NO\_USER}}}\mbox{\label{group__gsm0808_gga544999859dba7c34d8abedcf054fc9dba08116a6f077cda6ab4fd4ba65cbb3b85}} 
GSM0808\+\_\+\+CSTAT\+\_\+\+RELEASED\+\_\+\+NO\+\_\+\+USER&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{GSM0808\_CSTAT\_NOT\_ESTABLISHED2@{GSM0808\_CSTAT\_NOT\_ESTABLISHED2}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!GSM0808\_CSTAT\_NOT\_ESTABLISHED2@{GSM0808\_CSTAT\_NOT\_ESTABLISHED2}}}\mbox{\label{group__gsm0808_gga544999859dba7c34d8abedcf054fc9dbab41cb2b9dc24e4f1a30a9d7218cdb2fa}} 
GSM0808\+\_\+\+CSTAT\+\_\+\+NOT\+\_\+\+ESTABLISHED2&\\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\mbox{\label{group__gsm0808_gabe083297fecd14a3d87225c49b69fe88}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!\_\_attribute\_\_@{\_\_attribute\_\_}}
\index{\_\_attribute\_\_@{\_\_attribute\_\_}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{\_\_attribute\_\_()}
{\footnotesize\ttfamily struct \textbf{ gsm0808\+\_\+priority} \+\_\+\+\_\+attribute\+\_\+\+\_\+ (\begin{DoxyParamCaption}\item[{(packed)}]{ }\end{DoxyParamCaption})}

\mbox{\label{group__gsm0808_ga427b6373048138d3fab2db178aff35bd}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_att\_tlvdef@{gsm0808\_att\_tlvdef}}
\index{gsm0808\_att\_tlvdef@{gsm0808\_att\_tlvdef}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_att\_tlvdef()}
{\footnotesize\ttfamily const struct \textbf{ tlv\+\_\+definition} $\ast$ gsm0808\+\_\+att\+\_\+tlvdef (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



References \textbf{ bss\+\_\+att\+\_\+tlvdef}.

\mbox{\label{group__gsm0808_ga57f21df574011deb1f279f1f6e1d7a2c}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_bssap\_name@{gsm0808\_bssap\_name}}
\index{gsm0808\_bssap\_name@{gsm0808\_bssap\_name}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_bssap\_name()}
{\footnotesize\ttfamily const char $\ast$ gsm0808\+\_\+bssap\+\_\+name (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{msg\+\_\+type }\end{DoxyParamCaption})}



Return string name of BSSAP Message Type. 



References \textbf{ get\+\_\+value\+\_\+string()}, \textbf{ gsm0808\+\_\+bssap\+\_\+names}, and \textbf{ msg\+\_\+type}.

\mbox{\label{group__gsm0808_ga40bcc3a60e885aa40da1f6eb806b0da1}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_bssmap\_name@{gsm0808\_bssmap\_name}}
\index{gsm0808\_bssmap\_name@{gsm0808\_bssmap\_name}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_bssmap\_name()}
{\footnotesize\ttfamily const char $\ast$ gsm0808\+\_\+bssmap\+\_\+name (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{msg\+\_\+type }\end{DoxyParamCaption})}



Return string name of BSSMAP Message Type. 



References \textbf{ get\+\_\+value\+\_\+string()}, \textbf{ gsm0808\+\_\+msgt\+\_\+names}, and \textbf{ msg\+\_\+type}.

\mbox{\label{group__gsm0808_ga4d97190365aab5f2e420f442e34bf495}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_cause\_class@{gsm0808\_cause\_class}}
\index{gsm0808\_cause\_class@{gsm0808\_cause\_class}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_cause\_class()}
{\footnotesize\ttfamily static enum \textbf{ gsm0808\+\_\+cause\+\_\+class} \textbf{ gsm0808\+\_\+cause\+\_\+class} (\begin{DoxyParamCaption}\item[{enum \textbf{ gsm0808\+\_\+cause}}]{cause }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}

\begin{DoxyReturn}{Returns}
3GPP TS 08.\+08 §3.2.\+2.\+5 Class of a given Cause 
\end{DoxyReturn}


References \textbf{ cause}.

\mbox{\label{group__gsm0808_ga841f55a1a43f3d57935dc8361985b4d2}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_cause\_class\_name@{gsm0808\_cause\_class\_name}}
\index{gsm0808\_cause\_class\_name@{gsm0808\_cause\_class\_name}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_cause\_class\_name()}
{\footnotesize\ttfamily const char $\ast$ gsm0808\+\_\+cause\+\_\+class\+\_\+name (\begin{DoxyParamCaption}\item[{enum \textbf{ gsm0808\+\_\+cause\+\_\+class}}]{class }\end{DoxyParamCaption})}



Return string name of BSSMAP Cause Class name. 



References \textbf{ get\+\_\+value\+\_\+string()}, and \textbf{ gsm0808\+\_\+cause\+\_\+class\+\_\+names}.

\mbox{\label{group__gsm0808_ga348a14d2b23cc3a8a3598399decd158a}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_cause\_ext@{gsm0808\_cause\_ext}}
\index{gsm0808\_cause\_ext@{gsm0808\_cause\_ext}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_cause\_ext()}
{\footnotesize\ttfamily static bool gsm0808\+\_\+cause\+\_\+ext (\begin{DoxyParamCaption}\item[{enum \textbf{ gsm0808\+\_\+cause}}]{cause }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}

\begin{DoxyReturn}{Returns}
true if 3GPP TS 08.\+08 §3.2.\+2.\+5 Class has extended bit set 
\end{DoxyReturn}


References \textbf{ cause}.



Referenced by \textbf{ gsm0808\+\_\+get\+\_\+cause()}.

\mbox{\label{group__gsm0808_ga7168a30ac3f1ad472309c60badd51305}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_cause\_name@{gsm0808\_cause\_name}}
\index{gsm0808\_cause\_name@{gsm0808\_cause\_name}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_cause\_name()}
{\footnotesize\ttfamily const char $\ast$ gsm0808\+\_\+cause\+\_\+name (\begin{DoxyParamCaption}\item[{enum \textbf{ gsm0808\+\_\+cause}}]{cause }\end{DoxyParamCaption})}



Return string name of BSSMAP Cause name. 



References \textbf{ cause}, \textbf{ get\+\_\+value\+\_\+string()}, and \textbf{ gsm0808\+\_\+cause\+\_\+names}.

\mbox{\label{group__gsm0808_ga63b9f836f0aa2d4a0411b145492fe3c9}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_cell\_id\_discr\_name@{gsm0808\_cell\_id\_discr\_name}}
\index{gsm0808\_cell\_id\_discr\_name@{gsm0808\_cell\_id\_discr\_name}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_cell\_id\_discr\_name()}
{\footnotesize\ttfamily static const char $\ast$ gsm0808\+\_\+cell\+\_\+id\+\_\+discr\+\_\+name (\begin{DoxyParamCaption}\item[{enum \textbf{ CELL\+\_\+\+IDENT}}]{id\+\_\+discr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ get\+\_\+value\+\_\+string()}, and \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+discr\+\_\+names}.



Referenced by \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+name\+\_\+buf()}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+name\+\_\+buf()}, and \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+\_\+name()}.

\mbox{\label{group__gsm0808_gafdea09fe2bfdc25507838e50cc28fbea}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_cell\_id\_from\_cgi@{gsm0808\_cell\_id\_from\_cgi}}
\index{gsm0808\_cell\_id\_from\_cgi@{gsm0808\_cell\_id\_from\_cgi}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_cell\_id\_from\_cgi()}
{\footnotesize\ttfamily void gsm0808\+\_\+cell\+\_\+id\+\_\+from\+\_\+cgi (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm0808\+\_\+cell\+\_\+id} $\ast$}]{cid,  }\item[{enum \textbf{ CELL\+\_\+\+IDENT}}]{id\+\_\+discr,  }\item[{const struct \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id} $\ast$}]{cgi }\end{DoxyParamCaption})}



Copy information from a CGI to form a Cell Identifier of the specified kind. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em cid} & Compose new Cell Identifier here. \\
\hline
\mbox{\texttt{ in}}  & {\em id\+\_\+discr} & Which kind of Cell Identifier to compose. \\
\hline
\mbox{\texttt{ in}}  & {\em cgi} & Cell Global Identifier to form the Cell Identifier from. \\
\hline
\end{DoxyParams}


References \textbf{ CELL\+\_\+\+IDENT\+\_\+\+BSS}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+CI}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+LAC}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+LAC\+\_\+\+AND\+\_\+\+CI}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+LAI}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+NO\+\_\+\+CELL}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+SAI}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+UTRAN\+\_\+\+LAC\+\_\+\+RNC}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+UTRAN\+\_\+\+PLMN\+\_\+\+LAC\+\_\+\+RNC}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+UTRAN\+\_\+\+RNC}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+WHOLE\+\_\+\+GLOBAL}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+WHOLE\+\_\+\+GLOBAL\+\_\+\+PS}, \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id\+::cell\+\_\+identity}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::ci}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::global}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::global\+\_\+ps}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+::id}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+::id\+\_\+discr}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::lac}, \textbf{ osmo\+\_\+location\+\_\+area\+\_\+id\+::lac}, \textbf{ osmo\+\_\+routing\+\_\+area\+\_\+id\+::lac}, \textbf{ osmo\+\_\+lac\+\_\+and\+\_\+ci\+\_\+id\+::lac}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::lac\+\_\+and\+\_\+ci}, \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id\+::lai}, \textbf{ osmo\+\_\+service\+\_\+area\+\_\+id\+::lai}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::lai\+\_\+and\+\_\+lac}, \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id\+\_\+ps\+::rai}, and \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::sai}.

\mbox{\label{group__gsm0808_ga9242f5ec3101e1dd63455cd86b154014}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_cell\_id\_list\_add@{gsm0808\_cell\_id\_list\_add}}
\index{gsm0808\_cell\_id\_list\_add@{gsm0808\_cell\_id\_list\_add}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_cell\_id\_list\_add()}
{\footnotesize\ttfamily int gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+add (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2} $\ast$}]{dst,  }\item[{const struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2} $\ast$}]{src }\end{DoxyParamCaption})}



Append entries from one Cell Identifier List to another. 

The cell identifier types must be identical between the two lists. 
\begin{DoxyParams}{Parameters}
{\em dst\mbox{[}out\mbox{]}} & Append entries to this list. \\
\hline
{\em src\mbox{[}in\mbox{]}} & Append these entries to {\itshape dst}. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
the nr of items added, or negative on error\+: -\/EINVAL if the id\+\_\+discr mismatch between the lists, -\/ENOSPC if the destination list does not have enough space. If an error is returned, {\itshape dst} may have already been changed (particularly on -\/ENOSPC). Note that a return value of zero may occur when the src-\/$>$id\+\_\+list\+\_\+len is zero, or when all entries from {\itshape src} already exist in {\itshape dst}, and does not indicate error per se. 
\end{DoxyReturn}


References \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+BSS}, \textbf{ msgb\+::dst}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2\+::id\+\_\+discr}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2\+::id\+\_\+list}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2\+::id\+\_\+list\+\_\+len}, and \textbf{ same\+\_\+cell\+\_\+id\+\_\+list\+\_\+entries()}.

\mbox{\label{group__gsm0808_ga92a7cdfa955e5aaeb7816cbc9f3e483d}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_cell\_id\_list\_name@{gsm0808\_cell\_id\_list\_name}}
\index{gsm0808\_cell\_id\_list\_name@{gsm0808\_cell\_id\_list\_name}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_cell\_id\_list\_name()}
{\footnotesize\ttfamily const char $\ast$ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+name (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2} $\ast$}]{cil }\end{DoxyParamCaption})}



Return a human-\/readable representation of {\itshape cil} in a static buffer. 

If the list is too long, the output may be truncated. See also \doxyref{gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+name\+\_\+buf()}{p.}{group__gsm0808_gaaf1b9ae240d8eb6e83ed69b91e225af1}. 

References \textbf{ osmo\+\_\+strbuf\+::buf}, and \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+name\+\_\+buf()}.

\mbox{\label{group__gsm0808_gaaf1b9ae240d8eb6e83ed69b91e225af1}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_cell\_id\_list\_name\_buf@{gsm0808\_cell\_id\_list\_name\_buf}}
\index{gsm0808\_cell\_id\_list\_name\_buf@{gsm0808\_cell\_id\_list\_name\_buf}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_cell\_id\_list\_name\_buf()}
{\footnotesize\ttfamily int gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+name\+\_\+buf (\begin{DoxyParamCaption}\item[{char $\ast$}]{buf,  }\item[{size\+\_\+t}]{buflen,  }\item[{const struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2} $\ast$}]{cil }\end{DoxyParamCaption})}



Return a human readable representation of the Cell Identifier List, like \char`\"{}\+LAC[2]\+:\{123, 456\}\char`\"{}. 

The return value semantics are like snprintf() and thus allow ensuring a complete untruncated string by determining the required string length from the return value. If buflen $>$ 0, always nul-\/terminate the string in buf, also when it is truncated. If buflen == 0, do not modify buf, just return the would-\/be length. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em buf} & Destination buffer to write string representation to. \\
\hline
\mbox{\texttt{ in}}  & {\em buflen} & Amount of memory available in {\itshape buf}. \\
\hline
\mbox{\texttt{ in}}  & {\em cil} & Cell Identifer List. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Like snprintf()\+: the amount of characters (excluding terminating nul) written, or that would have been written if the buffer were large enough. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+strbuf\+::buf}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+BSS}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+NO\+\_\+\+CELL}, \textbf{ osmo\+\_\+strbuf\+::chars\+\_\+needed}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+discr\+\_\+name()}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+\_\+name()}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2\+::id\+\_\+discr}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2\+::id\+\_\+list}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2\+::id\+\_\+list\+\_\+len}, \textbf{ OSMO\+\_\+\+STRBUF\+\_\+\+APPEND}, and \textbf{ OSMO\+\_\+\+STRBUF\+\_\+\+PRINTF}.



Referenced by \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+name()}, and \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+name\+\_\+c()}.

\mbox{\label{group__gsm0808_ga287ef0e57c8c529343e22523919ccb67}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_cell\_id\_list\_name\_c@{gsm0808\_cell\_id\_list\_name\_c}}
\index{gsm0808\_cell\_id\_list\_name\_c@{gsm0808\_cell\_id\_list\_name\_c}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_cell\_id\_list\_name\_c()}
{\footnotesize\ttfamily char $\ast$ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+name\+\_\+c (\begin{DoxyParamCaption}\item[{const void $\ast$}]{ctx,  }\item[{const struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2} $\ast$}]{cil }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+strbuf\+::buf}, and \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+name\+\_\+buf()}.

\mbox{\label{group__gsm0808_ga3fd5abc9e9e1bdafb279bf27b7eb7f6b}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_cell\_id\_matches\_list@{gsm0808\_cell\_id\_matches\_list}}
\index{gsm0808\_cell\_id\_matches\_list@{gsm0808\_cell\_id\_matches\_list}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_cell\_id\_matches\_list()}
{\footnotesize\ttfamily int gsm0808\+\_\+cell\+\_\+id\+\_\+matches\+\_\+list (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+cell\+\_\+id} $\ast$}]{id,  }\item[{const struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2} $\ast$}]{list,  }\item[{unsigned int}]{match\+\_\+nr,  }\item[{bool}]{exact\+\_\+match }\end{DoxyParamCaption})}



Find an index in a Cell Identifier list that matches a given single Cell Identifer. 

Compare {\itshape id} against each entry in {\itshape list} using \doxyref{gsm0808\+\_\+cell\+\_\+ids\+\_\+match()}{p.}{group__gsm0808_ga4e33b85bf47a13d2a1ba2c578a9d8da9}, and return the list index if a match is found. {\itshape match\+\_\+nr} allows iterating all matches in the list. A match\+\_\+nr $<$= 0 returns the first match in the list, match\+\_\+nr == 1 the second match, etc., and if match\+\_\+nr exceeds the available matches in the list, -\/1 is returned. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em id} & Cell Identifier to match. \\
\hline
\mbox{\texttt{ in}}  & {\em list} & Cell Identifier list to search in. \\
\hline
\mbox{\texttt{ in}}  & {\em match\+\_\+nr} & Ignore this many matches. \\
\hline
\mbox{\texttt{ in}}  & {\em exact\+\_\+match} & If true, consider as match only if the CELL\+\_\+\+IDENT types and all values are identical. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
-\/1 if no match is found, list index if a match is found (i.\+e. rc == 0 means a match was found on the first entry). 
\end{DoxyReturn}


References \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+\_\+match()}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+::id}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+::id\+\_\+discr}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2\+::id\+\_\+discr}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2\+::id\+\_\+list}, and \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2\+::id\+\_\+list\+\_\+len}.

\mbox{\label{group__gsm0808_ga2b84f9bc343dae5ee69ffcb7e504efeb}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_cell\_id\_name@{gsm0808\_cell\_id\_name}}
\index{gsm0808\_cell\_id\_name@{gsm0808\_cell\_id\_name}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_cell\_id\_name()}
{\footnotesize\ttfamily const char $\ast$ gsm0808\+\_\+cell\+\_\+id\+\_\+name (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+cell\+\_\+id} $\ast$}]{cid }\end{DoxyParamCaption})}



Return a human readable representation of a Cell Identifier, like \char`\"{}\+LAC\+:123\char`\"{} or \char`\"{}\+CGI\+:001-\/01-\/42-\/23\char`\"{}. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em cid} & Cell Identifer. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
String in a static buffer. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+strbuf\+::buf}, and \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+name\+\_\+buf()}.

\mbox{\label{group__gsm0808_gaf321f61d48e843422007176b73de8d81}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_cell\_id\_name2@{gsm0808\_cell\_id\_name2}}
\index{gsm0808\_cell\_id\_name2@{gsm0808\_cell\_id\_name2}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_cell\_id\_name2()}
{\footnotesize\ttfamily const char $\ast$ gsm0808\+\_\+cell\+\_\+id\+\_\+name2 (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+cell\+\_\+id} $\ast$}]{cid }\end{DoxyParamCaption})}



Like \doxyref{gsm0808\+\_\+cell\+\_\+id\+\_\+name()}{p.}{group__gsm0808_ga2b84f9bc343dae5ee69ffcb7e504efeb} but uses a different static buffer. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em cid} & Cell Identifer. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
String in a static buffer. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+strbuf\+::buf}, and \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+name\+\_\+buf()}.

\mbox{\label{group__gsm0808_ga93217fbe7deb1d17dad5018f13676ff3}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_cell\_id\_name\_buf@{gsm0808\_cell\_id\_name\_buf}}
\index{gsm0808\_cell\_id\_name\_buf@{gsm0808\_cell\_id\_name\_buf}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_cell\_id\_name\_buf()}
{\footnotesize\ttfamily char $\ast$ gsm0808\+\_\+cell\+\_\+id\+\_\+name\+\_\+buf (\begin{DoxyParamCaption}\item[{char $\ast$}]{buf,  }\item[{size\+\_\+t}]{buflen,  }\item[{const struct \textbf{ gsm0808\+\_\+cell\+\_\+id} $\ast$}]{cid }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+strbuf\+::buf}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+discr\+\_\+name()}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+\_\+name()}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+::id}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+::id\+\_\+discr}, \textbf{ OSMO\+\_\+\+STRBUF\+\_\+\+APPEND}, and \textbf{ OSMO\+\_\+\+STRBUF\+\_\+\+PRINTF}.



Referenced by \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+name()}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+name2()}, and \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+name\+\_\+c()}.

\mbox{\label{group__gsm0808_ga60f459be52ddc35ffaa67c386eae1185}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_cell\_id\_name\_c@{gsm0808\_cell\_id\_name\_c}}
\index{gsm0808\_cell\_id\_name\_c@{gsm0808\_cell\_id\_name\_c}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_cell\_id\_name\_c()}
{\footnotesize\ttfamily char $\ast$ gsm0808\+\_\+cell\+\_\+id\+\_\+name\+\_\+c (\begin{DoxyParamCaption}\item[{const void $\ast$}]{ctx,  }\item[{const struct \textbf{ gsm0808\+\_\+cell\+\_\+id} $\ast$}]{cid }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+strbuf\+::buf}, and \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+name\+\_\+buf()}.

\mbox{\label{group__gsm0808_gaa58805dfb92318d9994319cec11ac595}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_cell\_id\_size@{gsm0808\_cell\_id\_size}}
\index{gsm0808\_cell\_id\_size@{gsm0808\_cell\_id\_size}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_cell\_id\_size()}
{\footnotesize\ttfamily int gsm0808\+\_\+cell\+\_\+id\+\_\+size (\begin{DoxyParamCaption}\item[{enum \textbf{ CELL\+\_\+\+IDENT}}]{discr }\end{DoxyParamCaption})}



References \textbf{ CELL\+\_\+\+IDENT\+\_\+\+BSS}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+CI}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+LAC}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+LAC\+\_\+\+AND\+\_\+\+CI}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+LAI\+\_\+\+AND\+\_\+\+LAC}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+NO\+\_\+\+CELL}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+SAI}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+WHOLE\+\_\+\+GLOBAL}, and \textbf{ CELL\+\_\+\+IDENT\+\_\+\+WHOLE\+\_\+\+GLOBAL\+\_\+\+PS}.



Referenced by \textbf{ cbsp\+\_\+decode\+\_\+cell\+\_\+list()}, \textbf{ cbsp\+\_\+decode\+\_\+fail\+\_\+list()}, \textbf{ cbsp\+\_\+decode\+\_\+loading\+\_\+list()}, and \textbf{ cbsp\+\_\+decode\+\_\+num\+\_\+compl\+\_\+list()}.

\mbox{\label{group__gsm0808_gaee1cc1c00b5bfb2a6b8c78d9b4207711}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_cell\_id\_to\_cgi@{gsm0808\_cell\_id\_to\_cgi}}
\index{gsm0808\_cell\_id\_to\_cgi@{gsm0808\_cell\_id\_to\_cgi}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_cell\_id\_to\_cgi()}
{\footnotesize\ttfamily int gsm0808\+\_\+cell\+\_\+id\+\_\+to\+\_\+cgi (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id} $\ast$}]{cgi,  }\item[{const struct \textbf{ gsm0808\+\_\+cell\+\_\+id} $\ast$}]{cid }\end{DoxyParamCaption})}



Overwrite parts of cgi with values from a Cell Identifier. 

Place only those items given in cid into cgi, leaving other values unchanged. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em cgi} & Cell Global Identity to write to. \\
\hline
\mbox{\texttt{ in}}  & {\em cid} & Cell Identity to read from. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
a bitmask of items that were set\+: OSMO\+\_\+\+CGI\+\_\+\+PART\+\_\+\+PLMN $\vert$ OSMO\+\_\+\+CGI\+\_\+\+PART\+\_\+\+LAC $\vert$ OSMO\+\_\+\+CGI\+\_\+\+PART\+\_\+\+CI; 0 if nothing was written to cgi. 
\end{DoxyReturn}


References \textbf{ CELL\+\_\+\+IDENT\+\_\+\+BSS}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+CI}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+LAC}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+LAC\+\_\+\+AND\+\_\+\+CI}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+LAI}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+NO\+\_\+\+CELL}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+SAI}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+UTRAN\+\_\+\+LAC\+\_\+\+RNC}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+UTRAN\+\_\+\+PLMN\+\_\+\+LAC\+\_\+\+RNC}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+UTRAN\+\_\+\+RNC}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+WHOLE\+\_\+\+GLOBAL}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+WHOLE\+\_\+\+GLOBAL\+\_\+\+PS}, \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id\+::cell\+\_\+identity}, \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id\+\_\+ps\+::cell\+\_\+identity}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::ci}, \textbf{ osmo\+\_\+lac\+\_\+and\+\_\+ci\+\_\+id\+::ci}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::global}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::global\+\_\+ps}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+::id}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+::id\+\_\+discr}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::lac}, \textbf{ osmo\+\_\+location\+\_\+area\+\_\+id\+::lac}, \textbf{ osmo\+\_\+routing\+\_\+area\+\_\+id\+::lac}, \textbf{ osmo\+\_\+lac\+\_\+and\+\_\+ci\+\_\+id\+::lac}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::lac\+\_\+and\+\_\+ci}, \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id\+::lai}, \textbf{ osmo\+\_\+service\+\_\+area\+\_\+id\+::lai}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::lai\+\_\+and\+\_\+lac}, \textbf{ OSMO\+\_\+\+CGI\+\_\+\+PART\+\_\+\+CI}, \textbf{ OSMO\+\_\+\+CGI\+\_\+\+PART\+\_\+\+LAC}, \textbf{ OSMO\+\_\+\+CGI\+\_\+\+PART\+\_\+\+PLMN}, \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id\+\_\+ps\+::rai}, and \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::sai}.

\mbox{\label{group__gsm0808_ga7adf7c01146410533468908421984543}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_cell\_id\_to\_list@{gsm0808\_cell\_id\_to\_list}}
\index{gsm0808\_cell\_id\_to\_list@{gsm0808\_cell\_id\_to\_list}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_cell\_id\_to\_list()}
{\footnotesize\ttfamily void gsm0808\+\_\+cell\+\_\+id\+\_\+to\+\_\+list (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2} $\ast$}]{dst,  }\item[{const struct \textbf{ gsm0808\+\_\+cell\+\_\+id} $\ast$}]{src }\end{DoxyParamCaption})}



Convert a single Cell Identifier to a Cell Identifier List with one entry. 


\begin{DoxyParams}{Parameters}
{\em dst\mbox{[}out\mbox{]}} & Overwrite this list. \\
\hline
{\em src\mbox{[}in\mbox{]}} & Set {\itshape dst} to contain exactly this item. \\
\hline
\end{DoxyParams}


References \textbf{ CELL\+\_\+\+IDENT\+\_\+\+BSS}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+NO\+\_\+\+CELL}, \textbf{ msgb\+::dst}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+::id}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+::id\+\_\+discr}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2\+::id\+\_\+discr}, and \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2\+::id\+\_\+list\+\_\+len}.

\mbox{\label{group__gsm0808_ga3f12a4cfc48f37e7f04a3412980137e1}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_cell\_id\_u\_name@{gsm0808\_cell\_id\_u\_name}}
\index{gsm0808\_cell\_id\_u\_name@{gsm0808\_cell\_id\_u\_name}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_cell\_id\_u\_name()}
{\footnotesize\ttfamily int gsm0808\+\_\+cell\+\_\+id\+\_\+u\+\_\+name (\begin{DoxyParamCaption}\item[{char $\ast$}]{buf,  }\item[{size\+\_\+t}]{buflen,  }\item[{enum \textbf{ CELL\+\_\+\+IDENT}}]{id\+\_\+discr,  }\item[{const union \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u} $\ast$}]{u }\end{DoxyParamCaption})}



Print a human readable name of the cell identifier to the char buffer. 

This is useful both for struct \doxyref{gsm0808\+\_\+cell\+\_\+id}{p.}{structgsm0808__cell__id} and struct \doxyref{gsm0808\+\_\+cell\+\_\+id\+\_\+list2}{p.}{structgsm0808__cell__id__list2}. See also \doxyref{gsm0808\+\_\+cell\+\_\+id\+\_\+name()}{p.}{group__gsm0808_ga2b84f9bc343dae5ee69ffcb7e504efeb} and \doxyref{gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+name()}{p.}{group__gsm0808_ga92a7cdfa955e5aaeb7816cbc9f3e483d}. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em buf} & Destination buffer to write string representation to. \\
\hline
\mbox{\texttt{ in}}  & {\em buflen} & Amount of memory available in {\itshape buf}. \\
\hline
\mbox{\texttt{ in}}  & {\em id\+\_\+discr} & Cell Identifier type. \\
\hline
\mbox{\texttt{ in}}  & {\em u} & Cell Identifer value. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Like snprintf()\+: the amount of characters (excluding terminating nul) written, or that would have been written if the buffer were large enough. 
\end{DoxyReturn}


References \textbf{ CELL\+\_\+\+IDENT\+\_\+\+CI}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+LAC}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+LAC\+\_\+\+AND\+\_\+\+CI}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+LAI\+\_\+\+AND\+\_\+\+LAC}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+SAI}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+WHOLE\+\_\+\+GLOBAL}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+WHOLE\+\_\+\+GLOBAL\+\_\+\+PS}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::ci}, \textbf{ osmo\+\_\+lac\+\_\+and\+\_\+ci\+\_\+id\+::ci}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::global}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::global\+\_\+ps}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+discr\+\_\+name()}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2\+::id\+\_\+discr}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::lac}, \textbf{ osmo\+\_\+lac\+\_\+and\+\_\+ci\+\_\+id\+::lac}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::lac\+\_\+and\+\_\+ci}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::lai\+\_\+and\+\_\+lac}, \textbf{ osmo\+\_\+cgi\+\_\+name()}, \textbf{ osmo\+\_\+cgi\+\_\+ps\+\_\+name()}, \textbf{ osmo\+\_\+lai\+\_\+name()}, \textbf{ osmo\+\_\+sai\+\_\+name()}, and \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::sai}.



Referenced by \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+name\+\_\+buf()}, and \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+name\+\_\+buf()}.

\mbox{\label{group__gsm0808_ga4e33b85bf47a13d2a1ba2c578a9d8da9}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_cell\_ids\_match@{gsm0808\_cell\_ids\_match}}
\index{gsm0808\_cell\_ids\_match@{gsm0808\_cell\_ids\_match}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_cell\_ids\_match()}
{\footnotesize\ttfamily bool gsm0808\+\_\+cell\+\_\+ids\+\_\+match (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+cell\+\_\+id} $\ast$}]{id1,  }\item[{const struct \textbf{ gsm0808\+\_\+cell\+\_\+id} $\ast$}]{id2,  }\item[{bool}]{exact\+\_\+match }\end{DoxyParamCaption})}



Return true if the common information between the two Cell Identifiers match. 

For example, if a LAC+\+CI is compared to LAC, return true if the LAC are the same. Note that CELL\+\_\+\+IDENT\+\_\+\+NO\+\_\+\+CELL will always return false. Also CELL\+\_\+\+IDENT\+\_\+\+BSS will always return false, since this function cannot possibly know the bounds of the BSS, so the caller must handle CELL\+\_\+\+IDENT\+\_\+\+BSS specially. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em id1} & Cell Identifier. \\
\hline
\mbox{\texttt{ in}}  & {\em id2} & Other Cell Identifier. \\
\hline
\mbox{\texttt{ in}}  & {\em exact\+\_\+match} & If true, return true only if the CELL\+\_\+\+IDENT types and all values are identical. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
True if the common fields of the above match. 
\end{DoxyReturn}


References \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+\_\+match()}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+::id}, and \textbf{ gsm0808\+\_\+cell\+\_\+id\+::id\+\_\+discr}.

\mbox{\label{group__gsm0808_ga24843b4a9430abfc9d7a2c1237212249}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_chan\_type\_to\_speech\_codec@{gsm0808\_chan\_type\_to\_speech\_codec}}
\index{gsm0808\_chan\_type\_to\_speech\_codec@{gsm0808\_chan\_type\_to\_speech\_codec}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_chan\_type\_to\_speech\_codec()}
{\footnotesize\ttfamily int gsm0808\+\_\+chan\+\_\+type\+\_\+to\+\_\+speech\+\_\+codec (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{perm\+\_\+spch }\end{DoxyParamCaption})}



Convert the representation of the permitted speech codec identifier that is used in struct \doxyref{gsm0808\+\_\+channel\+\_\+type}{p.}{structgsm0808__channel__type} to the speech codec representation we use in struct \doxyref{gsm0808\+\_\+speech\+\_\+codec}{p.}{structgsm0808__speech__codec}. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em perm\+\_\+spch} & to be converted (see also gsm0808\+\_\+permitted\+\_\+speech) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
GSM speech codec type; negative on error 
\end{DoxyReturn}
The speech codec type, which is used in the channel type field to signal the permitted speech versions (codecs) has a different encoding than the type field in the speech codec type element (See also 3GPP TS 48.\+008, 3.\+2.\+2.\+11 and 3.\+2.\+2.\+103)

References \textbf{ GSM0808\+\_\+\+PERM\+\_\+\+FR1}, \textbf{ GSM0808\+\_\+\+PERM\+\_\+\+FR2}, \textbf{ GSM0808\+\_\+\+PERM\+\_\+\+FR3}, \textbf{ GSM0808\+\_\+\+PERM\+\_\+\+FR4}, \textbf{ GSM0808\+\_\+\+PERM\+\_\+\+FR5}, \textbf{ GSM0808\+\_\+\+PERM\+\_\+\+HR1}, \textbf{ GSM0808\+\_\+\+PERM\+\_\+\+HR3}, \textbf{ GSM0808\+\_\+\+PERM\+\_\+\+HR4}, \textbf{ GSM0808\+\_\+\+PERM\+\_\+\+HR6}, \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+FR1}, \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+FR2}, \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+FR3}, \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+FR4}, \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+FR5}, \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+HR1}, \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+HR3}, \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+HR4}, and \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+HR6}.



Referenced by \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+from\+\_\+chan\+\_\+type()}.

\mbox{\label{group__gsm0808_ga0093f29b003e53f022ca3655add0c155}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_channel\_type\_name@{gsm0808\_channel\_type\_name}}
\index{gsm0808\_channel\_type\_name@{gsm0808\_channel\_type\_name}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_channel\_type\_name()}
{\footnotesize\ttfamily const char $\ast$ gsm0808\+\_\+channel\+\_\+type\+\_\+name (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+channel\+\_\+type} $\ast$}]{ct }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+strbuf\+::buf}, and \textbf{ gsm0808\+\_\+channel\+\_\+type\+\_\+name\+\_\+buf()}.

\mbox{\label{group__gsm0808_gacd28f0543c8bffde8de19549c962ae54}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_channel\_type\_name\_buf@{gsm0808\_channel\_type\_name\_buf}}
\index{gsm0808\_channel\_type\_name\_buf@{gsm0808\_channel\_type\_name\_buf}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_channel\_type\_name\_buf()}
{\footnotesize\ttfamily char $\ast$ gsm0808\+\_\+channel\+\_\+type\+\_\+name\+\_\+buf (\begin{DoxyParamCaption}\item[{char $\ast$}]{buf,  }\item[{size\+\_\+t}]{buf\+\_\+len,  }\item[{const struct \textbf{ gsm0808\+\_\+channel\+\_\+type} $\ast$}]{ct }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+strbuf\+::buf}, \textbf{ gsm0808\+\_\+channel\+\_\+type\+::ch\+\_\+indctr}, \textbf{ gsm0808\+\_\+channel\+\_\+type\+::ch\+\_\+rate\+\_\+type}, \textbf{ osmo\+\_\+hexdump()}, \textbf{ gsm0808\+\_\+channel\+\_\+type\+::perm\+\_\+spch}, and \textbf{ gsm0808\+\_\+channel\+\_\+type\+::perm\+\_\+spch\+\_\+len}.



Referenced by \textbf{ gsm0808\+\_\+channel\+\_\+type\+\_\+name()}, and \textbf{ gsm0808\+\_\+channel\+\_\+type\+\_\+name\+\_\+c()}.

\mbox{\label{group__gsm0808_ga60b4d19e79524f83edb9094a1de51689}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_channel\_type\_name\_c@{gsm0808\_channel\_type\_name\_c}}
\index{gsm0808\_channel\_type\_name\_c@{gsm0808\_channel\_type\_name\_c}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_channel\_type\_name\_c()}
{\footnotesize\ttfamily char $\ast$ gsm0808\+\_\+channel\+\_\+type\+\_\+name\+\_\+c (\begin{DoxyParamCaption}\item[{const void $\ast$}]{ctx,  }\item[{const struct \textbf{ gsm0808\+\_\+channel\+\_\+type} $\ast$}]{ct }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+strbuf\+::buf}, and \textbf{ gsm0808\+\_\+channel\+\_\+type\+\_\+name\+\_\+buf()}.

\mbox{\label{group__gsm0808_gae3f753f17692b6d1078b15143a746379}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_chosen\_channel@{gsm0808\_chosen\_channel}}
\index{gsm0808\_chosen\_channel@{gsm0808\_chosen\_channel}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_chosen\_channel()}
{\footnotesize\ttfamily static uint8\+\_\+t gsm0808\+\_\+chosen\+\_\+channel (\begin{DoxyParamCaption}\item[{enum \textbf{ gsm\+\_\+chan\+\_\+t}}]{type,  }\item[{enum \textbf{ gsm48\+\_\+chan\+\_\+mode}}]{mode }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Return 3GPP TS 48.\+008 3.\+2.\+2.\+33 Chosen Channel. 



References \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+DATA\+\_\+12k0}, \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+DATA\+\_\+14k5}, \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+DATA\+\_\+14k5\+\_\+29k0}, \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+DATA\+\_\+14k5\+\_\+43k5}, \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+DATA\+\_\+29k0}, \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+DATA\+\_\+29k0\+\_\+14k5}, \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+DATA\+\_\+29k0\+\_\+43k5}, \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+DATA\+\_\+32k0}, \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+DATA\+\_\+3k6}, \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+DATA\+\_\+43k5}, \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+DATA\+\_\+43k5\+\_\+14k5}, \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+DATA\+\_\+43k5\+\_\+29k0}, \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+DATA\+\_\+6k0}, \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+SIGN}, \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+SPEECH\+\_\+\+AMR}, \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+SPEECH\+\_\+\+EFR}, \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+SPEECH\+\_\+\+V1}, \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+SPEECH\+\_\+\+V4}, \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+SPEECH\+\_\+\+V5}, \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+SPEECH\+\_\+\+V6}, \textbf{ GSM\+\_\+\+LCHAN\+\_\+\+NONE}, \textbf{ GSM\+\_\+\+LCHAN\+\_\+\+SDCCH}, \textbf{ GSM\+\_\+\+LCHAN\+\_\+\+TCH\+\_\+F}, \textbf{ GSM\+\_\+\+LCHAN\+\_\+\+TCH\+\_\+H}, \textbf{ mode}, and \textbf{ type}.

\mbox{\label{group__gsm0808_gae5fb5bb3cdcad90b1728e1d475922382}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_ass@{gsm0808\_create\_ass}}
\index{gsm0808\_create\_ass@{gsm0808\_create\_ass}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_ass()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+ass (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+channel\+\_\+type} $\ast$}]{ct,  }\item[{const uint16\+\_\+t $\ast$}]{cic,  }\item[{const struct sockaddr\+\_\+storage $\ast$}]{ss,  }\item[{const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list} $\ast$}]{scl,  }\item[{const uint32\+\_\+t $\ast$}]{ci }\end{DoxyParamCaption})}



Create BSSMAP Assignment Request message, 3GPP TS 48.\+008 §3.2.\+1.\+1. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em ct} & Channel Type \\
\hline
\mbox{\texttt{ in}}  & {\em cic} & Circuit Identity Code (Classic A only) \\
\hline
\mbox{\texttt{ in}}  & {\em ss} & Socket Address of MSC-\/side RTP socket (Ao\+IP only) \\
\hline
\mbox{\texttt{ in}}  & {\em scl} & Speech Codec List (Ao\+IP only) \\
\hline
\mbox{\texttt{ in}}  & {\em ci} & Call Identifier (Optional), §3.2.\+2.\+105 \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP Assignment Request message 
\end{DoxyReturn}


References \textbf{ gsm0808\+\_\+create\+\_\+ass2()}.

\mbox{\label{group__gsm0808_ga5c4b46a2a5e0209f837ebb3ce719a354}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_ass2@{gsm0808\_create\_ass2}}
\index{gsm0808\_create\_ass2@{gsm0808\_create\_ass2}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_ass2()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+ass2 (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+channel\+\_\+type} $\ast$}]{ct,  }\item[{const uint16\+\_\+t $\ast$}]{cic,  }\item[{const struct sockaddr\+\_\+storage $\ast$}]{ss,  }\item[{const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list} $\ast$}]{scl,  }\item[{const uint32\+\_\+t $\ast$}]{ci,  }\item[{const uint8\+\_\+t $\ast$}]{kc,  }\item[{const struct \textbf{ osmo\+\_\+lcls} $\ast$}]{lcls }\end{DoxyParamCaption})}



Create BSSMAP Assignment Request message, 3GPP TS 48.\+008 §3.2.\+1.\+1. 

This is identical to \doxyref{gsm0808\+\_\+create\+\_\+ass()}{p.}{group__gsm0808_gae5fb5bb3cdcad90b1728e1d475922382}, but adds KC and LCLS IEs. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em ct} & Channel Type \\
\hline
\mbox{\texttt{ in}}  & {\em cic} & Circuit Identity Code (Classic A only) \\
\hline
\mbox{\texttt{ in}}  & {\em ss} & Socket Address of MSC-\/side RTP socket (Ao\+IP only) \\
\hline
\mbox{\texttt{ in}}  & {\em scl} & Speech Codec List (Ao\+IP only) \\
\hline
\mbox{\texttt{ in}}  & {\em ci} & Call Identifier (Optional), §3.2.\+2.\+105 \\
\hline
\mbox{\texttt{ in}}  & {\em kc} & Kc128 ciphering key (Optional, A5/4), §3.2.\+2.\+109 \\
\hline
\mbox{\texttt{ in}}  & {\em lcls} & Optional LCLS parameters \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP Assignment Request message 
\end{DoxyReturn}


References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+ASSIGMENT\+\_\+\+RQST}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+aoip\+\_\+trasp\+\_\+addr()}, \textbf{ gsm0808\+\_\+enc\+\_\+channel\+\_\+type()}, \textbf{ gsm0808\+\_\+enc\+\_\+lcls()}, \textbf{ gsm0808\+\_\+enc\+\_\+speech\+\_\+codec\+\_\+list2()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CALL\+\_\+\+ID}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CIRCUIT\+\_\+\+IDENTITY\+\_\+\+CODE}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+KC\+\_\+128}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+tv16\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+fixed\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+v\+\_\+put()}, and \textbf{ OSMO\+\_\+\+ASSERT}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+ass()}.

\mbox{\label{group__gsm0808_ga42f2b44de01f70b152836f013168ce09}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_ass\_compl@{gsm0808\_create\_ass\_compl}}
\index{gsm0808\_create\_ass\_compl@{gsm0808\_create\_ass\_compl}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_ass\_compl()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+ass\+\_\+compl (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{rr\+\_\+cause,  }\item[{uint8\+\_\+t}]{chosen\+\_\+channel,  }\item[{uint8\+\_\+t}]{encr\+\_\+alg\+\_\+id,  }\item[{uint8\+\_\+t}]{speech\+\_\+mode,  }\item[{const struct sockaddr\+\_\+storage $\ast$}]{ss,  }\item[{const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec} $\ast$}]{sc,  }\item[{const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list} $\ast$}]{scl }\end{DoxyParamCaption})}



Create BSSMAP Assignment Completed message. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rr\+\_\+cause} & GSM 04.\+08 RR Cause value \\
\hline
\mbox{\texttt{ in}}  & {\em chosen\+\_\+channel} & Chosen Channel \\
\hline
\mbox{\texttt{ in}}  & {\em encr\+\_\+alg\+\_\+id} & Encryption Algorithm ID \\
\hline
\mbox{\texttt{ in}}  & {\em speech\+\_\+mode} & Speech Mode \\
\hline
\mbox{\texttt{ in}}  & {\em ss} & Socket Address of BSS-\/side RTP socket \\
\hline
\mbox{\texttt{ in}}  & {\em sc} & Speech Codec (current) \\
\hline
\mbox{\texttt{ in}}  & {\em scl} & Speech Codec List (permitted) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP Assignment Complete message 
\end{DoxyReturn}


References \textbf{ gsm0808\+\_\+create\+\_\+ass\+\_\+compl2()}, \textbf{ GSM0808\+\_\+\+LCLS\+\_\+\+STS\+\_\+\+NA}, and \textbf{ rr\+\_\+cause}.

\mbox{\label{group__gsm0808_ga6f8544d031ca4842172837d989edb8bb}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_ass\_compl2@{gsm0808\_create\_ass\_compl2}}
\index{gsm0808\_create\_ass\_compl2@{gsm0808\_create\_ass\_compl2}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_ass\_compl2()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+ass\+\_\+compl2 (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{rr\+\_\+cause,  }\item[{uint8\+\_\+t}]{chosen\+\_\+channel,  }\item[{uint8\+\_\+t}]{encr\+\_\+alg\+\_\+id,  }\item[{uint8\+\_\+t}]{speech\+\_\+mode,  }\item[{const struct sockaddr\+\_\+storage $\ast$}]{ss,  }\item[{const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec} $\ast$}]{sc,  }\item[{const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list} $\ast$}]{scl,  }\item[{enum \textbf{ gsm0808\+\_\+lcls\+\_\+status}}]{lcls\+\_\+bss\+\_\+status }\end{DoxyParamCaption})}



Create BSSMAP Assignment Completed message as per 3GPP TS 48.\+008 §3.2.\+1.\+2. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rr\+\_\+cause} & GSM 04.\+08 RR Cause value \\
\hline
\mbox{\texttt{ in}}  & {\em chosen\+\_\+channel} & Chosen Channel \\
\hline
\mbox{\texttt{ in}}  & {\em encr\+\_\+alg\+\_\+id} & Encryption Algorithm ID \\
\hline
\mbox{\texttt{ in}}  & {\em speech\+\_\+mode} & Speech Mode \\
\hline
\mbox{\texttt{ in}}  & {\em ss} & Socket Address of BSS-\/side RTP socket \\
\hline
\mbox{\texttt{ in}}  & {\em sc} & Speech Codec (current) \\
\hline
\mbox{\texttt{ in}}  & {\em scl} & Speech Codec List (permitted) \\
\hline
\mbox{\texttt{ in}}  & {\em lcls\+\_\+bss\+\_\+status} & §3.2.\+2.\+119 LCLS-\/\+BSS-\/\+Status, optional \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP Assignment Complete message 
\end{DoxyReturn}


References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+ASSIGMENT\+\_\+\+COMPLETE}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+aoip\+\_\+trasp\+\_\+addr()}, \textbf{ gsm0808\+\_\+enc\+\_\+speech\+\_\+codec2()}, \textbf{ gsm0808\+\_\+enc\+\_\+speech\+\_\+codec\+\_\+list2()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CHOSEN\+\_\+\+CHANNEL}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CHOSEN\+\_\+\+ENCR\+\_\+\+ALG}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+LCLS\+\_\+\+BSS\+\_\+\+STATUS}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+RR\+\_\+\+CAUSE}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+SPEECH\+\_\+\+VERSION}, \textbf{ GSM0808\+\_\+\+LCLS\+\_\+\+STS\+\_\+\+NA}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, \textbf{ msgb\+\_\+v\+\_\+put()}, and \textbf{ rr\+\_\+cause}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+ass\+\_\+compl()}, and \textbf{ gsm0808\+\_\+create\+\_\+assignment\+\_\+completed()}.

\mbox{\label{group__gsm0808_ga8392ee9eddc31cbb5449bd68c1516e42}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_ass\_fail@{gsm0808\_create\_ass\_fail}}
\index{gsm0808\_create\_ass\_fail@{gsm0808\_create\_ass\_fail}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_ass\_fail()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+ass\+\_\+fail (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{cause,  }\item[{const uint8\+\_\+t $\ast$}]{rr\+\_\+cause,  }\item[{const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list} $\ast$}]{scl }\end{DoxyParamCaption})}



Create BSSMAP Assignment Failure message. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em cause} & BSSMAP Cause value \\
\hline
\mbox{\texttt{ in}}  & {\em rr\+\_\+cause} & GSM 04.\+08 RR Cause value \\
\hline
\mbox{\texttt{ in}}  & {\em scl} & Optional Speech Cdec List (Ao\+IP) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP Assignment Failure message 
\end{DoxyReturn}


References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+ASSIGMENT\+\_\+\+FAILURE}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ cause}, \textbf{ gsm0808\+\_\+enc\+\_\+cause()}, \textbf{ gsm0808\+\_\+enc\+\_\+speech\+\_\+codec\+\_\+list2()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+RR\+\_\+\+CAUSE}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, \textbf{ msgb\+\_\+v\+\_\+put()}, and \textbf{ rr\+\_\+cause}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+assignment\+\_\+failure()}.

\mbox{\label{group__gsm0808_gae5672ff8c39e45adfeee4ec70617f1a0}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_assignment\_completed@{gsm0808\_create\_assignment\_completed}}
\index{gsm0808\_create\_assignment\_completed@{gsm0808\_create\_assignment\_completed}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_assignment\_completed()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+assignment\+\_\+completed (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{rr\+\_\+cause,  }\item[{uint8\+\_\+t}]{chosen\+\_\+channel,  }\item[{uint8\+\_\+t}]{encr\+\_\+alg\+\_\+id,  }\item[{uint8\+\_\+t}]{speech\+\_\+mode }\end{DoxyParamCaption})}



Create BSSMAP Assignment Completed message. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em rr\+\_\+cause} & GSM 04.\+08 RR Cause value \\
\hline
\mbox{\texttt{ in}}  & {\em chosen\+\_\+channel} & Chosen Channel \\
\hline
\mbox{\texttt{ in}}  & {\em encr\+\_\+alg\+\_\+id} & Encryption Algorithm ID \\
\hline
\mbox{\texttt{ in}}  & {\em speech\+\_\+mode} & Speech Mode \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP Assignment Complete message 
\end{DoxyReturn}


References \textbf{ gsm0808\+\_\+create\+\_\+ass\+\_\+compl2()}, \textbf{ GSM0808\+\_\+\+LCLS\+\_\+\+STS\+\_\+\+NA}, and \textbf{ rr\+\_\+cause}.

\mbox{\label{group__gsm0808_ga16f990f41f4b86f9d72c5862f46cbeb0}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_assignment\_failure@{gsm0808\_create\_assignment\_failure}}
\index{gsm0808\_create\_assignment\_failure@{gsm0808\_create\_assignment\_failure}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_assignment\_failure()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+assignment\+\_\+failure (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{cause,  }\item[{uint8\+\_\+t $\ast$}]{rr\+\_\+cause }\end{DoxyParamCaption})}



Create BSSMAP Assignment Failure message. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em cause} & BSSMAP Cause value \\
\hline
\mbox{\texttt{ in}}  & {\em rr\+\_\+cause} & GSM 04.\+08 RR Cause value \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP Assignment Failure message 
\end{DoxyReturn}


References \textbf{ cause}, \textbf{ gsm0808\+\_\+create\+\_\+ass\+\_\+fail()}, and \textbf{ rr\+\_\+cause}.

\mbox{\label{group__gsm0808_gaf484d7458d759eb5caad0f4a87213a3b}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_cipher@{gsm0808\_create\_cipher}}
\index{gsm0808\_create\_cipher@{gsm0808\_create\_cipher}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_cipher()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+cipher (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+encrypt\+\_\+info} $\ast$}]{ei,  }\item[{const uint8\+\_\+t $\ast$}]{cipher\+\_\+response\+\_\+mode }\end{DoxyParamCaption})}



Superseded by \doxyref{gsm0808\+\_\+create\+\_\+cipher2()}{p.}{group__gsm0808_ga10e9815fbea313738b6c5616df8e5491} to include Kc128. 

Create BSSMAP Cipher Mode Command message (without Kc128). 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em ei} & Mandatory Encryption Information \\
\hline
\mbox{\texttt{ in}}  & {\em kc128} & optional kc128 key for A5/4 \\
\hline
\mbox{\texttt{ in}}  & {\em cipher\+\_\+response\+\_\+mode} & optional 1-\/byte Cipher Response Mode \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP Cipher Mode Command message 
\end{DoxyReturn}


References \textbf{ gsm0808\+\_\+cipher\+\_\+mode\+\_\+command\+::cipher\+\_\+response\+\_\+mode}, \textbf{ gsm0808\+\_\+cipher\+\_\+mode\+\_\+command\+::ei}, and \textbf{ gsm0808\+\_\+create\+\_\+cipher2()}.

\mbox{\label{group__gsm0808_ga10e9815fbea313738b6c5616df8e5491}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_cipher2@{gsm0808\_create\_cipher2}}
\index{gsm0808\_create\_cipher2@{gsm0808\_create\_cipher2}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_cipher2()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+cipher2 (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+cipher\+\_\+mode\+\_\+command} $\ast$}]{cmc }\end{DoxyParamCaption})}



Create BSSMAP Cipher Mode Command message. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em cmc} & Information to encode. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP Cipher Mode Command message 
\end{DoxyReturn}


References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+CIPHER\+\_\+\+MODE\+\_\+\+CMD}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+cipher\+\_\+mode\+\_\+command\+::cipher\+\_\+response\+\_\+mode}, \textbf{ gsm0808\+\_\+cipher\+\_\+mode\+\_\+command\+::cipher\+\_\+response\+\_\+mode\+\_\+present}, \textbf{ gsm0808\+\_\+cipher\+\_\+mode\+\_\+command\+::ei}, \textbf{ gsm0808\+\_\+enc\+\_\+encrypt\+\_\+info()}, \textbf{ gsm0808\+\_\+enc\+\_\+kc128()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CIPHER\+\_\+\+RESPONSE\+\_\+\+MODE}, \textbf{ gsm0808\+\_\+cipher\+\_\+mode\+\_\+command\+::kc128}, \textbf{ gsm0808\+\_\+cipher\+\_\+mode\+\_\+command\+::kc128\+\_\+present}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, and \textbf{ msgb\+\_\+v\+\_\+put()}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+cipher()}.

\mbox{\label{group__gsm0808_gae1fee584d7525e3a7d3e59cb2403391a}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_cipher\_complete@{gsm0808\_create\_cipher\_complete}}
\index{gsm0808\_create\_cipher\_complete@{gsm0808\_create\_cipher\_complete}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_cipher\_complete()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+cipher\+\_\+complete (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{layer3,  }\item[{uint8\+\_\+t}]{alg\+\_\+id }\end{DoxyParamCaption})}



Create BSSMAP Cipher Mode Complete message. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em layer3} & L3 Message to be included \\
\hline
\mbox{\texttt{ in}}  & {\em alg\+\_\+id} & Chosen Encrpytion Algorithm \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP Cipher Mode Complete message 
\end{DoxyReturn}


References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+CIPHER\+\_\+\+MODE\+\_\+\+COMPLETE}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CHOSEN\+\_\+\+ENCR\+\_\+\+ALG}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+LAYER\+\_\+3\+\_\+\+MESSAGE\+\_\+\+CONTENTS}, \textbf{ msgb\+::l3h}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+l3len()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, and \textbf{ msgb\+\_\+v\+\_\+put()}.

\mbox{\label{group__gsm0808_ga429d802f8751e5394e3993bca798bd83}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_cipher\_reject@{gsm0808\_create\_cipher\_reject}}
\index{gsm0808\_create\_cipher\_reject@{gsm0808\_create\_cipher\_reject}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_cipher\_reject()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+cipher\+\_\+reject (\begin{DoxyParamCaption}\item[{enum \textbf{ gsm0808\+\_\+cause}}]{cause }\end{DoxyParamCaption})}



Create BSSMAP Cipher Mode Reject message. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em cause} & 3GPP TS 08.\+08 §3.2.\+2.\+5 cause value \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP Cipher Mode Reject message 
\end{DoxyReturn}


References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+CIPHER\+\_\+\+MODE\+\_\+\+REJECT}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ cause}, \textbf{ gsm0808\+\_\+enc\+\_\+cause()}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, and \textbf{ msgb\+\_\+v\+\_\+put()}.

\mbox{\label{group__gsm0808_ga91a7f582a61d9fec93e28328eda780f4}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_cipher\_reject\_ext@{gsm0808\_create\_cipher\_reject\_ext}}
\index{gsm0808\_create\_cipher\_reject\_ext@{gsm0808\_create\_cipher\_reject\_ext}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_cipher\_reject\_ext()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+cipher\+\_\+reject\+\_\+ext (\begin{DoxyParamCaption}\item[{enum \textbf{ gsm0808\+\_\+cause\+\_\+class}}]{class,  }\item[{uint8\+\_\+t}]{ext }\end{DoxyParamCaption})}



Create BSSMAP Cipher Mode Reject message. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em class} & 3GPP TS 08.\+08 §3.2.\+2.\+5 cause\textquotesingle{}s class \\
\hline
\mbox{\texttt{ in}}  & {\em ext} & 3GPP TS 08.\+08 §3.2.\+2.\+5 cause value (national application extension) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP Cipher Mode Reject message 
\end{DoxyReturn}


References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+CIPHER\+\_\+\+MODE\+\_\+\+REJECT}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ cause}, \textbf{ gsm0808\+\_\+enc\+\_\+cause()}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, and \textbf{ msgb\+\_\+v\+\_\+put()}.

\mbox{\label{group__gsm0808_ga9124498c66805e9a91c6abe628c8f7bc}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_classmark\_request@{gsm0808\_create\_classmark\_request}}
\index{gsm0808\_create\_classmark\_request@{gsm0808\_create\_classmark\_request}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_classmark\_request()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+classmark\+\_\+request (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Create BSSMAP Classmark Request message. 

\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP Classmark Request message 
\end{DoxyReturn}


References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+CLASSMARK\+\_\+\+RQST}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, and \textbf{ msgb\+\_\+v\+\_\+put()}.

\mbox{\label{group__gsm0808_ga43a237bef803d1470631f911c84d7c72}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_classmark\_update@{gsm0808\_create\_classmark\_update}}
\index{gsm0808\_create\_classmark\_update@{gsm0808\_create\_classmark\_update}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_classmark\_update()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+classmark\+\_\+update (\begin{DoxyParamCaption}\item[{const uint8\+\_\+t $\ast$}]{cm2,  }\item[{uint8\+\_\+t}]{cm2\+\_\+len,  }\item[{const uint8\+\_\+t $\ast$}]{cm3,  }\item[{uint8\+\_\+t}]{cm3\+\_\+len }\end{DoxyParamCaption})}



Create BSSMAP Classmark Update message. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em cm2} & Classmark 2 \\
\hline
\mbox{\texttt{ in}}  & {\em cm2\+\_\+len} & length (in octets) of {\itshape cm2} \\
\hline
\mbox{\texttt{ in}}  & {\em cm3} & Classmark 3 \\
\hline
\mbox{\texttt{ in}}  & {\em cm3\+\_\+len} & length (in octets) of {\itshape cm3} \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP Classmark Update message 
\end{DoxyReturn}


References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+CLASSMARK\+\_\+\+UPDATE}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ cm2}, \textbf{ cm2\+\_\+len}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CLASSMARK\+\_\+\+INFORMATION\+\_\+\+T2}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CLASSMARK\+\_\+\+INFORMATION\+\_\+\+T3}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, and \textbf{ msgb\+\_\+v\+\_\+put()}.

\mbox{\label{group__gsm0808_gafbbd979559edf6618266e3ca3971c14d}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_clear\_command@{gsm0808\_create\_clear\_command}}
\index{gsm0808\_create\_clear\_command@{gsm0808\_create\_clear\_command}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_clear\_command()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+clear\+\_\+command (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{cause }\end{DoxyParamCaption})}



Create BSSMAP Clear Command message with BSSAP header {\itshape before} l3h and BSSMAP in l3h. 

This is quite different from most (all?) other gsm0808\+\_\+create\+\_\+$\ast$ which have l3h point to the BSSAP header. However, we have to keep this for backwards compatibility. Use \doxyref{gsm0808\+\_\+create\+\_\+clear\+\_\+command2()}{p.}{group__gsm0808_gacccf829582b35f4e8a5a0d4f4e43e216} for a \textquotesingle{}modern\textquotesingle{} implementation. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em cause} & TS 08.\+08 cause value \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP Clear Command message 
\end{DoxyReturn}


References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+CLEAR\+\_\+\+CMD}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ cause}, \textbf{ gsm0808\+\_\+enc\+\_\+cause()}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, and \textbf{ msgb\+\_\+v\+\_\+put()}.

\mbox{\label{group__gsm0808_gacccf829582b35f4e8a5a0d4f4e43e216}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_clear\_command2@{gsm0808\_create\_clear\_command2}}
\index{gsm0808\_create\_clear\_command2@{gsm0808\_create\_clear\_command2}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_clear\_command2()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+clear\+\_\+command2 (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{cause,  }\item[{bool}]{csfb\+\_\+ind }\end{DoxyParamCaption})}



Create BSSMAP Clear Command message. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em cause} & TS 08.\+08 cause value. \\
\hline
\mbox{\texttt{ in}}  & {\em csfb\+\_\+ind} & indicate that the call was established in an CSFB context. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP Clear Command message. 
\end{DoxyReturn}


References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+CLEAR\+\_\+\+CMD}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ cause}, \textbf{ gsm0808\+\_\+enc\+\_\+cause()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CSFB\+\_\+\+INDICATION}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, and \textbf{ msgb\+\_\+v\+\_\+put()}.

\mbox{\label{group__gsm0808_gae4f39e6a9868ca2715e5a56e9ce7f12b}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_clear\_complete@{gsm0808\_create\_clear\_complete}}
\index{gsm0808\_create\_clear\_complete@{gsm0808\_create\_clear\_complete}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_clear\_complete()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+clear\+\_\+complete (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Create BSSMAP Clear Complete message. 

\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP Clear Complete message 
\end{DoxyReturn}


References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+CLEAR\+\_\+\+COMPLETE}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, and \textbf{ msgb\+\_\+tlv\+\_\+put()}.

\mbox{\label{group__gsm0808_ga009aaa222b114baec385b60b8078d5ff}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_clear\_rqst@{gsm0808\_create\_clear\_rqst}}
\index{gsm0808\_create\_clear\_rqst@{gsm0808\_create\_clear\_rqst}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_clear\_rqst()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+clear\+\_\+rqst (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{cause }\end{DoxyParamCaption})}



Create BSSMAP Clear Request message. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em cause} & BSSMAP Cause value \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP Clear Request message 
\end{DoxyReturn}


References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+CLEAR\+\_\+\+RQST}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ cause}, \textbf{ gsm0808\+\_\+enc\+\_\+cause()}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, and \textbf{ msgb\+\_\+v\+\_\+put()}.

\mbox{\label{group__gsm0808_ga0a9b5cf0ffb92078017e676051f68928}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_common\_id@{gsm0808\_create\_common\_id}}
\index{gsm0808\_create\_common\_id@{gsm0808\_create\_common\_id}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_common\_id()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+common\+\_\+id (\begin{DoxyParamCaption}\item[{const char $\ast$}]{imsi,  }\item[{const struct \textbf{ osmo\+\_\+plmn\+\_\+id} $\ast$}]{selected\+\_\+plmn\+\_\+id,  }\item[{const struct \textbf{ osmo\+\_\+plmn\+\_\+id} $\ast$}]{last\+\_\+used\+\_\+eutran\+\_\+plnm\+\_\+id }\end{DoxyParamCaption})}



Create BSSMAP COMMON ID message, 3GPP TS 48.\+008 3.\+2.\+1.\+68. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em imsi} & IMSI digits (decimal string). \\
\hline
\mbox{\texttt{ in}}  & {\em selected\+\_\+plmn\+\_\+id} & Selected PLMN ID to encode, or NULL to not encode this IE. \\
\hline
\mbox{\texttt{ in}}  & {\em last\+\_\+used\+\_\+eutran\+\_\+plnm\+\_\+id} & Last used E-\/\+UTRAN PLMN ID to encode, or NULL to not encode this IE. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP COMMON ID message, or NULL if encoding failed. 
\end{DoxyReturn}


References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+COMMON\+\_\+\+ID}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+IMSI}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+LAST\+\_\+\+USED\+\_\+\+EUTRAN\+\_\+\+PLMN\+\_\+\+ID}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+SELECTED\+\_\+\+PLMN\+\_\+\+ID}, \textbf{ GSM\+\_\+\+MI\+\_\+\+TYPE\+\_\+\+IMSI}, \textbf{ mi}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+tl\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+v\+\_\+put()}, \textbf{ osmo\+\_\+mobile\+\_\+identity\+\_\+encode\+\_\+msgb()}, \textbf{ osmo\+\_\+plmn\+\_\+to\+\_\+bcd()}, and \textbf{ OSMO\+\_\+\+STRLCPY\+\_\+\+ARRAY}.

\mbox{\label{group__gsm0808_gafa61784037eacc9af3f1fec024279925}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_dtap@{gsm0808\_create\_dtap}}
\index{gsm0808\_create\_dtap@{gsm0808\_create\_dtap}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_dtap()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+dtap (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg\+\_\+l3,  }\item[{uint8\+\_\+t}]{link\+\_\+id }\end{DoxyParamCaption})}



Create BSSMAP DTAP message. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em msg\+\_\+l3} & Messge Buffer containing Layer3 message \\
\hline
\mbox{\texttt{ in}}  & {\em link\+\_\+id} & Link Identifier \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP DTAP message 
\end{DoxyReturn}


References \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+DTAP}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ data}, \textbf{ header}, \textbf{ msgb\+::l3h}, \textbf{ link\+\_\+id}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+l3len()}, and \textbf{ msgb\+\_\+put()}.

\mbox{\label{group__gsm0808_ga7bc35dd86262c0cd1601a386f53062cb}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_handover\_command@{gsm0808\_create\_handover\_command}}
\index{gsm0808\_create\_handover\_command@{gsm0808\_create\_handover\_command}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_handover\_command()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+handover\+\_\+command (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+handover\+\_\+command} $\ast$}]{params }\end{DoxyParamCaption})}



Create BSSMAP HANDOVER COMMAND message, 3GPP TS 48.\+008 3.\+2.\+1.\+11. 

Sent from the MSC to the old BSS to transmit the RR Handover Command received from the new BSS. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+HANDOVER\+\_\+\+CMD}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+NO\+\_\+\+CELL}, \textbf{ gsm0808\+\_\+enc\+\_\+cell\+\_\+id()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+LAYER\+\_\+3\+\_\+\+INFORMATION}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+NEW\+\_\+\+BSS\+\_\+\+TO\+\_\+\+OLD\+\_\+\+BSS\+\_\+\+INFO}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+v\+\_\+put()}, and \textbf{ params}.

\mbox{\label{group__gsm0808_gac9cdd72ce8eeb877aedd06cdb0fabd7a}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_handover\_complete@{gsm0808\_create\_handover\_complete}}
\index{gsm0808\_create\_handover\_complete@{gsm0808\_create\_handover\_complete}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_handover\_complete()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+handover\+\_\+complete (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+handover\+\_\+complete} $\ast$}]{params }\end{DoxyParamCaption})}



Create BSSMAP HANDOVER COMPLETE message, 3GPP TS 48.\+008 3.\+2.\+1.\+12. 

Sent from the MT BSC back to the MSC when the MS has fully settled into the new lchan. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+HANDOVER\+\_\+\+COMPLETE}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+speech\+\_\+codec2()}, \textbf{ gsm0808\+\_\+enc\+\_\+speech\+\_\+codec\+\_\+list2()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CHOSEN\+\_\+\+ENCR\+\_\+\+ALG}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+LCLS\+\_\+\+BSS\+\_\+\+STATUS}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+RR\+\_\+\+CAUSE}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, \textbf{ msgb\+\_\+v\+\_\+put()}, and \textbf{ params}.

\mbox{\label{group__gsm0808_ga5e1d0d1c7707c00bebac69b57e9bd771}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_handover\_detect@{gsm0808\_create\_handover\_detect}}
\index{gsm0808\_create\_handover\_detect@{gsm0808\_create\_handover\_detect}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_handover\_detect()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+handover\+\_\+detect (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Create BSSMAP HANDOVER DETECT message, 3GPP TS 48.\+008 3.\+2.\+1.\+40. 

Sent from the MT BSC back to the MSC when the MS has sent a handover RACH request and the MT BSC has received the Handover Detect message. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+HANDOVER\+\_\+\+DETECT}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, and \textbf{ msgb\+\_\+v\+\_\+put()}.

\mbox{\label{group__gsm0808_ga283bb40b8fd6f4635b7b4a81b880e24a}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_handover\_failure@{gsm0808\_create\_handover\_failure}}
\index{gsm0808\_create\_handover\_failure@{gsm0808\_create\_handover\_failure}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_handover\_failure()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+handover\+\_\+failure (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+handover\+\_\+failure} $\ast$}]{params }\end{DoxyParamCaption})}



Create BSSMAP HANDOVER FAILURE message, 3GPP TS 48.\+008 3.\+2.\+1.\+16. 

Sent from the MT BSC back to the MSC when the handover has failed. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+HANDOVER\+\_\+\+FAILURE}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+cause()}, \textbf{ gsm0808\+\_\+enc\+\_\+speech\+\_\+codec\+\_\+list2()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+RR\+\_\+\+CAUSE}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+v\+\_\+put()}, and \textbf{ params}.

\mbox{\label{group__gsm0808_gaad5eec115084accf11092bdd4f7e06df}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_handover\_performed@{gsm0808\_create\_handover\_performed}}
\index{gsm0808\_create\_handover\_performed@{gsm0808\_create\_handover\_performed}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_handover\_performed()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+handover\+\_\+performed (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+handover\+\_\+performed} $\ast$}]{params }\end{DoxyParamCaption})}



Create BSSMAP HANDOVER PERFORMED message, 3GPP TS 48.\+008 3.\+2.\+1.\+25. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em params} & All information to be encoded. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP HANDOVER PERFORMED message 
\end{DoxyReturn}


References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+HANDOVER\+\_\+\+PERFORMED}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+cause()}, \textbf{ gsm0808\+\_\+enc\+\_\+cell\+\_\+id()}, \textbf{ gsm0808\+\_\+enc\+\_\+speech\+\_\+codec2()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CHOSEN\+\_\+\+CHANNEL}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CHOSEN\+\_\+\+ENCR\+\_\+\+ALG}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+LCLS\+\_\+\+BSS\+\_\+\+STATUS}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+SPEECH\+\_\+\+VERSION}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, \textbf{ msgb\+\_\+v\+\_\+put()}, and \textbf{ params}.

\mbox{\label{group__gsm0808_ga95e1dc2501752eb735e59406debb285c}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_handover\_request@{gsm0808\_create\_handover\_request}}
\index{gsm0808\_create\_handover\_request@{gsm0808\_create\_handover\_request}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_handover\_request()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+handover\+\_\+request (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+handover\+\_\+request} $\ast$}]{params }\end{DoxyParamCaption})}



Create BSSMAP HANDOVER REQUEST message, 3GPP TS 48.\+008 3.\+2.\+1.\+8. 

Sent from the MSC to the potential new target cell during inter-\/\+BSC handover, or to the target MSC during inter-\/\+MSC handover. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+HANDOVER\+\_\+\+RQST}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+aoip\+\_\+trasp\+\_\+addr()}, \textbf{ gsm0808\+\_\+enc\+\_\+cause()}, \textbf{ gsm0808\+\_\+enc\+\_\+cell\+\_\+id()}, \textbf{ gsm0808\+\_\+enc\+\_\+channel\+\_\+type()}, \textbf{ gsm0808\+\_\+enc\+\_\+encrypt\+\_\+info()}, \textbf{ gsm0808\+\_\+enc\+\_\+kc128()}, \textbf{ gsm0808\+\_\+enc\+\_\+speech\+\_\+codec\+\_\+list2()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CALL\+\_\+\+ID}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CHOSEN\+\_\+\+ENCR\+\_\+\+ALG}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CLASSMARK\+\_\+\+INFORMATION\+\_\+\+T2}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CLASSMARK\+\_\+\+INFORMATION\+\_\+\+T3}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CLASSMARK\+\_\+\+INFORMATION\+\_\+\+TYPE\+\_\+1}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CURRENT\+\_\+\+CHANNEL\+\_\+\+TYPE\+\_\+1}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+GLOBAL\+\_\+\+CALL\+\_\+\+REF}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+IMSI}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+OLD\+\_\+\+BSS\+\_\+\+TO\+\_\+\+NEW\+\_\+\+BSS\+\_\+\+INFORMATION}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+SPEECH\+\_\+\+VERSION}, \textbf{ gsm48\+\_\+generate\+\_\+mid\+\_\+from\+\_\+imsi()}, \textbf{ GSM48\+\_\+\+MI\+\_\+\+SIZE}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+fixed\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, \textbf{ msgb\+\_\+v\+\_\+put()}, \textbf{ params}, and \textbf{ put\+\_\+old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+information()}.

\mbox{\label{group__gsm0808_ga0530126b68414718f04db8d1ada62f43}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_handover\_request\_ack@{gsm0808\_create\_handover\_request\_ack}}
\index{gsm0808\_create\_handover\_request\_ack@{gsm0808\_create\_handover\_request\_ack}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_handover\_request\_ack()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+handover\+\_\+request\+\_\+ack (\begin{DoxyParamCaption}\item[{const uint8\+\_\+t $\ast$}]{l3\+\_\+info,  }\item[{uint8\+\_\+t}]{l3\+\_\+info\+\_\+len,  }\item[{uint8\+\_\+t}]{chosen\+\_\+channel,  }\item[{uint8\+\_\+t}]{chosen\+\_\+encr\+\_\+alg,  }\item[{uint8\+\_\+t}]{chosen\+\_\+speech\+\_\+version }\end{DoxyParamCaption})}



Same as \doxyref{gsm0808\+\_\+create\+\_\+handover\+\_\+request\+\_\+ack2()}{p.}{group__gsm0808_ga0284dcad7523250e84c6f3877a4760a2} but with less parameters. 

In particular, this lacks the Ao\+IP Transport Layer address. 

References \textbf{ gsm0808\+\_\+handover\+\_\+request\+\_\+ack\+::chosen\+\_\+channel}, \textbf{ gsm0808\+\_\+handover\+\_\+request\+\_\+ack\+::chosen\+\_\+encr\+\_\+alg}, \textbf{ gsm0808\+\_\+handover\+\_\+request\+\_\+ack\+::chosen\+\_\+speech\+\_\+version}, \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+request\+\_\+ack2()}, \textbf{ gsm0808\+\_\+handover\+\_\+request\+\_\+ack\+::l3\+\_\+info}, \textbf{ gsm0808\+\_\+handover\+\_\+request\+\_\+ack\+::l3\+\_\+info\+\_\+len}, and \textbf{ params}.

\mbox{\label{group__gsm0808_ga0284dcad7523250e84c6f3877a4760a2}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_handover\_request\_ack2@{gsm0808\_create\_handover\_request\_ack2}}
\index{gsm0808\_create\_handover\_request\_ack2@{gsm0808\_create\_handover\_request\_ack2}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_handover\_request\_ack2()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+handover\+\_\+request\+\_\+ack2 (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+handover\+\_\+request\+\_\+ack} $\ast$}]{params }\end{DoxyParamCaption})}



Create BSSMAP HANDOVER REQUEST ACKNOWLEDGE message, 3GPP TS 48.\+008 3.\+2.\+1.\+10. 

Sent from the MT BSC back to the MSC when it has allocated an lchan to handover to. l3\+\_\+info is the RR Handover Command that the MO BSC sends to the MS to move over. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+HANDOVER\+\_\+\+RQST\+\_\+\+ACKNOWLEDGE}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+aoip\+\_\+trasp\+\_\+addr()}, \textbf{ gsm0808\+\_\+enc\+\_\+speech\+\_\+codec2()}, \textbf{ gsm0808\+\_\+enc\+\_\+speech\+\_\+codec\+\_\+list2()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CHOSEN\+\_\+\+CHANNEL}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CHOSEN\+\_\+\+ENCR\+\_\+\+ALG}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+LAYER\+\_\+3\+\_\+\+INFORMATION}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+SPEECH\+\_\+\+VERSION}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, \textbf{ msgb\+\_\+v\+\_\+put()}, and \textbf{ params}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+request\+\_\+ack()}.

\mbox{\label{group__gsm0808_ga3823e243f29e44a63d1b36bddc728410}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_handover\_required@{gsm0808\_create\_handover\_required}}
\index{gsm0808\_create\_handover\_required@{gsm0808\_create\_handover\_required}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_handover\_required()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+handover\+\_\+required (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+handover\+\_\+required} $\ast$}]{params }\end{DoxyParamCaption})}



Create BSSMAP HANDOVER REQUIRED message. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em params} & All information to be encoded. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
newly allocated msgb with BSSMAP HANDOVER REQUIRED message. 
\end{DoxyReturn}


References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+HANDOVER\+\_\+\+REQUIRED}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+cause()}, \textbf{ gsm0808\+\_\+enc\+\_\+cell\+\_\+id\+\_\+list2()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CURRENT\+\_\+\+CHANNEL\+\_\+\+TYPE\+\_\+1}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+SPEECH\+\_\+\+VERSION}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+fixed\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, \textbf{ msgb\+\_\+v\+\_\+put()}, \textbf{ params}, and \textbf{ put\+\_\+old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+information()}.

\mbox{\label{group__gsm0808_gada5bcdf1e5e6b2158595b6f41afd53ef}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_handover\_required\_reject@{gsm0808\_create\_handover\_required\_reject}}
\index{gsm0808\_create\_handover\_required\_reject@{gsm0808\_create\_handover\_required\_reject}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_handover\_required\_reject()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+handover\+\_\+required\+\_\+reject (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+handover\+\_\+required\+\_\+reject} $\ast$}]{params }\end{DoxyParamCaption})}



Create BSSMAP HANDOVER REQUIRED REJECT message. 

\begin{DoxyReturn}{Returns}
newly allocated msgb with BSSMAP HANDOVER REQUIRED REJECT message. 
\end{DoxyReturn}


References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+HANDOVER\+\_\+\+REQUIRED\+\_\+\+REJECT}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+cause()}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+v\+\_\+put()}, and \textbf{ params}.

\mbox{\label{group__gsm0808_ga383e02160173ce2091dc08d181ec3fce}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_handover\_succeeded@{gsm0808\_create\_handover\_succeeded}}
\index{gsm0808\_create\_handover\_succeeded@{gsm0808\_create\_handover\_succeeded}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_handover\_succeeded()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+handover\+\_\+succeeded (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Create BSSMAP HANDOVER SUCCEEDED message, 3GPP TS 48.\+008 3.\+2.\+1.\+13. 

Sent from the MSC back to the old BSS to notify that the MS has successfully accessed the new BSS. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+HANDOVER\+\_\+\+SUCCEEDED}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, and \textbf{ msgb\+\_\+v\+\_\+put()}.

\mbox{\label{group__gsm0808_ga37a8800be8ae482fffd30f63b224c63a}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_layer3@{gsm0808\_create\_layer3}}
\index{gsm0808\_create\_layer3@{gsm0808\_create\_layer3}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_layer3()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+layer3 (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg\+\_\+l3,  }\item[{uint16\+\_\+t}]{nc,  }\item[{uint16\+\_\+t}]{cc,  }\item[{int}]{lac,  }\item[{uint16\+\_\+t}]{\+\_\+ci }\end{DoxyParamCaption})}



Create \char`\"{}\+Complete L3 Info\char`\"{} for A, legacy implementation. 

Instead use \doxyref{gsm0808\+\_\+create\+\_\+layer3\+\_\+2()}{p.}{group__gsm0808_gae720a1b82a0c1b1a9bb98fccbc3d3fb8} with the scl parameter passed as NULL, which is capable of three-\/digit MNC with leading zeros. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em msg\+\_\+l3} & msgb containing Layer 3 Message \\
\hline
\mbox{\texttt{ in}}  & {\em nc} & Mobile Network Code \\
\hline
\mbox{\texttt{ in}}  & {\em cc} & Mobile Country Code \\
\hline
\mbox{\texttt{ in}}  & {\em lac} & Location Area Code \\
\hline
\mbox{\texttt{ in}}  & {\em \+\_\+ci} & Cell Identity \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with Complete L3 Info message 
\end{DoxyReturn}


References \textbf{ gsm0808\+\_\+create\+\_\+layer3\+\_\+2()}, \textbf{ lac}, \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id\+::lai}, \textbf{ osmo\+\_\+plmn\+\_\+id\+::mcc}, and \textbf{ osmo\+\_\+location\+\_\+area\+\_\+id\+::plmn}.

\mbox{\label{group__gsm0808_gae720a1b82a0c1b1a9bb98fccbc3d3fb8}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_layer3\_2@{gsm0808\_create\_layer3\_2}}
\index{gsm0808\_create\_layer3\_2@{gsm0808\_create\_layer3\_2}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_layer3\_2()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+layer3\+\_\+2 (\begin{DoxyParamCaption}\item[{const struct \textbf{ msgb} $\ast$}]{msg\+\_\+l3,  }\item[{const struct \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id} $\ast$}]{cell,  }\item[{const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list} $\ast$}]{scl }\end{DoxyParamCaption})}



Create \char`\"{}\+Complete L3 Info\char`\"{} for Ao\+IP. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em msg\+\_\+l3} & msgb containing Layer 3 Message -- not modified by this call. \\
\hline
\mbox{\texttt{ in}}  & {\em cell} & MCC, MNC, LAC, CI to identify the cell. \\
\hline
\mbox{\texttt{ in}}  & {\em scl} & Speech Codec List, optional. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
newly allocated msgb with Complete L3 Info message 
\end{DoxyReturn}


References \textbf{ \+\_\+\+\_\+attribute\+\_\+\+\_\+}, \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+COMPLETE\+\_\+\+LAYER\+\_\+3}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+WHOLE\+\_\+\+GLOBAL}, \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id\+::cell\+\_\+identity}, \textbf{ gsm0808\+\_\+enc\+\_\+speech\+\_\+codec\+\_\+list2()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CELL\+\_\+\+IDENTIFIER}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+LAYER\+\_\+3\+\_\+\+INFORMATION}, \textbf{ gsm48\+\_\+generate\+\_\+lai2()}, \textbf{ msgb\+::l3h}, \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id\+::lai}, \textbf{ lai}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+l3len()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+v\+\_\+put()}, and \textbf{ osmo\+\_\+htons}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+layer3()}, and \textbf{ gsm0808\+\_\+create\+\_\+layer3\+\_\+aoip()}.

\mbox{\label{group__gsm0808_ga3520f17168e529f1b03f2da921ff5466}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_layer3\_aoip@{gsm0808\_create\_layer3\_aoip}}
\index{gsm0808\_create\_layer3\_aoip@{gsm0808\_create\_layer3\_aoip}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_layer3\_aoip()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+layer3\+\_\+aoip (\begin{DoxyParamCaption}\item[{const struct \textbf{ msgb} $\ast$}]{msg\+\_\+l3,  }\item[{uint16\+\_\+t}]{nc,  }\item[{uint16\+\_\+t}]{cc,  }\item[{int}]{lac,  }\item[{uint16\+\_\+t}]{\+\_\+ci,  }\item[{const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list} $\ast$}]{scl }\end{DoxyParamCaption})}



Create \char`\"{}\+Complete L3 Info\char`\"{} for Ao\+IP, legacy implementation. 

Instead use gsm0808\+\_\+create\+\_\+layer3\+\_\+aoip2(), which is capable of three-\/digit MNC with leading zeros. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em msg\+\_\+l3} & msgb containing Layer 3 Message \\
\hline
\mbox{\texttt{ in}}  & {\em nc} & Mobile Network Code \\
\hline
\mbox{\texttt{ in}}  & {\em cc} & Mobile Country Code \\
\hline
\mbox{\texttt{ in}}  & {\em lac} & Location Area Code \\
\hline
\mbox{\texttt{ in}}  & {\em \+\_\+ci} & Cell Identity \\
\hline
\mbox{\texttt{ in}}  & {\em scl} & Speech Codec List \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with Complete L3 Info message 
\end{DoxyReturn}


References \textbf{ gsm0808\+\_\+create\+\_\+layer3\+\_\+2()}, \textbf{ lac}, \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id\+::lai}, \textbf{ osmo\+\_\+plmn\+\_\+id\+::mcc}, and \textbf{ osmo\+\_\+location\+\_\+area\+\_\+id\+::plmn}.

\mbox{\label{group__gsm0808_ga306474205fe66c57834d194e545a0185}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_lcls\_conn\_ctrl@{gsm0808\_create\_lcls\_conn\_ctrl}}
\index{gsm0808\_create\_lcls\_conn\_ctrl@{gsm0808\_create\_lcls\_conn\_ctrl}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_lcls\_conn\_ctrl()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+lcls\+\_\+conn\+\_\+ctrl (\begin{DoxyParamCaption}\item[{enum \textbf{ gsm0808\+\_\+lcls\+\_\+config}}]{config,  }\item[{enum \textbf{ gsm0808\+\_\+lcls\+\_\+control}}]{control }\end{DoxyParamCaption})}



Create BSSMAP LCLS CONNECT CONTROL message (TS 48.\+008 3.\+2.\+1.\+91). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em config} & LCLS Configuration \\
\hline
\mbox{\texttt{ in}}  & {\em control} & LCLS Connection Status Control \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP LCLS NOTIFICATION 
\end{DoxyReturn}


References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+LCLS\+\_\+\+CONNECT\+\_\+\+CTRL}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ config}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+LCLS\+\_\+\+CONFIG}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+LCLS\+\_\+\+CONN\+\_\+\+STATUS\+\_\+\+CTRL}, \textbf{ GSM0808\+\_\+\+LCLS\+\_\+\+CFG\+\_\+\+NA}, \textbf{ GSM0808\+\_\+\+LCLS\+\_\+\+CSC\+\_\+\+NA}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, and \textbf{ msgb\+\_\+v\+\_\+put()}.

\mbox{\label{group__gsm0808_gaf78bd557d59fd192392bb67c101973a7}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_lcls\_conn\_ctrl\_ack@{gsm0808\_create\_lcls\_conn\_ctrl\_ack}}
\index{gsm0808\_create\_lcls\_conn\_ctrl\_ack@{gsm0808\_create\_lcls\_conn\_ctrl\_ack}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_lcls\_conn\_ctrl\_ack()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+lcls\+\_\+conn\+\_\+ctrl\+\_\+ack (\begin{DoxyParamCaption}\item[{enum \textbf{ gsm0808\+\_\+lcls\+\_\+status}}]{status }\end{DoxyParamCaption})}



Create BSSMAP LCLS CONNECT CONTROL ACK message (TS 48.\+008 3.\+2.\+1.\+92). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em status} & LCLS BSS Status \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP LCLS NOTIFICATION 
\end{DoxyReturn}


References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+LCLS\+\_\+\+CONNECT\+\_\+\+CTRL\+\_\+\+ACK}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+LCLS\+\_\+\+BSS\+\_\+\+STATUS}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, and \textbf{ msgb\+\_\+v\+\_\+put()}.

\mbox{\label{group__gsm0808_gaf76b09109c6409e4a187996e22502527}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_lcls\_notification@{gsm0808\_create\_lcls\_notification}}
\index{gsm0808\_create\_lcls\_notification@{gsm0808\_create\_lcls\_notification}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_lcls\_notification()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+lcls\+\_\+notification (\begin{DoxyParamCaption}\item[{enum \textbf{ gsm0808\+\_\+lcls\+\_\+status}}]{status,  }\item[{bool}]{break\+\_\+req }\end{DoxyParamCaption})}



Create BSSMAP LCLS NOTIFICATION message (TS 48.\+008 3.\+2.\+1.\+93). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em status} & LCLS BSS Status \\
\hline
\mbox{\texttt{ in}}  & {\em break\+\_\+req} & Include the LCLS BREAK REQ IE (true) or not (false) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP LCLS NOTIFICATION 
\end{DoxyReturn}


References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+LCLS\+\_\+\+NOTIFICATION}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+LCLS\+\_\+\+BREAK\+\_\+\+REQ}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+LCLS\+\_\+\+BSS\+\_\+\+STATUS}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, and \textbf{ msgb\+\_\+v\+\_\+put()}.

\mbox{\label{group__gsm0808_ga6e2ad14743caf122d2693cb5bfe81728}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_notification\_data@{gsm0808\_create\_notification\_data}}
\index{gsm0808\_create\_notification\_data@{gsm0808\_create\_notification\_data}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_notification\_data()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+notification\+\_\+data (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+notification\+\_\+data} $\ast$}]{params }\end{DoxyParamCaption})}



Create BSSMAP (VGCS/\+VBS) NOTIFICATION DATA message, 3GPP TS 48.\+008 3.\+2.\+1.\+82. 

Sent from the MSC to the BSC to send application specific data. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+NOTIFICATION\+\_\+\+DATA}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+data\+\_\+identity()}, \textbf{ gsm0808\+\_\+enc\+\_\+msisdn()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+APP\+\_\+\+DATA}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+v\+\_\+put()}, and \textbf{ params}.

\mbox{\label{group__gsm0808_ga959a32627dd96d1c0f2ef071dd83f1b6}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_paging@{gsm0808\_create\_paging}}
\index{gsm0808\_create\_paging@{gsm0808\_create\_paging}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_paging()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+paging (\begin{DoxyParamCaption}\item[{const char $\ast$}]{imsi,  }\item[{const uint32\+\_\+t $\ast$}]{tmsi,  }\item[{const struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list} $\ast$}]{cil,  }\item[{const uint8\+\_\+t $\ast$}]{chan\+\_\+needed }\end{DoxyParamCaption})}



DEPRECATED\+: Use gsm0808\+\_\+create\+\_\+paging2 instead. 

Create BSSMAP PAGING message. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em imsi} & Mandatory paged IMSI in string representation \\
\hline
\mbox{\texttt{ in}}  & {\em tmsi} & Optional paged TMSI \\
\hline
\mbox{\texttt{ in}}  & {\em cil} & Cell Identity List (where to page) \\
\hline
\mbox{\texttt{ in}}  & {\em chan\+\_\+needed} & Channel Type needed \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP PAGING message 
\end{DoxyReturn}


References \textbf{ GSM0808\+\_\+\+CELL\+\_\+\+ID\+\_\+\+LIST2\+\_\+\+MAXLEN}, \textbf{ gsm0808\+\_\+create\+\_\+paging2()}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2\+::id\+\_\+discr}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+::id\+\_\+discr}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2\+::id\+\_\+list}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+::id\+\_\+list\+\_\+lac}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2\+::id\+\_\+list\+\_\+len}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+::id\+\_\+list\+\_\+len}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::lac}, and \textbf{ OSMO\+\_\+\+ASSERT}.

\mbox{\label{group__gsm0808_ga986c5ddb4e52314df9b602b58f8451b9}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_paging2@{gsm0808\_create\_paging2}}
\index{gsm0808\_create\_paging2@{gsm0808\_create\_paging2}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_paging2()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+paging2 (\begin{DoxyParamCaption}\item[{const char $\ast$}]{imsi,  }\item[{const uint32\+\_\+t $\ast$}]{tmsi,  }\item[{const struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2} $\ast$}]{cil,  }\item[{const uint8\+\_\+t $\ast$}]{chan\+\_\+needed }\end{DoxyParamCaption})}



Create BSSMAP PAGING message. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em imsi} & Mandatory paged IMSI in string representation \\
\hline
\mbox{\texttt{ in}}  & {\em tmsi} & Optional paged TMSI \\
\hline
\mbox{\texttt{ in}}  & {\em cil} & Mandatory Cell Identity List (where to page) \\
\hline
\mbox{\texttt{ in}}  & {\em chan\+\_\+needed} & Channel Type needed \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP PAGING message 
\end{DoxyReturn}


References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+PAGING}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+cell\+\_\+id\+\_\+list2()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CHANNEL\+\_\+\+NEEDED}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+IMSI}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+TMSI}, \textbf{ gsm48\+\_\+generate\+\_\+mid\+\_\+from\+\_\+imsi()}, \textbf{ GSM48\+\_\+\+MI\+\_\+\+SIZE}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, \textbf{ msgb\+\_\+v\+\_\+put()}, \textbf{ OSMO\+\_\+\+ASSERT}, and \textbf{ osmo\+\_\+htonl}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+paging()}.

\mbox{\label{group__gsm0808_ga47a834e68ad9faba3bd45e725cf1826f}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_perform\_location\_abort@{gsm0808\_create\_perform\_location\_abort}}
\index{gsm0808\_create\_perform\_location\_abort@{gsm0808\_create\_perform\_location\_abort}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_perform\_location\_abort()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+perform\+\_\+location\+\_\+abort (\begin{DoxyParamCaption}\item[{const struct \textbf{ lcs\+\_\+cause\+\_\+ie} $\ast$}]{lcs\+\_\+cause }\end{DoxyParamCaption})}



References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+PERFORM\+\_\+\+LOCATION\+\_\+\+ABORT}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+lcs\+\_\+cause()}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, and \textbf{ msgb\+\_\+v\+\_\+put()}.

\mbox{\label{group__gsm0808_gafd3e2431915c930e1f17531d2e71596f}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_perform\_location\_request@{gsm0808\_create\_perform\_location\_request}}
\index{gsm0808\_create\_perform\_location\_request@{gsm0808\_create\_perform\_location\_request}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_perform\_location\_request()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+perform\+\_\+location\+\_\+request (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+perform\+\_\+location\+\_\+request} $\ast$}]{params }\end{DoxyParamCaption})}



References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+PERFORM\+\_\+\+LOCATION\+\_\+\+RQST}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+IMSI}, \textbf{ GSM\+\_\+\+MI\+\_\+\+TYPE\+\_\+\+IMSI}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tl\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+v\+\_\+put()}, \textbf{ osmo\+\_\+bssmap\+\_\+le\+\_\+ie\+\_\+enc\+\_\+location\+\_\+type()}, \textbf{ osmo\+\_\+mobile\+\_\+identity\+\_\+encode\+\_\+msgb()}, and \textbf{ params}.

\mbox{\label{group__gsm0808_gadbc66edc7a3158e62d91168bbe3de86d}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_perform\_location\_response@{gsm0808\_create\_perform\_location\_response}}
\index{gsm0808\_create\_perform\_location\_response@{gsm0808\_create\_perform\_location\_response}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_perform\_location\_response()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+perform\+\_\+location\+\_\+response (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+perform\+\_\+location\+\_\+response} $\ast$}]{params }\end{DoxyParamCaption})}



References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+PERFORM\+\_\+\+LOCATION\+\_\+\+RESPONSE}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+LCS\+\_\+\+CAUSE}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+LOCATION\+\_\+\+ESTIMATE}, \textbf{ l}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tl\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+v\+\_\+put()}, \textbf{ osmo\+\_\+gad\+\_\+raw\+\_\+write()}, \textbf{ osmo\+\_\+lcs\+\_\+cause\+\_\+enc()}, and \textbf{ params}.

\mbox{\label{group__gsm0808_ga03381981a6afd7b9cb1ef52a42ce9ddd}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_reset@{gsm0808\_create\_reset}}
\index{gsm0808\_create\_reset@{gsm0808\_create\_reset}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_reset()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+reset (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Create BSSMAP RESET message. 

\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP Reset message 
\end{DoxyReturn}


References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+RESET}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ cause}, \textbf{ GSM0808\+\_\+\+CAUSE\+\_\+\+EQUIPMENT\+\_\+\+FAILURE}, \textbf{ gsm0808\+\_\+enc\+\_\+cause()}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, and \textbf{ msgb\+\_\+v\+\_\+put()}.

\mbox{\label{group__gsm0808_gafd91ac6625fc91ab93bb42e030d4a5c1}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_reset\_ack@{gsm0808\_create\_reset\_ack}}
\index{gsm0808\_create\_reset\_ack@{gsm0808\_create\_reset\_ack}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_reset\_ack()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+reset\+\_\+ack (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Create BSSMAP RESET ACK message. 

\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP Reset ACK message 
\end{DoxyReturn}


References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+RESET\+\_\+\+ACKNOWLEDGE}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, and \textbf{ msgb\+\_\+v\+\_\+put()}.

\mbox{\label{group__gsm0808_gad12d0be4a9b4dd0c313b143127cb4f63}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_sapi\_reject@{gsm0808\_create\_sapi\_reject}}
\index{gsm0808\_create\_sapi\_reject@{gsm0808\_create\_sapi\_reject}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_sapi\_reject()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+sapi\+\_\+reject (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{link\+\_\+id }\end{DoxyParamCaption})}



Create BSSMAP SAPI N Reject message (with hard-\/coded cause \char`\"{}\+BSS not equipped\char`\"{}). 

DEPRECATED\+: use \doxyref{gsm0808\+\_\+create\+\_\+sapi\+\_\+reject\+\_\+cause()}{p.}{group__gsm0808_ga3ef4ee3960b4859518af396810e2b033} instead. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em link\+\_\+id} & Link Identifier \\
\hline
\mbox{\texttt{ in}}  & {\em cause} & BSSAP Cause value (see 3GPP TS 48.\+008, section 3.\+2.\+2.\+5) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP SAPI N Reject message 
\end{DoxyReturn}


References \textbf{ GSM0808\+\_\+\+CAUSE\+\_\+\+BSS\+\_\+\+NOT\+\_\+\+EQUIPPED}, \textbf{ gsm0808\+\_\+create\+\_\+sapi\+\_\+reject\+\_\+cause()}, and \textbf{ link\+\_\+id}.

\mbox{\label{group__gsm0808_ga3ef4ee3960b4859518af396810e2b033}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_sapi\_reject\_cause@{gsm0808\_create\_sapi\_reject\_cause}}
\index{gsm0808\_create\_sapi\_reject\_cause@{gsm0808\_create\_sapi\_reject\_cause}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_sapi\_reject\_cause()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+sapi\+\_\+reject\+\_\+cause (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{link\+\_\+id,  }\item[{uint16\+\_\+t}]{cause }\end{DoxyParamCaption})}



Create BSSMAP SAPI N Reject message. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em link\+\_\+id} & Link Identifier \\
\hline
\mbox{\texttt{ in}}  & {\em cause} & BSSAP Cause value (see 3GPP TS 48.\+008, section 3.\+2.\+2.\+5) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated msgb with BSSMAP SAPI N Reject message 
\end{DoxyReturn}


References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+SAPI\+\_\+\+N\+\_\+\+REJECT}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ cause}, \textbf{ gsm0808\+\_\+enc\+\_\+cause()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+DLCI}, \textbf{ link\+\_\+id}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, and \textbf{ msgb\+\_\+v\+\_\+put()}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+sapi\+\_\+reject()}.

\mbox{\label{group__gsm0808_ga7dade3dea5d93c935bd02cb28c63b508}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_uplink\_app\_data@{gsm0808\_create\_uplink\_app\_data}}
\index{gsm0808\_create\_uplink\_app\_data@{gsm0808\_create\_uplink\_app\_data}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_uplink\_app\_data()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+uplink\+\_\+app\+\_\+data (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+uplink\+\_\+app\+\_\+data} $\ast$}]{params }\end{DoxyParamCaption})}



Create BSSMAP (VGCS) UPLINK APPLICATION DATA message, 3GPP TS 48.\+008 3.\+2.\+1.\+59a. 

Sent from the BSC to the MSC to pass L3 info from the talker. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+UPLINK\+\_\+\+APP\+\_\+\+DATA}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+cell\+\_\+id()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+APP\+\_\+\+DATA\+\_\+\+INFO}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+LAYER\+\_\+3\+\_\+\+INFORMATION}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+v\+\_\+put()}, and \textbf{ params}.

\mbox{\label{group__gsm0808_gae1b2697ca0145d2ea7ed2886b81cd2f6}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_uplink\_reject\_cmd@{gsm0808\_create\_uplink\_reject\_cmd}}
\index{gsm0808\_create\_uplink\_reject\_cmd@{gsm0808\_create\_uplink\_reject\_cmd}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_uplink\_reject\_cmd()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+uplink\+\_\+reject\+\_\+cmd (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+uplink\+\_\+reject\+\_\+cmd} $\ast$}]{params }\end{DoxyParamCaption})}



Create BSSMAP (VGCS) UPLINK REJECT COMMAND message, 3GPP TS 48.\+008 3.\+2.\+1.\+61. 

Sent from the MSC to the BSC to indicate that the uplink is not available for allocation. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+UPLINK\+\_\+\+REJECT\+\_\+\+CMD}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+cause()}, \textbf{ gsm0808\+\_\+enc\+\_\+talker\+\_\+identity()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+TALKER\+\_\+\+PRIORITY}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, \textbf{ msgb\+\_\+v\+\_\+put()}, and \textbf{ params}.

\mbox{\label{group__gsm0808_ga455602d7919d07380277613f0419e2ca}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_uplink\_release\_cmd@{gsm0808\_create\_uplink\_release\_cmd}}
\index{gsm0808\_create\_uplink\_release\_cmd@{gsm0808\_create\_uplink\_release\_cmd}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_uplink\_release\_cmd()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+uplink\+\_\+release\+\_\+cmd (\begin{DoxyParamCaption}\item[{const enum \textbf{ gsm0808\+\_\+cause}}]{cause }\end{DoxyParamCaption})}



3GPP TS 48.\+008 §3.2.\+1.\+62 (VGCS) UPLINK RELEASE COMMAND 

Create BSSMAP (VGCS) UPLINK RELEASE COMMAND message, 3GPP TS 48.\+008 3.\+2.\+1.\+62.

Sent from the MSC to the BSC to indicate that the uplink is available for allocation. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+UPLINK\+\_\+\+RELEASE\+\_\+\+CMD}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ cause}, \textbf{ gsm0808\+\_\+enc\+\_\+cause()}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, and \textbf{ msgb\+\_\+v\+\_\+put()}.

\mbox{\label{group__gsm0808_ga6b66a2c6e8d9364f8b62cfecf5b88b76}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_uplink\_release\_ind@{gsm0808\_create\_uplink\_release\_ind}}
\index{gsm0808\_create\_uplink\_release\_ind@{gsm0808\_create\_uplink\_release\_ind}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_uplink\_release\_ind()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+uplink\+\_\+release\+\_\+ind (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+uplink\+\_\+release\+\_\+ind} $\ast$}]{params }\end{DoxyParamCaption})}



Create BSSMAP (VGCS) UPLINK RELEASE INDICATION message, 3GPP TS 48.\+008 3.\+2.\+1.\+60. 

Sent from the BSC to the MSC to indicate that the uplink has been released. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+UPLINK\+\_\+\+RELEASE\+\_\+\+INDICATION}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+cause()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+TALKER\+\_\+\+PRIORITY}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, \textbf{ msgb\+\_\+v\+\_\+put()}, and \textbf{ params}.

\mbox{\label{group__gsm0808_gaecf5077be79712816eb88c2582dd93e4}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_uplink\_request@{gsm0808\_create\_uplink\_request}}
\index{gsm0808\_create\_uplink\_request@{gsm0808\_create\_uplink\_request}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_uplink\_request()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+uplink\+\_\+request (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+uplink\+\_\+request} $\ast$}]{params }\end{DoxyParamCaption})}



Create BSSMAP (VGCS) UPLINK REQUEST message, 3GPP TS 48.\+008 3.\+2.\+1.\+57. 

Sent from the BSC to the MSC to indicate that a mobile requested access to uplink. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+UPLINK\+\_\+\+RQST}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+cell\+\_\+id()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+LAYER\+\_\+3\+\_\+\+INFORMATION}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+TALKER\+\_\+\+PRIORITY}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, \textbf{ msgb\+\_\+v\+\_\+put()}, \textbf{ osmo\+\_\+mobile\+\_\+identity\+\_\+encode\+\_\+msgb()}, and \textbf{ params}.

\mbox{\label{group__gsm0808_ga8b350969ce3bc7362d959e07198e531f}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_uplink\_request\_ack@{gsm0808\_create\_uplink\_request\_ack}}
\index{gsm0808\_create\_uplink\_request\_ack@{gsm0808\_create\_uplink\_request\_ack}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_uplink\_request\_ack()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+uplink\+\_\+request\+\_\+ack (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+uplink\+\_\+request\+\_\+ack} $\ast$}]{params }\end{DoxyParamCaption})}



Create BSSMAP (VGCS) UPLINK REQUEST ACKNOWLEDGE message, 3GPP TS 48.\+008 3.\+2.\+1.\+58. 

Sent from the MSC to the BSC to indicate that access to uplink was granted. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+UPLINK\+\_\+\+RQST\+\_\+\+ACKNOWLEDGE}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+talker\+\_\+identity()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+EMERGENCY\+\_\+\+SET\+\_\+\+INDICATION}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+TALKER\+\_\+\+PRIORITY}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, \textbf{ msgb\+\_\+v\+\_\+put()}, and \textbf{ params}.

\mbox{\label{group__gsm0808_ga838994e0fc6626b72be81597e633c21a}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_uplink\_request\_cnf@{gsm0808\_create\_uplink\_request\_cnf}}
\index{gsm0808\_create\_uplink\_request\_cnf@{gsm0808\_create\_uplink\_request\_cnf}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_uplink\_request\_cnf()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+uplink\+\_\+request\+\_\+cnf (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+uplink\+\_\+request\+\_\+cnf} $\ast$}]{params }\end{DoxyParamCaption})}



Create BSSMAP (VGCS) UPLINK CONFIRM message, 3GPP TS 48.\+008 3.\+2.\+1.\+59. 

Sent from the BSC to the MSC to indicate that access to uplink was has been successfully established. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+UPLINK\+\_\+\+RQST\+\_\+\+CONFIRMATION}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+cell\+\_\+id()}, \textbf{ gsm0808\+\_\+enc\+\_\+talker\+\_\+identity()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+LAYER\+\_\+3\+\_\+\+INFORMATION}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+v\+\_\+put()}, and \textbf{ params}.

\mbox{\label{group__gsm0808_gaa94e6fef064d7b491611dab7a5b14801}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_uplink\_seized\_cmd@{gsm0808\_create\_uplink\_seized\_cmd}}
\index{gsm0808\_create\_uplink\_seized\_cmd@{gsm0808\_create\_uplink\_seized\_cmd}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_uplink\_seized\_cmd()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+uplink\+\_\+seized\+\_\+cmd (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+uplink\+\_\+seized\+\_\+cmd} $\ast$}]{params }\end{DoxyParamCaption})}



Create BSSMAP (VGCS) UPLINK SEIZED COMMAND message, 3GPP TS 48.\+008 3.\+2.\+1.\+62. 

Sent from the MSC to the BSC to indicate that the uplink is no longer available for allocation. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+UPLINK\+\_\+\+SEIZED\+\_\+\+CMD}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+cause()}, \textbf{ gsm0808\+\_\+enc\+\_\+talker\+\_\+identity()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+EMERGENCY\+\_\+\+SET\+\_\+\+INDICATION}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+TALKER\+\_\+\+PRIORITY}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, \textbf{ msgb\+\_\+v\+\_\+put()}, and \textbf{ params}.

\mbox{\label{group__gsm0808_ga6149a0a3e1c6433c7c4fbde749679dd0}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_vgcs\_additional\_info@{gsm0808\_create\_vgcs\_additional\_info}}
\index{gsm0808\_create\_vgcs\_additional\_info@{gsm0808\_create\_vgcs\_additional\_info}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_vgcs\_additional\_info()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+vgcs\+\_\+additional\+\_\+info (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+talker\+\_\+identity} $\ast$}]{ti }\end{DoxyParamCaption})}



3GPP TS 48.\+008 §3.2.\+1.\+78 VGCS ADDITIONAL INFORMATION 

Create BSSMAP VGCS ADDITIONAL INFORMATION message, 3GPP TS 48.\+008 3.\+2.\+1.\+78.

Sent from the MSC to the BSC to transfer talker identity. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+VGCS\+\_\+\+ADDL\+\_\+\+INFO}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+talker\+\_\+identity()}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, and \textbf{ msgb\+\_\+v\+\_\+put()}.

\mbox{\label{group__gsm0808_ga499dcb5c59809a4949e8b0ccf0aef321}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_vgcs\_queuing\_ind@{gsm0808\_create\_vgcs\_queuing\_ind}}
\index{gsm0808\_create\_vgcs\_queuing\_ind@{gsm0808\_create\_vgcs\_queuing\_ind}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_vgcs\_queuing\_ind()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+vgcs\+\_\+queuing\+\_\+ind (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Create BSSMAP VGCS/\+VBS QUEUING INDICATION message, 3GPP TS 48.\+008 3.\+2.\+1.\+56. 

Sent from the BSC to the MSC to indicate delay in assignment for a VGCS/\+VBS. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+VGCS\+\_\+\+VBS\+\_\+\+QUEUING\+\_\+\+INDICATION}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, and \textbf{ msgb\+\_\+tlv\+\_\+put()}.

\mbox{\label{group__gsm0808_ga3bc1f9dabf980b062908bca3e010db37}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_vgcs\_sms@{gsm0808\_create\_vgcs\_sms}}
\index{gsm0808\_create\_vgcs\_sms@{gsm0808\_create\_vgcs\_sms}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_vgcs\_sms()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+vgcs\+\_\+sms (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+sms\+\_\+to\+\_\+vgcs} $\ast$}]{sms }\end{DoxyParamCaption})}



3GPP TS 48.\+008 §3.2.\+1.\+81 VGCS SMS 

Create BSSMAP VGCS SMS message, 3GPP TS 48.\+008 3.\+2.\+1.\+81.

Sent from the MSC to the BSC to send an SMS to VGCS. 

References \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+VGCS\+\_\+\+VBS\+\_\+\+CELL\+\_\+\+STATUS}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ gsm0808\+\_\+sms\+\_\+to\+\_\+vgcs\+::sms}, and \textbf{ gsm0808\+\_\+sms\+\_\+to\+\_\+vgcs\+::sms\+\_\+len}.

\mbox{\label{group__gsm0808_ga96d40dd1338212ad199a5f946a4829ea}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_vgcs\_vbs\_area\_cell\_info@{gsm0808\_create\_vgcs\_vbs\_area\_cell\_info}}
\index{gsm0808\_create\_vgcs\_vbs\_area\_cell\_info@{gsm0808\_create\_vgcs\_vbs\_area\_cell\_info}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_vgcs\_vbs\_area\_cell\_info()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+area\+\_\+cell\+\_\+info (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+vgcs\+\_\+vbs\+\_\+area\+\_\+cell\+\_\+info} $\ast$}]{params }\end{DoxyParamCaption})}



Create BSSMAP VGCS/\+VBS AREA CELL INFO message, 3GPP TS 48.\+008 3.\+2.\+1.\+79. 

Sent from the BSC to the MSC to transfer additional infos about cells. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+VGCS\+\_\+\+VBS\+\_\+\+ASSIGNMENT\+\_\+\+RQST}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+assign\+\_\+req()}, \textbf{ gsm0808\+\_\+enc\+\_\+cell\+\_\+id\+\_\+list\+\_\+segment()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CELL\+\_\+\+ID\+\_\+\+LIST\+\_\+\+SEGMENT}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+v\+\_\+put()}, and \textbf{ params}.

\mbox{\label{group__gsm0808_ga0be58aaedde5556bdfcba5b25d646de4}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_vgcs\_vbs\_assign\_fail@{gsm0808\_create\_vgcs\_vbs\_assign\_fail}}
\index{gsm0808\_create\_vgcs\_vbs\_assign\_fail@{gsm0808\_create\_vgcs\_vbs\_assign\_fail}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_vgcs\_vbs\_assign\_fail()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+fail (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+fail} $\ast$}]{params }\end{DoxyParamCaption})}



Create BSSMAP VGCS/\+VBS ASSIGNMENT FAILURE message, 3GPP TS 48.\+008 3.\+2.\+1.\+55. 

Sent from the BSC to the MSC to indicate assignment failure for a VGCS/\+VBS. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+VGCS\+\_\+\+VBS\+\_\+\+ASSIGNMENT\+\_\+\+FAILURE}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+cause()}, \textbf{ gsm0808\+\_\+enc\+\_\+speech\+\_\+codec\+\_\+list2()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CIRCUIT\+\_\+\+POOL}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CIRCUIT\+\_\+\+POOL\+\_\+\+LIST}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, \textbf{ msgb\+\_\+v\+\_\+put()}, and \textbf{ params}.

\mbox{\label{group__gsm0808_ga03ac8e8cfa7261fc5bf63ccedcafb5f2}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_vgcs\_vbs\_assign\_req@{gsm0808\_create\_vgcs\_vbs\_assign\_req}}
\index{gsm0808\_create\_vgcs\_vbs\_assign\_req@{gsm0808\_create\_vgcs\_vbs\_assign\_req}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_vgcs\_vbs\_assign\_req()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+req (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+req} $\ast$}]{params }\end{DoxyParamCaption})}



Create BSSMAP VGCS/\+VBS ASSIGNMENT REQUEST message, 3GPP TS 48.\+008 3.\+2.\+1.\+53. 

Sent from the MSC to the BSC to assign radio resources for a VGCS/\+VBS. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+VGCS\+\_\+\+VBS\+\_\+\+ASSIGNMENT\+\_\+\+RQST}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+aoip\+\_\+trasp\+\_\+addr()}, \textbf{ gsm0808\+\_\+enc\+\_\+assign\+\_\+req()}, \textbf{ gsm0808\+\_\+enc\+\_\+cell\+\_\+id()}, \textbf{ gsm0808\+\_\+enc\+\_\+cell\+\_\+id\+\_\+list\+\_\+segment()}, \textbf{ gsm0808\+\_\+enc\+\_\+channel\+\_\+type()}, \textbf{ gsm0808\+\_\+enc\+\_\+encrypt\+\_\+info()}, \textbf{ gsm0808\+\_\+enc\+\_\+group\+\_\+callref()}, \textbf{ gsm0808\+\_\+enc\+\_\+priority()}, \textbf{ gsm0808\+\_\+enc\+\_\+speech\+\_\+codec\+\_\+list2()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CALL\+\_\+\+ID}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CELL\+\_\+\+ID\+\_\+\+LIST\+\_\+\+SEGMENT}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CIRCUIT\+\_\+\+IDENTITY\+\_\+\+CODE}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+DOWNLINK\+\_\+\+DTX\+\_\+\+FLAG}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+VSTK\+\_\+\+INFO}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+VSTK\+\_\+\+RAND\+\_\+\+INFO}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ msgb\+\_\+tv16\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, \textbf{ msgb\+\_\+v\+\_\+put()}, and \textbf{ params}.

\mbox{\label{group__gsm0808_ga2ee6414e7c9720d79edbb3b8085cf505}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_vgcs\_vbs\_assign\_res@{gsm0808\_create\_vgcs\_vbs\_assign\_res}}
\index{gsm0808\_create\_vgcs\_vbs\_assign\_res@{gsm0808\_create\_vgcs\_vbs\_assign\_res}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_vgcs\_vbs\_assign\_res()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+res (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+res} $\ast$}]{params }\end{DoxyParamCaption})}



Create BSSMAP VGCS/\+VBS ASSIGNMENT RESULT message, 3GPP TS 48.\+008 3.\+2.\+1.\+54. 

Sent from the BSC to the MSC to indicate assignment/deassingment of radio resources for a VGCS/\+VBS. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+VGCS\+\_\+\+VBS\+\_\+\+ASSIGNMENT\+\_\+\+RESULT}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+aoip\+\_\+trasp\+\_\+addr()}, \textbf{ gsm0808\+\_\+enc\+\_\+cell\+\_\+id()}, \textbf{ gsm0808\+\_\+enc\+\_\+channel\+\_\+type()}, \textbf{ gsm0808\+\_\+enc\+\_\+speech\+\_\+codec2()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CALL\+\_\+\+ID}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CHOSEN\+\_\+\+CHANNEL}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CIRCUIT\+\_\+\+IDENTITY\+\_\+\+CODE}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CIRCUIT\+\_\+\+POOL}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+tv16\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, \textbf{ msgb\+\_\+v\+\_\+put()}, and \textbf{ params}.

\mbox{\label{group__gsm0808_gad62af29016984118713fba663a3d2d32}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_vgcs\_vbs\_assign\_stat@{gsm0808\_create\_vgcs\_vbs\_assign\_stat}}
\index{gsm0808\_create\_vgcs\_vbs\_assign\_stat@{gsm0808\_create\_vgcs\_vbs\_assign\_stat}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_vgcs\_vbs\_assign\_stat()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+stat (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+stat} $\ast$}]{params }\end{DoxyParamCaption})}



Create BSSMAP VGCS/\+VBS ASSIGNMENT STATUS message, 3GPP TS 48.\+008 3.\+2.\+1.\+80. 

Sent from the BSC to the MSC to indicate assignment status for each cell. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+VGCS\+\_\+\+VBS\+\_\+\+ASSIGNMENT\+\_\+\+STATUS}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+cell\+\_\+id\+\_\+list\+\_\+segment()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CELL\+\_\+\+ID\+\_\+\+LIST\+\_\+\+SEG\+\_\+\+CELLS\+\_\+\+TBE}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CELL\+\_\+\+ID\+\_\+\+LIST\+\_\+\+SEG\+\_\+\+EST\+\_\+\+CELLS}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CELL\+\_\+\+ID\+\_\+\+LIST\+\_\+\+SEG\+\_\+\+NE\+\_\+\+CELLS}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CELL\+\_\+\+ID\+\_\+\+LIST\+\_\+\+SEG\+\_\+\+REL\+\_\+\+CELLS}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+VGCS\+\_\+\+VBS\+\_\+\+CELL\+\_\+\+STATUS}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+v\+\_\+put()}, and \textbf{ params}.

\mbox{\label{group__gsm0808_ga1418c84ebe5e2fb2c22addd5dc8f33eb}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_vgcs\_vbs\_setup@{gsm0808\_create\_vgcs\_vbs\_setup}}
\index{gsm0808\_create\_vgcs\_vbs\_setup@{gsm0808\_create\_vgcs\_vbs\_setup}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_vgcs\_vbs\_setup()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+setup (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+vgcs\+\_\+vbs\+\_\+setup} $\ast$}]{params }\end{DoxyParamCaption})}



Create BSSMAP VGCS/\+VBS SETUP message, 3GPP TS 48.\+008 3.\+2.\+1.\+50. 

Sent from the MSC to the BSC to request VGCS/\+VBS call. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+VGCS\+\_\+\+VBS\+\_\+\+SETUP}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+group\+\_\+callref()}, \textbf{ gsm0808\+\_\+enc\+\_\+priority()}, \textbf{ gsm0808\+\_\+enc\+\_\+vgcs\+\_\+feature\+\_\+flags()}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+v\+\_\+put()}, and \textbf{ params}.

\mbox{\label{group__gsm0808_ga45dc51772a374371fbae9611cfd900d7}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_vgcs\_vbs\_setup\_ack@{gsm0808\_create\_vgcs\_vbs\_setup\_ack}}
\index{gsm0808\_create\_vgcs\_vbs\_setup\_ack@{gsm0808\_create\_vgcs\_vbs\_setup\_ack}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_vgcs\_vbs\_setup\_ack()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+setup\+\_\+ack (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm0808\+\_\+vgcs\+\_\+vbs\+\_\+setup\+\_\+ack} $\ast$}]{params }\end{DoxyParamCaption})}



Create BSSMAP VGCS/\+VBS SETUP ACK message, 3GPP TS 48.\+008 3.\+2.\+1.\+51. 

Sent from the BSC to the MSC to confirm VGCS/\+VBS call. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+VGCS\+\_\+\+VBS\+\_\+\+SETUP\+\_\+\+ACK}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+enc\+\_\+vgcs\+\_\+feature\+\_\+flags()}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ msgb\+\_\+v\+\_\+put()}, and \textbf{ params}.

\mbox{\label{group__gsm0808_gada543d8ee0864a60becb67dd6da274d4}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_create\_vgcs\_vbs\_setup\_refuse@{gsm0808\_create\_vgcs\_vbs\_setup\_refuse}}
\index{gsm0808\_create\_vgcs\_vbs\_setup\_refuse@{gsm0808\_create\_vgcs\_vbs\_setup\_refuse}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_create\_vgcs\_vbs\_setup\_refuse()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+setup\+\_\+refuse (\begin{DoxyParamCaption}\item[{enum \textbf{ gsm0808\+\_\+cause}}]{cause }\end{DoxyParamCaption})}



3GPP TS 48.\+008 §3.2.\+1.\+52 VGCS/\+VBS SETUP REFUSE 

Create BSSMAP VGCS/\+VBS SETUP REFUSE message, 3GPP TS 48.\+008 3.\+2.\+1.\+52.

Sent from the BSC to the MSC to reject VGCS/\+VBS call. 

References \textbf{ BSS\+\_\+\+MAP\+\_\+\+MSG\+\_\+\+VGCS\+\_\+\+VBS\+\_\+\+SETUP\+\_\+\+REFUSE}, \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+BSS\+\_\+\+MANAGEMENT}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ BSSMAP\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ cause}, \textbf{ gsm0808\+\_\+enc\+\_\+cause()}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, and \textbf{ msgb\+\_\+v\+\_\+put()}.

\mbox{\label{group__gsm0808_ga6eb707a2a744aeace902c2eb2c88714c}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_current\_channel\_type\_1@{gsm0808\_current\_channel\_type\_1}}
\index{gsm0808\_current\_channel\_type\_1@{gsm0808\_current\_channel\_type\_1}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_current\_channel\_type\_1()}
{\footnotesize\ttfamily static uint8\+\_\+t gsm0808\+\_\+current\+\_\+channel\+\_\+type\+\_\+1 (\begin{DoxyParamCaption}\item[{enum \textbf{ gsm\+\_\+chan\+\_\+t}}]{type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}

\begin{DoxyReturn}{Returns}
3GPP TS 48.\+008 3.\+2.\+2.\+49 Current Channel Type 1 from enum gsm\+\_\+chan\+\_\+t. 
\end{DoxyReturn}


References \textbf{ GSM\+\_\+\+LCHAN\+\_\+\+SDCCH}, \textbf{ GSM\+\_\+\+LCHAN\+\_\+\+TCH\+\_\+F}, \textbf{ GSM\+\_\+\+LCHAN\+\_\+\+TCH\+\_\+H}, and \textbf{ type}.

\mbox{\label{group__gsm0808_ga8b9375b45baf27682e991095625c1232}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_dec\_aoip\_trasp\_addr@{gsm0808\_dec\_aoip\_trasp\_addr}}
\index{gsm0808\_dec\_aoip\_trasp\_addr@{gsm0808\_dec\_aoip\_trasp\_addr}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_dec\_aoip\_trasp\_addr()}
{\footnotesize\ttfamily int gsm0808\+\_\+dec\+\_\+aoip\+\_\+trasp\+\_\+addr (\begin{DoxyParamCaption}\item[{struct sockaddr\+\_\+storage $\ast$}]{ss,  }\item[{const uint8\+\_\+t $\ast$}]{elem,  }\item[{uint8\+\_\+t}]{len }\end{DoxyParamCaption})}

\mbox{\label{group__gsm0808_ga165ae9707bf538127fd64c157933332d}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_dec\_assign\_req@{gsm0808\_dec\_assign\_req}}
\index{gsm0808\_dec\_assign\_req@{gsm0808\_dec\_assign\_req}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_dec\_assign\_req()}
{\footnotesize\ttfamily int gsm0808\+\_\+dec\+\_\+assign\+\_\+req (\begin{DoxyParamCaption}\item[{enum \textbf{ gsm0808\+\_\+assignment\+\_\+requirement} $\ast$}]{ar,  }\item[{const uint8\+\_\+t $\ast$}]{elem,  }\item[{uint8\+\_\+t}]{len }\end{DoxyParamCaption})}



Decode Assignment Requirements IE (3GPP TS 48.\+008 3.\+2.\+2.\+52). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em ar} & Assignment Requirements enum to store data \\
\hline
\mbox{\texttt{ in}}  & {\em elem} & IE value to be decoded. \\
\hline
\mbox{\texttt{ in}}  & {\em len} & Length of {\itshape elem} in bytes. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes parsed; negative on error 
\end{DoxyReturn}


References \textbf{ len}, and \textbf{ OSMO\+\_\+\+ASSERT}.

\mbox{\label{group__gsm0808_ga52d5f6d444f55c0cac2bf9e568b3fd47}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_dec\_call\_id@{gsm0808\_dec\_call\_id}}
\index{gsm0808\_dec\_call\_id@{gsm0808\_dec\_call\_id}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_dec\_call\_id()}
{\footnotesize\ttfamily int gsm0808\+\_\+dec\+\_\+call\+\_\+id (\begin{DoxyParamCaption}\item[{uint32\+\_\+t $\ast$}]{ci,  }\item[{const uint8\+\_\+t $\ast$}]{elem,  }\item[{uint8\+\_\+t}]{len }\end{DoxyParamCaption})}



Decode Call Identifier IE (3GPP TS 48.\+008 3.\+2.\+2.\+105). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em ci} & Call Identifier structure to store data \\
\hline
\mbox{\texttt{ in}}  & {\em elem} & IE value to be decoded. \\
\hline
\mbox{\texttt{ in}}  & {\em len} & Length of {\itshape elem} in bytes. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes parsed; negative on error 
\end{DoxyReturn}


References \textbf{ len}, and \textbf{ OSMO\+\_\+\+ASSERT}.

\mbox{\label{group__gsm0808_gab34b0792f381a3194c529adcb1c548d9}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_dec\_cell\_id@{gsm0808\_dec\_cell\_id}}
\index{gsm0808\_dec\_cell\_id@{gsm0808\_dec\_cell\_id}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_dec\_cell\_id()}
{\footnotesize\ttfamily int gsm0808\+\_\+dec\+\_\+cell\+\_\+id (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm0808\+\_\+cell\+\_\+id} $\ast$}]{ci,  }\item[{const uint8\+\_\+t $\ast$}]{elem,  }\item[{uint8\+\_\+t}]{len }\end{DoxyParamCaption})}



Decode Cell Identifier IE (3GPP TS 48.\+008 3.\+2.\+2.\+17). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em ci} & Caller-\/provided memory to store Cell ID. \\
\hline
\mbox{\texttt{ in}}  & {\em elem} & IE value to be decoded. \\
\hline
\mbox{\texttt{ in}}  & {\em len} & Length of {\itshape elem} in bytes. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes parsed; negative on error 
\end{DoxyReturn}


References \textbf{ CELL\+\_\+\+IDENT\+\_\+\+BSS}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+NO\+\_\+\+CELL}, \textbf{ gsm0808\+\_\+dec\+\_\+cell\+\_\+id\+\_\+list2()}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+::id}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+::id\+\_\+discr}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2\+::id\+\_\+discr}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2\+::id\+\_\+list}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2\+::id\+\_\+list\+\_\+len}, and \textbf{ len}.



Referenced by \textbf{ osmo\+\_\+bssmap\+\_\+le\+\_\+ie\+\_\+dec\+\_\+cell\+\_\+id()}.

\mbox{\label{group__gsm0808_ga1149c4cce1be8c5bf94bf09140ee9434}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_dec\_cell\_id\_list@{gsm0808\_dec\_cell\_id\_list}}
\index{gsm0808\_dec\_cell\_id\_list@{gsm0808\_dec\_cell\_id\_list}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_dec\_cell\_id\_list()}
{\footnotesize\ttfamily int gsm0808\+\_\+dec\+\_\+cell\+\_\+id\+\_\+list (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list} $\ast$}]{cil,  }\item[{const uint8\+\_\+t $\ast$}]{elem,  }\item[{uint8\+\_\+t}]{len }\end{DoxyParamCaption})}



DEPRECATED\+: Use gsm0808\+\_\+dec\+\_\+cell\+\_\+id\+\_\+list2 instead. 

Decode Cell Identifier List IE 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em cil} & Caller-\/provided memory to store Cell ID list \\
\hline
\mbox{\texttt{ in}}  & {\em elem} & IE value to be decoded \\
\hline
\mbox{\texttt{ in}}  & {\em len} & Length of {\itshape elem} in bytes \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes parsed; negative on error 
\end{DoxyReturn}


References \textbf{ CELL\+\_\+\+IDENT\+\_\+\+BSS}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+LAC}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+::id\+\_\+discr}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+::id\+\_\+list\+\_\+lac}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+::id\+\_\+list\+\_\+len}, and \textbf{ len}.

\mbox{\label{group__gsm0808_ga30454bb3fd44fb3de0dbd04c47469b9b}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_dec\_cell\_id\_list2@{gsm0808\_dec\_cell\_id\_list2}}
\index{gsm0808\_dec\_cell\_id\_list2@{gsm0808\_dec\_cell\_id\_list2}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_dec\_cell\_id\_list2()}
{\footnotesize\ttfamily int gsm0808\+\_\+dec\+\_\+cell\+\_\+id\+\_\+list2 (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2} $\ast$}]{cil,  }\item[{const uint8\+\_\+t $\ast$}]{elem,  }\item[{uint8\+\_\+t}]{len }\end{DoxyParamCaption})}



Decode Cell Identifier List IE. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em cil} & Caller-\/provided memory to store Cell ID list \\
\hline
\mbox{\texttt{ in}}  & {\em elem} & IE value to be decoded \\
\hline
\mbox{\texttt{ in}}  & {\em len} & Length of {\itshape elem} in bytes \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes parsed; negative on error 
\end{DoxyReturn}


References \textbf{ CELL\+\_\+\+IDENT\+\_\+\+BSS}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+CI}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+LAC}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+LAC\+\_\+\+AND\+\_\+\+CI}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+LAI\+\_\+\+AND\+\_\+\+LAC}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+NO\+\_\+\+CELL}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+SAI}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+UTRAN\+\_\+\+LAC\+\_\+\+RNC}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+UTRAN\+\_\+\+PLMN\+\_\+\+LAC\+\_\+\+RNC}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+UTRAN\+\_\+\+RNC}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+WHOLE\+\_\+\+GLOBAL}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2\+::id\+\_\+discr}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2\+::id\+\_\+list\+\_\+len}, \textbf{ len}, \textbf{ parse\+\_\+cell\+\_\+id\+\_\+ci\+\_\+list()}, \textbf{ parse\+\_\+cell\+\_\+id\+\_\+global\+\_\+list()}, \textbf{ parse\+\_\+cell\+\_\+id\+\_\+lac\+\_\+and\+\_\+ci\+\_\+list()}, \textbf{ parse\+\_\+cell\+\_\+id\+\_\+lac\+\_\+list()}, \textbf{ parse\+\_\+cell\+\_\+id\+\_\+lai\+\_\+and\+\_\+lac()}, and \textbf{ parse\+\_\+cell\+\_\+id\+\_\+sai\+\_\+list()}.



Referenced by \textbf{ gsm0808\+\_\+dec\+\_\+cell\+\_\+id()}, and \textbf{ gsm0808\+\_\+dec\+\_\+cell\+\_\+id\+\_\+list\+\_\+segment()}.

\mbox{\label{group__gsm0808_ga1d9931b3fee16a23f36d0b1ea49126e1}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_dec\_cell\_id\_list\_segment@{gsm0808\_dec\_cell\_id\_list\_segment}}
\index{gsm0808\_dec\_cell\_id\_list\_segment@{gsm0808\_dec\_cell\_id\_list\_segment}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_dec\_cell\_id\_list\_segment()}
{\footnotesize\ttfamily int gsm0808\+\_\+dec\+\_\+cell\+\_\+id\+\_\+list\+\_\+segment (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+segment} $\ast$}]{ci,  }\item[{const uint8\+\_\+t $\ast$}]{elem,  }\item[{uint8\+\_\+t}]{len }\end{DoxyParamCaption})}



Decode Cell Identifier List Segment IE (3GPP TS 48.\+008 3.\+2.\+2.\+27a). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em ci} & Cell Identifier List Segment structure to store data \\
\hline
\mbox{\texttt{ in}}  & {\em elem} & IE value to be decoded. \\
\hline
\mbox{\texttt{ in}}  & {\em len} & Length of {\itshape elem} in bytes. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes parsed; negative on error 
\end{DoxyReturn}


References \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+segment\+::cil}, \textbf{ gsm0808\+\_\+dec\+\_\+cell\+\_\+id\+\_\+list2()}, \textbf{ len}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+segment\+::seq\+\_\+last}, and \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+segment\+::seq\+\_\+number}.

\mbox{\label{group__gsm0808_ga14b5cc97682be963c56cf68e34bba3df}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_dec\_channel\_type@{gsm0808\_dec\_channel\_type}}
\index{gsm0808\_dec\_channel\_type@{gsm0808\_dec\_channel\_type}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_dec\_channel\_type()}
{\footnotesize\ttfamily int gsm0808\+\_\+dec\+\_\+channel\+\_\+type (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm0808\+\_\+channel\+\_\+type} $\ast$}]{ct,  }\item[{const uint8\+\_\+t $\ast$}]{elem,  }\item[{uint8\+\_\+t}]{len }\end{DoxyParamCaption})}



Decode TS 08.\+08 Channel Type IE. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em ct} & Caller-\/provided memory to store channel type \\
\hline
\mbox{\texttt{ in}}  & {\em elem} & IE Value to be decoded \\
\hline
\mbox{\texttt{ in}}  & {\em len} & Length of {\itshape elem} in bytes \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes parsed; negative on error 
\end{DoxyReturn}
See also 3GPP TS 48.\+008 3.\+2.\+2.\+11 Channel Type

References \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+channel\+\_\+type\+::ch\+\_\+indctr}, \textbf{ gsm0808\+\_\+channel\+\_\+type\+::ch\+\_\+rate\+\_\+type}, \textbf{ gsm0808\+\_\+channel\+\_\+type\+::data\+\_\+asym\+\_\+pref}, \textbf{ gsm0808\+\_\+channel\+\_\+type\+::data\+\_\+asym\+\_\+pref\+\_\+is\+\_\+set}, \textbf{ gsm0808\+\_\+channel\+\_\+type\+::data\+\_\+rate}, \textbf{ gsm0808\+\_\+channel\+\_\+type\+::data\+\_\+rate\+\_\+allowed}, \textbf{ gsm0808\+\_\+channel\+\_\+type\+::data\+\_\+rate\+\_\+allowed\+\_\+is\+\_\+set}, \textbf{ gsm0808\+\_\+channel\+\_\+type\+::data\+\_\+transparent}, \textbf{ ENOTSUP}, \textbf{ GSM0808\+\_\+\+CHAN\+\_\+\+DATA}, \textbf{ GSM0808\+\_\+\+CHAN\+\_\+\+SIGN}, \textbf{ GSM0808\+\_\+\+CHAN\+\_\+\+SPEECH}, \textbf{ GSM0808\+\_\+\+CHAN\+\_\+\+SPEECH\+\_\+\+CTM\+\_\+\+TEXT\+\_\+\+TELEPHONY}, \textbf{ len}, \textbf{ gsm0808\+\_\+channel\+\_\+type\+::perm\+\_\+spch}, and \textbf{ gsm0808\+\_\+channel\+\_\+type\+::perm\+\_\+spch\+\_\+len}.

\mbox{\label{group__gsm0808_ga895c42b944c802e896d26e0ef911199c}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_dec\_data\_identity@{gsm0808\_dec\_data\_identity}}
\index{gsm0808\_dec\_data\_identity@{gsm0808\_dec\_data\_identity}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_dec\_data\_identity()}
{\footnotesize\ttfamily int gsm0808\+\_\+dec\+\_\+data\+\_\+identity (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm0808\+\_\+data\+\_\+identity} $\ast$}]{ti,  }\item[{const uint8\+\_\+t $\ast$}]{elem,  }\item[{uint8\+\_\+t}]{len }\end{DoxyParamCaption})}



Decode Data Identity IE (3GPP TS 48.\+008 3.\+2.\+2.\+99). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em di} & Data Identity structure to store data \\
\hline
\mbox{\texttt{ in}}  & {\em elem} & IE value to be decoded. \\
\hline
\mbox{\texttt{ in}}  & {\em len} & Length of {\itshape elem} in bytes. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes parsed; negative on error 
\end{DoxyReturn}


References \textbf{ len}, and \textbf{ OSMO\+\_\+\+ASSERT}.

\mbox{\label{group__gsm0808_ga79a95f4a2d0f67055b7ac2862b789c49}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_dec\_encrypt\_info@{gsm0808\_dec\_encrypt\_info}}
\index{gsm0808\_dec\_encrypt\_info@{gsm0808\_dec\_encrypt\_info}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_dec\_encrypt\_info()}
{\footnotesize\ttfamily int gsm0808\+\_\+dec\+\_\+encrypt\+\_\+info (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm0808\+\_\+encrypt\+\_\+info} $\ast$}]{ei,  }\item[{const uint8\+\_\+t $\ast$}]{elem,  }\item[{uint8\+\_\+t}]{len }\end{DoxyParamCaption})}



Decode TS 08.\+08 Encryption Information IE. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em ei} & Caller-\/provided memory to store encryption information \\
\hline
\mbox{\texttt{ in}}  & {\em elem} & IE value to be decoded \\
\hline
\mbox{\texttt{ in}}  & {\em len} & Length of {\itshape elem} in bytes \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes parsed; negative on error 
\end{DoxyReturn}


References \textbf{ ENCRY\+\_\+\+INFO\+\_\+\+PERM\+\_\+\+ALGO\+\_\+\+MAXLEN}, \textbf{ gsm0808\+\_\+encrypt\+\_\+info\+::key}, \textbf{ gsm0808\+\_\+encrypt\+\_\+info\+::key\+\_\+len}, \textbf{ len}, \textbf{ gsm0808\+\_\+encrypt\+\_\+info\+::perm\+\_\+algo}, and \textbf{ gsm0808\+\_\+encrypt\+\_\+info\+::perm\+\_\+algo\+\_\+len}.

\mbox{\label{group__gsm0808_ga02c88063b294b987d4ab06720a21c253}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_dec\_group\_callref@{gsm0808\_dec\_group\_callref}}
\index{gsm0808\_dec\_group\_callref@{gsm0808\_dec\_group\_callref}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_dec\_group\_callref()}
{\footnotesize\ttfamily int gsm0808\+\_\+dec\+\_\+group\+\_\+callref (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm0808\+\_\+group\+\_\+callref} $\ast$}]{gc,  }\item[{const uint8\+\_\+t $\ast$}]{elem,  }\item[{uint8\+\_\+t}]{len }\end{DoxyParamCaption})}



Decode Group Call Reference IE (3GPP TS 48.\+008 3.\+2.\+2.\+55). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em gc} & Group Call Reference structure to store data \\
\hline
\mbox{\texttt{ in}}  & {\em elem} & IE value to be decoded. \\
\hline
\mbox{\texttt{ in}}  & {\em len} & Length of {\itshape elem} in bytes. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes parsed; negative on error 
\end{DoxyReturn}


References \textbf{ len}, and \textbf{ OSMO\+\_\+\+ASSERT}.

\mbox{\label{group__gsm0808_ga561797874186a1999bacbc6a65bf1bba}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_dec\_kc128@{gsm0808\_dec\_kc128}}
\index{gsm0808\_dec\_kc128@{gsm0808\_dec\_kc128}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_dec\_kc128()}
{\footnotesize\ttfamily int gsm0808\+\_\+dec\+\_\+kc128 (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{kc128,  }\item[{const uint8\+\_\+t $\ast$}]{elem,  }\item[{uint8\+\_\+t}]{len }\end{DoxyParamCaption})}



Decode TS 48.\+008 Kc128 IE. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em kc128} & Target buffer for received Kc128 key, 16 bytes long. \\
\hline
\mbox{\texttt{ in}}  & {\em elem} & IE value to be decoded (without IE discriminator). \\
\hline
\mbox{\texttt{ in}}  & {\em len} & Length of elem in bytes. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes parsed; negative on error 
\end{DoxyReturn}


References \textbf{ len}.

\mbox{\label{group__gsm0808_ga827c2f70cd67127462c6657faf174d6d}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_dec\_lcls@{gsm0808\_dec\_lcls}}
\index{gsm0808\_dec\_lcls@{gsm0808\_dec\_lcls}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_dec\_lcls()}
{\footnotesize\ttfamily int gsm0808\+\_\+dec\+\_\+lcls (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+lcls} $\ast$}]{lcls,  }\item[{const struct \textbf{ tlv\+\_\+parsed} $\ast$}]{tp }\end{DoxyParamCaption})}



Decode LCLS parameters to a given msgb, 3GPP TS 48.\+008 §3.2.\+2.\+115 -\/ 3.\+2.\+2.\+120. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em lcls} & Caller-\/provided memory to store LCLS-\/related data \\
\hline
\mbox{\texttt{ in}}  & {\em tp} & IE values to be decoded \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
GCR size or negative on error 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+lcls\+::config}, \textbf{ osmo\+\_\+lcls\+::control}, \textbf{ osmo\+\_\+lcls\+::corr\+\_\+needed}, \textbf{ osmo\+\_\+lcls\+::gcr}, \textbf{ osmo\+\_\+lcls\+::gcr\+\_\+available}, \textbf{ gsm0808\+\_\+dec\+\_\+gcr()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+LCLS\+\_\+\+CONFIG}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+LCLS\+\_\+\+CONN\+\_\+\+STATUS\+\_\+\+CTRL}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+LCLS\+\_\+\+CORR\+\_\+\+NOT\+\_\+\+NEEDED}, \textbf{ GSM0808\+\_\+\+LCLS\+\_\+\+CFG\+\_\+\+NA}, \textbf{ GSM0808\+\_\+\+LCLS\+\_\+\+CSC\+\_\+\+NA}, \textbf{ TLVP\+\_\+\+PRESENT}, and \textbf{ tlvp\+\_\+val8()}.

\mbox{\label{group__gsm0808_ga44def7af065ab4cb5c10a80fe2894ba3}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_dec\_msisdn@{gsm0808\_dec\_msisdn}}
\index{gsm0808\_dec\_msisdn@{gsm0808\_dec\_msisdn}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_dec\_msisdn()}
{\footnotesize\ttfamily int gsm0808\+\_\+dec\+\_\+msisdn (\begin{DoxyParamCaption}\item[{char $\ast$}]{msisdn,  }\item[{const char $\ast$}]{elem,  }\item[{uint8\+\_\+t}]{len }\end{DoxyParamCaption})}



Decode MSISDN IE (3GPP TS 48.\+008 3.\+2.\+2.\+101). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em msisdn} & MSISDN structure to store data \\
\hline
\mbox{\texttt{ in}}  & {\em elem} & IE value to be decoded. \\
\hline
\mbox{\texttt{ in}}  & {\em len} & Length of {\itshape elem} in bytes. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes parsed; negative on error 
\end{DoxyReturn}


References \textbf{ gsm48\+\_\+decode\+\_\+bcd\+\_\+number()}, \textbf{ len}, \textbf{ MSISDN\+\_\+\+MAXLEN}, and \textbf{ OSMO\+\_\+\+ASSERT}.

\mbox{\label{group__gsm0808_ga8360de14cc15f3385d0a2d6f53a536b1}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_dec\_osmux\_cid@{gsm0808\_dec\_osmux\_cid}}
\index{gsm0808\_dec\_osmux\_cid@{gsm0808\_dec\_osmux\_cid}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_dec\_osmux\_cid()}
{\footnotesize\ttfamily int gsm0808\+\_\+dec\+\_\+osmux\+\_\+cid (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{cid,  }\item[{const uint8\+\_\+t $\ast$}]{elem,  }\item[{uint8\+\_\+t}]{len }\end{DoxyParamCaption})}



References \textbf{ OSMO\+\_\+\+DEPRECATED}.

\mbox{\label{group__gsm0808_gafeb5ea2821526549ac6eaaeedda19827}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_dec\_priority@{gsm0808\_dec\_priority}}
\index{gsm0808\_dec\_priority@{gsm0808\_dec\_priority}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_dec\_priority()}
{\footnotesize\ttfamily int gsm0808\+\_\+dec\+\_\+priority (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm0808\+\_\+priority} $\ast$}]{pri,  }\item[{const uint8\+\_\+t $\ast$}]{elem,  }\item[{uint8\+\_\+t}]{len }\end{DoxyParamCaption})}



Decode Priority IE (3GPP TS 48.\+008 3.\+2.\+2.\+18). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em pri} & Priority structure to store data \\
\hline
\mbox{\texttt{ in}}  & {\em elem} & IE value to be decoded. \\
\hline
\mbox{\texttt{ in}}  & {\em len} & Length of {\itshape elem} in bytes. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes parsed; negative on error 
\end{DoxyReturn}


References \textbf{ len}, and \textbf{ OSMO\+\_\+\+ASSERT}.

\mbox{\label{group__gsm0808_gad090100ed13372865185529fe66ed868}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_dec\_speech\_codec@{gsm0808\_dec\_speech\_codec}}
\index{gsm0808\_dec\_speech\_codec@{gsm0808\_dec\_speech\_codec}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_dec\_speech\_codec()}
{\footnotesize\ttfamily int gsm0808\+\_\+dec\+\_\+speech\+\_\+codec (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm0808\+\_\+speech\+\_\+codec} $\ast$}]{sc,  }\item[{const uint8\+\_\+t $\ast$}]{elem,  }\item[{uint8\+\_\+t}]{len }\end{DoxyParamCaption})}



Decode TS 08.\+08 Speech Codec IE. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em sc} & Caller-\/allocated memory for Speech Codec \\
\hline
\mbox{\texttt{ in}}  & {\em elem} & IE value to be decoded \\
\hline
\mbox{\texttt{ in}}  & {\em len} & Length of {\itshape elem} in bytes \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes parsed; negative on error 
\end{DoxyReturn}


References \textbf{ gsm0808\+\_\+speech\+\_\+codec\+::cfg}, \textbf{ gsm0808\+\_\+speech\+\_\+codec\+::fi}, \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+CSD}, \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+EXT}, \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+FR1}, \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+FR2}, \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+FR3}, \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+FR4}, \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+FR5}, \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+HR1}, \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+HR3}, \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+HR4}, \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+HR6}, \textbf{ header}, \textbf{ len}, \textbf{ gsm0808\+\_\+speech\+\_\+codec\+::pi}, \textbf{ gsm0808\+\_\+speech\+\_\+codec\+::pt}, \textbf{ gsm0808\+\_\+speech\+\_\+codec\+::tf}, and \textbf{ gsm0808\+\_\+speech\+\_\+codec\+::type}.



Referenced by \textbf{ gsm0808\+\_\+dec\+\_\+speech\+\_\+codec\+\_\+list()}.

\mbox{\label{group__gsm0808_ga076ed4626439c6a20b70dbc85281a637}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_dec\_speech\_codec\_list@{gsm0808\_dec\_speech\_codec\_list}}
\index{gsm0808\_dec\_speech\_codec\_list@{gsm0808\_dec\_speech\_codec\_list}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_dec\_speech\_codec\_list()}
{\footnotesize\ttfamily int gsm0808\+\_\+dec\+\_\+speech\+\_\+codec\+\_\+list (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list} $\ast$}]{scl,  }\item[{const uint8\+\_\+t $\ast$}]{elem,  }\item[{uint8\+\_\+t}]{len }\end{DoxyParamCaption})}



Decode TS 08.\+08 Speech Codec list IE. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em scl} & Caller-\/provided memory to store codec list \\
\hline
\mbox{\texttt{ in}}  & {\em elem} & IE value to be decoded \\
\hline
\mbox{\texttt{ in}}  & {\em len} & Length of {\itshape elem} in bytes \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes parsed; negative on error 
\end{DoxyReturn}
See also 3GPP TS 48.\+008 3.\+2.\+2.\+103 Speech Codec List

References \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list\+::codec}, \textbf{ gsm0808\+\_\+dec\+\_\+speech\+\_\+codec()}, \textbf{ len}, and \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list\+::len}.

\mbox{\label{group__gsm0808_ga49f598a18f78ba3e7be4f9a1e2537037}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_dec\_talker\_identity@{gsm0808\_dec\_talker\_identity}}
\index{gsm0808\_dec\_talker\_identity@{gsm0808\_dec\_talker\_identity}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_dec\_talker\_identity()}
{\footnotesize\ttfamily int gsm0808\+\_\+dec\+\_\+talker\+\_\+identity (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm0808\+\_\+talker\+\_\+identity} $\ast$}]{ti,  }\item[{const uint8\+\_\+t $\ast$}]{elem,  }\item[{uint8\+\_\+t}]{len }\end{DoxyParamCaption})}



Decode Talker Identity IE (3GPP TS 48.\+008 3.\+2.\+2.\+91). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em ti} & Talker Identity structure to store data \\
\hline
\mbox{\texttt{ in}}  & {\em elem} & IE value to be decoded. \\
\hline
\mbox{\texttt{ in}}  & {\em len} & Length of {\itshape elem} in bytes. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes parsed; negative on error 
\end{DoxyReturn}


References \textbf{ gsm0808\+\_\+talker\+\_\+identity\+::id\+\_\+bits}, \textbf{ len}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ gsm0808\+\_\+talker\+\_\+identity\+::talker\+\_\+id}, and \textbf{ TALKER\+\_\+\+IDENTITY\+\_\+\+MAXLEN}.

\mbox{\label{group__gsm0808_ga3d03222171364196e69916148a36593d}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_dec\_vgcs\_feature\_flags@{gsm0808\_dec\_vgcs\_feature\_flags}}
\index{gsm0808\_dec\_vgcs\_feature\_flags@{gsm0808\_dec\_vgcs\_feature\_flags}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_dec\_vgcs\_feature\_flags()}
{\footnotesize\ttfamily int gsm0808\+\_\+dec\+\_\+vgcs\+\_\+feature\+\_\+flags (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm0808\+\_\+vgcs\+\_\+feature\+\_\+flags} $\ast$}]{ff,  }\item[{const uint8\+\_\+t $\ast$}]{elem,  }\item[{uint8\+\_\+t}]{len }\end{DoxyParamCaption})}



Decode VGCS Feature Flags IE (3GPP TS 48.\+008 3.\+2.\+2.\+88). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em ff} & VGCS Feature Flags structure to store data \\
\hline
\mbox{\texttt{ in}}  & {\em elem} & IE value to be decoded. \\
\hline
\mbox{\texttt{ in}}  & {\em len} & Length of {\itshape elem} in bytes. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes parsed; negative on error 
\end{DoxyReturn}


References \textbf{ len}, and \textbf{ OSMO\+\_\+\+ASSERT}.

\mbox{\label{group__gsm0808_ga584052561013bfe1efc5ad3e4fbec0d9}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_decode\_cell\_id\_u@{gsm0808\_decode\_cell\_id\_u}}
\index{gsm0808\_decode\_cell\_id\_u@{gsm0808\_decode\_cell\_id\_u}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_decode\_cell\_id\_u()}
{\footnotesize\ttfamily int gsm0808\+\_\+decode\+\_\+cell\+\_\+id\+\_\+u (\begin{DoxyParamCaption}\item[{union \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u} $\ast$}]{out,  }\item[{enum \textbf{ CELL\+\_\+\+IDENT}}]{discr,  }\item[{const uint8\+\_\+t $\ast$}]{buf,  }\item[{unsigned int}]{len }\end{DoxyParamCaption})}



Decode a single GSM 08.\+08 Cell ID list element payload. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & caller-\/provided output union \\
\hline
\mbox{\texttt{ in}}  & {\em discr} & Cell ID discriminator describing type to be decoded \\
\hline
\mbox{\texttt{ in}}  & {\em buf} & User-\/provided input buffer containing binary Cell ID list element \\
\hline
\mbox{\texttt{ in}}  & {\em len} & Length of buf \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative on error 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+strbuf\+::buf}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+BSS}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+CI}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+LAC}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+LAC\+\_\+\+AND\+\_\+\+CI}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+LAI\+\_\+\+AND\+\_\+\+LAC}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+NO\+\_\+\+CELL}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+SAI}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+WHOLE\+\_\+\+GLOBAL}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+WHOLE\+\_\+\+GLOBAL\+\_\+\+PS}, \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id\+::cell\+\_\+identity}, \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id\+\_\+ps\+::cell\+\_\+identity}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::ci}, \textbf{ osmo\+\_\+lac\+\_\+and\+\_\+ci\+\_\+id\+::ci}, \textbf{ decode\+\_\+lai()}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::global}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::global\+\_\+ps}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::lac}, \textbf{ osmo\+\_\+lac\+\_\+and\+\_\+ci\+\_\+id\+::lac}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::lac\+\_\+and\+\_\+ci}, \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id\+::lai}, \textbf{ osmo\+\_\+service\+\_\+area\+\_\+id\+::lai}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::lai\+\_\+and\+\_\+lac}, \textbf{ len}, \textbf{ osmo\+\_\+routing\+\_\+area\+\_\+id\+::rac}, \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id\+\_\+ps\+::rai}, \textbf{ osmo\+\_\+service\+\_\+area\+\_\+id\+::sac}, and \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::sai}.



Referenced by \textbf{ cbsp\+\_\+decode\+\_\+cell\+\_\+list()}, \textbf{ cbsp\+\_\+decode\+\_\+fail\+\_\+list()}, \textbf{ cbsp\+\_\+decode\+\_\+loading\+\_\+list()}, and \textbf{ cbsp\+\_\+decode\+\_\+num\+\_\+compl\+\_\+list()}.

\mbox{\label{group__gsm0808_ga8bf13a55e0a5bc781dbc5d3e697e5aea}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_diagnostics\_bit\_location\_str@{gsm0808\_diagnostics\_bit\_location\_str}}
\index{gsm0808\_diagnostics\_bit\_location\_str@{gsm0808\_diagnostics\_bit\_location\_str}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_diagnostics\_bit\_location\_str()}
{\footnotesize\ttfamily const char $\ast$ gsm0808\+\_\+diagnostics\+\_\+bit\+\_\+location\+\_\+str (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{bit\+\_\+pointer }\end{DoxyParamCaption})}



References \textbf{ str\+\_\+buff}.

\mbox{\label{group__gsm0808_ga244a7bfbbe469007c6af6dc26404b2e5}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_diagnostics\_octet\_location\_str@{gsm0808\_diagnostics\_octet\_location\_str}}
\index{gsm0808\_diagnostics\_octet\_location\_str@{gsm0808\_diagnostics\_octet\_location\_str}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_diagnostics\_octet\_location\_str()}
{\footnotesize\ttfamily const char $\ast$ gsm0808\+\_\+diagnostics\+\_\+octet\+\_\+location\+\_\+str (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{pointer }\end{DoxyParamCaption})}



References \textbf{ str\+\_\+buff}.

\mbox{\label{group__gsm0808_ga86a6ce7cf87eec90da6c074889919b77}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_enc\_aoip\_trasp\_addr@{gsm0808\_enc\_aoip\_trasp\_addr}}
\index{gsm0808\_enc\_aoip\_trasp\_addr@{gsm0808\_enc\_aoip\_trasp\_addr}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_enc\_aoip\_trasp\_addr()}
{\footnotesize\ttfamily uint8\+\_\+t gsm0808\+\_\+enc\+\_\+aoip\+\_\+trasp\+\_\+addr (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const struct sockaddr\+\_\+storage $\ast$}]{ss }\end{DoxyParamCaption})}



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+ass2()}, \textbf{ gsm0808\+\_\+create\+\_\+ass\+\_\+compl2()}, \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+request()}, \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+request\+\_\+ack2()}, \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+req()}, and \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+res()}.

\mbox{\label{group__gsm0808_gae81392b436d7349dcacd28107717a9fc}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_enc\_assign\_req@{gsm0808\_enc\_assign\_req}}
\index{gsm0808\_enc\_assign\_req@{gsm0808\_enc\_assign\_req}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_enc\_assign\_req()}
{\footnotesize\ttfamily uint8\+\_\+t gsm0808\+\_\+enc\+\_\+assign\+\_\+req (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const enum \textbf{ gsm0808\+\_\+assignment\+\_\+requirement}}]{ar }\end{DoxyParamCaption})}



Encode Assignment Requirements IE (3GPP TS 48.\+008 3.\+2.\+2.\+52). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em msg} & Message Buffer to which IE is to be appended \\
\hline
\mbox{\texttt{ in}}  & {\em ar} & Assignment Requirement to be encoded \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes appended to {\itshape msg} 
\end{DoxyReturn}


References \textbf{ GSM0808\+\_\+\+IE\+\_\+\+ASSIGNMENT\+\_\+\+REQUIREMENT}, \textbf{ msg}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+put\+\_\+u8()}, and \textbf{ OSMO\+\_\+\+ASSERT}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+area\+\_\+cell\+\_\+info()}, and \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+req()}.

\mbox{\label{group__gsm0808_ga11a9320f46c445fb8578e06221ebf030}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_enc\_cause@{gsm0808\_enc\_cause}}
\index{gsm0808\_enc\_cause@{gsm0808\_enc\_cause}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_enc\_cause()}
{\footnotesize\ttfamily uint8\+\_\+t gsm0808\+\_\+enc\+\_\+cause (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{uint16\+\_\+t}]{cause }\end{DoxyParamCaption})}



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+ass\+\_\+fail()}, \textbf{ gsm0808\+\_\+create\+\_\+cipher\+\_\+reject()}, \textbf{ gsm0808\+\_\+create\+\_\+cipher\+\_\+reject\+\_\+ext()}, \textbf{ gsm0808\+\_\+create\+\_\+clear\+\_\+command()}, \textbf{ gsm0808\+\_\+create\+\_\+clear\+\_\+command2()}, \textbf{ gsm0808\+\_\+create\+\_\+clear\+\_\+rqst()}, \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+failure()}, \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+performed()}, \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+request()}, \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+required()}, \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+required\+\_\+reject()}, \textbf{ gsm0808\+\_\+create\+\_\+reset()}, \textbf{ gsm0808\+\_\+create\+\_\+sapi\+\_\+reject\+\_\+cause()}, \textbf{ gsm0808\+\_\+create\+\_\+uplink\+\_\+reject\+\_\+cmd()}, \textbf{ gsm0808\+\_\+create\+\_\+uplink\+\_\+release\+\_\+cmd()}, \textbf{ gsm0808\+\_\+create\+\_\+uplink\+\_\+release\+\_\+ind()}, \textbf{ gsm0808\+\_\+create\+\_\+uplink\+\_\+seized\+\_\+cmd()}, \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+fail()}, \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+setup\+\_\+refuse()}, and \textbf{ osmo\+\_\+bssmap\+\_\+le\+\_\+enc\+\_\+reset()}.

\mbox{\label{group__gsm0808_ga34e44e4d33b2bf6b7c4a0a60355d397a}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_enc\_cell\_id@{gsm0808\_enc\_cell\_id}}
\index{gsm0808\_enc\_cell\_id@{gsm0808\_enc\_cell\_id}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_enc\_cell\_id()}
{\footnotesize\ttfamily uint8\+\_\+t gsm0808\+\_\+enc\+\_\+cell\+\_\+id (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const struct \textbf{ gsm0808\+\_\+cell\+\_\+id} $\ast$}]{ci }\end{DoxyParamCaption})}



Encode Cell Identifier IE (3GPP TS 48.\+008 3.\+2.\+2.\+17). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em msg} & Message Buffer to which IE is to be appended \\
\hline
\mbox{\texttt{ in}}  & {\em ci} & Cell ID to be encoded \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes appended to {\itshape msg} 
\end{DoxyReturn}


References \textbf{ gsm0808\+\_\+enc\+\_\+cell\+\_\+id\+\_\+list2()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CELL\+\_\+\+IDENTIFIER}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+::id}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+::id\+\_\+discr}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2\+::id\+\_\+discr}, and \textbf{ msg}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+command()}, \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+performed()}, \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+request()}, \textbf{ gsm0808\+\_\+create\+\_\+uplink\+\_\+app\+\_\+data()}, \textbf{ gsm0808\+\_\+create\+\_\+uplink\+\_\+request()}, \textbf{ gsm0808\+\_\+create\+\_\+uplink\+\_\+request\+\_\+cnf()}, \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+req()}, \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+res()}, and \textbf{ osmo\+\_\+bssmap\+\_\+le\+\_\+enc\+\_\+perform\+\_\+loc\+\_\+req()}.

\mbox{\label{group__gsm0808_ga5b8b808caf1dca258d076153b2bcd99d}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_enc\_cell\_id\_list@{gsm0808\_enc\_cell\_id\_list}}
\index{gsm0808\_enc\_cell\_id\_list@{gsm0808\_enc\_cell\_id\_list}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_enc\_cell\_id\_list()}
{\footnotesize\ttfamily uint8\+\_\+t gsm0808\+\_\+enc\+\_\+cell\+\_\+id\+\_\+list (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list} $\ast$}]{cil }\end{DoxyParamCaption})}



DEPRECATED\+: Use gsm0808\+\_\+enc\+\_\+cell\+\_\+id\+\_\+list2 instead. 

Encode TS 08.\+08 Cell Identifier List IE 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em msg} & Message Buffer to which IE is to be appended \\
\hline
\mbox{\texttt{ in}}  & {\em cil} & Cell ID List to be encoded \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes appended to {\itshape msg} 
\end{DoxyReturn}


References \textbf{ CELL\+\_\+\+ID\+\_\+\+LIST\+\_\+\+LAC\+\_\+\+MAXLEN}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+BSS}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+LAC}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CELL\+\_\+\+IDENTIFIER\+\_\+\+LIST}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+::id\+\_\+discr}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+::id\+\_\+list\+\_\+lac}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+::id\+\_\+list\+\_\+len}, \textbf{ msg}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+put\+\_\+u16()}, \textbf{ msgb\+\_\+put\+\_\+u8()}, and \textbf{ OSMO\+\_\+\+ASSERT}.

\mbox{\label{group__gsm0808_ga8ef59cd904d1593a91a0c3ff6e7297cc}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_enc\_cell\_id\_list2@{gsm0808\_enc\_cell\_id\_list2}}
\index{gsm0808\_enc\_cell\_id\_list2@{gsm0808\_enc\_cell\_id\_list2}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_enc\_cell\_id\_list2()}
{\footnotesize\ttfamily uint8\+\_\+t gsm0808\+\_\+enc\+\_\+cell\+\_\+id\+\_\+list2 (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2} $\ast$}]{cil }\end{DoxyParamCaption})}



Encode TS 08.\+08 Cell Identifier List IE. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em msg} & Message Buffer to which IE is to be appended \\
\hline
\mbox{\texttt{ in}}  & {\em cil} & Cell ID List to be encoded \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes appended to {\itshape msg} 
\end{DoxyReturn}


References \textbf{ cell\+\_\+id\+\_\+to\+\_\+cgi()}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+WHOLE\+\_\+\+GLOBAL}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+WHOLE\+\_\+\+GLOBAL\+\_\+\+PS}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::global}, \textbf{ GSM0808\+\_\+\+CELL\+\_\+\+ID\+\_\+\+LIST2\+\_\+\+MAXLEN}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CELL\+\_\+\+IDENTIFIER\+\_\+\+LIST}, \textbf{ gsm0808\+\_\+msgb\+\_\+put\+\_\+cell\+\_\+id\+\_\+u()}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2\+::id\+\_\+discr}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2\+::id\+\_\+list}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list2\+::id\+\_\+list\+\_\+len}, \textbf{ msg}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+put\+\_\+u8()}, and \textbf{ OSMO\+\_\+\+ASSERT}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+required()}, \textbf{ gsm0808\+\_\+create\+\_\+paging2()}, \textbf{ gsm0808\+\_\+enc\+\_\+cell\+\_\+id()}, \textbf{ gsm0808\+\_\+enc\+\_\+cell\+\_\+id\+\_\+list\+\_\+segment()}, and \textbf{ same\+\_\+cell\+\_\+id\+\_\+list\+\_\+entries()}.

\mbox{\label{group__gsm0808_ga09219f9a0485c3e3427f90d12ecee5f5}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_enc\_cell\_id\_list\_segment@{gsm0808\_enc\_cell\_id\_list\_segment}}
\index{gsm0808\_enc\_cell\_id\_list\_segment@{gsm0808\_enc\_cell\_id\_list\_segment}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_enc\_cell\_id\_list\_segment()}
{\footnotesize\ttfamily uint8\+\_\+t gsm0808\+\_\+enc\+\_\+cell\+\_\+id\+\_\+list\+\_\+segment (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{uint8\+\_\+t}]{ie\+\_\+type,  }\item[{const struct \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+segment} $\ast$}]{ci }\end{DoxyParamCaption})}



Encode Cell Identifier List Segment IE (3GPP TS 48.\+008 3.\+2.\+2.\+27a). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em msg} & Message Buffer to which IE is to be appended \\
\hline
\mbox{\texttt{ in}}  & {\em ie\+\_\+type} & Type of IE to use (5 different lists are specified.) \\
\hline
\mbox{\texttt{ in}}  & {\em ci} & Cell Identifier List Segment to be encoded \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes appended to {\itshape msg} 
\end{DoxyReturn}


References \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+segment\+::cil}, \textbf{ gsm0808\+\_\+enc\+\_\+cell\+\_\+id\+\_\+list2()}, \textbf{ msg}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+put\+\_\+u8()}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+segment\+::seq\+\_\+last}, and \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+list\+\_\+segment\+::seq\+\_\+number}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+area\+\_\+cell\+\_\+info()}, \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+req()}, and \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+stat()}.

\mbox{\label{group__gsm0808_gaff76c837771f4e2c6d25e629a5dfee84}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_enc\_channel\_type@{gsm0808\_enc\_channel\_type}}
\index{gsm0808\_enc\_channel\_type@{gsm0808\_enc\_channel\_type}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_enc\_channel\_type()}
{\footnotesize\ttfamily uint8\+\_\+t gsm0808\+\_\+enc\+\_\+channel\+\_\+type (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const struct \textbf{ gsm0808\+\_\+channel\+\_\+type} $\ast$}]{ct }\end{DoxyParamCaption})}



Encode TS 08.\+08 Channel Type IE. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em msg} & Message Buffer to which IE is to be appended \\
\hline
\mbox{\texttt{ in}}  & {\em ct} & Channel Type to be encoded \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes added to {\itshape msg} 
\end{DoxyReturn}
See also 3GPP TS 48.\+008 3.\+2.\+2.\+11 Channel Type

References \textbf{ gsm0808\+\_\+channel\+\_\+type\+::ch\+\_\+indctr}, \textbf{ gsm0808\+\_\+channel\+\_\+type\+::ch\+\_\+rate\+\_\+type}, \textbf{ CHANNEL\+\_\+\+TYPE\+\_\+\+ELEMENT\+\_\+\+MAXLEN}, \textbf{ gsm0808\+\_\+channel\+\_\+type\+::data\+\_\+asym\+\_\+pref}, \textbf{ gsm0808\+\_\+channel\+\_\+type\+::data\+\_\+asym\+\_\+pref\+\_\+is\+\_\+set}, \textbf{ gsm0808\+\_\+channel\+\_\+type\+::data\+\_\+rate}, \textbf{ gsm0808\+\_\+channel\+\_\+type\+::data\+\_\+rate\+\_\+allowed}, \textbf{ gsm0808\+\_\+channel\+\_\+type\+::data\+\_\+rate\+\_\+allowed\+\_\+is\+\_\+set}, \textbf{ gsm0808\+\_\+channel\+\_\+type\+::data\+\_\+transparent}, \textbf{ GSM0808\+\_\+\+CHAN\+\_\+\+DATA}, \textbf{ GSM0808\+\_\+\+CHAN\+\_\+\+SIGN}, \textbf{ GSM0808\+\_\+\+CHAN\+\_\+\+SPEECH}, \textbf{ GSM0808\+\_\+\+CHAN\+\_\+\+SPEECH\+\_\+\+CTM\+\_\+\+TEXT\+\_\+\+TELEPHONY}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CHANNEL\+\_\+\+TYPE}, \textbf{ msg}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+put\+\_\+u8()}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ gsm0808\+\_\+channel\+\_\+type\+::perm\+\_\+spch}, and \textbf{ gsm0808\+\_\+channel\+\_\+type\+::perm\+\_\+spch\+\_\+len}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+ass2()}, \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+request()}, \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+req()}, and \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+res()}.

\mbox{\label{group__gsm0808_ga85079b3db4e532c806c237a9e2763a24}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_enc\_data\_identity@{gsm0808\_enc\_data\_identity}}
\index{gsm0808\_enc\_data\_identity@{gsm0808\_enc\_data\_identity}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_enc\_data\_identity()}
{\footnotesize\ttfamily uint8\+\_\+t gsm0808\+\_\+enc\+\_\+data\+\_\+identity (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const struct \textbf{ gsm0808\+\_\+data\+\_\+identity} $\ast$}]{ti }\end{DoxyParamCaption})}



Encode Data Identity IE (3GPP TS 48.\+008 3.\+2.\+2.\+99). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em msg} & Message Buffer to which IE is to be appended \\
\hline
\mbox{\texttt{ in}}  & {\em di} & Data Identity to be encoded \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes appended to {\itshape msg} 
\end{DoxyReturn}


References \textbf{ GSM0808\+\_\+\+IE\+\_\+\+DATA\+\_\+\+IDENTITY}, \textbf{ msg}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+put\+\_\+u8()}, and \textbf{ OSMO\+\_\+\+ASSERT}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+notification\+\_\+data()}.

\mbox{\label{group__gsm0808_ga841edc5a229dc8da58e92fa381df095f}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_enc\_encrypt\_info@{gsm0808\_enc\_encrypt\_info}}
\index{gsm0808\_enc\_encrypt\_info@{gsm0808\_enc\_encrypt\_info}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_enc\_encrypt\_info()}
{\footnotesize\ttfamily uint8\+\_\+t gsm0808\+\_\+enc\+\_\+encrypt\+\_\+info (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const struct \textbf{ gsm0808\+\_\+encrypt\+\_\+info} $\ast$}]{ei }\end{DoxyParamCaption})}



Encode TS 08.\+08 Encryption Information IE. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em msg} & Message Buffer to which IE is to be appended \\
\hline
\mbox{\texttt{ in}}  & {\em ei} & Encryption Information to be encoded \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes appended to {\itshape msg} 
\end{DoxyReturn}


References \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ ENCRY\+\_\+\+INFO\+\_\+\+PERM\+\_\+\+ALGO\+\_\+\+MAXLEN}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+ENCRYPTION\+\_\+\+INFORMATION}, \textbf{ gsm0808\+\_\+encrypt\+\_\+info\+::key}, \textbf{ gsm0808\+\_\+encrypt\+\_\+info\+::key\+\_\+len}, \textbf{ msg}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+put\+\_\+u8()}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ gsm0808\+\_\+encrypt\+\_\+info\+::perm\+\_\+algo}, and \textbf{ gsm0808\+\_\+encrypt\+\_\+info\+::perm\+\_\+algo\+\_\+len}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+cipher2()}, \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+request()}, and \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+req()}.

\mbox{\label{group__gsm0808_ga5e6168d845b9c29c02634abdf94e3095}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_enc\_group\_callref@{gsm0808\_enc\_group\_callref}}
\index{gsm0808\_enc\_group\_callref@{gsm0808\_enc\_group\_callref}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_enc\_group\_callref()}
{\footnotesize\ttfamily uint8\+\_\+t gsm0808\+\_\+enc\+\_\+group\+\_\+callref (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const struct \textbf{ gsm0808\+\_\+group\+\_\+callref} $\ast$}]{gc }\end{DoxyParamCaption})}



Encode Group Call Reference IE (3GPP TS 48.\+008 3.\+2.\+2.\+55). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em msg} & Message Buffer to which IE is to be appended \\
\hline
\mbox{\texttt{ in}}  & {\em gc} & Group Call Reference to be encoded \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes appended to {\itshape msg} 
\end{DoxyReturn}


References \textbf{ GSM0808\+\_\+\+IE\+\_\+\+GROUP\+\_\+\+CALL\+\_\+\+REFERENCE}, \textbf{ msg}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+put\+\_\+u8()}, and \textbf{ OSMO\+\_\+\+ASSERT}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+req()}, and \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+setup()}.

\mbox{\label{group__gsm0808_gafe2d7390b567b5ff03f4fd88d44b0d5f}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_enc\_kc128@{gsm0808\_enc\_kc128}}
\index{gsm0808\_enc\_kc128@{gsm0808\_enc\_kc128}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_enc\_kc128()}
{\footnotesize\ttfamily int gsm0808\+\_\+enc\+\_\+kc128 (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const uint8\+\_\+t $\ast$}]{kc128 }\end{DoxyParamCaption})}



Encode TS 48.\+008 Kc128 IE. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em msg} & Message Buffer to which IE is to be appended. \\
\hline
\mbox{\texttt{ in}}  & {\em kc128} & Pointer to 16 bytes of Kc128 key data. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes appended to msg 
\end{DoxyReturn}


References \textbf{ GSM0808\+\_\+\+IE\+\_\+\+KC\+\_\+128}, \textbf{ msg}, \textbf{ msgb\+\_\+tv\+\_\+fixed\+\_\+put()}, and \textbf{ start}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+cipher2()}, and \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+request()}.

\mbox{\label{group__gsm0808_ga66e64c867557155e7b898f0806e5fd07}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_enc\_lcls@{gsm0808\_enc\_lcls}}
\index{gsm0808\_enc\_lcls@{gsm0808\_enc\_lcls}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_enc\_lcls()}
{\footnotesize\ttfamily uint8\+\_\+t gsm0808\+\_\+enc\+\_\+lcls (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const struct \textbf{ osmo\+\_\+lcls} $\ast$}]{lcls }\end{DoxyParamCaption})}



Add LCLS parameters to a given msgb, 3GPP TS 48.\+008 §3.2.\+2.\+115 -\/ 3.\+2.\+2.\+120. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em msg} & Message Buffer for appending IE \\
\hline
\mbox{\texttt{ in}}  & {\em lcls} & LCLS-\/related data \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes added to {\itshape msg} or 0 on error 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+lcls\+::config}, \textbf{ osmo\+\_\+lcls\+::control}, \textbf{ osmo\+\_\+lcls\+::corr\+\_\+needed}, \textbf{ osmo\+\_\+lcls\+::gcr}, \textbf{ osmo\+\_\+lcls\+::gcr\+\_\+available}, \textbf{ gsm0808\+\_\+enc\+\_\+gcr()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+LCLS\+\_\+\+CONFIG}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+LCLS\+\_\+\+CONN\+\_\+\+STATUS\+\_\+\+CTRL}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+LCLS\+\_\+\+CORR\+\_\+\+NOT\+\_\+\+NEEDED}, \textbf{ GSM0808\+\_\+\+LCLS\+\_\+\+CFG\+\_\+\+NA}, \textbf{ GSM0808\+\_\+\+LCLS\+\_\+\+CSC\+\_\+\+NA}, \textbf{ msg}, \textbf{ msgb\+\_\+tv\+\_\+put()}, and \textbf{ msgb\+\_\+v\+\_\+put()}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+ass2()}.

\mbox{\label{group__gsm0808_ga6454f0098a20818629fd7836ab9fa0b0}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_enc\_lcs\_cause@{gsm0808\_enc\_lcs\_cause}}
\index{gsm0808\_enc\_lcs\_cause@{gsm0808\_enc\_lcs\_cause}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_enc\_lcs\_cause()}
{\footnotesize\ttfamily int gsm0808\+\_\+enc\+\_\+lcs\+\_\+cause (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const struct \textbf{ lcs\+\_\+cause\+\_\+ie} $\ast$}]{lcs\+\_\+cause }\end{DoxyParamCaption})}



References \textbf{ GSM0808\+\_\+\+IE\+\_\+\+LCS\+\_\+\+CAUSE}, \textbf{ l}, \textbf{ msg}, \textbf{ msgb\+\_\+tl\+\_\+put()}, and \textbf{ osmo\+\_\+lcs\+\_\+cause\+\_\+enc()}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+perform\+\_\+location\+\_\+abort()}.

\mbox{\label{group__gsm0808_ga9539e07313cc2d737b8a9cc6485050c3}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_enc\_msisdn@{gsm0808\_enc\_msisdn}}
\index{gsm0808\_enc\_msisdn@{gsm0808\_enc\_msisdn}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_enc\_msisdn()}
{\footnotesize\ttfamily uint8\+\_\+t gsm0808\+\_\+enc\+\_\+msisdn (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const char $\ast$}]{msisdn }\end{DoxyParamCaption})}



Encode MSISDN IE (3GPP TS 48.\+008 3.\+2.\+2.\+101). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em msg} & Message Buffer to which IE is to be appended \\
\hline
\mbox{\texttt{ in}}  & {\em msisdn} & MSISDN to be encoded \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes appended to {\itshape msg} 
\end{DoxyReturn}


References \textbf{ GSM0808\+\_\+\+IE\+\_\+\+MSISDN}, \textbf{ gsm48\+\_\+encode\+\_\+bcd\+\_\+number()}, \textbf{ msg}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+put\+\_\+u8()}, and \textbf{ OSMO\+\_\+\+ASSERT}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+notification\+\_\+data()}.

\mbox{\label{group__gsm0808_ga7fa4c18cb6f5da65effabf801f471db7}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_enc\_priority@{gsm0808\_enc\_priority}}
\index{gsm0808\_enc\_priority@{gsm0808\_enc\_priority}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_enc\_priority()}
{\footnotesize\ttfamily uint8\+\_\+t gsm0808\+\_\+enc\+\_\+priority (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const struct \textbf{ gsm0808\+\_\+priority} $\ast$}]{pri }\end{DoxyParamCaption})}



Encode Priority IE (3GPP TS 48.\+008 3.\+2.\+2.\+18). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em msg} & Message Buffer to which IE is to be appended \\
\hline
\mbox{\texttt{ in}}  & {\em pri} & Priority to be encoded \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes appended to {\itshape msg} 
\end{DoxyReturn}


References \textbf{ GSM0808\+\_\+\+IE\+\_\+\+PRIORITY}, \textbf{ msg}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+put\+\_\+u8()}, and \textbf{ OSMO\+\_\+\+ASSERT}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+req()}, and \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+setup()}.

\mbox{\label{group__gsm0808_gac685bff6eeaa725f44dafb3a344d7da8}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_enc\_speech\_codec@{gsm0808\_enc\_speech\_codec}}
\index{gsm0808\_enc\_speech\_codec@{gsm0808\_enc\_speech\_codec}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_enc\_speech\_codec()}
{\footnotesize\ttfamily uint8\+\_\+t gsm0808\+\_\+enc\+\_\+speech\+\_\+codec (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec} $\ast$}]{sc }\end{DoxyParamCaption})}



Deprecated\+: \doxyref{gsm0808\+\_\+enc\+\_\+speech\+\_\+codec2()}{p.}{group__gsm0808_ga21f5330fae0c3b4da8db2ba47adfe665} wrapper for backwards compatibility. 

Mimics the old behavior\+: crash on missing and/or invalid input. 

References \textbf{ gsm0808\+\_\+enc\+\_\+speech\+\_\+codec2()}, \textbf{ msg}, and \textbf{ OSMO\+\_\+\+ASSERT}.

\mbox{\label{group__gsm0808_ga21f5330fae0c3b4da8db2ba47adfe665}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_enc\_speech\_codec2@{gsm0808\_enc\_speech\_codec2}}
\index{gsm0808\_enc\_speech\_codec2@{gsm0808\_enc\_speech\_codec2}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_enc\_speech\_codec2()}
{\footnotesize\ttfamily int gsm0808\+\_\+enc\+\_\+speech\+\_\+codec2 (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec} $\ast$}]{sc }\end{DoxyParamCaption})}



Encode TS 08.\+08 Speech Codec IE. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em msg} & Message Buffer to which IE will be appended \\
\hline
\mbox{\texttt{ in}}  & {\em sc} & Speech Codec to be encoded into IE \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes appended to {\itshape msg}; negative on error 
\end{DoxyReturn}
See also 3GPP TS 48.\+008 3.\+2.\+2.\+103 Speech Codec List

References \textbf{ enc\+\_\+speech\+\_\+codec()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+SPEECH\+\_\+\+CODEC}, \textbf{ msg}, \textbf{ msgb\+\_\+put()}, and \textbf{ msgb\+\_\+put\+\_\+u8()}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+ass\+\_\+compl2()}, \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+complete()}, \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+performed()}, \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+request\+\_\+ack2()}, \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+res()}, and \textbf{ gsm0808\+\_\+enc\+\_\+speech\+\_\+codec()}.

\mbox{\label{group__gsm0808_gac7612198fb4aeb801775def580709641}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_enc\_speech\_codec\_list@{gsm0808\_enc\_speech\_codec\_list}}
\index{gsm0808\_enc\_speech\_codec\_list@{gsm0808\_enc\_speech\_codec\_list}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_enc\_speech\_codec\_list()}
{\footnotesize\ttfamily uint8\+\_\+t gsm0808\+\_\+enc\+\_\+speech\+\_\+codec\+\_\+list (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list} $\ast$}]{scl }\end{DoxyParamCaption})}



Deprecated\+: \doxyref{gsm0808\+\_\+enc\+\_\+speech\+\_\+codec\+\_\+list2()}{p.}{group__gsm0808_ga812216127985fe502c8e5d5e32b02709} wrapper for backwards compatibility. 

Mimics the old behavior\+: crash on missing and/or invalid input. 

References \textbf{ gsm0808\+\_\+enc\+\_\+speech\+\_\+codec\+\_\+list2()}, \textbf{ msg}, and \textbf{ OSMO\+\_\+\+ASSERT}.

\mbox{\label{group__gsm0808_ga812216127985fe502c8e5d5e32b02709}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_enc\_speech\_codec\_list2@{gsm0808\_enc\_speech\_codec\_list2}}
\index{gsm0808\_enc\_speech\_codec\_list2@{gsm0808\_enc\_speech\_codec\_list2}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_enc\_speech\_codec\_list2()}
{\footnotesize\ttfamily int gsm0808\+\_\+enc\+\_\+speech\+\_\+codec\+\_\+list2 (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const struct \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list} $\ast$}]{scl }\end{DoxyParamCaption})}



Encode TS 08.\+08 Speech Codec list. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em msg} & Message Buffer to which IE is to be appended \\
\hline
\mbox{\texttt{ in}}  & {\em scl} & Speech Codec List to be encoded into IE \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes added to {\itshape msg}; negative on error 
\end{DoxyReturn}
See also 3GPP TS 48.\+008 3.\+2.\+2.\+103 Speech Codec List

References \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list\+::codec}, \textbf{ enc\+\_\+speech\+\_\+codec()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+SPEECH\+\_\+\+CODEC\+\_\+\+LIST}, \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+list\+::len}, \textbf{ msg}, \textbf{ msgb\+\_\+put()}, and \textbf{ msgb\+\_\+put\+\_\+u8()}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+ass2()}, \textbf{ gsm0808\+\_\+create\+\_\+ass\+\_\+compl2()}, \textbf{ gsm0808\+\_\+create\+\_\+ass\+\_\+fail()}, \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+complete()}, \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+failure()}, \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+request()}, \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+request\+\_\+ack2()}, \textbf{ gsm0808\+\_\+create\+\_\+layer3\+\_\+2()}, \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+fail()}, \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+assign\+\_\+req()}, and \textbf{ gsm0808\+\_\+enc\+\_\+speech\+\_\+codec\+\_\+list()}.

\mbox{\label{group__gsm0808_gacc48e4d88d69d46ca7f335e027de01a1}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_enc\_talker\_identity@{gsm0808\_enc\_talker\_identity}}
\index{gsm0808\_enc\_talker\_identity@{gsm0808\_enc\_talker\_identity}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_enc\_talker\_identity()}
{\footnotesize\ttfamily uint8\+\_\+t gsm0808\+\_\+enc\+\_\+talker\+\_\+identity (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const struct \textbf{ gsm0808\+\_\+talker\+\_\+identity} $\ast$}]{ti }\end{DoxyParamCaption})}



Encode Talker Identity IE (3GPP TS 48.\+008 3.\+2.\+2.\+91). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em msg} & Message Buffer to which IE is to be appended \\
\hline
\mbox{\texttt{ in}}  & {\em ti} & Talker Identity to be encoded \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes appended to {\itshape msg} 
\end{DoxyReturn}


References \textbf{ GSM0808\+\_\+\+IE\+\_\+\+TALKER\+\_\+\+IDENTITY}, \textbf{ gsm0808\+\_\+talker\+\_\+identity\+::id\+\_\+bits}, \textbf{ msg}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+put\+\_\+u8()}, \textbf{ OSMO\+\_\+\+ASSERT}, and \textbf{ gsm0808\+\_\+talker\+\_\+identity\+::talker\+\_\+id}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+uplink\+\_\+reject\+\_\+cmd()}, \textbf{ gsm0808\+\_\+create\+\_\+uplink\+\_\+request\+\_\+ack()}, \textbf{ gsm0808\+\_\+create\+\_\+uplink\+\_\+request\+\_\+cnf()}, \textbf{ gsm0808\+\_\+create\+\_\+uplink\+\_\+seized\+\_\+cmd()}, and \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+additional\+\_\+info()}.

\mbox{\label{group__gsm0808_gac8b19b05b28f839bdd95820e42da7320}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_enc\_vgcs\_feature\_flags@{gsm0808\_enc\_vgcs\_feature\_flags}}
\index{gsm0808\_enc\_vgcs\_feature\_flags@{gsm0808\_enc\_vgcs\_feature\_flags}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_enc\_vgcs\_feature\_flags()}
{\footnotesize\ttfamily uint8\+\_\+t gsm0808\+\_\+enc\+\_\+vgcs\+\_\+feature\+\_\+flags (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const struct \textbf{ gsm0808\+\_\+vgcs\+\_\+feature\+\_\+flags} $\ast$}]{ff }\end{DoxyParamCaption})}



Encode VGCS Feature Flags IE (3GPP TS 48.\+008 3.\+2.\+2.\+88). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em msg} & Message Buffer to which IE is to be appended \\
\hline
\mbox{\texttt{ in}}  & {\em ff} & VGCS Feature Flags to be encoded \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of bytes appended to {\itshape msg} 
\end{DoxyReturn}


References \textbf{ GSM0808\+\_\+\+IE\+\_\+\+VGCS\+\_\+\+FEATURE\+\_\+\+FLAGS}, \textbf{ msg}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+put\+\_\+u8()}, and \textbf{ OSMO\+\_\+\+ASSERT}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+setup()}, and \textbf{ gsm0808\+\_\+create\+\_\+vgcs\+\_\+vbs\+\_\+setup\+\_\+ack()}.

\mbox{\label{group__gsm0808_ga9dd6db59112ef180d648b0b26cd04bb0}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_get\_cause@{gsm0808\_get\_cause}}
\index{gsm0808\_get\_cause@{gsm0808\_get\_cause}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_get\_cause()}
{\footnotesize\ttfamily enum \textbf{ gsm0808\+\_\+cause} gsm0808\+\_\+get\+\_\+cause (\begin{DoxyParamCaption}\item[{const struct \textbf{ tlv\+\_\+parsed} $\ast$}]{tp }\end{DoxyParamCaption})}



Parse Cause TLV 3GPP TS 08.\+08 §3.2.\+2.\+5. 

\begin{DoxyReturn}{Returns}
Cause value 
\end{DoxyReturn}


References \textbf{ gsm0808\+\_\+cause\+\_\+ext()}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+CAUSE}, \textbf{ TLVP\+\_\+\+LEN}, and \textbf{ TLVP\+\_\+\+VAL\+\_\+\+MINLEN}.



Referenced by \textbf{ gsm0808\+\_\+get\+\_\+cipher\+\_\+reject\+\_\+cause()}, and \textbf{ osmo\+\_\+bssmap\+\_\+le\+\_\+dec\+\_\+reset()}.

\mbox{\label{group__gsm0808_ga2e0496b415520be68947434d49dc488c}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_get\_cipher\_reject\_cause@{gsm0808\_get\_cipher\_reject\_cause}}
\index{gsm0808\_get\_cipher\_reject\_cause@{gsm0808\_get\_cipher\_reject\_cause}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_get\_cipher\_reject\_cause()}
{\footnotesize\ttfamily int gsm0808\+\_\+get\+\_\+cipher\+\_\+reject\+\_\+cause (\begin{DoxyParamCaption}\item[{const struct \textbf{ tlv\+\_\+parsed} $\ast$}]{tp }\end{DoxyParamCaption})}



References \textbf{ gsm0808\+\_\+get\+\_\+cause()}.

\mbox{\label{group__gsm0808_ga4102154df92692b3b81ac4bae88edf6a}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_lcls\_config\_name@{gsm0808\_lcls\_config\_name}}
\index{gsm0808\_lcls\_config\_name@{gsm0808\_lcls\_config\_name}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_lcls\_config\_name()}
{\footnotesize\ttfamily static const char $\ast$ gsm0808\+\_\+lcls\+\_\+config\+\_\+name (\begin{DoxyParamCaption}\item[{enum \textbf{ gsm0808\+\_\+lcls\+\_\+config}}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ get\+\_\+value\+\_\+string()}, and \textbf{ gsm0808\+\_\+lcls\+\_\+config\+\_\+names}.



Referenced by \textbf{ osmo\+\_\+lcls\+\_\+dump\+\_\+buf()}.

\mbox{\label{group__gsm0808_ga126ff493caf35de2e8b85671559c14e3}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_lcls\_control\_name@{gsm0808\_lcls\_control\_name}}
\index{gsm0808\_lcls\_control\_name@{gsm0808\_lcls\_control\_name}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_lcls\_control\_name()}
{\footnotesize\ttfamily static const char $\ast$ gsm0808\+\_\+lcls\+\_\+control\+\_\+name (\begin{DoxyParamCaption}\item[{enum \textbf{ gsm0808\+\_\+lcls\+\_\+control}}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ get\+\_\+value\+\_\+string()}, and \textbf{ gsm0808\+\_\+lcls\+\_\+control\+\_\+names}.



Referenced by \textbf{ osmo\+\_\+lcls\+\_\+dump\+\_\+buf()}.

\mbox{\label{group__gsm0808_ga0089078f7f6ffcd6bc5709e73b8c3366}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_lcls\_status\_name@{gsm0808\_lcls\_status\_name}}
\index{gsm0808\_lcls\_status\_name@{gsm0808\_lcls\_status\_name}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_lcls\_status\_name()}
{\footnotesize\ttfamily static const char $\ast$ gsm0808\+\_\+lcls\+\_\+status\+\_\+name (\begin{DoxyParamCaption}\item[{enum \textbf{ gsm0808\+\_\+lcls\+\_\+status}}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ get\+\_\+value\+\_\+string()}, and \textbf{ gsm0808\+\_\+lcls\+\_\+status\+\_\+names}.

\mbox{\label{group__gsm0808_ga1bef560e64e1790a03636a00d5feab07}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_msgb\_put\_cell\_id\_u@{gsm0808\_msgb\_put\_cell\_id\_u}}
\index{gsm0808\_msgb\_put\_cell\_id\_u@{gsm0808\_msgb\_put\_cell\_id\_u}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_msgb\_put\_cell\_id\_u()}
{\footnotesize\ttfamily void gsm0808\+\_\+msgb\+\_\+put\+\_\+cell\+\_\+id\+\_\+u (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{enum \textbf{ CELL\+\_\+\+IDENT}}]{id\+\_\+discr,  }\item[{const union \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u} $\ast$}]{u }\end{DoxyParamCaption})}



References \textbf{ CELL\+\_\+\+IDENT\+\_\+\+BSS}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+CI}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+LAC}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+LAC\+\_\+\+AND\+\_\+\+CI}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+LAI\+\_\+\+AND\+\_\+\+LAC}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+NO\+\_\+\+CELL}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+SAI}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+WHOLE\+\_\+\+GLOBAL}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+WHOLE\+\_\+\+GLOBAL\+\_\+\+PS}, \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id\+::cell\+\_\+identity}, \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id\+\_\+ps\+::cell\+\_\+identity}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::ci}, \textbf{ osmo\+\_\+lac\+\_\+and\+\_\+ci\+\_\+id\+::ci}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::global}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::global\+\_\+ps}, \textbf{ gsm48\+\_\+generate\+\_\+lai2()}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::lac}, \textbf{ osmo\+\_\+routing\+\_\+area\+\_\+id\+::lac}, \textbf{ osmo\+\_\+lac\+\_\+and\+\_\+ci\+\_\+id\+::lac}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::lac\+\_\+and\+\_\+ci}, \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id\+::lai}, \textbf{ osmo\+\_\+service\+\_\+area\+\_\+id\+::lai}, \textbf{ lai}, \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::lai\+\_\+and\+\_\+lac}, \textbf{ msg}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+put\+\_\+u16()}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ osmo\+\_\+routing\+\_\+area\+\_\+id\+::rac}, \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id\+\_\+ps\+::rai}, \textbf{ osmo\+\_\+service\+\_\+area\+\_\+id\+::sac}, and \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+u\+::sai}.



Referenced by \textbf{ gsm0808\+\_\+enc\+\_\+cell\+\_\+id\+\_\+list2()}, \textbf{ msgb\+\_\+put\+\_\+cbsp\+\_\+cell\+\_\+list()}, \textbf{ msgb\+\_\+put\+\_\+cbsp\+\_\+fail\+\_\+list()}, \textbf{ msgb\+\_\+put\+\_\+cbsp\+\_\+loading\+\_\+list()}, and \textbf{ msgb\+\_\+put\+\_\+cbsp\+\_\+num\+\_\+compl\+\_\+list()}.

\mbox{\label{group__gsm0808_gaa8efa156fbf2a4fd9cafc961c6297f1f}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_permitted\_speech@{gsm0808\_permitted\_speech}}
\index{gsm0808\_permitted\_speech@{gsm0808\_permitted\_speech}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_permitted\_speech()}
{\footnotesize\ttfamily static enum \textbf{ gsm0808\+\_\+permitted\+\_\+speech} \textbf{ gsm0808\+\_\+permitted\+\_\+speech} (\begin{DoxyParamCaption}\item[{enum \textbf{ gsm\+\_\+chan\+\_\+t}}]{type,  }\item[{enum \textbf{ gsm48\+\_\+chan\+\_\+mode}}]{mode }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Return 3GPP TS 48.\+008 3.\+2.\+2.\+51 Speech Version aka permitted speech version indication in 3.\+2.\+2.\+11 Channel Type. 



References \textbf{ GSM0808\+\_\+\+PERM\+\_\+\+FR1}, \textbf{ GSM0808\+\_\+\+PERM\+\_\+\+FR2}, \textbf{ GSM0808\+\_\+\+PERM\+\_\+\+FR3}, \textbf{ GSM0808\+\_\+\+PERM\+\_\+\+FR4}, \textbf{ GSM0808\+\_\+\+PERM\+\_\+\+FR5}, \textbf{ GSM0808\+\_\+\+PERM\+\_\+\+HR1}, \textbf{ GSM0808\+\_\+\+PERM\+\_\+\+HR2}, \textbf{ GSM0808\+\_\+\+PERM\+\_\+\+HR3}, \textbf{ GSM0808\+\_\+\+PERM\+\_\+\+HR4}, \textbf{ GSM0808\+\_\+\+PERM\+\_\+\+HR6}, \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+SPEECH\+\_\+\+AMR}, \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+SPEECH\+\_\+\+EFR}, \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+SPEECH\+\_\+\+V1}, \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+SPEECH\+\_\+\+V4}, \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+SPEECH\+\_\+\+V5}, \textbf{ GSM48\+\_\+\+CMODE\+\_\+\+SPEECH\+\_\+\+V6}, \textbf{ GSM\+\_\+\+LCHAN\+\_\+\+TCH\+\_\+F}, \textbf{ GSM\+\_\+\+LCHAN\+\_\+\+TCH\+\_\+H}, \textbf{ mode}, \textbf{ MODE\+\_\+\+TYPE}, and \textbf{ type}.

\mbox{\label{group__gsm0808_gabd957f10aa6cab9c6f398083ab535367}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_prepend\_dtap\_header@{gsm0808\_prepend\_dtap\_header}}
\index{gsm0808\_prepend\_dtap\_header@{gsm0808\_prepend\_dtap\_header}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_prepend\_dtap\_header()}
{\footnotesize\ttfamily void gsm0808\+\_\+prepend\+\_\+dtap\+\_\+header (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{uint8\+\_\+t}]{link\+\_\+id }\end{DoxyParamCaption})}



Prepend a DTAP header to given Message Buffer. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em msgb} & Message Buffer \\
\hline
\mbox{\texttt{ in}}  & {\em link\+\_\+id} & Link Identifier \\
\hline
\end{DoxyParams}


References \textbf{ BSSAP\+\_\+\+MSG\+\_\+\+DTAP}, \textbf{ link\+\_\+id}, \textbf{ msg}, and \textbf{ msgb\+\_\+push()}.

\mbox{\label{group__gsm0808_ga238963166e1509e5d3084c49581da23a}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_sc\_cfg\_from\_gsm48\_mr\_cfg@{gsm0808\_sc\_cfg\_from\_gsm48\_mr\_cfg}}
\index{gsm0808\_sc\_cfg\_from\_gsm48\_mr\_cfg@{gsm0808\_sc\_cfg\_from\_gsm48\_mr\_cfg}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_sc\_cfg\_from\_gsm48\_mr\_cfg()}
{\footnotesize\ttfamily uint16\+\_\+t gsm0808\+\_\+sc\+\_\+cfg\+\_\+from\+\_\+gsm48\+\_\+mr\+\_\+cfg (\begin{DoxyParamCaption}\item[{const struct \textbf{ gsm48\+\_\+multi\+\_\+rate\+\_\+conf} $\ast$}]{cfg,  }\item[{bool}]{fr }\end{DoxyParamCaption})}



Determine a set of AMR speech codec configuration bits (S0-\/\+S15) from a given GSM 04.\+08 AMR configuration struct. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em cfg} & AMR configuration in GSM 04.\+08 format. \\
\hline
\mbox{\texttt{ in}}  & {\em hint} & if the resulting configuration shall be used with a FR or HR TCH. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
configuration bits (S0-\/\+S15) 
\end{DoxyReturn}


References \textbf{ GSM0808\+\_\+\+SC\+\_\+\+CFG\+\_\+\+DEFAULT\+\_\+\+AMR\+\_\+10\+\_\+2}, \textbf{ GSM0808\+\_\+\+SC\+\_\+\+CFG\+\_\+\+DEFAULT\+\_\+\+AMR\+\_\+12\+\_\+2}, \textbf{ GSM0808\+\_\+\+SC\+\_\+\+CFG\+\_\+\+DEFAULT\+\_\+\+AMR\+\_\+4\+\_\+75}, \textbf{ GSM0808\+\_\+\+SC\+\_\+\+CFG\+\_\+\+DEFAULT\+\_\+\+AMR\+\_\+5\+\_\+15}, \textbf{ GSM0808\+\_\+\+SC\+\_\+\+CFG\+\_\+\+DEFAULT\+\_\+\+AMR\+\_\+5\+\_\+90}, \textbf{ GSM0808\+\_\+\+SC\+\_\+\+CFG\+\_\+\+DEFAULT\+\_\+\+AMR\+\_\+6\+\_\+70}, \textbf{ GSM0808\+\_\+\+SC\+\_\+\+CFG\+\_\+\+DEFAULT\+\_\+\+AMR\+\_\+7\+\_\+40}, \textbf{ GSM0808\+\_\+\+SC\+\_\+\+CFG\+\_\+\+DEFAULT\+\_\+\+AMR\+\_\+7\+\_\+95}, \textbf{ GSM0808\+\_\+\+SC\+\_\+\+CFG\+\_\+\+DEFAULT\+\_\+\+FR\+\_\+\+AMR}, and \textbf{ GSM0808\+\_\+\+SC\+\_\+\+CFG\+\_\+\+DEFAULT\+\_\+\+HR\+\_\+\+AMR}.

\mbox{\label{group__gsm0808_gac4e0b3347fd35008ef44be2256d30183}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_speech\_codec\_from\_chan\_type@{gsm0808\_speech\_codec\_from\_chan\_type}}
\index{gsm0808\_speech\_codec\_from\_chan\_type@{gsm0808\_speech\_codec\_from\_chan\_type}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_speech\_codec\_from\_chan\_type()}
{\footnotesize\ttfamily int gsm0808\+\_\+speech\+\_\+codec\+\_\+from\+\_\+chan\+\_\+type (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm0808\+\_\+speech\+\_\+codec} $\ast$}]{sc,  }\item[{uint8\+\_\+t}]{perm\+\_\+spch }\end{DoxyParamCaption})}



Extrapolate a speech codec field from a given permitted speech parameter (channel type). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em sc} & Caller provided memory to store the resulting speech codec \\
\hline
\mbox{\texttt{ in}}  & {\em perm\+\_\+spch} & value that is used to derive the speech codec info (see also\+: enum gsm0808\+\_\+speech\+\_\+codec\+\_\+type in gsm0808\+\_\+utils.\+h) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
zero when successful; negative on error 
\end{DoxyReturn}


References \textbf{ gsm0808\+\_\+speech\+\_\+codec\+::cfg}, \textbf{ gsm0808\+\_\+speech\+\_\+codec\+::fi}, \textbf{ gsm0808\+\_\+chan\+\_\+type\+\_\+to\+\_\+speech\+\_\+codec()}, \textbf{ GSM0808\+\_\+\+SC\+\_\+\+CFG\+\_\+\+DEFAULT\+\_\+\+FR\+\_\+\+AMR}, \textbf{ GSM0808\+\_\+\+SC\+\_\+\+CFG\+\_\+\+DEFAULT\+\_\+\+FR\+\_\+\+AMR\+\_\+\+WB}, \textbf{ GSM0808\+\_\+\+SC\+\_\+\+CFG\+\_\+\+DEFAULT\+\_\+\+HR\+\_\+\+AMR}, \textbf{ GSM0808\+\_\+\+SC\+\_\+\+CFG\+\_\+\+DEFAULT\+\_\+\+OFR\+\_\+\+AMR\+\_\+\+WB}, \textbf{ GSM0808\+\_\+\+SC\+\_\+\+CFG\+\_\+\+DEFAULT\+\_\+\+OHR\+\_\+\+AMR}, \textbf{ GSM0808\+\_\+\+SC\+\_\+\+CFG\+\_\+\+DEFAULT\+\_\+\+OHR\+\_\+\+AMR\+\_\+\+WB}, \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+FR3}, \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+FR4}, \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+FR5}, \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+HR3}, \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+HR4}, \textbf{ GSM0808\+\_\+\+SCT\+\_\+\+HR6}, and \textbf{ gsm0808\+\_\+speech\+\_\+codec\+::type}.

\mbox{\label{group__gsm0808_ga39c7155fede05a1df08bac9506debecf}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm48\_mr\_cfg\_from\_gsm0808\_sc\_cfg@{gsm48\_mr\_cfg\_from\_gsm0808\_sc\_cfg}}
\index{gsm48\_mr\_cfg\_from\_gsm0808\_sc\_cfg@{gsm48\_mr\_cfg\_from\_gsm0808\_sc\_cfg}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm48\_mr\_cfg\_from\_gsm0808\_sc\_cfg()}
{\footnotesize\ttfamily int gsm48\+\_\+mr\+\_\+cfg\+\_\+from\+\_\+gsm0808\+\_\+sc\+\_\+cfg (\begin{DoxyParamCaption}\item[{struct \textbf{ gsm48\+\_\+multi\+\_\+rate\+\_\+conf} $\ast$}]{cfg,  }\item[{uint16\+\_\+t}]{s15\+\_\+s0 }\end{DoxyParamCaption})}



Determine a GSM 04.\+08 AMR configuration struct from a set of speech codec configuration bits (S0-\/\+S15) 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em cfg} & AMR configuration in GSM 04.\+08 format. \\
\hline
\mbox{\texttt{ in}}  & {\em s15\+\_\+s0} & configuration bits (S15-\/\+S0, non-\/ambiguous). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
zero when successful; negative on error 
\end{DoxyReturn}


References \textbf{ GSM0808\+\_\+\+SC\+\_\+\+CFG\+\_\+\+AMR\+\_\+10\+\_\+2}, \textbf{ GSM0808\+\_\+\+SC\+\_\+\+CFG\+\_\+\+AMR\+\_\+12\+\_\+2}, \textbf{ GSM0808\+\_\+\+SC\+\_\+\+CFG\+\_\+\+AMR\+\_\+4\+\_\+75}, \textbf{ GSM0808\+\_\+\+SC\+\_\+\+CFG\+\_\+\+AMR\+\_\+4\+\_\+75\+\_\+5\+\_\+90\+\_\+7\+\_\+40\+\_\+12\+\_\+20}, \textbf{ GSM0808\+\_\+\+SC\+\_\+\+CFG\+\_\+\+AMR\+\_\+5\+\_\+90}, \textbf{ GSM0808\+\_\+\+SC\+\_\+\+CFG\+\_\+\+AMR\+\_\+6\+\_\+70}, \textbf{ GSM0808\+\_\+\+SC\+\_\+\+CFG\+\_\+\+AMR\+\_\+7\+\_\+40}, and \textbf{ GSM0808\+\_\+\+SC\+\_\+\+CFG\+\_\+\+AMR\+\_\+7\+\_\+95}.

\mbox{\label{group__gsm0808_gafdab8bcc4edb49450e1f6dfc96e99ff9}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!osmo\_gcr\_dump@{osmo\_gcr\_dump}}
\index{osmo\_gcr\_dump@{osmo\_gcr\_dump}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{osmo\_gcr\_dump()}
{\footnotesize\ttfamily char $\ast$ osmo\+\_\+gcr\+\_\+dump (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+lcls} $\ast$}]{lcls }\end{DoxyParamCaption})}



Dump GCR struct into static string buffer for printing. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em lcls} & pointer to the struct to print. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
string representation of GCR in static buffer or NULL on error. 
\end{DoxyReturn}


References \textbf{ dbuf}, and \textbf{ osmo\+\_\+gcr\+\_\+dump\+\_\+buf()}.

\mbox{\label{group__gsm0808_ga36de357e62608d9f531a911b8d42f8db}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!osmo\_gcr\_dump\_buf@{osmo\_gcr\_dump\_buf}}
\index{osmo\_gcr\_dump\_buf@{osmo\_gcr\_dump\_buf}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{osmo\_gcr\_dump\_buf()}
{\footnotesize\ttfamily char $\ast$ osmo\+\_\+gcr\+\_\+dump\+\_\+buf (\begin{DoxyParamCaption}\item[{char $\ast$}]{buf,  }\item[{size\+\_\+t}]{buf\+\_\+len,  }\item[{const struct \textbf{ osmo\+\_\+lcls} $\ast$}]{lcls }\end{DoxyParamCaption})}



Dump GCR struct into string for printing. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em buf} & caller-\/allocated output string buffer \\
\hline
\mbox{\texttt{ in}}  & {\em buf\+\_\+len} & size of buf in bytes \\
\hline
\mbox{\texttt{ in}}  & {\em lcls} & pointer to the struct to print. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
string representation of GCR or NULL on error. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+strbuf\+::buf}, \textbf{ osmo\+\_\+gcr\+\_\+parsed\+::cr}, \textbf{ dbuf}, \textbf{ osmo\+\_\+lcls\+::gcr}, \textbf{ osmo\+\_\+lcls\+::gcr\+\_\+available}, \textbf{ osmo\+\_\+gcr\+\_\+parsed\+::net}, \textbf{ osmo\+\_\+gcr\+\_\+parsed\+::net\+\_\+len}, \textbf{ osmo\+\_\+gcr\+\_\+parsed\+::node}, \textbf{ osmo\+\_\+hexdump\+\_\+nospc()}, and \textbf{ OSMO\+\_\+\+STRBUF\+\_\+\+PRINTF}.



Referenced by \textbf{ osmo\+\_\+gcr\+\_\+dump()}.

\mbox{\label{group__gsm0808_ga97771c0c282ebeaaf0775cdf1cee9cc3}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!osmo\_lcls\_dump@{osmo\_lcls\_dump}}
\index{osmo\_lcls\_dump@{osmo\_lcls\_dump}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{osmo\_lcls\_dump()}
{\footnotesize\ttfamily char $\ast$ osmo\+\_\+lcls\+\_\+dump (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+lcls} $\ast$}]{lcls }\end{DoxyParamCaption})}



Dump LCLS parameters (GCR excluded) into static string buffer for printing. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em lcls} & pointer to the struct to print. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
string representation of LCLS in static buffer or NULL on error. 
\end{DoxyReturn}


References \textbf{ dbuf}, and \textbf{ osmo\+\_\+lcls\+\_\+dump\+\_\+buf()}.

\mbox{\label{group__gsm0808_gadd5198b0a955568604501be9ddeb095f}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!osmo\_lcls\_dump\_buf@{osmo\_lcls\_dump\_buf}}
\index{osmo\_lcls\_dump\_buf@{osmo\_lcls\_dump\_buf}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{osmo\_lcls\_dump\_buf()}
{\footnotesize\ttfamily char $\ast$ osmo\+\_\+lcls\+\_\+dump\+\_\+buf (\begin{DoxyParamCaption}\item[{char $\ast$}]{buf,  }\item[{size\+\_\+t}]{buf\+\_\+len,  }\item[{const struct \textbf{ osmo\+\_\+lcls} $\ast$}]{lcls }\end{DoxyParamCaption})}



Dump LCLS parameters (GCR excluded) into string for printing. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em buf} & caller-\/allocated output string buffer \\
\hline
\mbox{\texttt{ in}}  & {\em buf\+\_\+len} & size of buf in bytes \\
\hline
\mbox{\texttt{ in}}  & {\em lcls} & pointer to the struct to print. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
string representation of LCLS or NULL on error. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+strbuf\+::buf}, \textbf{ osmo\+\_\+lcls\+::config}, \textbf{ osmo\+\_\+lcls\+::control}, \textbf{ osmo\+\_\+lcls\+::corr\+\_\+needed}, \textbf{ dbuf}, \textbf{ gsm0808\+\_\+lcls\+\_\+config\+\_\+name()}, \textbf{ gsm0808\+\_\+lcls\+\_\+control\+\_\+name()}, and \textbf{ OSMO\+\_\+\+STRBUF\+\_\+\+PRINTF}.



Referenced by \textbf{ osmo\+\_\+lcls\+\_\+dump()}, and \textbf{ osmo\+\_\+lcls\+\_\+dump\+\_\+c()}.

\mbox{\label{group__gsm0808_ga3fa89e7de132738bb4f410a461931dc3}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!osmo\_lcls\_dump\_c@{osmo\_lcls\_dump\_c}}
\index{osmo\_lcls\_dump\_c@{osmo\_lcls\_dump\_c}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{osmo\_lcls\_dump\_c()}
{\footnotesize\ttfamily char $\ast$ osmo\+\_\+lcls\+\_\+dump\+\_\+c (\begin{DoxyParamCaption}\item[{void $\ast$}]{ctx,  }\item[{const struct \textbf{ osmo\+\_\+lcls} $\ast$}]{lcls }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+strbuf\+::buf}, and \textbf{ osmo\+\_\+lcls\+\_\+dump\+\_\+buf()}.

\mbox{\label{group__gsm0808_ga0c5d4e1a1e30a2ce74aab2f7714e656f}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!put\_old\_bss\_to\_new\_bss\_information@{put\_old\_bss\_to\_new\_bss\_information}}
\index{put\_old\_bss\_to\_new\_bss\_information@{put\_old\_bss\_to\_new\_bss\_information}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{put\_old\_bss\_to\_new\_bss\_information()}
{\footnotesize\ttfamily static uint8\+\_\+t put\+\_\+old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+information (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const struct \textbf{ gsm0808\+\_\+old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info} $\ast$}]{i }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ gsm0808\+\_\+old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info\+::current\+\_\+channel\+\_\+type\+\_\+2}, \textbf{ gsm0808\+\_\+old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info\+::current\+\_\+channel\+\_\+type\+\_\+2\+\_\+present}, \textbf{ gsm0808\+\_\+old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info\+::extra\+\_\+information}, \textbf{ gsm0808\+\_\+old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info\+::extra\+\_\+information\+\_\+present}, \textbf{ gsm0808\+\_\+old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info\+::field}, \textbf{ GSM0808\+\_\+\+FE\+\_\+\+IE\+\_\+\+CURRENT\+\_\+\+CHANNEL\+\_\+\+TYPE\+\_\+2}, \textbf{ GSM0808\+\_\+\+FE\+\_\+\+IE\+\_\+\+EXTRA\+\_\+\+INFORMATION}, \textbf{ GSM0808\+\_\+\+FE\+\_\+\+IE\+\_\+\+LAST\+\_\+\+USED\+\_\+\+EUTRAN\+\_\+\+PLMN\+\_\+\+ID}, \textbf{ GSM0808\+\_\+\+IE\+\_\+\+OLD\+\_\+\+BSS\+\_\+\+TO\+\_\+\+NEW\+\_\+\+BSS\+\_\+\+INFORMATION}, \textbf{ gsm0808\+\_\+old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info\+::last\+\_\+eutran\+\_\+plmn\+\_\+id}, \textbf{ gsm0808\+\_\+old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info\+::last\+\_\+eutran\+\_\+plmn\+\_\+id\+\_\+present}, \textbf{ gsm0808\+\_\+old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info\+::lcs}, \textbf{ gsm0808\+\_\+old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info\+::mode}, \textbf{ msg}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+put\+\_\+u8()}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ osmo\+\_\+plmn\+\_\+to\+\_\+bcd()}, \textbf{ gsm0808\+\_\+old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info\+::prec}, and \textbf{ gsm0808\+\_\+old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info\+::ue\+\_\+prob}.



Referenced by \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+request()}, and \textbf{ gsm0808\+\_\+create\+\_\+handover\+\_\+required()}.



\doxysubsection{Variable Documentation}
\mbox{\label{group__gsm0808_ga00df7213639d8b54dbb889fdf1124ece}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!\_\_attribute\_\_@{\_\_attribute\_\_}}
\index{\_\_attribute\_\_@{\_\_attribute\_\_}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{\_\_attribute\_\_}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+lcls} \+\_\+\+\_\+attribute\+\_\+\+\_\+}

\mbox{\label{group__gsm0808_gaf7a7d6c75234318878642e512947c3c7}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!bss\_att\_tlvdef@{bss\_att\_tlvdef}}
\index{bss\_att\_tlvdef@{bss\_att\_tlvdef}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{bss\_att\_tlvdef}
{\footnotesize\ttfamily const struct \textbf{ tlv\+\_\+definition} bss\+\_\+att\+\_\+tlvdef\hspace{0.3cm}{\ttfamily [static]}}



Referenced by \textbf{ gsm0808\+\_\+att\+\_\+tlvdef()}.

\mbox{\label{group__gsm0808_gab6ef2861ef657001f5c197cf056bd421}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0406\_dlci\_sapi\_names@{gsm0406\_dlci\_sapi\_names}}
\index{gsm0406\_dlci\_sapi\_names@{gsm0406\_dlci\_sapi\_names}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0406\_dlci\_sapi\_names}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} gsm0406\+\_\+dlci\+\_\+sapi\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ DLCI\_SAPI\_RR\_MM\_CC, \textcolor{stringliteral}{"{}RR/MM/CC"{}} \},}
\DoxyCodeLine{        \{ DLCI\_SAPI\_SMS,   \textcolor{stringliteral}{"{}SMS"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ gsm0406\+\_\+dlci\+\_\+sapi\+\_\+name()}.

\mbox{\label{group__gsm0808_ga9ba76e2998975043c4aca31f03e245bc}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_amr\_mode\_names@{gsm0808\_amr\_mode\_names}}
\index{gsm0808\_amr\_mode\_names@{gsm0808\_amr\_mode\_names}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_amr\_mode\_names}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} gsm0808\+\_\+amr\+\_\+mode\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ GSM0808\_AMR\_MODE\_4\_75, \textcolor{stringliteral}{"{}4.75"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_AMR\_MODE\_5\_15, \textcolor{stringliteral}{"{}5.15"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_AMR\_MODE\_5\_90, \textcolor{stringliteral}{"{}5.90"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_AMR\_MODE\_6\_70, \textcolor{stringliteral}{"{}6.70"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_AMR\_MODE\_7\_40, \textcolor{stringliteral}{"{}7.40"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_AMR\_MODE\_7\_95, \textcolor{stringliteral}{"{}7.95"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_AMR\_MODE\_10\_2, \textcolor{stringliteral}{"{}10.2"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_AMR\_MODE\_12\_2, \textcolor{stringliteral}{"{}12.2"{}} \},}
\DoxyCodeLine{        \{\}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ gsm0808\+\_\+amr\+\_\+mode\+\_\+name()}.

\mbox{\label{group__gsm0808_gafaddb849a44618ddb84db4d1f3e59634}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_amr\_modes\_from\_cfg@{gsm0808\_amr\_modes\_from\_cfg}}
\index{gsm0808\_amr\_modes\_from\_cfg@{gsm0808\_amr\_modes\_from\_cfg}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_amr\_modes\_from\_cfg}
{\footnotesize\ttfamily const uint8\+\_\+t gsm0808\+\_\+amr\+\_\+modes\+\_\+from\+\_\+cfg[2][16]}

\mbox{\label{group__gsm0808_ga3957d3b6ca5f78d73d5bcfe43b4f814a}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_bssap\_names@{gsm0808\_bssap\_names}}
\index{gsm0808\_bssap\_names@{gsm0808\_bssap\_names}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_bssap\_names}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} gsm0808\+\_\+bssap\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ BSSAP\_MSG\_BSS\_MANAGEMENT,             \textcolor{stringliteral}{"{}MANAGEMENT"{}} \},}
\DoxyCodeLine{        \{ BSSAP\_MSG\_DTAP,                 \textcolor{stringliteral}{"{}DTAP"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ gsm0808\+\_\+bssap\+\_\+name()}.

\mbox{\label{group__gsm0808_gacc69231ed3f069f750d49c9ac256e973}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_cause\_class\_names@{gsm0808\_cause\_class\_names}}
\index{gsm0808\_cause\_class\_names@{gsm0808\_cause\_class\_names}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_cause\_class\_names}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} gsm0808\+\_\+cause\+\_\+class\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ GSM0808\_CAUSE\_CLASS\_NORM0,           \textcolor{stringliteral}{"{}Normal event"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_CAUSE\_CLASS\_NORM1,           \textcolor{stringliteral}{"{}Normal event"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_CAUSE\_CLASS\_RES\_UNAVAIL,       \textcolor{stringliteral}{"{}Resource unavailable"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_CAUSE\_CLASS\_SRV\_OPT\_NA, \textcolor{stringliteral}{"{}Service or option not available"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_CAUSE\_CLASS\_SRV\_OPT\_NIMPL,   \textcolor{stringliteral}{"{}Service or option not implemented"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_CAUSE\_CLASS\_INVAL,           \textcolor{stringliteral}{"{}Invalid message"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_CAUSE\_CLASS\_PERR,             \textcolor{stringliteral}{"{}Protocol error"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_CAUSE\_CLASS\_INTW,             \textcolor{stringliteral}{"{}Interworking"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ gsm0808\+\_\+cause\+\_\+class\+\_\+name()}.

\mbox{\label{group__gsm0808_ga4a96e0c05673bcb81f09e0e788c809cd}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_cause\_names@{gsm0808\_cause\_names}}
\index{gsm0808\_cause\_names@{gsm0808\_cause\_names}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_cause\_names}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} gsm0808\+\_\+cause\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}}



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

\mbox{\label{group__gsm0808_gac86ccd3add953723f8f961cc8884c3b0}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_cell\_id\_discr\_names@{gsm0808\_cell\_id\_discr\_names}}
\index{gsm0808\_cell\_id\_discr\_names@{gsm0808\_cell\_id\_discr\_names}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_cell\_id\_discr\_names}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} gsm0808\+\_\+cell\+\_\+id\+\_\+discr\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



\textbf{ value\+\_\+string}[] for enum CELL\+\_\+\+IDENT. 



Referenced by \textbf{ gsm0808\+\_\+cell\+\_\+id\+\_\+discr\+\_\+name()}.

\mbox{\label{group__gsm0808_ga9b6704b429b542796f6fca5136cad68d}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_chosen\_enc\_alg\_names@{gsm0808\_chosen\_enc\_alg\_names}}
\index{gsm0808\_chosen\_enc\_alg\_names@{gsm0808\_chosen\_enc\_alg\_names}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_chosen\_enc\_alg\_names}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} gsm0808\+\_\+chosen\+\_\+enc\+\_\+alg\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ GSM0808\_ALG\_ID\_A5\_0, \textcolor{stringliteral}{"{}A5/0"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_ALG\_ID\_A5\_1, \textcolor{stringliteral}{"{}A5/1"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_ALG\_ID\_A5\_2, \textcolor{stringliteral}{"{}A5/2"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_ALG\_ID\_A5\_3, \textcolor{stringliteral}{"{}A5/3"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_ALG\_ID\_A5\_4, \textcolor{stringliteral}{"{}A5/4"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_ALG\_ID\_A5\_5, \textcolor{stringliteral}{"{}A5/5"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_ALG\_ID\_A5\_6, \textcolor{stringliteral}{"{}A5/6"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_ALG\_ID\_A5\_7, \textcolor{stringliteral}{"{}A5/7"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{group__gsm0808_ga74c1dc89d2bfe4ef98592336ee203bec}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_lcls\_config\_names@{gsm0808\_lcls\_config\_names}}
\index{gsm0808\_lcls\_config\_names@{gsm0808\_lcls\_config\_names}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_lcls\_config\_names\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} gsm0808\+\_\+lcls\+\_\+config\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ gsm0808\+\_\+lcls\+\_\+config\+\_\+name()}.

\mbox{\label{group__gsm0808_ga74c1dc89d2bfe4ef98592336ee203bec}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_lcls\_config\_names@{gsm0808\_lcls\_config\_names}}
\index{gsm0808\_lcls\_config\_names@{gsm0808\_lcls\_config\_names}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_lcls\_config\_names\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} gsm0808\+\_\+lcls\+\_\+config\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ GSM0808\_LCLS\_CFG\_BOTH\_WAY, \textcolor{stringliteral}{"{}Connect both-\/way"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_LCLS\_CFG\_BOTH\_WAY\_AND\_BICAST\_UL,}
\DoxyCodeLine{          \textcolor{stringliteral}{"{}Connect both-\/way, bi-\/cast UL to CN"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_LCLS\_CFG\_BOTH\_WAY\_AND\_SEND\_DL,}
\DoxyCodeLine{          \textcolor{stringliteral}{"{}Connect both-\/way, send access DL from CN"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_LCLS\_CFG\_BOTH\_WAY\_AND\_SEND\_DL\_BLOCK\_LOCAL\_DL,}
\DoxyCodeLine{          \textcolor{stringliteral}{"{}Connect both-\/way, send access DL from CN, block local DL"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_LCLS\_CFG\_BOTH\_WAY\_AND\_BICAST\_UL\_SEND\_DL,}
\DoxyCodeLine{          \textcolor{stringliteral}{"{}Connect both-\/way, bi-\/cast UL to CN, send access DL from CN"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_LCLS\_CFG\_BOTH\_WAY\_AND\_BICAST\_UL\_SEND\_DL\_BLOCK\_LOCAL\_DL,}
\DoxyCodeLine{          \textcolor{stringliteral}{"{}Connect both-\/way, bi-\/cast UL to CN, send access DL from CN, block local DL"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_LCLS\_CFG\_NA, \textcolor{stringliteral}{"{}Not available"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ gsm0808\+\_\+lcls\+\_\+config\+\_\+name()}.

\mbox{\label{group__gsm0808_gac2e800caa838ac8b9d66c620c418fdd2}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_lcls\_control\_names@{gsm0808\_lcls\_control\_names}}
\index{gsm0808\_lcls\_control\_names@{gsm0808\_lcls\_control\_names}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_lcls\_control\_names\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} gsm0808\+\_\+lcls\+\_\+control\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ gsm0808\+\_\+lcls\+\_\+control\+\_\+name()}.

\mbox{\label{group__gsm0808_gac2e800caa838ac8b9d66c620c418fdd2}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_lcls\_control\_names@{gsm0808\_lcls\_control\_names}}
\index{gsm0808\_lcls\_control\_names@{gsm0808\_lcls\_control\_names}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_lcls\_control\_names\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} gsm0808\+\_\+lcls\+\_\+control\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ GSM0808\_LCLS\_CSC\_CONNECT,                             \textcolor{stringliteral}{"{}Connect"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_LCLS\_CSC\_DO\_NOT\_CONNECT,                       \textcolor{stringliteral}{"{}Do not connect"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_LCLS\_CSC\_RELEASE\_LCLS,                   \textcolor{stringliteral}{"{}Release LCLS"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_LCLS\_CSC\_BICAST\_UL\_AT\_HANDOVER,         \textcolor{stringliteral}{"{}Bi-\/cast UL at Handover"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_LCLS\_CSC\_BICAST\_UL\_AND\_RECV\_DL\_AT\_HANDOVER, \textcolor{stringliteral}{"{}Bi-\/cast UL and receive DL at Handover"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_LCLS\_CSC\_NA,                                       \textcolor{stringliteral}{"{}Not available"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ gsm0808\+\_\+lcls\+\_\+control\+\_\+name()}.

\mbox{\label{group__gsm0808_gaf43497e53ab673a3543bdf4b9ac3ed8d}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_lcls\_status\_names@{gsm0808\_lcls\_status\_names}}
\index{gsm0808\_lcls\_status\_names@{gsm0808\_lcls\_status\_names}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_lcls\_status\_names\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} gsm0808\+\_\+lcls\+\_\+status\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ gsm0808\+\_\+lcls\+\_\+status\+\_\+name()}.

\mbox{\label{group__gsm0808_gaf43497e53ab673a3543bdf4b9ac3ed8d}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_lcls\_status\_names@{gsm0808\_lcls\_status\_names}}
\index{gsm0808\_lcls\_status\_names@{gsm0808\_lcls\_status\_names}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_lcls\_status\_names\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} gsm0808\+\_\+lcls\+\_\+status\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ GSM0808\_LCLS\_STS\_NOT\_YET\_LS,               \textcolor{stringliteral}{"{}Call not yet locally switched"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_LCLS\_STS\_NOT\_POSSIBLE\_LS,     \textcolor{stringliteral}{"{}Call not possible to be locally switched"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_LCLS\_STS\_NO\_LONGER\_LS,   \textcolor{stringliteral}{"{}Call is no longer locally switched"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_LCLS\_STS\_REQ\_LCLS\_NOT\_SUPP, \textcolor{stringliteral}{"{}Requested LCLS configuration is not supported"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_LCLS\_STS\_LOCALLY\_SWITCHED,   \textcolor{stringliteral}{"{}Call is locally switched with requested LCLS config"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_LCLS\_STS\_NA,                       \textcolor{stringliteral}{"{}Not available"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ gsm0808\+\_\+lcls\+\_\+status\+\_\+name()}.

\mbox{\label{group__gsm0808_ga2f55a6defa23156d49594fa6624f7d0e}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_msgt\_names@{gsm0808\_msgt\_names}}
\index{gsm0808\_msgt\_names@{gsm0808\_msgt\_names}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_msgt\_names}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} gsm0808\+\_\+msgt\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [static]}}



Referenced by \textbf{ gsm0808\+\_\+bssmap\+\_\+name()}.

\mbox{\label{group__gsm0808_ga66acb22e5416b464aa6f42ddc7de0f1d}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_old\_bss\_to\_new\_bss\_info\_att\_tlvdef@{gsm0808\_old\_bss\_to\_new\_bss\_info\_att\_tlvdef}}
\index{gsm0808\_old\_bss\_to\_new\_bss\_info\_att\_tlvdef@{gsm0808\_old\_bss\_to\_new\_bss\_info\_att\_tlvdef}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_old\_bss\_to\_new\_bss\_info\_att\_tlvdef\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily const struct \textbf{ tlv\+\_\+definition} gsm0808\+\_\+old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info\+\_\+att\+\_\+tlvdef\hspace{0.3cm}{\ttfamily [extern]}}

\mbox{\label{group__gsm0808_ga66acb22e5416b464aa6f42ddc7de0f1d}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_old\_bss\_to\_new\_bss\_info\_att\_tlvdef@{gsm0808\_old\_bss\_to\_new\_bss\_info\_att\_tlvdef}}
\index{gsm0808\_old\_bss\_to\_new\_bss\_info\_att\_tlvdef@{gsm0808\_old\_bss\_to\_new\_bss\_info\_att\_tlvdef}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_old\_bss\_to\_new\_bss\_info\_att\_tlvdef\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily const struct \textbf{ tlv\+\_\+definition} gsm0808\+\_\+old\+\_\+bss\+\_\+to\+\_\+new\+\_\+bss\+\_\+info\+\_\+att\+\_\+tlvdef}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        .def = \{}
\DoxyCodeLine{                [GSM0808\_FE\_IE\_EXTRA\_INFORMATION]                        = \{ TLV\_TYPE\_TLV \},}
\DoxyCodeLine{                [GSM0808\_FE\_IE\_CURRENT\_CHANNEL\_TYPE\_2]                      = \{ TLV\_TYPE\_TLV \},}
\DoxyCodeLine{                [GSM0808\_FE\_IE\_TARGET\_CELL\_RADIO\_INFORMATION]                = \{ TLV\_TYPE\_TLV \},}
\DoxyCodeLine{                [GSM0808\_FE\_IE\_GPRS\_SUSPEND\_INFORMATION]          = \{ TLV\_TYPE\_TLV \},}
\DoxyCodeLine{                [GSM0808\_FE\_IE\_MULTIRATE\_CONFIGURATION\_INFORMATION]    = \{ TLV\_TYPE\_TLV \},}
\DoxyCodeLine{                [GSM0808\_FE\_IE\_DUAL\_TRANSFER\_MODE\_INFORMATION]              = \{ TLV\_TYPE\_TLV \},}
\DoxyCodeLine{                [GSM0808\_FE\_IE\_INTER\_RAT\_HANDOVER\_INFO]            = \{ TLV\_TYPE\_TLV \},}
\DoxyCodeLine{                [GSM0808\_FE\_IE\_CDMA2000\_CAPABILITY\_INFORMATION]    = \{ TLV\_TYPE\_TLV \},}
\DoxyCodeLine{                [GSM0808\_FE\_IE\_DOWNLINK\_CELL\_LOAD\_INFORMATION]              = \{ TLV\_TYPE\_TLV \},}
\DoxyCodeLine{                [GSM0808\_FE\_IE\_UPLINK\_CELL\_LOAD\_INFORMATION]          = \{ TLV\_TYPE\_TLV \},}
\DoxyCodeLine{                [GSM0808\_FE\_IE\_CELL\_LOAD\_INFORMATION\_GROUP]            = \{ TLV\_TYPE\_TLV \},}
\DoxyCodeLine{                [GSM0808\_FE\_IE\_CELL\_LOAD\_INFORMATION]                        = \{ TLV\_TYPE\_TLV \},}
\DoxyCodeLine{                [GSM0808\_FE\_IE\_PS\_INDICATION]                                = \{ TLV\_TYPE\_TLV \},}
\DoxyCodeLine{                [GSM0808\_FE\_IE\_DTM\_HANDOVER\_COMMAND\_INDICATION]    = \{ TLV\_TYPE\_TLV \},}
\DoxyCodeLine{                [GSM0808\_FE\_IE\_D\_RNTI]                                      = \{ TLV\_TYPE\_TLV \},}
\DoxyCodeLine{                [GSM0808\_FE\_IE\_IRAT\_MEASUREMENT\_CONFIGURATION]              = \{ TLV\_TYPE\_TLV \},}
\DoxyCodeLine{                [GSM0808\_FE\_IE\_SOURCE\_CELL\_ID]                              = \{ TLV\_TYPE\_TLV \},}
\DoxyCodeLine{                [GSM0808\_FE\_IE\_IRAT\_MEASUREMENT\_CONFIGURATION\_EXTENDED\_E\_ARFCNS] = \{ TLV\_TYPE\_TLV \},}
\DoxyCodeLine{                [GSM0808\_FE\_IE\_VGCS\_TALKER\_MODE]                  = \{ TLV\_TYPE\_TLV \},}
\DoxyCodeLine{                [GSM0808\_FE\_IE\_LAST\_USED\_EUTRAN\_PLMN\_ID]          = \{ TLV\_TYPE\_FIXED, 3 \},}
\DoxyCodeLine{        \},}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{group__gsm0808_ga2dd774fd4ef58bc6a8c15f0b1bd5a281}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_permitted\_speech\_names@{gsm0808\_permitted\_speech\_names}}
\index{gsm0808\_permitted\_speech\_names@{gsm0808\_permitted\_speech\_names}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_permitted\_speech\_names}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} gsm0808\+\_\+permitted\+\_\+speech\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ GSM0808\_PERM\_FR1, \textcolor{stringliteral}{"{}FR1"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_PERM\_FR2, \textcolor{stringliteral}{"{}FR2"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_PERM\_FR3, \textcolor{stringliteral}{"{}FR3"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_PERM\_FR4, \textcolor{stringliteral}{"{}FR4"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_PERM\_FR5, \textcolor{stringliteral}{"{}FR5"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_PERM\_HR1, \textcolor{stringliteral}{"{}HR1"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_PERM\_HR2, \textcolor{stringliteral}{"{}HR2"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_PERM\_HR3, \textcolor{stringliteral}{"{}HR3"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_PERM\_HR4, \textcolor{stringliteral}{"{}HR4"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_PERM\_HR6, \textcolor{stringliteral}{"{}HR6"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ gsm0808\+\_\+permitted\+\_\+speech\+\_\+name()}.

\mbox{\label{group__gsm0808_ga0c1af84e0adec22dcd31f4f88c64bad1}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!gsm0808\_speech\_codec\_type\_names@{gsm0808\_speech\_codec\_type\_names}}
\index{gsm0808\_speech\_codec\_type\_names@{gsm0808\_speech\_codec\_type\_names}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{gsm0808\_speech\_codec\_type\_names}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} gsm0808\+\_\+speech\+\_\+codec\+\_\+type\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ GSM0808\_SCT\_FR1, \textcolor{stringliteral}{"{}FR1"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_SCT\_FR2, \textcolor{stringliteral}{"{}FR2"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_SCT\_FR3, \textcolor{stringliteral}{"{}FR3"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_SCT\_FR4, \textcolor{stringliteral}{"{}FR4"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_SCT\_FR5, \textcolor{stringliteral}{"{}FR5"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_SCT\_HR1, \textcolor{stringliteral}{"{}HR1"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_SCT\_HR3, \textcolor{stringliteral}{"{}HR3"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_SCT\_HR4, \textcolor{stringliteral}{"{}HR4"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_SCT\_HR6, \textcolor{stringliteral}{"{}HR6"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_SCT\_EXT, \textcolor{stringliteral}{"{}Codec Extension"{}} \},}
\DoxyCodeLine{        \{ GSM0808\_SCT\_CSD, \textcolor{stringliteral}{"{}CSD"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ gsm0808\+\_\+speech\+\_\+codec\+\_\+type\+\_\+name()}.

\mbox{\label{group__gsm0808_ga727ba753efdd717fcade332c871ccd54}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!MNC@{MNC}}
\index{MNC@{MNC}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{MNC}
{\footnotesize\ttfamily void to not lose leading zeros in the MNC}

\mbox{\label{group__gsm0808_ga0de448e1f5f89c45ce138bd303440111}} 
\index{GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}!str\_buff@{str\_buff}}
\index{str\_buff@{str\_buff}!GSM 08.08 / 3GPP TS 48.008 A Interface@{GSM 08.08 / 3GPP TS 48.008 A Interface}}
\doxysubsubsection{str\_buff}
{\footnotesize\ttfamily \+\_\+\+\_\+thread char str\+\_\+buff[512]\hspace{0.3cm}{\ttfamily [static]}}



Char buffer to return strings from functions. 



Referenced by \textbf{ gsm0808\+\_\+diagnostics\+\_\+bit\+\_\+location\+\_\+str()}, and \textbf{ gsm0808\+\_\+diagnostics\+\_\+octet\+\_\+location\+\_\+str()}.

