\doxysection{osmo\+\_\+tundev Struct Reference}
\label{structosmo__tundev}\index{osmo\_tundev@{osmo\_tundev}}
\doxysubsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
char $\ast$ \textbf{ name}
\item 
struct \textbf{ osmo\+\_\+netdev} $\ast$ \textbf{ netdev}
\item 
unsigned int \textbf{ ifindex}
\item 
char $\ast$ \textbf{ dev\+\_\+name}
\item 
bool \textbf{ dev\+\_\+name\+\_\+dynamic}
\item 
struct \textbf{ osmo\+\_\+wqueue} \textbf{ wqueue}
\item 
char $\ast$ \textbf{ netns\+\_\+name}
\item 
void $\ast$ \textbf{ priv\+\_\+data}
\item 
\textbf{ osmo\+\_\+tundev\+\_\+data\+\_\+ind\+\_\+cb\+\_\+t} \textbf{ data\+\_\+ind\+\_\+cb}
\item 
bool \textbf{ opened}
\end{DoxyCompactItemize}


\doxysubsection{Field Documentation}
\mbox{\label{structosmo__tundev_ae6dfc3b2fdf86c3427877d4bac3e88f8}} 
\index{osmo\_tundev@{osmo\_tundev}!data\_ind\_cb@{data\_ind\_cb}}
\index{data\_ind\_cb@{data\_ind\_cb}!osmo\_tundev@{osmo\_tundev}}
\doxysubsubsection{data\_ind\_cb}
{\footnotesize\ttfamily \textbf{ osmo\+\_\+tundev\+\_\+data\+\_\+ind\+\_\+cb\+\_\+t} osmo\+\_\+tundev\+::data\+\_\+ind\+\_\+cb}



Referenced by \textbf{ osmo\+\_\+tundev\+\_\+set\+\_\+data\+\_\+ind\+\_\+cb()}, and \textbf{ tundev\+\_\+decaps()}.

\mbox{\label{structosmo__tundev_a467981acdc07e3a93e708541941f1762}} 
\index{osmo\_tundev@{osmo\_tundev}!dev\_name@{dev\_name}}
\index{dev\_name@{dev\_name}!osmo\_tundev@{osmo\_tundev}}
\doxysubsubsection{dev\_name}
{\footnotesize\ttfamily char$\ast$ osmo\+\_\+tundev\+::dev\+\_\+name}



Referenced by \textbf{ osmo\+\_\+tundev\+\_\+close()}, \textbf{ osmo\+\_\+tundev\+\_\+get\+\_\+dev\+\_\+name()}, \textbf{ osmo\+\_\+tundev\+\_\+set\+\_\+dev\+\_\+name()}, \textbf{ tundev\+\_\+dev\+\_\+name\+\_\+chg\+\_\+cb()}, and \textbf{ tundev\+\_\+open\+\_\+fd()}.

\mbox{\label{structosmo__tundev_a161b0f1ee8e68fcc4849630a3f37c2d4}} 
\index{osmo\_tundev@{osmo\_tundev}!dev\_name\_dynamic@{dev\_name\_dynamic}}
\index{dev\_name\_dynamic@{dev\_name\_dynamic}!osmo\_tundev@{osmo\_tundev}}
\doxysubsubsection{dev\_name\_dynamic}
{\footnotesize\ttfamily bool osmo\+\_\+tundev\+::dev\+\_\+name\+\_\+dynamic}



Referenced by \textbf{ osmo\+\_\+tundev\+\_\+close()}, \textbf{ osmo\+\_\+tundev\+\_\+set\+\_\+dev\+\_\+name()}, \textbf{ tundev\+\_\+dev\+\_\+name\+\_\+chg\+\_\+cb()}, and \textbf{ tundev\+\_\+open\+\_\+fd()}.

\mbox{\label{structosmo__tundev_a8fc81b152241a5993fffb5e990479157}} 
\index{osmo\_tundev@{osmo\_tundev}!ifindex@{ifindex}}
\index{ifindex@{ifindex}!osmo\_tundev@{osmo\_tundev}}
\doxysubsubsection{ifindex}
{\footnotesize\ttfamily unsigned int osmo\+\_\+tundev\+::ifindex}



Referenced by \textbf{ osmo\+\_\+tundev\+\_\+open()}, and \textbf{ tundev\+\_\+open\+\_\+fd()}.

\mbox{\label{structosmo__tundev_aa0b4ccb374776be8063d3a1be37306b4}} 
\index{osmo\_tundev@{osmo\_tundev}!name@{name}}
\index{name@{name}!osmo\_tundev@{osmo\_tundev}}
\doxysubsubsection{name}
{\footnotesize\ttfamily char$\ast$ osmo\+\_\+tundev\+::name}



Referenced by \textbf{ osmo\+\_\+tundev\+\_\+alloc()}, and \textbf{ osmo\+\_\+tundev\+\_\+get\+\_\+name()}.

\mbox{\label{structosmo__tundev_af90ea04f375c3de79307ba0445a36685}} 
\index{osmo\_tundev@{osmo\_tundev}!netdev@{netdev}}
\index{netdev@{netdev}!osmo\_tundev@{osmo\_tundev}}
\doxysubsubsection{netdev}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+netdev}$\ast$ osmo\+\_\+tundev\+::netdev}



Referenced by \textbf{ osmo\+\_\+tundev\+\_\+alloc()}, \textbf{ osmo\+\_\+tundev\+\_\+close()}, \textbf{ osmo\+\_\+tundev\+\_\+free()}, \textbf{ osmo\+\_\+tundev\+\_\+get\+\_\+netdev()}, \textbf{ osmo\+\_\+tundev\+\_\+open()}, \textbf{ tundev\+\_\+dev\+\_\+name\+\_\+chg\+\_\+cb()}, \textbf{ tundev\+\_\+ifupdown\+\_\+ind\+\_\+cb()}, and \textbf{ tundev\+\_\+mtu\+\_\+chg\+\_\+cb()}.

\mbox{\label{structosmo__tundev_a7afbcdc673eb6d20234bb07dd3ad8958}} 
\index{osmo\_tundev@{osmo\_tundev}!netns\_name@{netns\_name}}
\index{netns\_name@{netns\_name}!osmo\_tundev@{osmo\_tundev}}
\doxysubsubsection{netns\_name}
{\footnotesize\ttfamily char$\ast$ osmo\+\_\+tundev\+::netns\+\_\+name}



Referenced by \textbf{ osmo\+\_\+tundev\+\_\+get\+\_\+netns\+\_\+name()}, \textbf{ osmo\+\_\+tundev\+\_\+open()}, and \textbf{ osmo\+\_\+tundev\+\_\+set\+\_\+netns\+\_\+name()}.

\mbox{\label{structosmo__tundev_a9b0058eb7e90f447c058bbdc878893ea}} 
\index{osmo\_tundev@{osmo\_tundev}!opened@{opened}}
\index{opened@{opened}!osmo\_tundev@{osmo\_tundev}}
\doxysubsubsection{opened}
{\footnotesize\ttfamily bool osmo\+\_\+tundev\+::opened}



Referenced by \textbf{ osmo\+\_\+tundev\+\_\+close()}, \textbf{ osmo\+\_\+tundev\+\_\+is\+\_\+open()}, \textbf{ osmo\+\_\+tundev\+\_\+open()}, \textbf{ osmo\+\_\+tundev\+\_\+set\+\_\+dev\+\_\+name()}, and \textbf{ osmo\+\_\+tundev\+\_\+set\+\_\+netns\+\_\+name()}.

\mbox{\label{structosmo__tundev_a2a3249bd0b985ede44986980f44d8f0b}} 
\index{osmo\_tundev@{osmo\_tundev}!priv\_data@{priv\_data}}
\index{priv\_data@{priv\_data}!osmo\_tundev@{osmo\_tundev}}
\doxysubsubsection{priv\_data}
{\footnotesize\ttfamily void$\ast$ osmo\+\_\+tundev\+::priv\+\_\+data}



Referenced by \textbf{ osmo\+\_\+tundev\+\_\+get\+\_\+priv\+\_\+data()}, and \textbf{ osmo\+\_\+tundev\+\_\+set\+\_\+priv\+\_\+data()}.

\mbox{\label{structosmo__tundev_a82af8d259953165504b4bb484463c34c}} 
\index{osmo\_tundev@{osmo\_tundev}!wqueue@{wqueue}}
\index{wqueue@{wqueue}!osmo\_tundev@{osmo\_tundev}}
\doxysubsubsection{wqueue}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+wqueue} osmo\+\_\+tundev\+::wqueue}



Referenced by \textbf{ osmo\+\_\+tundev\+\_\+alloc()}, \textbf{ osmo\+\_\+tundev\+\_\+close()}, \textbf{ osmo\+\_\+tundev\+\_\+get\+\_\+fd()}, \textbf{ osmo\+\_\+tundev\+\_\+open()}, \textbf{ osmo\+\_\+tundev\+\_\+send()}, \textbf{ tundev\+\_\+decaps()}, \textbf{ tundev\+\_\+ifupdown\+\_\+ind\+\_\+cb()}, and \textbf{ tundev\+\_\+write\+\_\+cb()}.



The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
src/core/\textbf{ tun.\+c}\end{DoxyCompactItemize}
