\doxysection{src/gb/gprs\+\_\+bssgp\+\_\+rim.c File Reference}
\label{gprs__bssgp__rim_8c}\index{src/gb/gprs\_bssgp\_rim.c@{src/gb/gprs\_bssgp\_rim.c}}
{\ttfamily \#include $<$errno.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gprs/gprs\+\_\+bssgp.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gprs/gprs\+\_\+bssgp\+\_\+rim.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gsm/gsm0808\+\_\+utils.\+h$>$}\newline
{\ttfamily \#include \char`\"{}gprs\+\_\+bssgp\+\_\+internal.\+h\char`\"{}}\newline
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+x\+\_\+cont}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ TVLV\+\_\+\+HDR\+\_\+\+MAXLEN}~3
\item 
\#define \textbf{ TVLV\+\_\+\+HDR\+\_\+\+LEN}~2
\item 
\#define \textbf{ REP\+\_\+\+CELL\+\_\+\+ID\+\_\+\+LEN}~8
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \textbf{ bssgp\+\_\+parse\+\_\+rim\+\_\+ra} (struct \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info} $\ast$ri, const uint8\+\_\+t $\ast$buf, unsigned int \textbf{ len}, uint8\+\_\+t discr)
\begin{DoxyCompactList}\small\item\em Parse a RIM Routing address IE (3GPP TS 29.\+060, chapter 7.\+7.\+57 and 7.\+7.\+77). \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+parse\+\_\+rim\+\_\+ri} (struct \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info} $\ast$ri, const uint8\+\_\+t $\ast$buf, unsigned int \textbf{ len})
\begin{DoxyCompactList}\small\item\em Parse a RIM Routing information IE (3GPP TS 48.\+018, chapter 11.\+3.\+70). \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+create\+\_\+rim\+\_\+ri} (uint8\+\_\+t $\ast$buf, const struct \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info} $\ast$ri)
\begin{DoxyCompactList}\small\item\em Encode a RIM Routing information IE (3GPP TS 48.\+018, chapter 11.\+3.\+70). \end{DoxyCompactList}\item 
char $\ast$ \textbf{ bssgp\+\_\+rim\+\_\+ri\+\_\+name\+\_\+buf} (char $\ast$buf, size\+\_\+t buf\+\_\+len, const struct \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info} $\ast$ri)
\begin{DoxyCompactList}\small\item\em Encode a RIM Routing information into a human readable string. \end{DoxyCompactList}\item 
const char $\ast$ \textbf{ bssgp\+\_\+rim\+\_\+ri\+\_\+name} (const struct \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info} $\ast$ri)
\begin{DoxyCompactList}\small\item\em Encode a RIM Routing information into a human readable string. \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+req\+\_\+app\+\_\+cont\+\_\+nacc} (struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+req\+\_\+app\+\_\+cont\+\_\+nacc} $\ast$cont, const uint8\+\_\+t $\ast$buf, size\+\_\+t \textbf{ len})
\begin{DoxyCompactList}\small\item\em Decode a RAN Information Request Application Container for NACC (3GPP TS 48.\+018, section 11.\+3.\+63.\+1.\+1). \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+req\+\_\+app\+\_\+cont\+\_\+nacc} (uint8\+\_\+t $\ast$buf, size\+\_\+t \textbf{ len}, const struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+req\+\_\+app\+\_\+cont\+\_\+nacc} $\ast$cont)
\begin{DoxyCompactList}\small\item\em Encode a RAN Information Request Application Container for NACC (3GPP TS 48.\+018, section 11.\+3.\+63.\+1.\+1). \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+app\+\_\+cont\+\_\+nacc} (struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+cont\+\_\+nacc} $\ast$cont, const uint8\+\_\+t $\ast$buf, size\+\_\+t \textbf{ len})
\begin{DoxyCompactList}\small\item\em Decode a RAN Information Application Container (3GPP TS 48.\+018, section 11.\+3.\+63.\+2.\+1). \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+app\+\_\+cont\+\_\+nacc} (uint8\+\_\+t $\ast$buf, size\+\_\+t \textbf{ len}, const struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+cont\+\_\+nacc} $\ast$cont)
\begin{DoxyCompactList}\small\item\em Encode a RAN Information Application Container (3GPP TS 48.\+018, section 11.\+3.\+63.\+2.\+1). \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+dec\+\_\+app\+\_\+err\+\_\+cont\+\_\+nacc} (struct \textbf{ bssgp\+\_\+app\+\_\+err\+\_\+cont\+\_\+nacc} $\ast$cont, const uint8\+\_\+t $\ast$buf, size\+\_\+t \textbf{ len})
\begin{DoxyCompactList}\small\item\em Decode a Application Error Container for NACC (3GPP TS 48.\+018, section 11.\+3.\+64.\+1). \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+enc\+\_\+app\+\_\+err\+\_\+cont\+\_\+nacc} (uint8\+\_\+t $\ast$buf, size\+\_\+t \textbf{ len}, const struct \textbf{ bssgp\+\_\+app\+\_\+err\+\_\+cont\+\_\+nacc} $\ast$cont)
\begin{DoxyCompactList}\small\item\em Encode Application Error Container for NACC (3GPP TS 48.\+018, section 11.\+3.\+64.\+1). \end{DoxyCompactList}\item 
static int \textbf{ dec\+\_\+rim\+\_\+cont\+\_\+common} (struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+x\+\_\+cont} $\ast$cont, struct \textbf{ tlv\+\_\+parsed} $\ast$tp)
\item 
static uint8\+\_\+t $\ast$ \textbf{ enc\+\_\+rim\+\_\+cont\+\_\+common} (uint8\+\_\+t $\ast$buf, size\+\_\+t \textbf{ len}, const struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+x\+\_\+cont} $\ast$cont)
\item 
int \textbf{ bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont} (struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont} $\ast$cont, const uint8\+\_\+t $\ast$buf, size\+\_\+t \textbf{ len})
\begin{DoxyCompactList}\small\item\em Decode a RAN Information Request RIM Container (3GPP TS 48.\+018, table 11.\+3.\+62a.\+1.\+b). \end{DoxyCompactList}\item 
static uint8\+\_\+t $\ast$ \textbf{ dub\+\_\+tlvp\+\_\+header} (uint8\+\_\+t $\ast$buf, uint8\+\_\+t \textbf{ iei}, uint16\+\_\+t \textbf{ len})
\item 
int \textbf{ bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont} (uint8\+\_\+t $\ast$buf, size\+\_\+t \textbf{ len}, const struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont} $\ast$cont)
\begin{DoxyCompactList}\small\item\em Encode a RAN Information Request RIM Container (3GPP TS 48.\+018, table 11.\+3.\+62a.\+1.\+b). \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont} (struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont} $\ast$cont, const uint8\+\_\+t $\ast$buf, size\+\_\+t \textbf{ len})
\begin{DoxyCompactList}\small\item\em Decode a RAN Information RIM Container (3GPP TS 48.\+018, table 11.\+3.\+62a.\+2.\+b). \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont} (uint8\+\_\+t $\ast$buf, size\+\_\+t \textbf{ len}, const struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont} $\ast$cont)
\begin{DoxyCompactList}\small\item\em Encode a RAN Information RIM Container (3GPP TS 48.\+018, table 11.\+3.\+62a.\+2.\+b). \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+ack\+\_\+rim\+\_\+cont} (struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+ack\+\_\+rim\+\_\+cont} $\ast$cont, const uint8\+\_\+t $\ast$buf, size\+\_\+t \textbf{ len})
\begin{DoxyCompactList}\small\item\em Decode a RAN Information ACK RIM Container (3GPP TS 48.\+018, table 11.\+3.\+62a.\+3.\+b). \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+ack\+\_\+rim\+\_\+cont} (uint8\+\_\+t $\ast$buf, size\+\_\+t \textbf{ len}, const struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+ack\+\_\+rim\+\_\+cont} $\ast$cont)
\begin{DoxyCompactList}\small\item\em Encode a RAN Information ACK RIM Container (3GPP TS 48.\+018, table 11.\+3.\+62a.\+3.\+b). \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+err\+\_\+rim\+\_\+cont} (struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+err\+\_\+rim\+\_\+cont} $\ast$cont, const uint8\+\_\+t $\ast$buf, size\+\_\+t \textbf{ len})
\begin{DoxyCompactList}\small\item\em Decode a RAN Information Error RIM Container (3GPP TS 48.\+018, table 11.\+3.\+62a.\+4.\+b). \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+err\+\_\+rim\+\_\+cont} (uint8\+\_\+t $\ast$buf, size\+\_\+t \textbf{ len}, const struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+err\+\_\+rim\+\_\+cont} $\ast$cont)
\begin{DoxyCompactList}\small\item\em Encode a RAN Information Error RIM Container (3GPP TS 48.\+018, table 11.\+3.\+62a.\+4.\+b). \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+app\+\_\+err\+\_\+rim\+\_\+cont} (struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+err\+\_\+rim\+\_\+cont} $\ast$cont, const uint8\+\_\+t $\ast$buf, size\+\_\+t \textbf{ len})
\begin{DoxyCompactList}\small\item\em Decode a RAN Information Application Error RIM Container (3GPP TS 48.\+018, table 11.\+3.\+62a.\+5.\+b). \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+app\+\_\+err\+\_\+rim\+\_\+cont} (uint8\+\_\+t $\ast$buf, size\+\_\+t \textbf{ len}, const struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+err\+\_\+rim\+\_\+cont} $\ast$cont)
\begin{DoxyCompactList}\small\item\em Encode a RAN Information Application Error RIM Container (3GPP TS 48.\+018, table 11.\+3.\+62a.\+5.\+b). \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+parse\+\_\+rim\+\_\+pdu} (struct \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu} $\ast$pdu, const struct \textbf{ msgb} $\ast$\textbf{ msg})
\begin{DoxyCompactList}\small\item\em Parse a given message buffer into a rim-\/pdu struct. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ bssgp\+\_\+encode\+\_\+rim\+\_\+pdu} (const struct \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu} $\ast$pdu)
\begin{DoxyCompactList}\small\item\em Encode a given rim-\/pdu struct into a message buffer. \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+tx\+\_\+rim} (const struct \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu} $\ast$pdu, uint16\+\_\+t \textbf{ nsei})
\begin{DoxyCompactList}\small\item\em Send RIM RAN INFORMATION REQUEST via BSSGP (3GPP TS 48.\+018, section 10.\+6.\+1). \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+tx\+\_\+rim\+\_\+encoded} (struct \textbf{ msgb} $\ast$\textbf{ msg}, uint16\+\_\+t \textbf{ nsei})
\begin{DoxyCompactList}\small\item\em Send encoded RAN TRANSPARENT CONTAINER via BSSGP (3GPP TS 29.\+060, section 7.\+7.\+43). \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+rx\+\_\+rim} (struct \textbf{ msgb} $\ast$\textbf{ msg}, struct \textbf{ tlv\+\_\+parsed} $\ast$tp, uint16\+\_\+t \textbf{ bvci})
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
const struct \textbf{ value\+\_\+string} \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+\_\+discr\+\_\+strs} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ bssgp\+\_\+nacc\+\_\+cause\+\_\+strs} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+id\+\_\+strs} [$\,$]
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\label{gprs__bssgp__rim_8c_a0a0ad726064c38be1da9fa1944d6984a}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!REP\_CELL\_ID\_LEN@{REP\_CELL\_ID\_LEN}}
\index{REP\_CELL\_ID\_LEN@{REP\_CELL\_ID\_LEN}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{REP\_CELL\_ID\_LEN}
{\footnotesize\ttfamily \#define REP\+\_\+\+CELL\+\_\+\+ID\+\_\+\+LEN~8}

\mbox{\label{gprs__bssgp__rim_8c_a74346824372d7b896efdfdab5817523a}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!TVLV\_HDR\_LEN@{TVLV\_HDR\_LEN}}
\index{TVLV\_HDR\_LEN@{TVLV\_HDR\_LEN}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{TVLV\_HDR\_LEN}
{\footnotesize\ttfamily \#define TVLV\+\_\+\+HDR\+\_\+\+LEN~2}

\mbox{\label{gprs__bssgp__rim_8c_a33869b1ed744c8c52555af26b7dcfceb}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!TVLV\_HDR\_MAXLEN@{TVLV\_HDR\_MAXLEN}}
\index{TVLV\_HDR\_MAXLEN@{TVLV\_HDR\_MAXLEN}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{TVLV\_HDR\_MAXLEN}
{\footnotesize\ttfamily \#define TVLV\+\_\+\+HDR\+\_\+\+MAXLEN~3}



\doxysubsection{Function Documentation}
\mbox{\label{gprs__bssgp__rim_8c_a5143593001047d4acde4b35c6058c245}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_create\_rim\_ri@{bssgp\_create\_rim\_ri}}
\index{bssgp\_create\_rim\_ri@{bssgp\_create\_rim\_ri}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_create\_rim\_ri()}
{\footnotesize\ttfamily int bssgp\+\_\+create\+\_\+rim\+\_\+ri (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{buf,  }\item[{const struct \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info} $\ast$}]{ri }\end{DoxyParamCaption})}



Encode a RIM Routing information IE (3GPP TS 48.\+018, chapter 11.\+3.\+70). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em buf} & user provided memory (at least 14 byte) for the generated value part of the IE. \\
\hline
\mbox{\texttt{ in}}  & {\em ri} & user provided input data struct. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
length of encoded octets, -\/EINVAL on error. 
\end{DoxyReturn}


References \textbf{ bssgp\+\_\+create\+\_\+cell\+\_\+id()}, \textbf{ BSSGP\+\_\+\+RIM\+\_\+\+ROUTING\+\_\+\+INFO\+\_\+\+EUTRAN}, \textbf{ BSSGP\+\_\+\+RIM\+\_\+\+ROUTING\+\_\+\+INFO\+\_\+\+GERAN}, \textbf{ BSSGP\+\_\+\+RIM\+\_\+\+ROUTING\+\_\+\+INFO\+\_\+\+MAXLEN}, \textbf{ BSSGP\+\_\+\+RIM\+\_\+\+ROUTING\+\_\+\+INFO\+\_\+\+UTRAN}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::cid}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::discr}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::eutran}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::geran}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::global\+\_\+enb\+\_\+id}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::global\+\_\+enb\+\_\+id\+\_\+len}, \textbf{ gsm48\+\_\+encode\+\_\+ra()}, \textbf{ len()}, \textbf{ gprs\+\_\+ra\+\_\+id\+::mcc}, \textbf{ osmo\+\_\+eutran\+\_\+tai\+::mcc}, \textbf{ osmo\+\_\+eutran\+\_\+tai\+::mnc}, \textbf{ osmo\+\_\+eutran\+\_\+tai\+::mnc\+\_\+3\+\_\+digits}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::raid}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::rncid}, \textbf{ osmo\+\_\+eutran\+\_\+tai\+::tac}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::tai}, and \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::utran}.



Referenced by \textbf{ bssgp\+\_\+encode\+\_\+rim\+\_\+pdu()}.

\mbox{\label{gprs__bssgp__rim_8c_a63a248ebb5e91e946655e55b2a64a7d0}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_dec\_app\_err\_cont\_nacc@{bssgp\_dec\_app\_err\_cont\_nacc}}
\index{bssgp\_dec\_app\_err\_cont\_nacc@{bssgp\_dec\_app\_err\_cont\_nacc}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_dec\_app\_err\_cont\_nacc()}
{\footnotesize\ttfamily int bssgp\+\_\+dec\+\_\+app\+\_\+err\+\_\+cont\+\_\+nacc (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+app\+\_\+err\+\_\+cont\+\_\+nacc} $\ast$}]{cont,  }\item[{const uint8\+\_\+t $\ast$}]{buf,  }\item[{size\+\_\+t}]{len }\end{DoxyParamCaption})}



Decode a Application Error Container for NACC (3GPP TS 48.\+018, section 11.\+3.\+64.\+1). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em user} & provided memory for decoded data struct. \\
\hline
\mbox{\texttt{ in}}  & {\em buf} & user provided memory with the encoded value data of the IE. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, -\/EINVAL on error. 
\end{DoxyReturn}


References \textbf{ bssgp\+\_\+app\+\_\+err\+\_\+cont\+\_\+nacc\+::err\+\_\+app\+\_\+cont}, \textbf{ bssgp\+\_\+app\+\_\+err\+\_\+cont\+\_\+nacc\+::err\+\_\+app\+\_\+cont\+\_\+len}, \textbf{ len()}, and \textbf{ bssgp\+\_\+app\+\_\+err\+\_\+cont\+\_\+nacc\+::nacc\+\_\+cause}.



Referenced by \textbf{ bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+app\+\_\+err\+\_\+rim\+\_\+cont()}, and \textbf{ bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont()}.

\mbox{\label{gprs__bssgp__rim_8c_a7ba7c4c81ce8e45de28cbeb1a13586fa}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_dec\_ran\_inf\_ack\_rim\_cont@{bssgp\_dec\_ran\_inf\_ack\_rim\_cont}}
\index{bssgp\_dec\_ran\_inf\_ack\_rim\_cont@{bssgp\_dec\_ran\_inf\_ack\_rim\_cont}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_dec\_ran\_inf\_ack\_rim\_cont()}
{\footnotesize\ttfamily int bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+ack\+\_\+rim\+\_\+cont (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+ack\+\_\+rim\+\_\+cont} $\ast$}]{cont,  }\item[{const uint8\+\_\+t $\ast$}]{buf,  }\item[{size\+\_\+t}]{len }\end{DoxyParamCaption})}



Decode a RAN Information ACK RIM Container (3GPP TS 48.\+018, table 11.\+3.\+62a.\+3.\+b). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em user} & provided memory for decoded data struct. \\
\hline
\mbox{\texttt{ in}}  & {\em buf} & user provided memory with the encoded value data of the IE. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, -\/EINVAL on error. 
\end{DoxyReturn}


References \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+ack\+\_\+rim\+\_\+cont\+::app\+\_\+id}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RIM\+\_\+\+APP\+\_\+\+IDENTITY}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RIM\+\_\+\+PROTOCOL\+\_\+\+VERSION}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RIM\+\_\+\+SEQ\+\_\+\+NR}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+SON\+\_\+\+TRANSFER\+\_\+\+APP\+\_\+\+ID}, \textbf{ len()}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+ack\+\_\+rim\+\_\+cont\+::prot\+\_\+ver}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+ack\+\_\+rim\+\_\+cont\+::seq\+\_\+num}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+ack\+\_\+rim\+\_\+cont\+::son\+\_\+trans\+\_\+app\+\_\+id}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+ack\+\_\+rim\+\_\+cont\+::son\+\_\+trans\+\_\+app\+\_\+id\+\_\+len}, \textbf{ tlv\+\_\+parse()}, \textbf{ TLVP\+\_\+\+LEN}, \textbf{ TLVP\+\_\+\+PRES\+\_\+\+LEN}, \textbf{ TLVP\+\_\+\+VAL}, \textbf{ tlvp\+\_\+val32be()}, and \textbf{ tvlv\+\_\+att\+\_\+def}.



Referenced by \textbf{ bssgp\+\_\+parse\+\_\+rim\+\_\+pdu()}.

\mbox{\label{gprs__bssgp__rim_8c_ab61dbf035e7da34c777e97436908efa3}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_dec\_ran\_inf\_app\_cont\_nacc@{bssgp\_dec\_ran\_inf\_app\_cont\_nacc}}
\index{bssgp\_dec\_ran\_inf\_app\_cont\_nacc@{bssgp\_dec\_ran\_inf\_app\_cont\_nacc}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_dec\_ran\_inf\_app\_cont\_nacc()}
{\footnotesize\ttfamily int bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+app\+\_\+cont\+\_\+nacc (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+cont\+\_\+nacc} $\ast$}]{cont,  }\item[{const uint8\+\_\+t $\ast$}]{buf,  }\item[{size\+\_\+t}]{len }\end{DoxyParamCaption})}



Decode a RAN Information Application Container (3GPP TS 48.\+018, section 11.\+3.\+63.\+2.\+1). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em user} & provided memory for decoded data struct. \\
\hline
\mbox{\texttt{ in}}  & {\em buf} & user provided memory with the encoded value data of the IE. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, -\/EINVAL on error. 
\end{DoxyReturn}


References \textbf{ BSSGP\+\_\+\+RIM\+\_\+\+PSI\+\_\+\+LEN}, \textbf{ BSSGP\+\_\+\+RIM\+\_\+\+SI\+\_\+\+LEN}, \textbf{ CELL\+\_\+\+IDENT\+\_\+\+WHOLE\+\_\+\+GLOBAL\+\_\+\+PS}, \textbf{ gsm0808\+\_\+decode\+\_\+cell\+\_\+id\+\_\+u()}, \textbf{ len()}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+cont\+\_\+nacc\+::num\+\_\+si}, \textbf{ REP\+\_\+\+CELL\+\_\+\+ID\+\_\+\+LEN}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+cont\+\_\+nacc\+::reprt\+\_\+cell}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+cont\+\_\+nacc\+::si}, and \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+cont\+\_\+nacc\+::type\+\_\+psi}.



Referenced by \textbf{ bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont()}.

\mbox{\label{gprs__bssgp__rim_8c_ae7d62170b9d2ec5f7724ee566f2e2501}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_dec\_ran\_inf\_app\_err\_rim\_cont@{bssgp\_dec\_ran\_inf\_app\_err\_rim\_cont}}
\index{bssgp\_dec\_ran\_inf\_app\_err\_rim\_cont@{bssgp\_dec\_ran\_inf\_app\_err\_rim\_cont}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_dec\_ran\_inf\_app\_err\_rim\_cont()}
{\footnotesize\ttfamily int bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+app\+\_\+err\+\_\+rim\+\_\+cont (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+err\+\_\+rim\+\_\+cont} $\ast$}]{cont,  }\item[{const uint8\+\_\+t $\ast$}]{buf,  }\item[{size\+\_\+t}]{len }\end{DoxyParamCaption})}



Decode a RAN Information Application Error RIM Container (3GPP TS 48.\+018, table 11.\+3.\+62a.\+5.\+b). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em user} & provided memory for decoded data struct. \\
\hline
\mbox{\texttt{ in}}  & {\em buf} & user provided memory with the encoded value data of the IE. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, -\/EINVAL on error. 
\end{DoxyReturn}


References \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+err\+\_\+rim\+\_\+cont\+::app\+\_\+err\+\_\+cont\+\_\+nacc}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+err\+\_\+rim\+\_\+cont\+::app\+\_\+id}, \textbf{ bssgp\+\_\+dec\+\_\+app\+\_\+err\+\_\+cont\+\_\+nacc()}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+APP\+\_\+\+ERROR\+\_\+\+CONTAINER}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+MBMS}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+NACC}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+SI3}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+SON}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+UTRA\+\_\+\+SI}, \textbf{ dec\+\_\+rim\+\_\+cont\+\_\+common()}, \textbf{ len()}, \textbf{ tlv\+\_\+parse()}, \textbf{ TLVP\+\_\+\+LEN}, \textbf{ TLVP\+\_\+\+VAL}, \textbf{ tvlv\+\_\+att\+\_\+def}, and \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+err\+\_\+rim\+\_\+cont\+::u}.



Referenced by \textbf{ bssgp\+\_\+parse\+\_\+rim\+\_\+pdu()}.

\mbox{\label{gprs__bssgp__rim_8c_aafd4199cd6a0337c482a6ee20d0980cb}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_dec\_ran\_inf\_err\_rim\_cont@{bssgp\_dec\_ran\_inf\_err\_rim\_cont}}
\index{bssgp\_dec\_ran\_inf\_err\_rim\_cont@{bssgp\_dec\_ran\_inf\_err\_rim\_cont}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_dec\_ran\_inf\_err\_rim\_cont()}
{\footnotesize\ttfamily int bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+err\+\_\+rim\+\_\+cont (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+err\+\_\+rim\+\_\+cont} $\ast$}]{cont,  }\item[{const uint8\+\_\+t $\ast$}]{buf,  }\item[{size\+\_\+t}]{len }\end{DoxyParamCaption})}



Decode a RAN Information Error RIM Container (3GPP TS 48.\+018, table 11.\+3.\+62a.\+4.\+b). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em user} & provided memory for decoded data struct. \\
\hline
\mbox{\texttt{ in}}  & {\em buf} & user provided memory with the encoded value data of the IE. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, -\/EINVAL on error. 
\end{DoxyReturn}


References \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+err\+\_\+rim\+\_\+cont\+::app\+\_\+id}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+CAUSE}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+PDU\+\_\+\+IN\+\_\+\+ERROR}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RIM\+\_\+\+APP\+\_\+\+IDENTITY}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RIM\+\_\+\+PROTOCOL\+\_\+\+VERSION}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+SON\+\_\+\+TRANSFER\+\_\+\+APP\+\_\+\+ID}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+err\+\_\+rim\+\_\+cont\+::cause}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+err\+\_\+rim\+\_\+cont\+::err\+\_\+pdu}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+err\+\_\+rim\+\_\+cont\+::err\+\_\+pdu\+\_\+len}, \textbf{ len()}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+err\+\_\+rim\+\_\+cont\+::prot\+\_\+ver}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+err\+\_\+rim\+\_\+cont\+::son\+\_\+trans\+\_\+app\+\_\+id}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+err\+\_\+rim\+\_\+cont\+::son\+\_\+trans\+\_\+app\+\_\+id\+\_\+len}, \textbf{ tlv\+\_\+parse()}, \textbf{ TLVP\+\_\+\+LEN}, \textbf{ TLVP\+\_\+\+PRES\+\_\+\+LEN}, \textbf{ TLVP\+\_\+\+PRESENT}, \textbf{ TLVP\+\_\+\+VAL}, and \textbf{ tvlv\+\_\+att\+\_\+def}.



Referenced by \textbf{ bssgp\+\_\+parse\+\_\+rim\+\_\+pdu()}.

\mbox{\label{gprs__bssgp__rim_8c_ae29d8371d835a224f7706a134f491040}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_dec\_ran\_inf\_req\_app\_cont\_nacc@{bssgp\_dec\_ran\_inf\_req\_app\_cont\_nacc}}
\index{bssgp\_dec\_ran\_inf\_req\_app\_cont\_nacc@{bssgp\_dec\_ran\_inf\_req\_app\_cont\_nacc}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_dec\_ran\_inf\_req\_app\_cont\_nacc()}
{\footnotesize\ttfamily int bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+req\+\_\+app\+\_\+cont\+\_\+nacc (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+req\+\_\+app\+\_\+cont\+\_\+nacc} $\ast$}]{cont,  }\item[{const uint8\+\_\+t $\ast$}]{buf,  }\item[{size\+\_\+t}]{len }\end{DoxyParamCaption})}



Decode a RAN Information Request Application Container for NACC (3GPP TS 48.\+018, section 11.\+3.\+63.\+1.\+1). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em user} & provided memory for decoded data struct. \\
\hline
\mbox{\texttt{ in}}  & {\em buf} & user provided memory with the encoded value data of the IE. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, -\/EINVAL on error. 
\end{DoxyReturn}


References \textbf{ CELL\+\_\+\+IDENT\+\_\+\+WHOLE\+\_\+\+GLOBAL\+\_\+\+PS}, \textbf{ gsm0808\+\_\+decode\+\_\+cell\+\_\+id\+\_\+u()}, \textbf{ len()}, \textbf{ REP\+\_\+\+CELL\+\_\+\+ID\+\_\+\+LEN}, and \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+req\+\_\+app\+\_\+cont\+\_\+nacc\+::reprt\+\_\+cell}.



Referenced by \textbf{ bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont()}.

\mbox{\label{gprs__bssgp__rim_8c_aabd938c584e74f6a536b867f1663d3ec}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_dec\_ran\_inf\_req\_rim\_cont@{bssgp\_dec\_ran\_inf\_req\_rim\_cont}}
\index{bssgp\_dec\_ran\_inf\_req\_rim\_cont@{bssgp\_dec\_ran\_inf\_req\_rim\_cont}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_dec\_ran\_inf\_req\_rim\_cont()}
{\footnotesize\ttfamily int bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont} $\ast$}]{cont,  }\item[{const uint8\+\_\+t $\ast$}]{buf,  }\item[{size\+\_\+t}]{len }\end{DoxyParamCaption})}



Decode a RAN Information Request RIM Container (3GPP TS 48.\+018, table 11.\+3.\+62a.\+1.\+b). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em user} & provided memory for decoded data struct. \\
\hline
\mbox{\texttt{ in}}  & {\em buf} & user provided memory with the encoded value data of the IE. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, -\/EINVAL on error. 
\end{DoxyReturn}


References \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont\+::app\+\_\+cont\+\_\+nacc}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont\+::app\+\_\+id}, \textbf{ bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+req\+\_\+app\+\_\+cont\+\_\+nacc()}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RIM\+\_\+\+REQ\+\_\+\+APP\+\_\+\+CONTAINER}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+SON\+\_\+\+TRANSFER\+\_\+\+APP\+\_\+\+ID}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+MBMS}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+NACC}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+SI3}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+SON}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+UTRA\+\_\+\+SI}, \textbf{ dec\+\_\+rim\+\_\+cont\+\_\+common()}, \textbf{ len()}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont\+::son\+\_\+trans\+\_\+app\+\_\+id}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont\+::son\+\_\+trans\+\_\+app\+\_\+id\+\_\+len}, \textbf{ tlv\+\_\+parse()}, \textbf{ TLVP\+\_\+\+LEN}, \textbf{ TLVP\+\_\+\+PRES\+\_\+\+LEN}, \textbf{ TLVP\+\_\+\+PRESENT}, \textbf{ TLVP\+\_\+\+VAL}, \textbf{ tvlv\+\_\+att\+\_\+def}, and \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont\+::u}.



Referenced by \textbf{ bssgp\+\_\+parse\+\_\+rim\+\_\+pdu()}.

\mbox{\label{gprs__bssgp__rim_8c_af097b10d8c1adea3cf93e541c2cf305d}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_dec\_ran\_inf\_rim\_cont@{bssgp\_dec\_ran\_inf\_rim\_cont}}
\index{bssgp\_dec\_ran\_inf\_rim\_cont@{bssgp\_dec\_ran\_inf\_rim\_cont}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_dec\_ran\_inf\_rim\_cont()}
{\footnotesize\ttfamily int bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont} $\ast$}]{cont,  }\item[{const uint8\+\_\+t $\ast$}]{buf,  }\item[{size\+\_\+t}]{len }\end{DoxyParamCaption})}



Decode a RAN Information RIM Container (3GPP TS 48.\+018, table 11.\+3.\+62a.\+2.\+b). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em user} & provided memory for decoded data struct. \\
\hline
\mbox{\texttt{ in}}  & {\em buf} & user provided memory with the encoded value data of the IE. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, -\/EINVAL on error. 
\end{DoxyReturn}


References \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont\+::app\+\_\+cont\+\_\+nacc}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont\+::app\+\_\+err}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont\+::app\+\_\+err\+\_\+cont\+\_\+nacc}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont\+::app\+\_\+id}, \textbf{ bssgp\+\_\+dec\+\_\+app\+\_\+err\+\_\+cont\+\_\+nacc()}, \textbf{ bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+app\+\_\+cont\+\_\+nacc()}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+APP\+\_\+\+ERROR\+\_\+\+CONTAINER}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RAN\+\_\+\+INFO\+\_\+\+APP\+\_\+\+CONTAINER}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+SON\+\_\+\+TRANSFER\+\_\+\+APP\+\_\+\+ID}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+MBMS}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+NACC}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+SI3}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+SON}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+UTRA\+\_\+\+SI}, \textbf{ dec\+\_\+rim\+\_\+cont\+\_\+common()}, \textbf{ len()}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont\+::son\+\_\+trans\+\_\+app\+\_\+id}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont\+::son\+\_\+trans\+\_\+app\+\_\+id\+\_\+len}, \textbf{ tlv\+\_\+parse()}, \textbf{ TLVP\+\_\+\+LEN}, \textbf{ TLVP\+\_\+\+PRES\+\_\+\+LEN}, \textbf{ TLVP\+\_\+\+PRESENT}, \textbf{ TLVP\+\_\+\+VAL}, \textbf{ tvlv\+\_\+att\+\_\+def}, and \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont\+::u}.



Referenced by \textbf{ bssgp\+\_\+parse\+\_\+rim\+\_\+pdu()}.

\mbox{\label{gprs__bssgp__rim_8c_ac0031753573e96f6e19bf977754cd946}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_enc\_app\_err\_cont\_nacc@{bssgp\_enc\_app\_err\_cont\_nacc}}
\index{bssgp\_enc\_app\_err\_cont\_nacc@{bssgp\_enc\_app\_err\_cont\_nacc}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_enc\_app\_err\_cont\_nacc()}
{\footnotesize\ttfamily int bssgp\+\_\+enc\+\_\+app\+\_\+err\+\_\+cont\+\_\+nacc (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{buf,  }\item[{size\+\_\+t}]{len,  }\item[{const struct \textbf{ bssgp\+\_\+app\+\_\+err\+\_\+cont\+\_\+nacc} $\ast$}]{cont }\end{DoxyParamCaption})}



Encode Application Error Container for NACC (3GPP TS 48.\+018, section 11.\+3.\+64.\+1). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em buf} & user provided memory for the generated value part of the IE. \\
\hline
\mbox{\texttt{ in}}  & {\em cont} & user provided input data struct. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
length of encoded octets, -\/EINVAL on error. 
\end{DoxyReturn}


References \textbf{ bssgp\+\_\+app\+\_\+err\+\_\+cont\+\_\+nacc\+::err\+\_\+app\+\_\+cont}, \textbf{ bssgp\+\_\+app\+\_\+err\+\_\+cont\+\_\+nacc\+::err\+\_\+app\+\_\+cont\+\_\+len}, and \textbf{ bssgp\+\_\+app\+\_\+err\+\_\+cont\+\_\+nacc\+::nacc\+\_\+cause}.



Referenced by \textbf{ bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+app\+\_\+err\+\_\+rim\+\_\+cont()}, and \textbf{ bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont()}.

\mbox{\label{gprs__bssgp__rim_8c_ac5d8be0ccfe34a35fa779fe0d1dc2edd}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_enc\_ran\_inf\_ack\_rim\_cont@{bssgp\_enc\_ran\_inf\_ack\_rim\_cont}}
\index{bssgp\_enc\_ran\_inf\_ack\_rim\_cont@{bssgp\_enc\_ran\_inf\_ack\_rim\_cont}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_enc\_ran\_inf\_ack\_rim\_cont()}
{\footnotesize\ttfamily int bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+ack\+\_\+rim\+\_\+cont (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{buf,  }\item[{size\+\_\+t}]{len,  }\item[{const struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+ack\+\_\+rim\+\_\+cont} $\ast$}]{cont }\end{DoxyParamCaption})}



Encode a RAN Information ACK RIM Container (3GPP TS 48.\+018, table 11.\+3.\+62a.\+3.\+b). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em buf} & user provided memory for the generated value part of the IE. \\
\hline
\mbox{\texttt{ in}}  & {\em cont} & user provided input data struct. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
length of encoded octets, -\/EINVAL on error. 
\end{DoxyReturn}


References \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+ack\+\_\+rim\+\_\+cont\+::app\+\_\+id}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RIM\+\_\+\+APP\+\_\+\+IDENTITY}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RIM\+\_\+\+PROTOCOL\+\_\+\+VERSION}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RIM\+\_\+\+SEQ\+\_\+\+NR}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+SON\+\_\+\+TRANSFER\+\_\+\+APP\+\_\+\+ID}, \textbf{ len()}, \textbf{ osmo\+\_\+htonl}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+ack\+\_\+rim\+\_\+cont\+::prot\+\_\+ver}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+ack\+\_\+rim\+\_\+cont\+::seq\+\_\+num}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+ack\+\_\+rim\+\_\+cont\+::son\+\_\+trans\+\_\+app\+\_\+id}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+ack\+\_\+rim\+\_\+cont\+::son\+\_\+trans\+\_\+app\+\_\+id\+\_\+len}, \textbf{ TVLV\+\_\+\+HDR\+\_\+\+MAXLEN}, and \textbf{ tvlv\+\_\+put()}.



Referenced by \textbf{ bssgp\+\_\+encode\+\_\+rim\+\_\+pdu()}.

\mbox{\label{gprs__bssgp__rim_8c_ad8d3aaaf579011dc1bd5a952cb118464}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_enc\_ran\_inf\_app\_cont\_nacc@{bssgp\_enc\_ran\_inf\_app\_cont\_nacc}}
\index{bssgp\_enc\_ran\_inf\_app\_cont\_nacc@{bssgp\_enc\_ran\_inf\_app\_cont\_nacc}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_enc\_ran\_inf\_app\_cont\_nacc()}
{\footnotesize\ttfamily int bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+app\+\_\+cont\+\_\+nacc (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{buf,  }\item[{size\+\_\+t}]{len,  }\item[{const struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+cont\+\_\+nacc} $\ast$}]{cont }\end{DoxyParamCaption})}



Encode a RAN Information Application Container (3GPP TS 48.\+018, section 11.\+3.\+63.\+2.\+1). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em buf} & user provided memory for the generated value part of the IE. \\
\hline
\mbox{\texttt{ in}}  & {\em cont} & user provided input data struct. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
length of encoded octets, -\/EINVAL on error. 
\end{DoxyReturn}


References \textbf{ bssgp\+\_\+create\+\_\+cell\+\_\+id()}, \textbf{ BSSGP\+\_\+\+RIM\+\_\+\+PSI\+\_\+\+LEN}, \textbf{ BSSGP\+\_\+\+RIM\+\_\+\+SI\+\_\+\+LEN}, \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id\+\_\+ps\+::cell\+\_\+identity}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+cont\+\_\+nacc\+::num\+\_\+si}, \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id\+\_\+ps\+::rai}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+cont\+\_\+nacc\+::reprt\+\_\+cell}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+cont\+\_\+nacc\+::si}, and \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+cont\+\_\+nacc\+::type\+\_\+psi}.



Referenced by \textbf{ bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont()}.

\mbox{\label{gprs__bssgp__rim_8c_a1e85d8d5638255b6ef8161b1c9c59375}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_enc\_ran\_inf\_app\_err\_rim\_cont@{bssgp\_enc\_ran\_inf\_app\_err\_rim\_cont}}
\index{bssgp\_enc\_ran\_inf\_app\_err\_rim\_cont@{bssgp\_enc\_ran\_inf\_app\_err\_rim\_cont}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_enc\_ran\_inf\_app\_err\_rim\_cont()}
{\footnotesize\ttfamily int bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+app\+\_\+err\+\_\+rim\+\_\+cont (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{buf,  }\item[{size\+\_\+t}]{len,  }\item[{const struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+err\+\_\+rim\+\_\+cont} $\ast$}]{cont }\end{DoxyParamCaption})}



Encode a RAN Information Application Error RIM Container (3GPP TS 48.\+018, table 11.\+3.\+62a.\+5.\+b). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em buf} & user provided memory for the generated value part of the IE. \\
\hline
\mbox{\texttt{ in}}  & {\em cont} & user provided input data struct. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
length of encoded octets, -\/EINVAL on error. 
\end{DoxyReturn}


References \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+err\+\_\+rim\+\_\+cont\+::app\+\_\+err\+\_\+cont\+\_\+nacc}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+err\+\_\+rim\+\_\+cont\+::app\+\_\+id}, \textbf{ bssgp\+\_\+enc\+\_\+app\+\_\+err\+\_\+cont\+\_\+nacc()}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+APP\+\_\+\+ERROR\+\_\+\+CONTAINER}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+MBMS}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+NACC}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+SI3}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+SON}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+UTRA\+\_\+\+SI}, \textbf{ dub\+\_\+tlvp\+\_\+header()}, \textbf{ enc\+\_\+rim\+\_\+cont\+\_\+common()}, \textbf{ len()}, \textbf{ TVLV\+\_\+\+HDR\+\_\+\+LEN}, \textbf{ TVLV\+\_\+\+HDR\+\_\+\+MAXLEN}, and \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+err\+\_\+rim\+\_\+cont\+::u}.



Referenced by \textbf{ bssgp\+\_\+encode\+\_\+rim\+\_\+pdu()}.

\mbox{\label{gprs__bssgp__rim_8c_a54822fb74f80697d8e174785eb5c0234}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_enc\_ran\_inf\_err\_rim\_cont@{bssgp\_enc\_ran\_inf\_err\_rim\_cont}}
\index{bssgp\_enc\_ran\_inf\_err\_rim\_cont@{bssgp\_enc\_ran\_inf\_err\_rim\_cont}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_enc\_ran\_inf\_err\_rim\_cont()}
{\footnotesize\ttfamily int bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+err\+\_\+rim\+\_\+cont (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{buf,  }\item[{size\+\_\+t}]{len,  }\item[{const struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+err\+\_\+rim\+\_\+cont} $\ast$}]{cont }\end{DoxyParamCaption})}



Encode a RAN Information Error RIM Container (3GPP TS 48.\+018, table 11.\+3.\+62a.\+4.\+b). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em buf} & user provided memory for the generated value part of the IE. \\
\hline
\mbox{\texttt{ in}}  & {\em cont} & user provided input data struct. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
length of encoded octets, -\/EINVAL on error. 
\end{DoxyReturn}


References \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+err\+\_\+rim\+\_\+cont\+::app\+\_\+id}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+CAUSE}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+PDU\+\_\+\+IN\+\_\+\+ERROR}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RIM\+\_\+\+APP\+\_\+\+IDENTITY}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RIM\+\_\+\+PROTOCOL\+\_\+\+VERSION}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+SON\+\_\+\+TRANSFER\+\_\+\+APP\+\_\+\+ID}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+err\+\_\+rim\+\_\+cont\+::cause}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+err\+\_\+rim\+\_\+cont\+::err\+\_\+pdu}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+err\+\_\+rim\+\_\+cont\+::err\+\_\+pdu\+\_\+len}, \textbf{ len()}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+err\+\_\+rim\+\_\+cont\+::prot\+\_\+ver}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+err\+\_\+rim\+\_\+cont\+::son\+\_\+trans\+\_\+app\+\_\+id}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+err\+\_\+rim\+\_\+cont\+::son\+\_\+trans\+\_\+app\+\_\+id\+\_\+len}, \textbf{ TVLV\+\_\+\+HDR\+\_\+\+MAXLEN}, and \textbf{ tvlv\+\_\+put()}.



Referenced by \textbf{ bssgp\+\_\+encode\+\_\+rim\+\_\+pdu()}.

\mbox{\label{gprs__bssgp__rim_8c_a96684f5bf75a31b861ec490654fc730c}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_enc\_ran\_inf\_req\_app\_cont\_nacc@{bssgp\_enc\_ran\_inf\_req\_app\_cont\_nacc}}
\index{bssgp\_enc\_ran\_inf\_req\_app\_cont\_nacc@{bssgp\_enc\_ran\_inf\_req\_app\_cont\_nacc}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_enc\_ran\_inf\_req\_app\_cont\_nacc()}
{\footnotesize\ttfamily int bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+req\+\_\+app\+\_\+cont\+\_\+nacc (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{buf,  }\item[{size\+\_\+t}]{len,  }\item[{const struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+req\+\_\+app\+\_\+cont\+\_\+nacc} $\ast$}]{cont }\end{DoxyParamCaption})}



Encode a RAN Information Request Application Container for NACC (3GPP TS 48.\+018, section 11.\+3.\+63.\+1.\+1). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em buf} & user provided memory for the generated value part of the IE. \\
\hline
\mbox{\texttt{ in}}  & {\em cont} & user provided input data struct. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
length of encoded octets, -\/EINVAL on error. 
\end{DoxyReturn}


References \textbf{ bssgp\+\_\+create\+\_\+cell\+\_\+id()}, \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id\+\_\+ps\+::cell\+\_\+identity}, \textbf{ len()}, \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id\+\_\+ps\+::rai}, \textbf{ REP\+\_\+\+CELL\+\_\+\+ID\+\_\+\+LEN}, and \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+req\+\_\+app\+\_\+cont\+\_\+nacc\+::reprt\+\_\+cell}.



Referenced by \textbf{ bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont()}.

\mbox{\label{gprs__bssgp__rim_8c_a5310baf1fff0a59333df655011a34546}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_enc\_ran\_inf\_req\_rim\_cont@{bssgp\_enc\_ran\_inf\_req\_rim\_cont}}
\index{bssgp\_enc\_ran\_inf\_req\_rim\_cont@{bssgp\_enc\_ran\_inf\_req\_rim\_cont}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_enc\_ran\_inf\_req\_rim\_cont()}
{\footnotesize\ttfamily int bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{buf,  }\item[{size\+\_\+t}]{len,  }\item[{const struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont} $\ast$}]{cont }\end{DoxyParamCaption})}



Encode a RAN Information Request RIM Container (3GPP TS 48.\+018, table 11.\+3.\+62a.\+1.\+b). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em buf} & user provided memory for the generated value part of the IE. \\
\hline
\mbox{\texttt{ in}}  & {\em cont} & user provided input data struct. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
length of encoded octets, -\/EINVAL on error. 
\end{DoxyReturn}


References \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont\+::app\+\_\+cont\+\_\+nacc}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont\+::app\+\_\+id}, \textbf{ bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+req\+\_\+app\+\_\+cont\+\_\+nacc()}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RIM\+\_\+\+REQ\+\_\+\+APP\+\_\+\+CONTAINER}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+SON\+\_\+\+TRANSFER\+\_\+\+APP\+\_\+\+ID}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+MBMS}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+NACC}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+SI3}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+SON}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+UTRA\+\_\+\+SI}, \textbf{ dub\+\_\+tlvp\+\_\+header()}, \textbf{ enc\+\_\+rim\+\_\+cont\+\_\+common()}, \textbf{ len()}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont\+::son\+\_\+trans\+\_\+app\+\_\+id}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont\+::son\+\_\+trans\+\_\+app\+\_\+id\+\_\+len}, \textbf{ TVLV\+\_\+\+HDR\+\_\+\+LEN}, \textbf{ TVLV\+\_\+\+HDR\+\_\+\+MAXLEN}, \textbf{ tvlv\+\_\+put()}, and \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont\+::u}.



Referenced by \textbf{ bssgp\+\_\+encode\+\_\+rim\+\_\+pdu()}.

\mbox{\label{gprs__bssgp__rim_8c_a6285c324edc07aac3b20de771eb98a8f}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_enc\_ran\_inf\_rim\_cont@{bssgp\_enc\_ran\_inf\_rim\_cont}}
\index{bssgp\_enc\_ran\_inf\_rim\_cont@{bssgp\_enc\_ran\_inf\_rim\_cont}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_enc\_ran\_inf\_rim\_cont()}
{\footnotesize\ttfamily int bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{buf,  }\item[{size\+\_\+t}]{len,  }\item[{const struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont} $\ast$}]{cont }\end{DoxyParamCaption})}



Encode a RAN Information RIM Container (3GPP TS 48.\+018, table 11.\+3.\+62a.\+2.\+b). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em buf} & user provided memory for the generated value part of the IE. \\
\hline
\mbox{\texttt{ in}}  & {\em cont} & user provided input data struct. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
length of encoded octets, -\/EINVAL on error. 
\end{DoxyReturn}


References \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont\+::app\+\_\+cont\+\_\+nacc}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont\+::app\+\_\+err}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont\+::app\+\_\+err\+\_\+cont\+\_\+nacc}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont\+::app\+\_\+id}, \textbf{ bssgp\+\_\+enc\+\_\+app\+\_\+err\+\_\+cont\+\_\+nacc()}, \textbf{ bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+app\+\_\+cont\+\_\+nacc()}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+APP\+\_\+\+ERROR\+\_\+\+CONTAINER}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RAN\+\_\+\+INFO\+\_\+\+APP\+\_\+\+CONTAINER}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+SON\+\_\+\+TRANSFER\+\_\+\+APP\+\_\+\+ID}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+MBMS}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+NACC}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+SI3}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+SON}, \textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+UTRA\+\_\+\+SI}, \textbf{ dub\+\_\+tlvp\+\_\+header()}, \textbf{ enc\+\_\+rim\+\_\+cont\+\_\+common()}, \textbf{ len()}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont\+::son\+\_\+trans\+\_\+app\+\_\+id}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont\+::son\+\_\+trans\+\_\+app\+\_\+id\+\_\+len}, \textbf{ TVLV\+\_\+\+HDR\+\_\+\+LEN}, \textbf{ TVLV\+\_\+\+HDR\+\_\+\+MAXLEN}, \textbf{ tvlv\+\_\+put()}, and \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont\+::u}.



Referenced by \textbf{ bssgp\+\_\+encode\+\_\+rim\+\_\+pdu()}.

\mbox{\label{gprs__bssgp__rim_8c_afcea52a5a0f22ad62874c4b3e9767e45}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_encode\_rim\_pdu@{bssgp\_encode\_rim\_pdu}}
\index{bssgp\_encode\_rim\_pdu@{bssgp\_encode\_rim\_pdu}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_encode\_rim\_pdu()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ bssgp\+\_\+encode\+\_\+rim\+\_\+pdu (\begin{DoxyParamCaption}\item[{const struct \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu} $\ast$}]{pdu }\end{DoxyParamCaption})}



Encode a given rim-\/pdu struct into a message buffer. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em pdu} & user provided memory that contains the RAN INFORMATION PDU to encode. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
BSSGP message buffer on sccess, NULL on error. 
\end{DoxyReturn}


References \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::ack\+\_\+rim\+\_\+cont}, \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::app\+\_\+err\+\_\+rim\+\_\+cont}, \textbf{ bssgp\+\_\+create\+\_\+rim\+\_\+ri()}, \textbf{ bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+ack\+\_\+rim\+\_\+cont()}, \textbf{ bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+app\+\_\+err\+\_\+rim\+\_\+cont()}, \textbf{ bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+err\+\_\+rim\+\_\+cont()}, \textbf{ bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont()}, \textbf{ bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont()}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RI\+\_\+\+ACK\+\_\+\+RIM\+\_\+\+CONTAINER}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RI\+\_\+\+APP\+\_\+\+ERROR\+\_\+\+RIM\+\_\+\+CONT}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RI\+\_\+\+ERROR\+\_\+\+RIM\+\_\+\+COINTAINER}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RI\+\_\+\+REQ\+\_\+\+RIM\+\_\+\+CONTAINER}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RI\+\_\+\+RIM\+\_\+\+CONTAINER}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RIM\+\_\+\+ROUTING\+\_\+\+INFO}, \textbf{ bssgp\+\_\+msgb\+\_\+alloc()}, \textbf{ BSSGP\+\_\+\+PDUT\+\_\+\+RAN\+\_\+\+INFO}, \textbf{ BSSGP\+\_\+\+PDUT\+\_\+\+RAN\+\_\+\+INFO\+\_\+\+ACK}, \textbf{ BSSGP\+\_\+\+PDUT\+\_\+\+RAN\+\_\+\+INFO\+\_\+\+APP\+\_\+\+ERROR}, \textbf{ BSSGP\+\_\+\+PDUT\+\_\+\+RAN\+\_\+\+INFO\+\_\+\+ERROR}, \textbf{ BSSGP\+\_\+\+PDUT\+\_\+\+RAN\+\_\+\+INFO\+\_\+\+REQ}, \textbf{ BSSGP\+\_\+\+RIM\+\_\+\+ROUTING\+\_\+\+INFO\+\_\+\+MAXLEN}, \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::decoded}, \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::decoded\+\_\+present}, \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::err\+\_\+rim\+\_\+cont}, \textbf{ msg}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+tvlv\+\_\+put()}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ bssgp\+\_\+normal\+\_\+hdr\+::pdu\+\_\+type}, \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::req\+\_\+rim\+\_\+cont}, \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::rim\+\_\+cont}, \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::rim\+\_\+cont\+\_\+iei}, \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::rim\+\_\+cont\+\_\+len}, \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::routing\+\_\+info\+\_\+dest}, and \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::routing\+\_\+info\+\_\+src}.



Referenced by \textbf{ bssgp\+\_\+tx\+\_\+rim()}.

\mbox{\label{gprs__bssgp__rim_8c_a9dad361ddc1031881e09fb82b77cd304}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_parse\_rim\_pdu@{bssgp\_parse\_rim\_pdu}}
\index{bssgp\_parse\_rim\_pdu@{bssgp\_parse\_rim\_pdu}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_parse\_rim\_pdu()}
{\footnotesize\ttfamily int bssgp\+\_\+parse\+\_\+rim\+\_\+pdu (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu} $\ast$}]{pdu,  }\item[{const struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})}



Parse a given message buffer into a rim-\/pdu struct. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em pdu} & user provided memory for the resulting RAN INFORMATION PDU. \\
\hline
\mbox{\texttt{ in}}  & {\em msg} & BSSGP message buffer that contains the encoded RAN INFORMATION PDU. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on sccess, -\/EINVAL on error. 
\end{DoxyReturn}


References \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::ack\+\_\+rim\+\_\+cont}, \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::app\+\_\+err\+\_\+rim\+\_\+cont}, \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+ack\+\_\+rim\+\_\+cont()}, \textbf{ bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+app\+\_\+err\+\_\+rim\+\_\+cont()}, \textbf{ bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+err\+\_\+rim\+\_\+cont()}, \textbf{ bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont()}, \textbf{ bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont()}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RI\+\_\+\+ACK\+\_\+\+RIM\+\_\+\+CONTAINER}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RI\+\_\+\+APP\+\_\+\+ERROR\+\_\+\+RIM\+\_\+\+CONT}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RI\+\_\+\+ERROR\+\_\+\+RIM\+\_\+\+COINTAINER}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RI\+\_\+\+REQ\+\_\+\+RIM\+\_\+\+CONTAINER}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RI\+\_\+\+RIM\+\_\+\+CONTAINER}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RIM\+\_\+\+ROUTING\+\_\+\+INFO}, \textbf{ bssgp\+\_\+parse\+\_\+rim\+\_\+ri()}, \textbf{ bssgp\+\_\+normal\+\_\+hdr\+::data}, \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::decoded}, \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::decoded\+\_\+present}, \textbf{ DLBSSGP}, \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::err\+\_\+rim\+\_\+cont}, \textbf{ LOGL\+\_\+\+DEBUG}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ LOGP}, \textbf{ msg}, \textbf{ msgb\+\_\+bssgp\+\_\+len}, \textbf{ msgb\+\_\+bssgph}, \textbf{ msgb\+\_\+nsei}, \textbf{ nsei}, \textbf{ osmo\+\_\+pdef\+\_\+bssgp}, \textbf{ osmo\+\_\+tlv\+\_\+prot\+\_\+parse()}, \textbf{ bssgp\+\_\+normal\+\_\+hdr\+::pdu\+\_\+type}, \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::req\+\_\+rim\+\_\+cont}, \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::rim\+\_\+cont}, \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::rim\+\_\+cont\+\_\+iei}, \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::rim\+\_\+cont\+\_\+len}, \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::routing\+\_\+info\+\_\+dest}, \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::routing\+\_\+info\+\_\+src}, \textbf{ TLVP\+\_\+\+LEN}, \textbf{ TLVP\+\_\+\+PRESENT}, and \textbf{ TLVP\+\_\+\+VAL}.



Referenced by \textbf{ bssgp\+\_\+rx\+\_\+rim()}.

\mbox{\label{gprs__bssgp__rim_8c_a57e30aff85e97cc09ba9d2149c806213}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_parse\_rim\_ra@{bssgp\_parse\_rim\_ra}}
\index{bssgp\_parse\_rim\_ra@{bssgp\_parse\_rim\_ra}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_parse\_rim\_ra()}
{\footnotesize\ttfamily int bssgp\+\_\+parse\+\_\+rim\+\_\+ra (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info} $\ast$}]{ri,  }\item[{const uint8\+\_\+t $\ast$}]{buf,  }\item[{unsigned int}]{len,  }\item[{uint8\+\_\+t}]{discr }\end{DoxyParamCaption})}



Parse a RIM Routing address IE (3GPP TS 29.\+060, chapter 7.\+7.\+57 and 7.\+7.\+77). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em ri} & user provided memory to store the parsed results. \\
\hline
\mbox{\texttt{ in}}  & {\em buf} & input buffer of the value part of the RIM Routing address IE. \textbackslash{}discr[in] discr value part (one byte) of the RIM Routing Address Discriminator IE. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
length of parsed octets, -\/EINVAL on error. 
\end{DoxyReturn}


References \textbf{ bssgp\+\_\+parse\+\_\+cell\+\_\+id()}, \textbf{ BSSGP\+\_\+\+RIM\+\_\+\+ROUTING\+\_\+\+INFO\+\_\+\+EUTRAN}, \textbf{ BSSGP\+\_\+\+RIM\+\_\+\+ROUTING\+\_\+\+INFO\+\_\+\+GERAN}, \textbf{ BSSGP\+\_\+\+RIM\+\_\+\+ROUTING\+\_\+\+INFO\+\_\+\+UTRAN}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::cid}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::discr}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::eutran}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::geran}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::global\+\_\+enb\+\_\+id}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::global\+\_\+enb\+\_\+id\+\_\+len}, \textbf{ gsm48\+\_\+parse\+\_\+ra()}, \textbf{ len()}, \textbf{ gprs\+\_\+ra\+\_\+id\+::mcc}, \textbf{ osmo\+\_\+eutran\+\_\+tai\+::mcc}, \textbf{ gprs\+\_\+ra\+\_\+id\+::mnc}, \textbf{ osmo\+\_\+eutran\+\_\+tai\+::mnc}, \textbf{ gprs\+\_\+ra\+\_\+id\+::mnc\+\_\+3\+\_\+digits}, \textbf{ osmo\+\_\+eutran\+\_\+tai\+::mnc\+\_\+3\+\_\+digits}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::raid}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::rncid}, \textbf{ osmo\+\_\+eutran\+\_\+tai\+::tac}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::tai}, and \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::utran}.



Referenced by \textbf{ bssgp\+\_\+parse\+\_\+rim\+\_\+ri()}.

\mbox{\label{gprs__bssgp__rim_8c_ae5ff42abb32c415ec15bdda9d678223f}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_parse\_rim\_ri@{bssgp\_parse\_rim\_ri}}
\index{bssgp\_parse\_rim\_ri@{bssgp\_parse\_rim\_ri}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_parse\_rim\_ri()}
{\footnotesize\ttfamily int bssgp\+\_\+parse\+\_\+rim\+\_\+ri (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info} $\ast$}]{ri,  }\item[{const uint8\+\_\+t $\ast$}]{buf,  }\item[{unsigned int}]{len }\end{DoxyParamCaption})}



Parse a RIM Routing information IE (3GPP TS 48.\+018, chapter 11.\+3.\+70). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em ri} & user provided memory to store the parsed results. \\
\hline
\mbox{\texttt{ in}}  & {\em buf} & input buffer of the value part of the IE. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
length of parsed octets, -\/EINVAL on error. 
\end{DoxyReturn}


References \textbf{ bssgp\+\_\+parse\+\_\+rim\+\_\+ra()}, and \textbf{ len()}.



Referenced by \textbf{ bssgp\+\_\+parse\+\_\+rim\+\_\+pdu()}.

\mbox{\label{gprs__bssgp__rim_8c_aa716d4e414575b3395fd69148d637643}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_rim\_ri\_name@{bssgp\_rim\_ri\_name}}
\index{bssgp\_rim\_ri\_name@{bssgp\_rim\_ri\_name}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_rim\_ri\_name()}
{\footnotesize\ttfamily const char $\ast$ bssgp\+\_\+rim\+\_\+ri\+\_\+name (\begin{DoxyParamCaption}\item[{const struct \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info} $\ast$}]{ri }\end{DoxyParamCaption})}



Encode a RIM Routing information into a human readable string. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em ri} & user provided input data struct. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
pointer to the resulting string. 
\end{DoxyReturn}


References \textbf{ bssgp\+\_\+rim\+\_\+ri\+\_\+name\+\_\+buf()}.

\mbox{\label{gprs__bssgp__rim_8c_a8046365ffc5e2128863ab7ee50a836df}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_rim\_ri\_name\_buf@{bssgp\_rim\_ri\_name\_buf}}
\index{bssgp\_rim\_ri\_name\_buf@{bssgp\_rim\_ri\_name\_buf}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_rim\_ri\_name\_buf()}
{\footnotesize\ttfamily char $\ast$ bssgp\+\_\+rim\+\_\+ri\+\_\+name\+\_\+buf (\begin{DoxyParamCaption}\item[{char $\ast$}]{buf,  }\item[{size\+\_\+t}]{buf\+\_\+len,  }\item[{const struct \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info} $\ast$}]{ri }\end{DoxyParamCaption})}



Encode a RIM Routing information into a human readable string. 


\begin{DoxyParams}[1]{Parameters}
 & {\em \mbox{[}buf\mbox{]}} & user provided string buffer to store the resulting string. \\
\hline
 & {\em \mbox{[}buf\+\_\+len\mbox{]}} & maximum length of string buffer. \\
\hline
\mbox{\texttt{ in}}  & {\em ri} & user provided input data struct. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
pointer to the beginning of the resulting string stored in string buffer. 
\end{DoxyReturn}


References \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+\_\+discr\+\_\+str()}, \textbf{ BSSGP\+\_\+\+RIM\+\_\+\+ROUTING\+\_\+\+INFO\+\_\+\+EUTRAN}, \textbf{ BSSGP\+\_\+\+RIM\+\_\+\+ROUTING\+\_\+\+INFO\+\_\+\+GERAN}, \textbf{ BSSGP\+\_\+\+RIM\+\_\+\+ROUTING\+\_\+\+INFO\+\_\+\+UTRAN}, \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id\+\_\+ps\+::cell\+\_\+identity}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::cid}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::discr}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::eutran}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::geran}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::global\+\_\+enb\+\_\+id}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::global\+\_\+enb\+\_\+id\+\_\+len}, \textbf{ gprs\+\_\+ra\+\_\+id\+::lac}, \textbf{ osmo\+\_\+location\+\_\+area\+\_\+id\+::lac}, \textbf{ osmo\+\_\+routing\+\_\+area\+\_\+id\+::lac}, \textbf{ gprs\+\_\+ra\+\_\+id\+::mcc}, \textbf{ osmo\+\_\+plmn\+\_\+id\+::mcc}, \textbf{ osmo\+\_\+eutran\+\_\+tai\+::mcc}, \textbf{ gprs\+\_\+ra\+\_\+id\+::mnc}, \textbf{ osmo\+\_\+plmn\+\_\+id\+::mnc}, \textbf{ osmo\+\_\+eutran\+\_\+tai\+::mnc}, \textbf{ gprs\+\_\+ra\+\_\+id\+::mnc\+\_\+3\+\_\+digits}, \textbf{ osmo\+\_\+plmn\+\_\+id\+::mnc\+\_\+3\+\_\+digits}, \textbf{ osmo\+\_\+eutran\+\_\+tai\+::mnc\+\_\+3\+\_\+digits}, \textbf{ osmo\+\_\+cgi\+\_\+ps\+\_\+name\+\_\+buf()}, \textbf{ osmo\+\_\+hexdump\+\_\+buf()}, \textbf{ osmo\+\_\+plmn\+\_\+name\+\_\+buf()}, \textbf{ osmo\+\_\+location\+\_\+area\+\_\+id\+::plmn}, \textbf{ gprs\+\_\+ra\+\_\+id\+::rac}, \textbf{ osmo\+\_\+routing\+\_\+area\+\_\+id\+::rac}, \textbf{ osmo\+\_\+cell\+\_\+global\+\_\+id\+\_\+ps\+::rai}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::raid}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::rncid}, \textbf{ osmo\+\_\+eutran\+\_\+tai\+::tac}, \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::tai}, and \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+::utran}.



Referenced by \textbf{ bssgp\+\_\+rim\+\_\+ri\+\_\+name()}, \textbf{ bssgp\+\_\+rx\+\_\+rim()}, and \textbf{ bssgp\+\_\+tx\+\_\+rim()}.

\mbox{\label{gprs__bssgp__rim_8c_adb19177bfa7f112c96e5c08d88c15372}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_rx\_rim@{bssgp\_rx\_rim}}
\index{bssgp\_rx\_rim@{bssgp\_rx\_rim}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_rx\_rim()}
{\footnotesize\ttfamily int bssgp\+\_\+rx\+\_\+rim (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{struct \textbf{ tlv\+\_\+parsed} $\ast$}]{tp,  }\item[{uint16\+\_\+t}]{bvci }\end{DoxyParamCaption})}



References \textbf{ BSSGP\+\_\+\+CAUSE\+\_\+\+MISSING\+\_\+\+MAND\+\_\+\+IE}, \textbf{ bssgp\+\_\+parse\+\_\+rim\+\_\+pdu()}, \textbf{ bssgp\+\_\+pdu\+\_\+str()}, \textbf{ BSSGP\+\_\+\+PDUT\+\_\+\+RAN\+\_\+\+INFO}, \textbf{ BSSGP\+\_\+\+PDUT\+\_\+\+RAN\+\_\+\+INFO\+\_\+\+ACK}, \textbf{ BSSGP\+\_\+\+PDUT\+\_\+\+RAN\+\_\+\+INFO\+\_\+\+APP\+\_\+\+ERROR}, \textbf{ BSSGP\+\_\+\+PDUT\+\_\+\+RAN\+\_\+\+INFO\+\_\+\+ERROR}, \textbf{ BSSGP\+\_\+\+PDUT\+\_\+\+RAN\+\_\+\+INFO\+\_\+\+REQ}, \textbf{ bssgp\+\_\+prim\+\_\+cb()}, \textbf{ bssgp\+\_\+rim\+\_\+ri\+\_\+name\+\_\+buf()}, \textbf{ bssgp\+\_\+tx\+\_\+status()}, \textbf{ osmo\+\_\+bssgp\+\_\+prim\+::bvci}, \textbf{ bvci}, \textbf{ DEBUGP}, \textbf{ DLBSSGP}, \textbf{ msg}, \textbf{ msgb\+\_\+bssgph}, \textbf{ msgb\+\_\+nsei}, \textbf{ osmo\+\_\+bssgp\+\_\+prim\+::nsei}, \textbf{ nsei}, \textbf{ osmo\+\_\+bssgp\+\_\+prim\+::oph}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ osmo\+\_\+prim\+\_\+init()}, \textbf{ bssgp\+\_\+normal\+\_\+hdr\+::pdu\+\_\+type}, \textbf{ PRIM\+\_\+\+BSSGP\+\_\+\+RIM\+\_\+\+PDU\+\_\+\+TRANSFER}, \textbf{ PRIM\+\_\+\+OP\+\_\+\+INDICATION}, \textbf{ osmo\+\_\+bssgp\+\_\+prim\+::rim\+\_\+pdu}, \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::routing\+\_\+info\+\_\+dest}, \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::routing\+\_\+info\+\_\+src}, \textbf{ SAP\+\_\+\+BSSGP\+\_\+\+RIM}, \textbf{ osmo\+\_\+bssgp\+\_\+prim\+::tp}, and \textbf{ osmo\+\_\+bssgp\+\_\+prim\+::u}.



Referenced by \textbf{ bssgp\+\_\+rx\+\_\+sign()}.

\mbox{\label{gprs__bssgp__rim_8c_adc8fc5f188d68fdccea3cde20b49004c}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_tx\_rim@{bssgp\_tx\_rim}}
\index{bssgp\_tx\_rim@{bssgp\_tx\_rim}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_tx\_rim()}
{\footnotesize\ttfamily int bssgp\+\_\+tx\+\_\+rim (\begin{DoxyParamCaption}\item[{const struct \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu} $\ast$}]{pdu,  }\item[{uint16\+\_\+t}]{nsei }\end{DoxyParamCaption})}



Send RIM RAN INFORMATION REQUEST via BSSGP (3GPP TS 48.\+018, section 10.\+6.\+1). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em pdu} & user provided memory for the RAN INFORMATION PDU to be sent. \\
\hline
\mbox{\texttt{ in}}  & {\em nsei} & BSSGP network service entity identifier (NSEI). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on sccess, -\/EINVAL on error. 
\end{DoxyReturn}


References \textbf{ bssgp\+\_\+encode\+\_\+rim\+\_\+pdu()}, \textbf{ bssgp\+\_\+ns\+\_\+send}, \textbf{ bssgp\+\_\+ns\+\_\+send\+\_\+data}, \textbf{ bssgp\+\_\+pdu\+\_\+str()}, \textbf{ bssgp\+\_\+rim\+\_\+ri\+\_\+name\+\_\+buf()}, \textbf{ DEBUGP}, \textbf{ DLBSSGP}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ LOGP}, \textbf{ msg}, \textbf{ msgb\+\_\+bssgph}, \textbf{ msgb\+\_\+bvci}, \textbf{ msgb\+\_\+nsei}, \textbf{ nsei}, \textbf{ bssgp\+\_\+normal\+\_\+hdr\+::pdu\+\_\+type}, \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::routing\+\_\+info\+\_\+dest}, and \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu\+::routing\+\_\+info\+\_\+src}.

\mbox{\label{gprs__bssgp__rim_8c_a4505f3574384823e6818c4222820677c}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_tx\_rim\_encoded@{bssgp\_tx\_rim\_encoded}}
\index{bssgp\_tx\_rim\_encoded@{bssgp\_tx\_rim\_encoded}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_tx\_rim\_encoded()}
{\footnotesize\ttfamily int bssgp\+\_\+tx\+\_\+rim\+\_\+encoded (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{uint16\+\_\+t}]{nsei }\end{DoxyParamCaption})}



Send encoded RAN TRANSPARENT CONTAINER via BSSGP (3GPP TS 29.\+060, section 7.\+7.\+43). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em msg} & user provided memory for the encoded RAN TRANSPARENT CONTAINER to be sent. (this function will take ownership of msg). \\
\hline
\mbox{\texttt{ in}}  & {\em nsei} & BSSGP network service entity identifier (NSEI). \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on sccess, -\/EINVAL on error. 
\end{DoxyReturn}


References \textbf{ bssgp\+\_\+ns\+\_\+send}, \textbf{ bssgp\+\_\+ns\+\_\+send\+\_\+data}, \textbf{ bssgp\+\_\+pdu\+\_\+str()}, \textbf{ DEBUGP}, \textbf{ DLBSSGP}, \textbf{ msg}, \textbf{ msgb\+\_\+bssgph}, \textbf{ msgb\+\_\+bvci}, \textbf{ msgb\+\_\+nsei}, \textbf{ nsei}, and \textbf{ bssgp\+\_\+normal\+\_\+hdr\+::pdu\+\_\+type}.

\mbox{\label{gprs__bssgp__rim_8c_a537db004efd68eec065edc06d954d5ae}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!dec\_rim\_cont\_common@{dec\_rim\_cont\_common}}
\index{dec\_rim\_cont\_common@{dec\_rim\_cont\_common}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{dec\_rim\_cont\_common()}
{\footnotesize\ttfamily static int dec\+\_\+rim\+\_\+cont\+\_\+common (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+x\+\_\+cont} $\ast$}]{cont,  }\item[{struct \textbf{ tlv\+\_\+parsed} $\ast$}]{tp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+x\+\_\+cont\+::app\+\_\+id}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RIM\+\_\+\+APP\+\_\+\+IDENTITY}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RIM\+\_\+\+PDU\+\_\+\+INDICATIONS}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RIM\+\_\+\+PROTOCOL\+\_\+\+VERSION}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RIM\+\_\+\+SEQ\+\_\+\+NR}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+x\+\_\+cont\+::pdu\+\_\+ind}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+x\+\_\+cont\+::prot\+\_\+ver}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+x\+\_\+cont\+::seq\+\_\+num}, \textbf{ TLVP\+\_\+\+PRES\+\_\+\+LEN}, \textbf{ TLVP\+\_\+\+VAL}, and \textbf{ tlvp\+\_\+val32be()}.



Referenced by \textbf{ bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+app\+\_\+err\+\_\+rim\+\_\+cont()}, \textbf{ bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont()}, and \textbf{ bssgp\+\_\+dec\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont()}.

\mbox{\label{gprs__bssgp__rim_8c_a71b5c0afabf83968937f90c3a31db958}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!dub\_tlvp\_header@{dub\_tlvp\_header}}
\index{dub\_tlvp\_header@{dub\_tlvp\_header}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{dub\_tlvp\_header()}
{\footnotesize\ttfamily static uint8\+\_\+t $\ast$ dub\+\_\+tlvp\+\_\+header (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{buf,  }\item[{uint8\+\_\+t}]{iei,  }\item[{uint16\+\_\+t}]{len }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ iei}, \textbf{ len()}, \textbf{ TVLV\+\_\+\+HDR\+\_\+\+LEN}, \textbf{ TVLV\+\_\+\+HDR\+\_\+\+MAXLEN}, and \textbf{ TVLV\+\_\+\+MAX\+\_\+\+ONEBYTE}.



Referenced by \textbf{ bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+app\+\_\+err\+\_\+rim\+\_\+cont()}, \textbf{ bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont()}, and \textbf{ bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont()}.

\mbox{\label{gprs__bssgp__rim_8c_a7c8bdba6ec410a1958f1f83896504546}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!enc\_rim\_cont\_common@{enc\_rim\_cont\_common}}
\index{enc\_rim\_cont\_common@{enc\_rim\_cont\_common}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{enc\_rim\_cont\_common()}
{\footnotesize\ttfamily static uint8\+\_\+t $\ast$ enc\+\_\+rim\+\_\+cont\+\_\+common (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{buf,  }\item[{size\+\_\+t}]{len,  }\item[{const struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+x\+\_\+cont} $\ast$}]{cont }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+x\+\_\+cont\+::app\+\_\+id}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RIM\+\_\+\+APP\+\_\+\+IDENTITY}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RIM\+\_\+\+PDU\+\_\+\+INDICATIONS}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RIM\+\_\+\+PROTOCOL\+\_\+\+VERSION}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+RIM\+\_\+\+SEQ\+\_\+\+NR}, \textbf{ len()}, \textbf{ osmo\+\_\+htonl}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+x\+\_\+cont\+::pdu\+\_\+ind}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+x\+\_\+cont\+::prot\+\_\+ver}, \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+x\+\_\+cont\+::seq\+\_\+num}, \textbf{ TVLV\+\_\+\+HDR\+\_\+\+MAXLEN}, and \textbf{ tvlv\+\_\+put()}.



Referenced by \textbf{ bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+app\+\_\+err\+\_\+rim\+\_\+cont()}, \textbf{ bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont()}, and \textbf{ bssgp\+\_\+enc\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont()}.



\doxysubsection{Variable Documentation}
\mbox{\label{gprs__bssgp__rim_8c_adc763578767c9ea0e66ae8d98c8c661a}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_nacc\_cause\_strs@{bssgp\_nacc\_cause\_strs}}
\index{bssgp\_nacc\_cause\_strs@{bssgp\_nacc\_cause\_strs}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_nacc\_cause\_strs}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} bssgp\+\_\+nacc\+\_\+cause\+\_\+strs[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ BSSGP\_NACC\_CAUSE\_UNSPEC,               \textcolor{stringliteral}{"{}unspecified error"{}} \},}
\DoxyCodeLine{        \{ BSSGP\_NACC\_CAUSE\_SYNTAX\_ERR,               \textcolor{stringliteral}{"{}syntax error in app container"{}} \},}
\DoxyCodeLine{        \{ BSSGP\_NACC\_CAUSE\_RPRT\_CELL\_MISSMTCH,  \textcolor{stringliteral}{"{}reporting cell id mismatch"{}} \},}
\DoxyCodeLine{        \{ BSSGP\_NACC\_CAUSE\_SIPSI\_TYPE\_ERR,       \textcolor{stringliteral}{"{}SI/PSI type error"{}} \},}
\DoxyCodeLine{        \{ BSSGP\_NACC\_CAUSE\_SIPSI\_LEN\_ERR, \textcolor{stringliteral}{"{}SI/PSI inconsistent length"{}} \},}
\DoxyCodeLine{        \{ BSSGP\_NACC\_CAUSE\_SIPSI\_SET\_ERR, \textcolor{stringliteral}{"{}inconsistent set of msg"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ bssgp\+\_\+nacc\+\_\+cause\+\_\+str()}.

\mbox{\label{gprs__bssgp__rim_8c_acfc4d4faea92dde12d9c6594eae631d4}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_ran\_inf\_app\_id\_strs@{bssgp\_ran\_inf\_app\_id\_strs}}
\index{bssgp\_ran\_inf\_app\_id\_strs@{bssgp\_ran\_inf\_app\_id\_strs}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_ran\_inf\_app\_id\_strs}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+id\+\_\+strs[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ BSSGP\_RAN\_INF\_APP\_ID\_NACC,   \textcolor{stringliteral}{"{}Network Assisted Cell Change (NACC)"{}} \},}
\DoxyCodeLine{        \{ BSSGP\_RAN\_INF\_APP\_ID\_SI3,     \textcolor{stringliteral}{"{}System Information 3 (SI3)"{}} \},}
\DoxyCodeLine{        \{ BSSGP\_RAN\_INF\_APP\_ID\_MBMS,   \textcolor{stringliteral}{"{}MBMS data channel"{}} \},}
\DoxyCodeLine{        \{ BSSGP\_RAN\_INF\_APP\_ID\_SON,     \textcolor{stringliteral}{"{}SON Transfer"{}} \},}
\DoxyCodeLine{        \{ BSSGP\_RAN\_INF\_APP\_ID\_UTRA\_SI,     \textcolor{stringliteral}{"{}UTRA System Information (UTRA SI)"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+id\+\_\+str()}.

\mbox{\label{gprs__bssgp__rim_8c_a420c591c5149db026bb89db4865820b4}} 
\index{gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}!bssgp\_rim\_routing\_info\_discr\_strs@{bssgp\_rim\_routing\_info\_discr\_strs}}
\index{bssgp\_rim\_routing\_info\_discr\_strs@{bssgp\_rim\_routing\_info\_discr\_strs}!gprs\_bssgp\_rim.c@{gprs\_bssgp\_rim.c}}
\doxysubsubsection{bssgp\_rim\_routing\_info\_discr\_strs}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} bssgp\+\_\+rim\+\_\+routing\+\_\+info\+\_\+discr\+\_\+strs[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ BSSGP\_RIM\_ROUTING\_INFO\_GERAN,             \textcolor{stringliteral}{"{}GERAN-\/cell"{}} \},}
\DoxyCodeLine{        \{ BSSGP\_RIM\_ROUTING\_INFO\_UTRAN,             \textcolor{stringliteral}{"{}UTRAN-\/RNC"{}} \},}
\DoxyCodeLine{        \{ BSSGP\_RIM\_ROUTING\_INFO\_EUTRAN,   \textcolor{stringliteral}{"{}E-\/UTRAN-\/eNodeB/HeNB"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+\_\+discr\+\_\+str()}.

