\doxysection{LAPDm implementation according to GSM TS 04.06}
\label{group__lapdm}\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsection*{Files}
\begin{DoxyCompactItemize}
\item 
file \textbf{ lapdm.\+h}
\item 
file \textbf{ lapdm.\+c}
\begin{DoxyCompactList}\small\item\em GSM LAPDm (TS 04.\+06) implementation. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ lapdm\+\_\+msg\+\_\+ctx}
\begin{DoxyCompactList}\small\item\em LAPDm message context. \end{DoxyCompactList}\item 
struct \textbf{ lapdm\+\_\+datalink}
\begin{DoxyCompactList}\small\item\em LAPDm datalink like TS 04.\+06 / Section 3.\+5.\+2. \end{DoxyCompactList}\item 
struct \textbf{ lapdm\+\_\+entity}
\begin{DoxyCompactList}\small\item\em a LAPDm Entity \end{DoxyCompactList}\item 
struct \textbf{ lapdm\+\_\+channel}
\begin{DoxyCompactList}\small\item\em the two lapdm\+\_\+entities that form a GSM logical channel (ACCH + DCCH) \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ LAPDM\+\_\+\+ENT\+\_\+\+F\+\_\+\+EMPTY\+\_\+\+FRAME}~0x0001
\item 
\#define \textbf{ LAPDM\+\_\+\+ENT\+\_\+\+F\+\_\+\+POLLING\+\_\+\+ONLY}~0x0002
\item 
\#define \textbf{ LAPDM\+\_\+\+ENT\+\_\+\+F\+\_\+\+DROP\+\_\+2\+ND\+\_\+\+REJ}~0x0004
\item 
\#define \textbf{ LAPDM\+\_\+\+ENT\+\_\+\+F\+\_\+\+RTS}~0x0008
\item 
\#define \textbf{ LAPD\+\_\+\+U\+\_\+\+SABM}~0x7
\item 
\#define \textbf{ LAPDm\+\_\+\+LPD\+\_\+\+NORMAL}~0
\item 
\#define \textbf{ LAPDm\+\_\+\+LPD\+\_\+\+SMSCB}~1
\item 
\#define \textbf{ LAPDm\+\_\+\+SAPI\+\_\+\+NORMAL}~0
\item 
\#define \textbf{ LAPDm\+\_\+\+SAPI\+\_\+\+SMS}~3
\item 
\#define \textbf{ LAPDm\+\_\+\+ADDR}(lpd,  sapi,  cr)~((((lpd) \& 0x3) $<$$<$ 5) $\vert$ (((sapi) \& 0x7) $<$$<$ 2) $\vert$ (((cr) \& 0x1) $<$$<$ 1) $\vert$ 0x1)
\item 
\#define \textbf{ LAPDm\+\_\+\+ADDR\+\_\+\+LPD}(addr)~(((addr) $>$$>$ 5) \& 0x3)
\item 
\#define \textbf{ LAPDm\+\_\+\+ADDR\+\_\+\+SAPI}(addr)~(((addr) $>$$>$ 2) \& 0x7)
\item 
\#define \textbf{ LAPDm\+\_\+\+ADDR\+\_\+\+CR}(addr)~(((addr) $>$$>$ 1) \& 0x1)
\item 
\#define \textbf{ LAPDm\+\_\+\+ADDR\+\_\+\+EA}(addr)~((addr) \& 0x1)
\item 
\#define \textbf{ LAPDm\+\_\+\+ADDR\+\_\+\+SHORT\+\_\+\+L2}(addr)~((addr) \& 0x3)
\item 
\#define \textbf{ LAPDm\+\_\+\+CTRL\+\_\+I}(nr,  ns,  p)~((((nr) \& 0x7) $<$$<$ 5) $\vert$ (((p) \& 0x1) $<$$<$ 4) $\vert$ (((ns) \& 0x7) $<$$<$ 1))
\item 
\#define \textbf{ LAPDm\+\_\+\+CTRL\+\_\+S}(nr,  s,  p)~((((nr) \& 0x7) $<$$<$ 5) $\vert$ (((p) \& 0x1) $<$$<$ 4) $\vert$ (((s) \& 0x3) $<$$<$ 2) $\vert$ 0x1)
\item 
\#define \textbf{ LAPDm\+\_\+\+CTRL\+\_\+U}(u,  p)~((((u) \& 0x1c) $<$$<$ (5-\/2)) $\vert$ (((p) \& 0x1) $<$$<$ 4) $\vert$ (((u) \& 0x3) $<$$<$ 2) $\vert$ 0x3)
\item 
\#define \textbf{ LAPDm\+\_\+\+CTRL\+\_\+is\+\_\+I}(ctrl)~(((ctrl) \& 0x1) == 0)
\item 
\#define \textbf{ LAPDm\+\_\+\+CTRL\+\_\+is\+\_\+S}(ctrl)~(((ctrl) \& 0x3) == 1)
\item 
\#define \textbf{ LAPDm\+\_\+\+CTRL\+\_\+is\+\_\+U}(ctrl)~(((ctrl) \& 0x3) == 3)
\item 
\#define \textbf{ LAPDm\+\_\+\+CTRL\+\_\+\+U\+\_\+\+BITS}(ctrl)~((((ctrl) \& 0xC) $>$$>$ 2) $\vert$ ((ctrl) \& 0x\+E0) $>$$>$ 3)
\item 
\#define \textbf{ LAPDm\+\_\+\+CTRL\+\_\+\+PF\+\_\+\+BIT}(ctrl)~(((ctrl) $>$$>$ 4) \& 0x1)
\item 
\#define \textbf{ LAPDm\+\_\+\+CTRL\+\_\+\+S\+\_\+\+BITS}(ctrl)~(((ctrl) \& 0xC) $>$$>$ 2)
\item 
\#define \textbf{ LAPDm\+\_\+\+CTRL\+\_\+\+I\+\_\+\+Ns}(ctrl)~(((ctrl) \& 0xE) $>$$>$ 1)
\item 
\#define \textbf{ LAPDm\+\_\+\+CTRL\+\_\+\+Nr}(ctrl)~(((ctrl) \& 0x\+E0) $>$$>$ 5)
\item 
\#define \textbf{ LAPDm\+\_\+\+LEN}(\textbf{ len})~((\textbf{ len} $<$$<$ 2) $\vert$ 0x1)
\item 
\#define \textbf{ LAPDm\+\_\+\+MORE}~0x2
\item 
\#define \textbf{ LAPDm\+\_\+\+EL}~0x1
\item 
\#define \textbf{ LAPDm\+\_\+\+U\+\_\+\+UI}~0x0
\item 
\#define \textbf{ N201\+\_\+\+AB\+\_\+\+SACCH}~18
\item 
\#define \textbf{ N201\+\_\+\+AB\+\_\+\+SDCCH}~20
\item 
\#define \textbf{ N201\+\_\+\+AB\+\_\+\+FACCH}~20
\item 
\#define \textbf{ N201\+\_\+\+Bbis}~23
\item 
\#define \textbf{ N201\+\_\+\+Bter\+\_\+\+SACCH}~21
\item 
\#define \textbf{ N201\+\_\+\+Bter\+\_\+\+SDCCH}~23
\item 
\#define \textbf{ N201\+\_\+\+Bter\+\_\+\+FACCH}~23
\item 
\#define \textbf{ N201\+\_\+\+B4}~19
\item 
\#define \textbf{ N200\+\_\+\+EST\+\_\+\+REL}~5
\item 
\#define \textbf{ N200\+\_\+\+TR\+\_\+\+SACCH}~5
\item 
\#define \textbf{ N200\+\_\+\+TR\+\_\+\+SDCCH}~23
\item 
\#define \textbf{ N200\+\_\+\+TR\+\_\+\+FACCH\+\_\+\+FR}~34
\item 
\#define \textbf{ N200\+\_\+\+TR\+\_\+\+EFACCH\+\_\+\+FR}~48
\item 
\#define \textbf{ N200\+\_\+\+TR\+\_\+\+FACCH\+\_\+\+HR}~29
\item 
\#define \textbf{ N200}~\textbf{ N200\+\_\+\+TR\+\_\+\+SDCCH}
\end{DoxyCompactItemize}
\doxysubsection*{Typedefs}
\begin{DoxyCompactItemize}
\item 
typedef int($\ast$ \textbf{ lapdm\+\_\+cb\+\_\+t}) (struct \textbf{ msgb} $\ast$\textbf{ msg}, struct \textbf{ lapdm\+\_\+entity} $\ast$le, void $\ast$ctx)
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \textbf{ lapdm\+\_\+mode} \{ \newline
\textbf{ LAPDM\+\_\+\+MODE\+\_\+\+MS}
, \newline
\textbf{ LAPDM\+\_\+\+MODE\+\_\+\+BTS}
 \}
\begin{DoxyCompactList}\small\item\em LAPDm mode/role. \end{DoxyCompactList}\item 
enum \textbf{ lapdm\+\_\+dl\+\_\+sapi} \{ \newline
\textbf{ DL\+\_\+\+SAPI0} = 0
, \newline
\textbf{ DL\+\_\+\+SAPI3} = 1
, \newline
\textbf{ \+\_\+\+NR\+\_\+\+DL\+\_\+\+SAPI}
 \}
\begin{DoxyCompactList}\small\item\em LAPDm datalink SAPIs. \end{DoxyCompactList}\item 
enum \textbf{ lapdm\+\_\+format} \{ \newline
\textbf{ LAPDm\+\_\+\+FMT\+\_\+A}
, \newline
\textbf{ LAPDm\+\_\+\+FMT\+\_\+B}
, \newline
\textbf{ LAPDm\+\_\+\+FMT\+\_\+\+Bbis}
, \newline
\textbf{ LAPDm\+\_\+\+FMT\+\_\+\+Bter}
, \newline
\textbf{ LAPDm\+\_\+\+FMT\+\_\+\+B4}
 \}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
const char $\ast$ \textbf{ get\+\_\+rsl\+\_\+name} (int value)
\item 
struct \textbf{ lapdm\+\_\+datalink} $\ast$ \textbf{ lapdm\+\_\+datalink\+\_\+for\+\_\+sapi} (struct \textbf{ lapdm\+\_\+entity} $\ast$le, uint8\+\_\+t sapi)
\item 
void \textbf{ lapdm\+\_\+entity\+\_\+init} (struct \textbf{ lapdm\+\_\+entity} $\ast$le, enum \textbf{ lapdm\+\_\+mode} \textbf{ mode}, int t200)
\begin{DoxyCompactList}\small\item\em initialize a LAPDm entity and all datalinks inside \end{DoxyCompactList}\item 
void \textbf{ lapdm\+\_\+entity\+\_\+init2} (struct \textbf{ lapdm\+\_\+entity} $\ast$le, enum \textbf{ lapdm\+\_\+mode} \textbf{ mode}, const int $\ast$t200\+\_\+ms, int n200)
\begin{DoxyCompactList}\small\item\em initialize a LAPDm entity and all datalinks inside \end{DoxyCompactList}\item 
void \textbf{ lapdm\+\_\+entity\+\_\+init3} (struct \textbf{ lapdm\+\_\+entity} $\ast$le, enum \textbf{ lapdm\+\_\+mode} \textbf{ mode}, const int $\ast$t200\+\_\+ms, int n200, const char $\ast$name\+\_\+pfx)
\begin{DoxyCompactList}\small\item\em initialize a LAPDm entity and all datalinks inside \end{DoxyCompactList}\item 
void \textbf{ lapdm\+\_\+channel\+\_\+init} (struct \textbf{ lapdm\+\_\+channel} $\ast$lc, enum \textbf{ lapdm\+\_\+mode} \textbf{ mode})
\begin{DoxyCompactList}\small\item\em initialize a LAPDm channel and all its channels \end{DoxyCompactList}\item 
int \textbf{ lapdm\+\_\+channel\+\_\+init2} (struct \textbf{ lapdm\+\_\+channel} $\ast$lc, enum \textbf{ lapdm\+\_\+mode} \textbf{ mode}, const int $\ast$t200\+\_\+ms\+\_\+dcch, const int $\ast$t200\+\_\+ms\+\_\+acch, enum \textbf{ gsm\+\_\+chan\+\_\+t} chan\+\_\+t)
\begin{DoxyCompactList}\small\item\em initialize a LAPDm channel and all its channels \end{DoxyCompactList}\item 
int \textbf{ lapdm\+\_\+channel\+\_\+init3} (struct \textbf{ lapdm\+\_\+channel} $\ast$lc, enum \textbf{ lapdm\+\_\+mode} \textbf{ mode}, const int $\ast$t200\+\_\+ms\+\_\+dcch, const int $\ast$t200\+\_\+ms\+\_\+acch, enum \textbf{ gsm\+\_\+chan\+\_\+t} chan\+\_\+t, const char $\ast$name\+\_\+pfx)
\begin{DoxyCompactList}\small\item\em initialize a LAPDm channel and all its channels \end{DoxyCompactList}\item 
void \textbf{ lapdm\+\_\+entity\+\_\+exit} (struct \textbf{ lapdm\+\_\+entity} $\ast$le)
\begin{DoxyCompactList}\small\item\em flush and release all resoures in LAPDm entity \end{DoxyCompactList}\item 
void \textbf{ lapdm\+\_\+channel\+\_\+exit} (struct \textbf{ lapdm\+\_\+channel} $\ast$lc)
\item 
int \textbf{ lapdm\+\_\+phsap\+\_\+up} (struct \textbf{ osmo\+\_\+prim\+\_\+hdr} $\ast$oph, struct \textbf{ lapdm\+\_\+entity} $\ast$le)
\begin{DoxyCompactList}\small\item\em Receive a PH-\/\+SAP primitive from L1. \end{DoxyCompactList}\item 
int \textbf{ lapdm\+\_\+rslms\+\_\+recvmsg} (struct \textbf{ msgb} $\ast$\textbf{ msg}, struct \textbf{ lapdm\+\_\+channel} $\ast$lc)
\begin{DoxyCompactList}\small\item\em Receive a RSLms \textbf{ Message buffers} from Layer 3. \end{DoxyCompactList}\item 
void \textbf{ lapdm\+\_\+channel\+\_\+set\+\_\+l3} (struct \textbf{ lapdm\+\_\+channel} $\ast$lc, \textbf{ lapdm\+\_\+cb\+\_\+t} cb, void $\ast$ctx)
\begin{DoxyCompactList}\small\item\em Set the L3 callback and context of a LAPDm channel. \end{DoxyCompactList}\item 
void \textbf{ lapdm\+\_\+channel\+\_\+set\+\_\+l1} (struct \textbf{ lapdm\+\_\+channel} $\ast$lc, \textbf{ osmo\+\_\+prim\+\_\+cb} cb, void $\ast$ctx)
\begin{DoxyCompactList}\small\item\em Set the L1 callback and context of a LAPDm channel. \end{DoxyCompactList}\item 
int \textbf{ lapdm\+\_\+entity\+\_\+set\+\_\+mode} (struct \textbf{ lapdm\+\_\+entity} $\ast$le, enum \textbf{ lapdm\+\_\+mode} \textbf{ mode})
\begin{DoxyCompactList}\small\item\em Set the \doxyref{lapdm\+\_\+mode}{p.}{group__lapdm_gae1114a473c0f1b35d2fddae1bf35ff81} of a LAPDm entity. \end{DoxyCompactList}\item 
int \textbf{ lapdm\+\_\+channel\+\_\+set\+\_\+mode} (struct \textbf{ lapdm\+\_\+channel} $\ast$lc, enum \textbf{ lapdm\+\_\+mode} \textbf{ mode})
\begin{DoxyCompactList}\small\item\em Set the \doxyref{lapdm\+\_\+mode}{p.}{group__lapdm_gae1114a473c0f1b35d2fddae1bf35ff81} of a LAPDm channel. \end{DoxyCompactList}\item 
void \textbf{ lapdm\+\_\+entity\+\_\+reset} (struct \textbf{ lapdm\+\_\+entity} $\ast$le)
\begin{DoxyCompactList}\small\item\em Reset an entire LAPDm entity and all its datalinks. \end{DoxyCompactList}\item 
void \textbf{ lapdm\+\_\+channel\+\_\+reset} (struct \textbf{ lapdm\+\_\+channel} $\ast$lc)
\begin{DoxyCompactList}\small\item\em Reset a LAPDm channel with all its entities. \end{DoxyCompactList}\item 
void \textbf{ lapdm\+\_\+entity\+\_\+set\+\_\+flags} (struct \textbf{ lapdm\+\_\+entity} $\ast$le, unsigned int \textbf{ flags})
\begin{DoxyCompactList}\small\item\em Set the flags of a LAPDm entity. \end{DoxyCompactList}\item 
void \textbf{ lapdm\+\_\+channel\+\_\+set\+\_\+flags} (struct \textbf{ lapdm\+\_\+channel} $\ast$lc, unsigned int \textbf{ flags})
\begin{DoxyCompactList}\small\item\em Set the flags of all LAPDm entities in a LAPDm channel. \end{DoxyCompactList}\item 
void \textbf{ lapdm\+\_\+entity\+\_\+set\+\_\+t200\+\_\+fn} (struct \textbf{ lapdm\+\_\+entity} $\ast$le, const uint32\+\_\+t $\ast$t200\+\_\+fn)
\begin{DoxyCompactList}\small\item\em Set the T200 FN timer of a LAPDm entity. \end{DoxyCompactList}\item 
void \textbf{ lapdm\+\_\+channel\+\_\+set\+\_\+t200\+\_\+fn} (struct \textbf{ lapdm\+\_\+channel} $\ast$lc, const uint32\+\_\+t $\ast$t200\+\_\+fn\+\_\+dcch, const uint32\+\_\+t $\ast$t200\+\_\+fn\+\_\+acch)
\begin{DoxyCompactList}\small\item\em Set the T200 FN timer of all LAPDm entities in a LAPDm channel. \end{DoxyCompactList}\item 
int \textbf{ lapdm\+\_\+phsap\+\_\+dequeue\+\_\+prim} (struct \textbf{ lapdm\+\_\+entity} $\ast$le, struct \textbf{ osmo\+\_\+phsap\+\_\+prim} $\ast$pp)
\begin{DoxyCompactList}\small\item\em dequeue a msg that\textquotesingle{}s pending transmission via L1 and wrap it into a \doxyref{osmo\+\_\+phsap\+\_\+prim}{p.}{structosmo__phsap__prim} \end{DoxyCompactList}\item 
int \textbf{ lapdm\+\_\+phsap\+\_\+dequeue\+\_\+prim\+\_\+fn} (struct \textbf{ lapdm\+\_\+entity} $\ast$le, struct \textbf{ osmo\+\_\+phsap\+\_\+prim} $\ast$pp, uint32\+\_\+t fn)
\begin{DoxyCompactList}\small\item\em dequeue a msg that\textquotesingle{}s pending transmission via L1 and wrap it into a \doxyref{osmo\+\_\+phsap\+\_\+prim}{p.}{structosmo__phsap__prim} \end{DoxyCompactList}\item 
void \textbf{ lapdm\+\_\+t200\+\_\+fn} (struct \textbf{ lapdm\+\_\+entity} $\ast$le, uint32\+\_\+t fn)
\begin{DoxyCompactList}\small\item\em Get receive frame number from L1. \end{DoxyCompactList}\item 
static int \textbf{ lapdm\+\_\+send\+\_\+ph\+\_\+data\+\_\+req} (struct \textbf{ lapd\+\_\+msg\+\_\+ctx} $\ast$lctx, struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
static int \textbf{ send\+\_\+rslms\+\_\+dlsap} (struct \textbf{ osmo\+\_\+dlsap\+\_\+prim} $\ast$dp, struct \textbf{ lapd\+\_\+msg\+\_\+ctx} $\ast$lctx)
\item 
static int \textbf{ update\+\_\+pending\+\_\+frames} (struct \textbf{ lapd\+\_\+msg\+\_\+ctx} $\ast$lctx)
\item 
static void \textbf{ lapdm\+\_\+dl\+\_\+init} (struct \textbf{ lapdm\+\_\+datalink} $\ast$dl, struct \textbf{ lapdm\+\_\+entity} $\ast$entity, int t200\+\_\+ms, uint32\+\_\+t n200, const char $\ast$\textbf{ name})
\item 
static int \textbf{ get\+\_\+n200\+\_\+dcch} (enum \textbf{ gsm\+\_\+chan\+\_\+t} chan\+\_\+t)
\item 
static void \textbf{ lapdm\+\_\+pad\+\_\+msgb} (struct \textbf{ msgb} $\ast$\textbf{ msg}, uint8\+\_\+t n201)
\item 
static int \textbf{ rslms\+\_\+sendmsg} (struct \textbf{ msgb} $\ast$\textbf{ msg}, struct \textbf{ lapdm\+\_\+entity} $\ast$le)
\item 
static int \textbf{ tx\+\_\+ph\+\_\+data\+\_\+enqueue} (struct \textbf{ lapdm\+\_\+datalink} $\ast$dl, struct \textbf{ msgb} $\ast$\textbf{ msg}, uint8\+\_\+t \textbf{ chan\+\_\+nr}, uint8\+\_\+t \textbf{ link\+\_\+id}, uint8\+\_\+t pad)
\item 
static int \textbf{ tx\+\_\+ph\+\_\+data\+\_\+enqueue\+\_\+ui} (struct \textbf{ lapdm\+\_\+datalink} $\ast$dl, struct \textbf{ msgb} $\ast$\textbf{ msg}, uint8\+\_\+t \textbf{ chan\+\_\+nr}, uint8\+\_\+t \textbf{ link\+\_\+id}, uint8\+\_\+t pad)
\item 
static struct \textbf{ msgb} $\ast$ \textbf{ tx\+\_\+dequeue\+\_\+msgb} (struct \textbf{ lapdm\+\_\+datalink} $\ast$dl, uint32\+\_\+t fn)
\item 
static struct \textbf{ msgb} $\ast$ \textbf{ tx\+\_\+dequeue\+\_\+dcch\+\_\+msgb} (struct \textbf{ lapdm\+\_\+entity} $\ast$le, uint32\+\_\+t fn)
\item 
static struct \textbf{ msgb} $\ast$ \textbf{ tx\+\_\+dequeue\+\_\+acch\+\_\+msgb} (struct \textbf{ lapdm\+\_\+entity} $\ast$le, uint32\+\_\+t fn)
\item 
static void \textbf{ lapdm\+\_\+t200\+\_\+fn\+\_\+dl} (struct \textbf{ lapdm\+\_\+datalink} $\ast$dl, uint32\+\_\+t fn)
\item 
static int \textbf{ l2\+\_\+ph\+\_\+data\+\_\+conf} (struct \textbf{ msgb} $\ast$\textbf{ msg}, struct \textbf{ lapdm\+\_\+entity} $\ast$le)
\item 
static int \textbf{ rsl\+\_\+is\+\_\+transparent} (uint8\+\_\+t \textbf{ msg\+\_\+type})
\item 
static int \textbf{ send\+\_\+rslms\+\_\+rll\+\_\+l3} (uint8\+\_\+t \textbf{ msg\+\_\+type}, struct \textbf{ lapdm\+\_\+msg\+\_\+ctx} $\ast$mctx, struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
static int \textbf{ send\+\_\+rslms\+\_\+rll\+\_\+l3\+\_\+ui} (struct \textbf{ lapdm\+\_\+msg\+\_\+ctx} $\ast$mctx, struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
static int \textbf{ send\+\_\+rll\+\_\+simple} (uint8\+\_\+t \textbf{ msg\+\_\+type}, struct \textbf{ lapdm\+\_\+msg\+\_\+ctx} $\ast$mctx)
\item 
static int \textbf{ rsl\+\_\+rll\+\_\+error} (uint8\+\_\+t \textbf{ cause}, struct \textbf{ lapdm\+\_\+msg\+\_\+ctx} $\ast$mctx)
\item 
static int \textbf{ lapdm\+\_\+rx\+\_\+not\+\_\+permitted} (const struct \textbf{ lapdm\+\_\+entity} $\ast$le, const struct \textbf{ lapd\+\_\+msg\+\_\+ctx} $\ast$lctx)
\item 
static int \textbf{ l2\+\_\+ph\+\_\+data\+\_\+ind} (struct \textbf{ msgb} $\ast$\textbf{ msg}, struct \textbf{ lapdm\+\_\+entity} $\ast$le, uint8\+\_\+t \textbf{ chan\+\_\+nr}, uint8\+\_\+t \textbf{ link\+\_\+id}, uint32\+\_\+t fn)
\item 
static int \textbf{ l2\+\_\+ph\+\_\+rach\+\_\+ind} (struct \textbf{ lapdm\+\_\+entity} $\ast$le, uint8\+\_\+t ra, uint32\+\_\+t fn, uint8\+\_\+t acc\+\_\+delay)
\item 
static int \textbf{ l2\+\_\+ph\+\_\+chan\+\_\+conf} (struct \textbf{ msgb} $\ast$\textbf{ msg}, struct \textbf{ lapdm\+\_\+entity} $\ast$le, uint32\+\_\+t frame\+\_\+nr)
\item 
static int \textbf{ set\+\_\+lapdm\+\_\+context} (struct \textbf{ lapdm\+\_\+datalink} $\ast$dl, uint8\+\_\+t \textbf{ chan\+\_\+nr}, uint8\+\_\+t \textbf{ link\+\_\+id}, int n201, uint8\+\_\+t sapi)
\item 
static int \textbf{ rslms\+\_\+rx\+\_\+rll\+\_\+est\+\_\+req} (struct \textbf{ msgb} $\ast$\textbf{ msg}, struct \textbf{ lapdm\+\_\+datalink} $\ast$dl)
\item 
static int \textbf{ rslms\+\_\+rx\+\_\+rll\+\_\+udata\+\_\+req} (struct \textbf{ msgb} $\ast$\textbf{ msg}, struct \textbf{ lapdm\+\_\+datalink} $\ast$dl)
\item 
static int \textbf{ rslms\+\_\+rx\+\_\+rll\+\_\+data\+\_\+req} (struct \textbf{ msgb} $\ast$\textbf{ msg}, struct \textbf{ lapdm\+\_\+datalink} $\ast$dl)
\item 
static int \textbf{ rslms\+\_\+rx\+\_\+rll\+\_\+susp\+\_\+req} (struct \textbf{ msgb} $\ast$\textbf{ msg}, struct \textbf{ lapdm\+\_\+datalink} $\ast$dl)
\item 
static int \textbf{ rslms\+\_\+rx\+\_\+rll\+\_\+res\+\_\+req} (struct \textbf{ msgb} $\ast$\textbf{ msg}, struct \textbf{ lapdm\+\_\+datalink} $\ast$dl)
\item 
static int \textbf{ rslms\+\_\+rx\+\_\+rll\+\_\+rel\+\_\+req} (struct \textbf{ msgb} $\ast$\textbf{ msg}, struct \textbf{ lapdm\+\_\+datalink} $\ast$dl)
\item 
static int \textbf{ rslms\+\_\+rx\+\_\+chan\+\_\+rqd} (struct \textbf{ lapdm\+\_\+channel} $\ast$lc, struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
static int \textbf{ rslms\+\_\+rx\+\_\+rll} (struct \textbf{ msgb} $\ast$\textbf{ msg}, struct \textbf{ lapdm\+\_\+channel} $\ast$lc)
\item 
static int \textbf{ rslms\+\_\+rx\+\_\+com\+\_\+chan} (struct \textbf{ msgb} $\ast$\textbf{ msg}, struct \textbf{ lapdm\+\_\+channel} $\ast$lc)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
const char $\ast$ \textbf{ lapdm\+\_\+state\+\_\+names} [$\,$]
\item 
const struct \textbf{ value\+\_\+string} \textbf{ osmo\+\_\+ph\+\_\+prim\+\_\+names} [$\,$]
\item 
void $\ast$ \textbf{ tall\+\_\+lapd\+\_\+ctx}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}


\doxysubsection{Macro Definition Documentation}
\mbox{\label{group__lapdm_ga698cf60034810f0da992d1d1a596a21d}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPD\_U\_SABM@{LAPD\_U\_SABM}}
\index{LAPD\_U\_SABM@{LAPD\_U\_SABM}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPD\_U\_SABM}
{\footnotesize\ttfamily \#define LAPD\+\_\+\+U\+\_\+\+SABM~0x7}

\mbox{\label{group__lapdm_ga52b632748083d3bf30f07cfeeae473af}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_ADDR@{LAPDm\_ADDR}}
\index{LAPDm\_ADDR@{LAPDm\_ADDR}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDm\_ADDR}
{\footnotesize\ttfamily \#define LAPDm\+\_\+\+ADDR(\begin{DoxyParamCaption}\item[{}]{lpd,  }\item[{}]{sapi,  }\item[{}]{cr }\end{DoxyParamCaption})~((((lpd) \& 0x3) $<$$<$ 5) $\vert$ (((sapi) \& 0x7) $<$$<$ 2) $\vert$ (((cr) \& 0x1) $<$$<$ 1) $\vert$ 0x1)}

\mbox{\label{group__lapdm_ga14938e42c7ef6b0844e471248fe9babc}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_ADDR\_CR@{LAPDm\_ADDR\_CR}}
\index{LAPDm\_ADDR\_CR@{LAPDm\_ADDR\_CR}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDm\_ADDR\_CR}
{\footnotesize\ttfamily \#define LAPDm\+\_\+\+ADDR\+\_\+\+CR(\begin{DoxyParamCaption}\item[{}]{addr }\end{DoxyParamCaption})~(((addr) $>$$>$ 1) \& 0x1)}

\mbox{\label{group__lapdm_ga2ed6c475ddb97f21c27bc98996e1fae9}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_ADDR\_EA@{LAPDm\_ADDR\_EA}}
\index{LAPDm\_ADDR\_EA@{LAPDm\_ADDR\_EA}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDm\_ADDR\_EA}
{\footnotesize\ttfamily \#define LAPDm\+\_\+\+ADDR\+\_\+\+EA(\begin{DoxyParamCaption}\item[{}]{addr }\end{DoxyParamCaption})~((addr) \& 0x1)}

\mbox{\label{group__lapdm_ga170673557ec5c5583f393048da8d6005}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_ADDR\_LPD@{LAPDm\_ADDR\_LPD}}
\index{LAPDm\_ADDR\_LPD@{LAPDm\_ADDR\_LPD}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDm\_ADDR\_LPD}
{\footnotesize\ttfamily \#define LAPDm\+\_\+\+ADDR\+\_\+\+LPD(\begin{DoxyParamCaption}\item[{}]{addr }\end{DoxyParamCaption})~(((addr) $>$$>$ 5) \& 0x3)}

\mbox{\label{group__lapdm_ga46cb382a639180faac03ae2f86ac3984}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_ADDR\_SAPI@{LAPDm\_ADDR\_SAPI}}
\index{LAPDm\_ADDR\_SAPI@{LAPDm\_ADDR\_SAPI}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDm\_ADDR\_SAPI}
{\footnotesize\ttfamily \#define LAPDm\+\_\+\+ADDR\+\_\+\+SAPI(\begin{DoxyParamCaption}\item[{}]{addr }\end{DoxyParamCaption})~(((addr) $>$$>$ 2) \& 0x7)}

\mbox{\label{group__lapdm_ga6f9ac0d7955b1d9593c9b82d3db3549c}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_ADDR\_SHORT\_L2@{LAPDm\_ADDR\_SHORT\_L2}}
\index{LAPDm\_ADDR\_SHORT\_L2@{LAPDm\_ADDR\_SHORT\_L2}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDm\_ADDR\_SHORT\_L2}
{\footnotesize\ttfamily \#define LAPDm\+\_\+\+ADDR\+\_\+\+SHORT\+\_\+\+L2(\begin{DoxyParamCaption}\item[{}]{addr }\end{DoxyParamCaption})~((addr) \& 0x3)}

\mbox{\label{group__lapdm_gab4cbde20b20e85ccb6a2167303dfd438}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_CTRL\_I@{LAPDm\_CTRL\_I}}
\index{LAPDm\_CTRL\_I@{LAPDm\_CTRL\_I}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDm\_CTRL\_I}
{\footnotesize\ttfamily \#define LAPDm\+\_\+\+CTRL\+\_\+I(\begin{DoxyParamCaption}\item[{}]{nr,  }\item[{}]{ns,  }\item[{}]{p }\end{DoxyParamCaption})~((((nr) \& 0x7) $<$$<$ 5) $\vert$ (((p) \& 0x1) $<$$<$ 4) $\vert$ (((ns) \& 0x7) $<$$<$ 1))}

\mbox{\label{group__lapdm_ga9225baff7881e88ded8975de82df3473}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_CTRL\_I\_Ns@{LAPDm\_CTRL\_I\_Ns}}
\index{LAPDm\_CTRL\_I\_Ns@{LAPDm\_CTRL\_I\_Ns}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDm\_CTRL\_I\_Ns}
{\footnotesize\ttfamily \#define LAPDm\+\_\+\+CTRL\+\_\+\+I\+\_\+\+Ns(\begin{DoxyParamCaption}\item[{}]{ctrl }\end{DoxyParamCaption})~(((ctrl) \& 0xE) $>$$>$ 1)}

\mbox{\label{group__lapdm_ga077601038708bb764127051770a9b68b}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_CTRL\_is\_I@{LAPDm\_CTRL\_is\_I}}
\index{LAPDm\_CTRL\_is\_I@{LAPDm\_CTRL\_is\_I}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDm\_CTRL\_is\_I}
{\footnotesize\ttfamily \#define LAPDm\+\_\+\+CTRL\+\_\+is\+\_\+I(\begin{DoxyParamCaption}\item[{}]{ctrl }\end{DoxyParamCaption})~(((ctrl) \& 0x1) == 0)}

\mbox{\label{group__lapdm_ga98488a185646d95ddab4f15f177de7c8}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_CTRL\_is\_S@{LAPDm\_CTRL\_is\_S}}
\index{LAPDm\_CTRL\_is\_S@{LAPDm\_CTRL\_is\_S}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDm\_CTRL\_is\_S}
{\footnotesize\ttfamily \#define LAPDm\+\_\+\+CTRL\+\_\+is\+\_\+S(\begin{DoxyParamCaption}\item[{}]{ctrl }\end{DoxyParamCaption})~(((ctrl) \& 0x3) == 1)}

\mbox{\label{group__lapdm_gac89fc4956e8949068dc4a58df9a0e18f}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_CTRL\_is\_U@{LAPDm\_CTRL\_is\_U}}
\index{LAPDm\_CTRL\_is\_U@{LAPDm\_CTRL\_is\_U}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDm\_CTRL\_is\_U}
{\footnotesize\ttfamily \#define LAPDm\+\_\+\+CTRL\+\_\+is\+\_\+U(\begin{DoxyParamCaption}\item[{}]{ctrl }\end{DoxyParamCaption})~(((ctrl) \& 0x3) == 3)}

\mbox{\label{group__lapdm_ga7f408b646d76c134f01753751493380e}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_CTRL\_Nr@{LAPDm\_CTRL\_Nr}}
\index{LAPDm\_CTRL\_Nr@{LAPDm\_CTRL\_Nr}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDm\_CTRL\_Nr}
{\footnotesize\ttfamily \#define LAPDm\+\_\+\+CTRL\+\_\+\+Nr(\begin{DoxyParamCaption}\item[{}]{ctrl }\end{DoxyParamCaption})~(((ctrl) \& 0x\+E0) $>$$>$ 5)}

\mbox{\label{group__lapdm_ga5b3265d80733386635c7e35713919208}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_CTRL\_PF\_BIT@{LAPDm\_CTRL\_PF\_BIT}}
\index{LAPDm\_CTRL\_PF\_BIT@{LAPDm\_CTRL\_PF\_BIT}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDm\_CTRL\_PF\_BIT}
{\footnotesize\ttfamily \#define LAPDm\+\_\+\+CTRL\+\_\+\+PF\+\_\+\+BIT(\begin{DoxyParamCaption}\item[{}]{ctrl }\end{DoxyParamCaption})~(((ctrl) $>$$>$ 4) \& 0x1)}

\mbox{\label{group__lapdm_ga50d114f3ccd490427bba9f1c7438527e}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_CTRL\_S@{LAPDm\_CTRL\_S}}
\index{LAPDm\_CTRL\_S@{LAPDm\_CTRL\_S}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDm\_CTRL\_S}
{\footnotesize\ttfamily \#define LAPDm\+\_\+\+CTRL\+\_\+S(\begin{DoxyParamCaption}\item[{}]{nr,  }\item[{}]{s,  }\item[{}]{p }\end{DoxyParamCaption})~((((nr) \& 0x7) $<$$<$ 5) $\vert$ (((p) \& 0x1) $<$$<$ 4) $\vert$ (((s) \& 0x3) $<$$<$ 2) $\vert$ 0x1)}

\mbox{\label{group__lapdm_ga533856456fa817e145c6e999b77d389f}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_CTRL\_S\_BITS@{LAPDm\_CTRL\_S\_BITS}}
\index{LAPDm\_CTRL\_S\_BITS@{LAPDm\_CTRL\_S\_BITS}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDm\_CTRL\_S\_BITS}
{\footnotesize\ttfamily \#define LAPDm\+\_\+\+CTRL\+\_\+\+S\+\_\+\+BITS(\begin{DoxyParamCaption}\item[{}]{ctrl }\end{DoxyParamCaption})~(((ctrl) \& 0xC) $>$$>$ 2)}

\mbox{\label{group__lapdm_ga9069ff82325039c9029293b8e5ff8f5f}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_CTRL\_U@{LAPDm\_CTRL\_U}}
\index{LAPDm\_CTRL\_U@{LAPDm\_CTRL\_U}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDm\_CTRL\_U}
{\footnotesize\ttfamily \#define LAPDm\+\_\+\+CTRL\+\_\+U(\begin{DoxyParamCaption}\item[{}]{u,  }\item[{}]{p }\end{DoxyParamCaption})~((((u) \& 0x1c) $<$$<$ (5-\/2)) $\vert$ (((p) \& 0x1) $<$$<$ 4) $\vert$ (((u) \& 0x3) $<$$<$ 2) $\vert$ 0x3)}

\mbox{\label{group__lapdm_ga29b9e99f3232ff0ab63b7e95ae47d971}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_CTRL\_U\_BITS@{LAPDm\_CTRL\_U\_BITS}}
\index{LAPDm\_CTRL\_U\_BITS@{LAPDm\_CTRL\_U\_BITS}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDm\_CTRL\_U\_BITS}
{\footnotesize\ttfamily \#define LAPDm\+\_\+\+CTRL\+\_\+\+U\+\_\+\+BITS(\begin{DoxyParamCaption}\item[{}]{ctrl }\end{DoxyParamCaption})~((((ctrl) \& 0xC) $>$$>$ 2) $\vert$ ((ctrl) \& 0x\+E0) $>$$>$ 3)}

\mbox{\label{group__lapdm_gac84a97d30c85f46311d78209b9d046d9}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_EL@{LAPDm\_EL}}
\index{LAPDm\_EL@{LAPDm\_EL}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDm\_EL}
{\footnotesize\ttfamily \#define LAPDm\+\_\+\+EL~0x1}

\mbox{\label{group__lapdm_gab8f80b1790546c315be9500b866f36c5}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDM\_ENT\_F\_DROP\_2ND\_REJ@{LAPDM\_ENT\_F\_DROP\_2ND\_REJ}}
\index{LAPDM\_ENT\_F\_DROP\_2ND\_REJ@{LAPDM\_ENT\_F\_DROP\_2ND\_REJ}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDM\_ENT\_F\_DROP\_2ND\_REJ}
{\footnotesize\ttfamily \#define LAPDM\+\_\+\+ENT\+\_\+\+F\+\_\+\+DROP\+\_\+2\+ND\+\_\+\+REJ~0x0004}

\mbox{\label{group__lapdm_ga94958d1861cc3e040d63da7c47ff7f2e}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDM\_ENT\_F\_EMPTY\_FRAME@{LAPDM\_ENT\_F\_EMPTY\_FRAME}}
\index{LAPDM\_ENT\_F\_EMPTY\_FRAME@{LAPDM\_ENT\_F\_EMPTY\_FRAME}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDM\_ENT\_F\_EMPTY\_FRAME}
{\footnotesize\ttfamily \#define LAPDM\+\_\+\+ENT\+\_\+\+F\+\_\+\+EMPTY\+\_\+\+FRAME~0x0001}

\mbox{\label{group__lapdm_gaf3d42d6cedf754cc7269dbf18e048221}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDM\_ENT\_F\_POLLING\_ONLY@{LAPDM\_ENT\_F\_POLLING\_ONLY}}
\index{LAPDM\_ENT\_F\_POLLING\_ONLY@{LAPDM\_ENT\_F\_POLLING\_ONLY}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDM\_ENT\_F\_POLLING\_ONLY}
{\footnotesize\ttfamily \#define LAPDM\+\_\+\+ENT\+\_\+\+F\+\_\+\+POLLING\+\_\+\+ONLY~0x0002}

\mbox{\label{group__lapdm_gac0fc89b703563bd3d00341e34cda7a6f}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDM\_ENT\_F\_RTS@{LAPDM\_ENT\_F\_RTS}}
\index{LAPDM\_ENT\_F\_RTS@{LAPDM\_ENT\_F\_RTS}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDM\_ENT\_F\_RTS}
{\footnotesize\ttfamily \#define LAPDM\+\_\+\+ENT\+\_\+\+F\+\_\+\+RTS~0x0008}

\mbox{\label{group__lapdm_ga4703509cdbc6249659028d73b98920cc}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_LEN@{LAPDm\_LEN}}
\index{LAPDm\_LEN@{LAPDm\_LEN}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDm\_LEN}
{\footnotesize\ttfamily \#define LAPDm\+\_\+\+LEN(\begin{DoxyParamCaption}\item[{}]{\textbf{ len} }\end{DoxyParamCaption})~((\textbf{ len} $<$$<$ 2) $\vert$ 0x1)}

\mbox{\label{group__lapdm_gaecfa36e62cbd4e1920f475df56dffc44}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_LPD\_NORMAL@{LAPDm\_LPD\_NORMAL}}
\index{LAPDm\_LPD\_NORMAL@{LAPDm\_LPD\_NORMAL}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDm\_LPD\_NORMAL}
{\footnotesize\ttfamily \#define LAPDm\+\_\+\+LPD\+\_\+\+NORMAL~0}

\mbox{\label{group__lapdm_gaa318d61015e6e3daa8326210cbdcdaf3}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_LPD\_SMSCB@{LAPDm\_LPD\_SMSCB}}
\index{LAPDm\_LPD\_SMSCB@{LAPDm\_LPD\_SMSCB}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDm\_LPD\_SMSCB}
{\footnotesize\ttfamily \#define LAPDm\+\_\+\+LPD\+\_\+\+SMSCB~1}

\mbox{\label{group__lapdm_gaf59a6e6b9ff2020529080a694e02abc9}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_MORE@{LAPDm\_MORE}}
\index{LAPDm\_MORE@{LAPDm\_MORE}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDm\_MORE}
{\footnotesize\ttfamily \#define LAPDm\+\_\+\+MORE~0x2}

\mbox{\label{group__lapdm_ga9d26a3d6f31ce2cb04e9a00e94de3706}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_SAPI\_NORMAL@{LAPDm\_SAPI\_NORMAL}}
\index{LAPDm\_SAPI\_NORMAL@{LAPDm\_SAPI\_NORMAL}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDm\_SAPI\_NORMAL}
{\footnotesize\ttfamily \#define LAPDm\+\_\+\+SAPI\+\_\+\+NORMAL~0}

\mbox{\label{group__lapdm_ga5185c0aa8c106d2e47893efb66fc35cc}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_SAPI\_SMS@{LAPDm\_SAPI\_SMS}}
\index{LAPDm\_SAPI\_SMS@{LAPDm\_SAPI\_SMS}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDm\_SAPI\_SMS}
{\footnotesize\ttfamily \#define LAPDm\+\_\+\+SAPI\+\_\+\+SMS~3}

\mbox{\label{group__lapdm_ga3e9cd2e2bddaa1a81b33e9085aefd20b}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_U\_UI@{LAPDm\_U\_UI}}
\index{LAPDm\_U\_UI@{LAPDm\_U\_UI}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{LAPDm\_U\_UI}
{\footnotesize\ttfamily \#define LAPDm\+\_\+\+U\+\_\+\+UI~0x0}

\mbox{\label{group__lapdm_gaed25972d98060fbee8545a850d00f37b}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!N200@{N200}}
\index{N200@{N200}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{N200}
{\footnotesize\ttfamily \#define N200~\textbf{ N200\+\_\+\+TR\+\_\+\+SDCCH}}

\mbox{\label{group__lapdm_ga61d4b45ddf5dcea3d612277ed564569b}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!N200\_EST\_REL@{N200\_EST\_REL}}
\index{N200\_EST\_REL@{N200\_EST\_REL}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{N200\_EST\_REL}
{\footnotesize\ttfamily \#define N200\+\_\+\+EST\+\_\+\+REL~5}

\mbox{\label{group__lapdm_gae3d7ce87230c67b5a4531925448ecb95}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!N200\_TR\_EFACCH\_FR@{N200\_TR\_EFACCH\_FR}}
\index{N200\_TR\_EFACCH\_FR@{N200\_TR\_EFACCH\_FR}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{N200\_TR\_EFACCH\_FR}
{\footnotesize\ttfamily \#define N200\+\_\+\+TR\+\_\+\+EFACCH\+\_\+\+FR~48}

\mbox{\label{group__lapdm_gabd742cd41b322282a805130a386264f7}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!N200\_TR\_FACCH\_FR@{N200\_TR\_FACCH\_FR}}
\index{N200\_TR\_FACCH\_FR@{N200\_TR\_FACCH\_FR}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{N200\_TR\_FACCH\_FR}
{\footnotesize\ttfamily \#define N200\+\_\+\+TR\+\_\+\+FACCH\+\_\+\+FR~34}

\mbox{\label{group__lapdm_gaac1d62d890621693e8669c0eb0fdd7cd}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!N200\_TR\_FACCH\_HR@{N200\_TR\_FACCH\_HR}}
\index{N200\_TR\_FACCH\_HR@{N200\_TR\_FACCH\_HR}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{N200\_TR\_FACCH\_HR}
{\footnotesize\ttfamily \#define N200\+\_\+\+TR\+\_\+\+FACCH\+\_\+\+HR~29}

\mbox{\label{group__lapdm_ga6aab0658a910de39e9f989ebfc3f15f3}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!N200\_TR\_SACCH@{N200\_TR\_SACCH}}
\index{N200\_TR\_SACCH@{N200\_TR\_SACCH}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{N200\_TR\_SACCH}
{\footnotesize\ttfamily \#define N200\+\_\+\+TR\+\_\+\+SACCH~5}

\mbox{\label{group__lapdm_gaa500e3357f97a7cddc6206a1cb308882}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!N200\_TR\_SDCCH@{N200\_TR\_SDCCH}}
\index{N200\_TR\_SDCCH@{N200\_TR\_SDCCH}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{N200\_TR\_SDCCH}
{\footnotesize\ttfamily \#define N200\+\_\+\+TR\+\_\+\+SDCCH~23}

\mbox{\label{group__lapdm_ga8389427f1582db4dfc572a595e088a9b}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!N201\_AB\_FACCH@{N201\_AB\_FACCH}}
\index{N201\_AB\_FACCH@{N201\_AB\_FACCH}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{N201\_AB\_FACCH}
{\footnotesize\ttfamily \#define N201\+\_\+\+AB\+\_\+\+FACCH~20}

\mbox{\label{group__lapdm_gabb05a724b68022f22d5a453c8b74fc8c}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!N201\_AB\_SACCH@{N201\_AB\_SACCH}}
\index{N201\_AB\_SACCH@{N201\_AB\_SACCH}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{N201\_AB\_SACCH}
{\footnotesize\ttfamily \#define N201\+\_\+\+AB\+\_\+\+SACCH~18}

\mbox{\label{group__lapdm_ga77b128482b3e7d9d0fdb16cdf230c274}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!N201\_AB\_SDCCH@{N201\_AB\_SDCCH}}
\index{N201\_AB\_SDCCH@{N201\_AB\_SDCCH}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{N201\_AB\_SDCCH}
{\footnotesize\ttfamily \#define N201\+\_\+\+AB\+\_\+\+SDCCH~20}

\mbox{\label{group__lapdm_ga5acb0397bc281ce1b2f479c3d8a4aa3b}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!N201\_B4@{N201\_B4}}
\index{N201\_B4@{N201\_B4}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{N201\_B4}
{\footnotesize\ttfamily \#define N201\+\_\+\+B4~19}

\mbox{\label{group__lapdm_gac3b4da9522558d1ae8276aa508ead289}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!N201\_Bbis@{N201\_Bbis}}
\index{N201\_Bbis@{N201\_Bbis}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{N201\_Bbis}
{\footnotesize\ttfamily \#define N201\+\_\+\+Bbis~23}

\mbox{\label{group__lapdm_ga78125375d1f9da22e27aac04afd9eac9}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!N201\_Bter\_FACCH@{N201\_Bter\_FACCH}}
\index{N201\_Bter\_FACCH@{N201\_Bter\_FACCH}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{N201\_Bter\_FACCH}
{\footnotesize\ttfamily \#define N201\+\_\+\+Bter\+\_\+\+FACCH~23}

\mbox{\label{group__lapdm_gaf48a77d232cc78653046bb047e8be837}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!N201\_Bter\_SACCH@{N201\_Bter\_SACCH}}
\index{N201\_Bter\_SACCH@{N201\_Bter\_SACCH}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{N201\_Bter\_SACCH}
{\footnotesize\ttfamily \#define N201\+\_\+\+Bter\+\_\+\+SACCH~21}

\mbox{\label{group__lapdm_gab7a183c92af8604c914358ad37b55878}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!N201\_Bter\_SDCCH@{N201\_Bter\_SDCCH}}
\index{N201\_Bter\_SDCCH@{N201\_Bter\_SDCCH}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{N201\_Bter\_SDCCH}
{\footnotesize\ttfamily \#define N201\+\_\+\+Bter\+\_\+\+SDCCH~23}



\doxysubsection{Typedef Documentation}
\mbox{\label{group__lapdm_ga12f43ee45435af3b130f6a3cdeec1f73}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_cb\_t@{lapdm\_cb\_t}}
\index{lapdm\_cb\_t@{lapdm\_cb\_t}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_cb\_t}
{\footnotesize\ttfamily typedef int($\ast$ lapdm\+\_\+cb\+\_\+t) (struct \textbf{ msgb} $\ast$\textbf{ msg}, struct \textbf{ lapdm\+\_\+entity} $\ast$le, void $\ast$ctx)}



\doxysubsection{Enumeration Type Documentation}
\mbox{\label{group__lapdm_ga6e16b93065a9fb79aec7764dccca093c}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_dl\_sapi@{lapdm\_dl\_sapi}}
\index{lapdm\_dl\_sapi@{lapdm\_dl\_sapi}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_dl\_sapi}
{\footnotesize\ttfamily enum \textbf{ lapdm\+\_\+dl\+\_\+sapi}}



LAPDm datalink SAPIs. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{DL\_SAPI0@{DL\_SAPI0}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!DL\_SAPI0@{DL\_SAPI0}}}\mbox{\label{group__lapdm_gga6e16b93065a9fb79aec7764dccca093caece5a6f50f7f19f7ccef95575d8fd47c}} 
DL\+\_\+\+SAPI0&SAPI 0. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{DL\_SAPI3@{DL\_SAPI3}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!DL\_SAPI3@{DL\_SAPI3}}}\mbox{\label{group__lapdm_gga6e16b93065a9fb79aec7764dccca093ca05a2c14a2f5fb839e9f8d3e24cc19c4c}} 
DL\+\_\+\+SAPI3&SAPI 1. \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{\_NR\_DL\_SAPI@{\_NR\_DL\_SAPI}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!\_NR\_DL\_SAPI@{\_NR\_DL\_SAPI}}}\mbox{\label{group__lapdm_gga6e16b93065a9fb79aec7764dccca093ca7c05068a0c315656293104c964593436}} 
\+\_\+\+NR\+\_\+\+DL\+\_\+\+SAPI&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{group__lapdm_ga55c40b91811ce81d15d272f6cbb6eaa5}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_format@{lapdm\_format}}
\index{lapdm\_format@{lapdm\_format}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_format}
{\footnotesize\ttfamily enum \textbf{ lapdm\+\_\+format}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{LAPDm\_FMT\_A@{LAPDm\_FMT\_A}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_FMT\_A@{LAPDm\_FMT\_A}}}\mbox{\label{group__lapdm_gga55c40b91811ce81d15d272f6cbb6eaa5a6c1893d1acadd6aab04d743e53ddce73}} 
LAPDm\+\_\+\+FMT\+\_\+A&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LAPDm\_FMT\_B@{LAPDm\_FMT\_B}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_FMT\_B@{LAPDm\_FMT\_B}}}\mbox{\label{group__lapdm_gga55c40b91811ce81d15d272f6cbb6eaa5a9378c184ccbec19dfad6f54288c7048c}} 
LAPDm\+\_\+\+FMT\+\_\+B&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LAPDm\_FMT\_Bbis@{LAPDm\_FMT\_Bbis}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_FMT\_Bbis@{LAPDm\_FMT\_Bbis}}}\mbox{\label{group__lapdm_gga55c40b91811ce81d15d272f6cbb6eaa5a3bd6d06b2f1e7cb584f96f5e4b2c23b4}} 
LAPDm\+\_\+\+FMT\+\_\+\+Bbis&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LAPDm\_FMT\_Bter@{LAPDm\_FMT\_Bter}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_FMT\_Bter@{LAPDm\_FMT\_Bter}}}\mbox{\label{group__lapdm_gga55c40b91811ce81d15d272f6cbb6eaa5ada397569880fb5fb58a068c102556fc9}} 
LAPDm\+\_\+\+FMT\+\_\+\+Bter&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LAPDm\_FMT\_B4@{LAPDm\_FMT\_B4}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDm\_FMT\_B4@{LAPDm\_FMT\_B4}}}\mbox{\label{group__lapdm_gga55c40b91811ce81d15d272f6cbb6eaa5abbd0a5e16cf1181c3f8daa753a94cc01}} 
LAPDm\+\_\+\+FMT\+\_\+\+B4&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{group__lapdm_gae1114a473c0f1b35d2fddae1bf35ff81}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_mode@{lapdm\_mode}}
\index{lapdm\_mode@{lapdm\_mode}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_mode}
{\footnotesize\ttfamily enum \textbf{ lapdm\+\_\+mode}}



LAPDm mode/role. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{LAPDM\_MODE\_MS@{LAPDM\_MODE\_MS}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDM\_MODE\_MS@{LAPDM\_MODE\_MS}}}\mbox{\label{group__lapdm_ggae1114a473c0f1b35d2fddae1bf35ff81aca2c98ee5f2db58e711d9a63ddbc3a67}} 
LAPDM\+\_\+\+MODE\+\_\+\+MS&behave like a MS (mobile phone) \\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{LAPDM\_MODE\_BTS@{LAPDM\_MODE\_BTS}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!LAPDM\_MODE\_BTS@{LAPDM\_MODE\_BTS}}}\mbox{\label{group__lapdm_ggae1114a473c0f1b35d2fddae1bf35ff81af172d10dc702a55a86d255318957d236}} 
LAPDM\+\_\+\+MODE\+\_\+\+BTS&behave like a BTS (network) \\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\mbox{\label{group__lapdm_ga6310c26c189fdd36a930b03d02b487ce}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!get\_n200\_dcch@{get\_n200\_dcch}}
\index{get\_n200\_dcch@{get\_n200\_dcch}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{get\_n200\_dcch()}
{\footnotesize\ttfamily static int get\+\_\+n200\+\_\+dcch (\begin{DoxyParamCaption}\item[{enum \textbf{ gsm\+\_\+chan\+\_\+t}}]{chan\+\_\+t }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ GSM\+\_\+\+LCHAN\+\_\+\+SDCCH}, \textbf{ GSM\+\_\+\+LCHAN\+\_\+\+TCH\+\_\+F}, \textbf{ GSM\+\_\+\+LCHAN\+\_\+\+TCH\+\_\+H}, \textbf{ N200\+\_\+\+TR\+\_\+\+FACCH\+\_\+\+FR}, \textbf{ N200\+\_\+\+TR\+\_\+\+FACCH\+\_\+\+HR}, and \textbf{ N200\+\_\+\+TR\+\_\+\+SDCCH}.



Referenced by \textbf{ lapdm\+\_\+channel\+\_\+init3()}.

\mbox{\label{group__lapdm_ga27a3dbb3842d23814e81ed412b452e2b}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!get\_rsl\_name@{get\_rsl\_name}}
\index{get\_rsl\_name@{get\_rsl\_name}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{get\_rsl\_name()}
{\footnotesize\ttfamily const char $\ast$ get\+\_\+rsl\+\_\+name (\begin{DoxyParamCaption}\item[{int}]{value }\end{DoxyParamCaption})}



References \textbf{ OSMO\+\_\+\+DEPRECATED}, and \textbf{ OSMO\+\_\+\+DEPRECATED\+\_\+\+OUTSIDE}.

\mbox{\label{group__lapdm_gaf1ab5f53299a9f97fe81e1ea31b3e2f6}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!l2\_ph\_chan\_conf@{l2\_ph\_chan\_conf}}
\index{l2\_ph\_chan\_conf@{l2\_ph\_chan\_conf}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{l2\_ph\_chan\_conf()}
{\footnotesize\ttfamily static int l2\+\_\+ph\+\_\+chan\+\_\+conf (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{struct \textbf{ lapdm\+\_\+entity} $\ast$}]{le,  }\item[{uint32\+\_\+t}]{frame\+\_\+nr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ abis\+\_\+rsl\+\_\+cchan\+\_\+hdr\+::chan\+\_\+nr}, \textbf{ abis\+\_\+rsl\+\_\+cchan\+\_\+hdr\+::data}, \textbf{ gsm\+\_\+fn2gsmtime()}, \textbf{ msg}, \textbf{ msgb\+\_\+pull\+\_\+to\+\_\+l3()}, \textbf{ msgb\+\_\+push()}, \textbf{ RSL\+\_\+\+CHAN\+\_\+\+RACH}, \textbf{ RSL\+\_\+\+IE\+\_\+\+REQ\+\_\+\+REFERENCE}, \textbf{ rsl\+\_\+init\+\_\+cchan\+\_\+hdr()}, \textbf{ RSL\+\_\+\+MT\+\_\+\+CHAN\+\_\+\+CONF}, \textbf{ rslms\+\_\+sendmsg()}, \textbf{ gsm\+\_\+time\+::t1}, \textbf{ gsm\+\_\+time\+::t2}, and \textbf{ gsm\+\_\+time\+::t3}.



Referenced by \textbf{ lapdm\+\_\+phsap\+\_\+up()}.

\mbox{\label{group__lapdm_gabeec9c167614b8ea117eafe85f0560cd}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!l2\_ph\_data\_conf@{l2\_ph\_data\_conf}}
\index{l2\_ph\_data\_conf@{l2\_ph\_data\_conf}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{l2\_ph\_data\_conf()}
{\footnotesize\ttfamily static int l2\+\_\+ph\+\_\+data\+\_\+conf (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{struct \textbf{ lapdm\+\_\+entity} $\ast$}]{le }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ lapdm\+\_\+entity\+::flags}, \textbf{ lapdm\+\_\+entity\+::l1\+\_\+ctx}, \textbf{ lapdm\+\_\+entity\+::l1\+\_\+prim\+\_\+cb}, \textbf{ LAPDM\+\_\+\+ENT\+\_\+\+F\+\_\+\+EMPTY\+\_\+\+FRAME}, \textbf{ lapdm\+\_\+phsap\+\_\+dequeue\+\_\+prim()}, \textbf{ msg}, \textbf{ msgb\+\_\+free()}, \textbf{ osmo\+\_\+phsap\+\_\+prim\+::oph}, \textbf{ osmo\+\_\+prim\+\_\+init()}, \textbf{ PRIM\+\_\+\+OP\+\_\+\+REQUEST}, \textbf{ PRIM\+\_\+\+PH\+\_\+\+EMPTY\+\_\+\+FRAME}, \textbf{ SAP\+\_\+\+GSM\+\_\+\+PH}, and \textbf{ lapdm\+\_\+entity\+::tx\+\_\+pending}.



Referenced by \textbf{ lapdm\+\_\+phsap\+\_\+up()}.

\mbox{\label{group__lapdm_ga4d4b63e3157223ce7cfcf6eca19b0aec}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!l2\_ph\_data\_ind@{l2\_ph\_data\_ind}}
\index{l2\_ph\_data\_ind@{l2\_ph\_data\_ind}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{l2\_ph\_data\_ind()}
{\footnotesize\ttfamily static int l2\+\_\+ph\+\_\+data\+\_\+ind (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{struct \textbf{ lapdm\+\_\+entity} $\ast$}]{le,  }\item[{uint8\+\_\+t}]{chan\+\_\+nr,  }\item[{uint8\+\_\+t}]{link\+\_\+id,  }\item[{uint32\+\_\+t}]{fn }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::chan\+\_\+nr}, \textbf{ chan\+\_\+nr}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::cr}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::dl}, \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::dl}, \textbf{ lapdm\+\_\+datalink\+::dl}, \textbf{ DLLAPD}, \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::fn}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::format}, \textbf{ LAPD\+\_\+\+FORM\+\_\+I}, \textbf{ LAPD\+\_\+\+FORM\+\_\+S}, \textbf{ LAPD\+\_\+\+FORM\+\_\+U}, \textbf{ LAPD\+\_\+\+FORM\+\_\+\+UKN}, \textbf{ lapd\+\_\+ph\+\_\+data\+\_\+ind()}, \textbf{ LAPDm\+\_\+\+ADDR\+\_\+\+CR}, \textbf{ LAPDm\+\_\+\+ADDR\+\_\+\+EA}, \textbf{ LAPDm\+\_\+\+ADDR\+\_\+\+LPD}, \textbf{ LAPDm\+\_\+\+ADDR\+\_\+\+SAPI}, \textbf{ LAPDm\+\_\+\+ADDR\+\_\+\+SHORT\+\_\+\+L2}, \textbf{ LAPDm\+\_\+\+CTRL\+\_\+\+I\+\_\+\+Ns}, \textbf{ LAPDm\+\_\+\+CTRL\+\_\+is\+\_\+I}, \textbf{ LAPDm\+\_\+\+CTRL\+\_\+is\+\_\+S}, \textbf{ LAPDm\+\_\+\+CTRL\+\_\+is\+\_\+U}, \textbf{ LAPDm\+\_\+\+CTRL\+\_\+\+Nr}, \textbf{ LAPDm\+\_\+\+CTRL\+\_\+\+PF\+\_\+\+BIT}, \textbf{ LAPDm\+\_\+\+CTRL\+\_\+\+S\+\_\+\+BITS}, \textbf{ LAPDm\+\_\+\+CTRL\+\_\+\+U\+\_\+\+BITS}, \textbf{ lapdm\+\_\+datalink\+\_\+for\+\_\+sapi()}, \textbf{ LAPDm\+\_\+\+EL}, \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::lapdm\+\_\+fmt}, \textbf{ LAPDm\+\_\+\+FMT\+\_\+A}, \textbf{ LAPDm\+\_\+\+FMT\+\_\+B}, \textbf{ LAPDm\+\_\+\+FMT\+\_\+\+B4}, \textbf{ LAPDm\+\_\+\+FMT\+\_\+\+Bbis}, \textbf{ LAPDm\+\_\+\+FMT\+\_\+\+Bter}, \textbf{ LAPDM\+\_\+\+MODE\+\_\+\+MS}, \textbf{ LAPDm\+\_\+\+MORE}, \textbf{ lapdm\+\_\+rx\+\_\+not\+\_\+permitted()}, \textbf{ LAPDm\+\_\+\+SAPI\+\_\+\+NORMAL}, \textbf{ LAPDm\+\_\+\+SAPI\+\_\+\+SMS}, \textbf{ LAPDm\+\_\+\+U\+\_\+\+UI}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::length}, \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::link\+\_\+id}, \textbf{ link\+\_\+id}, \textbf{ LOGDL}, \textbf{ LOGL\+\_\+\+DEBUG}, \textbf{ LOGL\+\_\+\+INFO}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGP}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::lpd}, \textbf{ lapdm\+\_\+datalink\+::mctx}, \textbf{ lapdm\+\_\+entity\+::mode}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::more}, \textbf{ msg}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+pull()}, \textbf{ msgb\+\_\+pull\+\_\+to\+\_\+l3()}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::n201}, \textbf{ N201\+\_\+\+AB\+\_\+\+SACCH}, \textbf{ N201\+\_\+\+AB\+\_\+\+SDCCH}, \textbf{ N201\+\_\+\+B4}, \textbf{ N201\+\_\+\+Bbis}, \textbf{ N201\+\_\+\+Bter\+\_\+\+SACCH}, \textbf{ N201\+\_\+\+Bter\+\_\+\+SDCCH}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::n\+\_\+recv}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::n\+\_\+send}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::p\+\_\+f}, \textbf{ RLL\+\_\+\+CAUSE\+\_\+\+FRM\+\_\+\+UNIMPL}, \textbf{ RSL\+\_\+\+MT\+\_\+\+UNIT\+\_\+\+DATA\+\_\+\+IND}, \textbf{ rsl\+\_\+rll\+\_\+error()}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::s\+\_\+u}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::sapi}, \textbf{ send\+\_\+rslms\+\_\+rll\+\_\+l3()}, \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::ta\+\_\+ind}, and \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::tx\+\_\+power\+\_\+ind}.



Referenced by \textbf{ lapdm\+\_\+phsap\+\_\+up()}.

\mbox{\label{group__lapdm_gaafb9ecc884f1a3122781f83cd0bac765}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!l2\_ph\_rach\_ind@{l2\_ph\_rach\_ind}}
\index{l2\_ph\_rach\_ind@{l2\_ph\_rach\_ind}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{l2\_ph\_rach\_ind()}
{\footnotesize\ttfamily static int l2\+\_\+ph\+\_\+rach\+\_\+ind (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+entity} $\ast$}]{le,  }\item[{uint8\+\_\+t}]{ra,  }\item[{uint32\+\_\+t}]{fn,  }\item[{uint8\+\_\+t}]{acc\+\_\+delay }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ abis\+\_\+rsl\+\_\+cchan\+\_\+hdr\+::chan\+\_\+nr}, \textbf{ gsm\+\_\+fn2gsmtime()}, \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ msgb\+\_\+push()}, \textbf{ msgb\+\_\+tv\+\_\+fixed\+\_\+put()}, \textbf{ msgb\+\_\+tv\+\_\+put()}, \textbf{ req\+\_\+ref}, \textbf{ RSL\+\_\+\+CHAN\+\_\+\+RACH}, \textbf{ RSL\+\_\+\+IE\+\_\+\+ACCESS\+\_\+\+DELAY}, \textbf{ RSL\+\_\+\+IE\+\_\+\+REQ\+\_\+\+REFERENCE}, \textbf{ rsl\+\_\+init\+\_\+cchan\+\_\+hdr()}, \textbf{ RSL\+\_\+\+MT\+\_\+\+CHAN\+\_\+\+RQD}, \textbf{ rslms\+\_\+sendmsg()}, \textbf{ gsm\+\_\+time\+::t1}, \textbf{ gsm\+\_\+time\+::t2}, and \textbf{ gsm\+\_\+time\+::t3}.



Referenced by \textbf{ lapdm\+\_\+phsap\+\_\+up()}.

\mbox{\label{group__lapdm_gac8e42067577a228ec416e61796258aa4}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_channel\_exit@{lapdm\_channel\_exit}}
\index{lapdm\_channel\_exit@{lapdm\_channel\_exit}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_channel\_exit()}
{\footnotesize\ttfamily void lapdm\+\_\+channel\+\_\+exit (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+channel} $\ast$}]{lc }\end{DoxyParamCaption})}



References \textbf{ lapdm\+\_\+channel\+::lapdm\+\_\+acch}, \textbf{ lapdm\+\_\+channel\+::lapdm\+\_\+dcch}, and \textbf{ lapdm\+\_\+entity\+\_\+exit()}.

\mbox{\label{group__lapdm_ga7e21f2144b59f8c10904faea1e77dfed}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_channel\_init@{lapdm\_channel\_init}}
\index{lapdm\_channel\_init@{lapdm\_channel\_init}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_channel\_init()}
{\footnotesize\ttfamily void lapdm\+\_\+channel\+\_\+init (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+channel} $\ast$}]{lc,  }\item[{enum \textbf{ lapdm\+\_\+mode}}]{mode }\end{DoxyParamCaption})}



initialize a LAPDm channel and all its channels 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em lc} & \doxyref{lapdm\+\_\+channel}{p.}{structlapdm__channel} to be initialized \\
\hline
\mbox{\texttt{ in}}  & {\em mode} & lapdm\+\_\+mode (BTS/\+MS)\\
\hline
\end{DoxyParams}
Don\textquotesingle{}t use this function; It doesn\textquotesingle{}t support different T200 values per API and doesn\textquotesingle{}t set the correct N200 counter, both of which are required by GSM specs and supported by \doxyref{lapdm\+\_\+channel\+\_\+init2()}{p.}{group__lapdm_gaefe8b0d18b984c3210ccfda26ceedb74}. 

References \textbf{ \+\_\+\+NR\+\_\+\+DL\+\_\+\+SAPI}, \textbf{ GSM\+\_\+\+LCHAN\+\_\+\+SDCCH}, \textbf{ lapdm\+\_\+channel\+\_\+init3()}, and \textbf{ mode}.

\mbox{\label{group__lapdm_gaefe8b0d18b984c3210ccfda26ceedb74}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_channel\_init2@{lapdm\_channel\_init2}}
\index{lapdm\_channel\_init2@{lapdm\_channel\_init2}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_channel\_init2()}
{\footnotesize\ttfamily int lapdm\+\_\+channel\+\_\+init2 (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+channel} $\ast$}]{lc,  }\item[{enum \textbf{ lapdm\+\_\+mode}}]{mode,  }\item[{const int $\ast$}]{t200\+\_\+ms\+\_\+dcch,  }\item[{const int $\ast$}]{t200\+\_\+ms\+\_\+acch,  }\item[{enum \textbf{ gsm\+\_\+chan\+\_\+t}}]{chan\+\_\+t }\end{DoxyParamCaption})}



initialize a LAPDm channel and all its channels 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em lc} & \doxyref{lapdm\+\_\+channel}{p.}{structlapdm__channel} to be initialized \\
\hline
\mbox{\texttt{ in}}  & {\em mode} & \doxyref{lapdm\+\_\+mode}{p.}{group__lapdm_gae1114a473c0f1b35d2fddae1bf35ff81} (BTS/\+MS) \\
\hline
\mbox{\texttt{ in}}  & {\em t200\+\_\+ms\+\_\+dcch} & per-\/\+SAPI array of T200 in milli-\/seconds for DCCH \\
\hline
\mbox{\texttt{ in}}  & {\em t200\+\_\+ms\+\_\+acch} & per-\/\+SAPI array of T200 in milli-\/seconds for SACCH \\
\hline
\mbox{\texttt{ in}}  & {\em chan\+\_\+t} & GSM channel type (to correctly set N200) \\
\hline
\end{DoxyParams}


References \textbf{ lapdm\+\_\+channel\+\_\+init3()}, and \textbf{ mode}.

\mbox{\label{group__lapdm_ga78d5403c3e93d251687c27d6e371ee0c}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_channel\_init3@{lapdm\_channel\_init3}}
\index{lapdm\_channel\_init3@{lapdm\_channel\_init3}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_channel\_init3()}
{\footnotesize\ttfamily int lapdm\+\_\+channel\+\_\+init3 (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+channel} $\ast$}]{lc,  }\item[{enum \textbf{ lapdm\+\_\+mode}}]{mode,  }\item[{const int $\ast$}]{t200\+\_\+ms\+\_\+dcch,  }\item[{const int $\ast$}]{t200\+\_\+ms\+\_\+acch,  }\item[{enum \textbf{ gsm\+\_\+chan\+\_\+t}}]{chan\+\_\+t,  }\item[{const char $\ast$}]{name\+\_\+pfx }\end{DoxyParamCaption})}



initialize a LAPDm channel and all its channels 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em lc} & \doxyref{lapdm\+\_\+channel}{p.}{structlapdm__channel} to be initialized \\
\hline
\mbox{\texttt{ in}}  & {\em mode} & \doxyref{lapdm\+\_\+mode}{p.}{group__lapdm_gae1114a473c0f1b35d2fddae1bf35ff81} (BTS/\+MS) \\
\hline
\mbox{\texttt{ in}}  & {\em t200\+\_\+ms\+\_\+dcch} & per-\/\+SAPI array of T200 in milli-\/seconds for DCCH \\
\hline
\mbox{\texttt{ in}}  & {\em t200\+\_\+ms\+\_\+acch} & per-\/\+SAPI array of T200 in milli-\/seconds for SACCH \\
\hline
\mbox{\texttt{ in}}  & {\em chan\+\_\+t} & GSM channel type (to correctly set N200) \\
\hline
\mbox{\texttt{ in}}  & {\em name\+\_\+pfx} & human-\/readable name (copied by function + extended with ACCH/\+DCCH) \\
\hline
\end{DoxyParams}


References \textbf{ get\+\_\+n200\+\_\+dcch()}, \textbf{ lapdm\+\_\+channel\+::lapdm\+\_\+acch}, \textbf{ lapdm\+\_\+entity\+::lapdm\+\_\+ch}, \textbf{ lapdm\+\_\+channel\+::lapdm\+\_\+dcch}, \textbf{ lapdm\+\_\+entity\+\_\+init3()}, \textbf{ mode}, \textbf{ N200\+\_\+\+TR\+\_\+\+SACCH}, \textbf{ name}, \textbf{ lapdm\+\_\+channel\+::name}, \textbf{ namebuf}, \textbf{ osmo\+\_\+talloc\+\_\+replace\+\_\+string()}, and \textbf{ tall\+\_\+lapd\+\_\+ctx}.



Referenced by \textbf{ lapdm\+\_\+channel\+\_\+init()}, and \textbf{ lapdm\+\_\+channel\+\_\+init2()}.

\mbox{\label{group__lapdm_gab50a8701af8b7fc85df5233479c61de8}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_channel\_reset@{lapdm\_channel\_reset}}
\index{lapdm\_channel\_reset@{lapdm\_channel\_reset}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_channel\_reset()}
{\footnotesize\ttfamily void lapdm\+\_\+channel\+\_\+reset (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+channel} $\ast$}]{lc }\end{DoxyParamCaption})}



Reset a LAPDm channel with all its entities. 



References \textbf{ lapdm\+\_\+channel\+::lapdm\+\_\+acch}, \textbf{ lapdm\+\_\+channel\+::lapdm\+\_\+dcch}, and \textbf{ lapdm\+\_\+entity\+\_\+reset()}.

\mbox{\label{group__lapdm_ga3a4869c84723ce7bbb96de2f61a11b31}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_channel\_set\_flags@{lapdm\_channel\_set\_flags}}
\index{lapdm\_channel\_set\_flags@{lapdm\_channel\_set\_flags}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_channel\_set\_flags()}
{\footnotesize\ttfamily void lapdm\+\_\+channel\+\_\+set\+\_\+flags (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+channel} $\ast$}]{lc,  }\item[{unsigned int}]{flags }\end{DoxyParamCaption})}



Set the flags of all LAPDm entities in a LAPDm channel. 



References \textbf{ flags}, \textbf{ lapdm\+\_\+channel\+::lapdm\+\_\+acch}, \textbf{ lapdm\+\_\+channel\+::lapdm\+\_\+dcch}, and \textbf{ lapdm\+\_\+entity\+\_\+set\+\_\+flags()}.

\mbox{\label{group__lapdm_ga6d85c06957a92531f72a52973de40e49}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_channel\_set\_l1@{lapdm\_channel\_set\_l1}}
\index{lapdm\_channel\_set\_l1@{lapdm\_channel\_set\_l1}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_channel\_set\_l1()}
{\footnotesize\ttfamily void lapdm\+\_\+channel\+\_\+set\+\_\+l1 (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+channel} $\ast$}]{lc,  }\item[{\textbf{ osmo\+\_\+prim\+\_\+cb}}]{cb,  }\item[{void $\ast$}]{ctx }\end{DoxyParamCaption})}



Set the L1 callback and context of a LAPDm channel. 



References \textbf{ lapdm\+\_\+entity\+::l1\+\_\+ctx}, \textbf{ lapdm\+\_\+entity\+::l1\+\_\+prim\+\_\+cb}, \textbf{ lapdm\+\_\+channel\+::lapdm\+\_\+acch}, and \textbf{ lapdm\+\_\+channel\+::lapdm\+\_\+dcch}.

\mbox{\label{group__lapdm_gabfa9f9d068238994bc17ee27f9bdc919}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_channel\_set\_l3@{lapdm\_channel\_set\_l3}}
\index{lapdm\_channel\_set\_l3@{lapdm\_channel\_set\_l3}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_channel\_set\_l3()}
{\footnotesize\ttfamily void lapdm\+\_\+channel\+\_\+set\+\_\+l3 (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+channel} $\ast$}]{lc,  }\item[{\textbf{ lapdm\+\_\+cb\+\_\+t}}]{cb,  }\item[{void $\ast$}]{ctx }\end{DoxyParamCaption})}



Set the L3 callback and context of a LAPDm channel. 



References \textbf{ lapdm\+\_\+entity\+::l3\+\_\+cb}, \textbf{ lapdm\+\_\+entity\+::l3\+\_\+ctx}, \textbf{ lapdm\+\_\+channel\+::lapdm\+\_\+acch}, and \textbf{ lapdm\+\_\+channel\+::lapdm\+\_\+dcch}.

\mbox{\label{group__lapdm_ga87eba638c352e625451bb2457af2357f}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_channel\_set\_mode@{lapdm\_channel\_set\_mode}}
\index{lapdm\_channel\_set\_mode@{lapdm\_channel\_set\_mode}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_channel\_set\_mode()}
{\footnotesize\ttfamily int lapdm\+\_\+channel\+\_\+set\+\_\+mode (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+channel} $\ast$}]{lc,  }\item[{enum \textbf{ lapdm\+\_\+mode}}]{mode }\end{DoxyParamCaption})}



Set the \doxyref{lapdm\+\_\+mode}{p.}{group__lapdm_gae1114a473c0f1b35d2fddae1bf35ff81} of a LAPDm channel. 



References \textbf{ lapdm\+\_\+channel\+::lapdm\+\_\+acch}, \textbf{ lapdm\+\_\+channel\+::lapdm\+\_\+dcch}, \textbf{ lapdm\+\_\+entity\+\_\+set\+\_\+mode()}, and \textbf{ mode}.

\mbox{\label{group__lapdm_gaf9696c3a84511c9257fd6c588f1fa830}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_channel\_set\_t200\_fn@{lapdm\_channel\_set\_t200\_fn}}
\index{lapdm\_channel\_set\_t200\_fn@{lapdm\_channel\_set\_t200\_fn}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_channel\_set\_t200\_fn()}
{\footnotesize\ttfamily void lapdm\+\_\+channel\+\_\+set\+\_\+t200\+\_\+fn (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+channel} $\ast$}]{lc,  }\item[{const uint32\+\_\+t $\ast$}]{t200\+\_\+fn\+\_\+dcch,  }\item[{const uint32\+\_\+t $\ast$}]{t200\+\_\+fn\+\_\+acch }\end{DoxyParamCaption})}



Set the T200 FN timer of all LAPDm entities in a LAPDm channel. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em } & \\
\hline
\end{DoxyParams}
ref \doxyref{lapdm\+\_\+channel}{p.}{structlapdm__channel} 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em t200\+\_\+fn\+\_\+dcch} & Array of T200 timeout in frame numbers for all SAPIs (0, 3) on SDCCH/\+FACCH \\
\hline
\mbox{\texttt{ in}}  & {\em t200\+\_\+fn\+\_\+acch} & Array of T200 timeout in frame numbers for all SAPIs (0, 3) on SACCH \\
\hline
\end{DoxyParams}


References \textbf{ lapdm\+\_\+channel\+::lapdm\+\_\+acch}, \textbf{ lapdm\+\_\+channel\+::lapdm\+\_\+dcch}, and \textbf{ lapdm\+\_\+entity\+\_\+set\+\_\+t200\+\_\+fn()}.

\mbox{\label{group__lapdm_ga350ce091a1e6676a3078f962cfae1c42}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_datalink\_for\_sapi@{lapdm\_datalink\_for\_sapi}}
\index{lapdm\_datalink\_for\_sapi@{lapdm\_datalink\_for\_sapi}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_datalink\_for\_sapi()}
{\footnotesize\ttfamily struct \textbf{ lapdm\+\_\+datalink} $\ast$ lapdm\+\_\+datalink\+\_\+for\+\_\+sapi (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+entity} $\ast$}]{le,  }\item[{uint8\+\_\+t}]{sapi }\end{DoxyParamCaption})}



References \textbf{ lapdm\+\_\+entity\+::datalink}, \textbf{ LAPDm\+\_\+\+SAPI\+\_\+\+NORMAL}, and \textbf{ LAPDm\+\_\+\+SAPI\+\_\+\+SMS}.



Referenced by \textbf{ l2\+\_\+ph\+\_\+data\+\_\+ind()}, and \textbf{ rslms\+\_\+rx\+\_\+rll()}.

\mbox{\label{group__lapdm_ga919b80186b8023c997e78948e83294cc}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_dl\_init@{lapdm\_dl\_init}}
\index{lapdm\_dl\_init@{lapdm\_dl\_init}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_dl\_init()}
{\footnotesize\ttfamily static void lapdm\+\_\+dl\+\_\+init (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+datalink} $\ast$}]{dl,  }\item[{struct \textbf{ lapdm\+\_\+entity} $\ast$}]{entity,  }\item[{int}]{t200\+\_\+ms,  }\item[{uint32\+\_\+t}]{n200,  }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ lapdm\+\_\+datalink\+::dl}, \textbf{ lapdm\+\_\+datalink\+::entity}, \textbf{ INIT\+\_\+\+LLIST\+\_\+\+HEAD}, \textbf{ lapd\+\_\+dl\+\_\+init2()}, \textbf{ lapdm\+\_\+send\+\_\+ph\+\_\+data\+\_\+req()}, \textbf{ lapd\+\_\+datalink\+::n200}, \textbf{ lapd\+\_\+datalink\+::n200\+\_\+est\+\_\+rel}, \textbf{ N200\+\_\+\+EST\+\_\+\+REL}, \textbf{ name}, \textbf{ lapd\+\_\+datalink\+::reestablish}, \textbf{ lapd\+\_\+datalink\+::send\+\_\+dlsap}, \textbf{ lapd\+\_\+datalink\+::send\+\_\+ph\+\_\+data\+\_\+req}, \textbf{ send\+\_\+rslms\+\_\+dlsap()}, \textbf{ lapd\+\_\+datalink\+::t200\+\_\+sec}, \textbf{ lapd\+\_\+datalink\+::t200\+\_\+usec}, \textbf{ lapd\+\_\+datalink\+::t203\+\_\+sec}, \textbf{ lapd\+\_\+datalink\+::t203\+\_\+usec}, \textbf{ lapdm\+\_\+datalink\+::tx\+\_\+ui\+\_\+queue}, \textbf{ update\+\_\+pending\+\_\+frames()}, and \textbf{ lapd\+\_\+datalink\+::update\+\_\+pending\+\_\+frames}.



Referenced by \textbf{ lapdm\+\_\+entity\+\_\+init3()}.

\mbox{\label{group__lapdm_ga6f7a1e965bd53e241a8d7823982c490f}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_entity\_exit@{lapdm\_entity\_exit}}
\index{lapdm\_entity\_exit@{lapdm\_entity\_exit}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_entity\_exit()}
{\footnotesize\ttfamily void lapdm\+\_\+entity\+\_\+exit (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+entity} $\ast$}]{le }\end{DoxyParamCaption})}



flush and release all resoures in LAPDm entity 



References \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ lapdm\+\_\+entity\+::datalink}, \textbf{ lapdm\+\_\+datalink\+::dl}, \textbf{ lapd\+\_\+dl\+\_\+exit()}, and \textbf{ msgb\+\_\+queue\+\_\+free()}.



Referenced by \textbf{ lapdm\+\_\+channel\+\_\+exit()}.

\mbox{\label{group__lapdm_ga3e72f2087e33cb4bf39b2ec8aaebba98}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_entity\_init@{lapdm\_entity\_init}}
\index{lapdm\_entity\_init@{lapdm\_entity\_init}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_entity\_init()}
{\footnotesize\ttfamily void lapdm\+\_\+entity\+\_\+init (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+entity} $\ast$}]{le,  }\item[{enum \textbf{ lapdm\+\_\+mode}}]{mode,  }\item[{int}]{t200 }\end{DoxyParamCaption})}



initialize a LAPDm entity and all datalinks inside 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em le} & LAPDm entity \\
\hline
\mbox{\texttt{ in}}  & {\em mode} & \doxyref{lapdm\+\_\+mode}{p.}{group__lapdm_gae1114a473c0f1b35d2fddae1bf35ff81} (BTS/\+MS) \\
\hline
\mbox{\texttt{ in}}  & {\em t200} & T200 re-\/transmission timer for all SAPIs in seconds\\
\hline
\end{DoxyParams}
Don\textquotesingle{}t use this function; It doesn\textquotesingle{}t support different T200 values per API and doesn\textquotesingle{}t permit the caller to specify the N200 counter, both of which are required by GSM specs and supported by \doxyref{lapdm\+\_\+entity\+\_\+init2()}{p.}{group__lapdm_ga8a1cdd3e040dfde7c295c64e1ae25eeb}. 

References \textbf{ \+\_\+\+NR\+\_\+\+DL\+\_\+\+SAPI}, \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ lapdm\+\_\+entity\+\_\+init3()}, \textbf{ mode}, and \textbf{ N200}.

\mbox{\label{group__lapdm_ga8a1cdd3e040dfde7c295c64e1ae25eeb}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_entity\_init2@{lapdm\_entity\_init2}}
\index{lapdm\_entity\_init2@{lapdm\_entity\_init2}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_entity\_init2()}
{\footnotesize\ttfamily void lapdm\+\_\+entity\+\_\+init2 (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+entity} $\ast$}]{le,  }\item[{enum \textbf{ lapdm\+\_\+mode}}]{mode,  }\item[{const int $\ast$}]{t200\+\_\+ms,  }\item[{int}]{n200 }\end{DoxyParamCaption})}



initialize a LAPDm entity and all datalinks inside 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em le} & LAPDm entity \\
\hline
\mbox{\texttt{ in}}  & {\em mode} & lapdm\+\_\+mode (BTS/\+MS) \\
\hline
\mbox{\texttt{ in}}  & {\em t200\+\_\+ms} & per-\/\+SAPI array of T200 re-\/transmission timer in milli-\/seconds \\
\hline
\mbox{\texttt{ in}}  & {\em n200} & N200 re-\/transmisison count \\
\hline
\end{DoxyParams}


References \textbf{ lapdm\+\_\+entity\+\_\+init3()}, and \textbf{ mode}.

\mbox{\label{group__lapdm_ga314183cdcd59bd7c95d612a0917aea02}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_entity\_init3@{lapdm\_entity\_init3}}
\index{lapdm\_entity\_init3@{lapdm\_entity\_init3}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_entity\_init3()}
{\footnotesize\ttfamily void lapdm\+\_\+entity\+\_\+init3 (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+entity} $\ast$}]{le,  }\item[{enum \textbf{ lapdm\+\_\+mode}}]{mode,  }\item[{const int $\ast$}]{t200\+\_\+ms,  }\item[{int}]{n200,  }\item[{const char $\ast$}]{name\+\_\+pfx }\end{DoxyParamCaption})}



initialize a LAPDm entity and all datalinks inside 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em le} & LAPDm entity \\
\hline
\mbox{\texttt{ in}}  & {\em mode} & lapdm\+\_\+mode (BTS/\+MS) \\
\hline
\mbox{\texttt{ in}}  & {\em t200\+\_\+ms} & per-\/\+SAPI array of T200 re-\/transmission timer in milli-\/seconds \\
\hline
\mbox{\texttt{ in}}  & {\em n200} & N200 re-\/transmisison count \\
\hline
\mbox{\texttt{ in}}  & {\em name} & human-\/readable name (will be copied internally + extended with SAPI) \\
\hline
\end{DoxyParams}


References \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ lapdm\+\_\+entity\+::datalink}, \textbf{ lapdm\+\_\+dl\+\_\+init()}, \textbf{ lapdm\+\_\+entity\+\_\+set\+\_\+mode()}, \textbf{ mode}, and \textbf{ name}.



Referenced by \textbf{ lapdm\+\_\+channel\+\_\+init3()}, \textbf{ lapdm\+\_\+entity\+\_\+init()}, and \textbf{ lapdm\+\_\+entity\+\_\+init2()}.

\mbox{\label{group__lapdm_ga72029f44100c7d0fede72cc83a4275c8}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_entity\_reset@{lapdm\_entity\_reset}}
\index{lapdm\_entity\_reset@{lapdm\_entity\_reset}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_entity\_reset()}
{\footnotesize\ttfamily void lapdm\+\_\+entity\+\_\+reset (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+entity} $\ast$}]{le }\end{DoxyParamCaption})}



Reset an entire LAPDm entity and all its datalinks. 



References \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ lapdm\+\_\+entity\+::datalink}, \textbf{ lapdm\+\_\+datalink\+::dl}, \textbf{ lapd\+\_\+dl\+\_\+reset()}, and \textbf{ msgb\+\_\+queue\+\_\+free()}.



Referenced by \textbf{ lapdm\+\_\+channel\+\_\+reset()}.

\mbox{\label{group__lapdm_ga5ac261aa9a8c16a8429c5d0b27b0c0c4}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_entity\_set\_flags@{lapdm\_entity\_set\_flags}}
\index{lapdm\_entity\_set\_flags@{lapdm\_entity\_set\_flags}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_entity\_set\_flags()}
{\footnotesize\ttfamily void lapdm\+\_\+entity\+\_\+set\+\_\+flags (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+entity} $\ast$}]{le,  }\item[{unsigned int}]{flags }\end{DoxyParamCaption})}



Set the flags of a LAPDm entity. 



References \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ lapdm\+\_\+entity\+::datalink}, \textbf{ lapdm\+\_\+datalink\+::dl}, \textbf{ flags}, \textbf{ lapdm\+\_\+entity\+::flags}, \textbf{ lapd\+\_\+dl\+\_\+set\+\_\+flags()}, \textbf{ LAPD\+\_\+\+F\+\_\+\+DROP\+\_\+2\+ND\+\_\+\+REJ}, \textbf{ LAPD\+\_\+\+F\+\_\+\+RTS}, \textbf{ LAPDM\+\_\+\+ENT\+\_\+\+F\+\_\+\+DROP\+\_\+2\+ND\+\_\+\+REJ}, and \textbf{ LAPDM\+\_\+\+ENT\+\_\+\+F\+\_\+\+RTS}.



Referenced by \textbf{ lapdm\+\_\+channel\+\_\+set\+\_\+flags()}.

\mbox{\label{group__lapdm_ga0834dfa357495db39a78091119a9c028}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_entity\_set\_mode@{lapdm\_entity\_set\_mode}}
\index{lapdm\_entity\_set\_mode@{lapdm\_entity\_set\_mode}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_entity\_set\_mode()}
{\footnotesize\ttfamily int lapdm\+\_\+entity\+\_\+set\+\_\+mode (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+entity} $\ast$}]{le,  }\item[{enum \textbf{ lapdm\+\_\+mode}}]{mode }\end{DoxyParamCaption})}



Set the \doxyref{lapdm\+\_\+mode}{p.}{group__lapdm_gae1114a473c0f1b35d2fddae1bf35ff81} of a LAPDm entity. 



References \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ lapdm\+\_\+entity\+::datalink}, \textbf{ lapdm\+\_\+datalink\+::dl}, \textbf{ LAPD\+\_\+\+MODE\+\_\+\+NETWORK}, \textbf{ LAPD\+\_\+\+MODE\+\_\+\+USER}, \textbf{ lapd\+\_\+set\+\_\+mode()}, \textbf{ LAPDM\+\_\+\+MODE\+\_\+\+BTS}, \textbf{ LAPDM\+\_\+\+MODE\+\_\+\+MS}, \textbf{ lapdm\+\_\+entity\+::mode}, and \textbf{ mode}.



Referenced by \textbf{ lapdm\+\_\+channel\+\_\+set\+\_\+mode()}, and \textbf{ lapdm\+\_\+entity\+\_\+init3()}.

\mbox{\label{group__lapdm_ga71e2facb7a3ed8fae6ef0f5693429614}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_entity\_set\_t200\_fn@{lapdm\_entity\_set\_t200\_fn}}
\index{lapdm\_entity\_set\_t200\_fn@{lapdm\_entity\_set\_t200\_fn}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_entity\_set\_t200\_fn()}
{\footnotesize\ttfamily void lapdm\+\_\+entity\+\_\+set\+\_\+t200\+\_\+fn (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+entity} $\ast$}]{le,  }\item[{const uint32\+\_\+t $\ast$}]{t200\+\_\+fn }\end{DoxyParamCaption})}



Set the T200 FN timer of a LAPDm entity. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em } & \\
\hline
\end{DoxyParams}
ref \doxyref{lapdm\+\_\+entity}{p.}{structlapdm__entity} 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em t200\+\_\+fn} & Array of T200 timeout in frame numbers for all SAPIs (0, 3) \\
\hline
\end{DoxyParams}


References \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ lapdm\+\_\+entity\+::datalink}, and \textbf{ lapdm\+\_\+datalink\+::t200\+\_\+fn}.



Referenced by \textbf{ lapdm\+\_\+channel\+\_\+set\+\_\+t200\+\_\+fn()}.

\mbox{\label{group__lapdm_gad3dd91abc1e639039f4b233f464d5795}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_pad\_msgb@{lapdm\_pad\_msgb}}
\index{lapdm\_pad\_msgb@{lapdm\_pad\_msgb}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_pad\_msgb()}
{\footnotesize\ttfamily static void lapdm\+\_\+pad\+\_\+msgb (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{uint8\+\_\+t}]{n201 }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ data}, \textbf{ DLLAPD}, \textbf{ GSM\+\_\+\+MACBLOCK\+\_\+\+PADDING}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ LOGP}, \textbf{ msg}, \textbf{ msgb\+\_\+l2len()}, and \textbf{ msgb\+\_\+put()}.



Referenced by \textbf{ lapdm\+\_\+phsap\+\_\+dequeue\+\_\+prim\+\_\+fn()}, \textbf{ tx\+\_\+ph\+\_\+data\+\_\+enqueue()}, and \textbf{ tx\+\_\+ph\+\_\+data\+\_\+enqueue\+\_\+ui()}.

\mbox{\label{group__lapdm_gab06c68bd4783c12f9a458d48e127ea22}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_phsap\_dequeue\_prim@{lapdm\_phsap\_dequeue\_prim}}
\index{lapdm\_phsap\_dequeue\_prim@{lapdm\_phsap\_dequeue\_prim}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_phsap\_dequeue\_prim()}
{\footnotesize\ttfamily int lapdm\+\_\+phsap\+\_\+dequeue\+\_\+prim (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+entity} $\ast$}]{le,  }\item[{struct \textbf{ osmo\+\_\+phsap\+\_\+prim} $\ast$}]{pp }\end{DoxyParamCaption})}



dequeue a msg that\textquotesingle{}s pending transmission via L1 and wrap it into a \doxyref{osmo\+\_\+phsap\+\_\+prim}{p.}{structosmo__phsap__prim} 



References \textbf{ lapdm\+\_\+phsap\+\_\+dequeue\+\_\+prim\+\_\+fn()}.



Referenced by \textbf{ l2\+\_\+ph\+\_\+data\+\_\+conf()}.

\mbox{\label{group__lapdm_ga63121973fcad8f4550fa5c4a2504f5d9}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_phsap\_dequeue\_prim\_fn@{lapdm\_phsap\_dequeue\_prim\_fn}}
\index{lapdm\_phsap\_dequeue\_prim\_fn@{lapdm\_phsap\_dequeue\_prim\_fn}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_phsap\_dequeue\_prim\_fn()}
{\footnotesize\ttfamily int lapdm\+\_\+phsap\+\_\+dequeue\+\_\+prim\+\_\+fn (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+entity} $\ast$}]{le,  }\item[{struct \textbf{ osmo\+\_\+phsap\+\_\+prim} $\ast$}]{pp,  }\item[{uint32\+\_\+t}]{fn }\end{DoxyParamCaption})}



dequeue a msg that\textquotesingle{}s pending transmission via L1 and wrap it into a \doxyref{osmo\+\_\+phsap\+\_\+prim}{p.}{structosmo__phsap__prim} 



References \textbf{ ph\+\_\+data\+\_\+param\+::chan\+\_\+nr}, \textbf{ osmo\+\_\+phsap\+\_\+prim\+::data}, \textbf{ lapdm\+\_\+entity\+::lapdm\+\_\+ch}, \textbf{ lapdm\+\_\+channel\+::lapdm\+\_\+dcch}, \textbf{ lapdm\+\_\+pad\+\_\+msgb()}, \textbf{ ph\+\_\+data\+\_\+param\+::link\+\_\+id}, \textbf{ msg}, \textbf{ msgb\+\_\+pull()}, \textbf{ osmo\+\_\+phsap\+\_\+prim\+::oph}, \textbf{ osmo\+\_\+prim\+\_\+init()}, \textbf{ PRIM\+\_\+\+OP\+\_\+\+REQUEST}, \textbf{ PRIM\+\_\+\+PH\+\_\+\+DATA}, \textbf{ SAP\+\_\+\+GSM\+\_\+\+PH}, \textbf{ tx\+\_\+dequeue\+\_\+acch\+\_\+msgb()}, \textbf{ tx\+\_\+dequeue\+\_\+dcch\+\_\+msgb()}, and \textbf{ osmo\+\_\+phsap\+\_\+prim\+::u}.



Referenced by \textbf{ lapdm\+\_\+phsap\+\_\+dequeue\+\_\+prim()}.

\mbox{\label{group__lapdm_ga7720d694547c0f862f213861689835cd}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_phsap\_up@{lapdm\_phsap\_up}}
\index{lapdm\_phsap\_up@{lapdm\_phsap\_up}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_phsap\_up()}
{\footnotesize\ttfamily int lapdm\+\_\+phsap\+\_\+up (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+prim\+\_\+hdr} $\ast$}]{oph,  }\item[{struct \textbf{ lapdm\+\_\+entity} $\ast$}]{le }\end{DoxyParamCaption})}



Receive a PH-\/\+SAP primitive from L1. 



References \textbf{ ph\+\_\+rach\+\_\+ind\+\_\+param\+::acc\+\_\+delay}, \textbf{ ph\+\_\+data\+\_\+param\+::chan\+\_\+nr}, \textbf{ osmo\+\_\+phsap\+\_\+prim\+::data}, \textbf{ DLLAPD}, \textbf{ ph\+\_\+rach\+\_\+ind\+\_\+param\+::fn}, \textbf{ ph\+\_\+data\+\_\+param\+::fn}, \textbf{ l2\+\_\+ph\+\_\+chan\+\_\+conf()}, \textbf{ l2\+\_\+ph\+\_\+data\+\_\+conf()}, \textbf{ l2\+\_\+ph\+\_\+data\+\_\+ind()}, \textbf{ l2\+\_\+ph\+\_\+rach\+\_\+ind()}, \textbf{ ph\+\_\+data\+\_\+param\+::link\+\_\+id}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ LOGP}, \textbf{ osmo\+\_\+prim\+\_\+hdr\+::msg}, \textbf{ msgb\+\_\+free()}, \textbf{ osmo\+\_\+phsap\+\_\+prim\+::oph}, \textbf{ OSMO\+\_\+\+PRIM}, \textbf{ OSMO\+\_\+\+PRIM\+\_\+\+HDR}, \textbf{ PRIM\+\_\+\+OP\+\_\+\+CONFIRM}, \textbf{ PRIM\+\_\+\+OP\+\_\+\+INDICATION}, \textbf{ PRIM\+\_\+\+PH\+\_\+\+DATA}, \textbf{ PRIM\+\_\+\+PH\+\_\+\+RACH}, \textbf{ PRIM\+\_\+\+PH\+\_\+\+RTS}, \textbf{ osmo\+\_\+prim\+\_\+hdr\+::primitive}, \textbf{ ph\+\_\+rach\+\_\+ind\+\_\+param\+::ra}, \textbf{ osmo\+\_\+phsap\+\_\+prim\+::rach\+\_\+ind}, \textbf{ osmo\+\_\+prim\+\_\+hdr\+::sap}, \textbf{ SAP\+\_\+\+GSM\+\_\+\+PH}, and \textbf{ osmo\+\_\+phsap\+\_\+prim\+::u}.

\mbox{\label{group__lapdm_gafc6fdfc8157e54f3d0b21928e1b0132d}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_rslms\_recvmsg@{lapdm\_rslms\_recvmsg}}
\index{lapdm\_rslms\_recvmsg@{lapdm\_rslms\_recvmsg}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_rslms\_recvmsg()}
{\footnotesize\ttfamily int lapdm\+\_\+rslms\+\_\+recvmsg (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{struct \textbf{ lapdm\+\_\+channel} $\ast$}]{lc }\end{DoxyParamCaption})}



Receive a RSLms \textbf{ Message buffers} from Layer 3. 

\textquotesingle{}msg\textquotesingle{} ownership is transferred, i.\+e. caller must not free it 

References \textbf{ ABIS\+\_\+\+RSL\+\_\+\+MDISC\+\_\+\+COM\+\_\+\+CHAN}, \textbf{ ABIS\+\_\+\+RSL\+\_\+\+MDISC\+\_\+\+RLL}, \textbf{ DLLAPD}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ LOGP}, \textbf{ msg}, \textbf{ abis\+\_\+rsl\+\_\+common\+\_\+hdr\+::msg\+\_\+discr}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+l2}, \textbf{ msgb\+\_\+l2len()}, \textbf{ rslms\+\_\+rx\+\_\+com\+\_\+chan()}, and \textbf{ rslms\+\_\+rx\+\_\+rll()}.

\mbox{\label{group__lapdm_ga42531c18a84b7925a5b28ea43cc39d31}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_rx\_not\_permitted@{lapdm\_rx\_not\_permitted}}
\index{lapdm\_rx\_not\_permitted@{lapdm\_rx\_not\_permitted}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_rx\_not\_permitted()}
{\footnotesize\ttfamily static int lapdm\+\_\+rx\+\_\+not\+\_\+permitted (\begin{DoxyParamCaption}\item[{const struct \textbf{ lapdm\+\_\+entity} $\ast$}]{le,  }\item[{const struct \textbf{ lapd\+\_\+msg\+\_\+ctx} $\ast$}]{lctx }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ lapd\+\_\+msg\+\_\+ctx\+::format}, \textbf{ LAPD\+\_\+\+FORM\+\_\+U}, \textbf{ LAPD\+\_\+\+U\+\_\+\+SABM}, \textbf{ lapdm\+\_\+channel\+::lapdm\+\_\+acch}, \textbf{ lapdm\+\_\+entity\+::lapdm\+\_\+ch}, \textbf{ LAPDM\+\_\+\+MODE\+\_\+\+BTS}, \textbf{ LAPDM\+\_\+\+MODE\+\_\+\+MS}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::length}, \textbf{ lapdm\+\_\+entity\+::mode}, \textbf{ RLL\+\_\+\+CAUSE\+\_\+\+SABM\+\_\+\+INFO\+\_\+\+NOTALL}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::s\+\_\+u}, and \textbf{ lapd\+\_\+msg\+\_\+ctx\+::sapi}.



Referenced by \textbf{ l2\+\_\+ph\+\_\+data\+\_\+ind()}.

\mbox{\label{group__lapdm_gaca54e73183e923d8119f6f732186f890}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_send\_ph\_data\_req@{lapdm\_send\_ph\_data\_req}}
\index{lapdm\_send\_ph\_data\_req@{lapdm\_send\_ph\_data\_req}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_send\_ph\_data\_req()}
{\footnotesize\ttfamily static int lapdm\+\_\+send\+\_\+ph\+\_\+data\+\_\+req (\begin{DoxyParamCaption}\item[{struct \textbf{ lapd\+\_\+msg\+\_\+ctx} $\ast$}]{lctx,  }\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::chan\+\_\+nr}, \textbf{ container\+\_\+of}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::cr}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::dl}, \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::dl}, \textbf{ lapdm\+\_\+datalink\+::dl}, \textbf{ lapdm\+\_\+datalink\+::entity}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::format}, \textbf{ LAPD\+\_\+\+FORM\+\_\+I}, \textbf{ LAPD\+\_\+\+FORM\+\_\+S}, \textbf{ LAPD\+\_\+\+FORM\+\_\+U}, \textbf{ LAPDm\+\_\+\+ADDR}, \textbf{ LAPDm\+\_\+\+CTRL\+\_\+I}, \textbf{ LAPDm\+\_\+\+CTRL\+\_\+S}, \textbf{ LAPDm\+\_\+\+CTRL\+\_\+U}, \textbf{ LAPDm\+\_\+\+LEN}, \textbf{ LAPDm\+\_\+\+MORE}, \textbf{ lapd\+\_\+datalink\+::lctx}, \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::link\+\_\+id}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::lpd}, \textbf{ lapdm\+\_\+datalink\+::mctx}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::more}, \textbf{ msg}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+push()}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::n\+\_\+recv}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::n\+\_\+send}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::p\+\_\+f}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::s\+\_\+u}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::sapi}, \textbf{ lapdm\+\_\+entity\+::ta}, \textbf{ tx\+\_\+ph\+\_\+data\+\_\+enqueue()}, and \textbf{ lapdm\+\_\+entity\+::tx\+\_\+power}.



Referenced by \textbf{ lapdm\+\_\+dl\+\_\+init()}.

\mbox{\label{group__lapdm_ga960b62173d0f3f73f2b0e3cc211d6039}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_t200\_fn@{lapdm\_t200\_fn}}
\index{lapdm\_t200\_fn@{lapdm\_t200\_fn}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_t200\_fn()}
{\footnotesize\ttfamily void lapdm\+\_\+t200\+\_\+fn (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+entity} $\ast$}]{le,  }\item[{uint32\+\_\+t}]{fn }\end{DoxyParamCaption})}



Get receive frame number from L1. 

It is used to check the T200 timeout. This function is used if LAPD is in RTS mode only. (Applies if the LAPDM\+\_\+\+ENT\+\_\+\+F\+\_\+\+POLLING\+\_\+\+ONLY flag is set.) This function must be called for every valid or invalid data frame received. The frame number fn must be the frame number of the first burst of a data frame. This function must be called after the frame is delivered to layer 2. In case of TCH, this this function must be called for every speech frame received, meaning that there was no valid data frame. 

References \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ lapdm\+\_\+entity\+::datalink}, \textbf{ DLLAPD}, \textbf{ lapdm\+\_\+entity\+::flags}, \textbf{ LAPDM\+\_\+\+ENT\+\_\+\+F\+\_\+\+POLLING\+\_\+\+ONLY}, \textbf{ lapdm\+\_\+t200\+\_\+fn\+\_\+dl()}, \textbf{ LOGL\+\_\+\+ERROR}, and \textbf{ LOGP}.

\mbox{\label{group__lapdm_ga97f6dd89fdc74a92fb269c11ff3da98c}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_t200\_fn\_dl@{lapdm\_t200\_fn\_dl}}
\index{lapdm\_t200\_fn\_dl@{lapdm\_t200\_fn\_dl}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_t200\_fn\_dl()}
{\footnotesize\ttfamily static void lapdm\+\_\+t200\+\_\+fn\+\_\+dl (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+datalink} $\ast$}]{dl,  }\item[{uint32\+\_\+t}]{fn }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ ADD\+\_\+\+MODULO}, \textbf{ lapdm\+\_\+datalink\+::dl}, \textbf{ GSM\+\_\+\+MAX\+\_\+\+FN}, \textbf{ LAPD\+\_\+\+F\+\_\+\+RTS}, \textbf{ lapd\+\_\+datalink\+::lapd\+\_\+flags}, \textbf{ LAPD\+\_\+\+T200\+\_\+\+RTS\+\_\+\+RUNNING}, \textbf{ lapd\+\_\+t200\+\_\+timeout()}, \textbf{ LOGDL}, \textbf{ LOGL\+\_\+\+INFO}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ lapd\+\_\+datalink\+::t200\+\_\+rts}, and \textbf{ lapdm\+\_\+datalink\+::t200\+\_\+timeout}.



Referenced by \textbf{ lapdm\+\_\+t200\+\_\+fn()}.

\mbox{\label{group__lapdm_gad510176bfecd8c65a4a85f073250e254}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!rsl\_is\_transparent@{rsl\_is\_transparent}}
\index{rsl\_is\_transparent@{rsl\_is\_transparent}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{rsl\_is\_transparent()}
{\footnotesize\ttfamily static int rsl\+\_\+is\+\_\+transparent (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{msg\+\_\+type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ msg\+\_\+type}, \textbf{ RSL\+\_\+\+MT\+\_\+\+DATA\+\_\+\+IND}, \textbf{ RSL\+\_\+\+MT\+\_\+\+DATA\+\_\+\+REQ}, \textbf{ RSL\+\_\+\+MT\+\_\+\+UNIT\+\_\+\+DATA\+\_\+\+IND}, and \textbf{ RSL\+\_\+\+MT\+\_\+\+UNIT\+\_\+\+DATA\+\_\+\+REQ}.



Referenced by \textbf{ send\+\_\+rll\+\_\+simple()}, and \textbf{ send\+\_\+rslms\+\_\+rll\+\_\+l3()}.

\mbox{\label{group__lapdm_ga63779e43dedcba80824959102ad3151d}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!rsl\_rll\_error@{rsl\_rll\_error}}
\index{rsl\_rll\_error@{rsl\_rll\_error}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{rsl\_rll\_error()}
{\footnotesize\ttfamily static int rsl\+\_\+rll\+\_\+error (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{cause,  }\item[{struct \textbf{ lapdm\+\_\+msg\+\_\+ctx} $\ast$}]{mctx }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ cause}, \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::chan\+\_\+nr}, \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::dl}, \textbf{ lapdm\+\_\+datalink\+::dl}, \textbf{ lapdm\+\_\+datalink\+::entity}, \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::link\+\_\+id}, \textbf{ LOGDL}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ msg}, \textbf{ msgb\+\_\+tlv\+\_\+put()}, \textbf{ RSL\+\_\+\+IE\+\_\+\+RLM\+\_\+\+CAUSE}, \textbf{ RSL\+\_\+\+MT\+\_\+\+ERROR\+\_\+\+IND}, \textbf{ rsl\+\_\+rll\+\_\+simple()}, and \textbf{ rslms\+\_\+sendmsg()}.



Referenced by \textbf{ l2\+\_\+ph\+\_\+data\+\_\+ind()}, and \textbf{ send\+\_\+rslms\+\_\+dlsap()}.

\mbox{\label{group__lapdm_gaaa5c36cb8bc8e10b8d3da504ee2b273e}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!rslms\_rx\_chan\_rqd@{rslms\_rx\_chan\_rqd}}
\index{rslms\_rx\_chan\_rqd@{rslms\_rx\_chan\_rqd}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{rslms\_rx\_chan\_rqd()}
{\footnotesize\ttfamily static int rslms\+\_\+rx\+\_\+chan\+\_\+rqd (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+channel} $\ast$}]{lc,  }\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ abis\+\_\+rsl\+\_\+cchan\+\_\+hdr\+::data}, \textbf{ DLLAPD}, \textbf{ ph\+\_\+rach\+\_\+req\+\_\+param\+::is\+\_\+combined\+\_\+ccch}, \textbf{ lapdm\+\_\+entity\+::l1\+\_\+ctx}, \textbf{ lapdm\+\_\+entity\+::l1\+\_\+prim\+\_\+cb}, \textbf{ lapdm\+\_\+channel\+::lapdm\+\_\+dcch}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ LOGP}, \textbf{ msg}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+l2}, \textbf{ msgb\+\_\+l2len()}, \textbf{ ph\+\_\+rach\+\_\+req\+\_\+param\+::offset}, \textbf{ osmo\+\_\+phsap\+\_\+prim\+::oph}, \textbf{ osmo\+\_\+prim\+\_\+init()}, \textbf{ PRIM\+\_\+\+OP\+\_\+\+REQUEST}, \textbf{ PRIM\+\_\+\+PH\+\_\+\+RACH}, \textbf{ ph\+\_\+rach\+\_\+req\+\_\+param\+::ra}, \textbf{ osmo\+\_\+phsap\+\_\+prim\+::rach\+\_\+req}, \textbf{ RSL\+\_\+\+IE\+\_\+\+ACCESS\+\_\+\+DELAY}, \textbf{ RSL\+\_\+\+IE\+\_\+\+MS\+\_\+\+POWER}, \textbf{ RSL\+\_\+\+IE\+\_\+\+REQ\+\_\+\+REFERENCE}, \textbf{ SAP\+\_\+\+GSM\+\_\+\+PH}, \textbf{ ph\+\_\+rach\+\_\+req\+\_\+param\+::ta}, \textbf{ ph\+\_\+rach\+\_\+req\+\_\+param\+::tx\+\_\+power}, and \textbf{ osmo\+\_\+phsap\+\_\+prim\+::u}.



Referenced by \textbf{ rslms\+\_\+rx\+\_\+com\+\_\+chan()}.

\mbox{\label{group__lapdm_ga4f9f5e2c425e34d877845d827b68f3b6}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!rslms\_rx\_com\_chan@{rslms\_rx\_com\_chan}}
\index{rslms\_rx\_com\_chan@{rslms\_rx\_com\_chan}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{rslms\_rx\_com\_chan()}
{\footnotesize\ttfamily static int rslms\+\_\+rx\+\_\+com\+\_\+chan (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{struct \textbf{ lapdm\+\_\+channel} $\ast$}]{lc }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ abis\+\_\+rsl\+\_\+cchan\+\_\+hdr\+::c}, \textbf{ DLLAPD}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGP}, \textbf{ msg}, \textbf{ msg\+\_\+type}, \textbf{ abis\+\_\+rsl\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+l2}, \textbf{ msgb\+\_\+l2len()}, \textbf{ RSL\+\_\+\+MT\+\_\+\+CHAN\+\_\+\+RQD}, and \textbf{ rslms\+\_\+rx\+\_\+chan\+\_\+rqd()}.



Referenced by \textbf{ lapdm\+\_\+rslms\+\_\+recvmsg()}.

\mbox{\label{group__lapdm_gaaa51638a444c6b66a4e6bced447d7543}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!rslms\_rx\_rll@{rslms\_rx\_rll}}
\index{rslms\_rx\_rll@{rslms\_rx\_rll}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{rslms\_rx\_rll()}
{\footnotesize\ttfamily static int rslms\+\_\+rx\+\_\+rll (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{struct \textbf{ lapdm\+\_\+channel} $\ast$}]{lc }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ abis\+\_\+rsl\+\_\+rll\+\_\+hdr\+::c}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::dl}, \textbf{ lapdm\+\_\+datalink\+::dl}, \textbf{ DLLAPD}, \textbf{ lapdm\+\_\+channel\+::lapdm\+\_\+acch}, \textbf{ lapdm\+\_\+datalink\+\_\+for\+\_\+sapi()}, \textbf{ lapdm\+\_\+channel\+::lapdm\+\_\+dcch}, \textbf{ LAPDM\+\_\+\+MODE\+\_\+\+BTS}, \textbf{ lapd\+\_\+datalink\+::lctx}, \textbf{ abis\+\_\+rsl\+\_\+rll\+\_\+hdr\+::link\+\_\+id}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ LOGL\+\_\+\+INFO}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGP}, \textbf{ lapdm\+\_\+entity\+::mode}, \textbf{ msg}, \textbf{ msg\+\_\+type}, \textbf{ abis\+\_\+rsl\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+l2}, \textbf{ msgb\+\_\+l2len()}, \textbf{ lapdm\+\_\+channel\+::name}, \textbf{ rsl\+\_\+msg\+\_\+name()}, \textbf{ RSL\+\_\+\+MT\+\_\+\+DATA\+\_\+\+REQ}, \textbf{ RSL\+\_\+\+MT\+\_\+\+EST\+\_\+\+REQ}, \textbf{ RSL\+\_\+\+MT\+\_\+\+RECON\+\_\+\+REQ}, \textbf{ RSL\+\_\+\+MT\+\_\+\+REL\+\_\+\+REQ}, \textbf{ RSL\+\_\+\+MT\+\_\+\+RES\+\_\+\+REQ}, \textbf{ RSL\+\_\+\+MT\+\_\+\+SUSP\+\_\+\+REQ}, \textbf{ RSL\+\_\+\+MT\+\_\+\+UNIT\+\_\+\+DATA\+\_\+\+REQ}, \textbf{ rslms\+\_\+rx\+\_\+rll\+\_\+data\+\_\+req()}, \textbf{ rslms\+\_\+rx\+\_\+rll\+\_\+est\+\_\+req()}, \textbf{ rslms\+\_\+rx\+\_\+rll\+\_\+rel\+\_\+req()}, \textbf{ rslms\+\_\+rx\+\_\+rll\+\_\+res\+\_\+req()}, \textbf{ rslms\+\_\+rx\+\_\+rll\+\_\+susp\+\_\+req()}, and \textbf{ rslms\+\_\+rx\+\_\+rll\+\_\+udata\+\_\+req()}.



Referenced by \textbf{ lapdm\+\_\+rslms\+\_\+recvmsg()}.

\mbox{\label{group__lapdm_ga5a6cfa7a299688b2717d3e11d7a85265}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!rslms\_rx\_rll\_data\_req@{rslms\_rx\_rll\_data\_req}}
\index{rslms\_rx\_rll\_data\_req@{rslms\_rx\_rll\_data\_req}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{rslms\_rx\_rll\_data\_req()}
{\footnotesize\ttfamily static int rslms\+\_\+rx\+\_\+rll\+\_\+data\+\_\+req (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{struct \textbf{ lapdm\+\_\+datalink} $\ast$}]{dl }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ abis\+\_\+rsl\+\_\+rll\+\_\+hdr\+::data}, \textbf{ lapdm\+\_\+datalink\+::dl}, \textbf{ lapd\+\_\+recv\+\_\+dlsap()}, \textbf{ lapd\+\_\+datalink\+::lctx}, \textbf{ length}, \textbf{ LOGDL}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ msg}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+l2}, \textbf{ msgb\+\_\+l2len()}, \textbf{ msgb\+\_\+pull\+\_\+to\+\_\+l3()}, \textbf{ msgb\+\_\+trim()}, \textbf{ osmo\+\_\+dlsap\+\_\+prim\+::oph}, \textbf{ osmo\+\_\+prim\+\_\+init()}, \textbf{ PRIM\+\_\+\+DL\+\_\+\+DATA}, \textbf{ PRIM\+\_\+\+OP\+\_\+\+REQUEST}, \textbf{ RSL\+\_\+\+IE\+\_\+\+L3\+\_\+\+INFO}, \textbf{ rsl\+\_\+tlv\+\_\+parse}, \textbf{ TLVP\+\_\+\+LEN}, \textbf{ TLVP\+\_\+\+PRESENT}, and \textbf{ TLVP\+\_\+\+VAL}.



Referenced by \textbf{ rslms\+\_\+rx\+\_\+rll()}.

\mbox{\label{group__lapdm_ga8401c71ee55eaa9aae26afcc0e67c46f}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!rslms\_rx\_rll\_est\_req@{rslms\_rx\_rll\_est\_req}}
\index{rslms\_rx\_rll\_est\_req@{rslms\_rx\_rll\_est\_req}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{rslms\_rx\_rll\_est\_req()}
{\footnotesize\ttfamily static int rslms\+\_\+rx\+\_\+rll\+\_\+est\+\_\+req (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{struct \textbf{ lapdm\+\_\+datalink} $\ast$}]{dl }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ chan\+\_\+nr}, \textbf{ abis\+\_\+rsl\+\_\+rll\+\_\+hdr\+::chan\+\_\+nr}, \textbf{ abis\+\_\+rsl\+\_\+rll\+\_\+hdr\+::data}, \textbf{ lapdm\+\_\+datalink\+::dl}, \textbf{ lapd\+\_\+recv\+\_\+dlsap()}, \textbf{ lapd\+\_\+datalink\+::lctx}, \textbf{ length}, \textbf{ link\+\_\+id}, \textbf{ abis\+\_\+rsl\+\_\+rll\+\_\+hdr\+::link\+\_\+id}, \textbf{ LOGDL}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ lapdm\+\_\+datalink\+::mctx}, \textbf{ msg}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+l2}, \textbf{ msgb\+\_\+l2len()}, \textbf{ msgb\+\_\+pull\+\_\+to\+\_\+l3()}, \textbf{ msgb\+\_\+trim()}, \textbf{ N201\+\_\+\+AB\+\_\+\+SACCH}, \textbf{ N201\+\_\+\+AB\+\_\+\+SDCCH}, \textbf{ osmo\+\_\+dlsap\+\_\+prim\+::oph}, \textbf{ osmo\+\_\+prim\+\_\+init()}, \textbf{ PRIM\+\_\+\+DL\+\_\+\+EST}, \textbf{ PRIM\+\_\+\+OP\+\_\+\+REQUEST}, \textbf{ RSL\+\_\+\+IE\+\_\+\+L3\+\_\+\+INFO}, \textbf{ RSL\+\_\+\+MT\+\_\+\+REL\+\_\+\+IND}, \textbf{ rsl\+\_\+tlv\+\_\+parse}, \textbf{ send\+\_\+rll\+\_\+simple()}, \textbf{ set\+\_\+lapdm\+\_\+context()}, \textbf{ TLVP\+\_\+\+LEN}, \textbf{ TLVP\+\_\+\+PRESENT}, and \textbf{ TLVP\+\_\+\+VAL}.



Referenced by \textbf{ rslms\+\_\+rx\+\_\+rll()}.

\mbox{\label{group__lapdm_ga5df21189c0ba2e54bd72bc618d50b819}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!rslms\_rx\_rll\_rel\_req@{rslms\_rx\_rll\_rel\_req}}
\index{rslms\_rx\_rll\_rel\_req@{rslms\_rx\_rll\_rel\_req}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{rslms\_rx\_rll\_rel\_req()}
{\footnotesize\ttfamily static int rslms\+\_\+rx\+\_\+rll\+\_\+rel\+\_\+req (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{struct \textbf{ lapdm\+\_\+datalink} $\ast$}]{dl }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ abis\+\_\+rsl\+\_\+rll\+\_\+hdr\+::data}, \textbf{ lapdm\+\_\+datalink\+::dl}, \textbf{ lapd\+\_\+recv\+\_\+dlsap()}, \textbf{ lapd\+\_\+datalink\+::lctx}, \textbf{ dl\+\_\+rel\+\_\+req\+\_\+param\+::mode}, \textbf{ mode}, \textbf{ msg}, \textbf{ msgb\+\_\+l2}, \textbf{ msgb\+\_\+pull\+\_\+to\+\_\+l3()}, \textbf{ msgb\+\_\+trim()}, \textbf{ osmo\+\_\+dlsap\+\_\+prim\+::oph}, \textbf{ osmo\+\_\+prim\+\_\+init()}, \textbf{ PRIM\+\_\+\+DL\+\_\+\+REL}, \textbf{ PRIM\+\_\+\+OP\+\_\+\+REQUEST}, \textbf{ osmo\+\_\+dlsap\+\_\+prim\+::rel\+\_\+req}, \textbf{ RSL\+\_\+\+IE\+\_\+\+RELEASE\+\_\+\+MODE}, and \textbf{ osmo\+\_\+dlsap\+\_\+prim\+::u}.



Referenced by \textbf{ rslms\+\_\+rx\+\_\+rll()}.

\mbox{\label{group__lapdm_gae0a0b627dabf0c1ad4af2bf2fdb0dbb0}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!rslms\_rx\_rll\_res\_req@{rslms\_rx\_rll\_res\_req}}
\index{rslms\_rx\_rll\_res\_req@{rslms\_rx\_rll\_res\_req}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{rslms\_rx\_rll\_res\_req()}
{\footnotesize\ttfamily static int rslms\+\_\+rx\+\_\+rll\+\_\+res\+\_\+req (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{struct \textbf{ lapdm\+\_\+datalink} $\ast$}]{dl }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ abis\+\_\+rsl\+\_\+rll\+\_\+hdr\+::c}, \textbf{ chan\+\_\+nr}, \textbf{ abis\+\_\+rsl\+\_\+rll\+\_\+hdr\+::chan\+\_\+nr}, \textbf{ abis\+\_\+rsl\+\_\+rll\+\_\+hdr\+::data}, \textbf{ lapdm\+\_\+datalink\+::dl}, \textbf{ lapd\+\_\+recv\+\_\+dlsap()}, \textbf{ lapd\+\_\+datalink\+::lctx}, \textbf{ length}, \textbf{ link\+\_\+id}, \textbf{ abis\+\_\+rsl\+\_\+rll\+\_\+hdr\+::link\+\_\+id}, \textbf{ LOGDL}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ lapdm\+\_\+datalink\+::mctx}, \textbf{ msg}, \textbf{ msg\+\_\+type}, \textbf{ abis\+\_\+rsl\+\_\+common\+\_\+hdr\+::msg\+\_\+type}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+l2}, \textbf{ msgb\+\_\+l2len()}, \textbf{ msgb\+\_\+pull\+\_\+to\+\_\+l3()}, \textbf{ msgb\+\_\+trim()}, \textbf{ N201\+\_\+\+AB\+\_\+\+SACCH}, \textbf{ N201\+\_\+\+AB\+\_\+\+SDCCH}, \textbf{ osmo\+\_\+dlsap\+\_\+prim\+::oph}, \textbf{ osmo\+\_\+prim\+\_\+init()}, \textbf{ PRIM\+\_\+\+DL\+\_\+\+RECON}, \textbf{ PRIM\+\_\+\+DL\+\_\+\+RES}, \textbf{ PRIM\+\_\+\+OP\+\_\+\+REQUEST}, \textbf{ RSL\+\_\+\+IE\+\_\+\+L3\+\_\+\+INFO}, \textbf{ RSL\+\_\+\+MT\+\_\+\+REL\+\_\+\+IND}, \textbf{ RSL\+\_\+\+MT\+\_\+\+RES\+\_\+\+REQ}, \textbf{ rsl\+\_\+tlv\+\_\+parse}, \textbf{ send\+\_\+rll\+\_\+simple()}, \textbf{ set\+\_\+lapdm\+\_\+context()}, \textbf{ TLVP\+\_\+\+LEN}, \textbf{ TLVP\+\_\+\+PRESENT}, and \textbf{ TLVP\+\_\+\+VAL}.



Referenced by \textbf{ rslms\+\_\+rx\+\_\+rll()}.

\mbox{\label{group__lapdm_gac7e4f8ee7f3040a23dfd646903faf942}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!rslms\_rx\_rll\_susp\_req@{rslms\_rx\_rll\_susp\_req}}
\index{rslms\_rx\_rll\_susp\_req@{rslms\_rx\_rll\_susp\_req}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{rslms\_rx\_rll\_susp\_req()}
{\footnotesize\ttfamily static int rslms\+\_\+rx\+\_\+rll\+\_\+susp\+\_\+req (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{struct \textbf{ lapdm\+\_\+datalink} $\ast$}]{dl }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ lapdm\+\_\+datalink\+::dl}, \textbf{ lapd\+\_\+recv\+\_\+dlsap()}, \textbf{ lapd\+\_\+datalink\+::lctx}, \textbf{ abis\+\_\+rsl\+\_\+rll\+\_\+hdr\+::link\+\_\+id}, \textbf{ LOGDL}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ msg}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+l2}, \textbf{ osmo\+\_\+dlsap\+\_\+prim\+::oph}, \textbf{ osmo\+\_\+prim\+\_\+init()}, \textbf{ PRIM\+\_\+\+DL\+\_\+\+SUSP}, and \textbf{ PRIM\+\_\+\+OP\+\_\+\+REQUEST}.



Referenced by \textbf{ rslms\+\_\+rx\+\_\+rll()}.

\mbox{\label{group__lapdm_ga2b8e0db46a078b8560c507243f81b0ad}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!rslms\_rx\_rll\_udata\_req@{rslms\_rx\_rll\_udata\_req}}
\index{rslms\_rx\_rll\_udata\_req@{rslms\_rx\_rll\_udata\_req}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{rslms\_rx\_rll\_udata\_req()}
{\footnotesize\ttfamily static int rslms\+\_\+rx\+\_\+rll\+\_\+udata\+\_\+req (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{struct \textbf{ lapdm\+\_\+datalink} $\ast$}]{dl }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ chan\+\_\+nr}, \textbf{ abis\+\_\+rsl\+\_\+rll\+\_\+hdr\+::chan\+\_\+nr}, \textbf{ lapd\+\_\+cr\+\_\+ent\+::cmd}, \textbf{ lapd\+\_\+datalink\+::cr}, \textbf{ abis\+\_\+rsl\+\_\+rll\+\_\+hdr\+::data}, \textbf{ lapdm\+\_\+datalink\+::dl}, \textbf{ lapdm\+\_\+datalink\+::entity}, \textbf{ LAPDm\+\_\+\+ADDR}, \textbf{ LAPDm\+\_\+\+CTRL\+\_\+U}, \textbf{ LAPDm\+\_\+\+LEN}, \textbf{ LAPDm\+\_\+\+LPD\+\_\+\+NORMAL}, \textbf{ LAPDM\+\_\+\+MODE\+\_\+\+BTS}, \textbf{ LAPDm\+\_\+\+U\+\_\+\+UI}, \textbf{ length}, \textbf{ link\+\_\+id}, \textbf{ abis\+\_\+rsl\+\_\+rll\+\_\+hdr\+::link\+\_\+id}, \textbf{ lapd\+\_\+datalink\+::loc2rem}, \textbf{ LOGDL}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ LOGL\+\_\+\+INFO}, \textbf{ lapdm\+\_\+entity\+::mode}, \textbf{ msg}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+l2}, \textbf{ msgb\+\_\+l2len()}, \textbf{ msgb\+\_\+pull\+\_\+to\+\_\+l3()}, \textbf{ msgb\+\_\+push()}, \textbf{ msgb\+\_\+trim()}, \textbf{ RSL\+\_\+\+IE\+\_\+\+L3\+\_\+\+INFO}, \textbf{ RSL\+\_\+\+IE\+\_\+\+MS\+\_\+\+POWER}, \textbf{ RSL\+\_\+\+IE\+\_\+\+TIMING\+\_\+\+ADVANCE}, \textbf{ rsl\+\_\+tlv\+\_\+parse}, \textbf{ lapdm\+\_\+entity\+::ta}, \textbf{ TLVP\+\_\+\+LEN}, \textbf{ TLVP\+\_\+\+PRESENT}, \textbf{ TLVP\+\_\+\+VAL}, \textbf{ tx\+\_\+ph\+\_\+data\+\_\+enqueue\+\_\+ui()}, and \textbf{ lapdm\+\_\+entity\+::tx\+\_\+power}.



Referenced by \textbf{ rslms\+\_\+rx\+\_\+rll()}.

\mbox{\label{group__lapdm_gae4c4e5ae422763529c7ff7dc797abb9c}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!rslms\_sendmsg@{rslms\_sendmsg}}
\index{rslms\_sendmsg@{rslms\_sendmsg}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{rslms\_sendmsg()}
{\footnotesize\ttfamily static int rslms\+\_\+sendmsg (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{struct \textbf{ lapdm\+\_\+entity} $\ast$}]{le }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ lapdm\+\_\+entity\+::l3\+\_\+cb}, \textbf{ lapdm\+\_\+entity\+::l3\+\_\+ctx}, \textbf{ msg}, and \textbf{ msgb\+\_\+free()}.



Referenced by \textbf{ l2\+\_\+ph\+\_\+chan\+\_\+conf()}, \textbf{ l2\+\_\+ph\+\_\+rach\+\_\+ind()}, \textbf{ rsl\+\_\+rll\+\_\+error()}, \textbf{ send\+\_\+rll\+\_\+simple()}, \textbf{ send\+\_\+rslms\+\_\+rll\+\_\+l3()}, and \textbf{ send\+\_\+rslms\+\_\+rll\+\_\+l3\+\_\+ui()}.

\mbox{\label{group__lapdm_gaeef4c06f99dfeb90bcca022236a70141}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!send\_rll\_simple@{send\_rll\_simple}}
\index{send\_rll\_simple@{send\_rll\_simple}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{send\_rll\_simple()}
{\footnotesize\ttfamily static int send\+\_\+rll\+\_\+simple (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{msg\+\_\+type,  }\item[{struct \textbf{ lapdm\+\_\+msg\+\_\+ctx} $\ast$}]{mctx }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::chan\+\_\+nr}, \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::dl}, \textbf{ lapdm\+\_\+datalink\+::entity}, \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::link\+\_\+id}, \textbf{ msg}, \textbf{ msg\+\_\+type}, \textbf{ rsl\+\_\+is\+\_\+transparent()}, \textbf{ rsl\+\_\+rll\+\_\+simple()}, and \textbf{ rslms\+\_\+sendmsg()}.



Referenced by \textbf{ rslms\+\_\+rx\+\_\+rll\+\_\+est\+\_\+req()}, \textbf{ rslms\+\_\+rx\+\_\+rll\+\_\+res\+\_\+req()}, and \textbf{ send\+\_\+rslms\+\_\+dlsap()}.

\mbox{\label{group__lapdm_ga3f761c5faccdba87924a01473b841c40}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!send\_rslms\_dlsap@{send\_rslms\_dlsap}}
\index{send\_rslms\_dlsap@{send\_rslms\_dlsap}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{send\_rslms\_dlsap()}
{\footnotesize\ttfamily static int send\+\_\+rslms\+\_\+dlsap (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+dlsap\+\_\+prim} $\ast$}]{dp,  }\item[{struct \textbf{ lapd\+\_\+msg\+\_\+ctx} $\ast$}]{lctx }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ mdl\+\_\+error\+\_\+ind\+\_\+param\+::cause}, \textbf{ container\+\_\+of}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::dl}, \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::dl}, \textbf{ lapdm\+\_\+datalink\+::dl}, \textbf{ osmo\+\_\+dlsap\+\_\+prim\+::error\+\_\+ind}, \textbf{ lapd\+\_\+datalink\+::lctx}, \textbf{ LOGDL}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ lapdm\+\_\+datalink\+::mctx}, \textbf{ osmo\+\_\+prim\+\_\+hdr\+::msg}, \textbf{ msgb\+\_\+free()}, \textbf{ osmo\+\_\+prim\+\_\+hdr\+::operation}, \textbf{ osmo\+\_\+dlsap\+\_\+prim\+::oph}, \textbf{ OSMO\+\_\+\+PRIM}, \textbf{ OSMO\+\_\+\+PRIM\+\_\+\+HDR}, \textbf{ PRIM\+\_\+\+DL\+\_\+\+DATA}, \textbf{ PRIM\+\_\+\+DL\+\_\+\+EST}, \textbf{ PRIM\+\_\+\+DL\+\_\+\+REL}, \textbf{ PRIM\+\_\+\+DL\+\_\+\+SUSP}, \textbf{ PRIM\+\_\+\+DL\+\_\+\+UNIT\+\_\+\+DATA}, \textbf{ PRIM\+\_\+\+MDL\+\_\+\+ERROR}, \textbf{ PRIM\+\_\+\+OP\+\_\+\+CONFIRM}, \textbf{ PRIM\+\_\+\+OP\+\_\+\+INDICATION}, \textbf{ osmo\+\_\+prim\+\_\+hdr\+::primitive}, \textbf{ RSL\+\_\+\+MT\+\_\+\+DATA\+\_\+\+IND}, \textbf{ RSL\+\_\+\+MT\+\_\+\+EST\+\_\+\+CONF}, \textbf{ RSL\+\_\+\+MT\+\_\+\+EST\+\_\+\+IND}, \textbf{ RSL\+\_\+\+MT\+\_\+\+REL\+\_\+\+CONF}, \textbf{ RSL\+\_\+\+MT\+\_\+\+REL\+\_\+\+IND}, \textbf{ RSL\+\_\+\+MT\+\_\+\+SUSP\+\_\+\+CONF}, \textbf{ rsl\+\_\+rll\+\_\+error()}, \textbf{ send\+\_\+rll\+\_\+simple()}, \textbf{ send\+\_\+rslms\+\_\+rll\+\_\+l3()}, \textbf{ send\+\_\+rslms\+\_\+rll\+\_\+l3\+\_\+ui()}, and \textbf{ osmo\+\_\+dlsap\+\_\+prim\+::u}.



Referenced by \textbf{ lapdm\+\_\+dl\+\_\+init()}.

\mbox{\label{group__lapdm_gac9f7023fe434faadd45b74e5a03eebc9}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!send\_rslms\_rll\_l3@{send\_rslms\_rll\_l3}}
\index{send\_rslms\_rll\_l3@{send\_rslms\_rll\_l3}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{send\_rslms\_rll\_l3()}
{\footnotesize\ttfamily static int send\+\_\+rslms\+\_\+rll\+\_\+l3 (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{msg\+\_\+type,  }\item[{struct \textbf{ lapdm\+\_\+msg\+\_\+ctx} $\ast$}]{mctx,  }\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::chan\+\_\+nr}, \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::dl}, \textbf{ lapdm\+\_\+datalink\+::entity}, \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::link\+\_\+id}, \textbf{ msg}, \textbf{ msg\+\_\+type}, \textbf{ rsl\+\_\+is\+\_\+transparent()}, \textbf{ rsl\+\_\+rll\+\_\+push\+\_\+l3()}, and \textbf{ rslms\+\_\+sendmsg()}.



Referenced by \textbf{ l2\+\_\+ph\+\_\+data\+\_\+ind()}, and \textbf{ send\+\_\+rslms\+\_\+dlsap()}.

\mbox{\label{group__lapdm_ga2382703a3f80a5bdc4490248e60e21b3}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!send\_rslms\_rll\_l3\_ui@{send\_rslms\_rll\_l3\_ui}}
\index{send\_rslms\_rll\_l3\_ui@{send\_rslms\_rll\_l3\_ui}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{send\_rslms\_rll\_l3\_ui()}
{\footnotesize\ttfamily static int send\+\_\+rslms\+\_\+rll\+\_\+l3\+\_\+ui (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+msg\+\_\+ctx} $\ast$}]{mctx,  }\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::chan\+\_\+nr}, \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::dl}, \textbf{ lapdm\+\_\+datalink\+::entity}, \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::lapdm\+\_\+fmt}, \textbf{ LAPDm\+\_\+\+FMT\+\_\+\+B4}, \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::link\+\_\+id}, \textbf{ msg}, \textbf{ msgb\+\_\+l3}, \textbf{ msgb\+\_\+tv16\+\_\+push()}, \textbf{ msgb\+\_\+tv\+\_\+push()}, \textbf{ RSL\+\_\+\+IE\+\_\+\+L3\+\_\+\+INFO}, \textbf{ RSL\+\_\+\+IE\+\_\+\+MS\+\_\+\+POWER}, \textbf{ RSL\+\_\+\+IE\+\_\+\+TIMING\+\_\+\+ADVANCE}, \textbf{ RSL\+\_\+\+MT\+\_\+\+UNIT\+\_\+\+DATA\+\_\+\+IND}, \textbf{ rsl\+\_\+rll\+\_\+push\+\_\+hdr()}, \textbf{ rslms\+\_\+sendmsg()}, \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::ta\+\_\+ind}, and \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::tx\+\_\+power\+\_\+ind}.



Referenced by \textbf{ send\+\_\+rslms\+\_\+dlsap()}.

\mbox{\label{group__lapdm_gabb16627aabb2838e1bb3ae571768891f}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!set\_lapdm\_context@{set\_lapdm\_context}}
\index{set\_lapdm\_context@{set\_lapdm\_context}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{set\_lapdm\_context()}
{\footnotesize\ttfamily static int set\+\_\+lapdm\+\_\+context (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+datalink} $\ast$}]{dl,  }\item[{uint8\+\_\+t}]{chan\+\_\+nr,  }\item[{uint8\+\_\+t}]{link\+\_\+id,  }\item[{int}]{n201,  }\item[{uint8\+\_\+t}]{sapi }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::chan\+\_\+nr}, \textbf{ chan\+\_\+nr}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::dl}, \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::dl}, \textbf{ lapdm\+\_\+datalink\+::dl}, \textbf{ lapd\+\_\+datalink\+::lctx}, \textbf{ lapdm\+\_\+msg\+\_\+ctx\+::link\+\_\+id}, \textbf{ link\+\_\+id}, \textbf{ lapdm\+\_\+datalink\+::mctx}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::n201}, and \textbf{ lapd\+\_\+msg\+\_\+ctx\+::sapi}.



Referenced by \textbf{ rslms\+\_\+rx\+\_\+rll\+\_\+est\+\_\+req()}, and \textbf{ rslms\+\_\+rx\+\_\+rll\+\_\+res\+\_\+req()}.

\mbox{\label{group__lapdm_gae581c24d19675d32d8f53437b98e6546}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!tx\_dequeue\_acch\_msgb@{tx\_dequeue\_acch\_msgb}}
\index{tx\_dequeue\_acch\_msgb@{tx\_dequeue\_acch\_msgb}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{tx\_dequeue\_acch\_msgb()}
{\footnotesize\ttfamily static struct \textbf{ msgb} $\ast$ tx\+\_\+dequeue\+\_\+acch\+\_\+msgb (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+entity} $\ast$}]{le,  }\item[{uint32\+\_\+t}]{fn }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ lapdm\+\_\+entity\+::datalink}, \textbf{ lapdm\+\_\+datalink\+::dl}, \textbf{ lapdm\+\_\+entity\+::last\+\_\+tx\+\_\+dequeue}, \textbf{ msg}, \textbf{ n}, and \textbf{ tx\+\_\+dequeue\+\_\+msgb()}.



Referenced by \textbf{ lapdm\+\_\+phsap\+\_\+dequeue\+\_\+prim\+\_\+fn()}.

\mbox{\label{group__lapdm_ga75779ad62d153a5a4b05c597e2018c1e}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!tx\_dequeue\_dcch\_msgb@{tx\_dequeue\_dcch\_msgb}}
\index{tx\_dequeue\_dcch\_msgb@{tx\_dequeue\_dcch\_msgb}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{tx\_dequeue\_dcch\_msgb()}
{\footnotesize\ttfamily static struct \textbf{ msgb} $\ast$ tx\+\_\+dequeue\+\_\+dcch\+\_\+msgb (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+entity} $\ast$}]{le,  }\item[{uint32\+\_\+t}]{fn }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ lapdm\+\_\+entity\+::datalink}, \textbf{ DL\+\_\+\+SAPI0}, \textbf{ DL\+\_\+\+SAPI3}, \textbf{ msg}, and \textbf{ tx\+\_\+dequeue\+\_\+msgb()}.



Referenced by \textbf{ lapdm\+\_\+phsap\+\_\+dequeue\+\_\+prim\+\_\+fn()}.

\mbox{\label{group__lapdm_ga354a7e109e449e82bd9a99e4817056f0}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!tx\_dequeue\_msgb@{tx\_dequeue\_msgb}}
\index{tx\_dequeue\_msgb@{tx\_dequeue\_msgb}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{tx\_dequeue\_msgb()}
{\footnotesize\ttfamily static struct \textbf{ msgb} $\ast$ tx\+\_\+dequeue\+\_\+msgb (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+datalink} $\ast$}]{dl,  }\item[{uint32\+\_\+t}]{fn }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ ADD\+\_\+\+MODULO}, \textbf{ lapd\+\_\+msg\+\_\+ctx\+::dl}, \textbf{ lapdm\+\_\+datalink\+::entity}, \textbf{ lapdm\+\_\+entity\+::flags}, \textbf{ GSM\+\_\+\+MAX\+\_\+\+FN}, \textbf{ lapd\+\_\+ph\+\_\+rts\+\_\+ind()}, \textbf{ LAPDM\+\_\+\+ENT\+\_\+\+F\+\_\+\+RTS}, \textbf{ LOGDL}, \textbf{ LOGL\+\_\+\+INFO}, \textbf{ msg}, \textbf{ msgb\+\_\+dequeue()}, and \textbf{ lapd\+\_\+datalink\+::tx\+\_\+queue}.



Referenced by \textbf{ tx\+\_\+dequeue\+\_\+acch\+\_\+msgb()}, and \textbf{ tx\+\_\+dequeue\+\_\+dcch\+\_\+msgb()}.

\mbox{\label{group__lapdm_ga42fcadfd744002866de052f7cfc0f23f}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!tx\_ph\_data\_enqueue@{tx\_ph\_data\_enqueue}}
\index{tx\_ph\_data\_enqueue@{tx\_ph\_data\_enqueue}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{tx\_ph\_data\_enqueue()}
{\footnotesize\ttfamily static int tx\+\_\+ph\+\_\+data\+\_\+enqueue (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+datalink} $\ast$}]{dl,  }\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{uint8\+\_\+t}]{chan\+\_\+nr,  }\item[{uint8\+\_\+t}]{link\+\_\+id,  }\item[{uint8\+\_\+t}]{pad }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ ph\+\_\+data\+\_\+param\+::chan\+\_\+nr}, \textbf{ chan\+\_\+nr}, \textbf{ osmo\+\_\+phsap\+\_\+prim\+::data}, \textbf{ lapdm\+\_\+datalink\+::dl}, \textbf{ lapdm\+\_\+datalink\+::entity}, \textbf{ lapdm\+\_\+entity\+::flags}, \textbf{ lapdm\+\_\+entity\+::l1\+\_\+ctx}, \textbf{ lapdm\+\_\+entity\+::l1\+\_\+prim\+\_\+cb}, \textbf{ LAPDM\+\_\+\+ENT\+\_\+\+F\+\_\+\+POLLING\+\_\+\+ONLY}, \textbf{ LAPDM\+\_\+\+ENT\+\_\+\+F\+\_\+\+RTS}, \textbf{ lapdm\+\_\+pad\+\_\+msgb()}, \textbf{ ph\+\_\+data\+\_\+param\+::link\+\_\+id}, \textbf{ link\+\_\+id}, \textbf{ msg}, \textbf{ msgb\+\_\+dequeue()}, \textbf{ msgb\+\_\+enqueue()}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+push()}, \textbf{ osmo\+\_\+phsap\+\_\+prim\+::oph}, \textbf{ osmo\+\_\+prim\+\_\+init()}, \textbf{ PRIM\+\_\+\+OP\+\_\+\+REQUEST}, \textbf{ PRIM\+\_\+\+PH\+\_\+\+DATA}, \textbf{ SAP\+\_\+\+GSM\+\_\+\+PH}, \textbf{ tall\+\_\+lapd\+\_\+ctx}, \textbf{ lapdm\+\_\+entity\+::tx\+\_\+pending}, \textbf{ lapd\+\_\+datalink\+::tx\+\_\+queue}, \textbf{ osmo\+\_\+phsap\+\_\+prim\+::u}, \textbf{ lapd\+\_\+datalink\+::v\+\_\+ack}, and \textbf{ lapd\+\_\+datalink\+::v\+\_\+send}.



Referenced by \textbf{ lapdm\+\_\+send\+\_\+ph\+\_\+data\+\_\+req()}.

\mbox{\label{group__lapdm_gac23dda2b7d4d5b563e06256bf04966c7}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!tx\_ph\_data\_enqueue\_ui@{tx\_ph\_data\_enqueue\_ui}}
\index{tx\_ph\_data\_enqueue\_ui@{tx\_ph\_data\_enqueue\_ui}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{tx\_ph\_data\_enqueue\_ui()}
{\footnotesize\ttfamily static int tx\+\_\+ph\+\_\+data\+\_\+enqueue\+\_\+ui (\begin{DoxyParamCaption}\item[{struct \textbf{ lapdm\+\_\+datalink} $\ast$}]{dl,  }\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{uint8\+\_\+t}]{chan\+\_\+nr,  }\item[{uint8\+\_\+t}]{link\+\_\+id,  }\item[{uint8\+\_\+t}]{pad }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ ph\+\_\+data\+\_\+param\+::chan\+\_\+nr}, \textbf{ chan\+\_\+nr}, \textbf{ osmo\+\_\+phsap\+\_\+prim\+::data}, \textbf{ lapdm\+\_\+datalink\+::entity}, \textbf{ lapdm\+\_\+entity\+::flags}, \textbf{ lapdm\+\_\+entity\+::l1\+\_\+ctx}, \textbf{ lapdm\+\_\+entity\+::l1\+\_\+prim\+\_\+cb}, \textbf{ LAPDM\+\_\+\+ENT\+\_\+\+F\+\_\+\+POLLING\+\_\+\+ONLY}, \textbf{ lapdm\+\_\+pad\+\_\+msgb()}, \textbf{ ph\+\_\+data\+\_\+param\+::link\+\_\+id}, \textbf{ link\+\_\+id}, \textbf{ msg}, \textbf{ msgb\+\_\+enqueue()}, \textbf{ msgb\+\_\+push()}, \textbf{ osmo\+\_\+phsap\+\_\+prim\+::oph}, \textbf{ osmo\+\_\+prim\+\_\+init()}, \textbf{ PRIM\+\_\+\+OP\+\_\+\+REQUEST}, \textbf{ PRIM\+\_\+\+PH\+\_\+\+DATA}, \textbf{ SAP\+\_\+\+GSM\+\_\+\+PH}, \textbf{ tall\+\_\+lapd\+\_\+ctx}, \textbf{ lapdm\+\_\+entity\+::tx\+\_\+pending}, \textbf{ lapdm\+\_\+datalink\+::tx\+\_\+ui\+\_\+queue}, and \textbf{ osmo\+\_\+phsap\+\_\+prim\+::u}.



Referenced by \textbf{ rslms\+\_\+rx\+\_\+rll\+\_\+udata\+\_\+req()}.

\mbox{\label{group__lapdm_ga496ffcc3aaffc6b25df8c077c843209b}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!update\_pending\_frames@{update\_pending\_frames}}
\index{update\_pending\_frames@{update\_pending\_frames}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{update\_pending\_frames()}
{\footnotesize\ttfamily static int update\+\_\+pending\+\_\+frames (\begin{DoxyParamCaption}\item[{struct \textbf{ lapd\+\_\+msg\+\_\+ctx} $\ast$}]{lctx }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ lapd\+\_\+msg\+\_\+ctx\+::dl}, \textbf{ LAPDm\+\_\+\+CTRL\+\_\+I}, \textbf{ LAPDm\+\_\+\+CTRL\+\_\+\+I\+\_\+\+Ns}, \textbf{ LAPDm\+\_\+\+CTRL\+\_\+is\+\_\+I}, \textbf{ LAPDm\+\_\+\+CTRL\+\_\+is\+\_\+S}, \textbf{ LAPDm\+\_\+\+CTRL\+\_\+\+PF\+\_\+\+BIT}, \textbf{ LAPDm\+\_\+\+CTRL\+\_\+S}, \textbf{ LAPDm\+\_\+\+CTRL\+\_\+\+S\+\_\+\+BITS}, \textbf{ lapd\+\_\+datalink\+::lctx}, \textbf{ msgb\+::list}, \textbf{ llist\+\_\+for\+\_\+each\+\_\+entry}, \textbf{ msg}, \textbf{ lapd\+\_\+datalink\+::tx\+\_\+queue}, and \textbf{ lapd\+\_\+datalink\+::v\+\_\+recv}.



Referenced by \textbf{ lapdm\+\_\+dl\+\_\+init()}.



\doxysubsection{Variable Documentation}
\mbox{\label{group__lapdm_ga719e977d124462c0e7a52ddd64592a9b}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!lapdm\_state\_names@{lapdm\_state\_names}}
\index{lapdm\_state\_names@{lapdm\_state\_names}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{lapdm\_state\_names}
{\footnotesize\ttfamily const char$\ast$ lapdm\+\_\+state\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}

\mbox{\label{group__lapdm_gaab66a3cad02ef3cca0977712222c926e}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!osmo\_ph\_prim\_names@{osmo\_ph\_prim\_names}}
\index{osmo\_ph\_prim\_names@{osmo\_ph\_prim\_names}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{osmo\_ph\_prim\_names}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} osmo\+\_\+ph\+\_\+prim\+\_\+names[$\,$]}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ PRIM\_PH\_DATA,             \textcolor{stringliteral}{"{}PH-\/DATA"{}} \},}
\DoxyCodeLine{        \{ PRIM\_PH\_RACH,             \textcolor{stringliteral}{"{}PH-\/RANDOM\_ACCESS"{}} \},}
\DoxyCodeLine{        \{ PRIM\_PH\_CONN,             \textcolor{stringliteral}{"{}PH-\/CONNECT"{}} \},}
\DoxyCodeLine{        \{ PRIM\_PH\_EMPTY\_FRAME,       \textcolor{stringliteral}{"{}PH-\/EMPTY\_FRAME"{}} \},}
\DoxyCodeLine{        \{ PRIM\_PH\_RTS,               \textcolor{stringliteral}{"{}PH-\/RTS"{}} \},}
\DoxyCodeLine{        \{ PRIM\_MPH\_INFO,   \textcolor{stringliteral}{"{}MPH-\/INFO"{}} \},}
\DoxyCodeLine{        \{ PRIM\_TCH,             \textcolor{stringliteral}{"{}TCH"{}} \},}
\DoxyCodeLine{        \{ PRIM\_TCH\_RTS,             \textcolor{stringliteral}{"{}TCH-\/RTS"{}} \},}
\DoxyCodeLine{        \{ 0,                    NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}
\mbox{\label{group__lapdm_gae09840f3b5da6b0bb8adb995cd329d2b}} 
\index{LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}!tall\_lapd\_ctx@{tall\_lapd\_ctx}}
\index{tall\_lapd\_ctx@{tall\_lapd\_ctx}!LAPDm implementation according to GSM TS 04.06@{LAPDm implementation according to GSM TS 04.06}}
\doxysubsubsection{tall\_lapd\_ctx}
{\footnotesize\ttfamily void$\ast$ tall\+\_\+lapd\+\_\+ctx\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ lapdm\+\_\+channel\+\_\+init3()}, \textbf{ tx\+\_\+ph\+\_\+data\+\_\+enqueue()}, and \textbf{ tx\+\_\+ph\+\_\+data\+\_\+enqueue\+\_\+ui()}.

