\doxysection{src/osmo\+\_\+ss7\+\_\+asp.c File Reference} \label{osmo__ss7__asp_8c}\index{src/osmo\_ss7\_asp.c@{src/osmo\_ss7\_asp.c}} {\ttfamily \#include $<$string.\+h$>$}\newline {\ttfamily \#include $<$errno.\+h$>$}\newline {\ttfamily \#include $<$unistd.\+h$>$}\newline {\ttfamily \#include $<$inttypes.\+h$>$}\newline {\ttfamily \#include $<$netdb.\+h$>$}\newline {\ttfamily \#include $<$netinet/in.\+h$>$}\newline {\ttfamily \#include $<$netinet/sctp.\+h$>$}\newline {\ttfamily \#include $<$osmocom/sigtran/osmo\+\_\+ss7.\+h$>$}\newline {\ttfamily \#include $<$osmocom/sigtran/mtp\+\_\+sap.\+h$>$}\newline {\ttfamily \#include $<$osmocom/sigtran/protocol/mtp.\+h$>$}\newline {\ttfamily \#include $<$osmocom/sigtran/protocol/sua.\+h$>$}\newline {\ttfamily \#include $<$osmocom/sigtran/protocol/m3ua.\+h$>$}\newline {\ttfamily \#include $<$osmocom/core/linuxlist.\+h$>$}\newline {\ttfamily \#include $<$osmocom/core/select.\+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 $<$osmocom/core/msgb.\+h$>$}\newline {\ttfamily \#include $<$osmocom/core/socket.\+h$>$}\newline {\ttfamily \#include $<$osmocom/core/sockaddr\+\_\+str.\+h$>$}\newline {\ttfamily \#include $<$osmocom/core/osmo\+\_\+io.\+h$>$}\newline {\ttfamily \#include $<$osmocom/netif/stream.\+h$>$}\newline {\ttfamily \#include $<$osmocom/netif/ipa.\+h$>$}\newline {\ttfamily \#include $<$osmocom/netif/sctp.\+h$>$}\newline {\ttfamily \#include \char`\"{}sccp\+\_\+internal.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}xua\+\_\+internal.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}ss7\+\_\+as.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}ss7\+\_\+asp.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}ss7\+\_\+internal.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}ss7\+\_\+xua\+\_\+srv.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}xua\+\_\+asp\+\_\+fsm.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}xua\+\_\+as\+\_\+fsm.\+h\char`\"{}}\newline \doxysubsection*{Functions} \begin{DoxyCompactItemize} \item static int \textbf{ \+\_\+setsockopt\+\_\+peer\+\_\+primary\+\_\+addr} (int fd, const struct osmo\+\_\+sockaddr $\ast$saddr) \item static int \textbf{ \+\_\+setsockopt\+\_\+primary\+\_\+addr} (int fd, const struct osmo\+\_\+sockaddr $\ast$saddr) \item bool \textbf{ ss7\+\_\+asp\+\_\+protocol\+\_\+check\+\_\+trans\+\_\+proto} (enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol} proto, int trans\+\_\+proto) \item int \textbf{ ss7\+\_\+default\+\_\+trans\+\_\+proto\+\_\+for\+\_\+asp\+\_\+proto} (enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol} proto) \item int \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol\+\_\+port} (enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol} prot) \item int \textbf{ ss7\+\_\+asp\+\_\+apply\+\_\+new\+\_\+local\+\_\+address} (const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, unsigned int loc\+\_\+idx) \item int \textbf{ ss7\+\_\+asp\+\_\+apply\+\_\+drop\+\_\+local\+\_\+address} (const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, unsigned int loc\+\_\+idx) \item int \textbf{ ss7\+\_\+asp\+\_\+apply\+\_\+peer\+\_\+primary\+\_\+address} (const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp) \item int \textbf{ ss7\+\_\+asp\+\_\+apply\+\_\+primary\+\_\+address} (const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp) \item static bool \textbf{ sctp\+\_\+peer\+\_\+addr\+\_\+change\+\_\+ev\+\_\+addr\+\_\+matches\+\_\+our\+\_\+primary} (const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, const union sctp\+\_\+notification $\ast$notif) \item static void \textbf{ asp\+\_\+handle\+\_\+sctp\+\_\+notif\+\_\+monitor\+\_\+primary\+\_\+address} (const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, const union sctp\+\_\+notification $\ast$notif) \item bool \textbf{ ss7\+\_\+asp\+\_\+set\+\_\+default\+\_\+peer\+\_\+hosts} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp) \item static uint16\+\_\+t \textbf{ get\+\_\+in\+\_\+port} (struct sockaddr $\ast$sa) \item static void \textbf{ chop\+\_\+v4\+\_\+mapped\+\_\+on\+\_\+v6\+\_\+prefix} (char $\ast$buf) \item struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ \textbf{ ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+socket\+\_\+addr} (int fd, int trans\+\_\+proto) \begin{DoxyCompactList}\small\item\em Find an ASP definition matching the local+remote IP/\+PORT of given fd. \end{DoxyCompactList}\item struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ \textbf{ ss7\+\_\+asp\+\_\+alloc} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$name, uint16\+\_\+t remote\+\_\+port, uint16\+\_\+t local\+\_\+port, int trans\+\_\+proto, enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol} proto) \item void \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+destroy} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp) \item static int \textbf{ xua\+\_\+cli\+\_\+read\+\_\+cb} (struct osmo\+\_\+stream\+\_\+cli $\ast$conn, int res, struct msgb $\ast$msg) \item static int \textbf{ ipa\+\_\+cli\+\_\+read\+\_\+cb} (struct osmo\+\_\+stream\+\_\+cli $\ast$conn, int res, struct msgb $\ast$msg) \item static int \textbf{ m3ua\+\_\+tcp\+\_\+cli\+\_\+read\+\_\+cb} (struct osmo\+\_\+stream\+\_\+cli $\ast$conn, int res, struct msgb $\ast$msg) \item static int \textbf{ xua\+\_\+cli\+\_\+connect\+\_\+cb} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli) \item static int \textbf{ xua\+\_\+cli\+\_\+close\+\_\+and\+\_\+reconnect} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli) \item int \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+restart} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp) \item bool \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+active} (const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp) \item bool \textbf{ ss7\+\_\+asp\+\_\+is\+\_\+started} (const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp) \item static int \textbf{ get\+\_\+logevel\+\_\+by\+\_\+sn\+\_\+type} (int sn\+\_\+type) \item static void \textbf{ log\+\_\+sctp\+\_\+notification} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, const char $\ast$pfx, union sctp\+\_\+notification $\ast$notif) \item int \textbf{ ss7\+\_\+asp\+\_\+ipa\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb} (struct osmo\+\_\+stream\+\_\+srv $\ast$conn, int res, struct msgb $\ast$msg) \item int \textbf{ ss7\+\_\+asp\+\_\+xua\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb} (struct osmo\+\_\+stream\+\_\+srv $\ast$conn, int res, struct msgb $\ast$msg) \item int \textbf{ xua\+\_\+tcp\+\_\+segmentation\+\_\+cb} (struct msgb $\ast$msg) \item int \textbf{ ss7\+\_\+asp\+\_\+m3ua\+\_\+tcp\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb} (struct osmo\+\_\+stream\+\_\+srv $\ast$conn, int res, struct msgb $\ast$msg) \item static void \textbf{ xua\+\_\+cli\+\_\+close} (struct osmo\+\_\+stream\+\_\+cli $\ast$cli) \item int \textbf{ ss7\+\_\+asp\+\_\+xua\+\_\+srv\+\_\+conn\+\_\+closed\+\_\+cb} (struct osmo\+\_\+stream\+\_\+srv $\ast$srv) \item int \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+send} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, struct msgb $\ast$msg) \begin{DoxyCompactList}\small\item\em send a fully encoded msgb via a given ASP \end{DoxyCompactList}\item void \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+disconnect} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp) \item void \textbf{ osmo\+\_\+ss7\+\_\+register\+\_\+rx\+\_\+unknown\+\_\+cb} (\textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+rx\+\_\+unknown\+\_\+cb} $\ast$cb) \begin{DoxyCompactList}\small\item\em Register a call-\/back function for unknown SCTP PPID / IPA Stream ID. \end{DoxyCompactList}\item int \textbf{ ss7\+\_\+asp\+\_\+rx\+\_\+unknown} (struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp, int ppid\+\_\+mux, struct msgb $\ast$msg) \item int \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+get\+\_\+log\+\_\+subsys} (const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp) \begin{DoxyCompactList}\small\item\em Get the logging subsystem for a given ASP. \end{DoxyCompactList}\item const char $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+get\+\_\+name} (const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp) \begin{DoxyCompactList}\small\item\em Get the name of a given ASP. \end{DoxyCompactList}\item enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol} \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+get\+\_\+proto} (const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp) \begin{DoxyCompactList}\small\item\em Get the proto of a given ASP. \end{DoxyCompactList}\item int \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+get\+\_\+trans\+\_\+proto} (const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp) \begin{DoxyCompactList}\small\item\em Get the transport proto of a given ASP. \end{DoxyCompactList}\item int \textbf{ ss7\+\_\+asp\+\_\+get\+\_\+fd} (const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$asp) \begin{DoxyCompactList}\small\item\em Get the fd of a given ASP. \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsection*{Variables} \begin{DoxyCompactItemize} \item struct value\+\_\+string \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol\+\_\+vals} [$\,$] \item const struct value\+\_\+string \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+role\+\_\+names} [$\,$] \item static const uint16\+\_\+t \textbf{ prot2port} [$\,$] \item static const struct rate\+\_\+ctr\+\_\+desc \textbf{ ss7\+\_\+asp\+\_\+rcd} [$\,$] \item static const struct rate\+\_\+ctr\+\_\+group\+\_\+desc \textbf{ ss7\+\_\+asp\+\_\+rcgd} \item static unsigned int \textbf{ g\+\_\+ss7\+\_\+asp\+\_\+rcg\+\_\+idx} \item static \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+rx\+\_\+unknown\+\_\+cb} $\ast$ \textbf{ g\+\_\+osmo\+\_\+ss7\+\_\+asp\+\_\+rx\+\_\+unknown\+\_\+cb} \end{DoxyCompactItemize} \doxysubsection{Function Documentation} \mbox{\label{osmo__ss7__asp_8c_acca5c1150a63d9ffd39c94bea4f55fea}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!\_setsockopt\_peer\_primary\_addr@{\_setsockopt\_peer\_primary\_addr}} \index{\_setsockopt\_peer\_primary\_addr@{\_setsockopt\_peer\_primary\_addr}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{\_setsockopt\_peer\_primary\_addr()} {\footnotesize\ttfamily static int \+\_\+setsockopt\+\_\+peer\+\_\+primary\+\_\+addr (\begin{DoxyParamCaption}\item[{int}]{fd, }\item[{const struct osmo\+\_\+sockaddr $\ast$}]{saddr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} Referenced by \textbf{ ss7\+\_\+asp\+\_\+apply\+\_\+peer\+\_\+primary\+\_\+address()}. \mbox{\label{osmo__ss7__asp_8c_a5b4b039ff2f8122b9b26ff326059608a}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!\_setsockopt\_primary\_addr@{\_setsockopt\_primary\_addr}} \index{\_setsockopt\_primary\_addr@{\_setsockopt\_primary\_addr}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{\_setsockopt\_primary\_addr()} {\footnotesize\ttfamily static int \+\_\+setsockopt\+\_\+primary\+\_\+addr (\begin{DoxyParamCaption}\item[{int}]{fd, }\item[{const struct osmo\+\_\+sockaddr $\ast$}]{saddr }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} Referenced by \textbf{ ss7\+\_\+asp\+\_\+apply\+\_\+primary\+\_\+address()}. \mbox{\label{osmo__ss7__asp_8c_ae693fb36bc511d556200d7265686ed25}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!asp\_handle\_sctp\_notif\_monitor\_primary\_address@{asp\_handle\_sctp\_notif\_monitor\_primary\_address}} \index{asp\_handle\_sctp\_notif\_monitor\_primary\_address@{asp\_handle\_sctp\_notif\_monitor\_primary\_address}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{asp\_handle\_sctp\_notif\_monitor\_primary\_address()} {\footnotesize\ttfamily static void asp\+\_\+handle\+\_\+sctp\+\_\+notif\+\_\+monitor\+\_\+primary\+\_\+address (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{const union sctp\+\_\+notification $\ast$}]{notif }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::idx\+\_\+primary}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::remote}, \textbf{ sctp\+\_\+peer\+\_\+addr\+\_\+change\+\_\+ev\+\_\+addr\+\_\+matches\+\_\+our\+\_\+primary()}, and \textbf{ ss7\+\_\+asp\+\_\+apply\+\_\+primary\+\_\+address()}. Referenced by \textbf{ ss7\+\_\+asp\+\_\+xua\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb()}, and \textbf{ xua\+\_\+cli\+\_\+read\+\_\+cb()}. \mbox{\label{osmo__ss7__asp_8c_a2c6b544ce40c5efd24b1f82d0f1f76cc}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!chop\_v4\_mapped\_on\_v6\_prefix@{chop\_v4\_mapped\_on\_v6\_prefix}} \index{chop\_v4\_mapped\_on\_v6\_prefix@{chop\_v4\_mapped\_on\_v6\_prefix}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{chop\_v4\_mapped\_on\_v6\_prefix()} {\footnotesize\ttfamily static void chop\+\_\+v4\+\_\+mapped\+\_\+on\+\_\+v6\+\_\+prefix (\begin{DoxyParamCaption}\item[{char $\ast$}]{buf }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ len}. Referenced by \textbf{ ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+socket\+\_\+addr()}. \mbox{\label{osmo__ss7__asp_8c_a1f18cc9a880d46df3c5db7b760fdc305}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!get\_in\_port@{get\_in\_port}} \index{get\_in\_port@{get\_in\_port}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{get\_in\_port()} {\footnotesize\ttfamily static uint16\+\_\+t get\+\_\+in\+\_\+port (\begin{DoxyParamCaption}\item[{struct sockaddr $\ast$}]{sa }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} Referenced by \textbf{ ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+socket\+\_\+addr()}. \mbox{\label{osmo__ss7__asp_8c_adf98277fedb099f019d3f59d8b0e96c8}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!get\_logevel\_by\_sn\_type@{get\_logevel\_by\_sn\_type}} \index{get\_logevel\_by\_sn\_type@{get\_logevel\_by\_sn\_type}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{get\_logevel\_by\_sn\_type()} {\footnotesize\ttfamily static int get\+\_\+logevel\+\_\+by\+\_\+sn\+\_\+type (\begin{DoxyParamCaption}\item[{int}]{sn\+\_\+type }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} Referenced by \textbf{ log\+\_\+sctp\+\_\+notification()}. \mbox{\label{osmo__ss7__asp_8c_a4b8a8b39300fe0db3342fd961e37dfdd}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!ipa\_cli\_read\_cb@{ipa\_cli\_read\_cb}} \index{ipa\_cli\_read\_cb@{ipa\_cli\_read\_cb}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{ipa\_cli\_read\_cb()} {\footnotesize\ttfamily static int ipa\+\_\+cli\+\_\+read\+\_\+cb (\begin{DoxyParamCaption}\item[{struct osmo\+\_\+stream\+\_\+cli $\ast$}]{conn, }\item[{int}]{res, }\item[{struct msgb $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::ctrg}, \textbf{ ipa\+\_\+rx\+\_\+msg()}, \textbf{ SS7\+\_\+\+ASP\+\_\+\+CTR\+\_\+\+PKT\+\_\+\+RX\+\_\+\+TOTAL}, and \textbf{ xua\+\_\+cli\+\_\+close\+\_\+and\+\_\+reconnect()}. Referenced by \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+restart()}. \mbox{\label{osmo__ss7__asp_8c_ad36aebefc2d00d1122549c69a37b413a}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!log\_sctp\_notification@{log\_sctp\_notification}} \index{log\_sctp\_notification@{log\_sctp\_notification}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{log\_sctp\_notification()} {\footnotesize\ttfamily static void log\+\_\+sctp\+\_\+notification (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{const char $\ast$}]{pfx, }\item[{union sctp\+\_\+notification $\ast$}]{notif }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ get\+\_\+logevel\+\_\+by\+\_\+sn\+\_\+type()}, and \textbf{ LOGPASP}. Referenced by \textbf{ ss7\+\_\+asp\+\_\+xua\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb()}, and \textbf{ xua\+\_\+cli\+\_\+read\+\_\+cb()}. \mbox{\label{osmo__ss7__asp_8c_a4971e62860add06a4913d6463c00ffac}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!m3ua\_tcp\_cli\_read\_cb@{m3ua\_tcp\_cli\_read\_cb}} \index{m3ua\_tcp\_cli\_read\_cb@{m3ua\_tcp\_cli\_read\_cb}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{m3ua\_tcp\_cli\_read\_cb()} {\footnotesize\ttfamily static int m3ua\+\_\+tcp\+\_\+cli\+\_\+read\+\_\+cb (\begin{DoxyParamCaption}\item[{struct osmo\+\_\+stream\+\_\+cli $\ast$}]{conn, }\item[{int}]{res, }\item[{struct msgb $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ xua\+\_\+common\+\_\+hdr\+::data}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+XFER}, \textbf{ M3\+UA\+\_\+\+PPID}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class}, and \textbf{ xua\+\_\+cli\+\_\+read\+\_\+cb()}. Referenced by \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+restart()}. \mbox{\label{osmo__ss7__asp_8c_a85b5b2514d86c48bf6c994b08e362c55}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!osmo\_ss7\_asp\_active@{osmo\_ss7\_asp\_active}} \index{osmo\_ss7\_asp\_active@{osmo\_ss7\_asp\_active}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{osmo\_ss7\_asp\_active()} {\footnotesize\ttfamily bool osmo\+\_\+ss7\+\_\+asp\+\_\+active (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp }\end{DoxyParamCaption})} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::fi}, and \textbf{ XUA\+\_\+\+ASP\+\_\+\+S\+\_\+\+ACTIVE}. Referenced by \textbf{ notify\+\_\+any\+\_\+other\+\_\+active\+\_\+asp\+\_\+as\+\_\+inactive()}, \textbf{ ss7\+\_\+as\+\_\+select\+\_\+asp\+\_\+broadcast()}, \textbf{ ss7\+\_\+as\+\_\+select\+\_\+asp\+\_\+override()}, \textbf{ ss7\+\_\+as\+\_\+select\+\_\+asp\+\_\+roundrobin()}, \textbf{ sua\+\_\+snm\+\_\+ssn\+\_\+available()}, \textbf{ xua\+\_\+as\+\_\+transmit\+\_\+msg\+\_\+broadcast()}, \textbf{ xua\+\_\+snm\+\_\+pc\+\_\+available()}, \textbf{ xua\+\_\+snm\+\_\+scon()}, and \textbf{ xua\+\_\+snm\+\_\+upu()}. \mbox{\label{osmo__ss7__asp_8c_a6fce9d43401870a21aafb2b62936b321}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!osmo\_ss7\_asp\_destroy@{osmo\_ss7\_asp\_destroy}} \index{osmo\_ss7\_asp\_destroy@{osmo\_ss7\_asp\_destroy}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{osmo\_ss7\_asp\_destroy()} {\footnotesize\ttfamily void osmo\+\_\+ss7\+\_\+asp\+\_\+destroy (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp }\end{DoxyParamCaption})} References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::as\+\_\+list}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::asps}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::client}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::ctrg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::fi}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+as\+::list}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::list}, \textbf{ LOGPASP}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::server}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::siblings}, \textbf{ ss7\+\_\+initialized}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+::xua\+\_\+server}. Referenced by \textbf{ DEFUN\+\_\+\+ATTR()}, \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id()}, \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+server\+\_\+add\+\_\+clnt()}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+\_\+destroy()}, \textbf{ ss7\+\_\+asp\+\_\+xua\+\_\+srv\+\_\+conn\+\_\+closed\+\_\+cb()}, and \textbf{ ss7\+\_\+xua\+\_\+server\+\_\+destroy()}. \mbox{\label{osmo__ss7__asp_8c_af24d6e5d1494620c9a340ff2bb68416c}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!osmo\_ss7\_asp\_disconnect@{osmo\_ss7\_asp\_disconnect}} \index{osmo\_ss7\_asp\_disconnect@{osmo\_ss7\_asp\_disconnect}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{osmo\_ss7\_asp\_disconnect()} {\footnotesize\ttfamily void osmo\+\_\+ss7\+\_\+asp\+\_\+disconnect (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp }\end{DoxyParamCaption})} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::client}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::server}, and \textbf{ xua\+\_\+cli\+\_\+close\+\_\+and\+\_\+reconnect()}. Referenced by \textbf{ DEFUN()}, \textbf{ ipa\+\_\+asp\+\_\+fsm\+\_\+timer\+\_\+cb()}, \textbf{ ipa\+\_\+asp\+\_\+fsm\+\_\+wait\+\_\+id\+\_\+resp()}, and \textbf{ ipa\+\_\+pong\+\_\+timer\+\_\+cb()}. \mbox{\label{osmo__ss7__asp_8c_aecc0022dbb85c45d452d624c7a74587f}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!osmo\_ss7\_asp\_get\_log\_subsys@{osmo\_ss7\_asp\_get\_log\_subsys}} \index{osmo\_ss7\_asp\_get\_log\_subsys@{osmo\_ss7\_asp\_get\_log\_subsys}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{osmo\_ss7\_asp\_get\_log\_subsys()} {\footnotesize\ttfamily int osmo\+\_\+ss7\+\_\+asp\+\_\+get\+\_\+log\+\_\+subsys (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp }\end{DoxyParamCaption})} Get the logging subsystem for a given ASP. Used by generic code. References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+M3\+UA}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+SUA}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}. Referenced by \textbf{ xua\+\_\+find\+\_\+as\+\_\+for\+\_\+asp()}, \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+daud()}, \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+dava()}, \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+duna()}, \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+dupu()}, and \textbf{ xua\+\_\+snm\+\_\+rx\+\_\+scon()}. \mbox{\label{osmo__ss7__asp_8c_adaf906c479a08d0f6ed6664c3fdd95c7}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!osmo\_ss7\_asp\_get\_name@{osmo\_ss7\_asp\_get\_name}} \index{osmo\_ss7\_asp\_get\_name@{osmo\_ss7\_asp\_get\_name}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{osmo\_ss7\_asp\_get\_name()} {\footnotesize\ttfamily const char $\ast$ osmo\+\_\+ss7\+\_\+asp\+\_\+get\+\_\+name (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp }\end{DoxyParamCaption})} Get the name of a given ASP. \begin{DoxyParams}[1]{Parameters} \mbox{\texttt{ in}} & {\em asp} & The ASP for which the name is requested \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} The name of the ASP, or NULL if not set \end{DoxyReturn} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+::name}. \mbox{\label{osmo__ss7__asp_8c_a44b7671799d1beacce83817e2061f72f}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!osmo\_ss7\_asp\_get\_proto@{osmo\_ss7\_asp\_get\_proto}} \index{osmo\_ss7\_asp\_get\_proto@{osmo\_ss7\_asp\_get\_proto}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{osmo\_ss7\_asp\_get\_proto()} {\footnotesize\ttfamily enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol} osmo\+\_\+ss7\+\_\+asp\+\_\+get\+\_\+proto (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp }\end{DoxyParamCaption})} Get the proto of a given ASP. \begin{DoxyParams}[1]{Parameters} \mbox{\texttt{ in}} & {\em asp} & The ASP for which the proto is requested \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} The proto of the ASP \end{DoxyReturn} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}. \mbox{\label{osmo__ss7__asp_8c_a1b9ecb408d77a295723c34235b796e1e}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!osmo\_ss7\_asp\_get\_trans\_proto@{osmo\_ss7\_asp\_get\_trans\_proto}} \index{osmo\_ss7\_asp\_get\_trans\_proto@{osmo\_ss7\_asp\_get\_trans\_proto}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{osmo\_ss7\_asp\_get\_trans\_proto()} {\footnotesize\ttfamily int osmo\+\_\+ss7\+\_\+asp\+\_\+get\+\_\+trans\+\_\+proto (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp }\end{DoxyParamCaption})} Get the transport proto of a given ASP. \begin{DoxyParams}[1]{Parameters} \mbox{\texttt{ in}} & {\em asp} & The ASP for which the transport proto is requested \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} The transport proto of the ASP (one of IPPROTO\+\_\+$\ast$) \end{DoxyReturn} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+::trans\+\_\+proto}. \mbox{\label{osmo__ss7__asp_8c_a6d09b26e33e8838594e0374976769f6e}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!osmo\_ss7\_asp\_protocol\_port@{osmo\_ss7\_asp\_protocol\_port}} \index{osmo\_ss7\_asp\_protocol\_port@{osmo\_ss7\_asp\_protocol\_port}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{osmo\_ss7\_asp\_protocol\_port()} {\footnotesize\ttfamily int osmo\+\_\+ss7\+\_\+asp\+\_\+protocol\+\_\+port (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol}}]{prot }\end{DoxyParamCaption})} References \textbf{ prot2port}. Referenced by \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id()}, \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+server\+\_\+add\+\_\+clnt()}, and \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+server\+\_\+on\+\_\+ss7\+\_\+id()}. \mbox{\label{osmo__ss7__asp_8c_a8d3670d7e36042c95611f9bfa0a3b597}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!osmo\_ss7\_asp\_restart@{osmo\_ss7\_asp\_restart}} \index{osmo\_ss7\_asp\_restart@{osmo\_ss7\_asp\_restart}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{osmo\_ss7\_asp\_restart()} {\footnotesize\ttfamily int osmo\+\_\+ss7\+\_\+asp\+\_\+restart (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp }\end{DoxyParamCaption})} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::client}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::fi}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::host}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::host\+\_\+cnt}, \textbf{ ipa\+\_\+cli\+\_\+read\+\_\+cb()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::is\+\_\+server}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::local}, \textbf{ LOGPASP}, \textbf{ m3ua\+\_\+tcp\+\_\+cli\+\_\+read\+\_\+cb()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::max\+\_\+attempts\+\_\+present}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::max\+\_\+attempts\+\_\+value}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::max\+\_\+init\+\_\+timeo\+\_\+present}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::max\+\_\+init\+\_\+timeo\+\_\+value}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::max\+\_\+instreams\+\_\+present}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::max\+\_\+instreams\+\_\+value}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::name}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::num\+\_\+ostreams\+\_\+present}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::num\+\_\+ostreams\+\_\+value}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+IPA}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+M3\+UA}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::port}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::remote}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::role}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::sctp\+\_\+init}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::server}, \textbf{ ss7\+\_\+asp\+\_\+peer\+\_\+snprintf()}, \textbf{ ss7\+\_\+initialized}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::trans\+\_\+proto}, \textbf{ xua\+\_\+asp\+\_\+fsm\+\_\+start()}, \textbf{ xua\+\_\+cli\+\_\+close\+\_\+and\+\_\+reconnect()}, \textbf{ xua\+\_\+cli\+\_\+connect\+\_\+cb()}, \textbf{ xua\+\_\+cli\+\_\+read\+\_\+cb()}, and \textbf{ xua\+\_\+tcp\+\_\+segmentation\+\_\+cb()}. Referenced by \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id()}, \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+server\+\_\+add\+\_\+clnt()}, \textbf{ osmo\+\_\+ss7\+\_\+vty\+\_\+go\+\_\+parent()}, \textbf{ restart\+\_\+asp()}, and \textbf{ xua\+\_\+accept\+\_\+cb()}. \mbox{\label{osmo__ss7__asp_8c_a4bbbb5047fd067deb34846c6dab99c1f}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!osmo\_ss7\_asp\_send@{osmo\_ss7\_asp\_send}} \index{osmo\_ss7\_asp\_send@{osmo\_ss7\_asp\_send}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{osmo\_ss7\_asp\_send()} {\footnotesize\ttfamily int osmo\+\_\+ss7\+\_\+asp\+\_\+send (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{struct msgb $\ast$}]{msg }\end{DoxyParamCaption})} send a fully encoded msgb via a given ASP \begin{DoxyParams}[1]{Parameters} \mbox{\texttt{ in}} & {\em asp} & Application Server Process through which to send \\ \hline \mbox{\texttt{ in}} & {\em msg} & message buffer to transmit. Ownership transferred. \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} 0 on success; negative in case of error \end{DoxyReturn} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::client}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::ctrg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::is\+\_\+server}, \textbf{ LOGPASP}, \textbf{ M3\+UA\+\_\+\+PPID}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+IPA}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+M3\+UA}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+SUA}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::server}, \textbf{ SS7\+\_\+\+ASP\+\_\+\+CTR\+\_\+\+PKT\+\_\+\+TX\+\_\+\+TOTAL}, \textbf{ ss7\+\_\+initialized}, and \textbf{ SUA\+\_\+\+PPID}. Referenced by \textbf{ as\+\_\+notify\+\_\+all\+\_\+asp()}, \textbf{ ipa\+\_\+asp\+\_\+fsm\+\_\+wait\+\_\+id\+\_\+get()}, \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+dereg\+\_\+req()}, \textbf{ m3ua\+\_\+rx\+\_\+rkm\+\_\+reg\+\_\+req()}, \textbf{ m3ua\+\_\+tx\+\_\+xua\+\_\+asp()}, \textbf{ notify\+\_\+any\+\_\+other\+\_\+active\+\_\+asp\+\_\+as\+\_\+inactive()}, \textbf{ peer\+\_\+send()}, \textbf{ peer\+\_\+send\+\_\+error()}, \textbf{ sua\+\_\+tx\+\_\+xua\+\_\+asp()}, \textbf{ xua\+\_\+as\+\_\+transmit\+\_\+msg()}, \textbf{ xua\+\_\+as\+\_\+transmit\+\_\+msg\+\_\+broadcast()}, \textbf{ xua\+\_\+rkm\+\_\+send\+\_\+dereg\+\_\+req()}, and \textbf{ xua\+\_\+rkm\+\_\+send\+\_\+reg\+\_\+req()}. \mbox{\label{osmo__ss7__asp_8c_aa24cea8083d06097c1655a38a36e0a17}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!osmo\_ss7\_register\_rx\_unknown\_cb@{osmo\_ss7\_register\_rx\_unknown\_cb}} \index{osmo\_ss7\_register\_rx\_unknown\_cb@{osmo\_ss7\_register\_rx\_unknown\_cb}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{osmo\_ss7\_register\_rx\_unknown\_cb()} {\footnotesize\ttfamily void osmo\+\_\+ss7\+\_\+register\+\_\+rx\+\_\+unknown\+\_\+cb (\begin{DoxyParamCaption}\item[{\textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+rx\+\_\+unknown\+\_\+cb} $\ast$}]{cb }\end{DoxyParamCaption})} Register a call-\/back function for unknown SCTP PPID / IPA Stream ID. References \textbf{ g\+\_\+osmo\+\_\+ss7\+\_\+asp\+\_\+rx\+\_\+unknown\+\_\+cb}. \mbox{\label{osmo__ss7__asp_8c_ad0dd5b9bc4a221ea90c8a56658786b69}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!sctp\_peer\_addr\_change\_ev\_addr\_matches\_our\_primary@{sctp\_peer\_addr\_change\_ev\_addr\_matches\_our\_primary}} \index{sctp\_peer\_addr\_change\_ev\_addr\_matches\_our\_primary@{sctp\_peer\_addr\_change\_ev\_addr\_matches\_our\_primary}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{sctp\_peer\_addr\_change\_ev\_addr\_matches\_our\_primary()} {\footnotesize\ttfamily static bool sctp\+\_\+peer\+\_\+addr\+\_\+change\+\_\+ev\+\_\+addr\+\_\+matches\+\_\+our\+\_\+primary (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{const union sctp\+\_\+notification $\ast$}]{notif }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::host}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::idx\+\_\+primary}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+::remote}. Referenced by \textbf{ asp\+\_\+handle\+\_\+sctp\+\_\+notif\+\_\+monitor\+\_\+primary\+\_\+address()}. \mbox{\label{osmo__ss7__asp_8c_ac3d6291887a658d39aa55ec3b229acc2}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!ss7\_asp\_alloc@{ss7\_asp\_alloc}} \index{ss7\_asp\_alloc@{ss7\_asp\_alloc}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{ss7\_asp\_alloc()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ ss7\+\_\+asp\+\_\+alloc (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst, }\item[{const char $\ast$}]{name, }\item[{uint16\+\_\+t}]{remote\+\_\+port, }\item[{uint16\+\_\+t}]{local\+\_\+port, }\item[{int}]{trans\+\_\+proto, }\item[{enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol}}]{proto }\end{DoxyParamCaption})} References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::asp\+\_\+list}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::ctrg}, \textbf{ g\+\_\+ss7\+\_\+asp\+\_\+rcg\+\_\+idx}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::list}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::local}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::name}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+SUA}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol\+\_\+name()}, \textbf{ osmo\+\_\+ss7\+\_\+ensure\+\_\+sccp()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::port}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::remote}, \textbf{ ss7\+\_\+asp\+\_\+lm\+\_\+timer\+\_\+defaults}, \textbf{ ss7\+\_\+asp\+\_\+peer\+\_\+init()}, \textbf{ ss7\+\_\+asp\+\_\+protocol\+\_\+check\+\_\+trans\+\_\+proto()}, \textbf{ ss7\+\_\+asp\+\_\+rcgd}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::\+T\+\_\+defs\+\_\+lm}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+::trans\+\_\+proto}. Referenced by \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create2()}. \mbox{\label{osmo__ss7__asp_8c_ab2e3375ff5198011e7ceefbee4437d8f}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!ss7\_asp\_apply\_drop\_local\_address@{ss7\_asp\_apply\_drop\_local\_address}} \index{ss7\_asp\_apply\_drop\_local\_address@{ss7\_asp\_apply\_drop\_local\_address}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{ss7\_asp\_apply\_drop\_local\_address()} {\footnotesize\ttfamily int ss7\+\_\+asp\+\_\+apply\+\_\+drop\+\_\+local\+\_\+address (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{unsigned int}]{loc\+\_\+idx }\end{DoxyParamCaption})} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::client}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::host}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::is\+\_\+server}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::local}, \textbf{ LOGPASP}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+::server}. Referenced by \textbf{ DEFUN\+\_\+\+ATTR()}. \mbox{\label{osmo__ss7__asp_8c_a9082d03ccf3139e50b5d7b2fc3fa568b}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!ss7\_asp\_apply\_new\_local\_address@{ss7\_asp\_apply\_new\_local\_address}} \index{ss7\_asp\_apply\_new\_local\_address@{ss7\_asp\_apply\_new\_local\_address}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{ss7\_asp\_apply\_new\_local\_address()} {\footnotesize\ttfamily int ss7\+\_\+asp\+\_\+apply\+\_\+new\+\_\+local\+\_\+address (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{unsigned int}]{loc\+\_\+idx }\end{DoxyParamCaption})} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::client}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::host}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::is\+\_\+server}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::local}, \textbf{ LOGPASP}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+::server}. Referenced by \textbf{ DEFUN\+\_\+\+ATTR()}. \mbox{\label{osmo__ss7__asp_8c_a52c416a02307b3f013953bcd6b61bee0}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!ss7\_asp\_apply\_peer\_primary\_address@{ss7\_asp\_apply\_peer\_primary\_address}} \index{ss7\_asp\_apply\_peer\_primary\_address@{ss7\_asp\_apply\_peer\_primary\_address}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{ss7\_asp\_apply\_peer\_primary\_address()} {\footnotesize\ttfamily int ss7\+\_\+asp\+\_\+apply\+\_\+peer\+\_\+primary\+\_\+address (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp }\end{DoxyParamCaption})} References \textbf{ \+\_\+setsockopt\+\_\+peer\+\_\+primary\+\_\+addr()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::client}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::host}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::host\+\_\+cnt}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::idx\+\_\+primary}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::is\+\_\+server}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::local}, \textbf{ LOGPASP}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::port}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+::server}. Referenced by \textbf{ DEFUN\+\_\+\+ATTR()}, \textbf{ xua\+\_\+accept\+\_\+cb()}, and \textbf{ xua\+\_\+cli\+\_\+connect\+\_\+cb()}. \mbox{\label{osmo__ss7__asp_8c_a1c6f3d525c04eb8553784c922f9c1d03}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!ss7\_asp\_apply\_primary\_address@{ss7\_asp\_apply\_primary\_address}} \index{ss7\_asp\_apply\_primary\_address@{ss7\_asp\_apply\_primary\_address}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{ss7\_asp\_apply\_primary\_address()} {\footnotesize\ttfamily int ss7\+\_\+asp\+\_\+apply\+\_\+primary\+\_\+address (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp }\end{DoxyParamCaption})} References \textbf{ \+\_\+setsockopt\+\_\+primary\+\_\+addr()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::client}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::host}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::host\+\_\+cnt}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::idx\+\_\+primary}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::is\+\_\+server}, \textbf{ LOGPASP}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::port}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::remote}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+::server}. Referenced by \textbf{ asp\+\_\+handle\+\_\+sctp\+\_\+notif\+\_\+monitor\+\_\+primary\+\_\+address()}, \textbf{ DEFUN\+\_\+\+ATTR()}, \textbf{ xua\+\_\+accept\+\_\+cb()}, and \textbf{ xua\+\_\+cli\+\_\+connect\+\_\+cb()}. \mbox{\label{osmo__ss7__asp_8c_a1da88f0bc9afa17b8797c806178749c0}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!ss7\_asp\_find\_by\_socket\_addr@{ss7\_asp\_find\_by\_socket\_addr}} \index{ss7\_asp\_find\_by\_socket\_addr@{ss7\_asp\_find\_by\_socket\_addr}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{ss7\_asp\_find\_by\_socket\_addr()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+socket\+\_\+addr (\begin{DoxyParamCaption}\item[{int}]{fd, }\item[{int}]{trans\+\_\+proto }\end{DoxyParamCaption})} Find an ASP definition matching the local+remote IP/\+PORT of given fd. \begin{DoxyParams}[1]{Parameters} \mbox{\texttt{ in}} & {\em fd} & socket descriptor of given socket \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} SS7 ASP in case a matching one is found; NULL otherwise \end{DoxyReturn} References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::asp\+\_\+list}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ chop\+\_\+v4\+\_\+mapped\+\_\+on\+\_\+v6\+\_\+prefix()}, \textbf{ get\+\_\+in\+\_\+port()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::host\+\_\+cnt}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::inst}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::list}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::local}, \textbf{ osmo\+\_\+ss7\+\_\+instances}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::port}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::remote}, \textbf{ ss7\+\_\+asp\+\_\+peer\+\_\+match\+\_\+host()}, \textbf{ ss7\+\_\+initialized}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+::trans\+\_\+proto}. Referenced by \textbf{ xua\+\_\+accept\+\_\+cb()}. \mbox{\label{osmo__ss7__asp_8c_a5de79890dc6ede1c9e7ace712c931d25}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!ss7\_asp\_get\_fd@{ss7\_asp\_get\_fd}} \index{ss7\_asp\_get\_fd@{ss7\_asp\_get\_fd}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{ss7\_asp\_get\_fd()} {\footnotesize\ttfamily int ss7\+\_\+asp\+\_\+get\+\_\+fd (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp }\end{DoxyParamCaption})} Get the fd of a given ASP. \begin{DoxyParams}[1]{Parameters} \mbox{\texttt{ in}} & {\em asp} & The ASP for which the fd is requested \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} The fd of the ASP if acailable, negative otherwise \end{DoxyReturn} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::client}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::is\+\_\+server}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+::server}. Referenced by \textbf{ show\+\_\+one\+\_\+asp()}, \textbf{ show\+\_\+one\+\_\+asp\+\_\+assoc\+\_\+status\+\_\+tcp()}, and \textbf{ show\+\_\+one\+\_\+asp\+\_\+remaddr\+\_\+tcp()}. \mbox{\label{osmo__ss7__asp_8c_a5e519b620f7c928c97b7a01335c05fc4}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!ss7\_asp\_ipa\_srv\_conn\_rx\_cb@{ss7\_asp\_ipa\_srv\_conn\_rx\_cb}} \index{ss7\_asp\_ipa\_srv\_conn\_rx\_cb@{ss7\_asp\_ipa\_srv\_conn\_rx\_cb}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{ss7\_asp\_ipa\_srv\_conn\_rx\_cb()} {\footnotesize\ttfamily int ss7\+\_\+asp\+\_\+ipa\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb (\begin{DoxyParamCaption}\item[{struct osmo\+\_\+stream\+\_\+srv $\ast$}]{conn, }\item[{int}]{res, }\item[{struct msgb $\ast$}]{msg }\end{DoxyParamCaption})} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::asp\+\_\+id}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::ctrg}, \textbf{ ipa\+\_\+rx\+\_\+msg()}, and \textbf{ SS7\+\_\+\+ASP\+\_\+\+CTR\+\_\+\+PKT\+\_\+\+RX\+\_\+\+TOTAL}. Referenced by \textbf{ xua\+\_\+accept\+\_\+cb()}. \mbox{\label{osmo__ss7__asp_8c_a07c4798f0de92e03f7cc41966d8f764b}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!ss7\_asp\_is\_started@{ss7\_asp\_is\_started}} \index{ss7\_asp\_is\_started@{ss7\_asp\_is\_started}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{ss7\_asp\_is\_started()} {\footnotesize\ttfamily bool ss7\+\_\+asp\+\_\+is\+\_\+started (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp }\end{DoxyParamCaption})} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::client}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::is\+\_\+server}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+::server}. Referenced by \textbf{ DEFUN\+\_\+\+ATTR()}. \mbox{\label{osmo__ss7__asp_8c_a095143f4df1d1a70501a01dfa264156b}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!ss7\_asp\_m3ua\_tcp\_srv\_conn\_rx\_cb@{ss7\_asp\_m3ua\_tcp\_srv\_conn\_rx\_cb}} \index{ss7\_asp\_m3ua\_tcp\_srv\_conn\_rx\_cb@{ss7\_asp\_m3ua\_tcp\_srv\_conn\_rx\_cb}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{ss7\_asp\_m3ua\_tcp\_srv\_conn\_rx\_cb()} {\footnotesize\ttfamily int ss7\+\_\+asp\+\_\+m3ua\+\_\+tcp\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb (\begin{DoxyParamCaption}\item[{struct osmo\+\_\+stream\+\_\+srv $\ast$}]{conn, }\item[{int}]{res, }\item[{struct msgb $\ast$}]{msg }\end{DoxyParamCaption})} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::ctrg}, \textbf{ xua\+\_\+common\+\_\+hdr\+::data}, \textbf{ M3\+UA\+\_\+\+MSGC\+\_\+\+XFER}, \textbf{ m3ua\+\_\+rx\+\_\+msg()}, \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+class}, and \textbf{ SS7\+\_\+\+ASP\+\_\+\+CTR\+\_\+\+PKT\+\_\+\+RX\+\_\+\+TOTAL}. Referenced by \textbf{ xua\+\_\+accept\+\_\+cb()}. \mbox{\label{osmo__ss7__asp_8c_ab724de8a87c368b6211fcebec8bebd18}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!ss7\_asp\_protocol\_check\_trans\_proto@{ss7\_asp\_protocol\_check\_trans\_proto}} \index{ss7\_asp\_protocol\_check\_trans\_proto@{ss7\_asp\_protocol\_check\_trans\_proto}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{ss7\_asp\_protocol\_check\_trans\_proto()} {\footnotesize\ttfamily bool ss7\+\_\+asp\+\_\+protocol\+\_\+check\+\_\+trans\+\_\+proto (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol}}]{proto, }\item[{int}]{trans\+\_\+proto }\end{DoxyParamCaption})} References \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+IPA}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+M3\+UA}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+NONE}, and \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+SUA}. Referenced by \textbf{ ss7\+\_\+asp\+\_\+alloc()}, and \textbf{ ss7\+\_\+xua\+\_\+server\+\_\+create2()}. \mbox{\label{osmo__ss7__asp_8c_a5985c0ec7dc547dd06de3f9be8b8be9b}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!ss7\_asp\_rx\_unknown@{ss7\_asp\_rx\_unknown}} \index{ss7\_asp\_rx\_unknown@{ss7\_asp\_rx\_unknown}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{ss7\_asp\_rx\_unknown()} {\footnotesize\ttfamily int ss7\+\_\+asp\+\_\+rx\+\_\+unknown (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp, }\item[{int}]{ppid\+\_\+mux, }\item[{struct msgb $\ast$}]{msg }\end{DoxyParamCaption})} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::ctrg}, \textbf{ g\+\_\+osmo\+\_\+ss7\+\_\+asp\+\_\+rx\+\_\+unknown\+\_\+cb}, \textbf{ LOGPASP}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+IPA}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}, and \textbf{ SS7\+\_\+\+ASP\+\_\+\+CTR\+\_\+\+PKT\+\_\+\+RX\+\_\+\+UNKNOWN}. Referenced by \textbf{ ipa\+\_\+rx\+\_\+msg()}, \textbf{ ss7\+\_\+asp\+\_\+xua\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb()}, and \textbf{ xua\+\_\+cli\+\_\+read\+\_\+cb()}. \mbox{\label{osmo__ss7__asp_8c_afa91ee594ac4b3408e12e0533dc89e9f}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!ss7\_asp\_set\_default\_peer\_hosts@{ss7\_asp\_set\_default\_peer\_hosts}} \index{ss7\_asp\_set\_default\_peer\_hosts@{ss7\_asp\_set\_default\_peer\_hosts}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{ss7\_asp\_set\_default\_peer\_hosts()} {\footnotesize\ttfamily bool ss7\+\_\+asp\+\_\+set\+\_\+default\+\_\+peer\+\_\+hosts (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$}]{asp }\end{DoxyParamCaption})} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::host}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::host\+\_\+cnt}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::local}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::remote}, \textbf{ ss7\+\_\+asp\+\_\+peer\+\_\+add\+\_\+host()}, and \textbf{ ss7\+\_\+ipv6\+\_\+sctp\+\_\+supported()}. Referenced by \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id()}, and \textbf{ osmo\+\_\+ss7\+\_\+vty\+\_\+go\+\_\+parent()}. \mbox{\label{osmo__ss7__asp_8c_a0f5475d54d10cb369601915dc9ff558a}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!ss7\_asp\_xua\_srv\_conn\_closed\_cb@{ss7\_asp\_xua\_srv\_conn\_closed\_cb}} \index{ss7\_asp\_xua\_srv\_conn\_closed\_cb@{ss7\_asp\_xua\_srv\_conn\_closed\_cb}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{ss7\_asp\_xua\_srv\_conn\_closed\_cb()} {\footnotesize\ttfamily int ss7\+\_\+asp\+\_\+xua\+\_\+srv\+\_\+conn\+\_\+closed\+\_\+cb (\begin{DoxyParamCaption}\item[{struct osmo\+\_\+stream\+\_\+srv $\ast$}]{srv }\end{DoxyParamCaption})} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::dyn\+\_\+allocated}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::fi}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::name}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+destroy()}, \textbf{ OSMO\+\_\+\+XLM\+\_\+\+PRIM\+\_\+\+M\+\_\+\+SCTP\+\_\+\+RELEASE}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::server}, \textbf{ XUA\+\_\+\+ASP\+\_\+\+E\+\_\+\+SCTP\+\_\+\+COMM\+\_\+\+DOWN\+\_\+\+IND}, \textbf{ xua\+\_\+asp\+\_\+send\+\_\+xlm\+\_\+prim\+\_\+simple()}, and \textbf{ xua\+\_\+rkm\+\_\+cleanup\+\_\+dyn\+\_\+as\+\_\+for\+\_\+asp()}. Referenced by \textbf{ xua\+\_\+accept\+\_\+cb()}. \mbox{\label{osmo__ss7__asp_8c_a4da7b1ad0032f16bbd55773894334cd5}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!ss7\_asp\_xua\_srv\_conn\_rx\_cb@{ss7\_asp\_xua\_srv\_conn\_rx\_cb}} \index{ss7\_asp\_xua\_srv\_conn\_rx\_cb@{ss7\_asp\_xua\_srv\_conn\_rx\_cb}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{ss7\_asp\_xua\_srv\_conn\_rx\_cb()} {\footnotesize\ttfamily int ss7\+\_\+asp\+\_\+xua\+\_\+srv\+\_\+conn\+\_\+rx\+\_\+cb (\begin{DoxyParamCaption}\item[{struct osmo\+\_\+stream\+\_\+srv $\ast$}]{conn, }\item[{int}]{res, }\item[{struct msgb $\ast$}]{msg }\end{DoxyParamCaption})} References \textbf{ asp\+\_\+handle\+\_\+sctp\+\_\+notif\+\_\+monitor\+\_\+primary\+\_\+address()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::ctrg}, \textbf{ log\+\_\+sctp\+\_\+notification()}, \textbf{ LOGPASP}, \textbf{ M3\+UA\+\_\+\+PPID}, \textbf{ m3ua\+\_\+rx\+\_\+msg()}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+M3\+UA}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+SUA}, \textbf{ OSMO\+\_\+\+XLM\+\_\+\+PRIM\+\_\+\+M\+\_\+\+SCTP\+\_\+\+RESTART}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}, \textbf{ SS7\+\_\+\+ASP\+\_\+\+CTR\+\_\+\+PKT\+\_\+\+RX\+\_\+\+TOTAL}, \textbf{ ss7\+\_\+asp\+\_\+rx\+\_\+unknown()}, \textbf{ SUA\+\_\+\+PPID}, \textbf{ sua\+\_\+rx\+\_\+msg()}, and \textbf{ xua\+\_\+asp\+\_\+send\+\_\+xlm\+\_\+prim\+\_\+simple()}. Referenced by \textbf{ xua\+\_\+accept\+\_\+cb()}. \mbox{\label{osmo__ss7__asp_8c_abe05c4208f5af9d0cc05e881497871a0}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!ss7\_default\_trans\_proto\_for\_asp\_proto@{ss7\_default\_trans\_proto\_for\_asp\_proto}} \index{ss7\_default\_trans\_proto\_for\_asp\_proto@{ss7\_default\_trans\_proto\_for\_asp\_proto}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{ss7\_default\_trans\_proto\_for\_asp\_proto()} {\footnotesize\ttfamily int ss7\+\_\+default\+\_\+trans\+\_\+proto\+\_\+for\+\_\+asp\+\_\+proto (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol}}]{proto }\end{DoxyParamCaption})} References \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+IPA}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+M3\+UA}, and \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+SUA}. Referenced by \textbf{ DEFUN\+\_\+\+ATTR()}, \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id()}, \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+server\+\_\+add\+\_\+clnt()}, \textbf{ osmo\+\_\+sccp\+\_\+simple\+\_\+server\+\_\+on\+\_\+ss7\+\_\+id()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+find()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create()}, \textbf{ ss7\+\_\+xua\+\_\+server\+\_\+create()}, \textbf{ ss7\+\_\+xua\+\_\+server\+\_\+find()}, \textbf{ write\+\_\+one\+\_\+asp()}, and \textbf{ write\+\_\+one\+\_\+xua()}. \mbox{\label{osmo__ss7__asp_8c_a8cfeba359fa19e36513d6f987f76869c}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!xua\_cli\_close@{xua\_cli\_close}} \index{xua\_cli\_close@{xua\_cli\_close}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{xua\_cli\_close()} {\footnotesize\ttfamily static void xua\+\_\+cli\+\_\+close (\begin{DoxyParamCaption}\item[{struct osmo\+\_\+stream\+\_\+cli $\ast$}]{cli }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::fi}, \textbf{ OSMO\+\_\+\+XLM\+\_\+\+PRIM\+\_\+\+M\+\_\+\+SCTP\+\_\+\+RELEASE}, \textbf{ XUA\+\_\+\+ASP\+\_\+\+E\+\_\+\+SCTP\+\_\+\+COMM\+\_\+\+DOWN\+\_\+\+IND}, and \textbf{ xua\+\_\+asp\+\_\+send\+\_\+xlm\+\_\+prim\+\_\+simple()}. Referenced by \textbf{ xua\+\_\+cli\+\_\+close\+\_\+and\+\_\+reconnect()}. \mbox{\label{osmo__ss7__asp_8c_a4973673adfc842bb12816bf47400571c}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!xua\_cli\_close\_and\_reconnect@{xua\_cli\_close\_and\_reconnect}} \index{xua\_cli\_close\_and\_reconnect@{xua\_cli\_close\_and\_reconnect}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{xua\_cli\_close\_and\_reconnect()} {\footnotesize\ttfamily static int xua\+\_\+cli\+\_\+close\+\_\+and\+\_\+reconnect (\begin{DoxyParamCaption}\item[{struct osmo\+\_\+stream\+\_\+cli $\ast$}]{cli }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ xua\+\_\+cli\+\_\+close()}. Referenced by \textbf{ ipa\+\_\+cli\+\_\+read\+\_\+cb()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+disconnect()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+restart()}, and \textbf{ xua\+\_\+cli\+\_\+read\+\_\+cb()}. \mbox{\label{osmo__ss7__asp_8c_a052cc4afcd029eccc55a29fef5aa8dbd}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!xua\_cli\_connect\_cb@{xua\_cli\_connect\_cb}} \index{xua\_cli\_connect\_cb@{xua\_cli\_connect\_cb}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{xua\_cli\_connect\_cb()} {\footnotesize\ttfamily static int xua\+\_\+cli\+\_\+connect\+\_\+cb (\begin{DoxyParamCaption}\item[{struct osmo\+\_\+stream\+\_\+cli $\ast$}]{cli }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ osmo\+\_\+ss7\+\_\+asp\+::asp\+\_\+id}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::fi}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::lm}, \textbf{ LOGPASP}, \textbf{ M3\+UA\+\_\+\+MSG\+\_\+\+HEADROOM}, \textbf{ M3\+UA\+\_\+\+MSG\+\_\+\+SIZE}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+IPA}, \textbf{ OSMO\+\_\+\+XLM\+\_\+\+PRIM\+\_\+\+M\+\_\+\+SCTP\+\_\+\+ESTABLISH}, \textbf{ osmo\+\_\+xua\+\_\+layer\+\_\+manager\+::prim\+\_\+cb}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::sock\+\_\+name}, \textbf{ ss7\+\_\+asp\+\_\+apply\+\_\+peer\+\_\+primary\+\_\+address()}, \textbf{ ss7\+\_\+asp\+\_\+apply\+\_\+primary\+\_\+address()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::trans\+\_\+proto}, \textbf{ XUA\+\_\+\+ASP\+\_\+\+E\+\_\+\+M\+\_\+\+ASP\+\_\+\+UP\+\_\+\+REQ}, and \textbf{ xua\+\_\+asp\+\_\+send\+\_\+xlm\+\_\+prim\+\_\+simple()}. Referenced by \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+restart()}. \mbox{\label{osmo__ss7__asp_8c_acf4de6a702301f3078b5fd0502f5477a}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!xua\_cli\_read\_cb@{xua\_cli\_read\_cb}} \index{xua\_cli\_read\_cb@{xua\_cli\_read\_cb}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{xua\_cli\_read\_cb()} {\footnotesize\ttfamily static int xua\+\_\+cli\+\_\+read\+\_\+cb (\begin{DoxyParamCaption}\item[{struct osmo\+\_\+stream\+\_\+cli $\ast$}]{conn, }\item[{int}]{res, }\item[{struct msgb $\ast$}]{msg }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References \textbf{ asp\+\_\+handle\+\_\+sctp\+\_\+notif\+\_\+monitor\+\_\+primary\+\_\+address()}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::ctrg}, \textbf{ log\+\_\+sctp\+\_\+notification()}, \textbf{ LOGPASP}, \textbf{ M3\+UA\+\_\+\+PPID}, \textbf{ m3ua\+\_\+rx\+\_\+msg()}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+M3\+UA}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+ASP\+\_\+\+PROT\+\_\+\+SUA}, \textbf{ OSMO\+\_\+\+XLM\+\_\+\+PRIM\+\_\+\+M\+\_\+\+SCTP\+\_\+\+RESTART}, \textbf{ osmo\+\_\+ss7\+\_\+asp\+::proto}, \textbf{ SS7\+\_\+\+ASP\+\_\+\+CTR\+\_\+\+PKT\+\_\+\+RX\+\_\+\+TOTAL}, \textbf{ ss7\+\_\+asp\+\_\+rx\+\_\+unknown()}, \textbf{ SUA\+\_\+\+PPID}, \textbf{ sua\+\_\+rx\+\_\+msg()}, \textbf{ xua\+\_\+asp\+\_\+send\+\_\+xlm\+\_\+prim\+\_\+simple()}, and \textbf{ xua\+\_\+cli\+\_\+close\+\_\+and\+\_\+reconnect()}. Referenced by \textbf{ m3ua\+\_\+tcp\+\_\+cli\+\_\+read\+\_\+cb()}, and \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+restart()}. \mbox{\label{osmo__ss7__asp_8c_a8491be4c7f509461cc8b28cbb27bf0a1}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!xua\_tcp\_segmentation\_cb@{xua\_tcp\_segmentation\_cb}} \index{xua\_tcp\_segmentation\_cb@{xua\_tcp\_segmentation\_cb}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{xua\_tcp\_segmentation\_cb()} {\footnotesize\ttfamily int xua\+\_\+tcp\+\_\+segmentation\+\_\+cb (\begin{DoxyParamCaption}\item[{struct msgb $\ast$}]{msg }\end{DoxyParamCaption})} References \textbf{ xua\+\_\+common\+\_\+hdr\+::data}, \textbf{ msg\+\_\+length}, and \textbf{ xua\+\_\+common\+\_\+hdr\+::msg\+\_\+length}. Referenced by \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+restart()}, and \textbf{ xua\+\_\+accept\+\_\+cb()}. \doxysubsection{Variable Documentation} \mbox{\label{osmo__ss7__asp_8c_ac4a2dc86a8a839e40620d701d4346d91}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!g\_osmo\_ss7\_asp\_rx\_unknown\_cb@{g\_osmo\_ss7\_asp\_rx\_unknown\_cb}} \index{g\_osmo\_ss7\_asp\_rx\_unknown\_cb@{g\_osmo\_ss7\_asp\_rx\_unknown\_cb}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{g\_osmo\_ss7\_asp\_rx\_unknown\_cb} {\footnotesize\ttfamily \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+rx\+\_\+unknown\+\_\+cb}$\ast$ g\+\_\+osmo\+\_\+ss7\+\_\+asp\+\_\+rx\+\_\+unknown\+\_\+cb\hspace{0.3cm}{\ttfamily [static]}} Referenced by \textbf{ osmo\+\_\+ss7\+\_\+register\+\_\+rx\+\_\+unknown\+\_\+cb()}, and \textbf{ ss7\+\_\+asp\+\_\+rx\+\_\+unknown()}. \mbox{\label{osmo__ss7__asp_8c_ab43aa0585dd22f2be6a7e0e9c05525a7}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!g\_ss7\_asp\_rcg\_idx@{g\_ss7\_asp\_rcg\_idx}} \index{g\_ss7\_asp\_rcg\_idx@{g\_ss7\_asp\_rcg\_idx}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{g\_ss7\_asp\_rcg\_idx} {\footnotesize\ttfamily unsigned int g\+\_\+ss7\+\_\+asp\+\_\+rcg\+\_\+idx\hspace{0.3cm}{\ttfamily [static]}} Referenced by \textbf{ ss7\+\_\+asp\+\_\+alloc()}. \mbox{\label{osmo__ss7__asp_8c_a41380c47cdda3f98c55d1a93e6071a6b}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!osmo\_ss7\_asp\_protocol\_vals@{osmo\_ss7\_asp\_protocol\_vals}} \index{osmo\_ss7\_asp\_protocol\_vals@{osmo\_ss7\_asp\_protocol\_vals}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{osmo\_ss7\_asp\_protocol\_vals} {\footnotesize\ttfamily struct value\+\_\+string osmo\+\_\+ss7\+\_\+asp\+\_\+protocol\+\_\+vals[$\,$]} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ \{ OSMO\_SS7\_ASP\_PROT\_NONE, \textcolor{stringliteral}{"{}none"{}} \},} \DoxyCodeLine{ \{ OSMO\_SS7\_ASP\_PROT\_SUA, \textcolor{stringliteral}{"{}sua"{}} \},} \DoxyCodeLine{ \{ OSMO\_SS7\_ASP\_PROT\_M3UA, \textcolor{stringliteral}{"{}m3ua"{}} \},} \DoxyCodeLine{ \{ OSMO\_SS7\_ASP\_PROT\_IPA, \textcolor{stringliteral}{"{}ipa"{}} \},} \DoxyCodeLine{ \{ 0, NULL \}} \DoxyCodeLine{\}} \end{DoxyCode} Referenced by \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol\+\_\+name()}, \textbf{ parse\+\_\+asp\+\_\+proto()}, \textbf{ show\+\_\+one\+\_\+asp()}, \textbf{ ss7\+\_\+xua\+\_\+server\+\_\+bind()}, \textbf{ ss7\+\_\+xua\+\_\+server\+\_\+create2()}, \textbf{ vty\+\_\+dump\+\_\+xua\+\_\+server()}, \textbf{ write\+\_\+one\+\_\+xua()}, and \textbf{ xua\+\_\+accept\+\_\+cb()}. \mbox{\label{osmo__ss7__asp_8c_a617cc4818ccf1e2d74ff0e012975ce30}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!osmo\_ss7\_asp\_role\_names@{osmo\_ss7\_asp\_role\_names}} \index{osmo\_ss7\_asp\_role\_names@{osmo\_ss7\_asp\_role\_names}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{osmo\_ss7\_asp\_role\_names} {\footnotesize\ttfamily const struct value\+\_\+string osmo\+\_\+ss7\+\_\+asp\+\_\+role\+\_\+names[$\,$]} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ \{ OSMO\_SS7\_ASP\_ROLE\_ASP, \textcolor{stringliteral}{"{}ASP"{}} \},} \DoxyCodeLine{ \{ OSMO\_SS7\_ASP\_ROLE\_SG, \textcolor{stringliteral}{"{}SG"{}} \},} \DoxyCodeLine{ \{ OSMO\_SS7\_ASP\_ROLE\_IPSP, \textcolor{stringliteral}{"{}IPSP"{}} \},} \DoxyCodeLine{ \{ 0, NULL \}} \DoxyCodeLine{\}} \end{DoxyCode} Referenced by \textbf{ show\+\_\+one\+\_\+asp()}, and \textbf{ write\+\_\+one\+\_\+asp()}. \mbox{\label{osmo__ss7__asp_8c_aa65cb0e6b9446cda8df60956ed12573f}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!prot2port@{prot2port}} \index{prot2port@{prot2port}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{prot2port} {\footnotesize\ttfamily const uint16\+\_\+t prot2port[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ [OSMO\_SS7\_ASP\_PROT\_NONE] = 0,} \DoxyCodeLine{ [OSMO\_SS7\_ASP\_PROT\_SUA] = SUA\_PORT,} \DoxyCodeLine{ [OSMO\_SS7\_ASP\_PROT\_M3UA] = M3UA\_PORT,} \DoxyCodeLine{ [OSMO\_SS7\_ASP\_PROT\_IPA] = 5000,} \DoxyCodeLine{\}} \end{DoxyCode} Referenced by \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol\+\_\+port()}. \mbox{\label{osmo__ss7__asp_8c_a3ac2d325579510b627a35bb124b9f978}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!ss7\_asp\_rcd@{ss7\_asp\_rcd}} \index{ss7\_asp\_rcd@{ss7\_asp\_rcd}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{ss7\_asp\_rcd} {\footnotesize\ttfamily const struct rate\+\_\+ctr\+\_\+desc ss7\+\_\+asp\+\_\+rcd[$\,$]\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ [SS7\_ASP\_CTR\_PKT\_RX\_TOTAL] = \{ \textcolor{stringliteral}{"{}rx:packets:total"{}}, \textcolor{stringliteral}{"{}Total number of packets received"{}} \},} \DoxyCodeLine{ [SS7\_ASP\_CTR\_PKT\_RX\_UNKNOWN] = \{ \textcolor{stringliteral}{"{}rx:packets:unknown"{}}, \textcolor{stringliteral}{"{}Number of packets received for unknown PPID"{}} \},} \DoxyCodeLine{ [SS7\_ASP\_CTR\_PKT\_TX\_TOTAL] = \{ \textcolor{stringliteral}{"{}tx:packets:total"{}}, \textcolor{stringliteral}{"{}Total number of packets transmitted"{}} \},} \DoxyCodeLine{\}} \end{DoxyCode} \mbox{\label{osmo__ss7__asp_8c_a00129046e2f1da5c1335375de549b25e}} \index{osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}!ss7\_asp\_rcgd@{ss7\_asp\_rcgd}} \index{ss7\_asp\_rcgd@{ss7\_asp\_rcgd}!osmo\_ss7\_asp.c@{osmo\_ss7\_asp.c}} \doxysubsubsection{ss7\_asp\_rcgd} {\footnotesize\ttfamily const struct rate\+\_\+ctr\+\_\+group\+\_\+desc ss7\+\_\+asp\+\_\+rcgd\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode}{0} \DoxyCodeLine{= \{} \DoxyCodeLine{ .group\_name\_prefix = \textcolor{stringliteral}{"{}sigtran\_asp"{}},} \DoxyCodeLine{ .group\_description = \textcolor{stringliteral}{"{}SIGTRAN Application Server Process"{}},} \DoxyCodeLine{ .num\_ctr = ARRAY\_SIZE(ss7\_asp\_rcd),} \DoxyCodeLine{ .ctr\_desc = ss7\_asp\_rcd,} \DoxyCodeLine{\}} \end{DoxyCode} Referenced by \textbf{ ss7\+\_\+asp\+\_\+alloc()}.