\section{src/osmo\+\_\+ss7.c File Reference} \label{osmo__ss7_8c}\index{src/osmo\+\_\+ss7.\+c@{src/osmo\+\_\+ss7.\+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/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\+\_\+internal.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}xua\+\_\+asp\+\_\+fsm.\+h\char`\"{}}\newline {\ttfamily \#include \char`\"{}xua\+\_\+as\+\_\+fsm.\+h\char`\"{}}\newline \subsection*{Macros} \begin{DoxyCompactItemize} \item \#define \textbf{ M\+A\+X\+\_\+\+P\+C\+\_\+\+S\+T\+R\+\_\+\+L\+EN}~32 \end{DoxyCompactItemize} \subsection*{Functions} \begin{DoxyCompactItemize} \item \textbf{ L\+L\+I\+S\+T\+\_\+\+H\+E\+AD} (\textbf{ osmo\+\_\+ss7\+\_\+instances}) \item int \textbf{ osmo\+\_\+ss7\+\_\+find\+\_\+free\+\_\+rctx} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst) \item uint32\+\_\+t \textbf{ ss7\+\_\+find\+\_\+free\+\_\+l\+\_\+rk\+\_\+id} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst) \item static int \textbf{ strnappendchar} (char $\ast$str, char c, size\+\_\+t n) \item static const char $\ast$ \textbf{ gen\+\_\+pc\+\_\+fmtstr} (const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} $\ast$pc\+\_\+fmt, unsigned int $\ast$num\+\_\+comp\+\_\+exp) \item static unsigned int \textbf{ num\+\_\+pc\+\_\+comp\+\_\+exp} (const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} $\ast$pc\+\_\+fmt) \item uint8\+\_\+t \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+width} (const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} $\ast$pc\+\_\+fmt) \item uint32\+\_\+t \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+normalize} (const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} $\ast$pc\+\_\+fmt, uint32\+\_\+t pc) \item static unsigned int \textbf{ get\+\_\+pc\+\_\+comp\+\_\+shift} (const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} $\ast$pc\+\_\+fmt, unsigned int comp\+\_\+num) \item static uint32\+\_\+t \textbf{ pc\+\_\+comp\+\_\+shift\+\_\+and\+\_\+mask} (const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} $\ast$pc\+\_\+fmt, unsigned int comp\+\_\+num, uint32\+\_\+t pc) \item int \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$str) \item const char $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print\+\_\+buf} (char $\ast$buf, size\+\_\+t \textbf{ len}, const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, uint32\+\_\+t pc) \item const char $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print} (const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, uint32\+\_\+t pc) \item const char $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print2} (const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, uint32\+\_\+t pc) \item int \textbf{ osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse\+\_\+mask\+\_\+or\+\_\+len} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$in) \item struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+instance\+\_\+find} (uint32\+\_\+t id) \begin{DoxyCompactList}\small\item\em Find a S\+S7 Instance with given ID. \end{DoxyCompactList}\item struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+instance\+\_\+find\+\_\+or\+\_\+create} (void $\ast$ctx, uint32\+\_\+t id) \begin{DoxyCompactList}\small\item\em Find or create a S\+S7 Instance. \end{DoxyCompactList}\item void \textbf{ osmo\+\_\+ss7\+\_\+instance\+\_\+destroy} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst) \begin{DoxyCompactList}\small\item\em Destroy a S\+S7 Instance. \end{DoxyCompactList}\item int \textbf{ osmo\+\_\+ss7\+\_\+instance\+\_\+set\+\_\+pc\+\_\+fmt} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, uint8\+\_\+t c0, uint8\+\_\+t c1, uint8\+\_\+t c2) \begin{DoxyCompactList}\small\item\em Set the point code format used in given S\+S7 instance. \end{DoxyCompactList}\item struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+ensure\+\_\+sccp} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst) \begin{DoxyCompactList}\small\item\em Allocate an S\+C\+CP instance, if not present yet. \end{DoxyCompactList}\item int \textbf{ osmo\+\_\+ss7\+\_\+user\+\_\+register} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, uint8\+\_\+t service\+\_\+ind, struct \textbf{ osmo\+\_\+ss7\+\_\+user} $\ast$user) \begin{DoxyCompactList}\small\item\em Register a M\+TP user for a given service indicator. \end{DoxyCompactList}\item int \textbf{ osmo\+\_\+ss7\+\_\+user\+\_\+unregister} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, uint8\+\_\+t service\+\_\+ind, struct \textbf{ osmo\+\_\+ss7\+\_\+user} $\ast$user) \begin{DoxyCompactList}\small\item\em Unregister a M\+TP user for a given service indicator. \end{DoxyCompactList}\item int \textbf{ osmo\+\_\+ss7\+\_\+mtp\+\_\+to\+\_\+user} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, struct \textbf{ osmo\+\_\+mtp\+\_\+prim} $\ast$omp) \item void \textbf{ osmo\+\_\+ss7\+\_\+linkset\+\_\+destroy} (struct \textbf{ osmo\+\_\+ss7\+\_\+linkset} $\ast$lset) \begin{DoxyCompactList}\small\item\em Destroy a S\+S7 Linkset. \end{DoxyCompactList}\item struct \textbf{ osmo\+\_\+ss7\+\_\+linkset} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+linkset\+\_\+find\+\_\+by\+\_\+name} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$name) \begin{DoxyCompactList}\small\item\em Find S\+S7 Linkset by given name. \end{DoxyCompactList}\item struct \textbf{ osmo\+\_\+ss7\+\_\+linkset} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+linkset\+\_\+find\+\_\+or\+\_\+create} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$name, uint32\+\_\+t pc) \begin{DoxyCompactList}\small\item\em Find or allocate S\+S7 Linkset. \end{DoxyCompactList}\item void \textbf{ osmo\+\_\+ss7\+\_\+link\+\_\+destroy} (struct \textbf{ osmo\+\_\+ss7\+\_\+link} $\ast$link) \begin{DoxyCompactList}\small\item\em Destroy S\+S7 Link. \end{DoxyCompactList}\item struct \textbf{ osmo\+\_\+ss7\+\_\+link} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+link\+\_\+find\+\_\+or\+\_\+create} (struct \textbf{ osmo\+\_\+ss7\+\_\+linkset} $\ast$lset, uint32\+\_\+t id) \begin{DoxyCompactList}\small\item\em Find or create S\+S7 Link with given ID in given Linkset. \end{DoxyCompactList}\item struct \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+find} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$name) \item struct \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+find\+\_\+or\+\_\+create} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$name) \item void \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+destroy} (struct \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table} $\ast$rtbl) \item struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+find\+\_\+dpc} (struct \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table} $\ast$rtbl, uint32\+\_\+t \textbf{ dpc}) \begin{DoxyCompactList}\small\item\em Find a S\+S7 route for given destination point code in given table. \end{DoxyCompactList}\item struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+find\+\_\+dpc\+\_\+mask} (struct \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table} $\ast$rtbl, uint32\+\_\+t \textbf{ dpc}, uint32\+\_\+t mask) \begin{DoxyCompactList}\small\item\em Find a S\+S7 route for given destination point code + mask in given table. \end{DoxyCompactList}\item struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+lookup} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, uint32\+\_\+t \textbf{ dpc}) \begin{DoxyCompactList}\small\item\em Find a S\+S7 route for given destination point code in given S\+S7. \end{DoxyCompactList}\item static void \textbf{ route\+\_\+insert\+\_\+sorted} (struct \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table} $\ast$rtbl, struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$cmp) \item struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+create} (struct \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table} $\ast$rtbl, uint32\+\_\+t pc, uint32\+\_\+t mask, const char $\ast$linkset\+\_\+name) \begin{DoxyCompactList}\small\item\em Create a new route in the given routing table. \end{DoxyCompactList}\item void \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+destroy} (struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$rt) \begin{DoxyCompactList}\small\item\em Destroy a given S\+S7 route. \end{DoxyCompactList}\item static unsigned int \textbf{ count\+\_\+leading\+\_\+one\+\_\+bits} (uint32\+\_\+t inp, unsigned int nbits) \item static int \textbf{ u32\+\_\+masklen} (uint32\+\_\+t mask, unsigned int nbits) \item const char $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+print} (const struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$rt) \item struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+name} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$name) \begin{DoxyCompactList}\small\item\em Find Application Server by given name. \end{DoxyCompactList}\item struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+rctx} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, uint32\+\_\+t rctx) \begin{DoxyCompactList}\small\item\em Find Application Server by given routing context. \end{DoxyCompactList}\item struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+l\+\_\+rk\+\_\+id} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, uint32\+\_\+t l\+\_\+rk\+\_\+id) \begin{DoxyCompactList}\small\item\em Find Application Server by given local routing key ID. \end{DoxyCompactList}\item struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+proto} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol} proto) \begin{DoxyCompactList}\small\item\em Find Application Server (AS) by given protocol. \end{DoxyCompactList}\item struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+or\+\_\+create} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$name, enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol} proto) \begin{DoxyCompactList}\small\item\em Find or Create Application Server. \end{DoxyCompactList}\item bool \textbf{ ss7\+\_\+ipv6\+\_\+sctp\+\_\+supported} (const char $\ast$host, bool bind) \item struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+name} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$name) \item struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+proto} (struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as, enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol} proto) \begin{DoxyCompactList}\small\item\em Find an A\+SP that matches the given A\+SP protocol (x\+UA variant). \end{DoxyCompactList}\item struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+find2} (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 struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+find} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$name, uint16\+\_\+t remote\+\_\+port, uint16\+\_\+t local\+\_\+port, enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol} proto) \item struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create2} (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 struct \textbf{ osmo\+\_\+ss7\+\_\+asp} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$name, uint16\+\_\+t remote\+\_\+port, uint16\+\_\+t local\+\_\+port, enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol} proto) \item struct \textbf{ osmo\+\_\+xua\+\_\+server} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+xua\+\_\+server\+\_\+find2} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, int trans\+\_\+proto, enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol} proto, uint16\+\_\+t local\+\_\+port) \begin{DoxyCompactList}\small\item\em find an x\+UA server with the given parameters \end{DoxyCompactList}\item struct \textbf{ osmo\+\_\+xua\+\_\+server} $\ast$ \textbf{ osmo\+\_\+ss7\+\_\+xua\+\_\+server\+\_\+find} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol} proto, uint16\+\_\+t local\+\_\+port) \begin{DoxyCompactList}\small\item\em find an x\+UA server with the given parameters \end{DoxyCompactList}\item bool \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+is\+\_\+local} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, uint32\+\_\+t pc) \item int \textbf{ osmo\+\_\+ss7\+\_\+init} (void) \item int \textbf{ osmo\+\_\+ss7\+\_\+tmode\+\_\+to\+\_\+xua} (enum \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+traffic\+\_\+mode} tmod) \item enum \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+traffic\+\_\+mode} \textbf{ osmo\+\_\+ss7\+\_\+tmode\+\_\+from\+\_\+xua} (uint32\+\_\+t in) \item bool \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+tmode\+\_\+compatible\+\_\+xua} (struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$as, uint32\+\_\+t m3ua\+\_\+tmt) \end{DoxyCompactItemize} \subsection*{Variables} \begin{DoxyCompactItemize} \item bool \textbf{ ss7\+\_\+initialized} = false \item static int32\+\_\+t \textbf{ next\+\_\+rctx} = 1 \item static int32\+\_\+t \textbf{ next\+\_\+l\+\_\+rk\+\_\+id} = 1 \item const struct value\+\_\+string \textbf{ mtp\+\_\+unavail\+\_\+cause\+\_\+vals} [$\,$] \item static const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} \textbf{ default\+\_\+pc\+\_\+fmt} \end{DoxyCompactItemize} \subsection{Macro Definition Documentation} \mbox{\label{osmo__ss7_8c_aa23a2021f836728938fefac9cca3aec5}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!M\+A\+X\+\_\+\+P\+C\+\_\+\+S\+T\+R\+\_\+\+L\+EN@{M\+A\+X\+\_\+\+P\+C\+\_\+\+S\+T\+R\+\_\+\+L\+EN}} \index{M\+A\+X\+\_\+\+P\+C\+\_\+\+S\+T\+R\+\_\+\+L\+EN@{M\+A\+X\+\_\+\+P\+C\+\_\+\+S\+T\+R\+\_\+\+L\+EN}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{M\+A\+X\+\_\+\+P\+C\+\_\+\+S\+T\+R\+\_\+\+L\+EN} {\footnotesize\ttfamily \#define M\+A\+X\+\_\+\+P\+C\+\_\+\+S\+T\+R\+\_\+\+L\+EN~32} Referenced by gen\+\_\+pc\+\_\+fmtstr(), osmo\+\_\+ss7\+\_\+pointcode\+\_\+print(), and osmo\+\_\+ss7\+\_\+pointcode\+\_\+print2(). \subsection{Function Documentation} \mbox{\label{osmo__ss7_8c_a6f2fdcae0d3e5278f51ab44f674ab0eb}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!count\+\_\+leading\+\_\+one\+\_\+bits@{count\+\_\+leading\+\_\+one\+\_\+bits}} \index{count\+\_\+leading\+\_\+one\+\_\+bits@{count\+\_\+leading\+\_\+one\+\_\+bits}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{count\+\_\+leading\+\_\+one\+\_\+bits()} {\footnotesize\ttfamily static unsigned int count\+\_\+leading\+\_\+one\+\_\+bits (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{inp, }\item[{unsigned int}]{nbits }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} Referenced by u32\+\_\+masklen(). \mbox{\label{osmo__ss7_8c_a84bdb04295695aa8fe701c0178fe9b61}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!gen\+\_\+pc\+\_\+fmtstr@{gen\+\_\+pc\+\_\+fmtstr}} \index{gen\+\_\+pc\+\_\+fmtstr@{gen\+\_\+pc\+\_\+fmtstr}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{gen\+\_\+pc\+\_\+fmtstr()} {\footnotesize\ttfamily static const char$\ast$ gen\+\_\+pc\+\_\+fmtstr (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} $\ast$}]{pc\+\_\+fmt, }\item[{unsigned int $\ast$}]{num\+\_\+comp\+\_\+exp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References osmo\+\_\+ss7\+\_\+pc\+\_\+fmt\+::component\+\_\+len, osmo\+\_\+ss7\+\_\+pc\+\_\+fmt\+::delimiter, M\+A\+X\+\_\+\+P\+C\+\_\+\+S\+T\+R\+\_\+\+L\+EN, and strnappendchar(). Referenced by osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse(), and osmo\+\_\+ss7\+\_\+pointcode\+\_\+print\+\_\+buf(). \mbox{\label{osmo__ss7_8c_ae2dc16490ad0d3a263aa80160bc36828}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!get\+\_\+pc\+\_\+comp\+\_\+shift@{get\+\_\+pc\+\_\+comp\+\_\+shift}} \index{get\+\_\+pc\+\_\+comp\+\_\+shift@{get\+\_\+pc\+\_\+comp\+\_\+shift}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{get\+\_\+pc\+\_\+comp\+\_\+shift()} {\footnotesize\ttfamily static unsigned int get\+\_\+pc\+\_\+comp\+\_\+shift (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} $\ast$}]{pc\+\_\+fmt, }\item[{unsigned int}]{comp\+\_\+num }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References osmo\+\_\+ss7\+\_\+pc\+\_\+fmt\+::component\+\_\+len, and osmo\+\_\+ss7\+\_\+pc\+\_\+width(). Referenced by osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse(), and pc\+\_\+comp\+\_\+shift\+\_\+and\+\_\+mask(). \mbox{\label{osmo__ss7_8c_a9f0ebdc6d2b270403d8616275fa12314}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!L\+L\+I\+S\+T\+\_\+\+H\+E\+AD@{L\+L\+I\+S\+T\+\_\+\+H\+E\+AD}} \index{L\+L\+I\+S\+T\+\_\+\+H\+E\+AD@{L\+L\+I\+S\+T\+\_\+\+H\+E\+AD}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{L\+L\+I\+S\+T\+\_\+\+H\+E\+A\+D()} {\footnotesize\ttfamily L\+L\+I\+S\+T\+\_\+\+H\+E\+AD (\begin{DoxyParamCaption}\item[{\textbf{ osmo\+\_\+ss7\+\_\+instances}}]{ }\end{DoxyParamCaption})} \mbox{\label{osmo__ss7_8c_abf3c0ef5eb29ad67de6ea862d7e2cfed}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!num\+\_\+pc\+\_\+comp\+\_\+exp@{num\+\_\+pc\+\_\+comp\+\_\+exp}} \index{num\+\_\+pc\+\_\+comp\+\_\+exp@{num\+\_\+pc\+\_\+comp\+\_\+exp}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{num\+\_\+pc\+\_\+comp\+\_\+exp()} {\footnotesize\ttfamily static unsigned int num\+\_\+pc\+\_\+comp\+\_\+exp (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} $\ast$}]{pc\+\_\+fmt }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References osmo\+\_\+ss7\+\_\+pc\+\_\+fmt\+::component\+\_\+len. Referenced by osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse(), and osmo\+\_\+ss7\+\_\+pointcode\+\_\+print\+\_\+buf(). \mbox{\label{osmo__ss7_8c_a56ae45e9be46eeb7b2f6db004737aefd}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+l\+\_\+rk\+\_\+id@{osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+l\+\_\+rk\+\_\+id}} \index{osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+l\+\_\+rk\+\_\+id@{osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+l\+\_\+rk\+\_\+id}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+l\+\_\+rk\+\_\+id()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+as}$\ast$ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+l\+\_\+rk\+\_\+id (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst, }\item[{uint32\+\_\+t}]{l\+\_\+rk\+\_\+id }\end{DoxyParamCaption})} Find Application Server by given local routing key ID. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em inst} & S\+S7 Instance on which we operate \\ \hline \mbox{\tt in} & {\em l\+\_\+rk\+\_\+id} & Local Routing Key ID \\ \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\+\_\+routing\+\_\+key\+::l\+\_\+rk\+\_\+id, osmo\+\_\+ss7\+\_\+as\+::list, osmo\+\_\+ss7\+\_\+as\+::routing\+\_\+key, and ss7\+\_\+initialized. Referenced by handle\+\_\+reg\+\_\+conf(), and ss7\+\_\+find\+\_\+free\+\_\+l\+\_\+rk\+\_\+id(). \mbox{\label{osmo__ss7_8c_aab3eea89500c0e7960c0608f806409a9}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+name@{osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+name}} \index{osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+name@{osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+name}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+name()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+as}$\ast$ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+name (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst, }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})} Find Application Server by given name. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em inst} & S\+S7 Instance on which we operate \\ \hline \mbox{\tt in} & {\em name} & Name of AS \\ \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\+::list, osmo\+\_\+ss7\+\_\+as\+::name, and ss7\+\_\+initialized. Referenced by D\+E\+F\+U\+N\+\_\+\+A\+T\+T\+R(), ipa\+\_\+asp\+\_\+fsm\+\_\+wait\+\_\+id\+\_\+resp(), osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+or\+\_\+create(), and osmo\+\_\+ss7\+\_\+route\+\_\+create(). \mbox{\label{osmo__ss7_8c_ae7729babf0f8612dcceb3ee077b49b5c}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+proto@{osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+proto}} \index{osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+proto@{osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+proto}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+proto()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+as}$\ast$ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+proto (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst, }\item[{enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol}}]{proto }\end{DoxyParamCaption})} Find Application Server (AS) by given protocol. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em inst} & S\+S7 Instance on which we operate \\ \hline \mbox{\tt in} & {\em proto} & Protocol identifier that must match \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} pointer to AS on success; N\+U\+LL otherwise If an AS has an A\+SP also matching the given protocol, that AS is preferred. If there are multiple matches, return the first matching AS. \end{DoxyReturn} References osmo\+\_\+ss7\+\_\+instance\+::as\+\_\+list, osmo\+\_\+ss7\+\_\+as\+::cfg, osmo\+\_\+ss7\+\_\+as\+::list, osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+proto(), osmo\+\_\+ss7\+\_\+as\+::proto, and ss7\+\_\+initialized. Referenced by osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id(). \mbox{\label{osmo__ss7_8c_aaa292dcf6bbb38806bbe050d7937c239}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+rctx@{osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+rctx}} \index{osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+rctx@{osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+rctx}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+rctx()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+as}$\ast$ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+rctx (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst, }\item[{uint32\+\_\+t}]{rctx }\end{DoxyParamCaption})} Find Application Server by given routing context. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em inst} & S\+S7 Instance on which we operate \\ \hline \mbox{\tt in} & {\em rctx} & Routing Context \\ \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\+\_\+routing\+\_\+key\+::context, osmo\+\_\+ss7\+\_\+as\+::list, osmo\+\_\+ss7\+\_\+as\+::routing\+\_\+key, and ss7\+\_\+initialized. Referenced by handle\+\_\+rkey\+\_\+dereg(), handle\+\_\+rkey\+\_\+reg(), osmo\+\_\+ss7\+\_\+find\+\_\+free\+\_\+rctx(), xua\+\_\+asp\+\_\+fsm\+\_\+inactive(), and xua\+\_\+find\+\_\+as\+\_\+for\+\_\+asp(). \mbox{\label{osmo__ss7_8c_aa2d0463df2c24a4a56958ba59ae89506}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+or\+\_\+create@{osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+or\+\_\+create}} \index{osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+or\+\_\+create@{osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+or\+\_\+create}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+or\+\_\+create()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+as}$\ast$ osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+or\+\_\+create (\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})} Find or Create 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\+\_\+as\+::cfg, L\+O\+G\+P\+AS, osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+name(), osmo\+\_\+ss7\+\_\+as\+::proto, ss7\+\_\+as\+\_\+alloc(), and ss7\+\_\+initialized. Referenced by D\+E\+F\+U\+N\+\_\+\+A\+T\+T\+R(), handle\+\_\+rkey\+\_\+reg(), osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id(), and osmo\+\_\+sccp\+\_\+simple\+\_\+server\+\_\+add\+\_\+clnt(). \mbox{\label{osmo__ss7_8c_ae1ce394b6ad89efe1d723f0eda142333}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+as\+\_\+tmode\+\_\+compatible\+\_\+xua@{osmo\+\_\+ss7\+\_\+as\+\_\+tmode\+\_\+compatible\+\_\+xua}} \index{osmo\+\_\+ss7\+\_\+as\+\_\+tmode\+\_\+compatible\+\_\+xua@{osmo\+\_\+ss7\+\_\+as\+\_\+tmode\+\_\+compatible\+\_\+xua}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+as\+\_\+tmode\+\_\+compatible\+\_\+xua()} {\footnotesize\ttfamily bool osmo\+\_\+ss7\+\_\+as\+\_\+tmode\+\_\+compatible\+\_\+xua (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as, }\item[{uint32\+\_\+t}]{m3ua\+\_\+tmt }\end{DoxyParamCaption})} References osmo\+\_\+ss7\+\_\+as\+::cfg, M3\+U\+A\+\_\+\+T\+M\+O\+D\+\_\+\+B\+C\+A\+ST, M3\+U\+A\+\_\+\+T\+M\+O\+D\+\_\+\+L\+O\+A\+D\+S\+H\+A\+RE, M3\+U\+A\+\_\+\+T\+M\+O\+D\+\_\+\+O\+V\+E\+R\+R\+I\+DE, osmo\+\_\+ss7\+\_\+as\+::mode, osmo\+\_\+ss7\+\_\+as\+::mode\+\_\+set\+\_\+by\+\_\+peer, osmo\+\_\+ss7\+\_\+as\+::mode\+\_\+set\+\_\+by\+\_\+vty, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+\_\+\+T\+M\+O\+D\+\_\+\+B\+C\+A\+ST, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+\_\+\+T\+M\+O\+D\+\_\+\+L\+O\+A\+D\+S\+H\+A\+RE, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+\_\+\+T\+M\+O\+D\+\_\+\+O\+V\+E\+R\+R\+I\+DE, and O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+\_\+\+T\+M\+O\+D\+\_\+\+R\+O\+U\+N\+D\+R\+O\+B\+IN. Referenced by handle\+\_\+rkey\+\_\+reg(), and xua\+\_\+asp\+\_\+fsm\+\_\+inactive(). \mbox{\label{osmo__ss7_8c_a2ffc4567c5d0ff733453825fdf696e29}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+asp\+\_\+find@{osmo\+\_\+ss7\+\_\+asp\+\_\+find}} \index{osmo\+\_\+ss7\+\_\+asp\+\_\+find@{osmo\+\_\+ss7\+\_\+asp\+\_\+find}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+asp\+\_\+find()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+asp}$\ast$ osmo\+\_\+ss7\+\_\+asp\+\_\+find (\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[{enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol}}]{proto }\end{DoxyParamCaption})} References osmo\+\_\+ss7\+\_\+asp\+\_\+find2(), ss7\+\_\+default\+\_\+trans\+\_\+proto\+\_\+for\+\_\+asp\+\_\+proto(), and osmo\+\_\+ss7\+\_\+asp\+::trans\+\_\+proto. \mbox{\label{osmo__ss7_8c_a85abc56dd3a072f78df68f26e002ab84}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+asp\+\_\+find2@{osmo\+\_\+ss7\+\_\+asp\+\_\+find2}} \index{osmo\+\_\+ss7\+\_\+asp\+\_\+find2@{osmo\+\_\+ss7\+\_\+asp\+\_\+find2}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+asp\+\_\+find2()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+asp}$\ast$ osmo\+\_\+ss7\+\_\+asp\+\_\+find2 (\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 osmo\+\_\+ss7\+\_\+asp\+::cfg, osmo\+\_\+ss7\+\_\+asp\+::local, osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+name(), osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::port, osmo\+\_\+ss7\+\_\+asp\+::proto, osmo\+\_\+ss7\+\_\+asp\+::remote, ss7\+\_\+initialized, and osmo\+\_\+ss7\+\_\+asp\+::trans\+\_\+proto. Referenced by D\+E\+F\+U\+N\+\_\+\+A\+T\+T\+R(), and osmo\+\_\+ss7\+\_\+asp\+\_\+find(). \mbox{\label{osmo__ss7_8c_aa7458bf949df3ffe66be4420d03957ee}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+name@{osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+name}} \index{osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+name@{osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+name}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+name()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+asp}$\ast$ osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+name (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst, }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})} References osmo\+\_\+ss7\+\_\+instance\+::asp\+\_\+list, osmo\+\_\+ss7\+\_\+asp\+::cfg, osmo\+\_\+ss7\+\_\+asp\+::list, osmo\+\_\+ss7\+\_\+asp\+::name, and ss7\+\_\+initialized. Referenced by D\+E\+F\+U\+N(), D\+E\+F\+U\+N\+\_\+\+A\+T\+T\+R(), osmo\+\_\+ss7\+\_\+as\+\_\+add\+\_\+asp(), osmo\+\_\+ss7\+\_\+as\+\_\+del\+\_\+asp(), osmo\+\_\+ss7\+\_\+asp\+\_\+find2(), osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create2(), show\+\_\+asp(), show\+\_\+asp\+\_\+assoc\+\_\+status(), and show\+\_\+asp\+\_\+remaddr(). \mbox{\label{osmo__ss7_8c_a38c9ff8592910185e233f65eced46dcf}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+proto@{osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+proto}} \index{osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+proto@{osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+proto}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+proto()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+asp}$\ast$ osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+proto (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+as} $\ast$}]{as, }\item[{enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol}}]{proto }\end{DoxyParamCaption})} Find an A\+SP that matches the given A\+SP protocol (x\+UA variant). \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em as} & Application Server in which to look for asp \\ \hline \mbox{\tt in} & {\em proto} & A\+SP protocol (x\+UA variant) to match \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} S\+S7 A\+SP in case a matching one is found; N\+U\+LL otherwise \end{DoxyReturn} References osmo\+\_\+ss7\+\_\+as\+::asps, osmo\+\_\+ss7\+\_\+as\+::cfg, osmo\+\_\+ss7\+\_\+asp\+::cfg, and osmo\+\_\+ss7\+\_\+asp\+::proto. Referenced by osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id(), and osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+proto(). \mbox{\label{osmo__ss7_8c_ab6024e45329a1d925739f537e1785510}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create@{osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create}} \index{osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create@{osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+asp}$\ast$ osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create (\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[{enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol}}]{proto }\end{DoxyParamCaption})} References osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create2(), ss7\+\_\+default\+\_\+trans\+\_\+proto\+\_\+for\+\_\+asp\+\_\+proto(), and osmo\+\_\+ss7\+\_\+asp\+::trans\+\_\+proto. \mbox{\label{osmo__ss7_8c_a5a95f3a3da3ddeeb95e2672dcefc5e22}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create2@{osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create2}} \index{osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create2@{osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create2}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create2()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+asp}$\ast$ osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create2 (\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 osmo\+\_\+ss7\+\_\+asp\+::cfg, osmo\+\_\+ss7\+\_\+asp\+::local, osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+name(), osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::port, osmo\+\_\+ss7\+\_\+asp\+::proto, osmo\+\_\+ss7\+\_\+asp\+::remote, ss7\+\_\+asp\+\_\+alloc(), ss7\+\_\+initialized, and osmo\+\_\+ss7\+\_\+asp\+::trans\+\_\+proto. Referenced by D\+E\+F\+U\+N\+\_\+\+A\+T\+T\+R(), osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id(), osmo\+\_\+sccp\+\_\+simple\+\_\+server\+\_\+add\+\_\+clnt(), osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create(), and xua\+\_\+accept\+\_\+cb(). \mbox{\label{osmo__ss7_8c_a76f74ee255e5a1c871d2285707c4d19c}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+ensure\+\_\+sccp@{osmo\+\_\+ss7\+\_\+ensure\+\_\+sccp}} \index{osmo\+\_\+ss7\+\_\+ensure\+\_\+sccp@{osmo\+\_\+ss7\+\_\+ensure\+\_\+sccp}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+ensure\+\_\+sccp()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+sccp\+\_\+instance}$\ast$ osmo\+\_\+ss7\+\_\+ensure\+\_\+sccp (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})} Allocate an S\+C\+CP instance, if not present yet. \begin{DoxyReturn}{Returns} inst-\/$>$sccp. \end{DoxyReturn} References L\+O\+G\+S\+S7, osmo\+\_\+sccp\+\_\+instance\+\_\+create(), and osmo\+\_\+ss7\+\_\+instance\+::sccp. Referenced by D\+E\+F\+U\+N\+\_\+\+A\+T\+T\+R(), osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id(), osmo\+\_\+sccp\+\_\+simple\+\_\+server\+\_\+on\+\_\+ss7\+\_\+id(), osmo\+\_\+ss7\+\_\+xua\+\_\+server\+\_\+create2(), and ss7\+\_\+asp\+\_\+alloc(). \mbox{\label{osmo__ss7_8c_ad995eb65a7ba20e8d134033669126231}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+find\+\_\+free\+\_\+rctx@{osmo\+\_\+ss7\+\_\+find\+\_\+free\+\_\+rctx}} \index{osmo\+\_\+ss7\+\_\+find\+\_\+free\+\_\+rctx@{osmo\+\_\+ss7\+\_\+find\+\_\+free\+\_\+rctx}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+find\+\_\+free\+\_\+rctx()} {\footnotesize\ttfamily int osmo\+\_\+ss7\+\_\+find\+\_\+free\+\_\+rctx (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})} References next\+\_\+rctx, and osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+rctx(). Referenced by handle\+\_\+rkey\+\_\+reg(). \mbox{\label{osmo__ss7_8c_aa0eea948b1e7bbb0764ecc89e5b2a124}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+init@{osmo\+\_\+ss7\+\_\+init}} \index{osmo\+\_\+ss7\+\_\+init@{osmo\+\_\+ss7\+\_\+init}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+init()} {\footnotesize\ttfamily int osmo\+\_\+ss7\+\_\+init (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})} References ipa\+\_\+asp\+\_\+fsm, sccp\+\_\+scoc\+\_\+fsm, ss7\+\_\+initialized, xua\+\_\+as\+\_\+fsm, xua\+\_\+asp\+\_\+fsm, and xua\+\_\+default\+\_\+lm\+\_\+fsm. \mbox{\label{osmo__ss7_8c_a55d7a596847108913e0e9e03dbf1a933}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+instance\+\_\+destroy@{osmo\+\_\+ss7\+\_\+instance\+\_\+destroy}} \index{osmo\+\_\+ss7\+\_\+instance\+\_\+destroy@{osmo\+\_\+ss7\+\_\+instance\+\_\+destroy}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+instance\+\_\+destroy()} {\footnotesize\ttfamily void osmo\+\_\+ss7\+\_\+instance\+\_\+destroy (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})} Destroy a S\+S7 Instance. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em inst} & S\+S7 Instance to be destroyed \\ \hline \end{DoxyParams} References osmo\+\_\+ss7\+\_\+instance\+::as\+\_\+list, osmo\+\_\+ss7\+\_\+instance\+::asp\+\_\+list, osmo\+\_\+ss7\+\_\+instance\+::linksets, osmo\+\_\+ss7\+\_\+instance\+::list, osmo\+\_\+ss7\+\_\+asp\+::list, L\+O\+G\+S\+S7, osmo\+\_\+ss7\+\_\+as\+\_\+destroy(), osmo\+\_\+ss7\+\_\+asp\+\_\+destroy(), osmo\+\_\+ss7\+\_\+linkset\+\_\+destroy(), and ss7\+\_\+initialized. Referenced by osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id(), and osmo\+\_\+sccp\+\_\+simple\+\_\+server\+\_\+on\+\_\+ss7\+\_\+id(). \mbox{\label{osmo__ss7_8c_acd3841d0e56f61f00dbfd2bffeeb9351}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+instance\+\_\+find@{osmo\+\_\+ss7\+\_\+instance\+\_\+find}} \index{osmo\+\_\+ss7\+\_\+instance\+\_\+find@{osmo\+\_\+ss7\+\_\+instance\+\_\+find}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+instance\+\_\+find()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+instance}$\ast$ osmo\+\_\+ss7\+\_\+instance\+\_\+find (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{id }\end{DoxyParamCaption})} Find a S\+S7 Instance with given ID. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em id} & ID for which to search \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} \doxyref{osmo\+\_\+ss7\+\_\+instance}{p.}{structosmo__ss7__instance} on success; N\+U\+LL on error \end{DoxyReturn} References osmo\+\_\+ss7\+\_\+instance\+::cfg, osmo\+\_\+ss7\+\_\+instance\+::id, osmo\+\_\+ss7\+\_\+instance\+::list, osmo\+\_\+ss7\+\_\+instances, and ss7\+\_\+initialized. Referenced by D\+E\+F\+U\+N(), osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id(), osmo\+\_\+ss7\+\_\+instance\+\_\+find\+\_\+or\+\_\+create(), show\+\_\+asp(), show\+\_\+asp\+\_\+assoc\+\_\+status(), and show\+\_\+asp\+\_\+remaddr(). \mbox{\label{osmo__ss7_8c_a7b6d881b636f81a9ed0419f1f17727f6}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+instance\+\_\+find\+\_\+or\+\_\+create@{osmo\+\_\+ss7\+\_\+instance\+\_\+find\+\_\+or\+\_\+create}} \index{osmo\+\_\+ss7\+\_\+instance\+\_\+find\+\_\+or\+\_\+create@{osmo\+\_\+ss7\+\_\+instance\+\_\+find\+\_\+or\+\_\+create}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+instance\+\_\+find\+\_\+or\+\_\+create()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+instance}$\ast$ osmo\+\_\+ss7\+\_\+instance\+\_\+find\+\_\+or\+\_\+create (\begin{DoxyParamCaption}\item[{void $\ast$}]{ctx, }\item[{uint32\+\_\+t}]{id }\end{DoxyParamCaption})} Find or create a S\+S7 Instance. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em ctx} & talloc allocation context to use for allocations \\ \hline \mbox{\tt in} & {\em id} & ID of S\+S7 Instance \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} \doxyref{osmo\+\_\+ss7\+\_\+instance}{p.}{structosmo__ss7__instance} on success; N\+U\+LL on error \end{DoxyReturn} References osmo\+\_\+ss7\+\_\+instance\+::as\+\_\+list, osmo\+\_\+ss7\+\_\+instance\+::asp\+\_\+list, osmo\+\_\+ss7\+\_\+instance\+::cfg, osmo\+\_\+ss7\+\_\+pc\+\_\+fmt\+::component\+\_\+len, osmo\+\_\+ss7\+\_\+pc\+\_\+fmt\+::delimiter, osmo\+\_\+ss7\+\_\+instance\+::id, osmo\+\_\+ss7\+\_\+instance\+::linksets, osmo\+\_\+ss7\+\_\+instance\+::list, L\+O\+G\+S\+S7, osmo\+\_\+ss7\+\_\+instance\+\_\+find(), osmo\+\_\+ss7\+\_\+instances, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+P\+C\+\_\+\+I\+N\+V\+A\+L\+ID, osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+find\+\_\+or\+\_\+create(), osmo\+\_\+ss7\+\_\+instance\+::pc\+\_\+fmt, osmo\+\_\+ss7\+\_\+instance\+::primary\+\_\+pc, osmo\+\_\+ss7\+\_\+instance\+::rtable\+\_\+list, osmo\+\_\+ss7\+\_\+instance\+::rtable\+\_\+system, osmo\+\_\+ss7\+\_\+instance\+::sccp\+\_\+address\+\_\+book, ss7\+\_\+initialized, and osmo\+\_\+ss7\+\_\+instance\+::xua\+\_\+servers. Referenced by D\+E\+F\+U\+N\+\_\+\+A\+T\+T\+R(), osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id(), and osmo\+\_\+sccp\+\_\+simple\+\_\+server\+\_\+on\+\_\+ss7\+\_\+id(). \mbox{\label{osmo__ss7_8c_adc19747b6de70d033959ee3cf5d26bdf}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+instance\+\_\+set\+\_\+pc\+\_\+fmt@{osmo\+\_\+ss7\+\_\+instance\+\_\+set\+\_\+pc\+\_\+fmt}} \index{osmo\+\_\+ss7\+\_\+instance\+\_\+set\+\_\+pc\+\_\+fmt@{osmo\+\_\+ss7\+\_\+instance\+\_\+set\+\_\+pc\+\_\+fmt}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+instance\+\_\+set\+\_\+pc\+\_\+fmt()} {\footnotesize\ttfamily int osmo\+\_\+ss7\+\_\+instance\+\_\+set\+\_\+pc\+\_\+fmt (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst, }\item[{uint8\+\_\+t}]{c0, }\item[{uint8\+\_\+t}]{c1, }\item[{uint8\+\_\+t}]{c2 }\end{DoxyParamCaption})} Set the point code format used in given S\+S7 instance. References osmo\+\_\+ss7\+\_\+instance\+::cfg, osmo\+\_\+ss7\+\_\+pc\+\_\+fmt\+::component\+\_\+len, L\+O\+G\+S\+S7, and osmo\+\_\+ss7\+\_\+instance\+::pc\+\_\+fmt. \mbox{\label{osmo__ss7_8c_a876684805361a41edbf929ffff212f53}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+link\+\_\+destroy@{osmo\+\_\+ss7\+\_\+link\+\_\+destroy}} \index{osmo\+\_\+ss7\+\_\+link\+\_\+destroy@{osmo\+\_\+ss7\+\_\+link\+\_\+destroy}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+link\+\_\+destroy()} {\footnotesize\ttfamily void osmo\+\_\+ss7\+\_\+link\+\_\+destroy (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+link} $\ast$}]{link }\end{DoxyParamCaption})} Destroy S\+S7 Link. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em link} & S\+S7 Link to be destroyed \\ \hline \end{DoxyParams} References osmo\+\_\+ss7\+\_\+link\+::cfg, osmo\+\_\+ss7\+\_\+linkset\+::cfg, osmo\+\_\+ss7\+\_\+link\+::id, osmo\+\_\+ss7\+\_\+linkset\+::inst, osmo\+\_\+ss7\+\_\+linkset\+::links, osmo\+\_\+ss7\+\_\+link\+::linkset, L\+O\+G\+S\+S7, osmo\+\_\+ss7\+\_\+linkset\+::name, and ss7\+\_\+initialized. Referenced by osmo\+\_\+ss7\+\_\+linkset\+\_\+destroy(). \mbox{\label{osmo__ss7_8c_a8b0b03e356521984e7a23ddb70a30a3b}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+link\+\_\+find\+\_\+or\+\_\+create@{osmo\+\_\+ss7\+\_\+link\+\_\+find\+\_\+or\+\_\+create}} \index{osmo\+\_\+ss7\+\_\+link\+\_\+find\+\_\+or\+\_\+create@{osmo\+\_\+ss7\+\_\+link\+\_\+find\+\_\+or\+\_\+create}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+link\+\_\+find\+\_\+or\+\_\+create()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+link}$\ast$ osmo\+\_\+ss7\+\_\+link\+\_\+find\+\_\+or\+\_\+create (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+linkset} $\ast$}]{lset, }\item[{uint32\+\_\+t}]{id }\end{DoxyParamCaption})} Find or create S\+S7 Link with given ID in given Linkset. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em lset} & S\+S7 Linkset on which we operate \\ \hline \mbox{\tt in} & {\em id} & Link number within Linkset \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} pointer to S\+S7 Link on success; N\+U\+LL on error \end{DoxyReturn} References osmo\+\_\+ss7\+\_\+link\+::cfg, osmo\+\_\+ss7\+\_\+linkset\+::cfg, osmo\+\_\+ss7\+\_\+link\+::id, osmo\+\_\+ss7\+\_\+linkset\+::inst, osmo\+\_\+ss7\+\_\+linkset\+::links, osmo\+\_\+ss7\+\_\+link\+::linkset, L\+O\+G\+S\+S7, osmo\+\_\+ss7\+\_\+linkset\+::name, and ss7\+\_\+initialized. \mbox{\label{osmo__ss7_8c_abf73f9c25c19c4b7e7ff671a0ffffca6}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+linkset\+\_\+destroy@{osmo\+\_\+ss7\+\_\+linkset\+\_\+destroy}} \index{osmo\+\_\+ss7\+\_\+linkset\+\_\+destroy@{osmo\+\_\+ss7\+\_\+linkset\+\_\+destroy}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+linkset\+\_\+destroy()} {\footnotesize\ttfamily void osmo\+\_\+ss7\+\_\+linkset\+\_\+destroy (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+linkset} $\ast$}]{lset }\end{DoxyParamCaption})} Destroy a S\+S7 Linkset. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em lset} & Linkset to be destroyed \\ \hline \end{DoxyParams} References osmo\+\_\+ss7\+\_\+linkset\+::cfg, osmo\+\_\+ss7\+\_\+route\+::dest, osmo\+\_\+ss7\+\_\+linkset\+::inst, osmo\+\_\+ss7\+\_\+linkset\+::links, osmo\+\_\+ss7\+\_\+route\+::linkset, osmo\+\_\+ss7\+\_\+linkset\+::list, osmo\+\_\+ss7\+\_\+route\+::list, L\+O\+G\+S\+S7, osmo\+\_\+ss7\+\_\+linkset\+::name, osmo\+\_\+ss7\+\_\+link\+\_\+destroy(), osmo\+\_\+ss7\+\_\+route\+\_\+destroy(), osmo\+\_\+ss7\+\_\+route\+\_\+table\+::routes, osmo\+\_\+ss7\+\_\+instance\+::rtable\+\_\+system, and ss7\+\_\+initialized. Referenced by osmo\+\_\+ss7\+\_\+instance\+\_\+destroy(). \mbox{\label{osmo__ss7_8c_aea6f3f676f45f38a2f733ec0529b4484}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+linkset\+\_\+find\+\_\+by\+\_\+name@{osmo\+\_\+ss7\+\_\+linkset\+\_\+find\+\_\+by\+\_\+name}} \index{osmo\+\_\+ss7\+\_\+linkset\+\_\+find\+\_\+by\+\_\+name@{osmo\+\_\+ss7\+\_\+linkset\+\_\+find\+\_\+by\+\_\+name}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+linkset\+\_\+find\+\_\+by\+\_\+name()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+linkset}$\ast$ osmo\+\_\+ss7\+\_\+linkset\+\_\+find\+\_\+by\+\_\+name (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst, }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})} Find S\+S7 Linkset by given name. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em inst} & S\+S7 Instance in which to look \\ \hline \mbox{\tt in} & {\em name} & Name of S\+S7 Linkset \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} pointer to linkset on success; N\+U\+LL on error \end{DoxyReturn} References osmo\+\_\+ss7\+\_\+linkset\+::cfg, osmo\+\_\+ss7\+\_\+instance\+::linksets, osmo\+\_\+ss7\+\_\+linkset\+::list, osmo\+\_\+ss7\+\_\+linkset\+::name, and ss7\+\_\+initialized. Referenced by osmo\+\_\+ss7\+\_\+linkset\+\_\+find\+\_\+or\+\_\+create(), and osmo\+\_\+ss7\+\_\+route\+\_\+create(). \mbox{\label{osmo__ss7_8c_a9ee19875896f2831d48a924cec1956e6}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+linkset\+\_\+find\+\_\+or\+\_\+create@{osmo\+\_\+ss7\+\_\+linkset\+\_\+find\+\_\+or\+\_\+create}} \index{osmo\+\_\+ss7\+\_\+linkset\+\_\+find\+\_\+or\+\_\+create@{osmo\+\_\+ss7\+\_\+linkset\+\_\+find\+\_\+or\+\_\+create}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+linkset\+\_\+find\+\_\+or\+\_\+create()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+linkset}$\ast$ osmo\+\_\+ss7\+\_\+linkset\+\_\+find\+\_\+or\+\_\+create (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst, }\item[{const char $\ast$}]{name, }\item[{uint32\+\_\+t}]{pc }\end{DoxyParamCaption})} Find or allocate S\+S7 Linkset. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em inst} & S\+S7 Instance in which we operate \\ \hline \mbox{\tt in} & {\em name} & Name of S\+S7 Linkset \\ \hline \mbox{\tt in} & {\em pc} & Adjacent Pointcode \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} pointer to Linkset on success; N\+U\+LL on error \end{DoxyReturn} References osmo\+\_\+ss7\+\_\+linkset\+::adjacent\+\_\+pc, osmo\+\_\+ss7\+\_\+linkset\+::cfg, osmo\+\_\+ss7\+\_\+linkset\+::inst, osmo\+\_\+ss7\+\_\+instance\+::linksets, osmo\+\_\+ss7\+\_\+linkset\+::list, L\+O\+G\+S\+S7, osmo\+\_\+ss7\+\_\+linkset\+::name, osmo\+\_\+ss7\+\_\+linkset\+\_\+find\+\_\+by\+\_\+name(), and ss7\+\_\+initialized. \mbox{\label{osmo__ss7_8c_a4f143ec50e7ae5bfdf6ff1cf5ada7b75}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+mtp\+\_\+to\+\_\+user@{osmo\+\_\+ss7\+\_\+mtp\+\_\+to\+\_\+user}} \index{osmo\+\_\+ss7\+\_\+mtp\+\_\+to\+\_\+user@{osmo\+\_\+ss7\+\_\+mtp\+\_\+to\+\_\+user}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+mtp\+\_\+to\+\_\+user()} {\footnotesize\ttfamily int osmo\+\_\+ss7\+\_\+mtp\+\_\+to\+\_\+user (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst, }\item[{struct \textbf{ osmo\+\_\+mtp\+\_\+prim} $\ast$}]{omp }\end{DoxyParamCaption})} References M\+T\+P\+\_\+\+S\+A\+P\+\_\+\+U\+S\+ER, osmo\+\_\+ss7\+\_\+user\+::name, osmo\+\_\+mtp\+\_\+prim\+::oph, O\+S\+M\+O\+\_\+\+M\+T\+P\+\_\+\+P\+R\+I\+M\+\_\+\+T\+R\+A\+N\+S\+F\+ER, osmo\+\_\+ss7\+\_\+user\+::prim\+\_\+cb, osmo\+\_\+ss7\+\_\+user\+::priv, osmo\+\_\+mtp\+\_\+transfer\+\_\+param\+::sio, osmo\+\_\+mtp\+\_\+prim\+::transfer, osmo\+\_\+mtp\+\_\+prim\+::u, and osmo\+\_\+ss7\+\_\+instance\+::user. \mbox{\label{osmo__ss7_8c_ae5e0610394ffcbdbd4be7006ab04205e}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+pc\+\_\+is\+\_\+local@{osmo\+\_\+ss7\+\_\+pc\+\_\+is\+\_\+local}} \index{osmo\+\_\+ss7\+\_\+pc\+\_\+is\+\_\+local@{osmo\+\_\+ss7\+\_\+pc\+\_\+is\+\_\+local}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+pc\+\_\+is\+\_\+local()} {\footnotesize\ttfamily bool osmo\+\_\+ss7\+\_\+pc\+\_\+is\+\_\+local (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst, }\item[{uint32\+\_\+t}]{pc }\end{DoxyParamCaption})} References osmo\+\_\+ss7\+\_\+instance\+::cfg, osmo\+\_\+ss7\+\_\+pc\+\_\+is\+\_\+valid(), osmo\+\_\+ss7\+\_\+instance\+::primary\+\_\+pc, and ss7\+\_\+initialized. Referenced by m3ua\+\_\+hmdc\+\_\+rx\+\_\+from\+\_\+l2(), sccp\+\_\+sclc\+\_\+rx\+\_\+scrc\+\_\+rout\+\_\+fail(), scrc\+\_\+local\+\_\+out\+\_\+common(), and scrc\+\_\+translate\+\_\+node\+\_\+9(). \mbox{\label{osmo__ss7_8c_a63840039b641779d68a0010bc7f24fd5}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+pc\+\_\+normalize@{osmo\+\_\+ss7\+\_\+pc\+\_\+normalize}} \index{osmo\+\_\+ss7\+\_\+pc\+\_\+normalize@{osmo\+\_\+ss7\+\_\+pc\+\_\+normalize}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+pc\+\_\+normalize()} {\footnotesize\ttfamily uint32\+\_\+t osmo\+\_\+ss7\+\_\+pc\+\_\+normalize (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} $\ast$}]{pc\+\_\+fmt, }\item[{uint32\+\_\+t}]{pc }\end{DoxyParamCaption})} References osmo\+\_\+ss7\+\_\+pc\+\_\+width(). Referenced by osmo\+\_\+ss7\+\_\+route\+\_\+create(), osmo\+\_\+ss7\+\_\+route\+\_\+find\+\_\+dpc(), and osmo\+\_\+ss7\+\_\+route\+\_\+find\+\_\+dpc\+\_\+mask(). \mbox{\label{osmo__ss7_8c_a9cc83a7969a30ca6748f27cf0b442e5e}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+pc\+\_\+width@{osmo\+\_\+ss7\+\_\+pc\+\_\+width}} \index{osmo\+\_\+ss7\+\_\+pc\+\_\+width@{osmo\+\_\+ss7\+\_\+pc\+\_\+width}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+pc\+\_\+width()} {\footnotesize\ttfamily uint8\+\_\+t osmo\+\_\+ss7\+\_\+pc\+\_\+width (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} $\ast$}]{pc\+\_\+fmt }\end{DoxyParamCaption})} References osmo\+\_\+ss7\+\_\+pc\+\_\+fmt\+::component\+\_\+len. Referenced by get\+\_\+pc\+\_\+comp\+\_\+shift(), osmo\+\_\+ss7\+\_\+pc\+\_\+normalize(), osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse\+\_\+mask\+\_\+or\+\_\+len(), and osmo\+\_\+ss7\+\_\+route\+\_\+print(). \mbox{\label{osmo__ss7_8c_a5c8b8efb97b4c3651223fffb5ad07e42}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse@{osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse}} \index{osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse@{osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse()} {\footnotesize\ttfamily int osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst, }\item[{const char $\ast$}]{str }\end{DoxyParamCaption})} References osmo\+\_\+ss7\+\_\+instance\+::cfg, osmo\+\_\+ss7\+\_\+pc\+\_\+fmt\+::component\+\_\+len, default\+\_\+pc\+\_\+fmt, gen\+\_\+pc\+\_\+fmtstr(), get\+\_\+pc\+\_\+comp\+\_\+shift(), L\+O\+G\+S\+S7, num\+\_\+pc\+\_\+comp\+\_\+exp(), and osmo\+\_\+ss7\+\_\+instance\+::pc\+\_\+fmt. Referenced by \+\_\+rout\+\_\+key(), D\+E\+F\+U\+N\+\_\+\+A\+T\+T\+R(), and osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse\+\_\+mask\+\_\+or\+\_\+len(). \mbox{\label{osmo__ss7_8c_a20d09e0dbfb82c1b496fa63c11c1ee28}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse\+\_\+mask\+\_\+or\+\_\+len@{osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse\+\_\+mask\+\_\+or\+\_\+len}} \index{osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse\+\_\+mask\+\_\+or\+\_\+len@{osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse\+\_\+mask\+\_\+or\+\_\+len}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse\+\_\+mask\+\_\+or\+\_\+len()} {\footnotesize\ttfamily int osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse\+\_\+mask\+\_\+or\+\_\+len (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst, }\item[{const char $\ast$}]{in }\end{DoxyParamCaption})} References osmo\+\_\+ss7\+\_\+instance\+::cfg, osmo\+\_\+ss7\+\_\+pc\+\_\+width(), osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse(), and osmo\+\_\+ss7\+\_\+instance\+::pc\+\_\+fmt. Referenced by D\+E\+F\+U\+N\+\_\+\+A\+T\+T\+R(). \mbox{\label{osmo__ss7_8c_aced2f480635c40bdfbdc7b03687f0743}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+pointcode\+\_\+print@{osmo\+\_\+ss7\+\_\+pointcode\+\_\+print}} \index{osmo\+\_\+ss7\+\_\+pointcode\+\_\+print@{osmo\+\_\+ss7\+\_\+pointcode\+\_\+print}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+pointcode\+\_\+print()} {\footnotesize\ttfamily const char$\ast$ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst, }\item[{uint32\+\_\+t}]{pc }\end{DoxyParamCaption})} References M\+A\+X\+\_\+\+P\+C\+\_\+\+S\+T\+R\+\_\+\+L\+EN, and osmo\+\_\+ss7\+\_\+pointcode\+\_\+print\+\_\+buf(). Referenced by D\+E\+F\+U\+N(), format\+\_\+affected\+\_\+pcs\+\_\+c(), handle\+\_\+rkey\+\_\+dereg(), handle\+\_\+rkey\+\_\+reg(), hmrt\+\_\+message\+\_\+for\+\_\+routing(), ipa\+\_\+del\+\_\+route(), m3ua\+\_\+hmdc\+\_\+rx\+\_\+from\+\_\+l2(), m3ua\+\_\+rx\+\_\+xfer(), osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id(), osmo\+\_\+sccp\+\_\+user\+\_\+unbind(), osmo\+\_\+ss7\+\_\+route\+\_\+create(), osmo\+\_\+ss7\+\_\+route\+\_\+destroy(), osmo\+\_\+ss7\+\_\+route\+\_\+name(), osmo\+\_\+ss7\+\_\+route\+\_\+print(), sccp\+\_\+addr\+\_\+to\+\_\+str\+\_\+buf(), sccp\+\_\+scoc\+\_\+rx\+\_\+inval\+\_\+opc(), sccp\+\_\+user\+\_\+bind\+\_\+pc(), scrc\+\_\+node\+\_\+6(), show\+\_\+user(), vty\+\_\+show\+\_\+connection(), write\+\_\+one\+\_\+as(), write\+\_\+one\+\_\+cs7(), write\+\_\+one\+\_\+rtable(), write\+\_\+sccp\+\_\+addressbook(), and xua\+\_\+snm\+\_\+rx\+\_\+dupu(). \mbox{\label{osmo__ss7_8c_a11f1c4d0b61f5445352c6adeb39b8e3b}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+pointcode\+\_\+print2@{osmo\+\_\+ss7\+\_\+pointcode\+\_\+print2}} \index{osmo\+\_\+ss7\+\_\+pointcode\+\_\+print2@{osmo\+\_\+ss7\+\_\+pointcode\+\_\+print2}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+pointcode\+\_\+print2()} {\footnotesize\ttfamily const char$\ast$ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print2 (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst, }\item[{uint32\+\_\+t}]{pc }\end{DoxyParamCaption})} References M\+A\+X\+\_\+\+P\+C\+\_\+\+S\+T\+R\+\_\+\+L\+EN, and osmo\+\_\+ss7\+\_\+pointcode\+\_\+print\+\_\+buf(). Referenced by m3ua\+\_\+rx\+\_\+xfer(), osmo\+\_\+ss7\+\_\+route\+\_\+name(), osmo\+\_\+ss7\+\_\+route\+\_\+print(), sccp\+\_\+scoc\+\_\+rx\+\_\+inval\+\_\+opc(), and write\+\_\+one\+\_\+rtable(). \mbox{\label{osmo__ss7_8c_a37831607a61cd660fbe6dbde89ef5c7a}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+pointcode\+\_\+print\+\_\+buf@{osmo\+\_\+ss7\+\_\+pointcode\+\_\+print\+\_\+buf}} \index{osmo\+\_\+ss7\+\_\+pointcode\+\_\+print\+\_\+buf@{osmo\+\_\+ss7\+\_\+pointcode\+\_\+print\+\_\+buf}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+pointcode\+\_\+print\+\_\+buf()} {\footnotesize\ttfamily const char$\ast$ osmo\+\_\+ss7\+\_\+pointcode\+\_\+print\+\_\+buf (\begin{DoxyParamCaption}\item[{char $\ast$}]{buf, }\item[{size\+\_\+t}]{len, }\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst, }\item[{uint32\+\_\+t}]{pc }\end{DoxyParamCaption})} References osmo\+\_\+ss7\+\_\+instance\+::cfg, default\+\_\+pc\+\_\+fmt, gen\+\_\+pc\+\_\+fmtstr(), num\+\_\+pc\+\_\+comp\+\_\+exp(), osmo\+\_\+ss7\+\_\+pc\+\_\+is\+\_\+valid(), pc\+\_\+comp\+\_\+shift\+\_\+and\+\_\+mask(), and osmo\+\_\+ss7\+\_\+instance\+::pc\+\_\+fmt. Referenced by osmo\+\_\+ss7\+\_\+pointcode\+\_\+print(), and osmo\+\_\+ss7\+\_\+pointcode\+\_\+print2(). \mbox{\label{osmo__ss7_8c_ac6a50b765c1da6b429d18dbbbd5886db}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+route\+\_\+create@{osmo\+\_\+ss7\+\_\+route\+\_\+create}} \index{osmo\+\_\+ss7\+\_\+route\+\_\+create@{osmo\+\_\+ss7\+\_\+route\+\_\+create}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+route\+\_\+create()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+route}$\ast$ osmo\+\_\+ss7\+\_\+route\+\_\+create (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table} $\ast$}]{rtbl, }\item[{uint32\+\_\+t}]{pc, }\item[{uint32\+\_\+t}]{mask, }\item[{const char $\ast$}]{linkset\+\_\+name }\end{DoxyParamCaption})} Create a new route in the given routing table. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em rtbl} & Routing Table in which the route is to be created \\ \hline \mbox{\tt in} & {\em pc} & Point Code of the destination of the route \\ \hline \mbox{\tt in} & {\em mask} & Mask of the destination Point Code pc \\ \hline \mbox{\tt in} & {\em linkset\+\_\+name} & string name of the linkset to be used \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} caller-\/allocated + initialized route, N\+U\+LL on error \end{DoxyReturn} References osmo\+\_\+ss7\+\_\+route\+::as, osmo\+\_\+ss7\+\_\+instance\+::cfg, osmo\+\_\+ss7\+\_\+linkset\+::cfg, osmo\+\_\+ss7\+\_\+route\+::cfg, osmo\+\_\+ss7\+\_\+as\+::cfg, osmo\+\_\+ss7\+\_\+route\+::dest, osmo\+\_\+ss7\+\_\+route\+\_\+table\+::inst, osmo\+\_\+ss7\+\_\+route\+::linkset, osmo\+\_\+ss7\+\_\+route\+::linkset\+\_\+name, L\+O\+G\+S\+S7, osmo\+\_\+ss7\+\_\+route\+::mask, osmo\+\_\+ss7\+\_\+linkset\+::name, osmo\+\_\+ss7\+\_\+as\+::name, osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+name(), osmo\+\_\+ss7\+\_\+linkset\+\_\+find\+\_\+by\+\_\+name(), osmo\+\_\+ss7\+\_\+pc\+\_\+normalize(), osmo\+\_\+ss7\+\_\+pointcode\+\_\+print(), osmo\+\_\+ss7\+\_\+route\+\_\+find\+\_\+dpc\+\_\+mask(), osmo\+\_\+ss7\+\_\+route\+::pc, osmo\+\_\+ss7\+\_\+instance\+::pc\+\_\+fmt, route\+\_\+insert\+\_\+sorted(), osmo\+\_\+ss7\+\_\+route\+::rtable, and ss7\+\_\+initialized. Referenced by \+\_\+rout\+\_\+key(), D\+E\+F\+U\+N\+\_\+\+A\+T\+T\+R(), handle\+\_\+rkey\+\_\+reg(), ipa\+\_\+add\+\_\+route(), osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id(), and osmo\+\_\+sccp\+\_\+simple\+\_\+server\+\_\+add\+\_\+clnt(). \mbox{\label{osmo__ss7_8c_a2e5f54771a9bb3a14a5aea6b19d99922}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+route\+\_\+destroy@{osmo\+\_\+ss7\+\_\+route\+\_\+destroy}} \index{osmo\+\_\+ss7\+\_\+route\+\_\+destroy@{osmo\+\_\+ss7\+\_\+route\+\_\+destroy}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+route\+\_\+destroy()} {\footnotesize\ttfamily void osmo\+\_\+ss7\+\_\+route\+\_\+destroy (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$}]{rt }\end{DoxyParamCaption})} Destroy a given S\+S7 route. References osmo\+\_\+ss7\+\_\+route\+::cfg, osmo\+\_\+ss7\+\_\+route\+\_\+table\+::inst, osmo\+\_\+ss7\+\_\+route\+::linkset\+\_\+name, osmo\+\_\+ss7\+\_\+route\+::list, L\+O\+G\+S\+S7, osmo\+\_\+ss7\+\_\+route\+::mask, osmo\+\_\+ss7\+\_\+pointcode\+\_\+print(), osmo\+\_\+ss7\+\_\+route\+::pc, osmo\+\_\+ss7\+\_\+route\+::rtable, and ss7\+\_\+initialized. Referenced by \+\_\+rout\+\_\+key(), D\+E\+F\+U\+N\+\_\+\+A\+T\+T\+R(), handle\+\_\+rkey\+\_\+dereg(), handle\+\_\+rkey\+\_\+reg(), ipa\+\_\+del\+\_\+route(), osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id(), osmo\+\_\+sccp\+\_\+simple\+\_\+server\+\_\+add\+\_\+clnt(), osmo\+\_\+ss7\+\_\+as\+\_\+destroy(), and osmo\+\_\+ss7\+\_\+linkset\+\_\+destroy(). \mbox{\label{osmo__ss7_8c_ab5fcd843ecef8c59397b5576a669c87d}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+route\+\_\+find\+\_\+dpc@{osmo\+\_\+ss7\+\_\+route\+\_\+find\+\_\+dpc}} \index{osmo\+\_\+ss7\+\_\+route\+\_\+find\+\_\+dpc@{osmo\+\_\+ss7\+\_\+route\+\_\+find\+\_\+dpc}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+route\+\_\+find\+\_\+dpc()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+route}$\ast$ osmo\+\_\+ss7\+\_\+route\+\_\+find\+\_\+dpc (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table} $\ast$}]{rtbl, }\item[{uint32\+\_\+t}]{dpc }\end{DoxyParamCaption})} Find a S\+S7 route for given destination point code in given table. References osmo\+\_\+ss7\+\_\+instance\+::cfg, osmo\+\_\+ss7\+\_\+route\+::cfg, osmo\+\_\+ss7\+\_\+route\+\_\+table\+::inst, osmo\+\_\+ss7\+\_\+route\+::list, osmo\+\_\+ss7\+\_\+route\+::mask, osmo\+\_\+ss7\+\_\+pc\+\_\+normalize(), osmo\+\_\+ss7\+\_\+route\+::pc, osmo\+\_\+ss7\+\_\+instance\+::pc\+\_\+fmt, osmo\+\_\+ss7\+\_\+route\+\_\+table\+::routes, and ss7\+\_\+initialized. Referenced by handle\+\_\+rkey\+\_\+dereg(), and osmo\+\_\+ss7\+\_\+route\+\_\+lookup(). \mbox{\label{osmo__ss7_8c_ab9df59dfb9eb0da0c24f47f6017903fa}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+route\+\_\+find\+\_\+dpc\+\_\+mask@{osmo\+\_\+ss7\+\_\+route\+\_\+find\+\_\+dpc\+\_\+mask}} \index{osmo\+\_\+ss7\+\_\+route\+\_\+find\+\_\+dpc\+\_\+mask@{osmo\+\_\+ss7\+\_\+route\+\_\+find\+\_\+dpc\+\_\+mask}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+route\+\_\+find\+\_\+dpc\+\_\+mask()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+route}$\ast$ osmo\+\_\+ss7\+\_\+route\+\_\+find\+\_\+dpc\+\_\+mask (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table} $\ast$}]{rtbl, }\item[{uint32\+\_\+t}]{dpc, }\item[{uint32\+\_\+t}]{mask }\end{DoxyParamCaption})} Find a S\+S7 route for given destination point code + mask in given table. References osmo\+\_\+ss7\+\_\+instance\+::cfg, osmo\+\_\+ss7\+\_\+route\+::cfg, osmo\+\_\+ss7\+\_\+route\+\_\+table\+::inst, osmo\+\_\+ss7\+\_\+route\+::list, osmo\+\_\+ss7\+\_\+route\+::mask, osmo\+\_\+ss7\+\_\+pc\+\_\+normalize(), osmo\+\_\+ss7\+\_\+route\+::pc, osmo\+\_\+ss7\+\_\+instance\+::pc\+\_\+fmt, osmo\+\_\+ss7\+\_\+route\+\_\+table\+::routes, and ss7\+\_\+initialized. Referenced by \+\_\+rout\+\_\+key(), D\+E\+F\+U\+N\+\_\+\+A\+T\+T\+R(), ipa\+\_\+add\+\_\+route(), ipa\+\_\+del\+\_\+route(), osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id(), and osmo\+\_\+ss7\+\_\+route\+\_\+create(). \mbox{\label{osmo__ss7_8c_afffa83964e0e553761063635d9b47d93}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+route\+\_\+lookup@{osmo\+\_\+ss7\+\_\+route\+\_\+lookup}} \index{osmo\+\_\+ss7\+\_\+route\+\_\+lookup@{osmo\+\_\+ss7\+\_\+route\+\_\+lookup}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+route\+\_\+lookup()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+route}$\ast$ osmo\+\_\+ss7\+\_\+route\+\_\+lookup (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst, }\item[{uint32\+\_\+t}]{dpc }\end{DoxyParamCaption})} Find a S\+S7 route for given destination point code in given S\+S7. References osmo\+\_\+ss7\+\_\+route\+\_\+find\+\_\+dpc(), osmo\+\_\+ss7\+\_\+instance\+::rtable\+\_\+system, and ss7\+\_\+initialized. Referenced by gen\+\_\+mtp\+\_\+transfer\+\_\+req\+\_\+xua(), hmrt\+\_\+message\+\_\+for\+\_\+routing(), and xua\+\_\+snm\+\_\+rx\+\_\+daud(). \mbox{\label{osmo__ss7_8c_ac78fd36af77d7da021e0b524386a0f91}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+route\+\_\+print@{osmo\+\_\+ss7\+\_\+route\+\_\+print}} \index{osmo\+\_\+ss7\+\_\+route\+\_\+print@{osmo\+\_\+ss7\+\_\+route\+\_\+print}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+route\+\_\+print()} {\footnotesize\ttfamily const char$\ast$ osmo\+\_\+ss7\+\_\+route\+\_\+print (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$}]{rt }\end{DoxyParamCaption})} References osmo\+\_\+ss7\+\_\+instance\+::cfg, osmo\+\_\+ss7\+\_\+route\+::cfg, osmo\+\_\+ss7\+\_\+route\+\_\+table\+::inst, osmo\+\_\+ss7\+\_\+route\+::mask, osmo\+\_\+ss7\+\_\+pc\+\_\+width(), osmo\+\_\+ss7\+\_\+pointcode\+\_\+print(), osmo\+\_\+ss7\+\_\+pointcode\+\_\+print2(), osmo\+\_\+ss7\+\_\+route\+::pc, osmo\+\_\+ss7\+\_\+instance\+::pc\+\_\+fmt, osmo\+\_\+ss7\+\_\+route\+::rtable, and u32\+\_\+masklen(). Referenced by vty\+\_\+dump\+\_\+rtable(). \mbox{\label{osmo__ss7_8c_aa75722ad470c3d8981b765df9a3f5e97}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+destroy@{osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+destroy}} \index{osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+destroy@{osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+destroy}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+destroy()} {\footnotesize\ttfamily void osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+destroy (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table} $\ast$}]{rtbl }\end{DoxyParamCaption})} References osmo\+\_\+ss7\+\_\+route\+\_\+table\+::list. \mbox{\label{osmo__ss7_8c_a48db4af978f592bf1ec847aab78234f6}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+find@{osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+find}} \index{osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+find@{osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+find}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+find()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table}$\ast$ osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+find (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst, }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})} References osmo\+\_\+ss7\+\_\+route\+\_\+table\+::cfg, osmo\+\_\+ss7\+\_\+route\+\_\+table\+::list, osmo\+\_\+ss7\+\_\+route\+\_\+table\+::name, osmo\+\_\+ss7\+\_\+instance\+::rtable\+\_\+list, and ss7\+\_\+initialized. Referenced by osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+find\+\_\+or\+\_\+create(). \mbox{\label{osmo__ss7_8c_a9559e23d2267140ec6c35729234ced23}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+find\+\_\+or\+\_\+create@{osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+find\+\_\+or\+\_\+create}} \index{osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+find\+\_\+or\+\_\+create@{osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+find\+\_\+or\+\_\+create}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+find\+\_\+or\+\_\+create()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table}$\ast$ osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+find\+\_\+or\+\_\+create (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst, }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})} References osmo\+\_\+ss7\+\_\+route\+\_\+table\+::cfg, osmo\+\_\+ss7\+\_\+route\+\_\+table\+::inst, osmo\+\_\+ss7\+\_\+route\+\_\+table\+::list, L\+O\+G\+S\+S7, osmo\+\_\+ss7\+\_\+route\+\_\+table\+::name, osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+find(), osmo\+\_\+ss7\+\_\+route\+\_\+table\+::routes, osmo\+\_\+ss7\+\_\+instance\+::rtable\+\_\+list, and ss7\+\_\+initialized. Referenced by osmo\+\_\+ss7\+\_\+instance\+\_\+find\+\_\+or\+\_\+create(). \mbox{\label{osmo__ss7_8c_af325ee0eb2ff3e3df09cc7e49b6bb6b9}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+tmode\+\_\+from\+\_\+xua@{osmo\+\_\+ss7\+\_\+tmode\+\_\+from\+\_\+xua}} \index{osmo\+\_\+ss7\+\_\+tmode\+\_\+from\+\_\+xua@{osmo\+\_\+ss7\+\_\+tmode\+\_\+from\+\_\+xua}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+tmode\+\_\+from\+\_\+xua()} {\footnotesize\ttfamily enum \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+traffic\+\_\+mode} osmo\+\_\+ss7\+\_\+tmode\+\_\+from\+\_\+xua (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{in }\end{DoxyParamCaption})} References M3\+U\+A\+\_\+\+T\+M\+O\+D\+\_\+\+B\+C\+A\+ST, M3\+U\+A\+\_\+\+T\+M\+O\+D\+\_\+\+L\+O\+A\+D\+S\+H\+A\+RE, M3\+U\+A\+\_\+\+T\+M\+O\+D\+\_\+\+O\+V\+E\+R\+R\+I\+DE, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+\_\+\+T\+M\+O\+D\+\_\+\+B\+C\+A\+ST, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+\_\+\+T\+M\+O\+D\+\_\+\+L\+O\+A\+D\+S\+H\+A\+RE, and O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+\_\+\+T\+M\+O\+D\+\_\+\+O\+V\+E\+R\+R\+I\+DE. Referenced by handle\+\_\+rkey\+\_\+reg(), and xua\+\_\+asp\+\_\+fsm\+\_\+inactive(). \mbox{\label{osmo__ss7_8c_a41c5d0c1bcae4257834073d3c109f12c}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+tmode\+\_\+to\+\_\+xua@{osmo\+\_\+ss7\+\_\+tmode\+\_\+to\+\_\+xua}} \index{osmo\+\_\+ss7\+\_\+tmode\+\_\+to\+\_\+xua@{osmo\+\_\+ss7\+\_\+tmode\+\_\+to\+\_\+xua}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+tmode\+\_\+to\+\_\+xua()} {\footnotesize\ttfamily int osmo\+\_\+ss7\+\_\+tmode\+\_\+to\+\_\+xua (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+ss7\+\_\+as\+\_\+traffic\+\_\+mode}}]{tmod }\end{DoxyParamCaption})} References M3\+U\+A\+\_\+\+T\+M\+O\+D\+\_\+\+B\+C\+A\+ST, M3\+U\+A\+\_\+\+T\+M\+O\+D\+\_\+\+L\+O\+A\+D\+S\+H\+A\+RE, M3\+U\+A\+\_\+\+T\+M\+O\+D\+\_\+\+O\+V\+E\+R\+R\+I\+DE, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+\_\+\+T\+M\+O\+D\+\_\+\+B\+C\+A\+ST, O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+\_\+\+T\+M\+O\+D\+\_\+\+L\+O\+A\+D\+S\+H\+A\+RE, and O\+S\+M\+O\+\_\+\+S\+S7\+\_\+\+A\+S\+\_\+\+T\+M\+O\+D\+\_\+\+O\+V\+E\+R\+R\+I\+DE. Referenced by peer\+\_\+send(), and xua\+\_\+rkm\+\_\+send\+\_\+reg\+\_\+req(). \mbox{\label{osmo__ss7_8c_a22d4d3245ada246e0d50da10c9281d28}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+user\+\_\+register@{osmo\+\_\+ss7\+\_\+user\+\_\+register}} \index{osmo\+\_\+ss7\+\_\+user\+\_\+register@{osmo\+\_\+ss7\+\_\+user\+\_\+register}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+user\+\_\+register()} {\footnotesize\ttfamily int osmo\+\_\+ss7\+\_\+user\+\_\+register (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst, }\item[{uint8\+\_\+t}]{service\+\_\+ind, }\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+user} $\ast$}]{user }\end{DoxyParamCaption})} Register a M\+TP user for a given service indicator. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em inst} & S\+S7 instance for which we register the user \\ \hline \mbox{\tt in} & {\em service\+\_\+ind} & Service (I\+S\+UP, S\+C\+CP, ...) \\ \hline \mbox{\tt in} & {\em user} & S\+S7 user (including primitive call-\/back) \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} 0 on success; negative on error \end{DoxyReturn} References osmo\+\_\+ss7\+\_\+user\+::inst, osmo\+\_\+ss7\+\_\+user\+::name, osmo\+\_\+ss7\+\_\+user\+::priv, and osmo\+\_\+ss7\+\_\+instance\+::user. Referenced by osmo\+\_\+sccp\+\_\+instance\+\_\+create(). \mbox{\label{osmo__ss7_8c_a47b75b30c8c07818f2c67a28a3dc74c9}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+user\+\_\+unregister@{osmo\+\_\+ss7\+\_\+user\+\_\+unregister}} \index{osmo\+\_\+ss7\+\_\+user\+\_\+unregister@{osmo\+\_\+ss7\+\_\+user\+\_\+unregister}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+user\+\_\+unregister()} {\footnotesize\ttfamily int osmo\+\_\+ss7\+\_\+user\+\_\+unregister (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst, }\item[{uint8\+\_\+t}]{service\+\_\+ind, }\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+user} $\ast$}]{user }\end{DoxyParamCaption})} Unregister a M\+TP user for a given service indicator. \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em inst} & S\+S7 instance for which we register the user \\ \hline \mbox{\tt in} & {\em service\+\_\+ind} & Service (I\+S\+UP, S\+C\+CP, ...) \\ \hline \mbox{\tt in} & {\em user} & (optional) S\+S7 user. If present, we will not unregister other users \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} 0 on success; negative on error \end{DoxyReturn} References osmo\+\_\+ss7\+\_\+user\+::inst, and osmo\+\_\+ss7\+\_\+instance\+::user. Referenced by osmo\+\_\+sccp\+\_\+instance\+\_\+destroy(). \mbox{\label{osmo__ss7_8c_adeb2d43828fbd3f5eef853a9742001eb}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+xua\+\_\+server\+\_\+find@{osmo\+\_\+ss7\+\_\+xua\+\_\+server\+\_\+find}} \index{osmo\+\_\+ss7\+\_\+xua\+\_\+server\+\_\+find@{osmo\+\_\+ss7\+\_\+xua\+\_\+server\+\_\+find}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+xua\+\_\+server\+\_\+find()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+xua\+\_\+server}$\ast$ osmo\+\_\+ss7\+\_\+xua\+\_\+server\+\_\+find (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst, }\item[{enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol}}]{proto, }\item[{uint16\+\_\+t}]{local\+\_\+port }\end{DoxyParamCaption})} find an x\+UA server with the given parameters \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em inst} & S\+S7 Instance on which we operate \\ \hline \mbox{\tt in} & {\em proto} & protocol (x\+UA variant) in use \\ \hline \mbox{\tt in} & {\em local\+\_\+port} & local port of the server \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} \doxyref{osmo\+\_\+xua\+\_\+server}{p.}{structosmo__xua__server} or N\+U\+LL (not found) \end{DoxyReturn} References osmo\+\_\+ss7\+\_\+xua\+\_\+server\+\_\+find2(), ss7\+\_\+default\+\_\+trans\+\_\+proto\+\_\+for\+\_\+asp\+\_\+proto(), and osmo\+\_\+xua\+\_\+server\+::trans\+\_\+proto. \mbox{\label{osmo__ss7_8c_a365b41929114c3efdd1768426b456784}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!osmo\+\_\+ss7\+\_\+xua\+\_\+server\+\_\+find2@{osmo\+\_\+ss7\+\_\+xua\+\_\+server\+\_\+find2}} \index{osmo\+\_\+ss7\+\_\+xua\+\_\+server\+\_\+find2@{osmo\+\_\+ss7\+\_\+xua\+\_\+server\+\_\+find2}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{osmo\+\_\+ss7\+\_\+xua\+\_\+server\+\_\+find2()} {\footnotesize\ttfamily struct \textbf{ osmo\+\_\+xua\+\_\+server}$\ast$ osmo\+\_\+ss7\+\_\+xua\+\_\+server\+\_\+find2 (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst, }\item[{int}]{trans\+\_\+proto, }\item[{enum \textbf{ osmo\+\_\+ss7\+\_\+asp\+\_\+protocol}}]{proto, }\item[{uint16\+\_\+t}]{local\+\_\+port }\end{DoxyParamCaption})} find an x\+UA server with the given parameters \begin{DoxyParams}[1]{Parameters} \mbox{\tt in} & {\em inst} & S\+S7 Instance on which we operate \\ \hline \mbox{\tt in} & {\em trans\+\_\+proto} & transport protocol in use (one of I\+P\+P\+R\+O\+T\+O\+\_\+$\ast$) \\ \hline \mbox{\tt in} & {\em proto} & protocol (x\+UA variant) in use \\ \hline \mbox{\tt in} & {\em local\+\_\+port} & local port of the server \\ \hline \end{DoxyParams} \begin{DoxyReturn}{Returns} \doxyref{osmo\+\_\+xua\+\_\+server}{p.}{structosmo__xua__server} or N\+U\+LL (not found) \end{DoxyReturn} References osmo\+\_\+xua\+\_\+server\+::cfg, osmo\+\_\+xua\+\_\+server\+::list, osmo\+\_\+xua\+\_\+server\+::local, osmo\+\_\+ss7\+\_\+asp\+\_\+peer\+::port, osmo\+\_\+xua\+\_\+server\+::proto, ss7\+\_\+initialized, osmo\+\_\+xua\+\_\+server\+::trans\+\_\+proto, and osmo\+\_\+ss7\+\_\+instance\+::xua\+\_\+servers. Referenced by D\+E\+F\+U\+N\+\_\+\+A\+T\+T\+R(), osmo\+\_\+sccp\+\_\+simple\+\_\+client\+\_\+on\+\_\+ss7\+\_\+id(), osmo\+\_\+sccp\+\_\+simple\+\_\+server\+\_\+add\+\_\+clnt(), and osmo\+\_\+ss7\+\_\+xua\+\_\+server\+\_\+find(). \mbox{\label{osmo__ss7_8c_a505d8cbb59e414f24d56a83a29799a42}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!pc\+\_\+comp\+\_\+shift\+\_\+and\+\_\+mask@{pc\+\_\+comp\+\_\+shift\+\_\+and\+\_\+mask}} \index{pc\+\_\+comp\+\_\+shift\+\_\+and\+\_\+mask@{pc\+\_\+comp\+\_\+shift\+\_\+and\+\_\+mask}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{pc\+\_\+comp\+\_\+shift\+\_\+and\+\_\+mask()} {\footnotesize\ttfamily static uint32\+\_\+t pc\+\_\+comp\+\_\+shift\+\_\+and\+\_\+mask (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} $\ast$}]{pc\+\_\+fmt, }\item[{unsigned int}]{comp\+\_\+num, }\item[{uint32\+\_\+t}]{pc }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References osmo\+\_\+ss7\+\_\+pc\+\_\+fmt\+::component\+\_\+len, and get\+\_\+pc\+\_\+comp\+\_\+shift(). Referenced by osmo\+\_\+ss7\+\_\+pointcode\+\_\+print\+\_\+buf(). \mbox{\label{osmo__ss7_8c_ad0a6fd14ffd12426244051823c5af2d2}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!route\+\_\+insert\+\_\+sorted@{route\+\_\+insert\+\_\+sorted}} \index{route\+\_\+insert\+\_\+sorted@{route\+\_\+insert\+\_\+sorted}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{route\+\_\+insert\+\_\+sorted()} {\footnotesize\ttfamily static void route\+\_\+insert\+\_\+sorted (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+route\+\_\+table} $\ast$}]{rtbl, }\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+route} $\ast$}]{cmp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References osmo\+\_\+ss7\+\_\+route\+::cfg, osmo\+\_\+ss7\+\_\+route\+::list, osmo\+\_\+ss7\+\_\+route\+::mask, and osmo\+\_\+ss7\+\_\+route\+\_\+table\+::routes. Referenced by osmo\+\_\+ss7\+\_\+route\+\_\+create(). \mbox{\label{osmo__ss7_8c_a6ecdf4b66511e0d65caedeab81f3f4d3}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!ss7\+\_\+find\+\_\+free\+\_\+l\+\_\+rk\+\_\+id@{ss7\+\_\+find\+\_\+free\+\_\+l\+\_\+rk\+\_\+id}} \index{ss7\+\_\+find\+\_\+free\+\_\+l\+\_\+rk\+\_\+id@{ss7\+\_\+find\+\_\+free\+\_\+l\+\_\+rk\+\_\+id}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{ss7\+\_\+find\+\_\+free\+\_\+l\+\_\+rk\+\_\+id()} {\footnotesize\ttfamily uint32\+\_\+t ss7\+\_\+find\+\_\+free\+\_\+l\+\_\+rk\+\_\+id (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})} References next\+\_\+l\+\_\+rk\+\_\+id, and osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+l\+\_\+rk\+\_\+id(). Referenced by ss7\+\_\+as\+\_\+alloc(). \mbox{\label{osmo__ss7_8c_a477fa52a1c6b284e17f273c52dbb594c}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!ss7\+\_\+ipv6\+\_\+sctp\+\_\+supported@{ss7\+\_\+ipv6\+\_\+sctp\+\_\+supported}} \index{ss7\+\_\+ipv6\+\_\+sctp\+\_\+supported@{ss7\+\_\+ipv6\+\_\+sctp\+\_\+supported}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{ss7\+\_\+ipv6\+\_\+sctp\+\_\+supported()} {\footnotesize\ttfamily bool ss7\+\_\+ipv6\+\_\+sctp\+\_\+supported (\begin{DoxyParamCaption}\item[{const char $\ast$}]{host, }\item[{bool}]{bind }\end{DoxyParamCaption})} Referenced by ss7\+\_\+asp\+\_\+set\+\_\+default\+\_\+peer\+\_\+hosts(), and ss7\+\_\+xua\+\_\+server\+\_\+set\+\_\+default\+\_\+local\+\_\+hosts(). \mbox{\label{osmo__ss7_8c_afadad76c76c0630eed4b7a10b68f2b7c}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!strnappendchar@{strnappendchar}} \index{strnappendchar@{strnappendchar}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{strnappendchar()} {\footnotesize\ttfamily static int strnappendchar (\begin{DoxyParamCaption}\item[{char $\ast$}]{str, }\item[{char}]{c, }\item[{size\+\_\+t}]{n }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} Referenced by gen\+\_\+pc\+\_\+fmtstr(). \mbox{\label{osmo__ss7_8c_a70c376cdc3ffe5d124ae90fd86f9c491}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!u32\+\_\+masklen@{u32\+\_\+masklen}} \index{u32\+\_\+masklen@{u32\+\_\+masklen}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{u32\+\_\+masklen()} {\footnotesize\ttfamily static int u32\+\_\+masklen (\begin{DoxyParamCaption}\item[{uint32\+\_\+t}]{mask, }\item[{unsigned int}]{nbits }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [static]}} References count\+\_\+leading\+\_\+one\+\_\+bits(). Referenced by osmo\+\_\+ss7\+\_\+route\+\_\+print(). \subsection{Variable Documentation} \mbox{\label{osmo__ss7_8c_a7e710ac37bf4c2d56a17e65086ec9684}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!default\+\_\+pc\+\_\+fmt@{default\+\_\+pc\+\_\+fmt}} \index{default\+\_\+pc\+\_\+fmt@{default\+\_\+pc\+\_\+fmt}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{default\+\_\+pc\+\_\+fmt} {\footnotesize\ttfamily const struct \textbf{ osmo\+\_\+ss7\+\_\+pc\+\_\+fmt} default\+\_\+pc\+\_\+fmt\hspace{0.3cm}{\ttfamily [static]}} {\bfseries Initial value\+:} \begin{DoxyCode} = \{ .delimiter = \textcolor{charliteral}{'.'}, .component\_len = \{ 3, 8, 3\}, \} \end{DoxyCode} Referenced by osmo\+\_\+ss7\+\_\+pointcode\+\_\+parse(), and osmo\+\_\+ss7\+\_\+pointcode\+\_\+print\+\_\+buf(). \mbox{\label{osmo__ss7_8c_aa7ef388acf6473b86619b4eea1ce9654}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!mtp\+\_\+unavail\+\_\+cause\+\_\+vals@{mtp\+\_\+unavail\+\_\+cause\+\_\+vals}} \index{mtp\+\_\+unavail\+\_\+cause\+\_\+vals@{mtp\+\_\+unavail\+\_\+cause\+\_\+vals}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{mtp\+\_\+unavail\+\_\+cause\+\_\+vals} {\footnotesize\ttfamily const struct value\+\_\+string mtp\+\_\+unavail\+\_\+cause\+\_\+vals[$\,$]} {\bfseries Initial value\+:} \begin{DoxyCode} = \{ \{ MTP_UNAVAIL_C_UNKNOWN, \textcolor{stringliteral}{"unknown"} \}, \{ MTP_UNAVAIL_C_UNEQUIP_REM_USER, \textcolor{stringliteral}{"unequipped-remote-user"} \}, \{ MTP_UNAVAIL_C_INACC_REM_USER, \textcolor{stringliteral}{"inaccessible-remote-user"} \}, \{ 0, NULL \} \} \end{DoxyCode} Referenced by mtp\+\_\+unavail\+\_\+cause\+\_\+str(). \mbox{\label{osmo__ss7_8c_a82b1fae92faad2df658d676f19203112}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!next\+\_\+l\+\_\+rk\+\_\+id@{next\+\_\+l\+\_\+rk\+\_\+id}} \index{next\+\_\+l\+\_\+rk\+\_\+id@{next\+\_\+l\+\_\+rk\+\_\+id}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{next\+\_\+l\+\_\+rk\+\_\+id} {\footnotesize\ttfamily int32\+\_\+t next\+\_\+l\+\_\+rk\+\_\+id = 1\hspace{0.3cm}{\ttfamily [static]}} Referenced by ss7\+\_\+find\+\_\+free\+\_\+l\+\_\+rk\+\_\+id(). \mbox{\label{osmo__ss7_8c_ac371d9ef3ce4d17cd66e9f4446879ffc}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!next\+\_\+rctx@{next\+\_\+rctx}} \index{next\+\_\+rctx@{next\+\_\+rctx}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{next\+\_\+rctx} {\footnotesize\ttfamily int32\+\_\+t next\+\_\+rctx = 1\hspace{0.3cm}{\ttfamily [static]}} Referenced by osmo\+\_\+ss7\+\_\+find\+\_\+free\+\_\+rctx(). \mbox{\label{osmo__ss7_8c_a78806f653f55e3d87d93650a55b5f70a}} \index{osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}!ss7\+\_\+initialized@{ss7\+\_\+initialized}} \index{ss7\+\_\+initialized@{ss7\+\_\+initialized}!osmo\+\_\+ss7.\+c@{osmo\+\_\+ss7.\+c}} \subsubsection{ss7\+\_\+initialized} {\footnotesize\ttfamily bool ss7\+\_\+initialized = false} Referenced by osmo\+\_\+ss7\+\_\+as\+\_\+add\+\_\+asp(), osmo\+\_\+ss7\+\_\+as\+\_\+del\+\_\+asp(), osmo\+\_\+ss7\+\_\+as\+\_\+destroy(), osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+l\+\_\+rk\+\_\+id(), osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+name(), osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+proto(), osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+by\+\_\+rctx(), osmo\+\_\+ss7\+\_\+as\+\_\+find\+\_\+or\+\_\+create(), osmo\+\_\+ss7\+\_\+as\+\_\+has\+\_\+asp(), osmo\+\_\+ss7\+\_\+asp\+\_\+destroy(), osmo\+\_\+ss7\+\_\+asp\+\_\+find2(), osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+name(), osmo\+\_\+ss7\+\_\+asp\+\_\+find\+\_\+or\+\_\+create2(), osmo\+\_\+ss7\+\_\+asp\+\_\+restart(), osmo\+\_\+ss7\+\_\+asp\+\_\+send(), osmo\+\_\+ss7\+\_\+init(), osmo\+\_\+ss7\+\_\+instance\+\_\+destroy(), osmo\+\_\+ss7\+\_\+instance\+\_\+find(), osmo\+\_\+ss7\+\_\+instance\+\_\+find\+\_\+or\+\_\+create(), osmo\+\_\+ss7\+\_\+link\+\_\+destroy(), osmo\+\_\+ss7\+\_\+link\+\_\+find\+\_\+or\+\_\+create(), osmo\+\_\+ss7\+\_\+linkset\+\_\+destroy(), osmo\+\_\+ss7\+\_\+linkset\+\_\+find\+\_\+by\+\_\+name(), osmo\+\_\+ss7\+\_\+linkset\+\_\+find\+\_\+or\+\_\+create(), osmo\+\_\+ss7\+\_\+pc\+\_\+is\+\_\+local(), osmo\+\_\+ss7\+\_\+route\+\_\+create(), osmo\+\_\+ss7\+\_\+route\+\_\+destroy(), osmo\+\_\+ss7\+\_\+route\+\_\+find\+\_\+dpc(), osmo\+\_\+ss7\+\_\+route\+\_\+find\+\_\+dpc\+\_\+mask(), osmo\+\_\+ss7\+\_\+route\+\_\+lookup(), osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+find(), osmo\+\_\+ss7\+\_\+route\+\_\+table\+\_\+find\+\_\+or\+\_\+create(), osmo\+\_\+ss7\+\_\+xua\+\_\+server\+\_\+create2(), osmo\+\_\+ss7\+\_\+xua\+\_\+server\+\_\+find2(), osmo\+\_\+ss7\+\_\+xua\+\_\+server\+\_\+set\+\_\+local\+\_\+hosts(), and ss7\+\_\+asp\+\_\+find\+\_\+by\+\_\+socket\+\_\+addr().