\doxysection{src/gb/gprs\+\_\+ns\+\_\+vty.c File Reference}
\label{gprs__ns__vty_8c}\index{src/gb/gprs\_ns\_vty.c@{src/gb/gprs\_ns\_vty.c}}


VTY interface for our GPRS Networks Service (NS) implementation.  


{\ttfamily \#include $<$stdlib.\+h$>$}\newline
{\ttfamily \#include $<$unistd.\+h$>$}\newline
{\ttfamily \#include $<$errno.\+h$>$}\newline
{\ttfamily \#include $<$stdint.\+h$>$}\newline
{\ttfamily \#include $<$arpa/inet.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/msgb.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/byteswap.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gsm/tlv.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/talloc.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/select.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/rate\+\_\+ctr.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gprs/gprs\+\_\+ns.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gprs/gprs\+\_\+bssgp.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/socket.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/vty/vty.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/vty/command.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/vty/logging.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/vty/telnet\+\_\+interface.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/vty/misc.\+h$>$}\newline
{\ttfamily \#include \char`\"{}common\+\_\+vty.\+h\char`\"{}}\newline
{\ttfamily \#include \char`\"{}gb\+\_\+internal.\+h\char`\"{}}\newline
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ NSE\+\_\+\+CMD\+\_\+\+STR}~\char`\"{}Persistent NS \textbf{ Entity\textbackslash{}n}\char`\"{} \char`\"{}NS Entity ID (NSEI)\textbackslash{}\textbf{ n}\char`\"{}
\item 
\#define \textbf{ ENCAPS\+\_\+\+STR}~\char`\"{}NS encapsulation \textbf{ options\textbackslash{}n}\char`\"{}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
static void \textbf{ log\+\_\+set\+\_\+nsvc\+\_\+filter} (struct \textbf{ log\+\_\+target} $\ast$target, struct \textbf{ gprs\+\_\+nsvc} $\ast$nsvc)
\item 
static int \textbf{ config\+\_\+write\+\_\+ns} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
\textbf{ DEFUN} (cfg\+\_\+ns, cfg\+\_\+ns\+\_\+cmd, \char`\"{}ns\char`\"{}, \char`\"{}Configure the GPRS Network Service\char`\"{})
\item 
static void \textbf{ dump\+\_\+nse} (struct \textbf{ vty} $\ast$\textbf{ vty}, const struct \textbf{ gprs\+\_\+nsvc} $\ast$nsvc, bool stats, bool persistent\+\_\+only)
\item 
static void \textbf{ dump\+\_\+ns} (struct \textbf{ vty} $\ast$\textbf{ vty}, const struct \textbf{ gprs\+\_\+ns\+\_\+inst} $\ast$nsi, bool stats, bool persistent\+\_\+only)
\item 
\textbf{ DEFUN} (show\+\_\+ns, show\+\_\+ns\+\_\+cmd, \char`\"{}show ns\char`\"{}, SHOW\+\_\+\+STR \char`\"{}Display information about the NS protocol\char`\"{})
\item 
\textbf{ DEFUN} (show\+\_\+ns\+\_\+stats, show\+\_\+ns\+\_\+stats\+\_\+cmd, \char`\"{}show ns stats\char`\"{}, SHOW\+\_\+\+STR \char`\"{}Display information about the NS \textbf{ protocol\textbackslash{}n}\char`\"{} \char`\"{}Include \textbf{ statistics\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (show\+\_\+ns\+\_\+pers, show\+\_\+ns\+\_\+pers\+\_\+cmd, \char`\"{}show ns persistent\char`\"{}, SHOW\+\_\+\+STR \char`\"{}Display information about the NS \textbf{ protocol\textbackslash{}n}\char`\"{} \char`\"{}Show only persistent \textbf{ NS\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (show\+\_\+nse, show\+\_\+nse\+\_\+cmd, \char`\"{}show ns (\textbf{ nsei}$\vert$nsvc) $<$0-\/65535$>$ [stats]\char`\"{}, SHOW\+\_\+\+STR \char`\"{}Display information about the NS \textbf{ protocol\textbackslash{}n}\char`\"{} \char`\"{}Select one NSE by its NSE \textbf{ Identifier\textbackslash{}n}\char`\"{} \char`\"{}Select one NSE by its NS-\/VC \textbf{ Identifier\textbackslash{}n}\char`\"{} \char`\"{}The Identifier of selected \textbf{ type\textbackslash{}n}\char`\"{} \char`\"{}Include \textbf{ Statistics\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+nse\+\_\+nsvc, cfg\+\_\+nse\+\_\+nsvci\+\_\+cmd, \char`\"{}nse $<$0-\/65535$>$ nsvci $<$0-\/65534$>$\char`\"{}, NSE\+\_\+\+CMD\+\_\+\+STR \char`\"{}NS Virtual \textbf{ Connection\textbackslash{}n}\char`\"{} \char`\"{}NS Virtual Connection ID (NSVCI)\textbackslash{}\textbf{ n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+nse\+\_\+remoteip, cfg\+\_\+nse\+\_\+remoteip\+\_\+cmd, \char`\"{}nse $<$0-\/65535$>$ remote-\/ip A.\+B.\+C.\+D\char`\"{}, NSE\+\_\+\+CMD\+\_\+\+STR \char`\"{}Remote IP \textbf{ Address\textbackslash{}n}\char`\"{} \char`\"{}Remote IP \textbf{ Address\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+nse\+\_\+remoteport, cfg\+\_\+nse\+\_\+remoteport\+\_\+cmd, \char`\"{}nse $<$0-\/65535$>$ remote-\/port $<$0-\/65535$>$\char`\"{}, NSE\+\_\+\+CMD\+\_\+\+STR \char`\"{}Remote UDP \textbf{ Port\textbackslash{}n}\char`\"{} \char`\"{}Remote UDP Port \textbf{ Number\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+nse\+\_\+fr\+\_\+dlci, cfg\+\_\+nse\+\_\+fr\+\_\+dlci\+\_\+cmd, \char`\"{}nse $<$0-\/65535$>$ fr-\/dlci $<$16-\/1007$>$\char`\"{}, NSE\+\_\+\+CMD\+\_\+\+STR \char`\"{}Frame Relay \textbf{ DLCI\textbackslash{}n}\char`\"{} \char`\"{}Frame Relay DLCI \textbf{ Number\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+nse\+\_\+encaps, cfg\+\_\+nse\+\_\+encaps\+\_\+cmd, \char`\"{}nse $<$0-\/65535$>$ encapsulation (udp$\vert$framerelay-\/gre)\char`\"{}, NSE\+\_\+\+CMD\+\_\+\+STR \char`\"{}Encapsulation \textbf{ for} \textbf{ NS\textbackslash{}n}\char`\"{} \char`\"{}UDP/IP \textbf{ Encapsulation\textbackslash{}n}\char`\"{} \char`\"{}Frame-\/Relay/GRE/IP \textbf{ Encapsulation\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+nse\+\_\+remoterole, cfg\+\_\+nse\+\_\+remoterole\+\_\+cmd, \char`\"{}nse $<$0-\/65535$>$ remote-\/role (sgsn$\vert$bss)\char`\"{}, NSE\+\_\+\+CMD\+\_\+\+STR \char`\"{}Remote NSE \textbf{ Role\textbackslash{}n}\char`\"{} \char`\"{}Remote Peer is \textbf{ SGSN\textbackslash{}n}\char`\"{} \char`\"{}Remote Peer is \textbf{ BSS\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+no\+\_\+nse, cfg\+\_\+no\+\_\+nse\+\_\+cmd, \char`\"{}no nse $<$0-\/65535$>$\char`\"{}, \char`\"{}Delete Persistent NS \textbf{ Entity\textbackslash{}n}\char`\"{} \char`\"{}Delete \char`\"{} NSE\+\_\+\+CMD\+\_\+\+STR)
\item 
\textbf{ DEFUN} (cfg\+\_\+ns\+\_\+timer, cfg\+\_\+ns\+\_\+timer\+\_\+cmd, \char`\"{}timer \char`\"{} NS\+\_\+\+TIMERS \char`\"{} $<$0-\/65535$>$\char`\"{}, \char`\"{}Network Service \textbf{ Timer\textbackslash{}n}\char`\"{} NS\+\_\+\+TIMERS\+\_\+\+HELP \char`\"{}Timer \textbf{ Value\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+nsip\+\_\+local\+\_\+ip, cfg\+\_\+nsip\+\_\+local\+\_\+ip\+\_\+cmd, \char`\"{}encapsulation udp local-\/ip A.\+B.\+C.\+D\char`\"{}, ENCAPS\+\_\+\+STR \char`\"{}NS over UDP \textbf{ Encapsulation\textbackslash{}n}\char`\"{} \char`\"{}Set the IP address on which we listen \textbf{ for} NS/\textbf{ UDP\textbackslash{}n}\char`\"{} \char`\"{}IP \textbf{ Address\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+nsip\+\_\+local\+\_\+port, cfg\+\_\+nsip\+\_\+local\+\_\+port\+\_\+cmd, \char`\"{}encapsulation udp local-\/port $<$0-\/65535$>$\char`\"{}, ENCAPS\+\_\+\+STR \char`\"{}NS over UDP \textbf{ Encapsulation\textbackslash{}n}\char`\"{} \char`\"{}Set the UDP port on which we listen \textbf{ for} NS/\textbf{ UDP\textbackslash{}n}\char`\"{} \char`\"{}UDP port \textbf{ number\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+nsip\+\_\+dscp, cfg\+\_\+nsip\+\_\+dscp\+\_\+cmd, \char`\"{}encapsulation udp dscp $<$0-\/255$>$\char`\"{}, ENCAPS\+\_\+\+STR \char`\"{}NS over UDP \textbf{ Encapsulation\textbackslash{}n}\char`\"{} \char`\"{}Set DSCP/TOS on the UDP \textbf{ socket\textbackslash{}n}\char`\"{} \char`\"{}DSCP \textbf{ Value\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+nsip\+\_\+res\+\_\+block\+\_\+unblock, cfg\+\_\+nsip\+\_\+res\+\_\+block\+\_\+unblock\+\_\+cmd, \char`\"{}encapsulation udp use-\/reset-\/block-\/unblock (enabled$\vert$disabled)\char`\"{}, ENCAPS\+\_\+\+STR \char`\"{}NS over UDP \textbf{ Encapsulation\textbackslash{}n}\char`\"{} \char`\"{}Use NS-\/\{RESET,BLOCK,UNBLOCK\} procedures in violation of 3GPP TS 48.\+016\textbackslash{}\textbf{ n}\char`\"{} \char`\"{}Enable NS-\/\{RESET,BLOCK,UNBLOCK\}\textbackslash{}\textbf{ n}\char`\"{} \char`\"{}Disable NS-\/\{RESET,BLOCK,UNBLOCK\}\textbackslash{}\textbf{ n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+frgre\+\_\+local\+\_\+ip, cfg\+\_\+frgre\+\_\+local\+\_\+ip\+\_\+cmd, \char`\"{}encapsulation framerelay-\/gre local-\/ip A.\+B.\+C.\+D\char`\"{}, ENCAPS\+\_\+\+STR \char`\"{}NS over Frame Relay over GRE \textbf{ Encapsulation\textbackslash{}n}\char`\"{} \char`\"{}Set the IP address on which we listen \textbf{ for} NS/FR/\textbf{ GRE\textbackslash{}n}\char`\"{} \char`\"{}IP \textbf{ Address\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+frgre\+\_\+enable, cfg\+\_\+frgre\+\_\+enable\+\_\+cmd, \char`\"{}encapsulation framerelay-\/gre enabled (1$\vert$0)\char`\"{}, ENCAPS\+\_\+\+STR \char`\"{}NS over Frame Relay over GRE \textbf{ Encapsulation\textbackslash{}n}\char`\"{} \char`\"{}Enable or disable Frame Relay over \textbf{ GRE\textbackslash{}n}\char`\"{} \char`\"{}\textbf{ Enable\textbackslash{}n}\char`\"{} \char`\"{}\textbf{ Disable\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (nsvc\+\_\+nsei, nsvc\+\_\+nsei\+\_\+cmd, \char`\"{}nsvc (\textbf{ nsei}$\vert$nsvci) $<$0-\/65535$>$ (block$\vert$unblock$\vert$reset)\char`\"{}, \char`\"{}Perform an operation on a \textbf{ NSVC\textbackslash{}n}\char`\"{} \char`\"{}NSEI to identify NS-\/VC Identifier (NS-\/VCI)\textbackslash{}\textbf{ n}\char`\"{} \char`\"{}NS-\/VC Identifier (NS-\/VCI)\textbackslash{}\textbf{ n}\char`\"{} \char`\"{}The \textbf{ NSEI\textbackslash{}n}\char`\"{} \char`\"{}Initiate BLOCK \textbf{ procedure\textbackslash{}n}\char`\"{} \char`\"{}Initiate UNBLOCK \textbf{ procedure\textbackslash{}n}\char`\"{} \char`\"{}Initiate RESET \textbf{ procedure\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (logging\+\_\+fltr\+\_\+nsvc, logging\+\_\+fltr\+\_\+nsvc\+\_\+cmd, \char`\"{}logging filter nsvc (\textbf{ nsei}$\vert$nsvci) $<$0-\/65535$>$\char`\"{}, LOGGING\+\_\+\+STR \textbf{ FILTER\+\_\+\+STR} \char`\"{}Filter based on NS Virtual \textbf{ Connection\textbackslash{}n}\char`\"{} \char`\"{}Identify NS-\/VC by \textbf{ NSEI\textbackslash{}n}\char`\"{} \char`\"{}Identify NS-\/VC by \textbf{ NSVCI\textbackslash{}n}\char`\"{} \char`\"{}Numeric \textbf{ identifier\textbackslash{}n}\char`\"{})
\item 
int \textbf{ gprs\+\_\+ns\+\_\+vty\+\_\+init} (struct \textbf{ gprs\+\_\+ns\+\_\+inst} $\ast$nsi)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
static struct \textbf{ gprs\+\_\+ns\+\_\+inst} $\ast$ \textbf{ vty\+\_\+nsi} = NULL
\item 
static const struct \textbf{ value\+\_\+string} \textbf{ gprs\+\_\+ns\+\_\+timer\+\_\+strs} [$\,$]
\item 
static struct \textbf{ cmd\+\_\+node} \textbf{ ns\+\_\+node}
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
VTY interface for our GPRS Networks Service (NS) implementation. 



\doxysubsection{Macro Definition Documentation}
\mbox{\label{gprs__ns__vty_8c_ac082b73f86037e53b9e1319c05e88e3e}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!ENCAPS\_STR@{ENCAPS\_STR}}
\index{ENCAPS\_STR@{ENCAPS\_STR}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{ENCAPS\_STR}
{\footnotesize\ttfamily \#define ENCAPS\+\_\+\+STR~\char`\"{}NS encapsulation \textbf{ options\textbackslash{}n}\char`\"{}}

\mbox{\label{gprs__ns__vty_8c_a6199357cecfe4f6472f6f2feb9dc79fd}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!NSE\_CMD\_STR@{NSE\_CMD\_STR}}
\index{NSE\_CMD\_STR@{NSE\_CMD\_STR}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{NSE\_CMD\_STR}
{\footnotesize\ttfamily \#define NSE\+\_\+\+CMD\+\_\+\+STR~\char`\"{}Persistent NS \textbf{ Entity\textbackslash{}n}\char`\"{} \char`\"{}NS Entity ID (NSEI)\textbackslash{}\textbf{ n}\char`\"{}}



\doxysubsection{Function Documentation}
\mbox{\label{gprs__ns__vty_8c_a3354c581c2818451a31203e36eee8bd4}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!config\_write\_ns@{config\_write\_ns}}
\index{config\_write\_ns@{config\_write\_ns}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{config\_write\_ns()}
{\footnotesize\ttfamily static int config\+\_\+write\+\_\+ns (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ gprs\+\_\+nsvc\+::bts\+\_\+addr}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::dscp}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::enabled}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::frgre}, \textbf{ gprs\+\_\+nsvc\+::frgre}, \textbf{ get\+\_\+value\+\_\+string()}, \textbf{ GPRS\+\_\+\+NS\+\_\+\+LL\+\_\+\+FR\+\_\+\+GRE}, \textbf{ GPRS\+\_\+\+NS\+\_\+\+LL\+\_\+\+UDP}, \textbf{ gprs\+\_\+ns\+\_\+timer\+\_\+strs}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::gprs\+\_\+nsvcs}, \textbf{ gprs\+\_\+nsvc\+::ip}, \textbf{ list}, \textbf{ gprs\+\_\+nsvc\+::ll}, \textbf{ llist\+\_\+for\+\_\+each\+\_\+entry}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::local\+\_\+ip}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::local\+\_\+port}, \textbf{ gprs\+\_\+nsvc\+::nsei}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::nsip}, \textbf{ gprs\+\_\+nsvc\+::nsvci}, \textbf{ osmo\+\_\+htonl}, \textbf{ osmo\+\_\+ntohs}, \textbf{ gprs\+\_\+nsvc\+::persistent}, \textbf{ gprs\+\_\+nsvc\+::remote\+\_\+end\+\_\+is\+\_\+sgsn}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::timeout}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::use\+\_\+reset\+\_\+block\+\_\+unblock}, \textbf{ VTY\+\_\+\+NEWLINE}, \textbf{ vty\+\_\+nsi}, and \textbf{ vty\+\_\+out()}.



Referenced by \textbf{ gprs\+\_\+ns\+\_\+vty\+\_\+init()}.

\mbox{\label{gprs__ns__vty_8c_a59df44b222c4895952c66cca1b0f8ed6}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [1/21]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+frgre\+\_\+enable}]{,  }\item[{cfg\+\_\+frgre\+\_\+enable\+\_\+cmd}]{,  }\item[{\char`\"{}encapsulation framerelay-\/gre enabled (1$\vert$0)\char`\"{}}]{,  }\item[{\textbf{ ENCAPS\+\_\+\+STR} \char`\"{}NS over Frame Relay over GRE \textbf{ Encapsulation\textbackslash{}n}\char`\"{} \char`\"{}Enable or disable Frame Relay over \textbf{ GRE\textbackslash{}n}\char`\"{} \char`\"{}\textbf{ Enable\textbackslash{}n}\char`\"{} \char`\"{}\textbf{ Disable\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::enabled}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::frgre}, and \textbf{ vty\+\_\+nsi}.

\mbox{\label{gprs__ns__vty_8c_a93c36f0783aa39f86cd798c99ddcfb3d}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [2/21]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+frgre\+\_\+local\+\_\+ip}]{,  }\item[{cfg\+\_\+frgre\+\_\+local\+\_\+ip\+\_\+cmd}]{,  }\item[{\char`\"{}encapsulation framerelay-\/gre local-\/ip A.\+B.\+C.\+D\char`\"{}}]{,  }\item[{\textbf{ ENCAPS\+\_\+\+STR} \char`\"{}NS over Frame Relay over GRE \textbf{ Encapsulation\textbackslash{}n}\char`\"{} \char`\"{}Set the IP address on which we listen \textbf{ for} NS/FR/\textbf{ GRE\textbackslash{}n}\char`\"{} \char`\"{}IP \textbf{ Address\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::frgre}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::local\+\_\+ip}, \textbf{ osmo\+\_\+ntohl}, and \textbf{ vty\+\_\+nsi}.

\mbox{\label{gprs__ns__vty_8c_ac8bc4ebed23746a99f26c6b4d6767ed0}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [3/21]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+no\+\_\+nse}]{,  }\item[{cfg\+\_\+no\+\_\+nse\+\_\+cmd}]{,  }\item[{\char`\"{}no nse $<$0-\/65535$>$\char`\"{}}]{,  }\item[{\char`\"{}Delete Persistent NS \textbf{ Entity\textbackslash{}n}\char`\"{} \char`\"{}Delete \char`\"{}}]{NSE\+\_\+\+CMD\+\_\+\+STR }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ CMD\+\_\+\+WARNING}, \textbf{ gprs\+\_\+nsvc\+\_\+by\+\_\+nsei()}, \textbf{ nsei}, \textbf{ gprs\+\_\+nsvc\+::persistent}, \textbf{ VTY\+\_\+\+NEWLINE}, \textbf{ vty\+\_\+nsi}, and \textbf{ vty\+\_\+out()}.

\mbox{\label{gprs__ns__vty_8c_a2b8277e8810b661c1cd0fc6b828397b6}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [4/21]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+ns}]{,  }\item[{cfg\+\_\+ns\+\_\+cmd}]{,  }\item[{\char`\"{}ns\char`\"{}}]{,  }\item[{\char`\"{}Configure the GPRS Network Service\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ L\+\_\+\+NS\+\_\+\+NODE}, and \textbf{ vty\+::node}.

\mbox{\label{gprs__ns__vty_8c_a0174875e9ca0b03e12b7a71a8793b5d7}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [5/21]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+ns\+\_\+timer}]{,  }\item[{cfg\+\_\+ns\+\_\+timer\+\_\+cmd}]{,  }\item[{\char`\"{}timer \char`\"{} NS\+\_\+\+TIMERS \char`\"{} $<$0-\/65535$>$\char`\"{}}]{,  }\item[{\char`\"{}Network Service \textbf{ Timer\textbackslash{}n}\char`\"{} NS\+\_\+\+TIMERS\+\_\+\+HELP \char`\"{}Timer \textbf{ Value\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ CMD\+\_\+\+WARNING}, \textbf{ get\+\_\+string\+\_\+value()}, \textbf{ gprs\+\_\+ns\+\_\+timer\+\_\+strs}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::timeout}, and \textbf{ vty\+\_\+nsi}.

\mbox{\label{gprs__ns__vty_8c_a46805a0cfd0ca8621cce80b2d00b9ca4}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [6/21]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+nse\+\_\+encaps}]{,  }\item[{cfg\+\_\+nse\+\_\+encaps\+\_\+cmd}]{,  }\item[{\char`\"{}nse $<$0-\/65535$>$ encapsulation (udp$\vert$framerelay-\/gre)\char`\"{}}]{,  }\item[{\textbf{ NSE\+\_\+\+CMD\+\_\+\+STR} \char`\"{}Encapsulation \textbf{ for} \textbf{ NS\textbackslash{}n}\char`\"{} \char`\"{}UDP/IP \textbf{ Encapsulation\textbackslash{}n}\char`\"{} \char`\"{}Frame-\/Relay/GRE/IP \textbf{ Encapsulation\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ CMD\+\_\+\+WARNING}, \textbf{ GPRS\+\_\+\+NS\+\_\+\+LL\+\_\+\+FR\+\_\+\+GRE}, \textbf{ GPRS\+\_\+\+NS\+\_\+\+LL\+\_\+\+UDP}, \textbf{ gprs\+\_\+nsvc\+\_\+by\+\_\+nsei()}, \textbf{ gprs\+\_\+nsvc\+::ll}, \textbf{ nsei}, \textbf{ VTY\+\_\+\+NEWLINE}, \textbf{ vty\+\_\+nsi}, and \textbf{ vty\+\_\+out()}.

\mbox{\label{gprs__ns__vty_8c_ae1c6fa4990f69eae4e93ad5cc7a45dea}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [7/21]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+nse\+\_\+fr\+\_\+dlci}]{,  }\item[{cfg\+\_\+nse\+\_\+fr\+\_\+dlci\+\_\+cmd}]{,  }\item[{\char`\"{}nse $<$0-\/65535$>$ fr-\/dlci $<$16-\/1007$>$\char`\"{}}]{,  }\item[{\textbf{ NSE\+\_\+\+CMD\+\_\+\+STR} \char`\"{}Frame Relay \textbf{ DLCI\textbackslash{}n}\char`\"{} \char`\"{}Frame Relay DLCI \textbf{ Number\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ gprs\+\_\+nsvc\+::bts\+\_\+addr}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ CMD\+\_\+\+WARNING}, \textbf{ gprs\+\_\+nsvc\+::frgre}, \textbf{ GPRS\+\_\+\+NS\+\_\+\+LL\+\_\+\+FR\+\_\+\+GRE}, \textbf{ gprs\+\_\+nsvc\+\_\+by\+\_\+nsei()}, \textbf{ gprs\+\_\+nsvc\+::ll}, \textbf{ nsei}, \textbf{ osmo\+\_\+htons}, \textbf{ VTY\+\_\+\+NEWLINE}, \textbf{ vty\+\_\+nsi}, and \textbf{ vty\+\_\+out()}.

\mbox{\label{gprs__ns__vty_8c_a4fe8da76ae7c8e4d7b0d27c00ba1fda2}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [8/21]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+nse\+\_\+nsvc}]{,  }\item[{cfg\+\_\+nse\+\_\+nsvci\+\_\+cmd}]{,  }\item[{\char`\"{}nse $<$0-\/65535$>$ nsvci $<$0-\/65534$>$\char`\"{}}]{,  }\item[{\textbf{ NSE\+\_\+\+CMD\+\_\+\+STR} \char`\"{}NS Virtual \textbf{ Connection\textbackslash{}n}\char`\"{} \char`\"{}NS Virtual Connection ID (NSVCI)\textbackslash{}\textbf{ n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ gprs\+\_\+nsvc\+\_\+by\+\_\+nsei()}, \textbf{ gprs\+\_\+nsvc\+\_\+create2()}, \textbf{ nsei}, \textbf{ gprs\+\_\+nsvc\+::nsei}, \textbf{ gprs\+\_\+nsvc\+::nsvci}, \textbf{ gprs\+\_\+nsvc\+::persistent}, and \textbf{ vty\+\_\+nsi}.

\mbox{\label{gprs__ns__vty_8c_ad1a4be28cfffd84cea54b724f70a23da}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [9/21]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+nse\+\_\+remoteip}]{,  }\item[{cfg\+\_\+nse\+\_\+remoteip\+\_\+cmd}]{,  }\item[{\char`\"{}nse $<$0-\/65535$>$ remote-\/ip A.\+B.\+C.\+D\char`\"{}}]{,  }\item[{\textbf{ NSE\+\_\+\+CMD\+\_\+\+STR} \char`\"{}Remote IP \textbf{ Address\textbackslash{}n}\char`\"{} \char`\"{}Remote IP \textbf{ Address\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ gprs\+\_\+nsvc\+::bts\+\_\+addr}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ CMD\+\_\+\+WARNING}, \textbf{ gprs\+\_\+nsvc\+\_\+by\+\_\+nsei()}, \textbf{ gprs\+\_\+nsvc\+::ip}, \textbf{ nsei}, \textbf{ VTY\+\_\+\+NEWLINE}, \textbf{ vty\+\_\+nsi}, and \textbf{ vty\+\_\+out()}.

\mbox{\label{gprs__ns__vty_8c_ab3226fa2b0bde2b95cd2215cb9d40d8b}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [10/21]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+nse\+\_\+remoteport}]{,  }\item[{cfg\+\_\+nse\+\_\+remoteport\+\_\+cmd}]{,  }\item[{\char`\"{}nse $<$0-\/65535$>$ remote-\/port $<$0-\/65535$>$\char`\"{}}]{,  }\item[{\textbf{ NSE\+\_\+\+CMD\+\_\+\+STR} \char`\"{}Remote UDP \textbf{ Port\textbackslash{}n}\char`\"{} \char`\"{}Remote UDP Port \textbf{ Number\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ gprs\+\_\+nsvc\+::bts\+\_\+addr}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ CMD\+\_\+\+WARNING}, \textbf{ GPRS\+\_\+\+NS\+\_\+\+LL\+\_\+\+UDP}, \textbf{ gprs\+\_\+nsvc\+\_\+by\+\_\+nsei()}, \textbf{ gprs\+\_\+nsvc\+::ip}, \textbf{ gprs\+\_\+nsvc\+::ll}, \textbf{ nsei}, \textbf{ osmo\+\_\+htons}, \textbf{ VTY\+\_\+\+NEWLINE}, \textbf{ vty\+\_\+nsi}, and \textbf{ vty\+\_\+out()}.

\mbox{\label{gprs__ns__vty_8c_a7ee2f5355e9a67ed18bb277f3009f2ef}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [11/21]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+nse\+\_\+remoterole}]{,  }\item[{cfg\+\_\+nse\+\_\+remoterole\+\_\+cmd}]{,  }\item[{\char`\"{}nse $<$0-\/65535$>$ remote-\/role (sgsn$\vert$bss)\char`\"{}}]{,  }\item[{\textbf{ NSE\+\_\+\+CMD\+\_\+\+STR} \char`\"{}Remote NSE \textbf{ Role\textbackslash{}n}\char`\"{} \char`\"{}Remote Peer is \textbf{ SGSN\textbackslash{}n}\char`\"{} \char`\"{}Remote Peer is \textbf{ BSS\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ CMD\+\_\+\+WARNING}, \textbf{ gprs\+\_\+nsvc\+\_\+by\+\_\+nsei()}, \textbf{ nsei}, \textbf{ gprs\+\_\+nsvc\+::remote\+\_\+end\+\_\+is\+\_\+sgsn}, \textbf{ VTY\+\_\+\+NEWLINE}, \textbf{ vty\+\_\+nsi}, and \textbf{ vty\+\_\+out()}.

\mbox{\label{gprs__ns__vty_8c_a9ef323fb7827a5d937aee01af8d0c804}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [12/21]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+nsip\+\_\+dscp}]{,  }\item[{cfg\+\_\+nsip\+\_\+dscp\+\_\+cmd}]{,  }\item[{\char`\"{}encapsulation udp dscp $<$0-\/255$>$\char`\"{}}]{,  }\item[{\textbf{ ENCAPS\+\_\+\+STR} \char`\"{}NS over UDP \textbf{ Encapsulation\textbackslash{}n}\char`\"{} \char`\"{}Set DSCP/TOS on the UDP \textbf{ socket\textbackslash{}n}\char`\"{} \char`\"{}DSCP \textbf{ Value\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::dscp}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::nsip}, and \textbf{ vty\+\_\+nsi}.

\mbox{\label{gprs__ns__vty_8c_a8000cdf4b4374b66618e5fc37d4601b7}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [13/21]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+nsip\+\_\+local\+\_\+ip}]{,  }\item[{cfg\+\_\+nsip\+\_\+local\+\_\+ip\+\_\+cmd}]{,  }\item[{\char`\"{}encapsulation udp local-\/ip A.\+B.\+C.\+D\char`\"{}}]{,  }\item[{\textbf{ ENCAPS\+\_\+\+STR} \char`\"{}NS over UDP \textbf{ Encapsulation\textbackslash{}n}\char`\"{} \char`\"{}Set the IP address on which we listen \textbf{ for} NS/\textbf{ UDP\textbackslash{}n}\char`\"{} \char`\"{}IP \textbf{ Address\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::local\+\_\+ip}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::nsip}, \textbf{ osmo\+\_\+ntohl}, and \textbf{ vty\+\_\+nsi}.

\mbox{\label{gprs__ns__vty_8c_afc8a11608efbfa1d11de06b73e66a6ca}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [14/21]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+nsip\+\_\+local\+\_\+port}]{,  }\item[{cfg\+\_\+nsip\+\_\+local\+\_\+port\+\_\+cmd}]{,  }\item[{\char`\"{}encapsulation udp local-\/port $<$0-\/65535$>$\char`\"{}}]{,  }\item[{\textbf{ ENCAPS\+\_\+\+STR} \char`\"{}NS over UDP \textbf{ Encapsulation\textbackslash{}n}\char`\"{} \char`\"{}Set the UDP port on which we listen \textbf{ for} NS/\textbf{ UDP\textbackslash{}n}\char`\"{} \char`\"{}UDP port \textbf{ number\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::local\+\_\+port}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::nsip}, and \textbf{ vty\+\_\+nsi}.

\mbox{\label{gprs__ns__vty_8c_a4696e0109fc10d1907b69fa7e3cb09bc}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [15/21]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+nsip\+\_\+res\+\_\+block\+\_\+unblock}]{,  }\item[{cfg\+\_\+nsip\+\_\+res\+\_\+block\+\_\+unblock\+\_\+cmd}]{,  }\item[{\char`\"{}encapsulation udp use-\/reset-\/block-\/unblock (enabled$\vert$disabled)\char`\"{}}]{,  }\item[{\textbf{ ENCAPS\+\_\+\+STR} \char`\"{}NS over UDP \textbf{ Encapsulation\textbackslash{}n}\char`\"{} \char`\"{}Use NS-\/\{RESET,BLOCK,UNBLOCK\} procedures in violation of 3GPP TS 48.\+016\textbackslash{}\textbf{ n}\char`\"{} \char`\"{}Enable NS-\/\{RESET,BLOCK,UNBLOCK\}\textbackslash{}\textbf{ n}\char`\"{} \char`\"{}Disable NS-\/\{RESET,BLOCK,UNBLOCK\}\textbackslash{}\textbf{ n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::nsip}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::use\+\_\+reset\+\_\+block\+\_\+unblock}, and \textbf{ vty\+\_\+nsi}.

\mbox{\label{gprs__ns__vty_8c_a3b49d7facd8b6e46c863a2f3d782be4b}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [16/21]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{logging\+\_\+fltr\+\_\+nsvc}]{,  }\item[{logging\+\_\+fltr\+\_\+nsvc\+\_\+cmd}]{,  }\item[{\char`\"{}logging filter nsvc (\textbf{ nsei}$\vert$nsvci) $<$0-\/65535$>$\char`\"{}}]{,  }\item[{\textbf{ LOGGING\+\_\+\+STR} \textbf{ FILTER\+\_\+\+STR} \char`\"{}Filter based on NS Virtual \textbf{ Connection\textbackslash{}n}\char`\"{} \char`\"{}Identify NS-\/VC by \textbf{ NSEI\textbackslash{}n}\char`\"{} \char`\"{}Identify NS-\/VC by \textbf{ NSVCI\textbackslash{}n}\char`\"{} \char`\"{}Numeric \textbf{ identifier\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ CMD\+\_\+\+WARNING}, \textbf{ gprs\+\_\+nsvc\+\_\+by\+\_\+nsei()}, \textbf{ gprs\+\_\+nsvc\+\_\+by\+\_\+nsvci()}, \textbf{ log\+\_\+set\+\_\+nsvc\+\_\+filter()}, \textbf{ log\+\_\+tgt\+\_\+mutex\+\_\+lock}, \textbf{ log\+\_\+tgt\+\_\+mutex\+\_\+unlock}, \textbf{ osmo\+\_\+log\+\_\+vty2tgt()}, \textbf{ VTY\+\_\+\+NEWLINE}, \textbf{ vty\+\_\+nsi}, and \textbf{ vty\+\_\+out()}.

\mbox{\label{gprs__ns__vty_8c_ac531a38fcdd27d9b69949d21a1b2b687}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [17/21]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{nsvc\+\_\+nsei}]{,  }\item[{nsvc\+\_\+nsei\+\_\+cmd}]{,  }\item[{\char`\"{}nsvc (\textbf{ nsei}$\vert$nsvci) $<$0-\/65535$>$ (block$\vert$unblock$\vert$reset)\char`\"{}}]{,  }\item[{\char`\"{}Perform an operation on a \textbf{ NSVC\textbackslash{}n}\char`\"{} \char`\"{}NSEI to identify NS-\/VC Identifier (NS-\/VCI)\textbackslash{}\textbf{ n}\char`\"{} \char`\"{}NS-\/VC Identifier (NS-\/VCI)\textbackslash{}\textbf{ n}\char`\"{} \char`\"{}The \textbf{ NSEI\textbackslash{}n}\char`\"{} \char`\"{}Initiate BLOCK \textbf{ procedure\textbackslash{}n}\char`\"{} \char`\"{}Initiate UNBLOCK \textbf{ procedure\textbackslash{}n}\char`\"{} \char`\"{}Initiate RESET \textbf{ procedure\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::bss\+\_\+sns\+\_\+fi}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ CMD\+\_\+\+WARNING}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+block()}, \textbf{ gprs\+\_\+ns\+\_\+tx\+\_\+unblock()}, \textbf{ gprs\+\_\+nsvc\+\_\+by\+\_\+nsei()}, \textbf{ gprs\+\_\+nsvc\+\_\+by\+\_\+nsvci()}, \textbf{ gprs\+\_\+nsvc\+\_\+reset()}, \textbf{ NS\+\_\+\+CAUSE\+\_\+\+OM\+\_\+\+INTERVENTION}, \textbf{ gprs\+\_\+nsvc\+::nsi}, \textbf{ VTY\+\_\+\+NEWLINE}, \textbf{ vty\+\_\+nsi}, and \textbf{ vty\+\_\+out()}.

\mbox{\label{gprs__ns__vty_8c_a89b18a8c65cf5deb2428a59ba3a08d32}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [18/21]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{show\+\_\+ns}]{,  }\item[{show\+\_\+ns\+\_\+cmd}]{,  }\item[{\char`\"{}show ns\char`\"{}}]{,  }\item[{\textbf{ SHOW\+\_\+\+STR} \char`\"{}Display information about the NS protocol\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ dump\+\_\+ns()}, and \textbf{ vty\+\_\+nsi}.

\mbox{\label{gprs__ns__vty_8c_a9f57fd0f83e7dfc45c4ac692c22e772d}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [19/21]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{show\+\_\+ns\+\_\+pers}]{,  }\item[{show\+\_\+ns\+\_\+pers\+\_\+cmd}]{,  }\item[{\char`\"{}show ns persistent\char`\"{}}]{,  }\item[{\textbf{ SHOW\+\_\+\+STR} \char`\"{}Display information about the NS \textbf{ protocol\textbackslash{}n}\char`\"{} \char`\"{}Show only persistent \textbf{ NS\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ dump\+\_\+ns()}, and \textbf{ vty\+\_\+nsi}.

\mbox{\label{gprs__ns__vty_8c_aa7a20bc2a4ec3dd07618c614f8aa3c23}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [20/21]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{show\+\_\+ns\+\_\+stats}]{,  }\item[{show\+\_\+ns\+\_\+stats\+\_\+cmd}]{,  }\item[{\char`\"{}show ns stats\char`\"{}}]{,  }\item[{\textbf{ SHOW\+\_\+\+STR} \char`\"{}Display information about the NS \textbf{ protocol\textbackslash{}n}\char`\"{} \char`\"{}Include \textbf{ statistics\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ dump\+\_\+ns()}, and \textbf{ vty\+\_\+nsi}.

\mbox{\label{gprs__ns__vty_8c_a54b6e35529f54b27a8e6b6bc7a53f464}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [21/21]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{show\+\_\+nse}]{,  }\item[{show\+\_\+nse\+\_\+cmd}]{,  }\item[{\char`\"{}show ns (\textbf{ nsei}$\vert$nsvc) $<$0-\/65535$>$ \char`\"{}}]{[stats],  }\item[{\textbf{ SHOW\+\_\+\+STR} \char`\"{}Display information about the NS \textbf{ protocol\textbackslash{}n}\char`\"{} \char`\"{}Select one NSE by its NSE \textbf{ Identifier\textbackslash{}n}\char`\"{} \char`\"{}Select one NSE by its NS-\/VC \textbf{ Identifier\textbackslash{}n}\char`\"{} \char`\"{}The Identifier of selected \textbf{ type\textbackslash{}n}\char`\"{} \char`\"{}Include \textbf{ Statistics\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argc}, \textbf{ argv}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ CMD\+\_\+\+WARNING}, \textbf{ dump\+\_\+nse()}, \textbf{ gprs\+\_\+nsvc\+\_\+by\+\_\+nsei()}, \textbf{ gprs\+\_\+nsvc\+\_\+by\+\_\+nsvci()}, \textbf{ gprs\+\_\+nsvc\+::nsi}, \textbf{ VTY\+\_\+\+NEWLINE}, \textbf{ vty\+\_\+nsi}, and \textbf{ vty\+\_\+out()}.

\mbox{\label{gprs__ns__vty_8c_a72c0d3965df4044822c1bd876f7ac87b}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!dump\_ns@{dump\_ns}}
\index{dump\_ns@{dump\_ns}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{dump\_ns()}
{\footnotesize\ttfamily static void dump\+\_\+ns (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty,  }\item[{const struct \textbf{ gprs\+\_\+ns\+\_\+inst} $\ast$}]{nsi,  }\item[{bool}]{stats,  }\item[{bool}]{persistent\+\_\+only }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ dump\+\_\+nse()}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::enabled}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::frgre}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::gprs\+\_\+nsvcs}, \textbf{ gprs\+\_\+sns\+\_\+dump\+\_\+vty()}, \textbf{ list}, \textbf{ llist\+\_\+for\+\_\+each\+\_\+entry}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::local\+\_\+ip}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::local\+\_\+port}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::nsip}, \textbf{ osmo\+\_\+htonl}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::unknown\+\_\+nsvc}, \textbf{ VTY\+\_\+\+NEWLINE}, \textbf{ vty\+\_\+nsi}, and \textbf{ vty\+\_\+out()}.



Referenced by \textbf{ DEFUN()}.

\mbox{\label{gprs__ns__vty_8c_a1abb3050802c90dda70153d606faf3a0}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!dump\_nse@{dump\_nse}}
\index{dump\_nse@{dump\_nse}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{dump\_nse()}
{\footnotesize\ttfamily static void dump\+\_\+nse (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty,  }\item[{const struct \textbf{ gprs\+\_\+nsvc} $\ast$}]{nsvc,  }\item[{bool}]{stats,  }\item[{bool}]{persistent\+\_\+only }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ gprs\+\_\+nsvc\+::bts\+\_\+addr}, \textbf{ gprs\+\_\+nsvc\+::ctrg}, \textbf{ gprs\+\_\+ns\+\_\+ll\+\_\+str()}, \textbf{ GPRS\+\_\+\+NS\+\_\+\+LL\+\_\+\+UDP}, \textbf{ gprs\+\_\+nsvc\+::ip}, \textbf{ gprs\+\_\+nsvc\+::ll}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::local\+\_\+port}, \textbf{ NS\+\_\+\+DESC\+\_\+A}, \textbf{ NS\+\_\+\+DESC\+\_\+B}, \textbf{ gprs\+\_\+nsvc\+::nsei}, \textbf{ gprs\+\_\+nsvc\+::nsi}, \textbf{ gprs\+\_\+ns\+\_\+inst\+::nsip}, \textbf{ gprs\+\_\+nsvc\+::nsvci}, \textbf{ osmo\+\_\+sock\+\_\+local\+\_\+ip()}, \textbf{ gprs\+\_\+nsvc\+::persistent}, \textbf{ gprs\+\_\+nsvc\+::remote\+\_\+end\+\_\+is\+\_\+sgsn}, \textbf{ gprs\+\_\+nsvc\+::remote\+\_\+state}, \textbf{ gprs\+\_\+nsvc\+::state}, \textbf{ gprs\+\_\+nsvc\+::statg}, \textbf{ VTY\+\_\+\+NEWLINE}, \textbf{ vty\+\_\+out()}, \textbf{ vty\+\_\+out\+\_\+rate\+\_\+ctr\+\_\+group()}, and \textbf{ vty\+\_\+out\+\_\+stat\+\_\+item\+\_\+group()}.



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

\mbox{\label{gprs__ns__vty_8c_a70fb3061677b2752572e3cc380dfeeae}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!gprs\_ns\_vty\_init@{gprs\_ns\_vty\_init}}
\index{gprs\_ns\_vty\_init@{gprs\_ns\_vty\_init}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{gprs\_ns\_vty\_init()}
{\footnotesize\ttfamily int gprs\+\_\+ns\+\_\+vty\+\_\+init (\begin{DoxyParamCaption}\item[{struct \textbf{ gprs\+\_\+ns\+\_\+inst} $\ast$}]{nsi }\end{DoxyParamCaption})}



References \textbf{ CFG\+\_\+\+LOG\+\_\+\+NODE}, \textbf{ CONFIG\+\_\+\+NODE}, \textbf{ config\+\_\+write\+\_\+ns()}, \textbf{ ENABLE\+\_\+\+NODE}, \textbf{ install\+\_\+lib\+\_\+element()}, \textbf{ install\+\_\+lib\+\_\+element\+\_\+ve()}, \textbf{ install\+\_\+node()}, \textbf{ L\+\_\+\+NS\+\_\+\+NODE}, \textbf{ ns\+\_\+node}, \textbf{ gprs\+\_\+nsvc\+::nsi}, and \textbf{ vty\+\_\+nsi}.

\mbox{\label{gprs__ns__vty_8c_a0390aef6a135f21117afa31b1a5de3ae}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!log\_set\_nsvc\_filter@{log\_set\_nsvc\_filter}}
\index{log\_set\_nsvc\_filter@{log\_set\_nsvc\_filter}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{log\_set\_nsvc\_filter()}
{\footnotesize\ttfamily static void log\+\_\+set\+\_\+nsvc\+\_\+filter (\begin{DoxyParamCaption}\item[{struct \textbf{ log\+\_\+target} $\ast$}]{target,  }\item[{struct \textbf{ gprs\+\_\+nsvc} $\ast$}]{nsvc }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ log\+\_\+target\+::filter\+\_\+data}, \textbf{ log\+\_\+target\+::filter\+\_\+map}, and \textbf{ LOG\+\_\+\+FLT\+\_\+\+GB\+\_\+\+NSVC}.



Referenced by \textbf{ DEFUN()}.



\doxysubsection{Variable Documentation}
\mbox{\label{gprs__ns__vty_8c_a27671450373b2b3e559c6d09f7588848}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!gprs\_ns\_timer\_strs@{gprs\_ns\_timer\_strs}}
\index{gprs\_ns\_timer\_strs@{gprs\_ns\_timer\_strs}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{gprs\_ns\_timer\_strs}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} gprs\+\_\+ns\+\_\+timer\+\_\+strs[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ 0, \textcolor{stringliteral}{"{}tns-\/block"{}} \},}
\DoxyCodeLine{        \{ 1, \textcolor{stringliteral}{"{}tns-\/block-\/retries"{}} \},}
\DoxyCodeLine{        \{ 2, \textcolor{stringliteral}{"{}tns-\/reset"{}} \},}
\DoxyCodeLine{        \{ 3, \textcolor{stringliteral}{"{}tns-\/reset-\/retries"{}} \},}
\DoxyCodeLine{        \{ 4, \textcolor{stringliteral}{"{}tns-\/test"{}} \},}
\DoxyCodeLine{        \{ 5, \textcolor{stringliteral}{"{}tns-\/alive"{}} \},}
\DoxyCodeLine{        \{ 6, \textcolor{stringliteral}{"{}tns-\/alive-\/retries"{}} \},}
\DoxyCodeLine{        \{ 7, \textcolor{stringliteral}{"{}tsns-\/prov"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


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

\mbox{\label{gprs__ns__vty_8c_a54b98448933930e0ea88fb4be2973fed}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!ns\_node@{ns\_node}}
\index{ns\_node@{ns\_node}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{ns\_node}
{\footnotesize\ttfamily struct \textbf{ cmd\+\_\+node} ns\+\_\+node\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        L\_NS\_NODE,}
\DoxyCodeLine{        \textcolor{stringliteral}{"{}\%s(config-\/ns)\# "{}},}
\DoxyCodeLine{        1,}
\DoxyCodeLine{\}}

\end{DoxyCode}


Referenced by \textbf{ gprs\+\_\+ns\+\_\+vty\+\_\+init()}.

\mbox{\label{gprs__ns__vty_8c_a52443b2004b76a0c25b0f4703d8647e3}} 
\index{gprs\_ns\_vty.c@{gprs\_ns\_vty.c}!vty\_nsi@{vty\_nsi}}
\index{vty\_nsi@{vty\_nsi}!gprs\_ns\_vty.c@{gprs\_ns\_vty.c}}
\doxysubsubsection{vty\_nsi}
{\footnotesize\ttfamily struct \textbf{ gprs\+\_\+ns\+\_\+inst}$\ast$ vty\+\_\+nsi = NULL\hspace{0.3cm}{\ttfamily [static]}}



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

