\doxysection{include/osmocom/gprs/gprs\+\_\+bssgp\+\_\+rim.h File Reference}
\label{gprs__bssgp__rim_8h}\index{include/osmocom/gprs/gprs\_bssgp\_rim.h@{include/osmocom/gprs/gprs\_bssgp\_rim.h}}
{\ttfamily \#include $<$osmocom/gsm/gsm48.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gprs/protocol/gsm\+\_\+08\+\_\+18.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gprs/protocol/gsm\+\_\+24\+\_\+301.\+h$>$}\newline
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info}
\begin{DoxyCompactList}\small\item\em BSSGP RIM Routing information, see also 3GPP TS 48.\+018, section 11.\+3.\+70. \end{DoxyCompactList}\item 
struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+req\+\_\+app\+\_\+cont\+\_\+nacc}
\item 
struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+cont\+\_\+nacc}
\item 
struct \textbf{ bssgp\+\_\+app\+\_\+err\+\_\+cont\+\_\+nacc}
\item 
struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+req\+\_\+rim\+\_\+cont}
\item 
struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+rim\+\_\+cont}
\item 
struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+ack\+\_\+rim\+\_\+cont}
\item 
struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+err\+\_\+rim\+\_\+cont}
\item 
struct \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+err\+\_\+rim\+\_\+cont}
\item 
struct \textbf{ bssgp\+\_\+ran\+\_\+information\+\_\+pdu}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ BSSGP\+\_\+\+RIM\+\_\+\+ROUTING\+\_\+\+INFO\+\_\+\+MAXLEN}~14
\item 
\#define \textbf{ BSSGP\+\_\+\+RIM\+\_\+\+SI\+\_\+\+LEN}~21
\item 
\#define \textbf{ BSSGP\+\_\+\+RIM\+\_\+\+PSI\+\_\+\+LEN}~22
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+\_\+discr} \{ \newline
\textbf{ BSSGP\+\_\+\+RIM\+\_\+\+ROUTING\+\_\+\+INFO\+\_\+\+GERAN}
, \newline
\textbf{ BSSGP\+\_\+\+RIM\+\_\+\+ROUTING\+\_\+\+INFO\+\_\+\+UTRAN}
, \newline
\textbf{ BSSGP\+\_\+\+RIM\+\_\+\+ROUTING\+\_\+\+INFO\+\_\+\+EUTRAN}
 \}
\item 
enum \textbf{ bssgp\+\_\+nacc\+\_\+cause} \{ \newline
\textbf{ BSSGP\+\_\+\+NACC\+\_\+\+CAUSE\+\_\+\+UNSPEC}
, \newline
\textbf{ BSSGP\+\_\+\+NACC\+\_\+\+CAUSE\+\_\+\+SYNTAX\+\_\+\+ERR}
, \newline
\textbf{ BSSGP\+\_\+\+NACC\+\_\+\+CAUSE\+\_\+\+RPRT\+\_\+\+CELL\+\_\+\+MISSMTCH}
, \newline
\textbf{ BSSGP\+\_\+\+NACC\+\_\+\+CAUSE\+\_\+\+SIPSI\+\_\+\+TYPE\+\_\+\+ERR}
, \newline
\textbf{ BSSGP\+\_\+\+NACC\+\_\+\+CAUSE\+\_\+\+SIPSI\+\_\+\+LEN\+\_\+\+ERR}
, \newline
\textbf{ BSSGP\+\_\+\+NACC\+\_\+\+CAUSE\+\_\+\+SIPSI\+\_\+\+SET\+\_\+\+ERR}
 \}
\item 
enum \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+id} \{ \newline
\textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+NACC} = 1
, \newline
\textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+SI3} = 2
, \newline
\textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+MBMS} = 3
, \newline
\textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+SON} = 4
, \newline
\textbf{ BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+UTRA\+\_\+\+SI} = 5
 \}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
static const char $\ast$ \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+\_\+discr\+\_\+str} (enum \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+\_\+discr} val)
\begin{DoxyCompactList}\small\item\em Obtain a human-\/readable string for NACC Cause code. \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\+\_\+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\+\_\+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\+\_\+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 
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 
static const char $\ast$ \textbf{ bssgp\+\_\+nacc\+\_\+cause\+\_\+str} (enum \textbf{ bssgp\+\_\+nacc\+\_\+cause} val)
\begin{DoxyCompactList}\small\item\em Obtain a human-\/readable string for NACC Cause code. \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 const char $\ast$ \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+id\+\_\+str} (enum \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+id} val)
\begin{DoxyCompactList}\small\item\em Obtain a human-\/readable string for RIM Application Identity code. \end{DoxyCompactList}\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 
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}\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_8h_a5bf1f7117629e3714ad8967a4a27a601}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!BSSGP\_RIM\_PSI\_LEN@{BSSGP\_RIM\_PSI\_LEN}}
\index{BSSGP\_RIM\_PSI\_LEN@{BSSGP\_RIM\_PSI\_LEN}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}
\doxysubsubsection{BSSGP\_RIM\_PSI\_LEN}
{\footnotesize\ttfamily \#define BSSGP\+\_\+\+RIM\+\_\+\+PSI\+\_\+\+LEN~22}

\mbox{\label{gprs__bssgp__rim_8h_a0b095eaacd4e819ba2c6f2b3887755a3}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!BSSGP\_RIM\_ROUTING\_INFO\_MAXLEN@{BSSGP\_RIM\_ROUTING\_INFO\_MAXLEN}}
\index{BSSGP\_RIM\_ROUTING\_INFO\_MAXLEN@{BSSGP\_RIM\_ROUTING\_INFO\_MAXLEN}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}
\doxysubsubsection{BSSGP\_RIM\_ROUTING\_INFO\_MAXLEN}
{\footnotesize\ttfamily \#define BSSGP\+\_\+\+RIM\+\_\+\+ROUTING\+\_\+\+INFO\+\_\+\+MAXLEN~14}

\mbox{\label{gprs__bssgp__rim_8h_ad859c973a86c7dc0dec9861954b9f2a4}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!BSSGP\_RIM\_SI\_LEN@{BSSGP\_RIM\_SI\_LEN}}
\index{BSSGP\_RIM\_SI\_LEN@{BSSGP\_RIM\_SI\_LEN}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}
\doxysubsubsection{BSSGP\_RIM\_SI\_LEN}
{\footnotesize\ttfamily \#define BSSGP\+\_\+\+RIM\+\_\+\+SI\+\_\+\+LEN~21}



\doxysubsection{Enumeration Type Documentation}
\mbox{\label{gprs__bssgp__rim_8h_ae02e0dbba0118c446e0d32a8a754ea75}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!bssgp\_nacc\_cause@{bssgp\_nacc\_cause}}
\index{bssgp\_nacc\_cause@{bssgp\_nacc\_cause}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}
\doxysubsubsection{bssgp\_nacc\_cause}
{\footnotesize\ttfamily enum \textbf{ bssgp\+\_\+nacc\+\_\+cause}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{BSSGP\_NACC\_CAUSE\_UNSPEC@{BSSGP\_NACC\_CAUSE\_UNSPEC}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!BSSGP\_NACC\_CAUSE\_UNSPEC@{BSSGP\_NACC\_CAUSE\_UNSPEC}}}\mbox{\label{gprs__bssgp__rim_8h_ae02e0dbba0118c446e0d32a8a754ea75a811f976f6940f6a5481bae244312708c}} 
BSSGP\+\_\+\+NACC\+\_\+\+CAUSE\+\_\+\+UNSPEC&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{BSSGP\_NACC\_CAUSE\_SYNTAX\_ERR@{BSSGP\_NACC\_CAUSE\_SYNTAX\_ERR}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!BSSGP\_NACC\_CAUSE\_SYNTAX\_ERR@{BSSGP\_NACC\_CAUSE\_SYNTAX\_ERR}}}\mbox{\label{gprs__bssgp__rim_8h_ae02e0dbba0118c446e0d32a8a754ea75a7fae9d5d62f263526ac1ada18728a44a}} 
BSSGP\+\_\+\+NACC\+\_\+\+CAUSE\+\_\+\+SYNTAX\+\_\+\+ERR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{BSSGP\_NACC\_CAUSE\_RPRT\_CELL\_MISSMTCH@{BSSGP\_NACC\_CAUSE\_RPRT\_CELL\_MISSMTCH}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!BSSGP\_NACC\_CAUSE\_RPRT\_CELL\_MISSMTCH@{BSSGP\_NACC\_CAUSE\_RPRT\_CELL\_MISSMTCH}}}\mbox{\label{gprs__bssgp__rim_8h_ae02e0dbba0118c446e0d32a8a754ea75a4e16e2b7eecdf04dcbadcc56547b6f37}} 
BSSGP\+\_\+\+NACC\+\_\+\+CAUSE\+\_\+\+RPRT\+\_\+\+CELL\+\_\+\+MISSMTCH&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{BSSGP\_NACC\_CAUSE\_SIPSI\_TYPE\_ERR@{BSSGP\_NACC\_CAUSE\_SIPSI\_TYPE\_ERR}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!BSSGP\_NACC\_CAUSE\_SIPSI\_TYPE\_ERR@{BSSGP\_NACC\_CAUSE\_SIPSI\_TYPE\_ERR}}}\mbox{\label{gprs__bssgp__rim_8h_ae02e0dbba0118c446e0d32a8a754ea75a87c74bff889d1cac9347c77a603e0a4b}} 
BSSGP\+\_\+\+NACC\+\_\+\+CAUSE\+\_\+\+SIPSI\+\_\+\+TYPE\+\_\+\+ERR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{BSSGP\_NACC\_CAUSE\_SIPSI\_LEN\_ERR@{BSSGP\_NACC\_CAUSE\_SIPSI\_LEN\_ERR}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!BSSGP\_NACC\_CAUSE\_SIPSI\_LEN\_ERR@{BSSGP\_NACC\_CAUSE\_SIPSI\_LEN\_ERR}}}\mbox{\label{gprs__bssgp__rim_8h_ae02e0dbba0118c446e0d32a8a754ea75a41c088dc54a85755492af37dda7da247}} 
BSSGP\+\_\+\+NACC\+\_\+\+CAUSE\+\_\+\+SIPSI\+\_\+\+LEN\+\_\+\+ERR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{BSSGP\_NACC\_CAUSE\_SIPSI\_SET\_ERR@{BSSGP\_NACC\_CAUSE\_SIPSI\_SET\_ERR}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!BSSGP\_NACC\_CAUSE\_SIPSI\_SET\_ERR@{BSSGP\_NACC\_CAUSE\_SIPSI\_SET\_ERR}}}\mbox{\label{gprs__bssgp__rim_8h_ae02e0dbba0118c446e0d32a8a754ea75aae3ab658cc623e1e0f2dd30354b07582}} 
BSSGP\+\_\+\+NACC\+\_\+\+CAUSE\+\_\+\+SIPSI\+\_\+\+SET\+\_\+\+ERR&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{gprs__bssgp__rim_8h_a3b8978a0f38942573d9187138808a35c}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!bssgp\_ran\_inf\_app\_id@{bssgp\_ran\_inf\_app\_id}}
\index{bssgp\_ran\_inf\_app\_id@{bssgp\_ran\_inf\_app\_id}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}
\doxysubsubsection{bssgp\_ran\_inf\_app\_id}
{\footnotesize\ttfamily enum \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+id}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{BSSGP\_RAN\_INF\_APP\_ID\_NACC@{BSSGP\_RAN\_INF\_APP\_ID\_NACC}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!BSSGP\_RAN\_INF\_APP\_ID\_NACC@{BSSGP\_RAN\_INF\_APP\_ID\_NACC}}}\mbox{\label{gprs__bssgp__rim_8h_a3b8978a0f38942573d9187138808a35caf0fe171091d6fb18a98776e195b7ea9a}} 
BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+NACC&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{BSSGP\_RAN\_INF\_APP\_ID\_SI3@{BSSGP\_RAN\_INF\_APP\_ID\_SI3}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!BSSGP\_RAN\_INF\_APP\_ID\_SI3@{BSSGP\_RAN\_INF\_APP\_ID\_SI3}}}\mbox{\label{gprs__bssgp__rim_8h_a3b8978a0f38942573d9187138808a35ca9ba39a397c5070d5170737fd14e2dc45}} 
BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+SI3&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{BSSGP\_RAN\_INF\_APP\_ID\_MBMS@{BSSGP\_RAN\_INF\_APP\_ID\_MBMS}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!BSSGP\_RAN\_INF\_APP\_ID\_MBMS@{BSSGP\_RAN\_INF\_APP\_ID\_MBMS}}}\mbox{\label{gprs__bssgp__rim_8h_a3b8978a0f38942573d9187138808a35ca30bee6c5a12312f82f958d3affc88cd6}} 
BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+MBMS&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{BSSGP\_RAN\_INF\_APP\_ID\_SON@{BSSGP\_RAN\_INF\_APP\_ID\_SON}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!BSSGP\_RAN\_INF\_APP\_ID\_SON@{BSSGP\_RAN\_INF\_APP\_ID\_SON}}}\mbox{\label{gprs__bssgp__rim_8h_a3b8978a0f38942573d9187138808a35cadab673a5fb2a3967285dfba2248dba4c}} 
BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+SON&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{BSSGP\_RAN\_INF\_APP\_ID\_UTRA\_SI@{BSSGP\_RAN\_INF\_APP\_ID\_UTRA\_SI}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!BSSGP\_RAN\_INF\_APP\_ID\_UTRA\_SI@{BSSGP\_RAN\_INF\_APP\_ID\_UTRA\_SI}}}\mbox{\label{gprs__bssgp__rim_8h_a3b8978a0f38942573d9187138808a35ca569a439cf129ee29e7d60430c07daaf3}} 
BSSGP\+\_\+\+RAN\+\_\+\+INF\+\_\+\+APP\+\_\+\+ID\+\_\+\+UTRA\+\_\+\+SI&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{gprs__bssgp__rim_8h_af9f0540712eff04e60ce8ab0e2c81489}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!bssgp\_rim\_routing\_info\_discr@{bssgp\_rim\_routing\_info\_discr}}
\index{bssgp\_rim\_routing\_info\_discr@{bssgp\_rim\_routing\_info\_discr}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}
\doxysubsubsection{bssgp\_rim\_routing\_info\_discr}
{\footnotesize\ttfamily enum \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+\_\+discr}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{BSSGP\_RIM\_ROUTING\_INFO\_GERAN@{BSSGP\_RIM\_ROUTING\_INFO\_GERAN}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!BSSGP\_RIM\_ROUTING\_INFO\_GERAN@{BSSGP\_RIM\_ROUTING\_INFO\_GERAN}}}\mbox{\label{gprs__bssgp__rim_8h_af9f0540712eff04e60ce8ab0e2c81489adb752b87ab8f72748e9488b9da3b0b98}} 
BSSGP\+\_\+\+RIM\+\_\+\+ROUTING\+\_\+\+INFO\+\_\+\+GERAN&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{BSSGP\_RIM\_ROUTING\_INFO\_UTRAN@{BSSGP\_RIM\_ROUTING\_INFO\_UTRAN}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!BSSGP\_RIM\_ROUTING\_INFO\_UTRAN@{BSSGP\_RIM\_ROUTING\_INFO\_UTRAN}}}\mbox{\label{gprs__bssgp__rim_8h_af9f0540712eff04e60ce8ab0e2c81489a1268be7afd585517ef00492b0634b28a}} 
BSSGP\+\_\+\+RIM\+\_\+\+ROUTING\+\_\+\+INFO\+\_\+\+UTRAN&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{BSSGP\_RIM\_ROUTING\_INFO\_EUTRAN@{BSSGP\_RIM\_ROUTING\_INFO\_EUTRAN}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!BSSGP\_RIM\_ROUTING\_INFO\_EUTRAN@{BSSGP\_RIM\_ROUTING\_INFO\_EUTRAN}}}\mbox{\label{gprs__bssgp__rim_8h_af9f0540712eff04e60ce8ab0e2c81489a1985bdd848a94f5d287640ef26d6e349}} 
BSSGP\+\_\+\+RIM\+\_\+\+ROUTING\+\_\+\+INFO\+\_\+\+EUTRAN&\\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\mbox{\label{gprs__bssgp__rim_8h_a5143593001047d4acde4b35c6058c245}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!bssgp\_create\_rim\_ri@{bssgp\_create\_rim\_ri}}
\index{bssgp\_create\_rim\_ri@{bssgp\_create\_rim\_ri}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}
\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_8h_a63a248ebb5e91e946655e55b2a64a7d0}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!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.h@{gprs\_bssgp\_rim.h}}
\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_8h_a7ba7c4c81ce8e45de28cbeb1a13586fa}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!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.h@{gprs\_bssgp\_rim.h}}
\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_8h_ab61dbf035e7da34c777e97436908efa3}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!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.h@{gprs\_bssgp\_rim.h}}
\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_8h_ae7d62170b9d2ec5f7724ee566f2e2501}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!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.h@{gprs\_bssgp\_rim.h}}
\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_8h_aafd4199cd6a0337c482a6ee20d0980cb}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!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.h@{gprs\_bssgp\_rim.h}}
\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_8h_ae29d8371d835a224f7706a134f491040}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!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.h@{gprs\_bssgp\_rim.h}}
\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_8h_aabd938c584e74f6a536b867f1663d3ec}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!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.h@{gprs\_bssgp\_rim.h}}
\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_8h_af097b10d8c1adea3cf93e541c2cf305d}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!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.h@{gprs\_bssgp\_rim.h}}
\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_8h_ac0031753573e96f6e19bf977754cd946}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!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.h@{gprs\_bssgp\_rim.h}}
\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_8h_ac5d8be0ccfe34a35fa779fe0d1dc2edd}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!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.h@{gprs\_bssgp\_rim.h}}
\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_8h_ad8d3aaaf579011dc1bd5a952cb118464}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!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.h@{gprs\_bssgp\_rim.h}}
\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_8h_a1e85d8d5638255b6ef8161b1c9c59375}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!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.h@{gprs\_bssgp\_rim.h}}
\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_8h_a54822fb74f80697d8e174785eb5c0234}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!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.h@{gprs\_bssgp\_rim.h}}
\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_8h_a96684f5bf75a31b861ec490654fc730c}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!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.h@{gprs\_bssgp\_rim.h}}
\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_8h_a5310baf1fff0a59333df655011a34546}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!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.h@{gprs\_bssgp\_rim.h}}
\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_8h_a6285c324edc07aac3b20de771eb98a8f}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!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.h@{gprs\_bssgp\_rim.h}}
\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_8h_afcea52a5a0f22ad62874c4b3e9767e45}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!bssgp\_encode\_rim\_pdu@{bssgp\_encode\_rim\_pdu}}
\index{bssgp\_encode\_rim\_pdu@{bssgp\_encode\_rim\_pdu}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}
\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_8h_afa23eaa26b6ca67bf5255761f0a87833}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!bssgp\_nacc\_cause\_str@{bssgp\_nacc\_cause\_str}}
\index{bssgp\_nacc\_cause\_str@{bssgp\_nacc\_cause\_str}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}
\doxysubsubsection{bssgp\_nacc\_cause\_str()}
{\footnotesize\ttfamily static const char $\ast$ bssgp\+\_\+nacc\+\_\+cause\+\_\+str (\begin{DoxyParamCaption}\item[{enum \textbf{ bssgp\+\_\+nacc\+\_\+cause}}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Obtain a human-\/readable string for NACC Cause code. 



References \textbf{ bssgp\+\_\+nacc\+\_\+cause\+\_\+strs}, and \textbf{ get\+\_\+value\+\_\+string()}.

\mbox{\label{gprs__bssgp__rim_8h_a9dad361ddc1031881e09fb82b77cd304}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!bssgp\_parse\_rim\_pdu@{bssgp\_parse\_rim\_pdu}}
\index{bssgp\_parse\_rim\_pdu@{bssgp\_parse\_rim\_pdu}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}
\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_8h_a57e30aff85e97cc09ba9d2149c806213}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!bssgp\_parse\_rim\_ra@{bssgp\_parse\_rim\_ra}}
\index{bssgp\_parse\_rim\_ra@{bssgp\_parse\_rim\_ra}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}
\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_8h_ae5ff42abb32c415ec15bdda9d678223f}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!bssgp\_parse\_rim\_ri@{bssgp\_parse\_rim\_ri}}
\index{bssgp\_parse\_rim\_ri@{bssgp\_parse\_rim\_ri}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}
\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_8h_add9bb30b3b09e2a24ea8c118ba99711d}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!bssgp\_ran\_inf\_app\_id\_str@{bssgp\_ran\_inf\_app\_id\_str}}
\index{bssgp\_ran\_inf\_app\_id\_str@{bssgp\_ran\_inf\_app\_id\_str}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}
\doxysubsubsection{bssgp\_ran\_inf\_app\_id\_str()}
{\footnotesize\ttfamily static const char $\ast$ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+id\+\_\+str (\begin{DoxyParamCaption}\item[{enum \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+id}}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Obtain a human-\/readable string for RIM Application Identity code. 



References \textbf{ bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+id\+\_\+strs}, and \textbf{ get\+\_\+value\+\_\+string()}.

\mbox{\label{gprs__bssgp__rim_8h_aa716d4e414575b3395fd69148d637643}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!bssgp\_rim\_ri\_name@{bssgp\_rim\_ri\_name}}
\index{bssgp\_rim\_ri\_name@{bssgp\_rim\_ri\_name}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}
\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_8h_a8046365ffc5e2128863ab7ee50a836df}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!bssgp\_rim\_ri\_name\_buf@{bssgp\_rim\_ri\_name\_buf}}
\index{bssgp\_rim\_ri\_name\_buf@{bssgp\_rim\_ri\_name\_buf}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}
\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_8h_aefdd445c53a9b8e2eacda62876f816d4}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!bssgp\_rim\_routing\_info\_discr\_str@{bssgp\_rim\_routing\_info\_discr\_str}}
\index{bssgp\_rim\_routing\_info\_discr\_str@{bssgp\_rim\_routing\_info\_discr\_str}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}
\doxysubsubsection{bssgp\_rim\_routing\_info\_discr\_str()}
{\footnotesize\ttfamily static const char $\ast$ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+\_\+discr\+\_\+str (\begin{DoxyParamCaption}\item[{enum \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+\_\+discr}}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



Obtain a human-\/readable string for NACC Cause code. 



References \textbf{ bssgp\+\_\+rim\+\_\+routing\+\_\+info\+\_\+discr\+\_\+strs}, and \textbf{ get\+\_\+value\+\_\+string()}.



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

\mbox{\label{gprs__bssgp__rim_8h_adc8fc5f188d68fdccea3cde20b49004c}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!bssgp\_tx\_rim@{bssgp\_tx\_rim}}
\index{bssgp\_tx\_rim@{bssgp\_tx\_rim}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}
\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_8h_a4505f3574384823e6818c4222820677c}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!bssgp\_tx\_rim\_encoded@{bssgp\_tx\_rim\_encoded}}
\index{bssgp\_tx\_rim\_encoded@{bssgp\_tx\_rim\_encoded}!gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}}
\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}.



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



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

\mbox{\label{gprs__bssgp__rim_8h_acfc4d4faea92dde12d9c6594eae631d4}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!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.h@{gprs\_bssgp\_rim.h}}
\doxysubsubsection{bssgp\_ran\_inf\_app\_id\_strs}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} bssgp\+\_\+ran\+\_\+inf\+\_\+app\+\_\+id\+\_\+strs[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



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

\mbox{\label{gprs__bssgp__rim_8h_a420c591c5149db026bb89db4865820b4}} 
\index{gprs\_bssgp\_rim.h@{gprs\_bssgp\_rim.h}!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.h@{gprs\_bssgp\_rim.h}}
\doxysubsubsection{bssgp\_rim\_routing\_info\_discr\_strs}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} bssgp\+\_\+rim\+\_\+routing\+\_\+info\+\_\+discr\+\_\+strs[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



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

