\doxysection{osmo\+\_\+fr\+\_\+link Struct Reference}
\label{structosmo__fr__link}\index{osmo\_fr\_link@{osmo\_fr\_link}}


{\ttfamily \#include $<$frame\+\_\+relay.\+h$>$}

\doxysubsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ llist\+\_\+head} \textbf{ list}
\item 
struct \textbf{ osmo\+\_\+fr\+\_\+network} $\ast$ \textbf{ net}
\item 
enum \textbf{ osmo\+\_\+fr\+\_\+role} \textbf{ role}
\item 
const char $\ast$ \textbf{ name}
\item 
uint8\+\_\+t \textbf{ last\+\_\+rx\+\_\+seq}
\item 
uint8\+\_\+t \textbf{ last\+\_\+tx\+\_\+seq}
\item 
struct \textbf{ osmo\+\_\+timer\+\_\+list} \textbf{ t391}
\item 
struct \textbf{ osmo\+\_\+timer\+\_\+list} \textbf{ t392}
\item 
unsigned int \textbf{ polling\+\_\+count}
\item 
unsigned int \textbf{ err\+\_\+count}
\item 
unsigned int \textbf{ succeed}
\item 
uint8\+\_\+t \textbf{ expected\+\_\+rep}
\item 
bool \textbf{ state}
\item 
struct \textbf{ llist\+\_\+head} \textbf{ dlc\+\_\+list}
\item 
int($\ast$ \textbf{ unknown\+\_\+dlc\+\_\+rx\+\_\+cb} )(void $\ast$\textbf{ cb\+\_\+data}, struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
void $\ast$ \textbf{ unknown\+\_\+dlc\+\_\+rx\+\_\+cb\+\_\+data}
\item 
int($\ast$ \textbf{ tx\+\_\+cb} )(void $\ast$\textbf{ data}, struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
void($\ast$ \textbf{ status\+\_\+cb} )(struct \textbf{ osmo\+\_\+fr\+\_\+link} $\ast$link, void $\ast$\textbf{ cb\+\_\+data}, bool active)
\item 
void $\ast$ \textbf{ cb\+\_\+data}
\end{DoxyCompactItemize}


\doxysubsection{Field Documentation}
\mbox{\label{structosmo__fr__link_a6db134523d331a88d449a390763f099d}} 
\index{osmo\_fr\_link@{osmo\_fr\_link}!cb\_data@{cb\_data}}
\index{cb\_data@{cb\_data}!osmo\_fr\_link@{osmo\_fr\_link}}
\doxysubsubsection{cb\_data}
{\footnotesize\ttfamily void$\ast$ osmo\+\_\+fr\+\_\+link\+::cb\+\_\+data}



Referenced by \textbf{ check\+\_\+link\+\_\+state()}, \textbf{ gprs\+\_\+ns2\+\_\+fr\+\_\+bind()}, \textbf{ link\+\_\+set\+\_\+failed()}, \textbf{ osmo\+\_\+fr\+\_\+tx\+\_\+dlc()}, \textbf{ tx\+\_\+lmi\+\_\+q933\+\_\+status()}, and \textbf{ tx\+\_\+lmi\+\_\+q933\+\_\+status\+\_\+enq()}.

\mbox{\label{structosmo__fr__link_a7ce5fcd26b3594a9043bac905fd64f08}} 
\index{osmo\_fr\_link@{osmo\_fr\_link}!dlc\_list@{dlc\_list}}
\index{dlc\_list@{dlc\_list}!osmo\_fr\_link@{osmo\_fr\_link}}
\doxysubsubsection{dlc\_list}
{\footnotesize\ttfamily struct \textbf{ llist\+\_\+head} osmo\+\_\+fr\+\_\+link\+::dlc\+\_\+list}



Referenced by \textbf{ check\+\_\+link\+\_\+state()}, \textbf{ fr\+\_\+link\+\_\+dump\+\_\+vty()}, \textbf{ link\+\_\+set\+\_\+failed()}, \textbf{ osmo\+\_\+fr\+\_\+dlc\+\_\+alloc()}, \textbf{ osmo\+\_\+fr\+\_\+dlc\+\_\+by\+\_\+dlci()}, \textbf{ osmo\+\_\+fr\+\_\+link\+\_\+alloc()}, \textbf{ osmo\+\_\+fr\+\_\+link\+\_\+free()}, \textbf{ parse\+\_\+full\+\_\+pvc\+\_\+status()}, \textbf{ rx\+\_\+lmi\+\_\+q933\+\_\+status\+\_\+enq()}, and \textbf{ tx\+\_\+lmi\+\_\+q933\+\_\+status()}.

\mbox{\label{structosmo__fr__link_a548400bcbf7a450985764253f04a6b0c}} 
\index{osmo\_fr\_link@{osmo\_fr\_link}!err\_count@{err\_count}}
\index{err\_count@{err\_count}!osmo\_fr\_link@{osmo\_fr\_link}}
\doxysubsubsection{err\_count}
{\footnotesize\ttfamily unsigned int osmo\+\_\+fr\+\_\+link\+::err\+\_\+count}



Referenced by \textbf{ fr\+\_\+t392\+\_\+cb()}, and \textbf{ rx\+\_\+lmi\+\_\+q933\+\_\+status\+\_\+enq()}.

\mbox{\label{structosmo__fr__link_af7e98d7be3006b1ff855978b0015d49b}} 
\index{osmo\_fr\_link@{osmo\_fr\_link}!expected\_rep@{expected\_rep}}
\index{expected\_rep@{expected\_rep}!osmo\_fr\_link@{osmo\_fr\_link}}
\doxysubsubsection{expected\_rep}
{\footnotesize\ttfamily uint8\+\_\+t osmo\+\_\+fr\+\_\+link\+::expected\+\_\+rep}



Referenced by \textbf{ rx\+\_\+lmi\+\_\+q933\+\_\+status()}, and \textbf{ tx\+\_\+lmi\+\_\+q933\+\_\+status\+\_\+enq()}.

\mbox{\label{structosmo__fr__link_a6a174f48762647ff0c310b84e5a01e2e}} 
\index{osmo\_fr\_link@{osmo\_fr\_link}!last\_rx\_seq@{last\_rx\_seq}}
\index{last\_rx\_seq@{last\_rx\_seq}!osmo\_fr\_link@{osmo\_fr\_link}}
\doxysubsubsection{last\_rx\_seq}
{\footnotesize\ttfamily uint8\+\_\+t osmo\+\_\+fr\+\_\+link\+::last\+\_\+rx\+\_\+seq}



Referenced by \textbf{ fr\+\_\+link\+\_\+dump\+\_\+vty()}, \textbf{ msgb\+\_\+put\+\_\+link\+\_\+int\+\_\+verif()}, \textbf{ rx\+\_\+lmi\+\_\+q933\+\_\+status()}, and \textbf{ rx\+\_\+lmi\+\_\+q933\+\_\+status\+\_\+enq()}.

\mbox{\label{structosmo__fr__link_a2293244273bdb7d0271006ee50a23bd6}} 
\index{osmo\_fr\_link@{osmo\_fr\_link}!last\_tx\_seq@{last\_tx\_seq}}
\index{last\_tx\_seq@{last\_tx\_seq}!osmo\_fr\_link@{osmo\_fr\_link}}
\doxysubsubsection{last\_tx\_seq}
{\footnotesize\ttfamily uint8\+\_\+t osmo\+\_\+fr\+\_\+link\+::last\+\_\+tx\+\_\+seq}



Referenced by \textbf{ fr\+\_\+link\+\_\+dump\+\_\+vty()}, \textbf{ link\+\_\+get\+\_\+tx\+\_\+seq()}, \textbf{ rx\+\_\+lmi\+\_\+q933\+\_\+status()}, and \textbf{ rx\+\_\+lmi\+\_\+q933\+\_\+status\+\_\+enq()}.

\mbox{\label{structosmo__fr__link_a85e06e13528736e262cd742e73b0662f}} 
\index{osmo\_fr\_link@{osmo\_fr\_link}!list@{list}}
\index{list@{list}!osmo\_fr\_link@{osmo\_fr\_link}}
\doxysubsubsection{list}
{\footnotesize\ttfamily struct \textbf{ llist\+\_\+head} osmo\+\_\+fr\+\_\+link\+::list}



Referenced by \textbf{ osmo\+\_\+fr\+\_\+link\+\_\+alloc()}, and \textbf{ osmo\+\_\+fr\+\_\+link\+\_\+free()}.

\mbox{\label{structosmo__fr__link_a77ae2d93b56d5357e672e21207a165f2}} 
\index{osmo\_fr\_link@{osmo\_fr\_link}!name@{name}}
\index{name@{name}!osmo\_fr\_link@{osmo\_fr\_link}}
\doxysubsubsection{name}
{\footnotesize\ttfamily const char$\ast$ osmo\+\_\+fr\+\_\+link\+::name}



Referenced by \textbf{ fr\+\_\+link\+\_\+dump\+\_\+vty()}, and \textbf{ osmo\+\_\+fr\+\_\+link\+\_\+alloc()}.

\mbox{\label{structosmo__fr__link_a23a12f09b73836aff0b06ace28c3bf67}} 
\index{osmo\_fr\_link@{osmo\_fr\_link}!net@{net}}
\index{net@{net}!osmo\_fr\_link@{osmo\_fr\_link}}
\doxysubsubsection{net}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+fr\+\_\+network}$\ast$ osmo\+\_\+fr\+\_\+link\+::net}



Referenced by \textbf{ check\+\_\+link\+\_\+state()}, \textbf{ fr\+\_\+t391\+\_\+cb()}, \textbf{ fr\+\_\+t392\+\_\+cb()}, \textbf{ osmo\+\_\+fr\+\_\+link\+\_\+alloc()}, \textbf{ rx\+\_\+lmi\+\_\+q933\+\_\+status()}, and \textbf{ rx\+\_\+lmi\+\_\+q933\+\_\+status\+\_\+enq()}.

\mbox{\label{structosmo__fr__link_a0e63da028feb9b8240674fa4329645a9}} 
\index{osmo\_fr\_link@{osmo\_fr\_link}!polling\_count@{polling\_count}}
\index{polling\_count@{polling\_count}!osmo\_fr\_link@{osmo\_fr\_link}}
\doxysubsubsection{polling\_count}
{\footnotesize\ttfamily unsigned int osmo\+\_\+fr\+\_\+link\+::polling\+\_\+count}



Referenced by \textbf{ check\+\_\+link\+\_\+state()}, and \textbf{ fr\+\_\+t391\+\_\+cb()}.

\mbox{\label{structosmo__fr__link_a0d9fa40d9213da0fe0c830eae1e041f6}} 
\index{osmo\_fr\_link@{osmo\_fr\_link}!role@{role}}
\index{role@{role}!osmo\_fr\_link@{osmo\_fr\_link}}
\doxysubsubsection{role}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+fr\+\_\+role} osmo\+\_\+fr\+\_\+link\+::role}



Referenced by \textbf{ check\+\_\+link\+\_\+state()}, \textbf{ dump\+\_\+vty()}, \textbf{ fr\+\_\+link\+\_\+dump\+\_\+vty()}, \textbf{ gprs\+\_\+ns2\+\_\+fr\+\_\+bind\+\_\+role()}, \textbf{ osmo\+\_\+fr\+\_\+link\+\_\+alloc()}, \textbf{ rx\+\_\+lmi\+\_\+q933\+\_\+status()}, and \textbf{ rx\+\_\+lmi\+\_\+q933\+\_\+status\+\_\+enq()}.

\mbox{\label{structosmo__fr__link_a22b56bcb9991f6df20dcca45bb55f9f1}} 
\index{osmo\_fr\_link@{osmo\_fr\_link}!state@{state}}
\index{state@{state}!osmo\_fr\_link@{osmo\_fr\_link}}
\doxysubsubsection{state}
{\footnotesize\ttfamily bool osmo\+\_\+fr\+\_\+link\+::state}



Referenced by \textbf{ check\+\_\+link\+\_\+state()}, \textbf{ link\+\_\+set\+\_\+failed()}, \textbf{ osmo\+\_\+fr\+\_\+rx()}, \textbf{ osmo\+\_\+fr\+\_\+tx\+\_\+dlc()}, and \textbf{ rx\+\_\+lmi\+\_\+q933\+\_\+status\+\_\+enq()}.

\mbox{\label{structosmo__fr__link_a3e5c34f185e82ae5601570c8ec40418f}} 
\index{osmo\_fr\_link@{osmo\_fr\_link}!status\_cb@{status\_cb}}
\index{status\_cb@{status\_cb}!osmo\_fr\_link@{osmo\_fr\_link}}
\doxysubsubsection{status\_cb}
{\footnotesize\ttfamily void($\ast$ osmo\+\_\+fr\+\_\+link\+::status\+\_\+cb) (struct \textbf{ osmo\+\_\+fr\+\_\+link} $\ast$link, void $\ast$\textbf{ cb\+\_\+data}, bool active)}



Referenced by \textbf{ check\+\_\+link\+\_\+state()}, and \textbf{ link\+\_\+set\+\_\+failed()}.

\mbox{\label{structosmo__fr__link_aaee2ef9043aeec4b2777b7e5aec03165}} 
\index{osmo\_fr\_link@{osmo\_fr\_link}!succeed@{succeed}}
\index{succeed@{succeed}!osmo\_fr\_link@{osmo\_fr\_link}}
\doxysubsubsection{succeed}
{\footnotesize\ttfamily unsigned int osmo\+\_\+fr\+\_\+link\+::succeed}



Referenced by \textbf{ check\+\_\+link\+\_\+state()}.

\mbox{\label{structosmo__fr__link_ad5a549333be845a9ee15de67ad650400}} 
\index{osmo\_fr\_link@{osmo\_fr\_link}!t391@{t391}}
\index{t391@{t391}!osmo\_fr\_link@{osmo\_fr\_link}}
\doxysubsubsection{t391}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+timer\+\_\+list} osmo\+\_\+fr\+\_\+link\+::t391}



Referenced by \textbf{ fr\+\_\+t391\+\_\+cb()}, \textbf{ osmo\+\_\+fr\+\_\+link\+\_\+alloc()}, and \textbf{ osmo\+\_\+fr\+\_\+link\+\_\+free()}.

\mbox{\label{structosmo__fr__link_a860ceeeb12717df9c4e80890136cefb0}} 
\index{osmo\_fr\_link@{osmo\_fr\_link}!t392@{t392}}
\index{t392@{t392}!osmo\_fr\_link@{osmo\_fr\_link}}
\doxysubsubsection{t392}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+timer\+\_\+list} osmo\+\_\+fr\+\_\+link\+::t392}



Referenced by \textbf{ fr\+\_\+t392\+\_\+cb()}, \textbf{ osmo\+\_\+fr\+\_\+link\+\_\+alloc()}, \textbf{ osmo\+\_\+fr\+\_\+link\+\_\+free()}, \textbf{ rx\+\_\+lmi\+\_\+q933\+\_\+status()}, and \textbf{ rx\+\_\+lmi\+\_\+q933\+\_\+status\+\_\+enq()}.

\mbox{\label{structosmo__fr__link_a901164f3be914af77e3c238bc1a24704}} 
\index{osmo\_fr\_link@{osmo\_fr\_link}!tx\_cb@{tx\_cb}}
\index{tx\_cb@{tx\_cb}!osmo\_fr\_link@{osmo\_fr\_link}}
\doxysubsubsection{tx\_cb}
{\footnotesize\ttfamily int($\ast$ osmo\+\_\+fr\+\_\+link\+::tx\+\_\+cb) (void $\ast$\textbf{ data}, struct \textbf{ msgb} $\ast$\textbf{ msg})}



Referenced by \textbf{ gprs\+\_\+ns2\+\_\+fr\+\_\+bind()}, \textbf{ osmo\+\_\+fr\+\_\+tx\+\_\+dlc()}, \textbf{ tx\+\_\+lmi\+\_\+q933\+\_\+status()}, and \textbf{ tx\+\_\+lmi\+\_\+q933\+\_\+status\+\_\+enq()}.

\mbox{\label{structosmo__fr__link_aa3c8ccca4aa38dfe46c6c33fe6fc71b7}} 
\index{osmo\_fr\_link@{osmo\_fr\_link}!unknown\_dlc\_rx\_cb@{unknown\_dlc\_rx\_cb}}
\index{unknown\_dlc\_rx\_cb@{unknown\_dlc\_rx\_cb}!osmo\_fr\_link@{osmo\_fr\_link}}
\doxysubsubsection{unknown\_dlc\_rx\_cb}
{\footnotesize\ttfamily int($\ast$ osmo\+\_\+fr\+\_\+link\+::unknown\+\_\+dlc\+\_\+rx\+\_\+cb) (void $\ast$\textbf{ cb\+\_\+data}, struct \textbf{ msgb} $\ast$\textbf{ msg})}



Referenced by \textbf{ osmo\+\_\+fr\+\_\+rx()}.

\mbox{\label{structosmo__fr__link_ac3ccc561f28a7424495b973530b4de2a}} 
\index{osmo\_fr\_link@{osmo\_fr\_link}!unknown\_dlc\_rx\_cb\_data@{unknown\_dlc\_rx\_cb\_data}}
\index{unknown\_dlc\_rx\_cb\_data@{unknown\_dlc\_rx\_cb\_data}!osmo\_fr\_link@{osmo\_fr\_link}}
\doxysubsubsection{unknown\_dlc\_rx\_cb\_data}
{\footnotesize\ttfamily void$\ast$ osmo\+\_\+fr\+\_\+link\+::unknown\+\_\+dlc\+\_\+rx\+\_\+cb\+\_\+data}



Referenced by \textbf{ osmo\+\_\+fr\+\_\+rx()}.



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