\doxysection{gprs\+\_\+ns\+\_\+inst Struct Reference}
\label{structgprs__ns__inst}\index{gprs\_ns\_inst@{gprs\_ns\_inst}}


An instance of the NS protocol stack.  




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

\doxysubsection*{Data Fields}
\begin{DoxyCompactItemize}
\item 
\textbf{ gprs\+\_\+ns\+\_\+cb\+\_\+t} $\ast$ \textbf{ cb}
\begin{DoxyCompactList}\small\item\em callback to the user for incoming UNIT DATA IND \end{DoxyCompactList}\item 
struct \textbf{ llist\+\_\+head} \textbf{ gprs\+\_\+nsvcs}
\begin{DoxyCompactList}\small\item\em linked lists of all NSVC in this instance \end{DoxyCompactList}\item 
struct \textbf{ gprs\+\_\+nsvc} $\ast$ \textbf{ unknown\+\_\+nsvc}
\begin{DoxyCompactList}\small\item\em a NSVC object that\textquotesingle{}s needed to deal with packets for unknown NSVC \end{DoxyCompactList}\item 
uint16\+\_\+t \textbf{ timeout} [\textbf{ NS\+\_\+\+TIMERS\+\_\+\+COUNT}]
\item 
\begin{tabbing}
xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill
struct \{\\
\>struct \textbf{ osmo\_fd} \textbf{ fd}\\
\>uint32\_t \textbf{ local\_ip}\\
\>uint16\_t \textbf{ local\_port}\\
\>uint32\_t \textbf{ remote\_ip}\\
\>uint16\_t \textbf{ remote\_port}\\
\>int \textbf{ dscp}\\
\>bool \textbf{ use\_reset\_block\_unblock}\\
\>\>{\em IPA compatibility: NS-\/RESET/BLOCK/UNBLOCK even on IP-\/SNS. }\\
\} \textbf{ nsip}\\

\end{tabbing}\begin{DoxyCompactList}\small\item\em NS-\/over-\/\+IP specific bits. \end{DoxyCompactList}\item 
\begin{tabbing}
xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=xx\=\kill
struct \{\\
\>struct \textbf{ osmo\_fd} \textbf{ fd}\\
\>uint32\_t \textbf{ local\_ip}\\
\>unsigned int \textbf{ enabled}:1\\
\} \textbf{ frgre}\\

\end{tabbing}\begin{DoxyCompactList}\small\item\em NS-\/over-\/\+FR-\/over-\/\+GRE-\/over-\/\+IP specific bits. \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+fsm\+\_\+inst} $\ast$ \textbf{ bss\+\_\+sns\+\_\+fi}
\end{DoxyCompactItemize}


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

\doxysubsection{Field Documentation}
\mbox{\label{structgprs__ns__inst_ab3772a114b0148e7b17d843ee6091a21}} 
\index{gprs\_ns\_inst@{gprs\_ns\_inst}!bss\_sns\_fi@{bss\_sns\_fi}}
\index{bss\_sns\_fi@{bss\_sns\_fi}!gprs\_ns\_inst@{gprs\_ns\_inst}}
\doxysubsubsection{bss\_sns\_fi}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+fsm\+\_\+inst}$\ast$ gprs\+\_\+ns\+\_\+inst\+::bss\+\_\+sns\+\_\+fi}



Referenced by \textbf{ DEFUN()}, \textbf{ gprs\+\_\+ns\+\_\+nsip\+\_\+connect\+\_\+sns()}, \textbf{ gprs\+\_\+ns\+\_\+process\+\_\+msg()}, \textbf{ gprs\+\_\+ns\+\_\+rx\+\_\+sns()}, \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\+\_\+nsvc\+\_\+create2()}, \textbf{ gprs\+\_\+nsvc\+\_\+create\+\_\+ip4()}, \textbf{ gprs\+\_\+sns\+\_\+bss\+\_\+fsm\+\_\+start()}, and \textbf{ gprs\+\_\+sns\+\_\+dump\+\_\+vty()}.

\mbox{\label{structgprs__ns__inst_a1f1c877a75a4a7050cf995ffbd97ae17}} 
\index{gprs\_ns\_inst@{gprs\_ns\_inst}!cb@{cb}}
\index{cb@{cb}!gprs\_ns\_inst@{gprs\_ns\_inst}}
\doxysubsubsection{cb}
{\footnotesize\ttfamily \textbf{ gprs\+\_\+ns\+\_\+cb\+\_\+t}$\ast$ gprs\+\_\+ns\+\_\+inst\+::cb}



callback to the user for incoming UNIT DATA IND 



Referenced by \textbf{ gprs\+\_\+ns\+\_\+instantiate()}, and \textbf{ gprs\+\_\+ns\+\_\+rx\+\_\+unitdata()}.

\mbox{\label{structgprs__ns__inst_a4108e036d0b0af7881021cf2bbabc337}} 
\index{gprs\_ns\_inst@{gprs\_ns\_inst}!dscp@{dscp}}
\index{dscp@{dscp}!gprs\_ns\_inst@{gprs\_ns\_inst}}
\doxysubsubsection{dscp}
{\footnotesize\ttfamily int gprs\+\_\+ns\+\_\+inst\+::dscp}



Referenced by \textbf{ config\+\_\+write\+\_\+ns()}, \textbf{ DEFUN()}, and \textbf{ gprs\+\_\+ns\+\_\+nsip\+\_\+listen()}.

\mbox{\label{structgprs__ns__inst_a94fcabb42bcf2c048db83dbfbcae44f7}} 
\index{gprs\_ns\_inst@{gprs\_ns\_inst}!enabled@{enabled}}
\index{enabled@{enabled}!gprs\_ns\_inst@{gprs\_ns\_inst}}
\doxysubsubsection{enabled}
{\footnotesize\ttfamily unsigned int gprs\+\_\+ns\+\_\+inst\+::enabled}



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

\mbox{\label{structgprs__ns__inst_af208f783bbd1706c2f8598b9051d6e20}} 
\index{gprs\_ns\_inst@{gprs\_ns\_inst}!fd@{fd}}
\index{fd@{fd}!gprs\_ns\_inst@{gprs\_ns\_inst}}
\doxysubsubsection{fd}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+fd} gprs\+\_\+ns\+\_\+inst\+::fd}



Referenced by \textbf{ gprs\+\_\+ns\+\_\+close()}, \textbf{ gprs\+\_\+ns\+\_\+frgre\+\_\+listen()}, \textbf{ gprs\+\_\+ns\+\_\+frgre\+\_\+sendmsg()}, \textbf{ gprs\+\_\+ns\+\_\+nsip\+\_\+listen()}, \textbf{ handle\+\_\+rx\+\_\+gre\+\_\+ipv4()}, and \textbf{ nsip\+\_\+sendmsg()}.

\mbox{\label{structgprs__ns__inst_abde6a85ffb4e890848cf4cc1455b94c9}} 
\index{gprs\_ns\_inst@{gprs\_ns\_inst}!frgre@{frgre}}
\index{frgre@{frgre}!gprs\_ns\_inst@{gprs\_ns\_inst}}
\doxysubsubsection{}
{\footnotesize\ttfamily struct  \{ ... \}  gprs\+\_\+ns\+\_\+inst\+::frgre}



NS-\/over-\/\+FR-\/over-\/\+GRE-\/over-\/\+IP specific bits. 



Referenced by \textbf{ config\+\_\+write\+\_\+ns()}, \textbf{ DEFUN()}, \textbf{ dump\+\_\+ns()}, \textbf{ gprs\+\_\+ns\+\_\+frgre\+\_\+listen()}, \textbf{ gprs\+\_\+ns\+\_\+frgre\+\_\+sendmsg()}, and \textbf{ handle\+\_\+rx\+\_\+gre\+\_\+ipv4()}.

\mbox{\label{structgprs__ns__inst_a1d8b247242dd09a84d3979dfe07e31d1}} 
\index{gprs\_ns\_inst@{gprs\_ns\_inst}!gprs\_nsvcs@{gprs\_nsvcs}}
\index{gprs\_nsvcs@{gprs\_nsvcs}!gprs\_ns\_inst@{gprs\_ns\_inst}}
\doxysubsubsection{gprs\_nsvcs}
{\footnotesize\ttfamily struct \textbf{ llist\+\_\+head} gprs\+\_\+ns\+\_\+inst\+::gprs\+\_\+nsvcs}



linked lists of all NSVC in this instance 



Referenced by \textbf{ config\+\_\+write\+\_\+ns()}, \textbf{ dump\+\_\+ns()}, \textbf{ gprs\+\_\+active\+\_\+nsvc\+\_\+by\+\_\+nsei()}, \textbf{ gprs\+\_\+ns\+\_\+close()}, \textbf{ gprs\+\_\+ns\+\_\+instantiate()}, \textbf{ gprs\+\_\+nsvc\+\_\+by\+\_\+nsei()}, \textbf{ gprs\+\_\+nsvc\+\_\+by\+\_\+nsvci()}, \textbf{ gprs\+\_\+nsvc\+\_\+by\+\_\+rem\+\_\+addr()}, \textbf{ gprs\+\_\+nsvc\+\_\+create2()}, and \textbf{ gprs\+\_\+start\+\_\+alive\+\_\+all\+\_\+nsvcs()}.

\mbox{\label{structgprs__ns__inst_a11c2cf89f8c3700a56a378c805b9ea0b}} 
\index{gprs\_ns\_inst@{gprs\_ns\_inst}!local\_ip@{local\_ip}}
\index{local\_ip@{local\_ip}!gprs\_ns\_inst@{gprs\_ns\_inst}}
\doxysubsubsection{local\_ip}
{\footnotesize\ttfamily uint32\+\_\+t gprs\+\_\+ns\+\_\+inst\+::local\+\_\+ip}



Referenced by \textbf{ config\+\_\+write\+\_\+ns()}, \textbf{ DEFUN()}, \textbf{ dump\+\_\+ns()}, \textbf{ gprs\+\_\+ns\+\_\+frgre\+\_\+listen()}, \textbf{ gprs\+\_\+ns\+\_\+nsip\+\_\+listen()}, and \textbf{ gprs\+\_\+sns\+\_\+bss\+\_\+fsm\+\_\+alloc()}.

\mbox{\label{structgprs__ns__inst_aa719510ec5e6a244fd8e2a199888f365}} 
\index{gprs\_ns\_inst@{gprs\_ns\_inst}!local\_port@{local\_port}}
\index{local\_port@{local\_port}!gprs\_ns\_inst@{gprs\_ns\_inst}}
\doxysubsubsection{local\_port}
{\footnotesize\ttfamily uint16\+\_\+t gprs\+\_\+ns\+\_\+inst\+::local\+\_\+port}



Referenced by \textbf{ config\+\_\+write\+\_\+ns()}, \textbf{ DEFUN()}, \textbf{ dump\+\_\+ns()}, \textbf{ dump\+\_\+nse()}, \textbf{ gprs\+\_\+ns\+\_\+nsip\+\_\+listen()}, and \textbf{ gprs\+\_\+sns\+\_\+bss\+\_\+fsm\+\_\+alloc()}.

\mbox{\label{structgprs__ns__inst_ab3882535f69714b0e19e333c604a32a0}} 
\index{gprs\_ns\_inst@{gprs\_ns\_inst}!nsip@{nsip}}
\index{nsip@{nsip}!gprs\_ns\_inst@{gprs\_ns\_inst}}
\doxysubsubsection{}
{\footnotesize\ttfamily struct  \{ ... \}  gprs\+\_\+ns\+\_\+inst\+::nsip}



NS-\/over-\/\+IP specific bits. 



Referenced by \textbf{ config\+\_\+write\+\_\+ns()}, \textbf{ DEFUN()}, \textbf{ dump\+\_\+ns()}, \textbf{ dump\+\_\+nse()}, \textbf{ gprs\+\_\+ns\+\_\+close()}, \textbf{ gprs\+\_\+ns\+\_\+instantiate()}, \textbf{ gprs\+\_\+ns\+\_\+nsip\+\_\+listen()}, \textbf{ gprs\+\_\+ns\+\_\+timer\+\_\+cb()}, \textbf{ gprs\+\_\+nsvc\+\_\+create2()}, \textbf{ gprs\+\_\+sns\+\_\+bss\+\_\+fsm\+\_\+alloc()}, and \textbf{ nsip\+\_\+sendmsg()}.

\mbox{\label{structgprs__ns__inst_a2f3c5caeebddb64c65bddef3bf244e10}} 
\index{gprs\_ns\_inst@{gprs\_ns\_inst}!remote\_ip@{remote\_ip}}
\index{remote\_ip@{remote\_ip}!gprs\_ns\_inst@{gprs\_ns\_inst}}
\doxysubsubsection{remote\_ip}
{\footnotesize\ttfamily uint32\+\_\+t gprs\+\_\+ns\+\_\+inst\+::remote\+\_\+ip}



Referenced by \textbf{ gprs\+\_\+ns\+\_\+nsip\+\_\+listen()}.

\mbox{\label{structgprs__ns__inst_a5fe803529e46571d792a8cdb63354489}} 
\index{gprs\_ns\_inst@{gprs\_ns\_inst}!remote\_port@{remote\_port}}
\index{remote\_port@{remote\_port}!gprs\_ns\_inst@{gprs\_ns\_inst}}
\doxysubsubsection{remote\_port}
{\footnotesize\ttfamily uint16\+\_\+t gprs\+\_\+ns\+\_\+inst\+::remote\+\_\+port}



Referenced by \textbf{ gprs\+\_\+ns\+\_\+nsip\+\_\+listen()}.

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



Referenced by \textbf{ config\+\_\+write\+\_\+ns()}, \textbf{ DEFUN()}, \textbf{ gprs\+\_\+ns\+\_\+instantiate()}, \textbf{ gprs\+\_\+ns\+\_\+timer\+\_\+cb()}, \textbf{ gprs\+\_\+sns\+\_\+fsm\+\_\+bss\+\_\+timer\+\_\+cb()}, \textbf{ gprs\+\_\+sns\+\_\+st\+\_\+size()}, \textbf{ gprs\+\_\+sns\+\_\+st\+\_\+unconfigured()}, and \textbf{ nsvc\+\_\+start\+\_\+timer()}.

\mbox{\label{structgprs__ns__inst_abd468902447c0d82ceb578f71287ac5a}} 
\index{gprs\_ns\_inst@{gprs\_ns\_inst}!unknown\_nsvc@{unknown\_nsvc}}
\index{unknown\_nsvc@{unknown\_nsvc}!gprs\_ns\_inst@{gprs\_ns\_inst}}
\doxysubsubsection{unknown\_nsvc}
{\footnotesize\ttfamily struct \textbf{ gprs\+\_\+nsvc}$\ast$ gprs\+\_\+ns\+\_\+inst\+::unknown\+\_\+nsvc}



a NSVC object that\textquotesingle{}s needed to deal with packets for unknown NSVC 



Referenced by \textbf{ dump\+\_\+ns()}, \textbf{ gprs\+\_\+ns\+\_\+close()}, \textbf{ gprs\+\_\+ns\+\_\+instantiate()}, and \textbf{ gprs\+\_\+ns\+\_\+rcvmsg()}.

\mbox{\label{structgprs__ns__inst_ae9222ae931f6820e440cb555b61ce040}} 
\index{gprs\_ns\_inst@{gprs\_ns\_inst}!use\_reset\_block\_unblock@{use\_reset\_block\_unblock}}
\index{use\_reset\_block\_unblock@{use\_reset\_block\_unblock}!gprs\_ns\_inst@{gprs\_ns\_inst}}
\doxysubsubsection{use\_reset\_block\_unblock}
{\footnotesize\ttfamily bool gprs\+\_\+ns\+\_\+inst\+::use\+\_\+reset\+\_\+block\+\_\+unblock}



IPA compatibility\+: NS-\/\+RESET/\+BLOCK/\+UNBLOCK even on IP-\/\+SNS. 



Referenced by \textbf{ config\+\_\+write\+\_\+ns()}, \textbf{ DEFUN()}, \textbf{ gprs\+\_\+ns\+\_\+instantiate()}, \textbf{ gprs\+\_\+ns\+\_\+timer\+\_\+cb()}, and \textbf{ gprs\+\_\+nsvc\+\_\+create2()}.



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