\doxysection{gprs\+\_\+nsvc Struct Reference}
\label{structgprs__nsvc}\index{gprs\_nsvc@{gprs\_nsvc}}


Structure representing a single NS-\/\+VC.  




{\ttfamily \#include $<$gprs\+\_\+ns.\+h$>$}

\doxysubsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ llist\+\_\+head} \textbf{ list}
\begin{DoxyCompactList}\small\item\em list of NS-\/\+VCs within NS Instance \end{DoxyCompactList}\item 
struct \textbf{ gprs\+\_\+ns\+\_\+inst} $\ast$ \textbf{ nsi}
\begin{DoxyCompactList}\small\item\em pointer to NS Instance \end{DoxyCompactList}\item 
uint16\+\_\+t \textbf{ nsei}
\item 
uint16\+\_\+t \textbf{ nsvci}
\begin{DoxyCompactList}\small\item\em end-\/to-\/end significance \end{DoxyCompactList}\item 
uint32\+\_\+t \textbf{ state}
\begin{DoxyCompactList}\small\item\em uniquely identifies NS-\/\+VC at SGSN \end{DoxyCompactList}\item 
uint32\+\_\+t \textbf{ remote\+\_\+state}
\item 
struct \textbf{ osmo\+\_\+timer\+\_\+list} \textbf{ timer}
\item 
enum \textbf{ nsvc\+\_\+timer\+\_\+mode} \textbf{ timer\+\_\+mode}
\item 
struct timeval \textbf{ timer\+\_\+started}
\item 
int \textbf{ alive\+\_\+retries}
\item 
unsigned int \textbf{ remote\+\_\+end\+\_\+is\+\_\+sgsn}\+:1
\item 
unsigned int \textbf{ persistent}\+:1
\item 
unsigned int \textbf{ nsvci\+\_\+is\+\_\+valid}\+:1
\item 
struct \textbf{ rate\+\_\+ctr\+\_\+group} $\ast$ \textbf{ ctrg}
\item 
struct \textbf{ osmo\+\_\+stat\+\_\+item\+\_\+group} $\ast$ \textbf{ statg}
\item 
enum \textbf{ gprs\+\_\+ns\+\_\+ll} \textbf{ ll}
\begin{DoxyCompactList}\small\item\em which link-\/layer are we based on? \end{DoxyCompactList}\item 
\begin{tabbing}
xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill
union \{\\
\>struct \{\\
\>\>struct sockaddr\_in \textbf{ bts\_addr}\\
\>\} \textbf{ ip}\\
\>struct \{\\
\>\>struct sockaddr\_in \textbf{ bts\_addr}\\
\>\} \textbf{ frgre}\\
\}; \\

\end{tabbing}\begin{DoxyCompactList}\small\item\em make sure to always keep bts\+\_\+addr as first struct member to not break the assumption that those structs are similar \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ sig\+\_\+weight}
\begin{DoxyCompactList}\small\item\em signalling weight. \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ data\+\_\+weight}
\begin{DoxyCompactList}\small\item\em signaling weight. \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Structure representing a single NS-\/\+VC. 

\doxysubsection{Field Documentation}
\mbox{\label{structgprs__nsvc_a8b515a87802efde02a044a8ceea2d3c5}} 
\doxysubsubsection{}
{\footnotesize\ttfamily union  \{ ... \}  gprs\+\_\+nsvc\+::@17}



make sure to always keep bts\+\_\+addr as first struct member to not break the assumption that those structs are similar 

\mbox{\label{structgprs__nsvc_a5f7df9c3475db22c82a1e9798d996579}} 
\index{gprs\_nsvc@{gprs\_nsvc}!alive\_retries@{alive\_retries}}
\index{alive\_retries@{alive\_retries}!gprs\_nsvc@{gprs\_nsvc}}
\doxysubsubsection{alive\_retries}
{\footnotesize\ttfamily int gprs\+\_\+nsvc\+::alive\+\_\+retries}



Referenced by \textbf{ gprs\+\_\+ns\+\_\+timer\+\_\+cb()}.

\mbox{\label{structgprs__nsvc_a5c0d9dbc585a571dbe65899f5b31e9e8}} 
\index{gprs\_nsvc@{gprs\_nsvc}!bts\_addr@{bts\_addr}}
\index{bts\_addr@{bts\_addr}!gprs\_nsvc@{gprs\_nsvc}}
\doxysubsubsection{bts\_addr}
{\footnotesize\ttfamily struct sockaddr\+\_\+in gprs\+\_\+nsvc\+::bts\+\_\+addr}



Referenced by \textbf{ config\+\_\+write\+\_\+ns()}, \textbf{ DEFUN()}, \textbf{ dump\+\_\+nse()}, \textbf{ gprs\+\_\+ns\+\_\+frgre\+\_\+sendmsg()}, \textbf{ gprs\+\_\+ns\+\_\+ll\+\_\+clear()}, \textbf{ gprs\+\_\+ns\+\_\+ll\+\_\+str\+\_\+buf()}, \textbf{ gprs\+\_\+ns\+\_\+nsip\+\_\+connect()}, \textbf{ gprs\+\_\+ns\+\_\+nsip\+\_\+connect\+\_\+sns()}, \textbf{ gprs\+\_\+ns\+\_\+rcvmsg()}, \textbf{ gprs\+\_\+nsvc\+\_\+by\+\_\+rem\+\_\+addr()}, \textbf{ gprs\+\_\+sns\+\_\+bss\+\_\+fsm\+\_\+alloc()}, and \textbf{ nsip\+\_\+sendmsg()}.

\mbox{\label{structgprs__nsvc_afba1110a9f25945d68b1141a76de69c3}} 
\index{gprs\_nsvc@{gprs\_nsvc}!ctrg@{ctrg}}
\index{ctrg@{ctrg}!gprs\_nsvc@{gprs\_nsvc}}
\doxysubsubsection{ctrg}
{\footnotesize\ttfamily struct \textbf{ rate\+\_\+ctr\+\_\+group}$\ast$ gprs\+\_\+nsvc\+::ctrg}



Referenced by \textbf{ dump\+\_\+nse()}, \textbf{ gprs\+\_\+ns\+\_\+rx\+\_\+block()}, \textbf{ gprs\+\_\+ns\+\_\+timer\+\_\+cb()}, \textbf{ gprs\+\_\+ns\+\_\+tx()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+block()}, \textbf{ gprs\+\_\+nsvc\+\_\+create2()}, and \textbf{ gprs\+\_\+nsvc\+\_\+delete()}.

\mbox{\label{structgprs__nsvc_adb7d606e101fca3bfdf8ae1bedac6fde}} 
\index{gprs\_nsvc@{gprs\_nsvc}!data\_weight@{data\_weight}}
\index{data\_weight@{data\_weight}!gprs\_nsvc@{gprs\_nsvc}}
\doxysubsubsection{data\_weight}
{\footnotesize\ttfamily uint8\+\_\+t gprs\+\_\+nsvc\+::data\+\_\+weight}



signaling weight. 

0 = don\textquotesingle{}t use for user data (BVCI != 0) 

Referenced by \textbf{ create\+\_\+missing\+\_\+nsvcs()}, \textbf{ do\+\_\+sns\+\_\+add()}, \textbf{ do\+\_\+sns\+\_\+change\+\_\+weight()}, \textbf{ gprs\+\_\+active\+\_\+nsvc\+\_\+by\+\_\+nsei()}, \textbf{ gprs\+\_\+nsvc\+\_\+create2()}, and \textbf{ nsvc\+\_\+is\+\_\+not\+\_\+used()}.

\mbox{\label{structgprs__nsvc_a8121ca00c748ce9ac8386341b186888b}} 
\index{gprs\_nsvc@{gprs\_nsvc}!frgre@{frgre}}
\index{frgre@{frgre}!gprs\_nsvc@{gprs\_nsvc}}
\doxysubsubsection{}
{\footnotesize\ttfamily struct  \{ ... \}  gprs\+\_\+nsvc\+::frgre}



Referenced by \textbf{ config\+\_\+write\+\_\+ns()}, \textbf{ DEFUN()}, \textbf{ gprs\+\_\+ns\+\_\+frgre\+\_\+sendmsg()}, \textbf{ gprs\+\_\+ns\+\_\+ll\+\_\+clear()}, \textbf{ gprs\+\_\+ns\+\_\+ll\+\_\+copy()}, and \textbf{ gprs\+\_\+ns\+\_\+ll\+\_\+str\+\_\+buf()}.

\mbox{\label{structgprs__nsvc_abfc1b49e5805850332c037ee49fb70ad}} 
\index{gprs\_nsvc@{gprs\_nsvc}!ip@{ip}}
\index{ip@{ip}!gprs\_nsvc@{gprs\_nsvc}}
\doxysubsubsection{}
{\footnotesize\ttfamily struct  \{ ... \}  gprs\+\_\+nsvc\+::ip}



Referenced by \textbf{ config\+\_\+write\+\_\+ns()}, \textbf{ DEFUN()}, \textbf{ dump\+\_\+nse()}, \textbf{ gprs\+\_\+ns\+\_\+ll\+\_\+clear()}, \textbf{ gprs\+\_\+ns\+\_\+ll\+\_\+copy()}, \textbf{ gprs\+\_\+ns\+\_\+ll\+\_\+str\+\_\+buf()}, \textbf{ gprs\+\_\+ns\+\_\+nsip\+\_\+connect()}, \textbf{ gprs\+\_\+ns\+\_\+nsip\+\_\+connect\+\_\+sns()}, \textbf{ gprs\+\_\+ns\+\_\+rcvmsg()}, \textbf{ gprs\+\_\+nsvc\+\_\+by\+\_\+rem\+\_\+addr()}, \textbf{ gprs\+\_\+sns\+\_\+bss\+\_\+fsm\+\_\+alloc()}, and \textbf{ nsip\+\_\+sendmsg()}.

\mbox{\label{structgprs__nsvc_abda5e73ef33340cfcbab5fe64fadb9f6}} 
\index{gprs\_nsvc@{gprs\_nsvc}!list@{list}}
\index{list@{list}!gprs\_nsvc@{gprs\_nsvc}}
\doxysubsubsection{list}
{\footnotesize\ttfamily struct \textbf{ llist\+\_\+head} gprs\+\_\+nsvc\+::list}



list of NS-\/\+VCs within NS Instance 



Referenced by \textbf{ gprs\+\_\+ns\+\_\+instantiate()}, \textbf{ gprs\+\_\+nsvc\+\_\+create2()}, and \textbf{ gprs\+\_\+nsvc\+\_\+delete()}.

\mbox{\label{structgprs__nsvc_a2a4e15c9fe5205334f98ad9e9c953c47}} 
\index{gprs\_nsvc@{gprs\_nsvc}!ll@{ll}}
\index{ll@{ll}!gprs\_nsvc@{gprs\_nsvc}}
\doxysubsubsection{ll}
{\footnotesize\ttfamily enum \textbf{ gprs\+\_\+ns\+\_\+ll} gprs\+\_\+nsvc\+::ll}



which link-\/layer are we based on? 



Referenced by \textbf{ config\+\_\+write\+\_\+ns()}, \textbf{ DEFUN()}, \textbf{ dump\+\_\+nse()}, \textbf{ gprs\+\_\+ns\+\_\+ll\+\_\+clear()}, \textbf{ gprs\+\_\+ns\+\_\+ll\+\_\+copy()}, \textbf{ gprs\+\_\+ns\+\_\+ll\+\_\+str\+\_\+buf()}, \textbf{ gprs\+\_\+ns\+\_\+rcvmsg()}, and \textbf{ gprs\+\_\+ns\+\_\+tx()}.

\mbox{\label{structgprs__nsvc_aedf7b778cce510a0621d8aad9e91e052}} 
\index{gprs\_nsvc@{gprs\_nsvc}!nsei@{nsei}}
\index{nsei@{nsei}!gprs\_nsvc@{gprs\_nsvc}}
\doxysubsubsection{nsei}
{\footnotesize\ttfamily uint16\+\_\+t gprs\+\_\+nsvc\+::nsei}



Referenced by \textbf{ config\+\_\+write\+\_\+ns()}, \textbf{ DEFUN()}, \textbf{ dump\+\_\+nse()}, \textbf{ gprs\+\_\+active\+\_\+nsvc\+\_\+by\+\_\+nsei()}, \textbf{ gprs\+\_\+ns\+\_\+nsip\+\_\+connect()}, \textbf{ gprs\+\_\+ns\+\_\+nsip\+\_\+connect\+\_\+sns()}, \textbf{ gprs\+\_\+ns\+\_\+rx\+\_\+block()}, \textbf{ gprs\+\_\+ns\+\_\+rx\+\_\+status()}, \textbf{ gprs\+\_\+ns\+\_\+timer\+\_\+cb()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+alive()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+alive\+\_\+ack()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+block()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+block\+\_\+ack()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+reset()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+reset\+\_\+ack()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+sns\+\_\+ack()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+sns\+\_\+config()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+sns\+\_\+config\+\_\+ack()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+sns\+\_\+size()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+sns\+\_\+size\+\_\+ack()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+status()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+unblock()}, \textbf{ gprs\+\_\+ns\+\_\+vc\+\_\+create()}, \textbf{ gprs\+\_\+nsvc\+\_\+by\+\_\+nsei()}, \textbf{ gprs\+\_\+nsvc\+\_\+create\+\_\+ip4()}, \textbf{ gprs\+\_\+nsvc\+\_\+reset()}, \textbf{ gprs\+\_\+nsvc\+\_\+state\+\_\+append()}, \textbf{ ns\+\_\+set\+\_\+state\+\_\+with\+\_\+log()}, and \textbf{ nsvc\+\_\+start\+\_\+timer()}.

\mbox{\label{structgprs__nsvc_a3ebd834fa0bc10b91388b422712e51ff}} 
\index{gprs\_nsvc@{gprs\_nsvc}!nsi@{nsi}}
\index{nsi@{nsi}!gprs\_nsvc@{gprs\_nsvc}}
\doxysubsubsection{nsi}
{\footnotesize\ttfamily struct \textbf{ gprs\+\_\+ns\+\_\+inst}$\ast$ gprs\+\_\+nsvc\+::nsi}



pointer to NS Instance 



Referenced by \textbf{ create\+\_\+missing\+\_\+nsvcs()}, \textbf{ DEFUN()}, \textbf{ do\+\_\+sns\+\_\+add()}, \textbf{ do\+\_\+sns\+\_\+change\+\_\+weight()}, \textbf{ do\+\_\+sns\+\_\+delete()}, \textbf{ dump\+\_\+nse()}, \textbf{ gprs\+\_\+active\+\_\+nsvc\+\_\+by\+\_\+nsei()}, \textbf{ gprs\+\_\+ns\+\_\+close()}, \textbf{ gprs\+\_\+ns\+\_\+destroy()}, \textbf{ gprs\+\_\+ns\+\_\+frgre\+\_\+sendmsg()}, \textbf{ gprs\+\_\+ns\+\_\+nsip\+\_\+connect()}, \textbf{ gprs\+\_\+ns\+\_\+nsip\+\_\+connect\+\_\+sns()}, \textbf{ gprs\+\_\+ns\+\_\+rcvmsg()}, \textbf{ gprs\+\_\+ns\+\_\+rx\+\_\+unitdata()}, \textbf{ gprs\+\_\+ns\+\_\+timer\+\_\+cb()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+sns\+\_\+ack()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+sns\+\_\+config()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+sns\+\_\+config\+\_\+ack()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+sns\+\_\+size()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+sns\+\_\+size\+\_\+ack()}, \textbf{ gprs\+\_\+ns\+\_\+vty\+\_\+init()}, \textbf{ gprs\+\_\+nsvc\+\_\+by\+\_\+nsei()}, \textbf{ gprs\+\_\+nsvc\+\_\+by\+\_\+nsvci()}, \textbf{ gprs\+\_\+nsvc\+\_\+by\+\_\+rem\+\_\+addr()}, \textbf{ gprs\+\_\+nsvc\+\_\+create2()}, \textbf{ gprs\+\_\+sns\+\_\+bss\+\_\+fsm\+\_\+alloc()}, \textbf{ gprs\+\_\+start\+\_\+alive\+\_\+all\+\_\+nsvcs()}, \textbf{ nsip\+\_\+sendmsg()}, and \textbf{ nsvc\+\_\+start\+\_\+timer()}.

\mbox{\label{structgprs__nsvc_a79cae18f51faead4107cd7aa14eeb7f0}} 
\index{gprs\_nsvc@{gprs\_nsvc}!nsvci@{nsvci}}
\index{nsvci@{nsvci}!gprs\_nsvc@{gprs\_nsvc}}
\doxysubsubsection{nsvci}
{\footnotesize\ttfamily uint16\+\_\+t gprs\+\_\+nsvc\+::nsvci}



end-\/to-\/end significance 



Referenced by \textbf{ config\+\_\+write\+\_\+ns()}, \textbf{ DEFUN()}, \textbf{ dump\+\_\+nse()}, \textbf{ gprs\+\_\+ns\+\_\+nsip\+\_\+connect()}, \textbf{ gprs\+\_\+ns\+\_\+nsip\+\_\+connect\+\_\+sns()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+alive()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+alive\+\_\+ack()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+block()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+block\+\_\+ack()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+reset()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+reset\+\_\+ack()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+status()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+unblock()}, \textbf{ gprs\+\_\+ns\+\_\+vc\+\_\+create()}, \textbf{ gprs\+\_\+nsvc\+\_\+by\+\_\+nsvci()}, \textbf{ gprs\+\_\+nsvc\+\_\+create2()}, \textbf{ gprs\+\_\+nsvc\+\_\+replace\+\_\+if\+\_\+found()}, \textbf{ gprs\+\_\+nsvc\+\_\+state\+\_\+append()}, and \textbf{ ns\+\_\+set\+\_\+state\+\_\+with\+\_\+log()}.

\mbox{\label{structgprs__nsvc_abdbd82754949272808bbcbafa32da75a}} 
\index{gprs\_nsvc@{gprs\_nsvc}!nsvci\_is\_valid@{nsvci\_is\_valid}}
\index{nsvci\_is\_valid@{nsvci\_is\_valid}!gprs\_nsvc@{gprs\_nsvc}}
\doxysubsubsection{nsvci\_is\_valid}
{\footnotesize\ttfamily unsigned int gprs\+\_\+nsvc\+::nsvci\+\_\+is\+\_\+valid}



Referenced by \textbf{ gprs\+\_\+ns\+\_\+instantiate()}, \textbf{ gprs\+\_\+ns\+\_\+vc\+\_\+create()}, and \textbf{ gprs\+\_\+nsvc\+\_\+create2()}.

\mbox{\label{structgprs__nsvc_a81aabee0724be3742f7701f8922447dd}} 
\index{gprs\_nsvc@{gprs\_nsvc}!persistent@{persistent}}
\index{persistent@{persistent}!gprs\_nsvc@{gprs\_nsvc}}
\doxysubsubsection{persistent}
{\footnotesize\ttfamily unsigned int gprs\+\_\+nsvc\+::persistent}



Referenced by \textbf{ config\+\_\+write\+\_\+ns()}, \textbf{ DEFUN()}, and \textbf{ dump\+\_\+nse()}.

\mbox{\label{structgprs__nsvc_a015ca75d3a4c16b42d5ad3b116adde5a}} 
\index{gprs\_nsvc@{gprs\_nsvc}!remote\_end\_is\_sgsn@{remote\_end\_is\_sgsn}}
\index{remote\_end\_is\_sgsn@{remote\_end\_is\_sgsn}!gprs\_nsvc@{gprs\_nsvc}}
\doxysubsubsection{remote\_end\_is\_sgsn}
{\footnotesize\ttfamily unsigned int gprs\+\_\+nsvc\+::remote\+\_\+end\+\_\+is\+\_\+sgsn}



Referenced by \textbf{ config\+\_\+write\+\_\+ns()}, \textbf{ DEFUN()}, \textbf{ dump\+\_\+nse()}, \textbf{ gprs\+\_\+ns\+\_\+nsip\+\_\+connect()}, \textbf{ gprs\+\_\+ns\+\_\+nsip\+\_\+connect\+\_\+sns()}, and \textbf{ gprs\+\_\+nsvc\+\_\+state\+\_\+append()}.

\mbox{\label{structgprs__nsvc_a88de7c9ff602ceae1789c040bae0eb47}} 
\index{gprs\_nsvc@{gprs\_nsvc}!remote\_state@{remote\_state}}
\index{remote\_state@{remote\_state}!gprs\_nsvc@{gprs\_nsvc}}
\doxysubsubsection{remote\_state}
{\footnotesize\ttfamily uint32\+\_\+t gprs\+\_\+nsvc\+::remote\+\_\+state}



Referenced by \textbf{ dump\+\_\+nse()}, \textbf{ gprs\+\_\+nsvc\+\_\+state\+\_\+append()}, and \textbf{ ns\+\_\+set\+\_\+state\+\_\+with\+\_\+log()}.

\mbox{\label{structgprs__nsvc_aafda462203dd735b61153747bd4a4a8e}} 
\index{gprs\_nsvc@{gprs\_nsvc}!sig\_weight@{sig\_weight}}
\index{sig\_weight@{sig\_weight}!gprs\_nsvc@{gprs\_nsvc}}
\doxysubsubsection{sig\_weight}
{\footnotesize\ttfamily uint8\+\_\+t gprs\+\_\+nsvc\+::sig\+\_\+weight}



signalling weight. 

0 = don\textquotesingle{}t use for signalling (BVCI == 0) 

Referenced by \textbf{ create\+\_\+missing\+\_\+nsvcs()}, \textbf{ do\+\_\+sns\+\_\+add()}, \textbf{ do\+\_\+sns\+\_\+change\+\_\+weight()}, \textbf{ gprs\+\_\+active\+\_\+nsvc\+\_\+by\+\_\+nsei()}, \textbf{ gprs\+\_\+nsvc\+\_\+create2()}, and \textbf{ nsvc\+\_\+is\+\_\+not\+\_\+used()}.

\mbox{\label{structgprs__nsvc_a685fd59f1b16114e036b577be37da3a6}} 
\index{gprs\_nsvc@{gprs\_nsvc}!state@{state}}
\index{state@{state}!gprs\_nsvc@{gprs\_nsvc}}
\doxysubsubsection{state}
{\footnotesize\ttfamily uint32\+\_\+t gprs\+\_\+nsvc\+::state}



uniquely identifies NS-\/\+VC at SGSN 



Referenced by \textbf{ dump\+\_\+nse()}, \textbf{ gprs\+\_\+active\+\_\+nsvc\+\_\+by\+\_\+nsei()}, \textbf{ gprs\+\_\+ns\+\_\+rx\+\_\+unitdata()}, \textbf{ gprs\+\_\+ns\+\_\+timer\+\_\+cb()}, \textbf{ gprs\+\_\+nsvc\+\_\+state\+\_\+append()}, and \textbf{ ns\+\_\+set\+\_\+state\+\_\+with\+\_\+log()}.

\mbox{\label{structgprs__nsvc_a040a704c055971bd6231931875975cea}} 
\index{gprs\_nsvc@{gprs\_nsvc}!statg@{statg}}
\index{statg@{statg}!gprs\_nsvc@{gprs\_nsvc}}
\doxysubsubsection{statg}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+stat\+\_\+item\+\_\+group}$\ast$ gprs\+\_\+nsvc\+::statg}



Referenced by \textbf{ dump\+\_\+nse()}, \textbf{ gprs\+\_\+nsvc\+\_\+create2()}, and \textbf{ gprs\+\_\+nsvc\+\_\+delete()}.

\mbox{\label{structgprs__nsvc_a434605151f37a7e539bc89cde0b0ebce}} 
\index{gprs\_nsvc@{gprs\_nsvc}!timer@{timer}}
\index{timer@{timer}!gprs\_nsvc@{gprs\_nsvc}}
\doxysubsubsection{timer}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+timer\+\_\+list} gprs\+\_\+nsvc\+::timer}



Referenced by \textbf{ gprs\+\_\+nsvc\+\_\+create2()}, \textbf{ gprs\+\_\+nsvc\+\_\+delete()}, and \textbf{ nsvc\+\_\+start\+\_\+timer()}.

\mbox{\label{structgprs__nsvc_a6621bc5c8c3007c3b59c1716b12e1378}} 
\index{gprs\_nsvc@{gprs\_nsvc}!timer\_mode@{timer\_mode}}
\index{timer\_mode@{timer\_mode}!gprs\_nsvc@{gprs\_nsvc}}
\doxysubsubsection{timer\_mode}
{\footnotesize\ttfamily enum \textbf{ nsvc\+\_\+timer\+\_\+mode} gprs\+\_\+nsvc\+::timer\+\_\+mode}



Referenced by \textbf{ gprs\+\_\+ns\+\_\+timer\+\_\+cb()}, and \textbf{ nsvc\+\_\+start\+\_\+timer()}.

\mbox{\label{structgprs__nsvc_a653b242694c11051fbb1cac239da744a}} 
\index{gprs\_nsvc@{gprs\_nsvc}!timer\_started@{timer\_started}}
\index{timer\_started@{timer\_started}!gprs\_nsvc@{gprs\_nsvc}}
\doxysubsubsection{timer\_started}
{\footnotesize\ttfamily struct timeval gprs\+\_\+nsvc\+::timer\+\_\+started}



Referenced by \textbf{ nsvc\+\_\+start\+\_\+timer()}, and \textbf{ nsvc\+\_\+timer\+\_\+elapsed\+\_\+ms()}.



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