\doxysection{src/vty/stats\+\_\+vty.c File Reference}
\label{stats__vty_8c}\index{src/vty/stats\_vty.c@{src/vty/stats\_vty.c}}


VTY interface for statsd / statistic items.  


{\ttfamily \#include $<$stdlib.\+h$>$}\newline
{\ttfamily \#include $<$string.\+h$>$}\newline
{\ttfamily \#include \char`\"{}config.\+h\char`\"{}}\newline
{\ttfamily \#include $<$osmocom/vty/command.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/vty/buffer.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/vty/vty.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/vty/telnet\+\_\+interface.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/vty/misc.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/stats.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/counter.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/rate\+\_\+ctr.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/stats\+\_\+tcp.\+h$>$}\newline
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ rctr\+\_\+vty\+\_\+ctx}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ CFG\+\_\+\+STATS\+\_\+\+STR}~\char`\"{}Configure stats sub-\/\textbf{ system\textbackslash{}n}\char`\"{}
\item 
\#define \textbf{ CFG\+\_\+\+REPORTER\+\_\+\+STR}~\char`\"{}Configure a stats \textbf{ reporter\textbackslash{}n}\char`\"{}
\item 
\#define \textbf{ SHOW\+\_\+\+STATS\+\_\+\+STR}~\char`\"{}Show statistical \textbf{ values\textbackslash{}n}\char`\"{}
\item 
\#define \textbf{ SKIP\+\_\+\+ZERO\+\_\+\+STR}~\char`\"{}Skip items with total count \textbf{ zero\textbackslash{}n}\char`\"{}
\item 
\#define \textbf{ STATS\+\_\+\+STR}~\char`\"{}Stats related \textbf{ commands\textbackslash{}n}\char`\"{}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
static struct \textbf{ osmo\+\_\+stats\+\_\+reporter} $\ast$ \textbf{ osmo\+\_\+stats\+\_\+vty2srep} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static int \textbf{ set\+\_\+srep\+\_\+parameter\+\_\+str} (struct \textbf{ vty} $\ast$\textbf{ vty}, int($\ast$fun)(struct \textbf{ osmo\+\_\+stats\+\_\+reporter} $\ast$, const char $\ast$), const char $\ast$val, const char $\ast$param\+\_\+name)
\item 
static int \textbf{ set\+\_\+srep\+\_\+parameter\+\_\+int} (struct \textbf{ vty} $\ast$\textbf{ vty}, int($\ast$fun)(struct \textbf{ osmo\+\_\+stats\+\_\+reporter} $\ast$, int), const char $\ast$val, const char $\ast$param\+\_\+name)
\item 
\textbf{ DEFUN} (cfg\+\_\+stats\+\_\+reporter\+\_\+local\+\_\+ip, cfg\+\_\+stats\+\_\+reporter\+\_\+local\+\_\+ip\+\_\+cmd, \char`\"{}local-\/ip ADDR\char`\"{}, \char`\"{}Set the IP address to which we bind \textbf{ locally\textbackslash{}n}\char`\"{} \char`\"{}IP \textbf{ Address\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+no\+\_\+stats\+\_\+reporter\+\_\+local\+\_\+ip, cfg\+\_\+no\+\_\+stats\+\_\+reporter\+\_\+local\+\_\+ip\+\_\+cmd, \char`\"{}no local-\/ip\char`\"{}, NO\+\_\+\+STR \char`\"{}Set the IP address to which we bind \textbf{ locally\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+stats\+\_\+reporter\+\_\+remote\+\_\+ip, cfg\+\_\+stats\+\_\+reporter\+\_\+remote\+\_\+ip\+\_\+cmd, \char`\"{}remote-\/ip ADDR\char`\"{}, \char`\"{}Set the remote IP address to which we \textbf{ connect\textbackslash{}n}\char`\"{} \char`\"{}IP \textbf{ Address\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+stats\+\_\+reporter\+\_\+remote\+\_\+port, cfg\+\_\+stats\+\_\+reporter\+\_\+remote\+\_\+port\+\_\+cmd, \char`\"{}remote-\/port $<$1-\/65535$>$\char`\"{}, \char`\"{}Set the remote port to which we \textbf{ connect\textbackslash{}n}\char`\"{} \char`\"{}Remote port \textbf{ number\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+stats\+\_\+reporter\+\_\+mtu, cfg\+\_\+stats\+\_\+reporter\+\_\+mtu\+\_\+cmd, \char`\"{}mtu $<$100-\/65535$>$\char`\"{}, \char`\"{}Set the maximum packet \textbf{ size\textbackslash{}n}\char`\"{} \char`\"{}Size in \textbf{ byte\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+no\+\_\+stats\+\_\+reporter\+\_\+mtu, cfg\+\_\+no\+\_\+stats\+\_\+reporter\+\_\+mtu\+\_\+cmd, \char`\"{}no mtu\char`\"{}, NO\+\_\+\+STR \char`\"{}Set the maximum packet \textbf{ size\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+stats\+\_\+reporter\+\_\+prefix, cfg\+\_\+stats\+\_\+reporter\+\_\+prefix\+\_\+cmd, \char`\"{}prefix PREFIX\char`\"{}, \char`\"{}Set the item \textbf{ name} \textbf{ prefix\textbackslash{}n}\char`\"{} \char`\"{}The prefix \textbf{ string\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+no\+\_\+stats\+\_\+reporter\+\_\+prefix, cfg\+\_\+no\+\_\+stats\+\_\+reporter\+\_\+prefix\+\_\+cmd, \char`\"{}no prefix\char`\"{}, NO\+\_\+\+STR \char`\"{}Set the item \textbf{ name} \textbf{ prefix\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+stats\+\_\+reporter\+\_\+level, cfg\+\_\+stats\+\_\+reporter\+\_\+level\+\_\+cmd, \char`\"{}level (global$\vert$peer$\vert$subscriber)\char`\"{}, \char`\"{}Set the maximum group \textbf{ level\textbackslash{}n}\char`\"{} \char`\"{}Report global groups \textbf{ only\textbackslash{}n}\char`\"{} \char`\"{}Report global and \textbf{ network} peer related \textbf{ groups\textbackslash{}n}\char`\"{} \char`\"{}Report global, peer, and subscriber \textbf{ groups\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+stats\+\_\+reporter\+\_\+enable, cfg\+\_\+stats\+\_\+reporter\+\_\+enable\+\_\+cmd, \char`\"{}enable\char`\"{}, \char`\"{}Enable the \textbf{ reporter\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+stats\+\_\+reporter\+\_\+disable, cfg\+\_\+stats\+\_\+reporter\+\_\+disable\+\_\+cmd, \char`\"{}disable\char`\"{}, \char`\"{}Disable the \textbf{ reporter\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+stats\+\_\+reporter\+\_\+flush\+\_\+period, cfg\+\_\+stats\+\_\+reporter\+\_\+flush\+\_\+period\+\_\+cmd, \char`\"{}flush-\/period $<$0-\/65535$>$\char`\"{}, CFG\+\_\+\+STATS\+\_\+\+STR \char`\"{}Send all stats even \textbf{ if} they have not changed (i.\+e. force the flush)\char`\"{} \char`\"{}every N-\/th reporting interval. Set to 0 to disable regular flush (default).\textbackslash{}\textbf{ n}\char`\"{} \char`\"{}0 to disable regular flush (default), 1 to flush every \textbf{ time}, 2 to flush every 2nd \textbf{ time}, \textbf{ etc\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+stats\+\_\+reporter\+\_\+statsd, cfg\+\_\+stats\+\_\+reporter\+\_\+statsd\+\_\+cmd, \char`\"{}stats reporter statsd [NAME]\char`\"{}, CFG\+\_\+\+STATS\+\_\+\+STR \textbf{ CFG\+\_\+\+REPORTER\+\_\+\+STR} \char`\"{}Report to a STATSD \textbf{ server\textbackslash{}n}\char`\"{} \char`\"{}Name of the \textbf{ reporter\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+no\+\_\+stats\+\_\+reporter\+\_\+statsd, cfg\+\_\+no\+\_\+stats\+\_\+reporter\+\_\+statsd\+\_\+cmd, \char`\"{}no stats reporter statsd [NAME]\char`\"{}, NO\+\_\+\+STR \textbf{ CFG\+\_\+\+STATS\+\_\+\+STR} \textbf{ CFG\+\_\+\+REPORTER\+\_\+\+STR} \char`\"{}Report to a STATSD \textbf{ server\textbackslash{}n}\char`\"{} \char`\"{}Name of the \textbf{ reporter\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+stats\+\_\+reporter\+\_\+log, cfg\+\_\+stats\+\_\+reporter\+\_\+log\+\_\+cmd, \char`\"{}stats reporter log [NAME]\char`\"{}, CFG\+\_\+\+STATS\+\_\+\+STR \textbf{ CFG\+\_\+\+REPORTER\+\_\+\+STR} \char`\"{}Report to the \textbf{ logger\textbackslash{}n}\char`\"{} \char`\"{}Name of the \textbf{ reporter\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+no\+\_\+stats\+\_\+reporter\+\_\+log, cfg\+\_\+no\+\_\+stats\+\_\+reporter\+\_\+log\+\_\+cmd, \char`\"{}no stats reporter log [NAME]\char`\"{}, NO\+\_\+\+STR \textbf{ CFG\+\_\+\+STATS\+\_\+\+STR} \textbf{ CFG\+\_\+\+REPORTER\+\_\+\+STR} \char`\"{}Report to the \textbf{ logger\textbackslash{}n}\char`\"{} \char`\"{}Name of the \textbf{ reporter\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+stats\+\_\+interval, cfg\+\_\+stats\+\_\+interval\+\_\+cmd, \char`\"{}stats interval $<$0-\/65535$>$\char`\"{}, CFG\+\_\+\+STATS\+\_\+\+STR \char`\"{}Set the reporting \textbf{ interval\textbackslash{}n}\char`\"{} \char`\"{}Interval in seconds (0 disables the reporting interval)\textbackslash{}\textbf{ n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+tcp\+\_\+stats\+\_\+interval, cfg\+\_\+tcp\+\_\+stats\+\_\+interval\+\_\+cmd, \char`\"{}stats-\/tcp interval $<$0-\/65535$>$\char`\"{}, CFG\+\_\+\+STATS\+\_\+\+STR \char`\"{}Set the tcp socket stats polling \textbf{ interval\textbackslash{}n}\char`\"{} \char`\"{}Interval in seconds (0 disables the polling interval)\textbackslash{}\textbf{ n}\char`\"{})
\item 
\textbf{ DEFUN} (cfg\+\_\+tcp\+\_\+stats\+\_\+batch\+\_\+size, cfg\+\_\+tcp\+\_\+stats\+\_\+batch\+\_\+size\+\_\+cmd, \char`\"{}stats-\/tcp batch-\/size $<$1-\/65535$>$\char`\"{}, CFG\+\_\+\+STATS\+\_\+\+STR \char`\"{}Set the number of tcp sockets that are processed per stats polling \textbf{ interval\textbackslash{}n}\char`\"{} \char`\"{}Number of sockets per \textbf{ interval\textbackslash{}n}\char`\"{})
\item 
\textbf{ DEFUN} (show\+\_\+stats, show\+\_\+stats\+\_\+cmd, \char`\"{}show stats [skip-\/zero]\char`\"{}, SHOW\+\_\+\+STR \textbf{ SHOW\+\_\+\+STATS\+\_\+\+STR} \textbf{ SKIP\+\_\+\+ZERO\+\_\+\+STR})
\item 
\textbf{ DEFUN} (show\+\_\+stats\+\_\+level, show\+\_\+stats\+\_\+level\+\_\+cmd, \char`\"{}show stats \textbf{ level} (global$\vert$peer$\vert$subscriber) [skip-\/zero]\char`\"{}, SHOW\+\_\+\+STR \textbf{ SHOW\+\_\+\+STATS\+\_\+\+STR} \char`\"{}Set the maximum group \textbf{ level\textbackslash{}n}\char`\"{} \char`\"{}Show global groups \textbf{ only\textbackslash{}n}\char`\"{} \char`\"{}Show global and \textbf{ network} peer related \textbf{ groups\textbackslash{}n}\char`\"{} \char`\"{}Show global, peer, and subscriber \textbf{ groups\textbackslash{}n}\char`\"{} SKIP\+\_\+\+ZERO\+\_\+\+STR)
\item 
static int \textbf{ asciidoc\+\_\+handle\+\_\+counter} (struct \textbf{ osmo\+\_\+counter} $\ast$counter, void $\ast$sctx\+\_\+)
\item 
static void \textbf{ asciidoc\+\_\+counter\+\_\+generate} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
static int \textbf{ asciidoc\+\_\+rate\+\_\+ctr\+\_\+handler} (struct \textbf{ rate\+\_\+ctr\+\_\+group} $\ast$ctrg, struct \textbf{ rate\+\_\+ctr} $\ast$ctr, const struct \textbf{ rate\+\_\+ctr\+\_\+desc} $\ast$\textbf{ desc}, void $\ast$sctx\+\_\+)
\item 
static int \textbf{ asciidoc\+\_\+rate\+\_\+ctr\+\_\+group\+\_\+handler} (struct \textbf{ rate\+\_\+ctr\+\_\+group} $\ast$ctrg, void $\ast$sctx\+\_\+)
\item 
static int \textbf{ asciidoc\+\_\+osmo\+\_\+stat\+\_\+item\+\_\+handler} (struct \textbf{ osmo\+\_\+stat\+\_\+item\+\_\+group} $\ast$statg, struct \textbf{ osmo\+\_\+stat\+\_\+item} $\ast$item, void $\ast$sctx\+\_\+)
\item 
static int \textbf{ asciidoc\+\_\+osmo\+\_\+stat\+\_\+item\+\_\+group\+\_\+handler} (struct \textbf{ osmo\+\_\+stat\+\_\+item\+\_\+group} $\ast$statg, void $\ast$sctx\+\_\+)
\item 
\textbf{ DEFUN} (show\+\_\+stats\+\_\+asciidoc\+\_\+table, show\+\_\+stats\+\_\+asciidoc\+\_\+table\+\_\+cmd, \char`\"{}show asciidoc counters\char`\"{}, SHOW\+\_\+\+STR \char`\"{}Asciidoc \textbf{ generation\textbackslash{}n}\char`\"{} \char`\"{}Generate table of all registered \textbf{ counters\textbackslash{}n}\char`\"{})
\item 
static int \textbf{ rate\+\_\+ctr\+\_\+group\+\_\+handler} (struct \textbf{ rate\+\_\+ctr\+\_\+group} $\ast$ctrg, void $\ast$sctx\+\_\+)
\item 
\textbf{ DEFUN} (show\+\_\+rate\+\_\+counters, show\+\_\+rate\+\_\+counters\+\_\+cmd, \char`\"{}show rate-\/counters [skip-\/zero]\char`\"{}, SHOW\+\_\+\+STR \char`\"{}Show all rate \textbf{ counters\textbackslash{}n}\char`\"{} SKIP\+\_\+\+ZERO\+\_\+\+STR)
\item 
\textbf{ DEFUN} (stats\+\_\+report, stats\+\_\+report\+\_\+cmd, \char`\"{}stats report\char`\"{}, STATS\+\_\+\+STR \char`\"{}Manurally trigger reporting of \textbf{ stats\textbackslash{}n}\char`\"{})
\item 
static int \textbf{ reset\+\_\+rate\+\_\+ctr\+\_\+group\+\_\+handler} (struct \textbf{ rate\+\_\+ctr\+\_\+group} $\ast$ctrg, void $\ast$sctx\+\_\+)
\item 
\textbf{ DEFUN} (stats\+\_\+reset, stats\+\_\+reset\+\_\+cmd, \char`\"{}stats reset\char`\"{}, STATS\+\_\+\+STR \char`\"{}Reset all rate counter \textbf{ stats\textbackslash{}n}\char`\"{})
\item 
static int \textbf{ config\+\_\+write\+\_\+stats\+\_\+reporter} (struct \textbf{ vty} $\ast$\textbf{ vty}, struct \textbf{ osmo\+\_\+stats\+\_\+reporter} $\ast$srep)
\item 
static int \textbf{ config\+\_\+write\+\_\+stats} (struct \textbf{ vty} $\ast$\textbf{ vty})
\item 
void \textbf{ osmo\+\_\+stats\+\_\+vty\+\_\+add\+\_\+cmds} (void)
\begin{DoxyCompactList}\small\item\em Add stats related commands to the VTY Call this once during your application initialization if you would like to have stats VTY commands enabled. \end{DoxyCompactList}\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ host} \textbf{ host}
\item 
struct \textbf{ cmd\+\_\+node} \textbf{ cfg\+\_\+stats\+\_\+node}
\item 
static const struct \textbf{ value\+\_\+string} \textbf{ stats\+\_\+class\+\_\+strs} [$\,$]
\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
VTY interface for statsd / statistic items. 

This code allows you to register a couple of VTY commands that permit configuration of the \doxyref{Statistics reporting}{p.}{group__stats} functionality from the VTY.

Use \doxyref{osmo\+\_\+stats\+\_\+vty\+\_\+add\+\_\+cmds}{p.}{stats__vty_8c_a0f69ba0dd4bc8d2e348e3e501fb3c687} once at application start-\/up to enable related commands. 

\doxysubsection{Macro Definition Documentation}
\mbox{\label{stats__vty_8c_aeeaef663f9966f7721c47b467da58ffc}} 
\index{stats\_vty.c@{stats\_vty.c}!CFG\_REPORTER\_STR@{CFG\_REPORTER\_STR}}
\index{CFG\_REPORTER\_STR@{CFG\_REPORTER\_STR}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{CFG\_REPORTER\_STR}
{\footnotesize\ttfamily \#define CFG\+\_\+\+REPORTER\+\_\+\+STR~\char`\"{}Configure a stats \textbf{ reporter\textbackslash{}n}\char`\"{}}

\mbox{\label{stats__vty_8c_af91f50b9e000ff05234bede9346b04e8}} 
\index{stats\_vty.c@{stats\_vty.c}!CFG\_STATS\_STR@{CFG\_STATS\_STR}}
\index{CFG\_STATS\_STR@{CFG\_STATS\_STR}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{CFG\_STATS\_STR}
{\footnotesize\ttfamily \#define CFG\+\_\+\+STATS\+\_\+\+STR~\char`\"{}Configure stats sub-\/\textbf{ system\textbackslash{}n}\char`\"{}}

\mbox{\label{stats__vty_8c_a92402704820409d8a0ff75b02ab05f0c}} 
\index{stats\_vty.c@{stats\_vty.c}!SHOW\_STATS\_STR@{SHOW\_STATS\_STR}}
\index{SHOW\_STATS\_STR@{SHOW\_STATS\_STR}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{SHOW\_STATS\_STR}
{\footnotesize\ttfamily \#define SHOW\+\_\+\+STATS\+\_\+\+STR~\char`\"{}Show statistical \textbf{ values\textbackslash{}n}\char`\"{}}

\mbox{\label{stats__vty_8c_aa4d1c8f2474fbf83311ca7c5eafb20b4}} 
\index{stats\_vty.c@{stats\_vty.c}!SKIP\_ZERO\_STR@{SKIP\_ZERO\_STR}}
\index{SKIP\_ZERO\_STR@{SKIP\_ZERO\_STR}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{SKIP\_ZERO\_STR}
{\footnotesize\ttfamily \#define SKIP\+\_\+\+ZERO\+\_\+\+STR~\char`\"{}Skip items with total count \textbf{ zero\textbackslash{}n}\char`\"{}}

\mbox{\label{stats__vty_8c_a8d4926236f975623085a2cc4a388ecf5}} 
\index{stats\_vty.c@{stats\_vty.c}!STATS\_STR@{STATS\_STR}}
\index{STATS\_STR@{STATS\_STR}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{STATS\_STR}
{\footnotesize\ttfamily \#define STATS\+\_\+\+STR~\char`\"{}Stats related \textbf{ commands\textbackslash{}n}\char`\"{}}



\doxysubsection{Function Documentation}
\mbox{\label{stats__vty_8c_a1bc378a437f3eeef8a1b0bc7a4e4791a}} 
\index{stats\_vty.c@{stats\_vty.c}!asciidoc\_counter\_generate@{asciidoc\_counter\_generate}}
\index{asciidoc\_counter\_generate@{asciidoc\_counter\_generate}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{asciidoc\_counter\_generate()}
{\footnotesize\ttfamily static void asciidoc\+\_\+counter\+\_\+generate (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ asciidoc\+\_\+handle\+\_\+counter()}, \textbf{ osmo\+\_\+counters\+\_\+for\+\_\+each()}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.



Referenced by \textbf{ DEFUN()}.

\mbox{\label{stats__vty_8c_ac1ab9c5ae68059f44debfbc1f0a0db27}} 
\index{stats\_vty.c@{stats\_vty.c}!asciidoc\_handle\_counter@{asciidoc\_handle\_counter}}
\index{asciidoc\_handle\_counter@{asciidoc\_handle\_counter}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{asciidoc\_handle\_counter()}
{\footnotesize\ttfamily static int asciidoc\+\_\+handle\+\_\+counter (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+counter} $\ast$}]{counter,  }\item[{void $\ast$}]{sctx\+\_\+ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+counter\+::description}, \textbf{ osmo\+\_\+counter\+::name}, \textbf{ name}, \textbf{ osmo\+\_\+asciidoc\+\_\+escape()}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.



Referenced by \textbf{ asciidoc\+\_\+counter\+\_\+generate()}.

\mbox{\label{stats__vty_8c_a8bcd94049bb85571d0ce6ed64962a79e}} 
\index{stats\_vty.c@{stats\_vty.c}!asciidoc\_osmo\_stat\_item\_group\_handler@{asciidoc\_osmo\_stat\_item\_group\_handler}}
\index{asciidoc\_osmo\_stat\_item\_group\_handler@{asciidoc\_osmo\_stat\_item\_group\_handler}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{asciidoc\_osmo\_stat\_item\_group\_handler()}
{\footnotesize\ttfamily static int asciidoc\+\_\+osmo\+\_\+stat\+\_\+item\+\_\+group\+\_\+handler (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+stat\+\_\+item\+\_\+group} $\ast$}]{statg,  }\item[{void $\ast$}]{sctx\+\_\+ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ asciidoc\+\_\+osmo\+\_\+stat\+\_\+item\+\_\+handler()}, \textbf{ osmo\+\_\+stat\+\_\+item\+\_\+group\+::desc}, \textbf{ osmo\+\_\+stat\+\_\+item\+\_\+group\+\_\+desc\+::group\+\_\+description}, \textbf{ osmo\+\_\+stat\+\_\+item\+\_\+group\+\_\+desc\+::group\+\_\+name\+\_\+prefix}, \textbf{ osmo\+\_\+asciidoc\+\_\+escape()}, \textbf{ osmo\+\_\+stat\+\_\+item\+\_\+for\+\_\+each\+\_\+item()}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.



Referenced by \textbf{ DEFUN()}.

\mbox{\label{stats__vty_8c_a53c2fe8f73a40b3f9e3574145e0000b8}} 
\index{stats\_vty.c@{stats\_vty.c}!asciidoc\_osmo\_stat\_item\_handler@{asciidoc\_osmo\_stat\_item\_handler}}
\index{asciidoc\_osmo\_stat\_item\_handler@{asciidoc\_osmo\_stat\_item\_handler}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{asciidoc\_osmo\_stat\_item\_handler()}
{\footnotesize\ttfamily static int asciidoc\+\_\+osmo\+\_\+stat\+\_\+item\+\_\+handler (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+stat\+\_\+item\+\_\+group} $\ast$}]{statg,  }\item[{struct \textbf{ osmo\+\_\+stat\+\_\+item} $\ast$}]{item,  }\item[{void $\ast$}]{sctx\+\_\+ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+stat\+\_\+item\+\_\+group\+::desc}, \textbf{ osmo\+\_\+stat\+\_\+item\+\_\+desc\+::description}, \textbf{ osmo\+\_\+stat\+\_\+item\+\_\+group\+\_\+desc\+::group\+\_\+name\+\_\+prefix}, \textbf{ name}, \textbf{ osmo\+\_\+asciidoc\+\_\+escape()}, \textbf{ osmo\+\_\+stat\+\_\+item\+\_\+get\+\_\+desc()}, \textbf{ osmo\+\_\+stat\+\_\+item\+\_\+desc\+::unit}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.



Referenced by \textbf{ asciidoc\+\_\+osmo\+\_\+stat\+\_\+item\+\_\+group\+\_\+handler()}.

\mbox{\label{stats__vty_8c_a291db208e2dd002bd263a5b4ff71b1dd}} 
\index{stats\_vty.c@{stats\_vty.c}!asciidoc\_rate\_ctr\_group\_handler@{asciidoc\_rate\_ctr\_group\_handler}}
\index{asciidoc\_rate\_ctr\_group\_handler@{asciidoc\_rate\_ctr\_group\_handler}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{asciidoc\_rate\_ctr\_group\_handler()}
{\footnotesize\ttfamily static int asciidoc\+\_\+rate\+\_\+ctr\+\_\+group\+\_\+handler (\begin{DoxyParamCaption}\item[{struct \textbf{ rate\+\_\+ctr\+\_\+group} $\ast$}]{ctrg,  }\item[{void $\ast$}]{sctx\+\_\+ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ asciidoc\+\_\+rate\+\_\+ctr\+\_\+handler()}, \textbf{ rate\+\_\+ctr\+\_\+group\+::desc}, \textbf{ rate\+\_\+ctr\+\_\+group\+\_\+desc\+::group\+\_\+description}, \textbf{ rate\+\_\+ctr\+\_\+group\+\_\+desc\+::group\+\_\+name\+\_\+prefix}, \textbf{ osmo\+\_\+asciidoc\+\_\+escape()}, \textbf{ rate\+\_\+ctr\+\_\+for\+\_\+each\+\_\+counter()}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.



Referenced by \textbf{ DEFUN()}.

\mbox{\label{stats__vty_8c_a0ce3d4d8ef5a6225fe27da7fb149fbb8}} 
\index{stats\_vty.c@{stats\_vty.c}!asciidoc\_rate\_ctr\_handler@{asciidoc\_rate\_ctr\_handler}}
\index{asciidoc\_rate\_ctr\_handler@{asciidoc\_rate\_ctr\_handler}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{asciidoc\_rate\_ctr\_handler()}
{\footnotesize\ttfamily static int asciidoc\+\_\+rate\+\_\+ctr\+\_\+handler (\begin{DoxyParamCaption}\item[{struct \textbf{ rate\+\_\+ctr\+\_\+group} $\ast$}]{ctrg,  }\item[{struct \textbf{ rate\+\_\+ctr} $\ast$}]{ctr,  }\item[{const struct \textbf{ rate\+\_\+ctr\+\_\+desc} $\ast$}]{desc,  }\item[{void $\ast$}]{sctx\+\_\+ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ rate\+\_\+ctr\+\_\+group\+::desc}, \textbf{ rate\+\_\+ctr\+\_\+group\+\_\+desc\+::group\+\_\+name\+\_\+prefix}, \textbf{ name}, \textbf{ osmo\+\_\+asciidoc\+\_\+escape()}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.



Referenced by \textbf{ asciidoc\+\_\+rate\+\_\+ctr\+\_\+group\+\_\+handler()}.

\mbox{\label{stats__vty_8c_a6a663d2fd031ed5fd944349564efc5cb}} 
\index{stats\_vty.c@{stats\_vty.c}!config\_write\_stats@{config\_write\_stats}}
\index{config\_write\_stats@{config\_write\_stats}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{config\_write\_stats()}
{\footnotesize\ttfamily static int config\+\_\+write\+\_\+stats (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+tcp\+\_\+stats\+\_\+config\+::batch\+\_\+size}, \textbf{ config\+\_\+write\+\_\+stats\+\_\+reporter()}, \textbf{ osmo\+\_\+stats\+\_\+config\+::interval}, \textbf{ osmo\+\_\+tcp\+\_\+stats\+\_\+config\+::interval}, \textbf{ list}, \textbf{ llist\+\_\+for\+\_\+each\+\_\+entry}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+\_\+list}, \textbf{ TCP\+\_\+\+STATS\+\_\+\+DEFAULT\+\_\+\+BATCH\+\_\+\+SIZE}, \textbf{ TCP\+\_\+\+STATS\+\_\+\+DEFAULT\+\_\+\+INTERVAL}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.



Referenced by \textbf{ osmo\+\_\+stats\+\_\+vty\+\_\+add\+\_\+cmds()}.

\mbox{\label{stats__vty_8c_a142f8095a7589ea5675a98a671a782be}} 
\index{stats\_vty.c@{stats\_vty.c}!config\_write\_stats\_reporter@{config\_write\_stats\_reporter}}
\index{config\_write\_stats\_reporter@{config\_write\_stats\_reporter}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{config\_write\_stats\_reporter()}
{\footnotesize\ttfamily static int config\+\_\+write\+\_\+stats\+\_\+reporter (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty,  }\item[{struct \textbf{ osmo\+\_\+stats\+\_\+reporter} $\ast$}]{srep }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ osmo\+\_\+stats\+\_\+reporter\+::bind\+\_\+addr\+\_\+str}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+::dest\+\_\+addr\+\_\+str}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+::dest\+\_\+port}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+::enabled}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+::flush\+\_\+period}, \textbf{ get\+\_\+value\+\_\+string()}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+::have\+\_\+net\+\_\+config}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+::max\+\_\+class}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+::mtu}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+::name}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+::name\+\_\+prefix}, \textbf{ OSMO\+\_\+\+STATS\+\_\+\+REPORTER\+\_\+\+LOG}, \textbf{ OSMO\+\_\+\+STATS\+\_\+\+REPORTER\+\_\+\+STATSD}, \textbf{ stats\+\_\+class\+\_\+strs}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+::type}, \textbf{ type}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.



Referenced by \textbf{ config\+\_\+write\+\_\+stats()}.

\mbox{\label{stats__vty_8c_a99f564af43276fe1fc9fd49079a824ba}} 
\index{stats\_vty.c@{stats\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [1/25]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+no\+\_\+stats\+\_\+reporter\+\_\+local\+\_\+ip}]{,  }\item[{cfg\+\_\+no\+\_\+stats\+\_\+reporter\+\_\+local\+\_\+ip\+\_\+cmd}]{,  }\item[{\char`\"{}no local-\/ip\char`\"{}}]{,  }\item[{\textbf{ NO\+\_\+\+STR} \char`\"{}Set the IP address to which we bind \textbf{ locally\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+stats\+\_\+reporter\+\_\+set\+\_\+local\+\_\+addr()}, and \textbf{ set\+\_\+srep\+\_\+parameter\+\_\+str()}.

\mbox{\label{stats__vty_8c_a1395b412c75d586a504968298884ab85}} 
\index{stats\_vty.c@{stats\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [2/25]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+no\+\_\+stats\+\_\+reporter\+\_\+log}]{,  }\item[{cfg\+\_\+no\+\_\+stats\+\_\+reporter\+\_\+log\+\_\+cmd}]{,  }\item[{\char`\"{}no stats reporter log \char`\"{}}]{[\+NAME],  }\item[{\textbf{ NO\+\_\+\+STR} \textbf{ CFG\+\_\+\+STATS\+\_\+\+STR} \textbf{ CFG\+\_\+\+REPORTER\+\_\+\+STR} \char`\"{}Report to the \textbf{ logger\textbackslash{}n}\char`\"{} \char`\"{}Name of the \textbf{ reporter\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argc}, \textbf{ argv}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ CMD\+\_\+\+WARNING}, \textbf{ name}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+\_\+find()}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+\_\+free()}, \textbf{ OSMO\+\_\+\+STATS\+\_\+\+REPORTER\+\_\+\+LOG}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.

\mbox{\label{stats__vty_8c_a55ad2e957503f7f69c9f82ce63a40877}} 
\index{stats\_vty.c@{stats\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [3/25]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+no\+\_\+stats\+\_\+reporter\+\_\+mtu}]{,  }\item[{cfg\+\_\+no\+\_\+stats\+\_\+reporter\+\_\+mtu\+\_\+cmd}]{,  }\item[{\char`\"{}no mtu\char`\"{}}]{,  }\item[{\textbf{ NO\+\_\+\+STR} \char`\"{}Set the maximum packet \textbf{ size\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+stats\+\_\+reporter\+\_\+set\+\_\+mtu()}, and \textbf{ set\+\_\+srep\+\_\+parameter\+\_\+int()}.

\mbox{\label{stats__vty_8c_aea60c26c515410658f676fdbdc438eb7}} 
\index{stats\_vty.c@{stats\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [4/25]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+no\+\_\+stats\+\_\+reporter\+\_\+prefix}]{,  }\item[{cfg\+\_\+no\+\_\+stats\+\_\+reporter\+\_\+prefix\+\_\+cmd}]{,  }\item[{\char`\"{}no prefix\char`\"{}}]{,  }\item[{\textbf{ NO\+\_\+\+STR} \char`\"{}Set the item \textbf{ name} \textbf{ prefix\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+stats\+\_\+reporter\+\_\+set\+\_\+name\+\_\+prefix()}, and \textbf{ set\+\_\+srep\+\_\+parameter\+\_\+str()}.

\mbox{\label{stats__vty_8c_a61d97d54e0d7dba9be00388df44a10e3}} 
\index{stats\_vty.c@{stats\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [5/25]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+no\+\_\+stats\+\_\+reporter\+\_\+statsd}]{,  }\item[{cfg\+\_\+no\+\_\+stats\+\_\+reporter\+\_\+statsd\+\_\+cmd}]{,  }\item[{\char`\"{}no stats reporter statsd \char`\"{}}]{[\+NAME],  }\item[{\textbf{ NO\+\_\+\+STR} \textbf{ CFG\+\_\+\+STATS\+\_\+\+STR} \textbf{ CFG\+\_\+\+REPORTER\+\_\+\+STR} \char`\"{}Report to a STATSD \textbf{ server\textbackslash{}n}\char`\"{} \char`\"{}Name of the \textbf{ reporter\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argc}, \textbf{ argv}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ CMD\+\_\+\+WARNING}, \textbf{ name}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+\_\+find()}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+\_\+free()}, \textbf{ OSMO\+\_\+\+STATS\+\_\+\+REPORTER\+\_\+\+STATSD}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.

\mbox{\label{stats__vty_8c_a30fb24b21a5ba7f2290eae343e1f7d91}} 
\index{stats\_vty.c@{stats\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [6/25]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+stats\+\_\+interval}]{,  }\item[{cfg\+\_\+stats\+\_\+interval\+\_\+cmd}]{,  }\item[{\char`\"{}stats interval $<$0-\/65535$>$\char`\"{}}]{,  }\item[{\textbf{ CFG\+\_\+\+STATS\+\_\+\+STR} \char`\"{}Set the reporting \textbf{ interval\textbackslash{}n}\char`\"{} \char`\"{}Interval in seconds (0 disables the reporting interval)\textbackslash{}\textbf{ n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ CMD\+\_\+\+WARNING}, \textbf{ osmo\+\_\+stats\+\_\+set\+\_\+interval()}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.

\mbox{\label{stats__vty_8c_a2b2b8fb8e7929ffd57ef5114ece986bc}} 
\index{stats\_vty.c@{stats\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [7/25]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+stats\+\_\+reporter\+\_\+disable}]{,  }\item[{cfg\+\_\+stats\+\_\+reporter\+\_\+disable\+\_\+cmd}]{,  }\item[{\char`\"{}disable\char`\"{}}]{,  }\item[{\char`\"{}Disable the \textbf{ reporter\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ CMD\+\_\+\+WARNING}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+\_\+disable()}, \textbf{ osmo\+\_\+stats\+\_\+vty2srep()}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.

\mbox{\label{stats__vty_8c_a66186aa6e45a0ad0de94ea7203cdfb1f}} 
\index{stats\_vty.c@{stats\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [8/25]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+stats\+\_\+reporter\+\_\+enable}]{,  }\item[{cfg\+\_\+stats\+\_\+reporter\+\_\+enable\+\_\+cmd}]{,  }\item[{\char`\"{}enable\char`\"{}}]{,  }\item[{\char`\"{}Enable the \textbf{ reporter\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ CMD\+\_\+\+WARNING}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+\_\+enable()}, \textbf{ osmo\+\_\+stats\+\_\+vty2srep()}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.

\mbox{\label{stats__vty_8c_aa8512ca811d591ad731a9f10b5f3a876}} 
\index{stats\_vty.c@{stats\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [9/25]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+stats\+\_\+reporter\+\_\+flush\+\_\+period}]{,  }\item[{cfg\+\_\+stats\+\_\+reporter\+\_\+flush\+\_\+period\+\_\+cmd}]{,  }\item[{\char`\"{}flush-\/period $<$0-\/65535$>$\char`\"{}}]{,  }\item[{\textbf{ CFG\+\_\+\+STATS\+\_\+\+STR} \char`\"{}Send all stats even \textbf{ if} they have not changed }]{i.\+e. force the flush)\char`\"{} \char`\"{}every N-\/th reporting interval. Set to 0 to disable regular flush (default).\textbackslash{}n\char`\"{} \char`\"{}0 to disable regular flush (default,  }\item[{1 to flush every}]{time,  }\item[{2 to flush every 2nd}]{time,  }\item[{\textbf{ etc\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ CMD\+\_\+\+WARNING}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+\_\+set\+\_\+flush\+\_\+period()}, \textbf{ osmo\+\_\+stats\+\_\+vty2srep()}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.

\mbox{\label{stats__vty_8c_a33173de8de9a9177ba65d6163656fa1e}} 
\index{stats\_vty.c@{stats\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [10/25]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+stats\+\_\+reporter\+\_\+level}]{,  }\item[{cfg\+\_\+stats\+\_\+reporter\+\_\+level\+\_\+cmd}]{,  }\item[{\char`\"{}level (global$\vert$peer$\vert$subscriber)\char`\"{}}]{,  }\item[{\char`\"{}Set the maximum group \textbf{ level\textbackslash{}n}\char`\"{} \char`\"{}Report global groups \textbf{ only\textbackslash{}n}\char`\"{} \char`\"{}Report global and \textbf{ network} peer related \textbf{ groups\textbackslash{}n}\char`\"{} \char`\"{}Report}]{global,  }\item[{peer}]{,  }\item[{and subscriber \textbf{ groups\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ CMD\+\_\+\+WARNING}, \textbf{ get\+\_\+string\+\_\+value()}, \textbf{ level}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+\_\+set\+\_\+max\+\_\+class()}, \textbf{ osmo\+\_\+stats\+\_\+vty2srep()}, \textbf{ stats\+\_\+class\+\_\+strs}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.

\mbox{\label{stats__vty_8c_ac8d66321f6a051cfab2d329f2c8bdb21}} 
\index{stats\_vty.c@{stats\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [11/25]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+stats\+\_\+reporter\+\_\+local\+\_\+ip}]{,  }\item[{cfg\+\_\+stats\+\_\+reporter\+\_\+local\+\_\+ip\+\_\+cmd}]{,  }\item[{\char`\"{}local-\/ip ADDR\char`\"{}}]{,  }\item[{\char`\"{}Set the IP address to which we bind \textbf{ locally\textbackslash{}n}\char`\"{} \char`\"{}IP \textbf{ Address\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+\_\+set\+\_\+local\+\_\+addr()}, and \textbf{ set\+\_\+srep\+\_\+parameter\+\_\+str()}.

\mbox{\label{stats__vty_8c_ad2dc41bf20560e5effb9556094684068}} 
\index{stats\_vty.c@{stats\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [12/25]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+stats\+\_\+reporter\+\_\+log}]{,  }\item[{cfg\+\_\+stats\+\_\+reporter\+\_\+log\+\_\+cmd}]{,  }\item[{\char`\"{}stats reporter log \char`\"{}}]{[\+NAME],  }\item[{\textbf{ CFG\+\_\+\+STATS\+\_\+\+STR} \textbf{ CFG\+\_\+\+REPORTER\+\_\+\+STR} \char`\"{}Report to the \textbf{ logger\textbackslash{}n}\char`\"{} \char`\"{}Name of the \textbf{ reporter\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argc}, \textbf{ argv}, \textbf{ CFG\+\_\+\+STATS\+\_\+\+NODE}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ CMD\+\_\+\+WARNING}, \textbf{ vty\+::index}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+::max\+\_\+class}, \textbf{ name}, \textbf{ vty\+::node}, \textbf{ OSMO\+\_\+\+STATS\+\_\+\+CLASS\+\_\+\+GLOBAL}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+\_\+create\+\_\+log()}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+\_\+find()}, \textbf{ OSMO\+\_\+\+STATS\+\_\+\+REPORTER\+\_\+\+LOG}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.

\mbox{\label{stats__vty_8c_a2303549be61e61c6a16e0c02ef14d168}} 
\index{stats\_vty.c@{stats\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [13/25]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+stats\+\_\+reporter\+\_\+mtu}]{,  }\item[{cfg\+\_\+stats\+\_\+reporter\+\_\+mtu\+\_\+cmd}]{,  }\item[{\char`\"{}mtu $<$100-\/65535$>$\char`\"{}}]{,  }\item[{\char`\"{}Set the maximum packet \textbf{ size\textbackslash{}n}\char`\"{} \char`\"{}Size in \textbf{ byte\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+\_\+set\+\_\+mtu()}, and \textbf{ set\+\_\+srep\+\_\+parameter\+\_\+int()}.

\mbox{\label{stats__vty_8c_a0b42d8c8bdda5d29a51e56dfe6a8ccdc}} 
\index{stats\_vty.c@{stats\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [14/25]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+stats\+\_\+reporter\+\_\+prefix}]{,  }\item[{cfg\+\_\+stats\+\_\+reporter\+\_\+prefix\+\_\+cmd}]{,  }\item[{\char`\"{}prefix PREFIX\char`\"{}}]{,  }\item[{\char`\"{}Set the item \textbf{ name} \textbf{ prefix\textbackslash{}n}\char`\"{} \char`\"{}The prefix \textbf{ string\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+\_\+set\+\_\+name\+\_\+prefix()}, and \textbf{ set\+\_\+srep\+\_\+parameter\+\_\+str()}.

\mbox{\label{stats__vty_8c_aaf1f3bf938208a113ede9f96f97a8611}} 
\index{stats\_vty.c@{stats\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [15/25]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+stats\+\_\+reporter\+\_\+remote\+\_\+ip}]{,  }\item[{cfg\+\_\+stats\+\_\+reporter\+\_\+remote\+\_\+ip\+\_\+cmd}]{,  }\item[{\char`\"{}remote-\/ip ADDR\char`\"{}}]{,  }\item[{\char`\"{}Set the remote IP address to which we \textbf{ connect\textbackslash{}n}\char`\"{} \char`\"{}IP \textbf{ Address\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+\_\+set\+\_\+remote\+\_\+addr()}, and \textbf{ set\+\_\+srep\+\_\+parameter\+\_\+str()}.

\mbox{\label{stats__vty_8c_aaad15df0909f2353fe5a18d414cc47d0}} 
\index{stats\_vty.c@{stats\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [16/25]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+stats\+\_\+reporter\+\_\+remote\+\_\+port}]{,  }\item[{cfg\+\_\+stats\+\_\+reporter\+\_\+remote\+\_\+port\+\_\+cmd}]{,  }\item[{\char`\"{}remote-\/port $<$1-\/65535$>$\char`\"{}}]{,  }\item[{\char`\"{}Set the remote port to which we \textbf{ connect\textbackslash{}n}\char`\"{} \char`\"{}Remote port \textbf{ number\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+\_\+set\+\_\+remote\+\_\+port()}, and \textbf{ set\+\_\+srep\+\_\+parameter\+\_\+int()}.

\mbox{\label{stats__vty_8c_aba26f4a84bb22f82d10adac3653c265b}} 
\index{stats\_vty.c@{stats\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [17/25]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+stats\+\_\+reporter\+\_\+statsd}]{,  }\item[{cfg\+\_\+stats\+\_\+reporter\+\_\+statsd\+\_\+cmd}]{,  }\item[{\char`\"{}stats reporter statsd \char`\"{}}]{[\+NAME],  }\item[{\textbf{ CFG\+\_\+\+STATS\+\_\+\+STR} \textbf{ CFG\+\_\+\+REPORTER\+\_\+\+STR} \char`\"{}Report to a STATSD \textbf{ server\textbackslash{}n}\char`\"{} \char`\"{}Name of the \textbf{ reporter\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argc}, \textbf{ argv}, \textbf{ CFG\+\_\+\+STATS\+\_\+\+NODE}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ CMD\+\_\+\+WARNING}, \textbf{ vty\+::index}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+::max\+\_\+class}, \textbf{ name}, \textbf{ vty\+::node}, \textbf{ OSMO\+\_\+\+STATS\+\_\+\+CLASS\+\_\+\+GLOBAL}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+\_\+create\+\_\+statsd()}, \textbf{ osmo\+\_\+stats\+\_\+reporter\+\_\+find()}, \textbf{ OSMO\+\_\+\+STATS\+\_\+\+REPORTER\+\_\+\+STATSD}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.

\mbox{\label{stats__vty_8c_ae60bf2a8423dee9f2cba01e149183516}} 
\index{stats\_vty.c@{stats\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [18/25]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+tcp\+\_\+stats\+\_\+batch\+\_\+size}]{,  }\item[{cfg\+\_\+tcp\+\_\+stats\+\_\+batch\+\_\+size\+\_\+cmd}]{,  }\item[{\char`\"{}stats-\/tcp batch-\/size $<$1-\/65535$>$\char`\"{}}]{,  }\item[{\textbf{ CFG\+\_\+\+STATS\+\_\+\+STR} \char`\"{}Set the number of tcp sockets that are processed per stats polling \textbf{ interval\textbackslash{}n}\char`\"{} \char`\"{}Number of sockets per \textbf{ interval\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ osmo\+\_\+tcp\+\_\+stats\+\_\+config\+::batch\+\_\+size}, and \textbf{ CMD\+\_\+\+SUCCESS}.

\mbox{\label{stats__vty_8c_a0bb991881e8a0f6bb0af519b7387d5de}} 
\index{stats\_vty.c@{stats\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [19/25]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{cfg\+\_\+tcp\+\_\+stats\+\_\+interval}]{,  }\item[{cfg\+\_\+tcp\+\_\+stats\+\_\+interval\+\_\+cmd}]{,  }\item[{\char`\"{}stats-\/tcp interval $<$0-\/65535$>$\char`\"{}}]{,  }\item[{\textbf{ CFG\+\_\+\+STATS\+\_\+\+STR} \char`\"{}Set the tcp socket stats polling \textbf{ interval\textbackslash{}n}\char`\"{} \char`\"{}Interval in seconds (0 disables the polling interval)\textbackslash{}\textbf{ n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ argv}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ CMD\+\_\+\+WARNING}, \textbf{ osmo\+\_\+stats\+\_\+tcp\+\_\+set\+\_\+interval()}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.

\mbox{\label{stats__vty_8c_a6d63aef8e800c9d46138eea3b8059b8a}} 
\index{stats\_vty.c@{stats\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [20/25]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{show\+\_\+rate\+\_\+counters}]{,  }\item[{show\+\_\+rate\+\_\+counters\+\_\+cmd}]{,  }\item[{\char`\"{}show rate-\/counters \char`\"{}}]{[skip-\/zero],  }\item[{\textbf{ SHOW\+\_\+\+STR} \char`\"{}Show all rate \textbf{ counters\textbackslash{}n}\char`\"{}}]{SKIP\+\_\+\+ZERO\+\_\+\+STR }\end{DoxyParamCaption})}



References \textbf{ argc}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ rate\+\_\+ctr\+\_\+for\+\_\+each\+\_\+group()}, \textbf{ rate\+\_\+ctr\+\_\+group\+\_\+handler()}, \textbf{ rctr\+\_\+vty\+\_\+ctx\+::skip\+\_\+zero}, \textbf{ rctr\+\_\+vty\+\_\+ctx\+::vty}, and \textbf{ vty}.

\mbox{\label{stats__vty_8c_a6115cc2b9bd74b5e4f73e70aaa56cda9}} 
\index{stats\_vty.c@{stats\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [21/25]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{show\+\_\+stats}]{,  }\item[{show\+\_\+stats\+\_\+cmd}]{,  }\item[{\char`\"{}show stats \char`\"{}}]{[skip-\/zero],  }\item[{\textbf{ SHOW\+\_\+\+STR} \textbf{ SHOW\+\_\+\+STATS\+\_\+\+STR}}]{SKIP\+\_\+\+ZERO\+\_\+\+STR }\end{DoxyParamCaption})}



References \textbf{ argc}, \textbf{ CMD\+\_\+\+SUCCESS}, and \textbf{ vty\+\_\+out\+\_\+statistics\+\_\+full2()}.

\mbox{\label{stats__vty_8c_a3d052a103816464a6f5a8a192403ad44}} 
\index{stats\_vty.c@{stats\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [22/25]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{show\+\_\+stats\+\_\+asciidoc\+\_\+table}]{,  }\item[{show\+\_\+stats\+\_\+asciidoc\+\_\+table\+\_\+cmd}]{,  }\item[{\char`\"{}show asciidoc counters\char`\"{}}]{,  }\item[{\textbf{ SHOW\+\_\+\+STR} \char`\"{}Asciidoc \textbf{ generation\textbackslash{}n}\char`\"{} \char`\"{}Generate table of all registered \textbf{ counters\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ host\+::app\+\_\+info}, \textbf{ asciidoc\+\_\+counter\+\_\+generate()}, \textbf{ asciidoc\+\_\+osmo\+\_\+stat\+\_\+item\+\_\+group\+\_\+handler()}, \textbf{ asciidoc\+\_\+rate\+\_\+ctr\+\_\+group\+\_\+handler()}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ vty\+\_\+app\+\_\+info\+::name}, \textbf{ osmo\+\_\+counters\+\_\+count()}, \textbf{ osmo\+\_\+stat\+\_\+item\+\_\+for\+\_\+each\+\_\+group()}, \textbf{ rate\+\_\+ctr\+\_\+for\+\_\+each\+\_\+group()}, \textbf{ vty\+\_\+app\+\_\+info\+::version}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.

\mbox{\label{stats__vty_8c_ab0a0025ec3360f360ef9d59991250f87}} 
\index{stats\_vty.c@{stats\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [23/25]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{show\+\_\+stats\+\_\+level}]{,  }\item[{show\+\_\+stats\+\_\+level\+\_\+cmd}]{,  }\item[{\char`\"{}show stats \textbf{ level} (global$\vert$peer$\vert$subscriber) \char`\"{}}]{[skip-\/zero],  }\item[{\textbf{ SHOW\+\_\+\+STR} \textbf{ SHOW\+\_\+\+STATS\+\_\+\+STR} \char`\"{}Set the maximum group \textbf{ level\textbackslash{}n}\char`\"{} \char`\"{}Show global groups \textbf{ only\textbackslash{}n}\char`\"{} \char`\"{}Show global and \textbf{ network} peer related \textbf{ groups\textbackslash{}n}\char`\"{} \char`\"{}Show}]{global,  }\item[{peer}]{,  }\item[{and subscriber \textbf{ groups\textbackslash{}n}\char`\"{}}]{SKIP\+\_\+\+ZERO\+\_\+\+STR }\end{DoxyParamCaption})}



References \textbf{ argc}, \textbf{ argv}, \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ get\+\_\+string\+\_\+value()}, \textbf{ level}, \textbf{ stats\+\_\+class\+\_\+strs}, and \textbf{ vty\+\_\+out\+\_\+statistics\+\_\+partial2()}.

\mbox{\label{stats__vty_8c_a6b9f29380a920ebb59523b37b14d89b1}} 
\index{stats\_vty.c@{stats\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [24/25]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{stats\+\_\+report}]{,  }\item[{stats\+\_\+report\+\_\+cmd}]{,  }\item[{\char`\"{}stats report\char`\"{}}]{,  }\item[{\textbf{ STATS\+\_\+\+STR} \char`\"{}Manurally trigger reporting of \textbf{ stats\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ CMD\+\_\+\+SUCCESS}, and \textbf{ osmo\+\_\+stats\+\_\+report()}.

\mbox{\label{stats__vty_8c_a271538e970a3b354ec24abf77d96ce59}} 
\index{stats\_vty.c@{stats\_vty.c}!DEFUN@{DEFUN}}
\index{DEFUN@{DEFUN}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{DEFUN()\hspace{0.1cm}{\footnotesize\ttfamily [25/25]}}
{\footnotesize\ttfamily DEFUN (\begin{DoxyParamCaption}\item[{stats\+\_\+reset}]{,  }\item[{stats\+\_\+reset\+\_\+cmd}]{,  }\item[{\char`\"{}stats reset\char`\"{}}]{,  }\item[{\textbf{ STATS\+\_\+\+STR} \char`\"{}Reset all rate counter \textbf{ stats\textbackslash{}n}\char`\"{}}]{ }\end{DoxyParamCaption})}



References \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ rate\+\_\+ctr\+\_\+for\+\_\+each\+\_\+group()}, and \textbf{ reset\+\_\+rate\+\_\+ctr\+\_\+group\+\_\+handler()}.

\mbox{\label{stats__vty_8c_a16a45935b7e752c5a03180abf726d568}} 
\index{stats\_vty.c@{stats\_vty.c}!osmo\_stats\_vty2srep@{osmo\_stats\_vty2srep}}
\index{osmo\_stats\_vty2srep@{osmo\_stats\_vty2srep}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{osmo\_stats\_vty2srep()}
{\footnotesize\ttfamily static struct \textbf{ osmo\+\_\+stats\+\_\+reporter} $\ast$ osmo\+\_\+stats\+\_\+vty2srep (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ CFG\+\_\+\+STATS\+\_\+\+NODE}, \textbf{ vty\+::index}, and \textbf{ vty\+::node}.



Referenced by \textbf{ DEFUN()}, \textbf{ set\+\_\+srep\+\_\+parameter\+\_\+int()}, and \textbf{ set\+\_\+srep\+\_\+parameter\+\_\+str()}.

\mbox{\label{stats__vty_8c_a0f69ba0dd4bc8d2e348e3e501fb3c687}} 
\index{stats\_vty.c@{stats\_vty.c}!osmo\_stats\_vty\_add\_cmds@{osmo\_stats\_vty\_add\_cmds}}
\index{osmo\_stats\_vty\_add\_cmds@{osmo\_stats\_vty\_add\_cmds}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{osmo\_stats\_vty\_add\_cmds()}
{\footnotesize\ttfamily void osmo\+\_\+stats\+\_\+vty\+\_\+add\+\_\+cmds (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



Add stats related commands to the VTY Call this once during your application initialization if you would like to have stats VTY commands enabled. 



References \textbf{ CFG\+\_\+\+STATS\+\_\+\+NODE}, \textbf{ cfg\+\_\+stats\+\_\+node}, \textbf{ CONFIG\+\_\+\+NODE}, \textbf{ config\+\_\+write\+\_\+stats()}, \textbf{ ENABLE\+\_\+\+NODE}, \textbf{ install\+\_\+lib\+\_\+element()}, \textbf{ install\+\_\+lib\+\_\+element\+\_\+ve()}, and \textbf{ install\+\_\+node()}.

\mbox{\label{stats__vty_8c_a47631ccc3d69c5bfa3fd0c48735a6612}} 
\index{stats\_vty.c@{stats\_vty.c}!rate\_ctr\_group\_handler@{rate\_ctr\_group\_handler}}
\index{rate\_ctr\_group\_handler@{rate\_ctr\_group\_handler}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{rate\_ctr\_group\_handler()}
{\footnotesize\ttfamily static int rate\+\_\+ctr\+\_\+group\+\_\+handler (\begin{DoxyParamCaption}\item[{struct \textbf{ rate\+\_\+ctr\+\_\+group} $\ast$}]{ctrg,  }\item[{void $\ast$}]{sctx\+\_\+ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ rate\+\_\+ctr\+\_\+group\+::desc}, \textbf{ rate\+\_\+ctr\+\_\+group\+\_\+desc\+::group\+\_\+description}, \textbf{ rate\+\_\+ctr\+\_\+group\+::idx}, \textbf{ rate\+\_\+ctr\+\_\+group\+::name}, \textbf{ rctr\+\_\+vty\+\_\+ctx\+::skip\+\_\+zero}, \textbf{ rctr\+\_\+vty\+\_\+ctx\+::vty}, \textbf{ VTY\+\_\+\+NEWLINE}, \textbf{ vty\+\_\+out()}, and \textbf{ vty\+\_\+out\+\_\+rate\+\_\+ctr\+\_\+group\+\_\+fmt2()}.



Referenced by \textbf{ DEFUN()}.

\mbox{\label{stats__vty_8c_a1c3ece9374b28b529fc294dbe3f55c1e}} 
\index{stats\_vty.c@{stats\_vty.c}!reset\_rate\_ctr\_group\_handler@{reset\_rate\_ctr\_group\_handler}}
\index{reset\_rate\_ctr\_group\_handler@{reset\_rate\_ctr\_group\_handler}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{reset\_rate\_ctr\_group\_handler()}
{\footnotesize\ttfamily static int reset\+\_\+rate\+\_\+ctr\+\_\+group\+\_\+handler (\begin{DoxyParamCaption}\item[{struct \textbf{ rate\+\_\+ctr\+\_\+group} $\ast$}]{ctrg,  }\item[{void $\ast$}]{sctx\+\_\+ }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ rate\+\_\+ctr\+\_\+group\+\_\+reset()}.



Referenced by \textbf{ DEFUN()}.

\mbox{\label{stats__vty_8c_a48cf4488379b64ac0e9451d46a47e742}} 
\index{stats\_vty.c@{stats\_vty.c}!set\_srep\_parameter\_int@{set\_srep\_parameter\_int}}
\index{set\_srep\_parameter\_int@{set\_srep\_parameter\_int}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{set\_srep\_parameter\_int()}
{\footnotesize\ttfamily static int set\+\_\+srep\+\_\+parameter\+\_\+int (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty,  }\item[{int($\ast$)(struct \textbf{ osmo\+\_\+stats\+\_\+reporter} $\ast$, int)}]{fun,  }\item[{const char $\ast$}]{val,  }\item[{const char $\ast$}]{param\+\_\+name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ CMD\+\_\+\+WARNING}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ osmo\+\_\+stats\+\_\+vty2srep()}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.



Referenced by \textbf{ DEFUN()}.

\mbox{\label{stats__vty_8c_aff9c01033d0e6181742c501a447c9c9d}} 
\index{stats\_vty.c@{stats\_vty.c}!set\_srep\_parameter\_str@{set\_srep\_parameter\_str}}
\index{set\_srep\_parameter\_str@{set\_srep\_parameter\_str}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{set\_srep\_parameter\_str()}
{\footnotesize\ttfamily static int set\+\_\+srep\+\_\+parameter\+\_\+str (\begin{DoxyParamCaption}\item[{struct \textbf{ vty} $\ast$}]{vty,  }\item[{int($\ast$)(struct \textbf{ osmo\+\_\+stats\+\_\+reporter} $\ast$, const char $\ast$)}]{fun,  }\item[{const char $\ast$}]{val,  }\item[{const char $\ast$}]{param\+\_\+name }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}}



References \textbf{ CMD\+\_\+\+SUCCESS}, \textbf{ CMD\+\_\+\+WARNING}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ osmo\+\_\+stats\+\_\+vty2srep()}, \textbf{ VTY\+\_\+\+NEWLINE}, and \textbf{ vty\+\_\+out()}.



Referenced by \textbf{ DEFUN()}.



\doxysubsection{Variable Documentation}
\mbox{\label{stats__vty_8c_a557e3a5450323ee7fc580127539a3cde}} 
\index{stats\_vty.c@{stats\_vty.c}!cfg\_stats\_node@{cfg\_stats\_node}}
\index{cfg\_stats\_node@{cfg\_stats\_node}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{cfg\_stats\_node}
{\footnotesize\ttfamily struct \textbf{ cmd\+\_\+node} cfg\+\_\+stats\+\_\+node}

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

\end{DoxyCode}


Referenced by \textbf{ osmo\+\_\+stats\+\_\+vty\+\_\+add\+\_\+cmds()}.

\mbox{\label{stats__vty_8c_a5d18b95fe5e258649e79bc9564cfd1b0}} 
\index{stats\_vty.c@{stats\_vty.c}!stats\_class\_strs@{stats\_class\_strs}}
\index{stats\_class\_strs@{stats\_class\_strs}!stats\_vty.c@{stats\_vty.c}}
\doxysubsubsection{stats\_class\_strs}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} stats\+\_\+class\+\_\+strs[$\,$]\hspace{0.3cm}{\ttfamily [static]}}

{\bfseries Initial value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{= \{}
\DoxyCodeLine{        \{ OSMO\_STATS\_CLASS\_GLOBAL,     \textcolor{stringliteral}{"{}global"{}} \},}
\DoxyCodeLine{        \{ OSMO\_STATS\_CLASS\_PEER,       \textcolor{stringliteral}{"{}peer"{}} \},}
\DoxyCodeLine{        \{ OSMO\_STATS\_CLASS\_SUBSCRIBER, \textcolor{stringliteral}{"{}subscriber"{}} \},}
\DoxyCodeLine{        \{ 0, NULL \}}
\DoxyCodeLine{\}}

\end{DoxyCode}


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

