\doxysection{gprs\+\_\+ns2\+\_\+nse Struct Reference}
\label{structgprs__ns2__nse}\index{gprs\_ns2\_nse@{gprs\_ns2\_nse}}


Structure repesenting a NSE.  




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

\doxysubsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
uint16\+\_\+t \textbf{ nsei}
\item 
struct \textbf{ gprs\+\_\+ns2\+\_\+inst} $\ast$ \textbf{ nsi}
\begin{DoxyCompactList}\small\item\em entry back to ns2\+\_\+inst \end{DoxyCompactList}\item 
struct \textbf{ llist\+\_\+head} \textbf{ list}
\begin{DoxyCompactList}\small\item\em llist entry for \doxyref{gprs\+\_\+ns2\+\_\+inst}{p.}{structgprs__ns2__inst} \end{DoxyCompactList}\item 
struct \textbf{ llist\+\_\+head} \textbf{ nsvc}
\begin{DoxyCompactList}\small\item\em llist head to hold all nsvc \end{DoxyCompactList}\item 
int \textbf{ nsvc\+\_\+count}
\begin{DoxyCompactList}\small\item\em count all active NSVCs \end{DoxyCompactList}\item 
bool \textbf{ persistent}
\begin{DoxyCompactList}\small\item\em true if this NSE was created by VTY or pcu socket) \end{DoxyCompactList}\item 
bool \textbf{ first}
\begin{DoxyCompactList}\small\item\em true if this NSE wasn\textquotesingle{}t yet alive at all. \end{DoxyCompactList}\item 
bool \textbf{ alive}
\begin{DoxyCompactList}\small\item\em true if this NSE has at least one alive VC \end{DoxyCompactList}\item 
enum \textbf{ gprs\+\_\+ns2\+\_\+ll} \textbf{ ll}
\begin{DoxyCompactList}\small\item\em which link-\/layer are we based on? \end{DoxyCompactList}\item 
enum \textbf{ gprs\+\_\+ns2\+\_\+dialect} \textbf{ dialect}
\begin{DoxyCompactList}\small\item\em which dialect does this NSE speaks? \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+fsm\+\_\+inst} $\ast$ \textbf{ bss\+\_\+sns\+\_\+fi}
\item 
uint32\+\_\+t \textbf{ sum\+\_\+data\+\_\+weight}
\begin{DoxyCompactList}\small\item\em sum of all the data weight of {\itshape alive} NS-\/\+VCs \end{DoxyCompactList}\item 
uint32\+\_\+t \textbf{ sum\+\_\+sig\+\_\+weight}
\begin{DoxyCompactList}\small\item\em sum of all the signalling weight of {\itshape alive} NS-\/\+VCs \end{DoxyCompactList}\item 
uint16\+\_\+t \textbf{ mtu}
\begin{DoxyCompactList}\small\item\em MTU of a NS PDU. \end{DoxyCompactList}\item 
bool \textbf{ ip\+\_\+sns\+\_\+role\+\_\+sgsn}
\begin{DoxyCompactList}\small\item\em are we implementing the SGSN role? \end{DoxyCompactList}\item 
struct \textbf{ rate\+\_\+ctr\+\_\+group} $\ast$ \textbf{ ctrg}
\begin{DoxyCompactList}\small\item\em NSE-\/wide statistics. \end{DoxyCompactList}\item 
bool \textbf{ freed}
\begin{DoxyCompactList}\small\item\em recursive anchor \end{DoxyCompactList}\item 
struct timespec \textbf{ ts\+\_\+alive\+\_\+change}
\begin{DoxyCompactList}\small\item\em when the NSE became alive or dead \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
Structure repesenting a NSE. 

The BSS/\+PCU will only have a single NSE, while SGSN has one for each BSS/\+PCU 

\doxysubsection{Field Documentation}
\mbox{\label{structgprs__ns2__nse_afd85dae7b21221c56b7c3c7da21ef318}} 
\index{gprs\_ns2\_nse@{gprs\_ns2\_nse}!alive@{alive}}
\index{alive@{alive}!gprs\_ns2\_nse@{gprs\_ns2\_nse}}
\doxysubsubsection{alive}
{\footnotesize\ttfamily bool gprs\+\_\+ns2\+\_\+nse\+::alive}



true if this NSE has at least one alive VC 



Referenced by \textbf{ dump\+\_\+nse()}, \textbf{ gprs\+\_\+ns2\+\_\+free\+\_\+nse()}, \textbf{ gprs\+\_\+ns2\+\_\+recv\+\_\+prim()}, \textbf{ ns2\+\_\+count\+\_\+transfer\+\_\+cap()}, \textbf{ ns2\+\_\+nse\+\_\+update\+\_\+mtu()}, and \textbf{ ns2\+\_\+sns\+\_\+st\+\_\+all\+\_\+action()}.

\mbox{\label{structgprs__ns2__nse_aa193d290228ccec45b4321cc54a7e8f1}} 
\index{gprs\_ns2\_nse@{gprs\_ns2\_nse}!bss\_sns\_fi@{bss\_sns\_fi}}
\index{bss\_sns\_fi@{bss\_sns\_fi}!gprs\_ns2\_nse@{gprs\_ns2\_nse}}
\doxysubsubsection{bss\_sns\_fi}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+fsm\+\_\+inst}$\ast$ gprs\+\_\+ns2\+\_\+nse\+::bss\+\_\+sns\+\_\+fi}



Referenced by \textbf{ gprs\+\_\+ns2\+\_\+free\+\_\+nse()}, \textbf{ gprs\+\_\+ns2\+\_\+free\+\_\+nsvcs()}, \textbf{ gprs\+\_\+ns2\+\_\+nse\+\_\+sns\+\_\+remote()}, \textbf{ gprs\+\_\+ns2\+\_\+sns\+\_\+add\+\_\+bind()}, \textbf{ gprs\+\_\+ns2\+\_\+sns\+\_\+add\+\_\+endpoint()}, \textbf{ gprs\+\_\+ns2\+\_\+sns\+\_\+count()}, \textbf{ gprs\+\_\+ns2\+\_\+sns\+\_\+del\+\_\+bind()}, \textbf{ gprs\+\_\+ns2\+\_\+sns\+\_\+del\+\_\+endpoint()}, \textbf{ ns2\+\_\+add\+\_\+procedure()}, \textbf{ ns2\+\_\+nse\+\_\+set\+\_\+dialect()}, \textbf{ ns2\+\_\+sns\+\_\+dump\+\_\+vty()}, \textbf{ ns2\+\_\+sns\+\_\+notify\+\_\+alive()}, \textbf{ ns2\+\_\+sns\+\_\+replace\+\_\+nsvc()}, \textbf{ ns2\+\_\+sns\+\_\+rx()}, \textbf{ ns2\+\_\+sns\+\_\+st\+\_\+all\+\_\+action()}, \textbf{ ns2\+\_\+sns\+\_\+st\+\_\+configured\+\_\+onenter()}, \textbf{ ns2\+\_\+sns\+\_\+st\+\_\+local\+\_\+procedure()}, \textbf{ ns2\+\_\+sns\+\_\+update\+\_\+weights()}, \textbf{ ns2\+\_\+sns\+\_\+write\+\_\+vty()}, \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()}, and \textbf{ ns2\+\_\+tx\+\_\+sns\+\_\+size\+\_\+ack()}.

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



NSE-\/wide statistics. 



Referenced by \textbf{ gprs\+\_\+ns2\+\_\+create\+\_\+nse2()}, and \textbf{ gprs\+\_\+ns2\+\_\+free\+\_\+nse()}.

\mbox{\label{structgprs__ns2__nse_a1c4e6343aa60083e46c932ff8a1ae26e}} 
\index{gprs\_ns2\_nse@{gprs\_ns2\_nse}!dialect@{dialect}}
\index{dialect@{dialect}!gprs\_ns2\_nse@{gprs\_ns2\_nse}}
\doxysubsubsection{dialect}
{\footnotesize\ttfamily enum \textbf{ gprs\+\_\+ns2\+\_\+dialect} gprs\+\_\+ns2\+\_\+nse\+::dialect}



which dialect does this NSE speaks? 



Referenced by \textbf{ \+\_\+config\+\_\+write\+\_\+ns\+\_\+nse()}, \textbf{ config\+\_\+write\+\_\+nsvc()}, \textbf{ DEFUN()}, \textbf{ DEFUN\+\_\+\+HIDDEN()}, \textbf{ gprs\+\_\+ns2\+\_\+create\+\_\+nse()}, \textbf{ gprs\+\_\+ns2\+\_\+create\+\_\+nse2()}, \textbf{ gprs\+\_\+ns2\+\_\+ip\+\_\+connect2()}, \textbf{ gprs\+\_\+ns2\+\_\+sns\+\_\+add\+\_\+endpoint()}, \textbf{ gprs\+\_\+ns2\+\_\+sns\+\_\+count()}, \textbf{ gprs\+\_\+ns2\+\_\+sns\+\_\+del\+\_\+endpoint()}, \textbf{ handle\+\_\+nsip\+\_\+recvfrom()}, \textbf{ ns2\+\_\+ip\+\_\+bind\+\_\+connect()}, \textbf{ ns2\+\_\+nse\+\_\+set\+\_\+dialect()}, \textbf{ ns2\+\_\+sns\+\_\+add\+\_\+sns\+\_\+default\+\_\+binds()}, \textbf{ ns2\+\_\+st\+\_\+unconfigured()}, and \textbf{ ns\+\_\+nse\+\_\+nsvc\+\_\+udp\+\_\+cmds()}.

\mbox{\label{structgprs__ns2__nse_a92acd141a0bf5089067ef697e25c5317}} 
\index{gprs\_ns2\_nse@{gprs\_ns2\_nse}!first@{first}}
\index{first@{first}!gprs\_ns2\_nse@{gprs\_ns2\_nse}}
\doxysubsubsection{first}
{\footnotesize\ttfamily bool gprs\+\_\+ns2\+\_\+nse\+::first}



true if this NSE wasn\textquotesingle{}t yet alive at all. 

Will be true after the first status ind with NS\+\_\+\+AFF\+\_\+\+CAUSE\+\_\+\+RECOVERY 

Referenced by \textbf{ gprs\+\_\+ns2\+\_\+create\+\_\+nse2()}, and \textbf{ ns2\+\_\+prim\+\_\+status\+\_\+ind()}.

\mbox{\label{structgprs__ns2__nse_ade3b1793c02e523fc21d13148bbd7ceb}} 
\index{gprs\_ns2\_nse@{gprs\_ns2\_nse}!freed@{freed}}
\index{freed@{freed}!gprs\_ns2\_nse@{gprs\_ns2\_nse}}
\doxysubsubsection{freed}
{\footnotesize\ttfamily bool gprs\+\_\+ns2\+\_\+nse\+::freed}



recursive anchor 



Referenced by \textbf{ gprs\+\_\+ns2\+\_\+free\+\_\+nse()}, and \textbf{ gprs\+\_\+ns2\+\_\+free\+\_\+nsvcs()}.

\mbox{\label{structgprs__ns2__nse_a5c31203cd4afb48d700dbdbfa5c23749}} 
\index{gprs\_ns2\_nse@{gprs\_ns2\_nse}!ip\_sns\_role\_sgsn@{ip\_sns\_role\_sgsn}}
\index{ip\_sns\_role\_sgsn@{ip\_sns\_role\_sgsn}!gprs\_ns2\_nse@{gprs\_ns2\_nse}}
\doxysubsubsection{ip\_sns\_role\_sgsn}
{\footnotesize\ttfamily bool gprs\+\_\+ns2\+\_\+nse\+::ip\+\_\+sns\+\_\+role\+\_\+sgsn}



are we implementing the SGSN role? 



Referenced by \textbf{ \+\_\+config\+\_\+write\+\_\+ns\+\_\+nse()}, \textbf{ gprs\+\_\+ns2\+\_\+create\+\_\+nse2()}, and \textbf{ ns2\+\_\+nse\+\_\+set\+\_\+dialect()}.

\mbox{\label{structgprs__ns2__nse_a9185ad6a870d194c07b1a29a508480c0}} 
\index{gprs\_ns2\_nse@{gprs\_ns2\_nse}!list@{list}}
\index{list@{list}!gprs\_ns2\_nse@{gprs\_ns2\_nse}}
\doxysubsubsection{list}
{\footnotesize\ttfamily struct \textbf{ llist\+\_\+head} gprs\+\_\+ns2\+\_\+nse\+::list}



llist entry for \doxyref{gprs\+\_\+ns2\+\_\+inst}{p.}{structgprs__ns2__inst} 



Referenced by \textbf{ gprs\+\_\+ns2\+\_\+create\+\_\+nse2()}, and \textbf{ gprs\+\_\+ns2\+\_\+free\+\_\+nse()}.

\mbox{\label{structgprs__ns2__nse_a51d14e557e6b4f9d2c6a4de1228976a9}} 
\index{gprs\_ns2\_nse@{gprs\_ns2\_nse}!ll@{ll}}
\index{ll@{ll}!gprs\_ns2\_nse@{gprs\_ns2\_nse}}
\doxysubsubsection{ll}
{\footnotesize\ttfamily enum \textbf{ gprs\+\_\+ns2\+\_\+ll} gprs\+\_\+ns2\+\_\+nse\+::ll}



which link-\/layer are we based on? 



Referenced by \textbf{ config\+\_\+write\+\_\+nsvc()}, \textbf{ DEFUN()}, \textbf{ dump\+\_\+nse()}, \textbf{ gprs\+\_\+ns2\+\_\+create\+\_\+nse2()}, \textbf{ gprs\+\_\+ns2\+\_\+fr\+\_\+connect()}, \textbf{ gprs\+\_\+ns2\+\_\+ll\+\_\+str\+\_\+buf()}, \textbf{ gprs\+\_\+ns2\+\_\+sns\+\_\+add\+\_\+endpoint()}, \textbf{ gprs\+\_\+ns2\+\_\+sns\+\_\+count()}, \textbf{ gprs\+\_\+ns2\+\_\+sns\+\_\+del\+\_\+endpoint()}, \textbf{ ns2\+\_\+create\+\_\+vc\+\_\+sns()}, \textbf{ ns2\+\_\+ip\+\_\+bind\+\_\+connect()}, \textbf{ ns2\+\_\+load\+\_\+sharing()}, \textbf{ ns2\+\_\+sns\+\_\+add\+\_\+sns\+\_\+default\+\_\+binds()}, \textbf{ ns2\+\_\+vc\+\_\+alloc()}, and \textbf{ ns\+\_\+nse\+\_\+nsvc\+\_\+udp\+\_\+cmds()}.

\mbox{\label{structgprs__ns2__nse_abd374c377daf8d200a4ca1c07581a9f7}} 
\index{gprs\_ns2\_nse@{gprs\_ns2\_nse}!mtu@{mtu}}
\index{mtu@{mtu}!gprs\_ns2\_nse@{gprs\_ns2\_nse}}
\doxysubsubsection{mtu}
{\footnotesize\ttfamily uint16\+\_\+t gprs\+\_\+ns2\+\_\+nse\+::mtu}



MTU of a NS PDU. 

This is the lowest MTU of all NSVCs 

Referenced by \textbf{ gprs\+\_\+ns2\+\_\+create\+\_\+nse2()}, \textbf{ ns2\+\_\+nse\+\_\+update\+\_\+mtu()}, and \textbf{ ns2\+\_\+prim\+\_\+status\+\_\+ind()}.

\mbox{\label{structgprs__ns2__nse_ad0a3c3198e7bf711bd5a9be829dbfc98}} 
\index{gprs\_ns2\_nse@{gprs\_ns2\_nse}!nsei@{nsei}}
\index{nsei@{nsei}!gprs\_ns2\_nse@{gprs\_ns2\_nse}}
\doxysubsubsection{nsei}
{\footnotesize\ttfamily uint16\+\_\+t gprs\+\_\+ns2\+\_\+nse\+::nsei}



Referenced by \textbf{ \+\_\+config\+\_\+write\+\_\+ns\+\_\+nse()}, \textbf{ \+\_\+sns\+\_\+failed()}, \textbf{ DEFUN()}, \textbf{ dump\+\_\+nse()}, \textbf{ gprs\+\_\+ns2\+\_\+create\+\_\+nse2()}, \textbf{ gprs\+\_\+ns2\+\_\+fr\+\_\+connect()}, \textbf{ gprs\+\_\+ns2\+\_\+nse\+\_\+by\+\_\+nsei()}, \textbf{ gprs\+\_\+ns2\+\_\+nse\+\_\+nsei()}, \textbf{ ns2\+\_\+ip\+\_\+bind\+\_\+connect()}, \textbf{ ns2\+\_\+nse\+\_\+set\+\_\+dialect()}, \textbf{ ns2\+\_\+prim\+\_\+status\+\_\+ind()}, \textbf{ ns2\+\_\+sns\+\_\+rx()}, \textbf{ ns2\+\_\+sns\+\_\+st\+\_\+all\+\_\+action()}, \textbf{ ns2\+\_\+tx\+\_\+reset()}, \textbf{ ns2\+\_\+tx\+\_\+reset\+\_\+ack()}, \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\+\_\+vc\+\_\+rx()}, \textbf{ ns\+\_\+nse\+\_\+nsvc\+\_\+udp\+\_\+cmds()}, and \textbf{ vty\+\_\+nse\+\_\+check\+\_\+sns()}.

\mbox{\label{structgprs__ns2__nse_a26cfefa104b8b56dcce263038678bfd6}} 
\index{gprs\_ns2\_nse@{gprs\_ns2\_nse}!nsi@{nsi}}
\index{nsi@{nsi}!gprs\_ns2\_nse@{gprs\_ns2\_nse}}
\doxysubsubsection{nsi}
{\footnotesize\ttfamily struct \textbf{ gprs\+\_\+ns2\+\_\+inst}$\ast$ gprs\+\_\+ns2\+\_\+nse\+::nsi}



entry back to ns2\+\_\+inst 



Referenced by \textbf{ DEFUN()}, \textbf{ DEFUN\+\_\+\+HIDDEN()}, \textbf{ dump\+\_\+ns\+\_\+entities()}, \textbf{ gprs\+\_\+ns2\+\_\+create\+\_\+nse()}, \textbf{ gprs\+\_\+ns2\+\_\+create\+\_\+nse2()}, \textbf{ gprs\+\_\+ns2\+\_\+free\+\_\+nses()}, \textbf{ gprs\+\_\+ns2\+\_\+nse\+\_\+by\+\_\+nsei()}, \textbf{ ns2\+\_\+add\+\_\+procedure()}, \textbf{ ns2\+\_\+prim\+\_\+status\+\_\+ind()}, \textbf{ ns2\+\_\+sns\+\_\+st\+\_\+all\+\_\+action\+\_\+bss()}, \textbf{ ns2\+\_\+sns\+\_\+st\+\_\+bss\+\_\+config\+\_\+sgsn()}, \textbf{ ns2\+\_\+sns\+\_\+st\+\_\+configured\+\_\+onenter()}, \textbf{ ns2\+\_\+sns\+\_\+st\+\_\+local\+\_\+procedure()}, \textbf{ ns2\+\_\+st\+\_\+unconfigured()}, \textbf{ ns2\+\_\+vc\+\_\+rx()}, \textbf{ ns\+\_\+inst\+\_\+from\+\_\+fi()}, \textbf{ ns\+\_\+sns\+\_\+configured\+\_\+timeout()}, and \textbf{ start\+\_\+test\+\_\+procedure()}.

\mbox{\label{structgprs__ns2__nse_a579a3aa1a1394cb78905316974029fe8}} 
\index{gprs\_ns2\_nse@{gprs\_ns2\_nse}!nsvc@{nsvc}}
\index{nsvc@{nsvc}!gprs\_ns2\_nse@{gprs\_ns2\_nse}}
\doxysubsubsection{nsvc}
{\footnotesize\ttfamily struct \textbf{ llist\+\_\+head} gprs\+\_\+ns2\+\_\+nse\+::nsvc}



llist head to hold all nsvc 



Referenced by \textbf{ \+\_\+config\+\_\+write\+\_\+ns\+\_\+nse()}, \textbf{ DEFUN()}, \textbf{ dump\+\_\+nse()}, \textbf{ gprs\+\_\+ns2\+\_\+create\+\_\+nse2()}, \textbf{ gprs\+\_\+ns2\+\_\+fr\+\_\+connect2()}, \textbf{ gprs\+\_\+ns2\+\_\+free\+\_\+bind()}, \textbf{ gprs\+\_\+ns2\+\_\+nse\+\_\+foreach\+\_\+nsvc()}, \textbf{ gprs\+\_\+ns2\+\_\+nsvc\+\_\+by\+\_\+nsvci()}, \textbf{ gprs\+\_\+ns2\+\_\+nsvc\+\_\+by\+\_\+sockaddr\+\_\+nse()}, \textbf{ gprs\+\_\+ns2\+\_\+start\+\_\+alive\+\_\+all\+\_\+nsvcs()}, \textbf{ ns2\+\_\+clear\+\_\+sgsn()}, \textbf{ ns2\+\_\+count\+\_\+transfer\+\_\+cap()}, \textbf{ ns2\+\_\+create\+\_\+vc\+\_\+sns()}, \textbf{ ns2\+\_\+free\+\_\+nsvcs()}, \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\+\_\+notify\+\_\+unblocked()}, \textbf{ ns2\+\_\+nse\+\_\+update\+\_\+mtu()}, \textbf{ ns2\+\_\+sns\+\_\+notify\+\_\+alive()}, \textbf{ ns2\+\_\+sns\+\_\+replace\+\_\+nsvc()}, \textbf{ ns2\+\_\+sns\+\_\+rx()}, \textbf{ ns2\+\_\+sns\+\_\+st\+\_\+all\+\_\+action()}, \textbf{ ns2\+\_\+sns\+\_\+st\+\_\+configured\+\_\+onenter()}, \textbf{ ns2\+\_\+st\+\_\+unblocked\+\_\+on\+\_\+enter()}, \textbf{ ns2\+\_\+vc\+\_\+alloc()}, and \textbf{ nsvc\+\_\+for\+\_\+bind\+\_\+and\+\_\+remote()}.

\mbox{\label{structgprs__ns2__nse_ad6840d3b68c12e17c4a3e2045ecd2ad5}} 
\index{gprs\_ns2\_nse@{gprs\_ns2\_nse}!nsvc\_count@{nsvc\_count}}
\index{nsvc\_count@{nsvc\_count}!gprs\_ns2\_nse@{gprs\_ns2\_nse}}
\doxysubsubsection{nsvc\_count}
{\footnotesize\ttfamily int gprs\+\_\+ns2\+\_\+nse\+::nsvc\+\_\+count}



count all active NSVCs 



Referenced by \textbf{ ns2\+\_\+load\+\_\+sharing\+\_\+modulo()}, \textbf{ ns2\+\_\+load\+\_\+sharing\+\_\+weight\+\_\+modulo()}, and \textbf{ ns2\+\_\+nse\+\_\+data\+\_\+sum()}.

\mbox{\label{structgprs__ns2__nse_a852326d8014684f9a5f640fb7b00622e}} 
\index{gprs\_ns2\_nse@{gprs\_ns2\_nse}!persistent@{persistent}}
\index{persistent@{persistent}!gprs\_ns2\_nse@{gprs\_ns2\_nse}}
\doxysubsubsection{persistent}
{\footnotesize\ttfamily bool gprs\+\_\+ns2\+\_\+nse\+::persistent}



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



Referenced by \textbf{ \+\_\+sns\+\_\+failed()}, \textbf{ config\+\_\+write\+\_\+ns\+\_\+nse()}, \textbf{ DEFUN()}, \textbf{ DEFUN\+\_\+\+HIDDEN()}, \textbf{ dump\+\_\+nse()}, and \textbf{ ns2\+\_\+prim\+\_\+status\+\_\+ind()}.

\mbox{\label{structgprs__ns2__nse_a596a1e7b93d0208d814eaa2bdc48ef47}} 
\index{gprs\_ns2\_nse@{gprs\_ns2\_nse}!sum\_data\_weight@{sum\_data\_weight}}
\index{sum\_data\_weight@{sum\_data\_weight}!gprs\_ns2\_nse@{gprs\_ns2\_nse}}
\doxysubsubsection{sum\_data\_weight}
{\footnotesize\ttfamily uint32\+\_\+t gprs\+\_\+ns2\+\_\+nse\+::sum\+\_\+data\+\_\+weight}



sum of all the data weight of {\itshape alive} NS-\/\+VCs 



Referenced by \textbf{ ns2\+\_\+load\+\_\+sharing\+\_\+weight\+\_\+modulo()}, and \textbf{ ns2\+\_\+nse\+\_\+data\+\_\+sum()}.

\mbox{\label{structgprs__ns2__nse_a236187d8ffbc40f64b37e7157e969472}} 
\index{gprs\_ns2\_nse@{gprs\_ns2\_nse}!sum\_sig\_weight@{sum\_sig\_weight}}
\index{sum\_sig\_weight@{sum\_sig\_weight}!gprs\_ns2\_nse@{gprs\_ns2\_nse}}
\doxysubsubsection{sum\_sig\_weight}
{\footnotesize\ttfamily uint32\+\_\+t gprs\+\_\+ns2\+\_\+nse\+::sum\+\_\+sig\+\_\+weight}



sum of all the signalling weight of {\itshape alive} NS-\/\+VCs 



Referenced by \textbf{ ns2\+\_\+nse\+\_\+data\+\_\+sum()}, \textbf{ ns2\+\_\+sns\+\_\+notify\+\_\+alive()}, and \textbf{ ns2\+\_\+sns\+\_\+st\+\_\+all\+\_\+action()}.

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



when the NSE became alive or dead 



Referenced by \textbf{ dump\+\_\+nse()}, and \textbf{ gprs\+\_\+ns2\+\_\+create\+\_\+nse2()}.



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