\section{src/osmo\+\_\+ss7\+\_\+as.c File Reference} \label{osmo__ss7__as_8c}\index{src/osmo\+\_\+ss7\+\_\+as.\+c@{src/osmo\+\_\+ss7\+\_\+as.\+c}} {\ttfamily \#include $<$string.\+h$>$}\newline {\ttfamily \#include $<$errno.\+h$>$}\newline {\ttfamily \#include $<$unistd.\+h$>$}\newline {\ttfamily \#include $<$inttypes.\+h$>$}\newline {\ttfamily \#include $<$osmocom/sigtran/osmo\+\_\+ss7.\+h$>$}\newline {\ttfamily \#include $<$osmocom/core/linuxlist.\+h$>$}\newline {\ttfamily \#include $<$osmocom/core/utils.\+h$>$}\newline {\ttfamily \#include $<$osmocom/core/talloc.\+h$>$}\newline {\ttfamily \#include $<$osmocom/core/logging.\+h$>$}\newline {\ttfamily \#include \char`\"{}ss7\+\_\+internal.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}xua\+\_\+as\+\_\+fsm.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}xua\+\_\+asp\+\_\+fsm.\+h\char`\"{}}\newline \subsection*{Functions} \begin{DoxyCompactItemize} \item struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$ \textbf{ ss7\+\_\+as\+\_\+alloc} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$name, enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol} proto) \begin{DoxyCompactList}\small\item\em Allocate an Application Server. \end{DoxyCompactList}\item int \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+add\+\_\+asp} (struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as, const char $\ast$asp\+\_\+name) \begin{DoxyCompactList}\small\item\em Add given A\+SP to given AS. \end{DoxyCompactList}\item int \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+del\+\_\+asp} (struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as, const char $\ast$asp\+\_\+name) \begin{DoxyCompactList}\small\item\em Delete given A\+SP from given AS. \end{DoxyCompactList}\item void \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+destroy} (struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as) \begin{DoxyCompactList}\small\item\em Destroy given Application Server. \end{DoxyCompactList}\item bool \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+has\+\_\+asp} (const struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as, const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp) \begin{DoxyCompactList}\small\item\em Determine if given AS contains A\+SP. \end{DoxyCompactList}\item bool \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+active} (const struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as) \begin{DoxyCompactList}\small\item\em Determine if given AS is in the active state. \end{DoxyCompactList}\item bool \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+down} (const struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as) \begin{DoxyCompactList}\small\item\em Determine if given AS is in the down state. \end{DoxyCompactList}\end{DoxyCompactItemize} \subsection*{Variables} \begin{DoxyCompactItemize} \item struct value\+\_\+string \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+traffic\+\_\+mode\+\_\+vals} [$\,$] \item static const struct rate\+\_\+ctr\+\_\+desc \textbf{ ss7\+\_\+as\+\_\+rcd} [$\,$] \item static const struct rate\+\_\+ctr\+\_\+group\+\_\+desc \textbf{ ss7\+\_\+as\+\_\+rcgd} \item static unsigned int \textbf{ g\+\_\+ss7\+\_\+as\+\_\+rcg\+\_\+idx} \end{DoxyCompactItemize} \subsection{Function Documentation} \mbox{\label{osmo__ss7__as_8c_a6eb76a8a7db795844115a5b6feb5e426}} \index{osmo\+\_\+ss7\+\_\+as.\+c@{osmo\+\_\+ss7\+\_\+as.\+c}!osmo\+\_\+ss7\+\_\+as\+\_\+active@{osmo\+\_\+ss7\+\_\+as\+\_\+active}} \index{osmo\+\_\+ss7\+\_\+as\+\_\+active@{osmo\+\_\+ss7\+\_\+as\+\_\+active}!osmo\+\_\+ss7\+\_\+as.\+c@{osmo\+\_\+ss7\+\_\+as.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+as\+\_\+active()} {\footnotesize\ttfamily bool osmo\+\_\+ss7\+\_\+as\+\_\+active (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as }\end{DoxyParamCaption})} Determine if given AS is in the active state. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em as} & Application Server. \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} true in case as is active; false otherwise. \end{DoxyReturn} References osmo\+\_\+ss7\+\_\+as\+::fi, and X\+U\+A\+\_\+\+A\+S\+\_\+\+S\+\_\+\+A\+C\+T\+I\+VE. Referenced by D\+E\+F\+U\+N(). \mbox{\label{osmo__ss7__as_8c_a01392ccbfd2fd93d962dcd7bd8037526}} \index{osmo\+\_\+ss7\+\_\+as.\+c@{osmo\+\_\+ss7\+\_\+as.\+c}!osmo\+\_\+ss7\+\_\+as\+\_\+add\+\_\+asp@{osmo\+\_\+ss7\+\_\+as\+\_\+add\+\_\+asp}} \index{osmo\+\_\+ss7\+\_\+as\+\_\+add\+\_\+asp@{osmo\+\_\+ss7\+\_\+as\+\_\+add\+\_\+asp}!osmo\+\_\+ss7\+\_\+as.\+c@{osmo\+\_\+ss7\+\_\+as.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+as\+\_\+add\+\_\+asp()} {\footnotesize\ttfamily int osmo\+\_\+ss7\+\_\+as\+\_\+add\+\_\+asp (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as, }\item[{const char $\ast$}]{asp\+\_\+name }\end{DoxyParamCaption})} Add given A\+SP to given AS. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em as} & Application Server to which asp is added \\ \hline \mbox{\tt in} & {\em asp} & Application Server Process to be added to as \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} 0 on success; negative in case of error \end{DoxyReturn} References osmo\+\_\+ss7\+\_\+as\+::asps, osmo\+\_\+ss7\+\_\+as\+::cfg, osmo\+\_\+ss7\+\_\+asp\+::cfg, osmo\+\_\+ss7\+\_\+asp\+::fi, osmo\+\_\+ss7\+\_\+as\+::inst, L\+O\+G\+P\+AS, osmo\+\_\+ss7\+\_\+asp\+::name, osmo\+\_\+ss7\+\_\+as\+\_\+has\+\_\+asp(), osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+name(), ss7\+\_\+initialized, and X\+U\+A\+\_\+\+A\+S\+P\+\_\+\+E\+\_\+\+A\+S\+\_\+\+A\+S\+S\+I\+G\+N\+ED. Referenced by D\+E\+F\+U\+N\+\_\+\+A\+T\+T\+R(), handle\+\_\+rkey\+\_\+reg(), ipa\+\_\+asp\+\_\+fsm\+\_\+wait\+\_\+id\+\_\+resp(), osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id(), and osmo\+\_\+sccp\+\_\+simple\+\_\+server\+\_\+add\+\_\+clnt(). \mbox{\label{osmo__ss7__as_8c_aca9bfa652d15609a904653398e17c5e9}} \index{osmo\+\_\+ss7\+\_\+as.\+c@{osmo\+\_\+ss7\+\_\+as.\+c}!osmo\+\_\+ss7\+\_\+as\+\_\+del\+\_\+asp@{osmo\+\_\+ss7\+\_\+as\+\_\+del\+\_\+asp}} \index{osmo\+\_\+ss7\+\_\+as\+\_\+del\+\_\+asp@{osmo\+\_\+ss7\+\_\+as\+\_\+del\+\_\+asp}!osmo\+\_\+ss7\+\_\+as.\+c@{osmo\+\_\+ss7\+\_\+as.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+as\+\_\+del\+\_\+asp()} {\footnotesize\ttfamily int osmo\+\_\+ss7\+\_\+as\+\_\+del\+\_\+asp (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as, }\item[{const char $\ast$}]{asp\+\_\+name }\end{DoxyParamCaption})} Delete given A\+SP from given AS. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em as} & Application Server from which asp is deleted \\ \hline \mbox{\tt in} & {\em asp} & Application Server Process to delete from as \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} 0 on success; negative in case of error \end{DoxyReturn} References osmo\+\_\+ss7\+\_\+as\+::asps, osmo\+\_\+ss7\+\_\+as\+::cfg, osmo\+\_\+ss7\+\_\+asp\+::cfg, osmo\+\_\+ss7\+\_\+as\+::inst, L\+O\+G\+P\+AS, osmo\+\_\+ss7\+\_\+asp\+::name, osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+name(), and ss7\+\_\+initialized. Referenced by D\+E\+F\+U\+N\+\_\+\+A\+T\+T\+R(), and handle\+\_\+rkey\+\_\+dereg(). \mbox{\label{osmo__ss7__as_8c_afe830a3d827c8c9ff36bf04e0428ad79}} \index{osmo\+\_\+ss7\+\_\+as.\+c@{osmo\+\_\+ss7\+\_\+as.\+c}!osmo\+\_\+ss7\+\_\+as\+\_\+destroy@{osmo\+\_\+ss7\+\_\+as\+\_\+destroy}} \index{osmo\+\_\+ss7\+\_\+as\+\_\+destroy@{osmo\+\_\+ss7\+\_\+as\+\_\+destroy}!osmo\+\_\+ss7\+\_\+as.\+c@{osmo\+\_\+ss7\+\_\+as.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+as\+\_\+destroy()} {\footnotesize\ttfamily void osmo\+\_\+ss7\+\_\+as\+\_\+destroy (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as }\end{DoxyParamCaption})} Destroy given Application Server. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em as} & Application Server to destroy \\ \hline \end{DoxyParams} References osmo\+\_\+ss7\+\_\+route\+::as, osmo\+\_\+ss7\+\_\+as\+::ctrg, osmo\+\_\+ss7\+\_\+route\+::dest, osmo\+\_\+ss7\+\_\+as\+::fi, osmo\+\_\+ss7\+\_\+as\+::inst, osmo\+\_\+ss7\+\_\+route\+::list, osmo\+\_\+ss7\+\_\+as\+::list, L\+O\+G\+P\+AS, osmo\+\_\+ss7\+\_\+route\+\_\+destroy(), osmo\+\_\+ss7\+\_\+route\+\_\+table\+::routes, osmo\+\_\+ss7\+\_\+instance\+::rtable\+\_\+system, and ss7\+\_\+initialized. Referenced by D\+E\+F\+U\+N\+\_\+\+A\+T\+T\+R(), handle\+\_\+rkey\+\_\+dereg(), handle\+\_\+rkey\+\_\+reg(), osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id(), osmo\+\_\+sccp\+\_\+simple\+\_\+server\+\_\+add\+\_\+clnt(), osmo\+\_\+ss7\+\_\+instance\+\_\+destroy(), and xua\+\_\+rkm\+\_\+cleanup\+\_\+dyn\+\_\+as\+\_\+for\+\_\+asp(). \mbox{\label{osmo__ss7__as_8c_a73e6d3f8129ec492e6c59b7bc4ac7fe3}} \index{osmo\+\_\+ss7\+\_\+as.\+c@{osmo\+\_\+ss7\+\_\+as.\+c}!osmo\+\_\+ss7\+\_\+as\+\_\+down@{osmo\+\_\+ss7\+\_\+as\+\_\+down}} \index{osmo\+\_\+ss7\+\_\+as\+\_\+down@{osmo\+\_\+ss7\+\_\+as\+\_\+down}!osmo\+\_\+ss7\+\_\+as.\+c@{osmo\+\_\+ss7\+\_\+as.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+as\+\_\+down()} {\footnotesize\ttfamily bool osmo\+\_\+ss7\+\_\+as\+\_\+down (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as }\end{DoxyParamCaption})} Determine if given AS is in the down state. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em as} & Application Server. \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} true in case as is down; false otherwise. \end{DoxyReturn} References osmo\+\_\+ss7\+\_\+as\+::fi, and X\+U\+A\+\_\+\+A\+S\+\_\+\+S\+\_\+\+D\+O\+WN. Referenced by hmrt\+\_\+message\+\_\+for\+\_\+routing(). \mbox{\label{osmo__ss7__as_8c_abffb76cffe93aa6421b2e41dcce2fe7f}} \index{osmo\+\_\+ss7\+\_\+as.\+c@{osmo\+\_\+ss7\+\_\+as.\+c}!osmo\+\_\+ss7\+\_\+as\+\_\+has\+\_\+asp@{osmo\+\_\+ss7\+\_\+as\+\_\+has\+\_\+asp}} \index{osmo\+\_\+ss7\+\_\+as\+\_\+has\+\_\+asp@{osmo\+\_\+ss7\+\_\+as\+\_\+has\+\_\+asp}!osmo\+\_\+ss7\+\_\+as.\+c@{osmo\+\_\+ss7\+\_\+as.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+as\+\_\+has\+\_\+asp()} {\footnotesize\ttfamily bool osmo\+\_\+ss7\+\_\+as\+\_\+has\+\_\+asp (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as, }\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp }\end{DoxyParamCaption})} Determine if given AS contains A\+SP. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em as} & Application Server in which to look for asp \\ \hline \mbox{\tt in} & {\em asp} & Application Server Process to look for in as \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} true in case asp is part of as; false otherwise \end{DoxyReturn} References osmo\+\_\+ss7\+\_\+as\+::asps, osmo\+\_\+ss7\+\_\+as\+::cfg, and ss7\+\_\+initialized. Referenced by as\+\_\+list\+\_\+for\+\_\+asp(), determine\+\_\+traf\+\_\+mode(), dispatch\+\_\+to\+\_\+all\+\_\+as(), find\+\_\+single\+\_\+as\+\_\+for\+\_\+asp(), get\+\_\+all\+\_\+rctx\+\_\+for\+\_\+asp(), handle\+\_\+rkey\+\_\+dereg(), ipa\+\_\+find\+\_\+as\+\_\+for\+\_\+asp(), osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id(), osmo\+\_\+ss7\+\_\+as\+\_\+add\+\_\+asp(), xua\+\_\+asp\+\_\+fsm\+\_\+inactive(), xua\+\_\+find\+\_\+as\+\_\+for\+\_\+asp(), xua\+\_\+msg\+\_\+add\+\_\+asp\+\_\+rctx(), and xua\+\_\+rkm\+\_\+cleanup\+\_\+dyn\+\_\+as\+\_\+for\+\_\+asp(). \mbox{\label{osmo__ss7__as_8c_af0f3be6036d5c46a6b0a3d8b0075a9c7}} \index{osmo\+\_\+ss7\+\_\+as.\+c@{osmo\+\_\+ss7\+\_\+as.\+c}!ss7\+\_\+as\+\_\+alloc@{ss7\+\_\+as\+\_\+alloc}} \index{ss7\+\_\+as\+\_\+alloc@{ss7\+\_\+as\+\_\+alloc}!osmo\+\_\+ss7\+\_\+as.\+c@{osmo\+\_\+ss7\+\_\+as.\+c}} \subsubsection{ss7\+\_\+as\+\_\+alloc()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+as}$\ast$ ss7\+\_\+as\+\_\+alloc (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst, }\item[{const char $\ast$}]{name, }\item[{enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol}}]{proto }\end{DoxyParamCaption})} Allocate an Application Server. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em inst} & S\+S7 Instance on which we operate \\ \hline \mbox{\tt in} & {\em name} & Name of Application Server \\ \hline \mbox{\tt in} & {\em proto} & Protocol of Application Server \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} pointer to Application Server on success; N\+U\+LL otherwise \end{DoxyReturn} References osmo\+\_\+ss7\+\_\+instance\+::as\+\_\+list, osmo\+\_\+ss7\+\_\+as\+::cfg, osmo\+\_\+ss7\+\_\+as\+::ctrg, osmo\+\_\+ss7\+\_\+as\+::fi, g\+\_\+ss7\+\_\+as\+\_\+rcg\+\_\+idx, osmo\+\_\+ss7\+\_\+as\+::inst, osmo\+\_\+ss7\+\_\+routing\+\_\+key\+::l\+\_\+rk\+\_\+id, osmo\+\_\+ss7\+\_\+as\+::list, osmo\+\_\+ss7\+\_\+as\+::mode, osmo\+\_\+ss7\+\_\+as\+::name, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+\_\+\+T\+M\+O\+D\+\_\+\+O\+V\+E\+R\+R\+I\+DE, osmo\+\_\+ss7\+\_\+as\+::proto, osmo\+\_\+ss7\+\_\+as\+::recovery\+\_\+timeout\+\_\+msec, osmo\+\_\+ss7\+\_\+as\+::routing\+\_\+key, ss7\+\_\+as\+\_\+rcgd, ss7\+\_\+find\+\_\+free\+\_\+l\+\_\+rk\+\_\+id(), and xua\+\_\+as\+\_\+fsm\+\_\+start(). Referenced by osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+or\+\_\+create(). \subsection{Variable Documentation} \mbox{\label{osmo__ss7__as_8c_aaadda9e298649caf18805f9fcd3a2039}} \index{osmo\+\_\+ss7\+\_\+as.\+c@{osmo\+\_\+ss7\+\_\+as.\+c}!g\+\_\+ss7\+\_\+as\+\_\+rcg\+\_\+idx@{g\+\_\+ss7\+\_\+as\+\_\+rcg\+\_\+idx}} \index{g\+\_\+ss7\+\_\+as\+\_\+rcg\+\_\+idx@{g\+\_\+ss7\+\_\+as\+\_\+rcg\+\_\+idx}!osmo\+\_\+ss7\+\_\+as.\+c@{osmo\+\_\+ss7\+\_\+as.\+c}} \subsubsection{g\+\_\+ss7\+\_\+as\+\_\+rcg\+\_\+idx} {\footnotesize\ttfamily unsigned int g\+\_\+ss7\+\_\+as\+\_\+rcg\+\_\+idx\hspace{0.3cm}{\ttfamily [static]}} Referenced by ss7\+\_\+as\+\_\+alloc(). \mbox{\label{osmo__ss7__as_8c_a41be4c98feb2b819cbc41e9f378ef8e2}} \index{osmo\+\_\+ss7\+\_\+as.\+c@{osmo\+\_\+ss7\+\_\+as.\+c}!osmo\+\_\+ss7\+\_\+as\+\_\+traffic\+\_\+mode\+\_\+vals@{osmo\+\_\+ss7\+\_\+as\+\_\+traffic\+\_\+mode\+\_\+vals}} \index{osmo\+\_\+ss7\+\_\+as\+\_\+traffic\+\_\+mode\+\_\+vals@{osmo\+\_\+ss7\+\_\+as\+\_\+traffic\+\_\+mode\+\_\+vals}!osmo\+\_\+ss7\+\_\+as.\+c@{osmo\+\_\+ss7\+\_\+as.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+as\+\_\+traffic\+\_\+mode\+\_\+vals} {\footnotesize\ttfamily struct value\+\_\+string osmo\+\_\+ss7\+\_\+as\+\_\+traffic\+\_\+mode\+\_\+vals[$\,$]} {\bfseries Initial value\+:} \begin{DoxyCode} = \{ \{ OSMO_SS7_AS_TMOD_BCAST, \textcolor{stringliteral}{"broadcast"} \}, \{ OSMO_SS7_AS_TMOD_LOADSHARE, \textcolor{stringliteral}{"loadshare"} \}, \{ OSMO_SS7_AS_TMOD_ROUNDROBIN, \textcolor{stringliteral}{"round-robin"} \}, \{ OSMO_SS7_AS_TMOD_OVERRIDE, \textcolor{stringliteral}{"override"} \}, \{ 0, NULL \} \} \end{DoxyCode} Referenced by D\+E\+F\+U\+N\+\_\+\+U\+S\+R\+A\+T\+T\+R(), and osmo\+\_\+ss7\+\_\+as\+\_\+traffic\+\_\+mode\+\_\+name(). \mbox{\label{osmo__ss7__as_8c_a52bafadf47672f3cbe10f1fe54c47c0c}} \index{osmo\+\_\+ss7\+\_\+as.\+c@{osmo\+\_\+ss7\+\_\+as.\+c}!ss7\+\_\+as\+\_\+rcd@{ss7\+\_\+as\+\_\+rcd}} \index{ss7\+\_\+as\+\_\+rcd@{ss7\+\_\+as\+\_\+rcd}!osmo\+\_\+ss7\+\_\+as.\+c@{osmo\+\_\+ss7\+\_\+as.\+c}} \subsubsection{ss7\+\_\+as\+\_\+rcd} {\footnotesize\ttfamily const struct rate\+\_\+ctr\+\_\+desc ss7\+\_\+as\+\_\+rcd[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode} = \{ [SS7_AS_CTR_RX_MSU_TOTAL] = \{ \textcolor{stringliteral}{"rx:msu:total"}, \textcolor{stringliteral}{"Total number of MSU received"} \}, [SS7_AS_CTR_TX_MSU_TOTAL] = \{ \textcolor{stringliteral}{"tx:msu:total"}, \textcolor{stringliteral}{"Total number of MSU transmitted"} \}, \} \end{DoxyCode} \mbox{\label{osmo__ss7__as_8c_a02583199ee14e9225a5d4086150bb8dd}} \index{osmo\+\_\+ss7\+\_\+as.\+c@{osmo\+\_\+ss7\+\_\+as.\+c}!ss7\+\_\+as\+\_\+rcgd@{ss7\+\_\+as\+\_\+rcgd}} \index{ss7\+\_\+as\+\_\+rcgd@{ss7\+\_\+as\+\_\+rcgd}!osmo\+\_\+ss7\+\_\+as.\+c@{osmo\+\_\+ss7\+\_\+as.\+c}} \subsubsection{ss7\+\_\+as\+\_\+rcgd} {\footnotesize\ttfamily const struct rate\+\_\+ctr\+\_\+group\+\_\+desc ss7\+\_\+as\+\_\+rcgd\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode} = \{ .group\_name\_prefix = \textcolor{stringliteral}{"sigtran\_as"}, .group\_description = \textcolor{stringliteral}{"SIGTRAN Application Server"}, .num\_ctr = ARRAY\_SIZE(ss7_as_rcd), .ctr\_desc = ss7_as_rcd, \} \end{DoxyCode} Referenced by ss7\+\_\+as\+\_\+alloc().