\doxysection{include/osmocom/gprs/frame\+\_\+relay.h File Reference}
\label{frame__relay_8h}\index{include/osmocom/gprs/frame\_relay.h@{include/osmocom/gprs/frame\_relay.h}}
{\ttfamily \#include $<$osmocom/core/linuxlist.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/timer.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/utils.\+h$>$}\newline
{\ttfamily \#include $<$stdint.\+h$>$}\newline
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ osmo\+\_\+fr\+\_\+network}
\item 
struct \textbf{ osmo\+\_\+fr\+\_\+link}
\item 
struct \textbf{ osmo\+\_\+fr\+\_\+dlc}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ FRAME\+\_\+\+RELAY\+\_\+\+MTU}~1600
\item 
\#define \textbf{ FRAME\+\_\+\+RELAY\+\_\+\+SDU}~(\textbf{ FRAME\+\_\+\+RELAY\+\_\+\+MTU} -\/ 2)
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \textbf{ osmo\+\_\+fr\+\_\+role} \{ \newline
\textbf{ FR\+\_\+\+ROLE\+\_\+\+USER\+\_\+\+EQUIPMENT}
, \newline
\textbf{ FR\+\_\+\+ROLE\+\_\+\+NETWORK\+\_\+\+EQUIPMENT}
 \}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
static const char $\ast$ \textbf{ osmo\+\_\+fr\+\_\+role\+\_\+str} (enum \textbf{ osmo\+\_\+fr\+\_\+role} role)
\item 
struct \textbf{ osmo\+\_\+fr\+\_\+network} $\ast$ \textbf{ osmo\+\_\+fr\+\_\+network\+\_\+alloc} (void $\ast$ctx)
\item 
void \textbf{ osmo\+\_\+fr\+\_\+network\+\_\+free} (struct \textbf{ osmo\+\_\+fr\+\_\+network} $\ast$\textbf{ net})
\item 
void \textbf{ osmo\+\_\+fr\+\_\+network\+\_\+dump\+\_\+vty} (struct \textbf{ vty} $\ast$\textbf{ vty}, const struct \textbf{ osmo\+\_\+fr\+\_\+network} $\ast$\textbf{ net})
\item 
struct \textbf{ osmo\+\_\+fr\+\_\+link} $\ast$ \textbf{ osmo\+\_\+fr\+\_\+link\+\_\+alloc} (struct \textbf{ osmo\+\_\+fr\+\_\+network} $\ast$\textbf{ net}, enum \textbf{ osmo\+\_\+fr\+\_\+role} role, const char $\ast$\textbf{ name})
\item 
void \textbf{ osmo\+\_\+fr\+\_\+link\+\_\+free} (struct \textbf{ osmo\+\_\+fr\+\_\+link} $\ast$link)
\item 
struct \textbf{ osmo\+\_\+fr\+\_\+dlc} $\ast$ \textbf{ osmo\+\_\+fr\+\_\+dlc\+\_\+alloc} (struct \textbf{ osmo\+\_\+fr\+\_\+link} $\ast$link, uint16\+\_\+t dlci)
\item 
void \textbf{ osmo\+\_\+fr\+\_\+dlc\+\_\+free} (struct \textbf{ osmo\+\_\+fr\+\_\+dlc} $\ast$dlc)
\item 
struct \textbf{ osmo\+\_\+fr\+\_\+dlc} $\ast$ \textbf{ osmo\+\_\+fr\+\_\+dlc\+\_\+by\+\_\+dlci} (struct \textbf{ osmo\+\_\+fr\+\_\+link} $\ast$link, uint16\+\_\+t dlci)
\item 
int \textbf{ osmo\+\_\+fr\+\_\+rx} (struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
int \textbf{ osmo\+\_\+fr\+\_\+tx\+\_\+dlc} (struct \textbf{ msgb} $\ast$\textbf{ msg})
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
const struct \textbf{ value\+\_\+string} \textbf{ osmo\+\_\+fr\+\_\+role\+\_\+names} [$\,$]
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\label{frame__relay_8h_a48472829f7e6bfc5437ebc91d8174d10}} 
\index{frame\_relay.h@{frame\_relay.h}!FRAME\_RELAY\_MTU@{FRAME\_RELAY\_MTU}}
\index{FRAME\_RELAY\_MTU@{FRAME\_RELAY\_MTU}!frame\_relay.h@{frame\_relay.h}}
\doxysubsubsection{FRAME\_RELAY\_MTU}
{\footnotesize\ttfamily \#define FRAME\+\_\+\+RELAY\+\_\+\+MTU~1600}

\mbox{\label{frame__relay_8h_aa8319e8474e14850622b73a401ccd1c3}} 
\index{frame\_relay.h@{frame\_relay.h}!FRAME\_RELAY\_SDU@{FRAME\_RELAY\_SDU}}
\index{FRAME\_RELAY\_SDU@{FRAME\_RELAY\_SDU}!frame\_relay.h@{frame\_relay.h}}
\doxysubsubsection{FRAME\_RELAY\_SDU}
{\footnotesize\ttfamily \#define FRAME\+\_\+\+RELAY\+\_\+\+SDU~(\textbf{ FRAME\+\_\+\+RELAY\+\_\+\+MTU} -\/ 2)}



\doxysubsection{Enumeration Type Documentation}
\mbox{\label{frame__relay_8h_a7785a8fcc8e70e37fc143df8f8f3e07c}} 
\index{frame\_relay.h@{frame\_relay.h}!osmo\_fr\_role@{osmo\_fr\_role}}
\index{osmo\_fr\_role@{osmo\_fr\_role}!frame\_relay.h@{frame\_relay.h}}
\doxysubsubsection{osmo\_fr\_role}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+fr\+\_\+role}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{FR\_ROLE\_USER\_EQUIPMENT@{FR\_ROLE\_USER\_EQUIPMENT}!frame\_relay.h@{frame\_relay.h}}\index{frame\_relay.h@{frame\_relay.h}!FR\_ROLE\_USER\_EQUIPMENT@{FR\_ROLE\_USER\_EQUIPMENT}}}\mbox{\label{frame__relay_8h_a7785a8fcc8e70e37fc143df8f8f3e07cad09814727fe6196ec38b43e5f9449e7b}} 
FR\+\_\+\+ROLE\+\_\+\+USER\+\_\+\+EQUIPMENT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{FR\_ROLE\_NETWORK\_EQUIPMENT@{FR\_ROLE\_NETWORK\_EQUIPMENT}!frame\_relay.h@{frame\_relay.h}}\index{frame\_relay.h@{frame\_relay.h}!FR\_ROLE\_NETWORK\_EQUIPMENT@{FR\_ROLE\_NETWORK\_EQUIPMENT}}}\mbox{\label{frame__relay_8h_a7785a8fcc8e70e37fc143df8f8f3e07ca577bd6eb97a56aeb4b4c41b8ebe8275b}} 
FR\+\_\+\+ROLE\+\_\+\+NETWORK\+\_\+\+EQUIPMENT&\\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\mbox{\label{frame__relay_8h_a01800b646f871bab7e32fc489111f93a}} 
\index{frame\_relay.h@{frame\_relay.h}!osmo\_fr\_dlc\_alloc@{osmo\_fr\_dlc\_alloc}}
\index{osmo\_fr\_dlc\_alloc@{osmo\_fr\_dlc\_alloc}!frame\_relay.h@{frame\_relay.h}}
\doxysubsubsection{osmo\_fr\_dlc\_alloc()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+fr\+\_\+dlc} $\ast$ osmo\+\_\+fr\+\_\+dlc\+\_\+alloc (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+fr\+\_\+link} $\ast$}]{link,  }\item[{uint16\+\_\+t}]{dlci }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+fr\+\_\+dlc\+::active}, \textbf{ osmo\+\_\+fr\+\_\+dlc\+::add}, \textbf{ osmo\+\_\+fr\+\_\+link\+::dlc\+\_\+list}, \textbf{ osmo\+\_\+fr\+\_\+dlc\+::dlci}, \textbf{ osmo\+\_\+fr\+\_\+dlc\+::link}, \textbf{ osmo\+\_\+fr\+\_\+dlc\+::list}, \textbf{ llist\+\_\+add\+\_\+tail()}, \textbf{ Q933\+\_\+\+REPT\+\_\+\+SINGLE\+\_\+\+PVC\+\_\+\+ASYNC\+\_\+\+STS}, and \textbf{ tx\+\_\+lmi\+\_\+q933\+\_\+status()}.



Referenced by \textbf{ fr\+\_\+alloc\+\_\+vc()}, \textbf{ parse\+\_\+full\+\_\+pvc\+\_\+status()}, and \textbf{ parse\+\_\+link\+\_\+pvc\+\_\+status()}.

\mbox{\label{frame__relay_8h_ac41b5316fd736925013464db29acd7ee}} 
\index{frame\_relay.h@{frame\_relay.h}!osmo\_fr\_dlc\_by\_dlci@{osmo\_fr\_dlc\_by\_dlci}}
\index{osmo\_fr\_dlc\_by\_dlci@{osmo\_fr\_dlc\_by\_dlci}!frame\_relay.h@{frame\_relay.h}}
\doxysubsubsection{osmo\_fr\_dlc\_by\_dlci()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+fr\+\_\+dlc} $\ast$ osmo\+\_\+fr\+\_\+dlc\+\_\+by\+\_\+dlci (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+fr\+\_\+link} $\ast$}]{link,  }\item[{uint16\+\_\+t}]{dlci }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+fr\+\_\+link\+::dlc\+\_\+list}, \textbf{ osmo\+\_\+fr\+\_\+dlc\+::dlci}, \textbf{ osmo\+\_\+fr\+\_\+dlc\+::link}, \textbf{ list}, and \textbf{ llist\+\_\+for\+\_\+each\+\_\+entry}.



Referenced by \textbf{ osmo\+\_\+fr\+\_\+rx()}, \textbf{ parse\+\_\+full\+\_\+pvc\+\_\+status()}, and \textbf{ parse\+\_\+link\+\_\+pvc\+\_\+status()}.

\mbox{\label{frame__relay_8h_a3c50da2c7ad055b10b7d940a69098298}} 
\index{frame\_relay.h@{frame\_relay.h}!osmo\_fr\_dlc\_free@{osmo\_fr\_dlc\_free}}
\index{osmo\_fr\_dlc\_free@{osmo\_fr\_dlc\_free}!frame\_relay.h@{frame\_relay.h}}
\doxysubsubsection{osmo\_fr\_dlc\_free()}
{\footnotesize\ttfamily void osmo\+\_\+fr\+\_\+dlc\+\_\+free (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+fr\+\_\+dlc} $\ast$}]{dlc }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+fr\+\_\+dlc\+::list}, and \textbf{ llist\+\_\+del()}.



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

\mbox{\label{frame__relay_8h_aa1fb3d9049f75ae0bac69574e426357c}} 
\index{frame\_relay.h@{frame\_relay.h}!osmo\_fr\_link\_alloc@{osmo\_fr\_link\_alloc}}
\index{osmo\_fr\_link\_alloc@{osmo\_fr\_link\_alloc}!frame\_relay.h@{frame\_relay.h}}
\doxysubsubsection{osmo\_fr\_link\_alloc()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+fr\+\_\+link} $\ast$ osmo\+\_\+fr\+\_\+link\+\_\+alloc (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+fr\+\_\+network} $\ast$}]{net,  }\item[{enum \textbf{ osmo\+\_\+fr\+\_\+role}}]{role,  }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+fr\+\_\+link\+::dlc\+\_\+list}, \textbf{ FR\+\_\+\+ROLE\+\_\+\+NETWORK\+\_\+\+EQUIPMENT}, \textbf{ FR\+\_\+\+ROLE\+\_\+\+USER\+\_\+\+EQUIPMENT}, \textbf{ fr\+\_\+t391\+\_\+cb()}, \textbf{ fr\+\_\+t392\+\_\+cb()}, \textbf{ INIT\+\_\+\+LLIST\+\_\+\+HEAD}, \textbf{ osmo\+\_\+fr\+\_\+link\+::list}, \textbf{ llist\+\_\+add\+\_\+tail()}, \textbf{ LOGL\+\_\+\+INFO}, \textbf{ LOGPFRL}, \textbf{ name}, \textbf{ osmo\+\_\+fr\+\_\+link\+::name}, \textbf{ net}, \textbf{ osmo\+\_\+fr\+\_\+link\+::net}, \textbf{ osmo\+\_\+fr\+\_\+role\+\_\+str()}, \textbf{ osmo\+\_\+tdef\+\_\+get()}, \textbf{ OSMO\+\_\+\+TDEF\+\_\+S}, \textbf{ osmo\+\_\+timer\+\_\+schedule()}, \textbf{ osmo\+\_\+timer\+\_\+setup()}, \textbf{ osmo\+\_\+fr\+\_\+link\+::role}, \textbf{ osmo\+\_\+fr\+\_\+link\+::t391}, \textbf{ osmo\+\_\+fr\+\_\+link\+::t392}, and \textbf{ osmo\+\_\+fr\+\_\+network\+::\+T\+\_\+defs}.



Referenced by \textbf{ gprs\+\_\+ns2\+\_\+fr\+\_\+bind()}.

\mbox{\label{frame__relay_8h_aa64cf661d63a8fb5405ba2475f2708b6}} 
\index{frame\_relay.h@{frame\_relay.h}!osmo\_fr\_link\_free@{osmo\_fr\_link\_free}}
\index{osmo\_fr\_link\_free@{osmo\_fr\_link\_free}!frame\_relay.h@{frame\_relay.h}}
\doxysubsubsection{osmo\_fr\_link\_free()}
{\footnotesize\ttfamily void osmo\+\_\+fr\+\_\+link\+\_\+free (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+fr\+\_\+link} $\ast$}]{link }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+fr\+\_\+link\+::dlc\+\_\+list}, \textbf{ osmo\+\_\+fr\+\_\+dlc\+::link}, \textbf{ list}, \textbf{ osmo\+\_\+fr\+\_\+link\+::list}, \textbf{ llist\+\_\+del()}, \textbf{ llist\+\_\+for\+\_\+each\+\_\+entry\+\_\+safe}, \textbf{ osmo\+\_\+fr\+\_\+dlc\+\_\+free()}, \textbf{ osmo\+\_\+timer\+\_\+del()}, \textbf{ osmo\+\_\+fr\+\_\+link\+::t391}, and \textbf{ osmo\+\_\+fr\+\_\+link\+::t392}.



Referenced by \textbf{ free\+\_\+bind()}, \textbf{ gprs\+\_\+ns2\+\_\+fr\+\_\+bind()}, and \textbf{ osmo\+\_\+fr\+\_\+network\+\_\+free()}.

\mbox{\label{frame__relay_8h_a8372e8211744d6cad0c9a8c219b38275}} 
\index{frame\_relay.h@{frame\_relay.h}!osmo\_fr\_network\_alloc@{osmo\_fr\_network\_alloc}}
\index{osmo\_fr\_network\_alloc@{osmo\_fr\_network\_alloc}!frame\_relay.h@{frame\_relay.h}}
\doxysubsubsection{osmo\_fr\_network\_alloc()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+fr\+\_\+network} $\ast$ osmo\+\_\+fr\+\_\+network\+\_\+alloc (\begin{DoxyParamCaption}\item[{void $\ast$}]{ctx }\end{DoxyParamCaption})}



References \textbf{ fr\+\_\+tdefs}, \textbf{ INIT\+\_\+\+LLIST\+\_\+\+HEAD}, \textbf{ net}, and \textbf{ osmo\+\_\+tdefs\+\_\+reset()}.



Referenced by \textbf{ gprs\+\_\+ns2\+\_\+vty\+\_\+init\+\_\+reduced()}.

\mbox{\label{frame__relay_8h_a2e521648caaa714c621bc790aa32418c}} 
\index{frame\_relay.h@{frame\_relay.h}!osmo\_fr\_network\_dump\_vty@{osmo\_fr\_network\_dump\_vty}}
\index{osmo\_fr\_network\_dump\_vty@{osmo\_fr\_network\_dump\_vty}!frame\_relay.h@{frame\_relay.h}}
\doxysubsubsection{osmo\_fr\_network\_dump\_vty()}
{\footnotesize\ttfamily void osmo\+\_\+fr\+\_\+network\+\_\+dump\+\_\+vty (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty,  }\item[{const struct \textbf{ osmo\+\_\+fr\+\_\+network} $\ast$}]{net }\end{DoxyParamCaption})}



References \textbf{ fr\+\_\+link\+\_\+dump\+\_\+vty()}, \textbf{ list}, \textbf{ llist\+\_\+for\+\_\+each\+\_\+entry}, \textbf{ net}, \textbf{ osmo\+\_\+tdef\+\_\+vty\+\_\+out\+\_\+all()}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.



Referenced by \textbf{ DEFUN\+\_\+\+HIDDEN()}.

\mbox{\label{frame__relay_8h_aae696c1d6c6715342fd50f8a78b16ac6}} 
\index{frame\_relay.h@{frame\_relay.h}!osmo\_fr\_network\_free@{osmo\_fr\_network\_free}}
\index{osmo\_fr\_network\_free@{osmo\_fr\_network\_free}!frame\_relay.h@{frame\_relay.h}}
\doxysubsubsection{osmo\_fr\_network\_free()}
{\footnotesize\ttfamily void osmo\+\_\+fr\+\_\+network\+\_\+free (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+fr\+\_\+network} $\ast$}]{net }\end{DoxyParamCaption})}



References \textbf{ list}, \textbf{ llist\+\_\+for\+\_\+each\+\_\+entry\+\_\+safe}, \textbf{ net}, and \textbf{ osmo\+\_\+fr\+\_\+link\+\_\+free()}.

\mbox{\label{frame__relay_8h_a1682e642674e1a8e4da1b4a03e7c7fa2}} 
\index{frame\_relay.h@{frame\_relay.h}!osmo\_fr\_role\_str@{osmo\_fr\_role\_str}}
\index{osmo\_fr\_role\_str@{osmo\_fr\_role\_str}!frame\_relay.h@{frame\_relay.h}}
\doxysubsubsection{osmo\_fr\_role\_str()}
{\footnotesize\ttfamily static const char $\ast$ osmo\+\_\+fr\+\_\+role\+\_\+str (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+fr\+\_\+role}}]{role }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ get\+\_\+value\+\_\+string()}, and \textbf{ osmo\+\_\+fr\+\_\+role\+\_\+names}.



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

\mbox{\label{frame__relay_8h_ae2e93052b9e36bf116e394f7578214a1}} 
\index{frame\_relay.h@{frame\_relay.h}!osmo\_fr\_rx@{osmo\_fr\_rx}}
\index{osmo\_fr\_rx@{osmo\_fr\_rx}!frame\_relay.h@{frame\_relay.h}}
\doxysubsubsection{osmo\_fr\_rx()}
{\footnotesize\ttfamily int osmo\+\_\+fr\+\_\+rx (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+fr\+\_\+dlc\+::active}, \textbf{ osmo\+\_\+fr\+\_\+dlc\+::cb\+\_\+data}, \textbf{ LMI\+\_\+\+CISCO\+\_\+\+DLCI}, \textbf{ LMI\+\_\+\+Q933\+A\+\_\+\+DLCI}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGPFRL}, \textbf{ msg}, \textbf{ msgb\+\_\+data()}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+length()}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ osmo\+\_\+fr\+\_\+dlc\+\_\+by\+\_\+dlci()}, \textbf{ q922\+\_\+to\+\_\+dlci()}, \textbf{ osmo\+\_\+fr\+\_\+dlc\+::rx\+\_\+cb}, \textbf{ rx\+\_\+lmi\+\_\+q922()}, \textbf{ osmo\+\_\+fr\+\_\+link\+::state}, \textbf{ osmo\+\_\+fr\+\_\+link\+::unknown\+\_\+dlc\+\_\+rx\+\_\+cb}, and \textbf{ osmo\+\_\+fr\+\_\+link\+::unknown\+\_\+dlc\+\_\+rx\+\_\+cb\+\_\+data}.



Referenced by \textbf{ fr\+\_\+netif\+\_\+ofd\+\_\+cb()}.

\mbox{\label{frame__relay_8h_a5aef782a8787b0d0f1cd4a67cdf7bc83}} 
\index{frame\_relay.h@{frame\_relay.h}!osmo\_fr\_tx\_dlc@{osmo\_fr\_tx\_dlc}}
\index{osmo\_fr\_tx\_dlc@{osmo\_fr\_tx\_dlc}!frame\_relay.h@{frame\_relay.h}}
\doxysubsubsection{osmo\_fr\_tx\_dlc()}
{\footnotesize\ttfamily int osmo\+\_\+fr\+\_\+tx\+\_\+dlc (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+fr\+\_\+dlc\+::active}, \textbf{ osmo\+\_\+fr\+\_\+link\+::cb\+\_\+data}, \textbf{ osmo\+\_\+fr\+\_\+dlc\+::dlci}, \textbf{ dlci\+\_\+to\+\_\+q922()}, \textbf{ osmo\+\_\+fr\+\_\+dlc\+::link}, \textbf{ LOGL\+\_\+\+DEBUG}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGPFRL}, \textbf{ msg}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+headroom()}, \textbf{ msgb\+\_\+push()}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ osmo\+\_\+fr\+\_\+link\+::state}, and \textbf{ osmo\+\_\+fr\+\_\+link\+::tx\+\_\+cb}.



Referenced by \textbf{ fr\+\_\+vc\+\_\+sendmsg()}.



\doxysubsection{Variable Documentation}
\mbox{\label{frame__relay_8h_a8162b9511bf7ca7d137c9b76780589a7}} 
\index{frame\_relay.h@{frame\_relay.h}!osmo\_fr\_role\_names@{osmo\_fr\_role\_names}}
\index{osmo\_fr\_role\_names@{osmo\_fr\_role\_names}!frame\_relay.h@{frame\_relay.h}}
\doxysubsubsection{osmo\_fr\_role\_names}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} osmo\+\_\+fr\+\_\+role\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



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

