\doxysection{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}
\label{group__rlp}\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}


RLP (Radio Link Protocol) as per 3GPP TS 24.\+022.  


\doxysubsection*{Files}
\begin{DoxyCompactItemize}
\item 
file \textbf{ rlp.\+h}
\end{DoxyCompactItemize}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded}
\begin{DoxyCompactList}\small\item\em Data structure representing one decoded RLP frame. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ FCS\+\_\+\+SIZE\+\_\+\+BYTES}~3
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \textbf{ osmo\+\_\+rlp\+\_\+ftype} \{ \newline
\textbf{ OSMO\+\_\+\+RLP\+\_\+\+FT\+\_\+U}
, \newline
\textbf{ OSMO\+\_\+\+RLP\+\_\+\+FT\+\_\+S}
, \newline
\textbf{ OSMO\+\_\+\+RLP\+\_\+\+FT\+\_\+\+IS}
 \}
\begin{DoxyCompactList}\small\item\em RLP frame type as per 3GPP TS 24.\+022 Section 5.\+2.\+1. \end{DoxyCompactList}\item 
enum \textbf{ osmo\+\_\+rlp\+\_\+u\+\_\+ftype} \{ \newline
\textbf{ OSMO\+\_\+\+RLP\+\_\+\+U\+\_\+\+FT\+\_\+\+SABM} = 0x07
, \newline
\textbf{ OSMO\+\_\+\+RLP\+\_\+\+U\+\_\+\+FT\+\_\+\+UA} = 0x0c
, \newline
\textbf{ OSMO\+\_\+\+RLP\+\_\+\+U\+\_\+\+FT\+\_\+\+DISC} = 0x08
, \newline
\textbf{ OSMO\+\_\+\+RLP\+\_\+\+U\+\_\+\+FT\+\_\+\+DM} = 0x03
, \newline
\textbf{ OSMO\+\_\+\+RLP\+\_\+\+U\+\_\+\+FT\+\_\+\+NULL} = 0x0f
, \newline
\textbf{ OSMO\+\_\+\+RLP\+\_\+\+U\+\_\+\+FT\+\_\+\+UI} = 0x00
, \newline
\textbf{ OSMO\+\_\+\+RLP\+\_\+\+U\+\_\+\+FT\+\_\+\+XID} = 0x17
, \newline
\textbf{ OSMO\+\_\+\+RLP\+\_\+\+U\+\_\+\+FT\+\_\+\+TEST} = 0x1c
, \newline
\textbf{ OSMO\+\_\+\+RLP\+\_\+\+U\+\_\+\+FT\+\_\+\+REMAP} = 0x11
 \}
\begin{DoxyCompactList}\small\item\em RLP U-\/\+Frame Type as per 3GPP TS 24.\+022 Section 5.\+2.\+1. \end{DoxyCompactList}\item 
enum \textbf{ osmo\+\_\+rlp\+\_\+s\+\_\+ftype} \{ \newline
\textbf{ OSMO\+\_\+\+RLP\+\_\+\+S\+\_\+\+FT\+\_\+\+RR} = 0
, \newline
\textbf{ OSMO\+\_\+\+RLP\+\_\+\+S\+\_\+\+FT\+\_\+\+REJ} = 2
, \newline
\textbf{ OSMO\+\_\+\+RLP\+\_\+\+S\+\_\+\+FT\+\_\+\+RNR} = 1
, \newline
\textbf{ OSMO\+\_\+\+RLP\+\_\+\+S\+\_\+\+FT\+\_\+\+SREJ} = 3
 \}
\begin{DoxyCompactList}\small\item\em RLP S-\/\+Frame type as per 3GPP TS 24.\+022 Section 5.\+2.\+1. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \textbf{ osmo\+\_\+rlp\+\_\+decode} (struct \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded} $\ast$out, uint8\+\_\+t \textbf{ version}, const uint8\+\_\+t $\ast$\textbf{ data}, size\+\_\+t data\+\_\+len)
\begin{DoxyCompactList}\small\item\em decode a RLP frame into its abstract representation. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+rlp\+\_\+encode} (uint8\+\_\+t $\ast$out, size\+\_\+t out\+\_\+size, const struct \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded} $\ast$in)
\begin{DoxyCompactList}\small\item\em encode a RLP frame from its abstract representation. \end{DoxyCompactList}\item 
uint32\+\_\+t \textbf{ osmo\+\_\+rlp\+\_\+fcs\+\_\+compute} (const uint8\+\_\+t $\ast$in, size\+\_\+t in\+\_\+len)
\begin{DoxyCompactList}\small\item\em compute RLP FCS according to 3GPP TS 24.\+022 Section 4.\+4. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
const struct \textbf{ value\+\_\+string} \textbf{ osmo\+\_\+rlp\+\_\+ftype\+\_\+vals} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ osmo\+\_\+rlp\+\_\+ftype\+\_\+u\+\_\+vals} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ osmo\+\_\+rlp\+\_\+ftype\+\_\+s\+\_\+vals} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ osmo\+\_\+rlp\+\_\+ftype\+\_\+vals} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ osmo\+\_\+rlp\+\_\+ftype\+\_\+u\+\_\+vals} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ osmo\+\_\+rlp\+\_\+ftype\+\_\+s\+\_\+vals} [$\,$]
\item 
static const uint32\+\_\+t \textbf{ rlp\+\_\+fcs\+\_\+table} [256]
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
RLP (Radio Link Protocol) as per 3GPP TS 24.\+022. 



\doxysubsection{Macro Definition Documentation}
\mbox{\label{group__rlp_ga6e18ef0503c6aaa6976ef0f6b0d63942}} 
\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!FCS\_SIZE\_BYTES@{FCS\_SIZE\_BYTES}}
\index{FCS\_SIZE\_BYTES@{FCS\_SIZE\_BYTES}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}
\doxysubsubsection{FCS\_SIZE\_BYTES}
{\footnotesize\ttfamily \#define FCS\+\_\+\+SIZE\+\_\+\+BYTES~3}



\doxysubsection{Enumeration Type Documentation}
\mbox{\label{group__rlp_gadb44293873b2e23683a5df4977ed5e1f}} 
\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!osmo\_rlp\_ftype@{osmo\_rlp\_ftype}}
\index{osmo\_rlp\_ftype@{osmo\_rlp\_ftype}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}
\doxysubsubsection{osmo\_rlp\_ftype}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+rlp\+\_\+ftype}}



RLP frame type as per 3GPP TS 24.\+022 Section 5.\+2.\+1. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_RLP\_FT\_U@{OSMO\_RLP\_FT\_U}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!OSMO\_RLP\_FT\_U@{OSMO\_RLP\_FT\_U}}}\mbox{\label{group__rlp_ggadb44293873b2e23683a5df4977ed5e1faeaf2b0ee96e6f950a449ef74152f14e2}} 
OSMO\+\_\+\+RLP\+\_\+\+FT\+\_\+U&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_RLP\_FT\_S@{OSMO\_RLP\_FT\_S}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!OSMO\_RLP\_FT\_S@{OSMO\_RLP\_FT\_S}}}\mbox{\label{group__rlp_ggadb44293873b2e23683a5df4977ed5e1fa2cb884c1dab590f7e3c504bec599f8dc}} 
OSMO\+\_\+\+RLP\+\_\+\+FT\+\_\+S&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_RLP\_FT\_IS@{OSMO\_RLP\_FT\_IS}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!OSMO\_RLP\_FT\_IS@{OSMO\_RLP\_FT\_IS}}}\mbox{\label{group__rlp_ggadb44293873b2e23683a5df4977ed5e1fae6236fbe0b130e923646212db36b2b13}} 
OSMO\+\_\+\+RLP\+\_\+\+FT\+\_\+\+IS&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{group__rlp_ga81fd6bb96eea0eeb0be03e636a7e0e02}} 
\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!osmo\_rlp\_s\_ftype@{osmo\_rlp\_s\_ftype}}
\index{osmo\_rlp\_s\_ftype@{osmo\_rlp\_s\_ftype}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}
\doxysubsubsection{osmo\_rlp\_s\_ftype}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+rlp\+\_\+s\+\_\+ftype}}



RLP S-\/\+Frame type as per 3GPP TS 24.\+022 Section 5.\+2.\+1. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_RLP\_S\_FT\_RR@{OSMO\_RLP\_S\_FT\_RR}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!OSMO\_RLP\_S\_FT\_RR@{OSMO\_RLP\_S\_FT\_RR}}}\mbox{\label{group__rlp_gga81fd6bb96eea0eeb0be03e636a7e0e02a33be646d5d867e460e44849ada17e2e2}} 
OSMO\+\_\+\+RLP\+\_\+\+S\+\_\+\+FT\+\_\+\+RR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_RLP\_S\_FT\_REJ@{OSMO\_RLP\_S\_FT\_REJ}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!OSMO\_RLP\_S\_FT\_REJ@{OSMO\_RLP\_S\_FT\_REJ}}}\mbox{\label{group__rlp_gga81fd6bb96eea0eeb0be03e636a7e0e02af55ac659d5b69bb48577189d9bbf0188}} 
OSMO\+\_\+\+RLP\+\_\+\+S\+\_\+\+FT\+\_\+\+REJ&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_RLP\_S\_FT\_RNR@{OSMO\_RLP\_S\_FT\_RNR}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!OSMO\_RLP\_S\_FT\_RNR@{OSMO\_RLP\_S\_FT\_RNR}}}\mbox{\label{group__rlp_gga81fd6bb96eea0eeb0be03e636a7e0e02af41baaf0a5670a140c378ff5dee4747e}} 
OSMO\+\_\+\+RLP\+\_\+\+S\+\_\+\+FT\+\_\+\+RNR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_RLP\_S\_FT\_SREJ@{OSMO\_RLP\_S\_FT\_SREJ}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!OSMO\_RLP\_S\_FT\_SREJ@{OSMO\_RLP\_S\_FT\_SREJ}}}\mbox{\label{group__rlp_gga81fd6bb96eea0eeb0be03e636a7e0e02a1f345bb18b91445a56f4a07c724c6872}} 
OSMO\+\_\+\+RLP\+\_\+\+S\+\_\+\+FT\+\_\+\+SREJ&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{group__rlp_ga3d5a393756973d8d618a183f85a371d7}} 
\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!osmo\_rlp\_u\_ftype@{osmo\_rlp\_u\_ftype}}
\index{osmo\_rlp\_u\_ftype@{osmo\_rlp\_u\_ftype}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}
\doxysubsubsection{osmo\_rlp\_u\_ftype}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+rlp\+\_\+u\+\_\+ftype}}



RLP U-\/\+Frame Type as per 3GPP TS 24.\+022 Section 5.\+2.\+1. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_RLP\_U\_FT\_SABM@{OSMO\_RLP\_U\_FT\_SABM}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!OSMO\_RLP\_U\_FT\_SABM@{OSMO\_RLP\_U\_FT\_SABM}}}\mbox{\label{group__rlp_gga3d5a393756973d8d618a183f85a371d7ab756132c4e22adcd17d0f88aa393a947}} 
OSMO\+\_\+\+RLP\+\_\+\+U\+\_\+\+FT\+\_\+\+SABM&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_RLP\_U\_FT\_UA@{OSMO\_RLP\_U\_FT\_UA}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!OSMO\_RLP\_U\_FT\_UA@{OSMO\_RLP\_U\_FT\_UA}}}\mbox{\label{group__rlp_gga3d5a393756973d8d618a183f85a371d7afbf9471912209597c3dd237e1ed71555}} 
OSMO\+\_\+\+RLP\+\_\+\+U\+\_\+\+FT\+\_\+\+UA&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_RLP\_U\_FT\_DISC@{OSMO\_RLP\_U\_FT\_DISC}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!OSMO\_RLP\_U\_FT\_DISC@{OSMO\_RLP\_U\_FT\_DISC}}}\mbox{\label{group__rlp_gga3d5a393756973d8d618a183f85a371d7a8f821d3513cc4e6639af8192cc4035c6}} 
OSMO\+\_\+\+RLP\+\_\+\+U\+\_\+\+FT\+\_\+\+DISC&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_RLP\_U\_FT\_DM@{OSMO\_RLP\_U\_FT\_DM}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!OSMO\_RLP\_U\_FT\_DM@{OSMO\_RLP\_U\_FT\_DM}}}\mbox{\label{group__rlp_gga3d5a393756973d8d618a183f85a371d7a9affa8635fc8077558247d2994693db8}} 
OSMO\+\_\+\+RLP\+\_\+\+U\+\_\+\+FT\+\_\+\+DM&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_RLP\_U\_FT\_NULL@{OSMO\_RLP\_U\_FT\_NULL}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!OSMO\_RLP\_U\_FT\_NULL@{OSMO\_RLP\_U\_FT\_NULL}}}\mbox{\label{group__rlp_gga3d5a393756973d8d618a183f85a371d7acbd7a785b9be43b3b929d900adb70040}} 
OSMO\+\_\+\+RLP\+\_\+\+U\+\_\+\+FT\+\_\+\+NULL&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_RLP\_U\_FT\_UI@{OSMO\_RLP\_U\_FT\_UI}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!OSMO\_RLP\_U\_FT\_UI@{OSMO\_RLP\_U\_FT\_UI}}}\mbox{\label{group__rlp_gga3d5a393756973d8d618a183f85a371d7a5bd13bde6088c36fd247a93a1b14e859}} 
OSMO\+\_\+\+RLP\+\_\+\+U\+\_\+\+FT\+\_\+\+UI&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_RLP\_U\_FT\_XID@{OSMO\_RLP\_U\_FT\_XID}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!OSMO\_RLP\_U\_FT\_XID@{OSMO\_RLP\_U\_FT\_XID}}}\mbox{\label{group__rlp_gga3d5a393756973d8d618a183f85a371d7a52b89aa6b27edfeae7627f2c4798bef7}} 
OSMO\+\_\+\+RLP\+\_\+\+U\+\_\+\+FT\+\_\+\+XID&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_RLP\_U\_FT\_TEST@{OSMO\_RLP\_U\_FT\_TEST}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!OSMO\_RLP\_U\_FT\_TEST@{OSMO\_RLP\_U\_FT\_TEST}}}\mbox{\label{group__rlp_gga3d5a393756973d8d618a183f85a371d7a3d644e7c4f4e128d7fe61c5e083e1435}} 
OSMO\+\_\+\+RLP\+\_\+\+U\+\_\+\+FT\+\_\+\+TEST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_RLP\_U\_FT\_REMAP@{OSMO\_RLP\_U\_FT\_REMAP}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!OSMO\_RLP\_U\_FT\_REMAP@{OSMO\_RLP\_U\_FT\_REMAP}}}\mbox{\label{group__rlp_gga3d5a393756973d8d618a183f85a371d7a30e1374f66426bf761d28b667afb6bd3}} 
OSMO\+\_\+\+RLP\+\_\+\+U\+\_\+\+FT\+\_\+\+REMAP&\\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\mbox{\label{group__rlp_ga29e87676c9cdc49c9d9aa0e89c7bf031}} 
\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!osmo\_rlp\_decode@{osmo\_rlp\_decode}}
\index{osmo\_rlp\_decode@{osmo\_rlp\_decode}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}
\doxysubsubsection{osmo\_rlp\_decode()}
{\footnotesize\ttfamily int osmo\+\_\+rlp\+\_\+decode (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded} $\ast$}]{out,  }\item[{uint8\+\_\+t}]{version,  }\item[{const uint8\+\_\+t $\ast$}]{data,  }\item[{size\+\_\+t}]{data\+\_\+len }\end{DoxyParamCaption})}



decode a RLP frame into its abstract representation. 

Doesn\textquotesingle{}t check FCS correctness. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & caller-\/allocated memory for output of decoded frame \\
\hline
\mbox{\texttt{ in}}  & {\em version} & RLP version number to use when decoding \\
\hline
\mbox{\texttt{ in}}  & {\em data} & raw RLP frame input data \\
\hline
\mbox{\texttt{ in}}  & {\em data\+\_\+len} & length of data (in octets); must be 30 (240bit) or 72 (576bit) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 in case of success; negative on error 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded\+::c\+\_\+r}, \textbf{ data}, \textbf{ ENOTSUP}, \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded\+::fcs}, \textbf{ FCS\+\_\+\+SIZE\+\_\+\+BYTES}, \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded\+::ftype}, \textbf{ hdr\+\_\+len}, \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded\+::info}, \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded\+::info\+\_\+len}, \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded\+::n\+\_\+r}, \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded\+::n\+\_\+s}, \textbf{ OSMO\+\_\+\+RLP\+\_\+\+FT\+\_\+\+IS}, \textbf{ OSMO\+\_\+\+RLP\+\_\+\+FT\+\_\+S}, \textbf{ OSMO\+\_\+\+RLP\+\_\+\+FT\+\_\+U}, \textbf{ OSMO\+\_\+\+RLP\+\_\+\+U\+\_\+\+FT\+\_\+\+XID}, \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded\+::p\+\_\+f}, \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded\+::s\+\_\+ftype}, \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded\+::u\+\_\+ftype}, \textbf{ version}, and \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded\+::version}.

\mbox{\label{group__rlp_ga5c6f4859427ed7c0077e84f57d7adcf7}} 
\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!osmo\_rlp\_encode@{osmo\_rlp\_encode}}
\index{osmo\_rlp\_encode@{osmo\_rlp\_encode}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}
\doxysubsubsection{osmo\_rlp\_encode()}
{\footnotesize\ttfamily int osmo\+\_\+rlp\+\_\+encode (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{out,  }\item[{size\+\_\+t}]{out\+\_\+size,  }\item[{const struct \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded} $\ast$}]{in }\end{DoxyParamCaption})}



encode a RLP frame from its abstract representation. 

Generates FCS. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em out} & caller-\/allocated output buffer \\
\hline
\mbox{\texttt{ in}}  & {\em out\+\_\+size} & size of output buffer (in octets); must be 30 (240bit) or 72 (576bit) \\
\hline
\mbox{\texttt{ in}}  & {\em in} & decoded RLP frame which is to be encoded \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
number of output bytes used; negative on error 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded\+::c\+\_\+r}, \textbf{ ENOTSUP}, \textbf{ FCS\+\_\+\+SIZE\+\_\+\+BYTES}, \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded\+::ftype}, \textbf{ hdr\+\_\+len}, \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded\+::info}, \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded\+::info\+\_\+len}, \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded\+::n\+\_\+r}, \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded\+::n\+\_\+s}, \textbf{ osmo\+\_\+rlp\+\_\+fcs\+\_\+compute()}, \textbf{ OSMO\+\_\+\+RLP\+\_\+\+FT\+\_\+\+IS}, \textbf{ OSMO\+\_\+\+RLP\+\_\+\+FT\+\_\+S}, \textbf{ OSMO\+\_\+\+RLP\+\_\+\+FT\+\_\+U}, \textbf{ OSMO\+\_\+\+RLP\+\_\+\+U\+\_\+\+FT\+\_\+\+XID}, \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded\+::p\+\_\+f}, \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded\+::s\+\_\+ftype}, \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded\+::u\+\_\+ftype}, and \textbf{ osmo\+\_\+rlp\+\_\+frame\+\_\+decoded\+::version}.

\mbox{\label{group__rlp_gab6ed53e6554457b776292adb984dba83}} 
\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!osmo\_rlp\_fcs\_compute@{osmo\_rlp\_fcs\_compute}}
\index{osmo\_rlp\_fcs\_compute@{osmo\_rlp\_fcs\_compute}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}
\doxysubsubsection{osmo\_rlp\_fcs\_compute()}
{\footnotesize\ttfamily uint32\+\_\+t osmo\+\_\+rlp\+\_\+fcs\+\_\+compute (\begin{DoxyParamCaption}\item[{const uint8\+\_\+t $\ast$}]{in,  }\item[{size\+\_\+t}]{in\+\_\+len }\end{DoxyParamCaption})}



compute RLP FCS according to 3GPP TS 24.\+022 Section 4.\+4. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em in} & input data over which to compute FCS \\
\hline
\mbox{\texttt{ in}}  & {\em in\+\_\+len} & length of input data (in octets) \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
computed frame check sequence (FCS). 
\end{DoxyReturn}


References \textbf{ rlp\+\_\+fcs\+\_\+table}.



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



\doxysubsection{Variable Documentation}
\mbox{\label{group__rlp_gaa4228730490bd8f6ecf0d8e2f50acc41}} 
\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!osmo\_rlp\_ftype\_s\_vals@{osmo\_rlp\_ftype\_s\_vals}}
\index{osmo\_rlp\_ftype\_s\_vals@{osmo\_rlp\_ftype\_s\_vals}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}
\doxysubsubsection{osmo\_rlp\_ftype\_s\_vals\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} osmo\+\_\+rlp\+\_\+ftype\+\_\+s\+\_\+vals[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}

\mbox{\label{group__rlp_gaa4228730490bd8f6ecf0d8e2f50acc41}} 
\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!osmo\_rlp\_ftype\_s\_vals@{osmo\_rlp\_ftype\_s\_vals}}
\index{osmo\_rlp\_ftype\_s\_vals@{osmo\_rlp\_ftype\_s\_vals}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}
\doxysubsubsection{osmo\_rlp\_ftype\_s\_vals\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} osmo\+\_\+rlp\+\_\+ftype\+\_\+s\+\_\+vals[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ OSMO\_RLP\_S\_FT\_RR,     \textcolor{stringliteral}{"{}RR"{}} \},}
\DoxyCodeLine{        \{ OSMO\_RLP\_S\_FT\_REJ,   \textcolor{stringliteral}{"{}REJ"{}} \},}
\DoxyCodeLine{        \{ OSMO\_RLP\_S\_FT\_RNR,   \textcolor{stringliteral}{"{}RNR"{}} \},}
\DoxyCodeLine{        \{ OSMO\_RLP\_S\_FT\_SREJ, \textcolor{stringliteral}{"{}SREJ"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{group__rlp_ga6bb3ac39612a49ed8b999f4beca8536a}} 
\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!osmo\_rlp\_ftype\_u\_vals@{osmo\_rlp\_ftype\_u\_vals}}
\index{osmo\_rlp\_ftype\_u\_vals@{osmo\_rlp\_ftype\_u\_vals}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}
\doxysubsubsection{osmo\_rlp\_ftype\_u\_vals\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} osmo\+\_\+rlp\+\_\+ftype\+\_\+u\+\_\+vals[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}

\mbox{\label{group__rlp_ga6bb3ac39612a49ed8b999f4beca8536a}} 
\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!osmo\_rlp\_ftype\_u\_vals@{osmo\_rlp\_ftype\_u\_vals}}
\index{osmo\_rlp\_ftype\_u\_vals@{osmo\_rlp\_ftype\_u\_vals}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}
\doxysubsubsection{osmo\_rlp\_ftype\_u\_vals\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} osmo\+\_\+rlp\+\_\+ftype\+\_\+u\+\_\+vals[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ OSMO\_RLP\_U\_FT\_SABM, \textcolor{stringliteral}{"{}SABM"{}} \},}
\DoxyCodeLine{        \{ OSMO\_RLP\_U\_FT\_UA,     \textcolor{stringliteral}{"{}UA"{}} \},}
\DoxyCodeLine{        \{ OSMO\_RLP\_U\_FT\_DISC, \textcolor{stringliteral}{"{}DISC"{}} \},}
\DoxyCodeLine{        \{ OSMO\_RLP\_U\_FT\_DM,     \textcolor{stringliteral}{"{}DM"{}} \},}
\DoxyCodeLine{        \{ OSMO\_RLP\_U\_FT\_NULL, \textcolor{stringliteral}{"{}NULL"{}} \},}
\DoxyCodeLine{        \{ OSMO\_RLP\_U\_FT\_UI,     \textcolor{stringliteral}{"{}UI"{}} \},}
\DoxyCodeLine{        \{ OSMO\_RLP\_U\_FT\_XID,   \textcolor{stringliteral}{"{}XID"{}} \},}
\DoxyCodeLine{        \{ OSMO\_RLP\_U\_FT\_TEST, \textcolor{stringliteral}{"{}TEST"{}} \},}
\DoxyCodeLine{        \{ OSMO\_RLP\_U\_FT\_REMAP,       \textcolor{stringliteral}{"{}REMAP"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{group__rlp_gad1ec7e7b53d63de68ab9bc8de3aa3952}} 
\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!osmo\_rlp\_ftype\_vals@{osmo\_rlp\_ftype\_vals}}
\index{osmo\_rlp\_ftype\_vals@{osmo\_rlp\_ftype\_vals}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}
\doxysubsubsection{osmo\_rlp\_ftype\_vals\hspace{0.1cm}{\footnotesize\ttfamily [1/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} osmo\+\_\+rlp\+\_\+ftype\+\_\+vals[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}

\mbox{\label{group__rlp_gad1ec7e7b53d63de68ab9bc8de3aa3952}} 
\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!osmo\_rlp\_ftype\_vals@{osmo\_rlp\_ftype\_vals}}
\index{osmo\_rlp\_ftype\_vals@{osmo\_rlp\_ftype\_vals}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}
\doxysubsubsection{osmo\_rlp\_ftype\_vals\hspace{0.1cm}{\footnotesize\ttfamily [2/2]}}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} osmo\+\_\+rlp\+\_\+ftype\+\_\+vals[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ OSMO\_RLP\_FT\_U,   \textcolor{stringliteral}{"{}U"{}} \},}
\DoxyCodeLine{        \{ OSMO\_RLP\_FT\_S,   \textcolor{stringliteral}{"{}S"{}} \},}
\DoxyCodeLine{        \{ OSMO\_RLP\_FT\_IS, \textcolor{stringliteral}{"{}IS"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{group__rlp_ga37ddaa7d9ea68f2a535b889ba73d7707}} 
\index{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}!rlp\_fcs\_table@{rlp\_fcs\_table}}
\index{rlp\_fcs\_table@{rlp\_fcs\_table}!GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)@{GSM RLP (Radio Link Protocol) as used in CSD (3GPP TS 24.022)}}
\doxysubsubsection{rlp\_fcs\_table}
{\footnotesize\ttfamily const uint32\+\_\+t rlp\+\_\+fcs\+\_\+table[256]\hspace{0.3cm}{\ttfamily [static]}}



Referenced by \textbf{ osmo\+\_\+rlp\+\_\+fcs\+\_\+compute()}.

