\doxysection{gprs\+\_\+ns2\+\_\+inst Struct Reference}
\label{structgprs__ns2__inst}\index{gprs\_ns2\_inst@{gprs\_ns2\_inst}}


An instance of the NS protocol stack.  




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

\doxysubsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
\textbf{ osmo\+\_\+prim\+\_\+cb} \textbf{ cb}
\begin{DoxyCompactList}\small\item\em callback to the user for incoming UNIT DATA IND \end{DoxyCompactList}\item 
void $\ast$ \textbf{ cb\+\_\+data}
\begin{DoxyCompactList}\small\item\em callback data \end{DoxyCompactList}\item 
struct \textbf{ llist\+\_\+head} \textbf{ binding}
\begin{DoxyCompactList}\small\item\em linked lists of all NSVC binds (e.\+g. \end{DoxyCompactList}\item 
struct \textbf{ llist\+\_\+head} \textbf{ nse}
\begin{DoxyCompactList}\small\item\em linked lists of all NSVC in this instance \end{DoxyCompactList}\item 
uint16\+\_\+t \textbf{ timeout} [\textbf{ NS\+\_\+\+TIMERS\+\_\+\+COUNT}]
\item 
uint32\+\_\+t \textbf{ nsvc\+\_\+rate\+\_\+ctr\+\_\+idx}
\begin{DoxyCompactList}\small\item\em workaround for rate counter until rate counter accepts char str as index \end{DoxyCompactList}\item 
uint32\+\_\+t \textbf{ bind\+\_\+rate\+\_\+ctr\+\_\+idx}
\item 
uint32\+\_\+t \textbf{ txqueue\+\_\+max\+\_\+length}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
An instance of the NS protocol stack. 

\doxysubsection{Field Documentation}
\mbox{\label{structgprs__ns2__inst_aee6e169086e3f22a170886695f8ca269}} 
\index{gprs\_ns2\_inst@{gprs\_ns2\_inst}!bind\_rate\_ctr\_idx@{bind\_rate\_ctr\_idx}}
\index{bind\_rate\_ctr\_idx@{bind\_rate\_ctr\_idx}!gprs\_ns2\_inst@{gprs\_ns2\_inst}}
\doxysubsubsection{bind\_rate\_ctr\_idx}
{\footnotesize\ttfamily uint32\+\_\+t gprs\+\_\+ns2\+\_\+inst\+::bind\+\_\+rate\+\_\+ctr\+\_\+idx}



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

\mbox{\label{structgprs__ns2__inst_a51d7fb047826a8dc00858add23c1575c}} 
\index{gprs\_ns2\_inst@{gprs\_ns2\_inst}!binding@{binding}}
\index{binding@{binding}!gprs\_ns2\_inst@{gprs\_ns2\_inst}}
\doxysubsubsection{binding}
{\footnotesize\ttfamily struct \textbf{ llist\+\_\+head} gprs\+\_\+ns2\+\_\+inst\+::binding}



linked lists of all NSVC binds (e.\+g. 

IPv4 bind, but could be also E1 

Referenced by \textbf{ DEFUN()}, \textbf{ dump\+\_\+ns\+\_\+bind()}, \textbf{ gprs\+\_\+ns2\+\_\+bind\+\_\+by\+\_\+name()}, \textbf{ gprs\+\_\+ns2\+\_\+fr\+\_\+bind\+\_\+by\+\_\+netif()}, \textbf{ gprs\+\_\+ns2\+\_\+free\+\_\+binds()}, \textbf{ gprs\+\_\+ns2\+\_\+instantiate()}, \textbf{ gprs\+\_\+ns2\+\_\+ip\+\_\+bind\+\_\+by\+\_\+sockaddr()}, \textbf{ ns2\+\_\+bind\+\_\+alloc()}, \textbf{ ns2\+\_\+ip\+\_\+count\+\_\+bind()}, \textbf{ ns2\+\_\+ip\+\_\+get\+\_\+bind\+\_\+by\+\_\+index()}, and \textbf{ ns2\+\_\+vc\+\_\+create\+\_\+ip()}.

\mbox{\label{structgprs__ns2__inst_aa35f6ac556a613c907ff2bf6bc34a3f6}} 
\index{gprs\_ns2\_inst@{gprs\_ns2\_inst}!cb@{cb}}
\index{cb@{cb}!gprs\_ns2\_inst@{gprs\_ns2\_inst}}
\doxysubsubsection{cb}
{\footnotesize\ttfamily \textbf{ osmo\+\_\+prim\+\_\+cb} gprs\+\_\+ns2\+\_\+inst\+::cb}



callback to the user for incoming UNIT DATA IND 



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

\mbox{\label{structgprs__ns2__inst_a82478b43d62cef69ddac125de66a6fd4}} 
\index{gprs\_ns2\_inst@{gprs\_ns2\_inst}!cb\_data@{cb\_data}}
\index{cb\_data@{cb\_data}!gprs\_ns2\_inst@{gprs\_ns2\_inst}}
\doxysubsubsection{cb\_data}
{\footnotesize\ttfamily void$\ast$ gprs\+\_\+ns2\+\_\+inst\+::cb\+\_\+data}



callback data 



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

\mbox{\label{structgprs__ns2__inst_a1434aad11512cf182d62fabbc08e1efd}} 
\index{gprs\_ns2\_inst@{gprs\_ns2\_inst}!nse@{nse}}
\index{nse@{nse}!gprs\_ns2\_inst@{gprs\_ns2\_inst}}
\doxysubsubsection{nse}
{\footnotesize\ttfamily struct \textbf{ llist\+\_\+head} gprs\+\_\+ns2\+\_\+inst\+::nse}



linked lists of all NSVC in this instance 



Referenced by \textbf{ config\+\_\+write\+\_\+ns\+\_\+nse()}, \textbf{ dump\+\_\+ns\+\_\+entities()}, \textbf{ gprs\+\_\+n2\+\_\+fr\+\_\+mtu\+\_\+chg\+\_\+cb()}, \textbf{ gprs\+\_\+ns2\+\_\+create\+\_\+nse2()}, \textbf{ gprs\+\_\+ns2\+\_\+free\+\_\+bind()}, \textbf{ gprs\+\_\+ns2\+\_\+free\+\_\+nses()}, \textbf{ gprs\+\_\+ns2\+\_\+instantiate()}, \textbf{ gprs\+\_\+ns2\+\_\+nse\+\_\+by\+\_\+nsei()}, \textbf{ gprs\+\_\+ns2\+\_\+nsvc\+\_\+by\+\_\+nsvci()}, \textbf{ ns2\+\_\+nse\+\_\+notify\+\_\+unblocked()}, \textbf{ ns2\+\_\+sns\+\_\+fsm\+\_\+bss\+\_\+timer\+\_\+cb()}, \textbf{ ns2\+\_\+sns\+\_\+fsm\+\_\+sgsn\+\_\+timer\+\_\+cb()}, \textbf{ ns2\+\_\+sns\+\_\+st\+\_\+bss\+\_\+size()}, \textbf{ ns2\+\_\+sns\+\_\+st\+\_\+sgsn\+\_\+wait\+\_\+config()}, \textbf{ ns2\+\_\+sns\+\_\+update\+\_\+weights()}, and \textbf{ ns2\+\_\+vc\+\_\+create\+\_\+ip()}.

\mbox{\label{structgprs__ns2__inst_a4ac36fe65a77a6c214b3e3e393b1e5a5}} 
\index{gprs\_ns2\_inst@{gprs\_ns2\_inst}!nsvc\_rate\_ctr\_idx@{nsvc\_rate\_ctr\_idx}}
\index{nsvc\_rate\_ctr\_idx@{nsvc\_rate\_ctr\_idx}!gprs\_ns2\_inst@{gprs\_ns2\_inst}}
\doxysubsubsection{nsvc\_rate\_ctr\_idx}
{\footnotesize\ttfamily uint32\+\_\+t gprs\+\_\+ns2\+\_\+inst\+::nsvc\+\_\+rate\+\_\+ctr\+\_\+idx}



workaround for rate counter until rate counter accepts char str as index 



Referenced by \textbf{ ns2\+\_\+vc\+\_\+alloc()}.

\mbox{\label{structgprs__ns2__inst_ab9278d52f3f3e038b1e4c131d3147aa6}} 
\index{gprs\_ns2\_inst@{gprs\_ns2\_inst}!timeout@{timeout}}
\index{timeout@{timeout}!gprs\_ns2\_inst@{gprs\_ns2\_inst}}
\doxysubsubsection{timeout}
{\footnotesize\ttfamily uint16\+\_\+t gprs\+\_\+ns2\+\_\+inst\+::timeout[\textbf{ NS\+\_\+\+TIMERS\+\_\+\+COUNT}]}



Referenced by \textbf{ alive\+\_\+timeout\+\_\+handler()}, \textbf{ config\+\_\+write\+\_\+ns()}, \textbf{ DEFUN()}, \textbf{ gprs\+\_\+ns2\+\_\+instantiate()}, \textbf{ ns2\+\_\+add\+\_\+procedure()}, \textbf{ ns2\+\_\+sns\+\_\+fsm\+\_\+bss\+\_\+timer\+\_\+cb()}, \textbf{ ns2\+\_\+sns\+\_\+fsm\+\_\+sgsn\+\_\+timer\+\_\+cb()}, \textbf{ ns2\+\_\+sns\+\_\+st\+\_\+all\+\_\+action\+\_\+bss()}, \textbf{ ns2\+\_\+sns\+\_\+st\+\_\+bss\+\_\+config\+\_\+sgsn()}, \textbf{ ns2\+\_\+sns\+\_\+st\+\_\+bss\+\_\+size()}, \textbf{ ns2\+\_\+sns\+\_\+st\+\_\+configured\+\_\+onenter()}, \textbf{ ns2\+\_\+sns\+\_\+st\+\_\+local\+\_\+procedure()}, \textbf{ ns2\+\_\+sns\+\_\+st\+\_\+sgsn\+\_\+wait\+\_\+config()}, \textbf{ ns2\+\_\+st\+\_\+alive\+\_\+onenter()}, \textbf{ ns2\+\_\+st\+\_\+reset()}, \textbf{ ns2\+\_\+st\+\_\+unconfigured()}, \textbf{ ns2\+\_\+vc\+\_\+fsm\+\_\+allstate\+\_\+action()}, \textbf{ ns2\+\_\+vc\+\_\+fsm\+\_\+timer\+\_\+cb()}, \textbf{ ns\+\_\+sns\+\_\+configured\+\_\+timeout()}, \textbf{ recv\+\_\+test\+\_\+procedure()}, and \textbf{ start\+\_\+test\+\_\+procedure()}.

\mbox{\label{structgprs__ns2__inst_a0da5d84624aa6160e1b4c8575be37a77}} 
\index{gprs\_ns2\_inst@{gprs\_ns2\_inst}!txqueue\_max\_length@{txqueue\_max\_length}}
\index{txqueue\_max\_length@{txqueue\_max\_length}!gprs\_ns2\_inst@{gprs\_ns2\_inst}}
\doxysubsubsection{txqueue\_max\_length}
{\footnotesize\ttfamily uint32\+\_\+t gprs\+\_\+ns2\+\_\+inst\+::txqueue\+\_\+max\+\_\+length}



Referenced by \textbf{ config\+\_\+write\+\_\+ns()}, \textbf{ DEFUN()}, \textbf{ gprs\+\_\+ns2\+\_\+instantiate()}, and \textbf{ gprs\+\_\+ns2\+\_\+ip\+\_\+bind()}.



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