\doxysection{include/osmocom/gsm/iuup.h File Reference}
\label{iuup_8h}\index{include/osmocom/gsm/iuup.h@{include/osmocom/gsm/iuup.h}}
{\ttfamily \#include $<$stdint.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/prim.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gsm/protocol/gsm\+\_\+25\+\_\+415.\+h$>$}\newline
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ osmo\+\_\+iuup\+\_\+tnl\+\_\+prim}
\item 
struct \textbf{ osmo\+\_\+iuup\+\_\+rnl\+\_\+config\+\_\+timer}
\item 
struct \textbf{ osmo\+\_\+iuup\+\_\+rfci}
\item 
struct \textbf{ osmo\+\_\+iuup\+\_\+rnl\+\_\+config}
\item 
struct \textbf{ osmo\+\_\+iuup\+\_\+rnl\+\_\+data}
\item 
struct \textbf{ osmo\+\_\+iuup\+\_\+rnl\+\_\+status}
\item 
struct \textbf{ osmo\+\_\+iuup\+\_\+rnl\+\_\+prim}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ IUUP\+\_\+\+MAX\+\_\+\+SUBFLOWS}~7
\item 
\#define \textbf{ IUUP\+\_\+\+MAX\+\_\+\+RFCIS}~64
\item 
\#define \textbf{ IUUP\+\_\+\+TIMER\+\_\+\+INIT\+\_\+\+T\+\_\+\+DEFAULT}~1000
\item 
\#define \textbf{ IUUP\+\_\+\+TIMER\+\_\+\+TA\+\_\+\+T\+\_\+\+DEFAULT}~500
\item 
\#define \textbf{ IUUP\+\_\+\+TIMER\+\_\+\+RC\+\_\+\+T\+\_\+\+DEFAULT}~500
\item 
\#define \textbf{ IUUP\+\_\+\+TIMER\+\_\+\+INIT\+\_\+\+N\+\_\+\+DEFAULT}~3
\item 
\#define \textbf{ IUUP\+\_\+\+TIMER\+\_\+\+TA\+\_\+\+N\+\_\+\+DEFAULT}~1
\item 
\#define \textbf{ IUUP\+\_\+\+TIMER\+\_\+\+RC\+\_\+\+N\+\_\+\+DEFAULT}~1
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \textbf{ osmo\+\_\+iuup\+\_\+tnl\+\_\+prim\+\_\+type} \{ \textbf{ OSMO\+\_\+\+IUUP\+\_\+\+TNL\+\_\+\+UNITDATA}
 \}
\item 
enum \textbf{ osmo\+\_\+iuup\+\_\+rnl\+\_\+prim\+\_\+type} \{ \newline
\textbf{ OSMO\+\_\+\+IUUP\+\_\+\+RNL\+\_\+\+CONFIG}
, \newline
\textbf{ OSMO\+\_\+\+IUUP\+\_\+\+RNL\+\_\+\+DATA}
, \newline
\textbf{ OSMO\+\_\+\+IUUP\+\_\+\+RNL\+\_\+\+STATUS}
, \newline
\textbf{ OSMO\+\_\+\+IUUP\+\_\+\+RNL\+\_\+\+UNIT\+\_\+\+DATA}
 \}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ osmo\+\_\+iuup\+\_\+instance} $\ast$ \textbf{ osmo\+\_\+iuup\+\_\+instance\+\_\+alloc} (void $\ast$ctx, const char $\ast$id)
\item 
void \textbf{ osmo\+\_\+iuup\+\_\+instance\+\_\+free} (struct \textbf{ osmo\+\_\+iuup\+\_\+instance} $\ast$iui)
\item 
void \textbf{ osmo\+\_\+iuup\+\_\+instance\+\_\+set\+\_\+user\+\_\+prim\+\_\+cb} (struct \textbf{ osmo\+\_\+iuup\+\_\+instance} $\ast$iui, \textbf{ osmo\+\_\+prim\+\_\+cb} func, void $\ast$priv)
\item 
void \textbf{ osmo\+\_\+iuup\+\_\+instance\+\_\+set\+\_\+transport\+\_\+prim\+\_\+cb} (struct \textbf{ osmo\+\_\+iuup\+\_\+instance} $\ast$iui, \textbf{ osmo\+\_\+prim\+\_\+cb} func, void $\ast$priv)
\item 
int \textbf{ osmo\+\_\+iuup\+\_\+tnl\+\_\+prim\+\_\+up} (struct \textbf{ osmo\+\_\+iuup\+\_\+instance} $\ast$iui, struct \textbf{ osmo\+\_\+iuup\+\_\+tnl\+\_\+prim} $\ast$itp)
\item 
int \textbf{ osmo\+\_\+iuup\+\_\+rnl\+\_\+prim\+\_\+down} (struct \textbf{ osmo\+\_\+iuup\+\_\+instance} $\ast$inst, struct \textbf{ osmo\+\_\+iuup\+\_\+rnl\+\_\+prim} $\ast$irp)
\item 
int \textbf{ osmo\+\_\+iuup\+\_\+compute\+\_\+header\+\_\+crc} (const uint8\+\_\+t $\ast$iuup\+\_\+pdu, unsigned int pdu\+\_\+len)
\item 
int \textbf{ osmo\+\_\+iuup\+\_\+compute\+\_\+payload\+\_\+crc} (const uint8\+\_\+t $\ast$iuup\+\_\+pdu, unsigned int pdu\+\_\+len)
\item 
struct \textbf{ osmo\+\_\+iuup\+\_\+rnl\+\_\+prim} $\ast$ \textbf{ osmo\+\_\+iuup\+\_\+rnl\+\_\+prim\+\_\+alloc} (void $\ast$ctx, unsigned int primitive, unsigned int operation, unsigned int size)
\item 
struct \textbf{ osmo\+\_\+iuup\+\_\+tnl\+\_\+prim} $\ast$ \textbf{ osmo\+\_\+iuup\+\_\+tnl\+\_\+prim\+\_\+alloc} (void $\ast$ctx, unsigned int primitive, unsigned int operation, unsigned int size)
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\label{iuup_8h_aeb0067d48fa87bd5ed40d947ca52ac05}} 
\index{iuup.h@{iuup.h}!IUUP\_MAX\_RFCIS@{IUUP\_MAX\_RFCIS}}
\index{IUUP\_MAX\_RFCIS@{IUUP\_MAX\_RFCIS}!iuup.h@{iuup.h}}
\doxysubsubsection{IUUP\_MAX\_RFCIS}
{\footnotesize\ttfamily \#define IUUP\+\_\+\+MAX\+\_\+\+RFCIS~64}

\mbox{\label{iuup_8h_a05cefb5fb311ed17d00cfcc4b76e4980}} 
\index{iuup.h@{iuup.h}!IUUP\_MAX\_SUBFLOWS@{IUUP\_MAX\_SUBFLOWS}}
\index{IUUP\_MAX\_SUBFLOWS@{IUUP\_MAX\_SUBFLOWS}!iuup.h@{iuup.h}}
\doxysubsubsection{IUUP\_MAX\_SUBFLOWS}
{\footnotesize\ttfamily \#define IUUP\+\_\+\+MAX\+\_\+\+SUBFLOWS~7}

\mbox{\label{iuup_8h_ac9c4eef165ca6fcc1093fb9ece41400f}} 
\index{iuup.h@{iuup.h}!IUUP\_TIMER\_INIT\_N\_DEFAULT@{IUUP\_TIMER\_INIT\_N\_DEFAULT}}
\index{IUUP\_TIMER\_INIT\_N\_DEFAULT@{IUUP\_TIMER\_INIT\_N\_DEFAULT}!iuup.h@{iuup.h}}
\doxysubsubsection{IUUP\_TIMER\_INIT\_N\_DEFAULT}
{\footnotesize\ttfamily \#define IUUP\+\_\+\+TIMER\+\_\+\+INIT\+\_\+\+N\+\_\+\+DEFAULT~3}

\mbox{\label{iuup_8h_ab76de95398920d3c49c70d07b5f6b91b}} 
\index{iuup.h@{iuup.h}!IUUP\_TIMER\_INIT\_T\_DEFAULT@{IUUP\_TIMER\_INIT\_T\_DEFAULT}}
\index{IUUP\_TIMER\_INIT\_T\_DEFAULT@{IUUP\_TIMER\_INIT\_T\_DEFAULT}!iuup.h@{iuup.h}}
\doxysubsubsection{IUUP\_TIMER\_INIT\_T\_DEFAULT}
{\footnotesize\ttfamily \#define IUUP\+\_\+\+TIMER\+\_\+\+INIT\+\_\+\+T\+\_\+\+DEFAULT~1000}

\mbox{\label{iuup_8h_adbf75a82649e0115eb61e98b4b6fa79b}} 
\index{iuup.h@{iuup.h}!IUUP\_TIMER\_RC\_N\_DEFAULT@{IUUP\_TIMER\_RC\_N\_DEFAULT}}
\index{IUUP\_TIMER\_RC\_N\_DEFAULT@{IUUP\_TIMER\_RC\_N\_DEFAULT}!iuup.h@{iuup.h}}
\doxysubsubsection{IUUP\_TIMER\_RC\_N\_DEFAULT}
{\footnotesize\ttfamily \#define IUUP\+\_\+\+TIMER\+\_\+\+RC\+\_\+\+N\+\_\+\+DEFAULT~1}

\mbox{\label{iuup_8h_a1c921cdfa7e30498b43370cf1ab74c24}} 
\index{iuup.h@{iuup.h}!IUUP\_TIMER\_RC\_T\_DEFAULT@{IUUP\_TIMER\_RC\_T\_DEFAULT}}
\index{IUUP\_TIMER\_RC\_T\_DEFAULT@{IUUP\_TIMER\_RC\_T\_DEFAULT}!iuup.h@{iuup.h}}
\doxysubsubsection{IUUP\_TIMER\_RC\_T\_DEFAULT}
{\footnotesize\ttfamily \#define IUUP\+\_\+\+TIMER\+\_\+\+RC\+\_\+\+T\+\_\+\+DEFAULT~500}

\mbox{\label{iuup_8h_a740218f5aa8c71f11099d3e47346b747}} 
\index{iuup.h@{iuup.h}!IUUP\_TIMER\_TA\_N\_DEFAULT@{IUUP\_TIMER\_TA\_N\_DEFAULT}}
\index{IUUP\_TIMER\_TA\_N\_DEFAULT@{IUUP\_TIMER\_TA\_N\_DEFAULT}!iuup.h@{iuup.h}}
\doxysubsubsection{IUUP\_TIMER\_TA\_N\_DEFAULT}
{\footnotesize\ttfamily \#define IUUP\+\_\+\+TIMER\+\_\+\+TA\+\_\+\+N\+\_\+\+DEFAULT~1}

\mbox{\label{iuup_8h_ac4d26cca4948d1631c21c64cfad2f01b}} 
\index{iuup.h@{iuup.h}!IUUP\_TIMER\_TA\_T\_DEFAULT@{IUUP\_TIMER\_TA\_T\_DEFAULT}}
\index{IUUP\_TIMER\_TA\_T\_DEFAULT@{IUUP\_TIMER\_TA\_T\_DEFAULT}!iuup.h@{iuup.h}}
\doxysubsubsection{IUUP\_TIMER\_TA\_T\_DEFAULT}
{\footnotesize\ttfamily \#define IUUP\+\_\+\+TIMER\+\_\+\+TA\+\_\+\+T\+\_\+\+DEFAULT~500}



\doxysubsection{Enumeration Type Documentation}
\mbox{\label{iuup_8h_a8c73e261ebfead8bb992046c8379e7d2}} 
\index{iuup.h@{iuup.h}!osmo\_iuup\_rnl\_prim\_type@{osmo\_iuup\_rnl\_prim\_type}}
\index{osmo\_iuup\_rnl\_prim\_type@{osmo\_iuup\_rnl\_prim\_type}!iuup.h@{iuup.h}}
\doxysubsubsection{osmo\_iuup\_rnl\_prim\_type}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+iuup\+\_\+rnl\+\_\+prim\+\_\+type}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_IUUP\_RNL\_CONFIG@{OSMO\_IUUP\_RNL\_CONFIG}!iuup.h@{iuup.h}}\index{iuup.h@{iuup.h}!OSMO\_IUUP\_RNL\_CONFIG@{OSMO\_IUUP\_RNL\_CONFIG}}}\mbox{\label{iuup_8h_a8c73e261ebfead8bb992046c8379e7d2a10217fa04592f798600fec3fba916836}} 
OSMO\+\_\+\+IUUP\+\_\+\+RNL\+\_\+\+CONFIG&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_IUUP\_RNL\_DATA@{OSMO\_IUUP\_RNL\_DATA}!iuup.h@{iuup.h}}\index{iuup.h@{iuup.h}!OSMO\_IUUP\_RNL\_DATA@{OSMO\_IUUP\_RNL\_DATA}}}\mbox{\label{iuup_8h_a8c73e261ebfead8bb992046c8379e7d2a5e7fcc5bab308df93c2c8130690647c1}} 
OSMO\+\_\+\+IUUP\+\_\+\+RNL\+\_\+\+DATA&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_IUUP\_RNL\_STATUS@{OSMO\_IUUP\_RNL\_STATUS}!iuup.h@{iuup.h}}\index{iuup.h@{iuup.h}!OSMO\_IUUP\_RNL\_STATUS@{OSMO\_IUUP\_RNL\_STATUS}}}\mbox{\label{iuup_8h_a8c73e261ebfead8bb992046c8379e7d2a15250e4b6efe9a90f621e101b76a8a16}} 
OSMO\+\_\+\+IUUP\+\_\+\+RNL\+\_\+\+STATUS&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_IUUP\_RNL\_UNIT\_DATA@{OSMO\_IUUP\_RNL\_UNIT\_DATA}!iuup.h@{iuup.h}}\index{iuup.h@{iuup.h}!OSMO\_IUUP\_RNL\_UNIT\_DATA@{OSMO\_IUUP\_RNL\_UNIT\_DATA}}}\mbox{\label{iuup_8h_a8c73e261ebfead8bb992046c8379e7d2a911a8f8bf4848347f17ddfec1eef240e}} 
OSMO\+\_\+\+IUUP\+\_\+\+RNL\+\_\+\+UNIT\+\_\+\+DATA&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{iuup_8h_a61aad5483d92f6c73d3ef7be7ecc1e08}} 
\index{iuup.h@{iuup.h}!osmo\_iuup\_tnl\_prim\_type@{osmo\_iuup\_tnl\_prim\_type}}
\index{osmo\_iuup\_tnl\_prim\_type@{osmo\_iuup\_tnl\_prim\_type}!iuup.h@{iuup.h}}
\doxysubsubsection{osmo\_iuup\_tnl\_prim\_type}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+iuup\+\_\+tnl\+\_\+prim\+\_\+type}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_IUUP\_TNL\_UNITDATA@{OSMO\_IUUP\_TNL\_UNITDATA}!iuup.h@{iuup.h}}\index{iuup.h@{iuup.h}!OSMO\_IUUP\_TNL\_UNITDATA@{OSMO\_IUUP\_TNL\_UNITDATA}}}\mbox{\label{iuup_8h_a61aad5483d92f6c73d3ef7be7ecc1e08afb9d1157d02cbd356e551660aa46f161}} 
OSMO\+\_\+\+IUUP\+\_\+\+TNL\+\_\+\+UNITDATA&\\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\mbox{\label{iuup_8h_a536b163eb2b8572c42a8feb31670f7c2}} 
\index{iuup.h@{iuup.h}!osmo\_iuup\_compute\_header\_crc@{osmo\_iuup\_compute\_header\_crc}}
\index{osmo\_iuup\_compute\_header\_crc@{osmo\_iuup\_compute\_header\_crc}!iuup.h@{iuup.h}}
\doxysubsubsection{osmo\_iuup\_compute\_header\_crc()}
{\footnotesize\ttfamily int osmo\+\_\+iuup\+\_\+compute\+\_\+header\+\_\+crc (\begin{DoxyParamCaption}\item[{const uint8\+\_\+t $\ast$}]{iuup\+\_\+pdu,  }\item[{unsigned int}]{pdu\+\_\+len }\end{DoxyParamCaption})}



References \textbf{ iuup\+\_\+hdr\+\_\+crc\+\_\+code}, \textbf{ osmo\+\_\+crc8gen\+\_\+compute\+\_\+bits()}, and \textbf{ osmo\+\_\+pbit2ubit()}.



Referenced by \textbf{ itp\+\_\+ctrl\+\_\+ack\+\_\+alloc()}, \textbf{ iuup\+\_\+verify\+\_\+pdu()}, \textbf{ rnl\+\_\+to\+\_\+tnl\+\_\+data()}, \textbf{ tnp\+\_\+ctrl\+\_\+init\+\_\+alloc()}, and \textbf{ tnp\+\_\+ctrl\+\_\+nack\+\_\+alloc()}.

\mbox{\label{iuup_8h_a2916354946ac10eb982aa4102cbc9536}} 
\index{iuup.h@{iuup.h}!osmo\_iuup\_compute\_payload\_crc@{osmo\_iuup\_compute\_payload\_crc}}
\index{osmo\_iuup\_compute\_payload\_crc@{osmo\_iuup\_compute\_payload\_crc}!iuup.h@{iuup.h}}
\doxysubsubsection{osmo\_iuup\_compute\_payload\_crc()}
{\footnotesize\ttfamily int osmo\+\_\+iuup\+\_\+compute\+\_\+payload\+\_\+crc (\begin{DoxyParamCaption}\item[{const uint8\+\_\+t $\ast$}]{iuup\+\_\+pdu,  }\item[{unsigned int}]{pdu\+\_\+len }\end{DoxyParamCaption})}



References \textbf{ iuup\+\_\+data\+\_\+crc\+\_\+code}, \textbf{ iuup\+\_\+get\+\_\+payload\+\_\+offset()}, \textbf{ osmo\+\_\+crc16gen\+\_\+compute\+\_\+bits()}, \textbf{ osmo\+\_\+pbit2ubit()}, and \textbf{ pdu\+\_\+type}.



Referenced by \textbf{ iuup\+\_\+verify\+\_\+pdu()}, \textbf{ rnl\+\_\+to\+\_\+tnl\+\_\+data()}, and \textbf{ tnp\+\_\+ctrl\+\_\+init\+\_\+alloc()}.

\mbox{\label{iuup_8h_a5209d2e809c9cdff6d03b9748aec8853}} 
\index{iuup.h@{iuup.h}!osmo\_iuup\_instance\_alloc@{osmo\_iuup\_instance\_alloc}}
\index{osmo\_iuup\_instance\_alloc@{osmo\_iuup\_instance\_alloc}!iuup.h@{iuup.h}}
\doxysubsubsection{osmo\_iuup\_instance\_alloc()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+iuup\+\_\+instance} $\ast$ osmo\+\_\+iuup\+\_\+instance\+\_\+alloc (\begin{DoxyParamCaption}\item[{void $\ast$}]{ctx,  }\item[{const char $\ast$}]{id }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+iuup\+\_\+instance\+::fi}, \textbf{ iuup\+\_\+fsm}, \textbf{ LOGL\+\_\+\+DEBUG}, and \textbf{ osmo\+\_\+fsm\+\_\+inst\+\_\+alloc()}.

\mbox{\label{iuup_8h_a924d36e14e9d146c873314bc94ef18b0}} 
\index{iuup.h@{iuup.h}!osmo\_iuup\_instance\_free@{osmo\_iuup\_instance\_free}}
\index{osmo\_iuup\_instance\_free@{osmo\_iuup\_instance\_free}!iuup.h@{iuup.h}}
\doxysubsubsection{osmo\_iuup\_instance\_free()}
{\footnotesize\ttfamily void osmo\+\_\+iuup\+\_\+instance\+\_\+free (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+iuup\+\_\+instance} $\ast$}]{iui }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+iuup\+\_\+instance\+::fi}, and \textbf{ osmo\+\_\+fsm\+\_\+inst\+\_\+free()}.

\mbox{\label{iuup_8h_a0773a45132df0b8549ec0d9a934594a8}} 
\index{iuup.h@{iuup.h}!osmo\_iuup\_instance\_set\_transport\_prim\_cb@{osmo\_iuup\_instance\_set\_transport\_prim\_cb}}
\index{osmo\_iuup\_instance\_set\_transport\_prim\_cb@{osmo\_iuup\_instance\_set\_transport\_prim\_cb}!iuup.h@{iuup.h}}
\doxysubsubsection{osmo\_iuup\_instance\_set\_transport\_prim\_cb()}
{\footnotesize\ttfamily void osmo\+\_\+iuup\+\_\+instance\+\_\+set\+\_\+transport\+\_\+prim\+\_\+cb (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+iuup\+\_\+instance} $\ast$}]{iui,  }\item[{\textbf{ osmo\+\_\+prim\+\_\+cb}}]{func,  }\item[{void $\ast$}]{priv }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+iuup\+\_\+instance\+::transport\+\_\+prim\+\_\+cb}, and \textbf{ osmo\+\_\+iuup\+\_\+instance\+::transport\+\_\+prim\+\_\+priv}.

\mbox{\label{iuup_8h_a7093d1b36c1a1a64e3afe8ce7ed7f7e6}} 
\index{iuup.h@{iuup.h}!osmo\_iuup\_instance\_set\_user\_prim\_cb@{osmo\_iuup\_instance\_set\_user\_prim\_cb}}
\index{osmo\_iuup\_instance\_set\_user\_prim\_cb@{osmo\_iuup\_instance\_set\_user\_prim\_cb}!iuup.h@{iuup.h}}
\doxysubsubsection{osmo\_iuup\_instance\_set\_user\_prim\_cb()}
{\footnotesize\ttfamily void osmo\+\_\+iuup\+\_\+instance\+\_\+set\+\_\+user\+\_\+prim\+\_\+cb (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+iuup\+\_\+instance} $\ast$}]{iui,  }\item[{\textbf{ osmo\+\_\+prim\+\_\+cb}}]{func,  }\item[{void $\ast$}]{priv }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+iuup\+\_\+instance\+::user\+\_\+prim\+\_\+cb}, and \textbf{ osmo\+\_\+iuup\+\_\+instance\+::user\+\_\+prim\+\_\+priv}.

\mbox{\label{iuup_8h_a071f1db4d7deb9263633935dd82dd282}} 
\index{iuup.h@{iuup.h}!osmo\_iuup\_rnl\_prim\_alloc@{osmo\_iuup\_rnl\_prim\_alloc}}
\index{osmo\_iuup\_rnl\_prim\_alloc@{osmo\_iuup\_rnl\_prim\_alloc}!iuup.h@{iuup.h}}
\doxysubsubsection{osmo\_iuup\_rnl\_prim\_alloc()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+iuup\+\_\+rnl\+\_\+prim} $\ast$ osmo\+\_\+iuup\+\_\+rnl\+\_\+prim\+\_\+alloc (\begin{DoxyParamCaption}\item[{void $\ast$}]{ctx,  }\item[{unsigned int}]{primitive,  }\item[{unsigned int}]{operation,  }\item[{unsigned int}]{size }\end{DoxyParamCaption})}



References \textbf{ msg}, \textbf{ osmo\+\_\+iuup\+\_\+rnl\+\_\+prim\+::oph}, \textbf{ osmo\+\_\+iuup\+\_\+msgb\+\_\+alloc\+\_\+c()}, \textbf{ osmo\+\_\+prim\+\_\+init()}, and \textbf{ SAP\+\_\+\+IUUP\+\_\+\+RNL}.



Referenced by \textbf{ irp\+\_\+init\+\_\+ind\+\_\+alloc()}.

\mbox{\label{iuup_8h_acbe8cfa08b5395de7df26fa14bcc7fa6}} 
\index{iuup.h@{iuup.h}!osmo\_iuup\_rnl\_prim\_down@{osmo\_iuup\_rnl\_prim\_down}}
\index{osmo\_iuup\_rnl\_prim\_down@{osmo\_iuup\_rnl\_prim\_down}!iuup.h@{iuup.h}}
\doxysubsubsection{osmo\_iuup\_rnl\_prim\_down()}
{\footnotesize\ttfamily int osmo\+\_\+iuup\+\_\+rnl\+\_\+prim\+\_\+down (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+iuup\+\_\+instance} $\ast$}]{inst,  }\item[{struct \textbf{ osmo\+\_\+iuup\+\_\+rnl\+\_\+prim} $\ast$}]{irp }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+iuup\+\_\+instance\+::fi}, \textbf{ IUUP\+\_\+\+FSM\+\_\+\+EVT\+\_\+\+IUUP\+\_\+\+CONFIG\+\_\+\+REQ}, \textbf{ IUUP\+\_\+\+FSM\+\_\+\+EVT\+\_\+\+IUUP\+\_\+\+DATA\+\_\+\+REQ}, \textbf{ IUUP\+\_\+\+FSM\+\_\+\+EVT\+\_\+\+IUUP\+\_\+\+STATUS\+\_\+\+REQ}, \textbf{ osmo\+\_\+prim\+\_\+hdr\+::msg}, \textbf{ msgb\+\_\+free()}, \textbf{ osmo\+\_\+iuup\+\_\+rnl\+\_\+prim\+::oph}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ osmo\+\_\+fsm\+\_\+inst\+\_\+dispatch}, \textbf{ OSMO\+\_\+\+IUUP\+\_\+\+RNL\+\_\+\+CONFIG}, \textbf{ OSMO\+\_\+\+IUUP\+\_\+\+RNL\+\_\+\+DATA}, \textbf{ OSMO\+\_\+\+IUUP\+\_\+\+RNL\+\_\+\+STATUS}, \textbf{ OSMO\+\_\+\+PRIM}, \textbf{ OSMO\+\_\+\+PRIM\+\_\+\+HDR}, \textbf{ PRIM\+\_\+\+OP\+\_\+\+REQUEST}, \textbf{ osmo\+\_\+prim\+\_\+hdr\+::sap}, and \textbf{ SAP\+\_\+\+IUUP\+\_\+\+RNL}.

\mbox{\label{iuup_8h_ac10fd2477383bccb7b52e09013ccaf77}} 
\index{iuup.h@{iuup.h}!osmo\_iuup\_tnl\_prim\_alloc@{osmo\_iuup\_tnl\_prim\_alloc}}
\index{osmo\_iuup\_tnl\_prim\_alloc@{osmo\_iuup\_tnl\_prim\_alloc}!iuup.h@{iuup.h}}
\doxysubsubsection{osmo\_iuup\_tnl\_prim\_alloc()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+iuup\+\_\+tnl\+\_\+prim} $\ast$ osmo\+\_\+iuup\+\_\+tnl\+\_\+prim\+\_\+alloc (\begin{DoxyParamCaption}\item[{void $\ast$}]{ctx,  }\item[{unsigned int}]{primitive,  }\item[{unsigned int}]{operation,  }\item[{unsigned int}]{size }\end{DoxyParamCaption})}



References \textbf{ msg}, \textbf{ osmo\+\_\+iuup\+\_\+tnl\+\_\+prim\+::oph}, \textbf{ osmo\+\_\+iuup\+\_\+msgb\+\_\+alloc\+\_\+c()}, \textbf{ osmo\+\_\+prim\+\_\+init()}, and \textbf{ SAP\+\_\+\+IUUP\+\_\+\+TNL}.



Referenced by \textbf{ itp\+\_\+ctrl\+\_\+ack\+\_\+alloc()}, \textbf{ tnp\+\_\+ctrl\+\_\+init\+\_\+alloc()}, and \textbf{ tnp\+\_\+ctrl\+\_\+nack\+\_\+alloc()}.

\mbox{\label{iuup_8h_a68b1eda93c25f565a75767d340942925}} 
\index{iuup.h@{iuup.h}!osmo\_iuup\_tnl\_prim\_up@{osmo\_iuup\_tnl\_prim\_up}}
\index{osmo\_iuup\_tnl\_prim\_up@{osmo\_iuup\_tnl\_prim\_up}!iuup.h@{iuup.h}}
\doxysubsubsection{osmo\_iuup\_tnl\_prim\_up()}
{\footnotesize\ttfamily int osmo\+\_\+iuup\+\_\+tnl\+\_\+prim\+\_\+up (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+iuup\+\_\+instance} $\ast$}]{iui,  }\item[{struct \textbf{ osmo\+\_\+iuup\+\_\+tnl\+\_\+prim} $\ast$}]{itp }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+iuup\+\_\+instance\+::fi}, \textbf{ IUUP\+\_\+\+AN\+\_\+\+ACK}, \textbf{ IUUP\+\_\+\+AN\+\_\+\+NACK}, \textbf{ IUUP\+\_\+\+AN\+\_\+\+PROCEDURE}, \textbf{ IUUP\+\_\+\+FSM\+\_\+\+EVT\+\_\+\+INIT}, \textbf{ IUUP\+\_\+\+FSM\+\_\+\+EVT\+\_\+\+INIT\+\_\+\+NACK}, \textbf{ IUUP\+\_\+\+FSM\+\_\+\+EVT\+\_\+\+IUUP\+\_\+\+DATA\+\_\+\+IND}, \textbf{ IUUP\+\_\+\+FSM\+\_\+\+EVT\+\_\+\+LAST\+\_\+\+INIT\+\_\+\+ACK}, \textbf{ iuup\+\_\+get\+\_\+pdu\+\_\+type()}, \textbf{ IUUP\+\_\+\+PDU\+\_\+\+T\+\_\+\+CONTROL}, \textbf{ IUUP\+\_\+\+PDU\+\_\+\+T\+\_\+\+DATA\+\_\+\+CRC}, \textbf{ IUUP\+\_\+\+PDU\+\_\+\+T\+\_\+\+DATA\+\_\+\+NOCRC}, \textbf{ IUUP\+\_\+\+PROC\+\_\+\+ERR\+\_\+\+EVENT}, \textbf{ IUUP\+\_\+\+PROC\+\_\+\+INIT}, \textbf{ IUUP\+\_\+\+PROC\+\_\+\+RATE\+\_\+\+CTRL}, \textbf{ IUUP\+\_\+\+PROC\+\_\+\+TIME\+\_\+\+ALIGN}, \textbf{ iuup\+\_\+verify\+\_\+pdu()}, \textbf{ msgb\+::l3h}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGPFSML}, \textbf{ osmo\+\_\+prim\+\_\+hdr\+::msg}, \textbf{ msgb\+\_\+l2}, \textbf{ msgb\+\_\+l2len()}, \textbf{ osmo\+\_\+iuup\+\_\+tnl\+\_\+prim\+::oph}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ osmo\+\_\+fsm\+\_\+inst\+\_\+dispatch}, \textbf{ osmo\+\_\+hexdump()}, \textbf{ OSMO\+\_\+\+IUUP\+\_\+\+TNL\+\_\+\+UNITDATA}, \textbf{ OSMO\+\_\+\+PRIM}, \textbf{ OSMO\+\_\+\+PRIM\+\_\+\+HDR}, \textbf{ PRIM\+\_\+\+OP\+\_\+\+INDICATION}, \textbf{ osmo\+\_\+prim\+\_\+hdr\+::sap}, and \textbf{ SAP\+\_\+\+IUUP\+\_\+\+TNL}.

