\doxysection{gprs\+\_\+ns2\+\_\+vc Struct Reference}
\label{structgprs__ns2__vc}\index{gprs\_ns2\_vc@{gprs\_ns2\_vc}}


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




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

\doxysubsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ llist\+\_\+head} \textbf{ list}
\begin{DoxyCompactList}\small\item\em list of NS-\/\+VCs within NSE \end{DoxyCompactList}\item 
struct \textbf{ llist\+\_\+head} \textbf{ blist}
\begin{DoxyCompactList}\small\item\em list of NS-\/\+VCs within bind, bind is the owner! \end{DoxyCompactList}\item 
struct \textbf{ gprs\+\_\+ns2\+\_\+nse} $\ast$ \textbf{ nse}
\begin{DoxyCompactList}\small\item\em pointer to NS Instance \end{DoxyCompactList}\item 
struct \textbf{ gprs\+\_\+ns2\+\_\+vc\+\_\+bind} $\ast$ \textbf{ bind}
\begin{DoxyCompactList}\small\item\em pointer to NS VL bind. \end{DoxyCompactList}\item 
bool \textbf{ persistent}
\begin{DoxyCompactList}\small\item\em true if this NS was created by VTY or pcu socket) \end{DoxyCompactList}\item 
uint16\+\_\+t \textbf{ nsvci}
\begin{DoxyCompactList}\small\item\em uniquely identifies NS-\/\+VC if VC contains nsvci \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ sig\+\_\+weight}
\begin{DoxyCompactList}\small\item\em signalling weight. \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ sig\+\_\+counter}
\begin{DoxyCompactList}\small\item\em signalling packet counter for the load sharing function \end{DoxyCompactList}\item 
uint8\+\_\+t \textbf{ data\+\_\+weight}
\begin{DoxyCompactList}\small\item\em data weight. \end{DoxyCompactList}\item 
void $\ast$ \textbf{ priv}
\begin{DoxyCompactList}\small\item\em can be used by the bind/driver of the virtual circuit. \end{DoxyCompactList}\item 
bool \textbf{ nsvci\+\_\+is\+\_\+valid}
\item 
bool \textbf{ sns\+\_\+only}
\begin{DoxyCompactList}\small\item\em should this NS-\/\+VC only be used for SNS-\/\+SIZE and SNS-\/\+CONFIG? \end{DoxyCompactList}\item 
struct \textbf{ rate\+\_\+ctr\+\_\+group} $\ast$ \textbf{ ctrg}
\item 
struct \textbf{ osmo\+\_\+stat\+\_\+item\+\_\+group} $\ast$ \textbf{ statg}
\item 
enum \textbf{ gprs\+\_\+ns2\+\_\+vc\+\_\+mode} \textbf{ mode}
\item 
struct \textbf{ osmo\+\_\+fsm\+\_\+inst} $\ast$ \textbf{ fi}
\item 
bool \textbf{ freed}
\begin{DoxyCompactList}\small\item\em recursive anchor \end{DoxyCompactList}\item 
bool \textbf{ om\+\_\+blocked}
\begin{DoxyCompactList}\small\item\em if blocked by O\&M/vty \end{DoxyCompactList}\item 
struct timespec \textbf{ ts\+\_\+alive\+\_\+change}
\begin{DoxyCompactList}\small\item\em when the NSVC became alive or dead \end{DoxyCompactList}\end{DoxyCompactItemize}


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

\doxysubsection{Field Documentation}
\mbox{\label{structgprs__ns2__vc_a7ddfd4d6ef6ab43a964a50c2b144cc94}} 
\index{gprs\_ns2\_vc@{gprs\_ns2\_vc}!bind@{bind}}
\index{bind@{bind}!gprs\_ns2\_vc@{gprs\_ns2\_vc}}
\doxysubsubsection{bind}
{\footnotesize\ttfamily struct \textbf{ gprs\+\_\+ns2\+\_\+vc\+\_\+bind}$\ast$ gprs\+\_\+ns2\+\_\+vc\+::bind}



pointer to NS VL bind. 

bind own the memory of this instance 

Referenced by \textbf{ config\+\_\+write\+\_\+nsvc()}, \textbf{ dump\+\_\+bind()}, \textbf{ free\+\_\+vc()}, \textbf{ gprs\+\_\+ns2\+\_\+fr\+\_\+nsvc\+\_\+dlci()}, \textbf{ gprs\+\_\+ns2\+\_\+free\+\_\+nsvc()}, \textbf{ gprs\+\_\+ns2\+\_\+ip\+\_\+connect()}, \textbf{ gprs\+\_\+ns2\+\_\+ip\+\_\+connect\+\_\+inactive()}, \textbf{ gprs\+\_\+ns2\+\_\+ip\+\_\+vc\+\_\+equal()}, \textbf{ gprs\+\_\+ns2\+\_\+ip\+\_\+vc\+\_\+local()}, \textbf{ gprs\+\_\+ns2\+\_\+ip\+\_\+vc\+\_\+remote()}, \textbf{ gprs\+\_\+ns2\+\_\+ll\+\_\+str\+\_\+buf()}, \textbf{ handle\+\_\+nsip\+\_\+sendto()}, \textbf{ ns2\+\_\+nse\+\_\+update\+\_\+mtu()}, \textbf{ ns2\+\_\+tx\+\_\+status()}, \textbf{ ns2\+\_\+vc\+\_\+alloc()}, \textbf{ ns\+\_\+vc\+\_\+tx()}, and \textbf{ nsvc\+\_\+for\+\_\+bind\+\_\+and\+\_\+remote()}.

\mbox{\label{structgprs__ns2__vc_a99cdaae8aef9f2bc8a41f173278ed29b}} 
\index{gprs\_ns2\_vc@{gprs\_ns2\_vc}!blist@{blist}}
\index{blist@{blist}!gprs\_ns2\_vc@{gprs\_ns2\_vc}}
\doxysubsubsection{blist}
{\footnotesize\ttfamily struct \textbf{ llist\+\_\+head} gprs\+\_\+ns2\+\_\+vc\+::blist}



list of NS-\/\+VCs within bind, bind is the owner! 



Referenced by \textbf{ gprs\+\_\+ns2\+\_\+free\+\_\+nsvc()}, and \textbf{ ns2\+\_\+vc\+\_\+alloc()}.

\mbox{\label{structgprs__ns2__vc_af339bd4a3b2315b467aadff5f4d98960}} 
\index{gprs\_ns2\_vc@{gprs\_ns2\_vc}!ctrg@{ctrg}}
\index{ctrg@{ctrg}!gprs\_ns2\_vc@{gprs\_ns2\_vc}}
\doxysubsubsection{ctrg}
{\footnotesize\ttfamily struct \textbf{ rate\+\_\+ctr\+\_\+group}$\ast$ gprs\+\_\+ns2\+\_\+vc\+::ctrg}



Referenced by \textbf{ gprs\+\_\+ns2\+\_\+free\+\_\+nsvc()}, \textbf{ ns2\+\_\+tx\+\_\+block()}, \textbf{ ns2\+\_\+vc\+\_\+alloc()}, and \textbf{ ns2\+\_\+vty\+\_\+dump\+\_\+nsvc()}.

\mbox{\label{structgprs__ns2__vc_ac498de16e1f0cfe70ba8eae4f599c6d7}} 
\index{gprs\_ns2\_vc@{gprs\_ns2\_vc}!data\_weight@{data\_weight}}
\index{data\_weight@{data\_weight}!gprs\_ns2\_vc@{gprs\_ns2\_vc}}
\doxysubsubsection{data\_weight}
{\footnotesize\ttfamily uint8\+\_\+t gprs\+\_\+ns2\+\_\+vc\+::data\+\_\+weight}



data weight. 

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

Referenced by \textbf{ create\+\_\+nsvc\+\_\+for\+\_\+new\+\_\+sbind()}, \textbf{ do\+\_\+sns\+\_\+change\+\_\+weight()}, \textbf{ ns2\+\_\+load\+\_\+sharing\+\_\+weight\+\_\+modulo()}, \textbf{ ns2\+\_\+nse\+\_\+data\+\_\+sum()}, \textbf{ ns2\+\_\+sns\+\_\+st\+\_\+all\+\_\+action\+\_\+sgsn()}, \textbf{ ns2\+\_\+vc\+\_\+alloc()}, \textbf{ ns2\+\_\+vty\+\_\+dump\+\_\+nsvc()}, and \textbf{ ns\+\_\+nse\+\_\+nsvc\+\_\+udp\+\_\+cmds()}.

\mbox{\label{structgprs__ns2__vc_a041b71aa6f97e7b72fc61dd5691af42d}} 
\index{gprs\_ns2\_vc@{gprs\_ns2\_vc}!fi@{fi}}
\index{fi@{fi}!gprs\_ns2\_vc@{gprs\_ns2\_vc}}
\doxysubsubsection{fi}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+fsm\+\_\+inst}$\ast$ gprs\+\_\+ns2\+\_\+vc\+::fi}



Referenced by \textbf{ do\+\_\+sns\+\_\+add()}, \textbf{ gprs\+\_\+ns2\+\_\+free\+\_\+nsvc()}, \textbf{ gprs\+\_\+ns2\+\_\+nsvc\+\_\+state\+\_\+name()}, \textbf{ ns2\+\_\+vc\+\_\+block()}, \textbf{ ns2\+\_\+vc\+\_\+force\+\_\+unconfigured()}, \textbf{ ns2\+\_\+vc\+\_\+fsm\+\_\+alloc()}, \textbf{ ns2\+\_\+vc\+\_\+fsm\+\_\+start()}, \textbf{ ns2\+\_\+vc\+\_\+is\+\_\+unblocked()}, \textbf{ ns2\+\_\+vc\+\_\+reset()}, \textbf{ ns2\+\_\+vc\+\_\+rx()}, \textbf{ ns2\+\_\+vc\+\_\+unblock()}, and \textbf{ ns2\+\_\+vty\+\_\+dump\+\_\+nsvc()}.

\mbox{\label{structgprs__ns2__vc_a4952dd6eb098d195821b5c6cb030a2af}} 
\index{gprs\_ns2\_vc@{gprs\_ns2\_vc}!freed@{freed}}
\index{freed@{freed}!gprs\_ns2\_vc@{gprs\_ns2\_vc}}
\doxysubsubsection{freed}
{\footnotesize\ttfamily bool gprs\+\_\+ns2\+\_\+vc\+::freed}



recursive anchor 



Referenced by \textbf{ gprs\+\_\+ns2\+\_\+free\+\_\+nsvc()}.

\mbox{\label{structgprs__ns2__vc_ac3ce6a8f800a79fb98810a4764fbf534}} 
\index{gprs\_ns2\_vc@{gprs\_ns2\_vc}!list@{list}}
\index{list@{list}!gprs\_ns2\_vc@{gprs\_ns2\_vc}}
\doxysubsubsection{list}
{\footnotesize\ttfamily struct \textbf{ llist\+\_\+head} gprs\+\_\+ns2\+\_\+vc\+::list}



list of NS-\/\+VCs within NSE 



Referenced by \textbf{ gprs\+\_\+ns2\+\_\+free\+\_\+nsvc()}, and \textbf{ ns2\+\_\+vc\+\_\+alloc()}.

\mbox{\label{structgprs__ns2__vc_ac2081ec054aa3fe0dc95bf747ea8f4ae}} 
\index{gprs\_ns2\_vc@{gprs\_ns2\_vc}!mode@{mode}}
\index{mode@{mode}!gprs\_ns2\_vc@{gprs\_ns2\_vc}}
\doxysubsubsection{mode}
{\footnotesize\ttfamily enum \textbf{ gprs\+\_\+ns2\+\_\+vc\+\_\+mode} gprs\+\_\+ns2\+\_\+vc\+::mode}



Referenced by \textbf{ alive\+\_\+timeout\+\_\+handler()}, \textbf{ gprs\+\_\+ns2\+\_\+ip\+\_\+connect\+\_\+inactive()}, \textbf{ gprs\+\_\+ns2\+\_\+ip\+\_\+vc\+\_\+equal()}, \textbf{ ns2\+\_\+st\+\_\+unconfigured()}, \textbf{ ns2\+\_\+validate\+\_\+status()}, \textbf{ ns2\+\_\+vc\+\_\+alloc()}, and \textbf{ ns2\+\_\+vc\+\_\+fsm\+\_\+allstate\+\_\+action()}.

\mbox{\label{structgprs__ns2__vc_ab7fc33a29044f08381906c217643a839}} 
\index{gprs\_ns2\_vc@{gprs\_ns2\_vc}!nse@{nse}}
\index{nse@{nse}!gprs\_ns2\_vc@{gprs\_ns2\_vc}}
\doxysubsubsection{nse}
{\footnotesize\ttfamily struct \textbf{ gprs\+\_\+ns2\+\_\+nse}$\ast$ gprs\+\_\+ns2\+\_\+vc\+::nse}



pointer to NS Instance 



Referenced by \textbf{ config\+\_\+write\+\_\+nsvc()}, \textbf{ DEFUN()}, \textbf{ do\+\_\+sns\+\_\+add()}, \textbf{ dump\+\_\+nse()}, \textbf{ gprs\+\_\+ns2\+\_\+free\+\_\+nsvc()}, \textbf{ gprs\+\_\+ns2\+\_\+free\+\_\+nsvcs()}, \textbf{ gprs\+\_\+ns2\+\_\+ip\+\_\+connect()}, \textbf{ gprs\+\_\+ns2\+\_\+ip\+\_\+connect\+\_\+inactive()}, \textbf{ gprs\+\_\+ns2\+\_\+ll\+\_\+str\+\_\+buf()}, \textbf{ gprs\+\_\+ns2\+\_\+nse\+\_\+foreach\+\_\+nsvc()}, \textbf{ gprs\+\_\+ns2\+\_\+nsvc\+\_\+by\+\_\+nsvci()}, \textbf{ gprs\+\_\+ns2\+\_\+recv\+\_\+prim()}, \textbf{ gprs\+\_\+ns2\+\_\+start\+\_\+alive\+\_\+all\+\_\+nsvcs()}, \textbf{ handle\+\_\+nsip\+\_\+recvfrom()}, \textbf{ log\+\_\+set\+\_\+nse\+\_\+filter()}, \textbf{ ns2\+\_\+free\+\_\+nsvcs()}, \textbf{ ns2\+\_\+load\+\_\+sharing()}, \textbf{ ns2\+\_\+load\+\_\+sharing\+\_\+first()}, \textbf{ ns2\+\_\+load\+\_\+sharing\+\_\+modulo()}, \textbf{ ns2\+\_\+load\+\_\+sharing\+\_\+signal()}, \textbf{ ns2\+\_\+load\+\_\+sharing\+\_\+weight\+\_\+modulo()}, \textbf{ ns2\+\_\+nse\+\_\+data\+\_\+sum()}, \textbf{ ns2\+\_\+nse\+\_\+update\+\_\+mtu()}, \textbf{ ns2\+\_\+sns\+\_\+notify\+\_\+alive()}, \textbf{ ns2\+\_\+sns\+\_\+rx()}, \textbf{ ns2\+\_\+st\+\_\+unconfigured()}, \textbf{ ns2\+\_\+tx\+\_\+alive()}, \textbf{ ns2\+\_\+tx\+\_\+alive\+\_\+ack()}, \textbf{ ns2\+\_\+tx\+\_\+block()}, \textbf{ ns2\+\_\+tx\+\_\+block\+\_\+ack()}, \textbf{ ns2\+\_\+tx\+\_\+reset()}, \textbf{ ns2\+\_\+tx\+\_\+reset\+\_\+ack()}, \textbf{ ns2\+\_\+tx\+\_\+simple()}, \textbf{ ns2\+\_\+tx\+\_\+sns\+\_\+ack()}, \textbf{ ns2\+\_\+tx\+\_\+sns\+\_\+config()}, \textbf{ ns2\+\_\+tx\+\_\+sns\+\_\+config\+\_\+ack()}, \textbf{ ns2\+\_\+tx\+\_\+sns\+\_\+procedure()}, \textbf{ ns2\+\_\+tx\+\_\+sns\+\_\+size()}, \textbf{ ns2\+\_\+tx\+\_\+sns\+\_\+size\+\_\+ack()}, \textbf{ ns2\+\_\+tx\+\_\+status()}, \textbf{ ns2\+\_\+tx\+\_\+unblock()}, \textbf{ ns2\+\_\+tx\+\_\+unblock\+\_\+ack()}, \textbf{ ns2\+\_\+tx\+\_\+unit\+\_\+data()}, \textbf{ ns2\+\_\+vc\+\_\+alloc()}, \textbf{ ns2\+\_\+vc\+\_\+rx()}, \textbf{ ns\+\_\+inst\+\_\+from\+\_\+fi()}, \textbf{ ns\+\_\+nse\+\_\+nsvc\+\_\+udp\+\_\+cmds()}, \textbf{ nsvc\+\_\+for\+\_\+bind\+\_\+and\+\_\+remote()}, and \textbf{ start\+\_\+test\+\_\+procedure()}.

\mbox{\label{structgprs__ns2__vc_ad77d0ded8f10aea9611ff4bb7b5c7a09}} 
\index{gprs\_ns2\_vc@{gprs\_ns2\_vc}!nsvci@{nsvci}}
\index{nsvci@{nsvci}!gprs\_ns2\_vc@{gprs\_ns2\_vc}}
\doxysubsubsection{nsvci}
{\footnotesize\ttfamily uint16\+\_\+t gprs\+\_\+ns2\+\_\+vc\+::nsvci}



uniquely identifies NS-\/\+VC if VC contains nsvci 



Referenced by \textbf{ config\+\_\+write\+\_\+nsvc()}, \textbf{ DEFUN()}, \textbf{ gprs\+\_\+ns2\+\_\+fr\+\_\+connect()}, \textbf{ gprs\+\_\+ns2\+\_\+ip\+\_\+connect()}, \textbf{ gprs\+\_\+ns2\+\_\+ip\+\_\+connect\+\_\+inactive()}, \textbf{ gprs\+\_\+ns2\+\_\+ip\+\_\+vc\+\_\+equal()}, \textbf{ gprs\+\_\+ns2\+\_\+ll\+\_\+str\+\_\+buf()}, \textbf{ gprs\+\_\+ns2\+\_\+nsvc\+\_\+by\+\_\+nsvci()}, \textbf{ ns2\+\_\+tx\+\_\+block()}, \textbf{ ns2\+\_\+tx\+\_\+block\+\_\+ack()}, \textbf{ ns2\+\_\+tx\+\_\+reset()}, \textbf{ ns2\+\_\+tx\+\_\+reset\+\_\+ack()}, \textbf{ ns2\+\_\+tx\+\_\+status()}, \textbf{ ns2\+\_\+vc\+\_\+rx()}, and \textbf{ ns2\+\_\+vty\+\_\+dump\+\_\+nsvc()}.

\mbox{\label{structgprs__ns2__vc_a6c6a1e498759a3992b229e65fcc3b164}} 
\index{gprs\_ns2\_vc@{gprs\_ns2\_vc}!nsvci\_is\_valid@{nsvci\_is\_valid}}
\index{nsvci\_is\_valid@{nsvci\_is\_valid}!gprs\_ns2\_vc@{gprs\_ns2\_vc}}
\doxysubsubsection{nsvci\_is\_valid}
{\footnotesize\ttfamily bool gprs\+\_\+ns2\+\_\+vc\+::nsvci\+\_\+is\+\_\+valid}



Referenced by \textbf{ config\+\_\+write\+\_\+nsvc()}, \textbf{ DEFUN()}, \textbf{ gprs\+\_\+ns2\+\_\+fr\+\_\+connect()}, \textbf{ gprs\+\_\+ns2\+\_\+ip\+\_\+connect\+\_\+inactive()}, \textbf{ gprs\+\_\+ns2\+\_\+ll\+\_\+str\+\_\+buf()}, \textbf{ gprs\+\_\+ns2\+\_\+nsvc\+\_\+by\+\_\+nsvci()}, \textbf{ ns2\+\_\+create\+\_\+vc\+\_\+sns()}, \textbf{ ns2\+\_\+vc\+\_\+rx()}, and \textbf{ ns2\+\_\+vty\+\_\+dump\+\_\+nsvc()}.

\mbox{\label{structgprs__ns2__vc_add938bfa3d4d62d5afaf8031674f7e77}} 
\index{gprs\_ns2\_vc@{gprs\_ns2\_vc}!om\_blocked@{om\_blocked}}
\index{om\_blocked@{om\_blocked}!gprs\_ns2\_vc@{gprs\_ns2\_vc}}
\doxysubsubsection{om\_blocked}
{\footnotesize\ttfamily bool gprs\+\_\+ns2\+\_\+vc\+::om\+\_\+blocked}



if blocked by O\&M/vty 



Referenced by \textbf{ ns2\+\_\+st\+\_\+blocked()}, \textbf{ ns2\+\_\+st\+\_\+blocked\+\_\+onenter()}, \textbf{ ns2\+\_\+st\+\_\+unconfigured()}, \textbf{ ns2\+\_\+vc\+\_\+block()}, \textbf{ ns2\+\_\+vc\+\_\+fsm\+\_\+allstate\+\_\+action()}, \textbf{ ns2\+\_\+vc\+\_\+fsm\+\_\+timer\+\_\+cb()}, \textbf{ ns2\+\_\+vc\+\_\+unblock()}, and \textbf{ ns2\+\_\+vty\+\_\+dump\+\_\+nsvc()}.

\mbox{\label{structgprs__ns2__vc_a4c2d704aaa303d9cf3d26e101a74083d}} 
\index{gprs\_ns2\_vc@{gprs\_ns2\_vc}!persistent@{persistent}}
\index{persistent@{persistent}!gprs\_ns2\_vc@{gprs\_ns2\_vc}}
\doxysubsubsection{persistent}
{\footnotesize\ttfamily bool gprs\+\_\+ns2\+\_\+vc\+::persistent}



true if this NS was created by VTY or pcu socket) 



Referenced by \textbf{ DEFUN()}, \textbf{ ns2\+\_\+vty\+\_\+dump\+\_\+nsvc()}, and \textbf{ ns\+\_\+nse\+\_\+nsvc\+\_\+udp\+\_\+cmds()}.

\mbox{\label{structgprs__ns2__vc_adab6c90d7412e94f6cd6ce803293c7a2}} 
\index{gprs\_ns2\_vc@{gprs\_ns2\_vc}!priv@{priv}}
\index{priv@{priv}!gprs\_ns2\_vc@{gprs\_ns2\_vc}}
\doxysubsubsection{priv}
{\footnotesize\ttfamily void$\ast$ gprs\+\_\+ns2\+\_\+vc\+::priv}



can be used by the bind/driver of the virtual circuit. 

e.\+g. ipv4/ipv6/frgre/e1 

Referenced by \textbf{ fr\+\_\+alloc\+\_\+vc()}, \textbf{ fr\+\_\+vc\+\_\+sendmsg()}, \textbf{ free\+\_\+vc()}, \textbf{ frgre\+\_\+alloc\+\_\+vc()}, \textbf{ frgre\+\_\+vc\+\_\+sendmsg()}, \textbf{ gprs\+\_\+ns2\+\_\+find\+\_\+vc\+\_\+by\+\_\+dlci()}, \textbf{ gprs\+\_\+ns2\+\_\+fr\+\_\+connect()}, \textbf{ gprs\+\_\+ns2\+\_\+fr\+\_\+nsvc\+\_\+by\+\_\+dlci()}, \textbf{ gprs\+\_\+ns2\+\_\+fr\+\_\+nsvc\+\_\+dlci()}, \textbf{ gprs\+\_\+ns2\+\_\+free\+\_\+nsvc()}, \textbf{ gprs\+\_\+ns2\+\_\+ip\+\_\+vc\+\_\+equal()}, \textbf{ gprs\+\_\+ns2\+\_\+ip\+\_\+vc\+\_\+remote()}, \textbf{ gprs\+\_\+ns2\+\_\+nsvc\+\_\+by\+\_\+sockaddr\+\_\+bind()}, \textbf{ ns2\+\_\+driver\+\_\+alloc\+\_\+vc()}, \textbf{ ns2\+\_\+find\+\_\+vc\+\_\+by\+\_\+dlci()}, \textbf{ ns2\+\_\+ip\+\_\+bind\+\_\+connect()}, \textbf{ ns2\+\_\+st\+\_\+unblocked\+\_\+on\+\_\+enter()}, \textbf{ nsip\+\_\+vc\+\_\+sendmsg()}, and \textbf{ recv\+\_\+test\+\_\+procedure()}.

\mbox{\label{structgprs__ns2__vc_aa3672975eca661fdd166c7466dc6b9b9}} 
\index{gprs\_ns2\_vc@{gprs\_ns2\_vc}!sig\_counter@{sig\_counter}}
\index{sig\_counter@{sig\_counter}!gprs\_ns2\_vc@{gprs\_ns2\_vc}}
\doxysubsubsection{sig\_counter}
{\footnotesize\ttfamily uint8\+\_\+t gprs\+\_\+ns2\+\_\+vc\+::sig\+\_\+counter}



signalling packet counter for the load sharing function 

\mbox{\label{structgprs__ns2__vc_aa41b9fe840b17d31b03cb62281345239}} 
\index{gprs\_ns2\_vc@{gprs\_ns2\_vc}!sig\_weight@{sig\_weight}}
\index{sig\_weight@{sig\_weight}!gprs\_ns2\_vc@{gprs\_ns2\_vc}}
\doxysubsubsection{sig\_weight}
{\footnotesize\ttfamily uint8\+\_\+t gprs\+\_\+ns2\+\_\+vc\+::sig\+\_\+weight}



signalling weight. 

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

Referenced by \textbf{ create\+\_\+nsvc\+\_\+for\+\_\+new\+\_\+sbind()}, \textbf{ do\+\_\+sns\+\_\+change\+\_\+weight()}, \textbf{ ns2\+\_\+nse\+\_\+data\+\_\+sum()}, \textbf{ ns2\+\_\+sns\+\_\+st\+\_\+all\+\_\+action\+\_\+sgsn()}, \textbf{ ns2\+\_\+vc\+\_\+alloc()}, \textbf{ ns2\+\_\+vty\+\_\+dump\+\_\+nsvc()}, and \textbf{ ns\+\_\+nse\+\_\+nsvc\+\_\+udp\+\_\+cmds()}.

\mbox{\label{structgprs__ns2__vc_a3bd5d443c7861cc8f77ebefc631fb97c}} 
\index{gprs\_ns2\_vc@{gprs\_ns2\_vc}!sns\_only@{sns\_only}}
\index{sns\_only@{sns\_only}!gprs\_ns2\_vc@{gprs\_ns2\_vc}}
\doxysubsubsection{sns\_only}
{\footnotesize\ttfamily bool gprs\+\_\+ns2\+\_\+vc\+::sns\+\_\+only}



should this NS-\/\+VC only be used for SNS-\/\+SIZE and SNS-\/\+CONFIG? 



Referenced by \textbf{ create\+\_\+nsvc\+\_\+for\+\_\+new\+\_\+sbind()}, \textbf{ gprs\+\_\+ns2\+\_\+start\+\_\+alive\+\_\+all\+\_\+nsvcs()}, \textbf{ ns2\+\_\+sns\+\_\+st\+\_\+bss\+\_\+size\+\_\+onenter()}, and \textbf{ ns2\+\_\+sns\+\_\+st\+\_\+configured\+\_\+onenter()}.

\mbox{\label{structgprs__ns2__vc_af3a4c52bd12d282d08ed29f691359818}} 
\index{gprs\_ns2\_vc@{gprs\_ns2\_vc}!statg@{statg}}
\index{statg@{statg}!gprs\_ns2\_vc@{gprs\_ns2\_vc}}
\doxysubsubsection{statg}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+stat\+\_\+item\+\_\+group}$\ast$ gprs\+\_\+ns2\+\_\+vc\+::statg}



Referenced by \textbf{ gprs\+\_\+ns2\+\_\+free\+\_\+nsvc()}, \textbf{ ns2\+\_\+vc\+\_\+alloc()}, \textbf{ ns2\+\_\+vty\+\_\+dump\+\_\+nsvc()}, \textbf{ recv\+\_\+test\+\_\+procedure()}, and \textbf{ stop\+\_\+test\+\_\+procedure()}.

\mbox{\label{structgprs__ns2__vc_a81b20f5e94eefe5f380dca04adaaebe9}} 
\index{gprs\_ns2\_vc@{gprs\_ns2\_vc}!ts\_alive\_change@{ts\_alive\_change}}
\index{ts\_alive\_change@{ts\_alive\_change}!gprs\_ns2\_vc@{gprs\_ns2\_vc}}
\doxysubsubsection{ts\_alive\_change}
{\footnotesize\ttfamily struct timespec gprs\+\_\+ns2\+\_\+vc\+::ts\+\_\+alive\+\_\+change}



when the NSVC became alive or dead 



Referenced by \textbf{ ns2\+\_\+vc\+\_\+alloc()}, and \textbf{ ns2\+\_\+vty\+\_\+dump\+\_\+nsvc()}.



The documentation for this struct was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
src/gb/\textbf{ gprs\+\_\+ns2\+\_\+internal.\+h}\end{DoxyCompactItemize}
