\doxysection{lapd\+\_\+datalink Struct Reference}
\label{structlapd__datalink}\index{lapd\_datalink@{lapd\_datalink}}


LAPD datalink.  




{\ttfamily \#include $<$lapd\+\_\+core.\+h$>$}

\doxysubsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
int($\ast$ \textbf{ send\+\_\+dlsap} )(struct \textbf{ osmo\+\_\+dlsap\+\_\+prim} $\ast$dp, struct \textbf{ lapd\+\_\+msg\+\_\+ctx} $\ast$\textbf{ lctx})
\item 
int($\ast$ \textbf{ send\+\_\+ph\+\_\+data\+\_\+req} )(struct \textbf{ lapd\+\_\+msg\+\_\+ctx} $\ast$\textbf{ lctx}, struct \textbf{ msgb} $\ast$msg)
\item 
int($\ast$ \textbf{ update\+\_\+pending\+\_\+frames} )(struct \textbf{ lapd\+\_\+msg\+\_\+ctx} $\ast$\textbf{ lctx})
\item 
\begin{tabbing}
xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill
struct \{\\
\>struct \textbf{ lapd\_cr\_ent} \textbf{ loc2rem}\\
\>\>{\em filled-\/in once we set the lapd\_mode above }\\
\>struct \textbf{ lapd\_cr\_ent} \textbf{ rem2loc}\\
\} \textbf{ cr}\\

\end{tabbing}\item 
enum \textbf{ lapd\+\_\+mode} \textbf{ mode}
\begin{DoxyCompactList}\small\item\em current mode of link \end{DoxyCompactList}\item 
unsigned int \textbf{ lapd\+\_\+flags}
\begin{DoxyCompactList}\small\item\em \doxyref{lapd\+\_\+flags}{p.}{structlapd__datalink_a95bb4a806a2acb5279ef23050fb9a20b} to change processing \end{DoxyCompactList}\item 
int \textbf{ use\+\_\+sabme}
\begin{DoxyCompactList}\small\item\em use SABME instead of SABM \end{DoxyCompactList}\item 
int \textbf{ reestablish}
\begin{DoxyCompactList}\small\item\em enable reestablish support \end{DoxyCompactList}\item 
int \textbf{ n200}
\item 
int \textbf{ n200\+\_\+est\+\_\+rel}
\begin{DoxyCompactList}\small\item\em number of retranmissions \end{DoxyCompactList}\item 
struct \textbf{ lapd\+\_\+msg\+\_\+ctx} \textbf{ lctx}
\begin{DoxyCompactList}\small\item\em LAPD context. \end{DoxyCompactList}\item 
int \textbf{ maxf}
\begin{DoxyCompactList}\small\item\em maximum frame size (after defragmentation) \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ k}
\begin{DoxyCompactList}\small\item\em maximum number of unacknowledged frames \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ v\+\_\+range}
\begin{DoxyCompactList}\small\item\em range of sequence numbers \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ v\+\_\+send}
\begin{DoxyCompactList}\small\item\em seq nr of next I frame to be transmitted \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ v\+\_\+ack}
\begin{DoxyCompactList}\small\item\em last frame ACKed by peer \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ v\+\_\+recv}
\begin{DoxyCompactList}\small\item\em seq nr of next I frame expected to be received \end{DoxyCompactList}\item 
uint32\+\_\+t \textbf{ state}
\begin{DoxyCompactList}\small\item\em LAPD state (\doxyref{lapd\+\_\+state}{p.}{group__lapd_gafdd5fb2afc6689772904f14820dfd38c}) \end{DoxyCompactList}\item 
int \textbf{ seq\+\_\+err\+\_\+cond}
\begin{DoxyCompactList}\small\item\em condition of sequence error \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ own\+\_\+busy}
\begin{DoxyCompactList}\small\item\em receiver busy on our side \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ peer\+\_\+busy}
\begin{DoxyCompactList}\small\item\em receiver busy on remote side \end{DoxyCompactList}\item 
int \textbf{ t200\+\_\+sec}
\item 
int \textbf{ t200\+\_\+usec}
\begin{DoxyCompactList}\small\item\em retry timer (default 1 sec) \end{DoxyCompactList}\item 
int \textbf{ t203\+\_\+sec}
\item 
int \textbf{ t203\+\_\+usec}
\begin{DoxyCompactList}\small\item\em retry timer (default 10 secs) \end{DoxyCompactList}\item 
enum \textbf{ lapd\+\_\+t200\+\_\+rts} \textbf{ t200\+\_\+rts}
\begin{DoxyCompactList}\small\item\em state of T200 in RTS mode \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+timer\+\_\+list} \textbf{ t200}
\begin{DoxyCompactList}\small\item\em T200 timer. \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+timer\+\_\+list} \textbf{ t203}
\begin{DoxyCompactList}\small\item\em T203 timer. \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ retrans\+\_\+ctr}
\begin{DoxyCompactList}\small\item\em re-\/transmission counter \end{DoxyCompactList}\item 
struct \textbf{ llist\+\_\+head} \textbf{ tx\+\_\+queue}
\begin{DoxyCompactList}\small\item\em frames to L1 \end{DoxyCompactList}\item 
struct \textbf{ llist\+\_\+head} \textbf{ send\+\_\+queue}
\begin{DoxyCompactList}\small\item\em frames from L3 \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ send\+\_\+buffer}
\begin{DoxyCompactList}\small\item\em current frame transmitting \end{DoxyCompactList}\item 
int \textbf{ send\+\_\+out}
\begin{DoxyCompactList}\small\item\em how much was sent from send\+\_\+buffer \end{DoxyCompactList}\item 
struct \textbf{ lapd\+\_\+history} $\ast$ \textbf{ tx\+\_\+hist}
\begin{DoxyCompactList}\small\item\em tx history structure array \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ range\+\_\+hist}
\begin{DoxyCompactList}\small\item\em range of history buffer 2..2$^\wedge$n \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ rcv\+\_\+buffer}
\begin{DoxyCompactList}\small\item\em buffer to assemble the received message \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ cont\+\_\+res}
\begin{DoxyCompactList}\small\item\em buffer to store content resolution data on network side, to detect multiple phones on same channel \end{DoxyCompactList}\item 
char $\ast$ \textbf{ name}
\begin{DoxyCompactList}\small\item\em user-\/provided name \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
LAPD datalink. 

\doxysubsection{Field Documentation}
\mbox{\label{structlapd__datalink_a7feaf1a7ad124739b3814ff7b5d589a5}} 
\index{lapd\_datalink@{lapd\_datalink}!cont\_res@{cont\_res}}
\index{cont\_res@{cont\_res}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{cont\_res}
{\footnotesize\ttfamily struct \textbf{ msgb}$\ast$ lapd\+\_\+datalink\+::cont\+\_\+res}



buffer to store content resolution data on network side, to detect multiple phones on same channel 



Referenced by \textbf{ lapd\+\_\+dl\+\_\+newstate()}, and \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+sabm()}.

\mbox{\label{structlapd__datalink_a1cf0aad2dda2e699bac1e986460bd028}} 
\index{lapd\_datalink@{lapd\_datalink}!cr@{cr}}
\index{cr@{cr}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{}
{\footnotesize\ttfamily struct  \{ ... \}  lapd\+\_\+datalink\+::cr}



Referenced by \textbf{ lapd\+\_\+est\+\_\+req()}, \textbf{ lapd\+\_\+rel\+\_\+req()}, \textbf{ lapd\+\_\+res\+\_\+req()}, \textbf{ lapd\+\_\+rx\+\_\+i()}, \textbf{ lapd\+\_\+rx\+\_\+s()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+disc()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+dm()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+sabm()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+ua()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+ui()}, \textbf{ lapd\+\_\+send\+\_\+dm()}, \textbf{ lapd\+\_\+send\+\_\+i()}, \textbf{ lapd\+\_\+send\+\_\+rej()}, \textbf{ lapd\+\_\+send\+\_\+resend()}, \textbf{ lapd\+\_\+send\+\_\+rnr()}, \textbf{ lapd\+\_\+send\+\_\+rr()}, \textbf{ lapd\+\_\+send\+\_\+ua()}, \textbf{ lapd\+\_\+set\+\_\+mode()}, \textbf{ lapd\+\_\+t200\+\_\+cb()}, and \textbf{ lapd\+\_\+udata\+\_\+req()}.

\mbox{\label{structlapd__datalink_ab8e885adaaf86246307c6aa767d83171}} 
\index{lapd\_datalink@{lapd\_datalink}!k@{k}}
\index{k@{k}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{k}
{\footnotesize\ttfamily uint8\+\_\+t lapd\+\_\+datalink\+::k}



maximum number of unacknowledged frames 



Referenced by \textbf{ lapd\+\_\+dl\+\_\+init2()}, and \textbf{ lapd\+\_\+send\+\_\+i()}.

\mbox{\label{structlapd__datalink_a95bb4a806a2acb5279ef23050fb9a20b}} 
\index{lapd\_datalink@{lapd\_datalink}!lapd\_flags@{lapd\_flags}}
\index{lapd\_flags@{lapd\_flags}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{lapd\_flags}
{\footnotesize\ttfamily unsigned int lapd\+\_\+datalink\+::lapd\+\_\+flags}



\doxyref{lapd\+\_\+flags}{p.}{structlapd__datalink_a95bb4a806a2acb5279ef23050fb9a20b} to change processing 



Referenced by \textbf{ lapd\+\_\+dl\+\_\+set\+\_\+flags()}, \textbf{ lapd\+\_\+is\+\_\+t200\+\_\+started()}, \textbf{ lapd\+\_\+rx\+\_\+i()}, \textbf{ lapd\+\_\+send\+\_\+i()}, \textbf{ lapd\+\_\+start\+\_\+t200()}, \textbf{ lapd\+\_\+stop\+\_\+t200()}, and \textbf{ lapd\+\_\+t200\+\_\+timeout()}.

\mbox{\label{structlapd__datalink_ac12aa8539e5a7d2a95ddb9a5a8ca8bf0}} 
\index{lapd\_datalink@{lapd\_datalink}!lctx@{lctx}}
\index{lctx@{lctx}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{lctx}
{\footnotesize\ttfamily struct \textbf{ lapd\+\_\+msg\+\_\+ctx} lapd\+\_\+datalink\+::lctx}



LAPD context. 



Referenced by \textbf{ lapd\+\_\+acknowledge()}, \textbf{ lapd\+\_\+data\+\_\+req()}, \textbf{ lapd\+\_\+est\+\_\+req()}, \textbf{ lapd\+\_\+ph\+\_\+data\+\_\+ind()}, \textbf{ lapd\+\_\+ph\+\_\+rts\+\_\+ind()}, \textbf{ lapd\+\_\+recv\+\_\+dlsap()}, \textbf{ lapd\+\_\+reestablish()}, \textbf{ lapd\+\_\+rel\+\_\+req()}, \textbf{ lapd\+\_\+rel\+\_\+req\+\_\+idle()}, \textbf{ lapd\+\_\+res\+\_\+req()}, \textbf{ lapd\+\_\+rx\+\_\+i()}, \textbf{ lapd\+\_\+rx\+\_\+s()}, \textbf{ lapd\+\_\+rx\+\_\+u()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+disc()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+dm()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+frmr()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+sabm()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+ua()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+ui()}, \textbf{ lapd\+\_\+send\+\_\+dm()}, \textbf{ lapd\+\_\+send\+\_\+i()}, \textbf{ lapd\+\_\+send\+\_\+rej()}, \textbf{ lapd\+\_\+send\+\_\+resend()}, \textbf{ lapd\+\_\+send\+\_\+rnr()}, \textbf{ lapd\+\_\+send\+\_\+rr()}, \textbf{ lapd\+\_\+send\+\_\+ua()}, \textbf{ lapd\+\_\+susp\+\_\+req()}, \textbf{ lapd\+\_\+t200\+\_\+cb()}, \textbf{ lapd\+\_\+t203\+\_\+cb()}, \textbf{ lapd\+\_\+udata\+\_\+req()}, \textbf{ mdl\+\_\+error()}, and \textbf{ send\+\_\+dl\+\_\+l3()}.

\mbox{\label{structlapd__datalink_a1133f366574653497e256ed5f9d9b45e}} 
\index{lapd\_datalink@{lapd\_datalink}!loc2rem@{loc2rem}}
\index{loc2rem@{loc2rem}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{loc2rem}
{\footnotesize\ttfamily struct \textbf{ lapd\+\_\+cr\+\_\+ent} lapd\+\_\+datalink\+::loc2rem}



filled-\/in once we set the lapd\+\_\+mode above 



Referenced by \textbf{ lapd\+\_\+est\+\_\+req()}, \textbf{ lapd\+\_\+rel\+\_\+req()}, \textbf{ lapd\+\_\+res\+\_\+req()}, \textbf{ lapd\+\_\+send\+\_\+dm()}, \textbf{ lapd\+\_\+send\+\_\+i()}, \textbf{ lapd\+\_\+send\+\_\+rej()}, \textbf{ lapd\+\_\+send\+\_\+resend()}, \textbf{ lapd\+\_\+send\+\_\+rnr()}, \textbf{ lapd\+\_\+send\+\_\+rr()}, \textbf{ lapd\+\_\+send\+\_\+ua()}, \textbf{ lapd\+\_\+set\+\_\+mode()}, \textbf{ lapd\+\_\+t200\+\_\+cb()}, and \textbf{ lapd\+\_\+udata\+\_\+req()}.

\mbox{\label{structlapd__datalink_a6714e61925cf241a01599055e97caa1b}} 
\index{lapd\_datalink@{lapd\_datalink}!maxf@{maxf}}
\index{maxf@{maxf}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{maxf}
{\footnotesize\ttfamily int lapd\+\_\+datalink\+::maxf}



maximum frame size (after defragmentation) 



Referenced by \textbf{ lapd\+\_\+dl\+\_\+init2()}, and \textbf{ lapd\+\_\+rx\+\_\+i()}.

\mbox{\label{structlapd__datalink_ac7389d80fd007751cfaa3622e0ce26fb}} 
\index{lapd\_datalink@{lapd\_datalink}!mode@{mode}}
\index{mode@{mode}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{mode}
{\footnotesize\ttfamily enum \textbf{ lapd\+\_\+mode} lapd\+\_\+datalink\+::mode}



current mode of link 



Referenced by \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+sabm()}, and \textbf{ lapd\+\_\+set\+\_\+mode()}.

\mbox{\label{structlapd__datalink_a8a199f772ff021d09c2fc4e45dbeb503}} 
\index{lapd\_datalink@{lapd\_datalink}!n200@{n200}}
\index{n200@{n200}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{n200}
{\footnotesize\ttfamily int lapd\+\_\+datalink\+::n200}



Referenced by \textbf{ lapd\+\_\+dl\+\_\+init2()}, and \textbf{ lapd\+\_\+t200\+\_\+cb()}.

\mbox{\label{structlapd__datalink_ad46720b6eaae16baf81ca0521a820e79}} 
\index{lapd\_datalink@{lapd\_datalink}!n200\_est\_rel@{n200\_est\_rel}}
\index{n200\_est\_rel@{n200\_est\_rel}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{n200\_est\_rel}
{\footnotesize\ttfamily int lapd\+\_\+datalink\+::n200\+\_\+est\+\_\+rel}



number of retranmissions 



Referenced by \textbf{ lapd\+\_\+dl\+\_\+init2()}, and \textbf{ lapd\+\_\+t200\+\_\+cb()}.

\mbox{\label{structlapd__datalink_a56ac834e7a007220714bc8679a3f0417}} 
\index{lapd\_datalink@{lapd\_datalink}!name@{name}}
\index{name@{name}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{name}
{\footnotesize\ttfamily char$\ast$ lapd\+\_\+datalink\+::name}



user-\/provided name 



Referenced by \textbf{ lapd\+\_\+dl\+\_\+exit()}, \textbf{ lapd\+\_\+dl\+\_\+init2()}, and \textbf{ lapd\+\_\+dl\+\_\+set\+\_\+name()}.

\mbox{\label{structlapd__datalink_a5b4cd84d7ee7ee12ebc3553ac7efc3f7}} 
\index{lapd\_datalink@{lapd\_datalink}!own\_busy@{own\_busy}}
\index{own\_busy@{own\_busy}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{own\_busy}
{\footnotesize\ttfamily uint8\+\_\+t lapd\+\_\+datalink\+::own\+\_\+busy}



receiver busy on our side 



Referenced by \textbf{ lapd\+\_\+est\+\_\+req()}, \textbf{ lapd\+\_\+rel\+\_\+req()}, \textbf{ lapd\+\_\+res\+\_\+req()}, \textbf{ lapd\+\_\+rx\+\_\+i()}, \textbf{ lapd\+\_\+rx\+\_\+s()}, \textbf{ lapd\+\_\+t200\+\_\+cb()}, and \textbf{ lapd\+\_\+t203\+\_\+cb()}.

\mbox{\label{structlapd__datalink_a09b2e4b95fee603757a837f30ad3a812}} 
\index{lapd\_datalink@{lapd\_datalink}!peer\_busy@{peer\_busy}}
\index{peer\_busy@{peer\_busy}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{peer\_busy}
{\footnotesize\ttfamily uint8\+\_\+t lapd\+\_\+datalink\+::peer\+\_\+busy}



receiver busy on remote side 



Referenced by \textbf{ lapd\+\_\+est\+\_\+req()}, \textbf{ lapd\+\_\+rel\+\_\+req()}, \textbf{ lapd\+\_\+res\+\_\+req()}, \textbf{ lapd\+\_\+rx\+\_\+s()}, and \textbf{ lapd\+\_\+send\+\_\+i()}.

\mbox{\label{structlapd__datalink_a3be861edcc649bc68369e827197a376d}} 
\index{lapd\_datalink@{lapd\_datalink}!range\_hist@{range\_hist}}
\index{range\_hist@{range\_hist}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{range\_hist}
{\footnotesize\ttfamily uint8\+\_\+t lapd\+\_\+datalink\+::range\+\_\+hist}



range of history buffer 2..2$^\wedge$n 



Referenced by \textbf{ lapd\+\_\+acknowledge()}, \textbf{ lapd\+\_\+dl\+\_\+flush\+\_\+hist()}, \textbf{ lapd\+\_\+dl\+\_\+init2()}, \textbf{ lapd\+\_\+send\+\_\+i()}, \textbf{ lapd\+\_\+send\+\_\+resend()}, and \textbf{ lapd\+\_\+t200\+\_\+cb()}.

\mbox{\label{structlapd__datalink_ada0adc05ca8d18acdb54821dcf1adc8c}} 
\index{lapd\_datalink@{lapd\_datalink}!rcv\_buffer@{rcv\_buffer}}
\index{rcv\_buffer@{rcv\_buffer}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{rcv\_buffer}
{\footnotesize\ttfamily struct \textbf{ msgb}$\ast$ lapd\+\_\+datalink\+::rcv\+\_\+buffer}



buffer to assemble the received message 



Referenced by \textbf{ lapd\+\_\+dl\+\_\+reset()}, \textbf{ lapd\+\_\+est\+\_\+req()}, \textbf{ lapd\+\_\+res\+\_\+req()}, and \textbf{ lapd\+\_\+rx\+\_\+i()}.

\mbox{\label{structlapd__datalink_a3db141a1aa4fddcc9639d17902f9d24a}} 
\index{lapd\_datalink@{lapd\_datalink}!reestablish@{reestablish}}
\index{reestablish@{reestablish}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{reestablish}
{\footnotesize\ttfamily int lapd\+\_\+datalink\+::reestablish}



enable reestablish support 



Referenced by \textbf{ lapd\+\_\+dl\+\_\+init2()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+dm()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+frmr()}, and \textbf{ lapd\+\_\+t200\+\_\+cb()}.

\mbox{\label{structlapd__datalink_a54ef96deb7563d731db3add21929046f}} 
\index{lapd\_datalink@{lapd\_datalink}!rem2loc@{rem2loc}}
\index{rem2loc@{rem2loc}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{rem2loc}
{\footnotesize\ttfamily struct \textbf{ lapd\+\_\+cr\+\_\+ent} lapd\+\_\+datalink\+::rem2loc}



Referenced by \textbf{ lapd\+\_\+rx\+\_\+i()}, \textbf{ lapd\+\_\+rx\+\_\+s()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+disc()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+dm()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+sabm()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+ua()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+ui()}, and \textbf{ lapd\+\_\+set\+\_\+mode()}.

\mbox{\label{structlapd__datalink_a763538892384ea236dd9897785a487dd}} 
\index{lapd\_datalink@{lapd\_datalink}!retrans\_ctr@{retrans\_ctr}}
\index{retrans\_ctr@{retrans\_ctr}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{retrans\_ctr}
{\footnotesize\ttfamily uint8\+\_\+t lapd\+\_\+datalink\+::retrans\+\_\+ctr}



re-\/transmission counter 



Referenced by \textbf{ lapd\+\_\+est\+\_\+req()}, \textbf{ lapd\+\_\+rel\+\_\+req()}, \textbf{ lapd\+\_\+res\+\_\+req()}, \textbf{ lapd\+\_\+t200\+\_\+cb()}, and \textbf{ lapd\+\_\+t203\+\_\+cb()}.

\mbox{\label{structlapd__datalink_a978fcf95e195beb97909a6b88f3b0773}} 
\index{lapd\_datalink@{lapd\_datalink}!send\_buffer@{send\_buffer}}
\index{send\_buffer@{send\_buffer}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{send\_buffer}
{\footnotesize\ttfamily struct \textbf{ msgb}$\ast$ lapd\+\_\+datalink\+::send\+\_\+buffer}



current frame transmitting 



Referenced by \textbf{ lapd\+\_\+dl\+\_\+flush\+\_\+send()}, \textbf{ lapd\+\_\+res\+\_\+req()}, \textbf{ lapd\+\_\+send\+\_\+i()}, and \textbf{ lapd\+\_\+susp\+\_\+req()}.

\mbox{\label{structlapd__datalink_ad70d246e686f60104db90027c702ba28}} 
\index{lapd\_datalink@{lapd\_datalink}!send\_dlsap@{send\_dlsap}}
\index{send\_dlsap@{send\_dlsap}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{send\_dlsap}
{\footnotesize\ttfamily int($\ast$ lapd\+\_\+datalink\+::send\+\_\+dlsap) (struct \textbf{ osmo\+\_\+dlsap\+\_\+prim} $\ast$dp, struct \textbf{ lapd\+\_\+msg\+\_\+ctx} $\ast$\textbf{ lctx})}



Referenced by \textbf{ mdl\+\_\+error()}, and \textbf{ send\+\_\+dl\+\_\+l3()}.

\mbox{\label{structlapd__datalink_a9fd3a0df2dec1d45a3ee073e44001d22}} 
\index{lapd\_datalink@{lapd\_datalink}!send\_out@{send\_out}}
\index{send\_out@{send\_out}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{send\_out}
{\footnotesize\ttfamily int lapd\+\_\+datalink\+::send\+\_\+out}



how much was sent from send\+\_\+buffer 



Referenced by \textbf{ lapd\+\_\+res\+\_\+req()}, and \textbf{ lapd\+\_\+send\+\_\+i()}.

\mbox{\label{structlapd__datalink_ac5835ae5dbbf6ba5384a172873c8972e}} 
\index{lapd\_datalink@{lapd\_datalink}!send\_ph\_data\_req@{send\_ph\_data\_req}}
\index{send\_ph\_data\_req@{send\_ph\_data\_req}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{send\_ph\_data\_req}
{\footnotesize\ttfamily int($\ast$ lapd\+\_\+datalink\+::send\+\_\+ph\+\_\+data\+\_\+req) (struct \textbf{ lapd\+\_\+msg\+\_\+ctx} $\ast$\textbf{ lctx}, struct \textbf{ msgb} $\ast$msg)}



Referenced by \textbf{ lapd\+\_\+est\+\_\+req()}, \textbf{ lapd\+\_\+rel\+\_\+req()}, \textbf{ lapd\+\_\+res\+\_\+req()}, \textbf{ lapd\+\_\+send\+\_\+dm()}, \textbf{ lapd\+\_\+send\+\_\+i()}, \textbf{ lapd\+\_\+send\+\_\+rej()}, \textbf{ lapd\+\_\+send\+\_\+resend()}, \textbf{ lapd\+\_\+send\+\_\+rnr()}, \textbf{ lapd\+\_\+send\+\_\+rr()}, \textbf{ lapd\+\_\+send\+\_\+ua()}, \textbf{ lapd\+\_\+t200\+\_\+cb()}, and \textbf{ lapd\+\_\+udata\+\_\+req()}.

\mbox{\label{structlapd__datalink_af5e9c9a6007e624ad1b77c85b2a8ca22}} 
\index{lapd\_datalink@{lapd\_datalink}!send\_queue@{send\_queue}}
\index{send\_queue@{send\_queue}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{send\_queue}
{\footnotesize\ttfamily struct \textbf{ llist\+\_\+head} lapd\+\_\+datalink\+::send\+\_\+queue}



frames from L3 



Referenced by \textbf{ lapd\+\_\+data\+\_\+req()}, \textbf{ lapd\+\_\+dl\+\_\+flush\+\_\+send()}, \textbf{ lapd\+\_\+dl\+\_\+init2()}, \textbf{ lapd\+\_\+send\+\_\+i()}, and \textbf{ lapd\+\_\+susp\+\_\+req()}.

\mbox{\label{structlapd__datalink_a29c5e713968c4ed59c48a1c3ef6db713}} 
\index{lapd\_datalink@{lapd\_datalink}!seq\_err\_cond@{seq\_err\_cond}}
\index{seq\_err\_cond@{seq\_err\_cond}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{seq\_err\_cond}
{\footnotesize\ttfamily int lapd\+\_\+datalink\+::seq\+\_\+err\+\_\+cond}



condition of sequence error 



Referenced by \textbf{ lapd\+\_\+rx\+\_\+i()}, \textbf{ lapd\+\_\+rx\+\_\+s()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+disc()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+sabm()}, and \textbf{ lapd\+\_\+t200\+\_\+cb()}.

\mbox{\label{structlapd__datalink_ac88f3be52fd6fc414cac50d862f46dfc}} 
\index{lapd\_datalink@{lapd\_datalink}!state@{state}}
\index{state@{state}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{state}
{\footnotesize\ttfamily uint32\+\_\+t lapd\+\_\+datalink\+::state}



LAPD state (\doxyref{lapd\+\_\+state}{p.}{group__lapd_gafdd5fb2afc6689772904f14820dfd38c}) 



Referenced by \textbf{ lapd\+\_\+acknowledge()}, \textbf{ lapd\+\_\+dl\+\_\+newstate()}, \textbf{ lapd\+\_\+dl\+\_\+reset()}, \textbf{ lapd\+\_\+ph\+\_\+rts\+\_\+ind()}, \textbf{ lapd\+\_\+recv\+\_\+dlsap()}, \textbf{ lapd\+\_\+rel\+\_\+req()}, \textbf{ lapd\+\_\+rx\+\_\+i()}, \textbf{ lapd\+\_\+rx\+\_\+s()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+disc()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+dm()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+sabm()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+ua()}, \textbf{ lapd\+\_\+send\+\_\+i()}, \textbf{ lapd\+\_\+send\+\_\+resend()}, \textbf{ lapd\+\_\+t200\+\_\+cb()}, \textbf{ lapd\+\_\+t203\+\_\+cb()}, and \textbf{ mdl\+\_\+error()}.

\mbox{\label{structlapd__datalink_a5d4bbf8c697dddf0c2274434a38123d1}} 
\index{lapd\_datalink@{lapd\_datalink}!t200@{t200}}
\index{t200@{t200}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{t200}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+timer\+\_\+list} lapd\+\_\+datalink\+::t200}



T200 timer. 



Referenced by \textbf{ lapd\+\_\+dl\+\_\+init2()}, \textbf{ lapd\+\_\+is\+\_\+t200\+\_\+started()}, \textbf{ lapd\+\_\+start\+\_\+t200()}, and \textbf{ lapd\+\_\+stop\+\_\+t200()}.

\mbox{\label{structlapd__datalink_a6c6e4732c9a84143aef92f2ab5b24658}} 
\index{lapd\_datalink@{lapd\_datalink}!t200\_rts@{t200\_rts}}
\index{t200\_rts@{t200\_rts}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{t200\_rts}
{\footnotesize\ttfamily enum \textbf{ lapd\+\_\+t200\+\_\+rts} lapd\+\_\+datalink\+::t200\+\_\+rts}



state of T200 in RTS mode 



Referenced by \textbf{ lapd\+\_\+is\+\_\+t200\+\_\+started()}, \textbf{ lapd\+\_\+ph\+\_\+rts\+\_\+ind()}, \textbf{ lapd\+\_\+start\+\_\+t200()}, \textbf{ lapd\+\_\+stop\+\_\+t200()}, and \textbf{ lapd\+\_\+t200\+\_\+timeout()}.

\mbox{\label{structlapd__datalink_adc2903f300673a913ad08b51f0284f29}} 
\index{lapd\_datalink@{lapd\_datalink}!t200\_sec@{t200\_sec}}
\index{t200\_sec@{t200\_sec}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{t200\_sec}
{\footnotesize\ttfamily int lapd\+\_\+datalink\+::t200\+\_\+sec}



Referenced by \textbf{ lapd\+\_\+dl\+\_\+init2()}, and \textbf{ lapd\+\_\+start\+\_\+t200()}.

\mbox{\label{structlapd__datalink_a6c4ff044687dd4e05d5e7d179ab92239}} 
\index{lapd\_datalink@{lapd\_datalink}!t200\_usec@{t200\_usec}}
\index{t200\_usec@{t200\_usec}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{t200\_usec}
{\footnotesize\ttfamily int lapd\+\_\+datalink\+::t200\+\_\+usec}



retry timer (default 1 sec) 



Referenced by \textbf{ lapd\+\_\+dl\+\_\+init2()}, and \textbf{ lapd\+\_\+start\+\_\+t200()}.

\mbox{\label{structlapd__datalink_a27a9c56e251d74406d9ef2fa56e4b435}} 
\index{lapd\_datalink@{lapd\_datalink}!t203@{t203}}
\index{t203@{t203}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{t203}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+timer\+\_\+list} lapd\+\_\+datalink\+::t203}



T203 timer. 



Referenced by \textbf{ lapd\+\_\+dl\+\_\+init2()}, \textbf{ lapd\+\_\+start\+\_\+t203()}, and \textbf{ lapd\+\_\+stop\+\_\+t203()}.

\mbox{\label{structlapd__datalink_a9af13611965f97401948876e6795d9eb}} 
\index{lapd\_datalink@{lapd\_datalink}!t203\_sec@{t203\_sec}}
\index{t203\_sec@{t203\_sec}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{t203\_sec}
{\footnotesize\ttfamily int lapd\+\_\+datalink\+::t203\+\_\+sec}



Referenced by \textbf{ lapd\+\_\+acknowledge()}, \textbf{ lapd\+\_\+dl\+\_\+init2()}, \textbf{ lapd\+\_\+dl\+\_\+newstate()}, and \textbf{ lapd\+\_\+start\+\_\+t203()}.

\mbox{\label{structlapd__datalink_adcb68fa232114ac1abc4001d8f22b2d7}} 
\index{lapd\_datalink@{lapd\_datalink}!t203\_usec@{t203\_usec}}
\index{t203\_usec@{t203\_usec}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{t203\_usec}
{\footnotesize\ttfamily int lapd\+\_\+datalink\+::t203\+\_\+usec}



retry timer (default 10 secs) 



Referenced by \textbf{ lapd\+\_\+acknowledge()}, \textbf{ lapd\+\_\+dl\+\_\+init2()}, \textbf{ lapd\+\_\+dl\+\_\+newstate()}, and \textbf{ lapd\+\_\+start\+\_\+t203()}.

\mbox{\label{structlapd__datalink_a2d4291a8722aaf0417d54441f75212bd}} 
\index{lapd\_datalink@{lapd\_datalink}!tx\_hist@{tx\_hist}}
\index{tx\_hist@{tx\_hist}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{tx\_hist}
{\footnotesize\ttfamily struct \textbf{ lapd\+\_\+history}$\ast$ lapd\+\_\+datalink\+::tx\+\_\+hist}



tx history structure array 



Referenced by \textbf{ lapd\+\_\+acknowledge()}, \textbf{ lapd\+\_\+dl\+\_\+exit()}, \textbf{ lapd\+\_\+dl\+\_\+flush\+\_\+hist()}, \textbf{ lapd\+\_\+dl\+\_\+init2()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+sabm()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+ua()}, \textbf{ lapd\+\_\+send\+\_\+i()}, \textbf{ lapd\+\_\+send\+\_\+resend()}, \textbf{ lapd\+\_\+t200\+\_\+cb()}, and \textbf{ msg\+\_\+to\+\_\+tx\+\_\+hist0()}.

\mbox{\label{structlapd__datalink_a2271866830bbe0001e90fb63921ad03e}} 
\index{lapd\_datalink@{lapd\_datalink}!tx\_queue@{tx\_queue}}
\index{tx\_queue@{tx\_queue}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{tx\_queue}
{\footnotesize\ttfamily struct \textbf{ llist\+\_\+head} lapd\+\_\+datalink\+::tx\+\_\+queue}



frames to L1 



Referenced by \textbf{ lapd\+\_\+dl\+\_\+flush\+\_\+tx\+\_\+queue()}, \textbf{ lapd\+\_\+dl\+\_\+init2()}, \textbf{ lapd\+\_\+ph\+\_\+rts\+\_\+ind()}, and \textbf{ lapd\+\_\+send\+\_\+i()}.

\mbox{\label{structlapd__datalink_a1b77c48d7c1cae479b61fd506f9d5522}} 
\index{lapd\_datalink@{lapd\_datalink}!update\_pending\_frames@{update\_pending\_frames}}
\index{update\_pending\_frames@{update\_pending\_frames}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{update\_pending\_frames}
{\footnotesize\ttfamily int($\ast$ lapd\+\_\+datalink\+::update\+\_\+pending\+\_\+frames) (struct \textbf{ lapd\+\_\+msg\+\_\+ctx} $\ast$\textbf{ lctx})}



Referenced by \textbf{ lapd\+\_\+rx\+\_\+i()}.

\mbox{\label{structlapd__datalink_a375e4d4c2121228f9a9b11526df52c58}} 
\index{lapd\_datalink@{lapd\_datalink}!use\_sabme@{use\_sabme}}
\index{use\_sabme@{use\_sabme}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{use\_sabme}
{\footnotesize\ttfamily int lapd\+\_\+datalink\+::use\+\_\+sabme}



use SABME instead of SABM 



Referenced by \textbf{ lapd\+\_\+est\+\_\+req()}, \textbf{ lapd\+\_\+res\+\_\+req()}, and \textbf{ lapd\+\_\+send\+\_\+resend()}.

\mbox{\label{structlapd__datalink_a57b5e1490ea0be853ac6276e445a1c45}} 
\index{lapd\_datalink@{lapd\_datalink}!v\_ack@{v\_ack}}
\index{v\_ack@{v\_ack}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{v\_ack}
{\footnotesize\ttfamily uint8\+\_\+t lapd\+\_\+datalink\+::v\+\_\+ack}



last frame ACKed by peer 



Referenced by \textbf{ lapd\+\_\+acknowledge()}, \textbf{ lapd\+\_\+rx\+\_\+s()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+sabm()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+ua()}, and \textbf{ lapd\+\_\+send\+\_\+i()}.

\mbox{\label{structlapd__datalink_adbda0baf29ab43125a914995a2e2a2af}} 
\index{lapd\_datalink@{lapd\_datalink}!v\_range@{v\_range}}
\index{v\_range@{v\_range}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{v\_range}
{\footnotesize\ttfamily uint8\+\_\+t lapd\+\_\+datalink\+::v\+\_\+range}



range of sequence numbers 



Referenced by \textbf{ lapd\+\_\+acknowledge()}, \textbf{ lapd\+\_\+dl\+\_\+init2()}, \textbf{ lapd\+\_\+rx\+\_\+i()}, \textbf{ lapd\+\_\+send\+\_\+i()}, and \textbf{ lapd\+\_\+t200\+\_\+cb()}.

\mbox{\label{structlapd__datalink_ac9525b9b8dbf21694f5d61c04c5748fe}} 
\index{lapd\_datalink@{lapd\_datalink}!v\_recv@{v\_recv}}
\index{v\_recv@{v\_recv}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{v\_recv}
{\footnotesize\ttfamily uint8\+\_\+t lapd\+\_\+datalink\+::v\+\_\+recv}



seq nr of next I frame expected to be received 



Referenced by \textbf{ lapd\+\_\+rx\+\_\+i()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+sabm()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+ua()}, \textbf{ lapd\+\_\+send\+\_\+i()}, \textbf{ lapd\+\_\+send\+\_\+rej()}, \textbf{ lapd\+\_\+send\+\_\+rnr()}, \textbf{ lapd\+\_\+send\+\_\+rr()}, and \textbf{ lapd\+\_\+t200\+\_\+cb()}.

\mbox{\label{structlapd__datalink_a87cdfceb0d13c43654bcf99e30427761}} 
\index{lapd\_datalink@{lapd\_datalink}!v\_send@{v\_send}}
\index{v\_send@{v\_send}!lapd\_datalink@{lapd\_datalink}}
\doxysubsubsection{v\_send}
{\footnotesize\ttfamily uint8\+\_\+t lapd\+\_\+datalink\+::v\+\_\+send}



seq nr of next I frame to be transmitted 



Referenced by \textbf{ lapd\+\_\+acknowledge()}, \textbf{ lapd\+\_\+est\+\_\+req()}, \textbf{ lapd\+\_\+rel\+\_\+req()}, \textbf{ lapd\+\_\+res\+\_\+req()}, \textbf{ lapd\+\_\+rx\+\_\+s()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+sabm()}, \textbf{ lapd\+\_\+rx\+\_\+u\+\_\+ua()}, \textbf{ lapd\+\_\+send\+\_\+i()}, \textbf{ lapd\+\_\+send\+\_\+resend()}, and \textbf{ lapd\+\_\+t200\+\_\+cb()}.



The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
include/osmocom/isdn/\textbf{ lapd\+\_\+core.\+h}\end{DoxyCompactItemize}
