\doxysection{include/osmocom/sigtran/sccp\+\_\+sap.h File Reference}
\label{sccp__sap_8h}\index{include/osmocom/sigtran/sccp\_sap.h@{include/osmocom/sigtran/sccp\_sap.h}}
{\ttfamily \#include $<$stdint.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/prim.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/sigtran/sigtran\+\_\+sap.\+h$>$}\newline
{\ttfamily \#include $<$netinet/in.\+h$>$}\newline
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ osmo\+\_\+sccp\+\_\+gt}
\item 
struct \textbf{ osmo\+\_\+sccp\+\_\+addr}
\item 
struct \textbf{ osmo\+\_\+scu\+\_\+connect\+\_\+param}
\item 
struct \textbf{ osmo\+\_\+scu\+\_\+data\+\_\+param}
\item 
struct \textbf{ osmo\+\_\+scu\+\_\+disconn\+\_\+param}
\item 
struct \textbf{ osmo\+\_\+scu\+\_\+reset\+\_\+param}
\item 
struct \textbf{ osmo\+\_\+scu\+\_\+unitdata\+\_\+param}
\item 
struct \textbf{ osmo\+\_\+scu\+\_\+notice\+\_\+param}
\item 
struct \textbf{ osmo\+\_\+scu\+\_\+state\+\_\+param}
\item 
struct \textbf{ osmo\+\_\+scu\+\_\+pcstate\+\_\+param}
\item 
struct \textbf{ osmo\+\_\+scu\+\_\+prim}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+GT}~0x0001 /$\ast$ global title $\ast$/
\item 
\#define \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+PC}~0x0002 /$\ast$ signalling point code $\ast$/
\item 
\#define \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+SSN}~0x0004 /$\ast$ subsystem number $\ast$/
\item 
\#define \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+IPv4}~0x0008
\item 
\#define \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+IPv6}~0x0010
\item 
\#define \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+MASK}~0x001f
\item 
\#define \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+SMLC\+\_\+\+BSSAP}~\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+SMLC\+\_\+\+BSSAP\+\_\+\+LE}
\item 
\#define \textbf{ OSMO\+\_\+\+SCU\+\_\+\+UNITDATA\+\_\+\+REQ\+\_\+\+P\+\_\+\+SEQUENCE\+\_\+\+CONTROL\+\_\+\+NOT\+\_\+\+PRESENT}~0xffffffff
\item 
\#define \textbf{ msgb\+\_\+scu\+\_\+prim}(msg)~((struct \textbf{ osmo\+\_\+scu\+\_\+prim} $\ast$)(msg)-\/$>$l1h)
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \textbf{ osmo\+\_\+scu\+\_\+prim\+\_\+type} \{ \newline
\textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+CONNECT}
, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+DATA}
, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+EXPEDITED\+\_\+\+DATA}
, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+DISCONNECT}
, \newline
\textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+RESET}
, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+INFORM}
, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+UNITDATA}
, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+NOTICE}
, \newline
\textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+COORD}
, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+STATE}
, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+PCSTATE}
 \}
\begin{DoxyCompactList}\small\item\em SCCP-\/\+User primitives as per Q.\+711. \end{DoxyCompactList}\item 
enum \textbf{ osmo\+\_\+sccp\+\_\+routing\+\_\+ind} \{ \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+RI\+\_\+\+NONE}
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+RI\+\_\+\+GT}
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+RI\+\_\+\+SSN\+\_\+\+PC}
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+RI\+\_\+\+SSN\+\_\+\+IP}
 \}
\item 
enum \textbf{ osmo\+\_\+sccp\+\_\+gti} \{ \newline
\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+GTI\+\_\+\+NO\+\_\+\+GT}
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+GTI\+\_\+\+NAI\+\_\+\+ONLY}
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+GTI\+\_\+\+TT\+\_\+\+ONLY}
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+GTI\+\_\+\+TT\+\_\+\+NPL\+\_\+\+ENC}
, \newline
\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+GTI\+\_\+\+TT\+\_\+\+NPL\+\_\+\+ENC\+\_\+\+NAI}
 \}
\item 
enum \textbf{ osmo\+\_\+sccp\+\_\+npi} \{ \newline
\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+NPI\+\_\+\+UNKNOWN} = 0
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+NPI\+\_\+\+E164\+\_\+\+ISDN} = 1
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+NPI\+\_\+\+GEERIC} = 2
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+NPI\+\_\+\+X121\+\_\+\+DATA} = 3
, \newline
\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+NPI\+\_\+\+F69\+\_\+\+TELEX} = 4
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+NPI\+\_\+\+E210\+\_\+\+MARITIME} = 5
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+NPI\+\_\+\+E212\+\_\+\+LAND} = 6
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+NPI\+\_\+\+E214\+\_\+\+ISDN\+\_\+\+MOBILE} = 7
, \newline
\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+NPI\+\_\+\+PRIVATE} = 14
 \}
\item 
enum \textbf{ osmo\+\_\+sccp\+\_\+nai} \{ \newline
\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+NAI\+\_\+\+UNKNOWN} = 0
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+NAI\+\_\+\+SUBSCR} = 1
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+NAI\+\_\+\+RES\+\_\+\+NAT\+\_\+\+USE} = 2
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+NAI\+\_\+\+NATL} = 3
, \newline
\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+NAI\+\_\+\+INTL} = 4
 \}
\item 
enum \textbf{ osmo\+\_\+sccp\+\_\+ssn} \{ \newline
\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+MGMT} = 1
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+ISUP} = 3
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+OMAP} = 4
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+MAP} = 5
, \newline
\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+HLR} = 6
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+VLR} = 7
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+MSC} = 8
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+EIR} = 9
, \newline
\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+AUC} = 0x0a
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+ISDN\+\_\+\+SS} = 0x0b
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+RES\+\_\+\+INTL} = 0x0c
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+BISDN} = 0x0d
, \newline
\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+TC\+\_\+\+TEST} = 0x0e
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+RANAP} = 142
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+RNSAP} = 143
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+GMLC\+\_\+\+MAP} = 145
, \newline
\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+CAP} = 146
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+gsm\+SCF\+\_\+\+MAP} = 147
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+SIWF\+\_\+\+MAP} = 148
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+SGSN\+\_\+\+MAP} = 149
, \newline
\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+GGSN\+\_\+\+MAP} = 150
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+PCAP} = 249
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+BSC\+\_\+\+BSSAP\+\_\+\+LE} = 250
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+MSC\+\_\+\+BSSAP\+\_\+\+LE} = 251
, \newline
\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+SMLC\+\_\+\+BSSAP\+\_\+\+LE} = 252
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+BSS\+\_\+\+OAM} = 253
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+BSSAP} = 254
 \}
\item 
enum \textbf{ osmo\+\_\+sccp\+\_\+sp\+\_\+status} \{ \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SP\+\_\+\+S\+\_\+\+INACCESSIBLE} = 1
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SP\+\_\+\+S\+\_\+\+CONGESTED} = 2
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SP\+\_\+\+S\+\_\+\+ACCESSIBLE} = 3
 \}
\item 
enum \textbf{ osmo\+\_\+sccp\+\_\+rem\+\_\+sccp\+\_\+status} \{ \newline
\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+REM\+\_\+\+SCCP\+\_\+\+S\+\_\+\+AVAILABLE} = 1
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+REM\+\_\+\+SCCP\+\_\+\+S\+\_\+\+UNAVAILABLE\+\_\+\+UNKNOWN} = 2
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+REM\+\_\+\+SCCP\+\_\+\+S\+\_\+\+UNEQUIPPED} = 3
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+REM\+\_\+\+SCCP\+\_\+\+S\+\_\+\+INACCESSIBLE} = 4
, \newline
\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+REM\+\_\+\+SCCP\+\_\+\+S\+\_\+\+CONGESTED} = 5
 \}
\item 
enum \textbf{ osmo\+\_\+sccp\+\_\+originator} \{ \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ORIG\+\_\+\+NS\+\_\+\+PROVIDER}
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ORIG\+\_\+\+NS\+\_\+\+USER}
, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ORIG\+\_\+\+UNDEFINED}
 \}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
static const char $\ast$ \textbf{ osmo\+\_\+sccp\+\_\+routing\+\_\+ind\+\_\+name} (enum \textbf{ osmo\+\_\+sccp\+\_\+routing\+\_\+ind} val)
\item 
static const char $\ast$ \textbf{ osmo\+\_\+sccp\+\_\+gti\+\_\+name} (enum \textbf{ osmo\+\_\+sccp\+\_\+gti} val)
\item 
static const char $\ast$ \textbf{ osmo\+\_\+sccp\+\_\+sp\+\_\+status\+\_\+name} (enum \textbf{ osmo\+\_\+sccp\+\_\+sp\+\_\+status} val)
\item 
static const char $\ast$ \textbf{ osmo\+\_\+sccp\+\_\+rem\+\_\+sccp\+\_\+status\+\_\+name} (enum \textbf{ osmo\+\_\+sccp\+\_\+rem\+\_\+sccp\+\_\+status} val)
\item 
static const char $\ast$ \textbf{ osmo\+\_\+sccp\+\_\+ssn\+\_\+name} (enum \textbf{ osmo\+\_\+sccp\+\_\+ssn} val)
\item 
static const char $\ast$ \textbf{ osmo\+\_\+scu\+\_\+prim\+\_\+type\+\_\+name} (enum \textbf{ osmo\+\_\+scu\+\_\+prim\+\_\+type} val)
\item 
int \textbf{ osmo\+\_\+scu\+\_\+prim\+\_\+hdr\+\_\+name\+\_\+buf} (char $\ast$buf, size\+\_\+t buflen, const struct osmo\+\_\+prim\+\_\+hdr $\ast$oph)
\item 
char $\ast$ \textbf{ osmo\+\_\+scu\+\_\+prim\+\_\+hdr\+\_\+name\+\_\+c} (void $\ast$ctx, const struct osmo\+\_\+prim\+\_\+hdr $\ast$oph)
\item 
char $\ast$ \textbf{ osmo\+\_\+scu\+\_\+prim\+\_\+name} (const struct osmo\+\_\+prim\+\_\+hdr $\ast$oph)
\item 
void \textbf{ osmo\+\_\+sccp\+\_\+vty\+\_\+init} (void)
\item 
struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$ \textbf{ osmo\+\_\+sccp\+\_\+instance\+\_\+create} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$ss7, void $\ast$priv)
\begin{DoxyCompactList}\small\item\em create a SCCP Instance and register it as user with SS7 inst \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+sccp\+\_\+instance\+\_\+destroy} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst)
\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$ \textbf{ osmo\+\_\+sccp\+\_\+get\+\_\+ss7} (const struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$sccp)
\begin{DoxyCompactList}\small\item\em get the SS7 instance that is related to the given SCCP instance \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$ \textbf{ osmo\+\_\+sccp\+\_\+get\+\_\+sccp} (const struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$scu)
\begin{DoxyCompactList}\small\item\em get the SCCP instance that is related to the given sccp user \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+sccp\+\_\+set\+\_\+priv} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$sccp, void $\ast$priv)
\item 
void $\ast$ \textbf{ osmo\+\_\+sccp\+\_\+get\+\_\+priv} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$sccp)
\item 
void \textbf{ osmo\+\_\+sccp\+\_\+user\+\_\+unbind} (struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$scu)
\begin{DoxyCompactList}\small\item\em Unbind a given SCCP user. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+sccp\+\_\+user\+\_\+set\+\_\+priv} (struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$scu, void $\ast$priv)
\item 
void $\ast$ \textbf{ osmo\+\_\+sccp\+\_\+user\+\_\+get\+\_\+priv} (struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$scu)
\item 
struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$ \textbf{ osmo\+\_\+sccp\+\_\+user\+\_\+bind\+\_\+pc} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, const char $\ast$name, osmo\+\_\+prim\+\_\+cb prim\+\_\+cb, uint16\+\_\+t \textbf{ ssn}, uint32\+\_\+t \textbf{ pc})
\begin{DoxyCompactList}\small\item\em Bind a given SCCP User to a given SSN+\+PC. \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$ \textbf{ osmo\+\_\+sccp\+\_\+user\+\_\+bind} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, const char $\ast$name, osmo\+\_\+prim\+\_\+cb prim\+\_\+cb, uint16\+\_\+t \textbf{ ssn})
\begin{DoxyCompactList}\small\item\em Bind a given SCCP User to a given SSN (at any PC) \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$ \textbf{ osmo\+\_\+sccp\+\_\+user\+\_\+find} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, uint16\+\_\+t \textbf{ ssn}, uint32\+\_\+t \textbf{ pc})
\begin{DoxyCompactList}\small\item\em Find a SCCP User registered for given PC+\+SSN or SSN only. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+sccp\+\_\+user\+\_\+sap\+\_\+down} (struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$scu, struct osmo\+\_\+prim\+\_\+hdr $\ast$oph)
\begin{DoxyCompactList}\small\item\em Main entrance function for primitives from SCCP User. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+sccp\+\_\+user\+\_\+sap\+\_\+down\+\_\+nofree} (struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$scu, struct osmo\+\_\+prim\+\_\+hdr $\ast$oph)
\begin{DoxyCompactList}\small\item\em Main entrance function for primitives from SCCP User. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+create} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$name, const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$dest\+\_\+addr)
\begin{DoxyCompactList}\small\item\em Add an SCCP address entry to the addressbook. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+update} (struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst, const char $\ast$name, const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$dest\+\_\+addr)
\begin{DoxyCompactList}\small\item\em Update the value of an SCCP address entry already present in the addressbook. \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$ \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+by\+\_\+name} (struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$dest\+\_\+addr, const char $\ast$name)
\begin{DoxyCompactList}\small\item\em Lookup an SCCP address from the addressbook by its name. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+by\+\_\+name\+\_\+local} (struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$dest\+\_\+addr, const char $\ast$name, const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$inst)
\begin{DoxyCompactList}\small\item\em Lookup an SCCP address from the addressbook of a specific instance by its name. \end{DoxyCompactList}\item 
const char $\ast$ \textbf{ osmo\+\_\+sccp\+\_\+name\+\_\+by\+\_\+addr} (const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$addr)
\begin{DoxyCompactList}\small\item\em Reverse lookup the lookup-\/name of a specified SCCP address. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+sccp\+\_\+local\+\_\+addr\+\_\+by\+\_\+instance} (struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$dest\+\_\+addr, const struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$inst, uint32\+\_\+t \textbf{ ssn})
\begin{DoxyCompactList}\small\item\em derive a basic local SCCP-\/\+Address from a given SCCP instance. \end{DoxyCompactList}\item 
bool \textbf{ osmo\+\_\+sccp\+\_\+check\+\_\+addr} (struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$addr, uint32\+\_\+t presence)
\begin{DoxyCompactList}\small\item\em check whether a given SCCP-\/\+Address is consistent. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+cmp} (const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$a, const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$b, uint32\+\_\+t presence\+\_\+criteria)
\begin{DoxyCompactList}\small\item\em Compare two SCCP addresses by given presence criteria. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+ri\+\_\+cmp} (const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$a, const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$b)
\begin{DoxyCompactList}\small\item\em Compare the routing information of two SCCP addresses. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+sccp\+\_\+gt\+\_\+cmp} (const struct \textbf{ osmo\+\_\+sccp\+\_\+gt} $\ast$a, const struct \textbf{ osmo\+\_\+sccp\+\_\+gt} $\ast$b)
\begin{DoxyCompactList}\small\item\em Compare two SCCP Global Titles. \end{DoxyCompactList}\item 
const char $\ast$ \textbf{ osmo\+\_\+sccp\+\_\+user\+\_\+name} (struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$scu)
\begin{DoxyCompactList}\small\item\em Compose a human readable string to describe the SCCP user\textquotesingle{}s connection. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+sccp\+\_\+instance\+\_\+next\+\_\+conn\+\_\+id} (struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$sccp)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
const struct value\+\_\+string \textbf{ osmo\+\_\+sccp\+\_\+routing\+\_\+ind\+\_\+names} [$\,$]
\item 
const struct value\+\_\+string \textbf{ osmo\+\_\+sccp\+\_\+gti\+\_\+names} [$\,$]
\item 
const struct value\+\_\+string \textbf{ osmo\+\_\+sccp\+\_\+sp\+\_\+status\+\_\+names} [$\,$]
\item 
const struct value\+\_\+string \textbf{ osmo\+\_\+sccp\+\_\+rem\+\_\+sccp\+\_\+status\+\_\+names} [$\,$]
\item 
const struct value\+\_\+string \textbf{ osmo\+\_\+sccp\+\_\+ssn\+\_\+names} [$\,$]
\item 
const struct value\+\_\+string \textbf{ osmo\+\_\+scu\+\_\+prim\+\_\+type\+\_\+names} [$\,$]
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\label{sccp__sap_8h_a51b5e3bcdfaaa908ebf7a15846fd9506}} 
\index{sccp\_sap.h@{sccp\_sap.h}!msgb\_scu\_prim@{msgb\_scu\_prim}}
\index{msgb\_scu\_prim@{msgb\_scu\_prim}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{msgb\_scu\_prim}
{\footnotesize\ttfamily \#define msgb\+\_\+scu\+\_\+prim(\begin{DoxyParamCaption}\item[{}]{msg }\end{DoxyParamCaption})~((struct \textbf{ osmo\+\_\+scu\+\_\+prim} $\ast$)(msg)-\/$>$l1h)}

\mbox{\label{sccp__sap_8h_a027faacb50966d4e92e0503029826c04}} 
\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_ADDR\_T\_GT@{OSMO\_SCCP\_ADDR\_T\_GT}}
\index{OSMO\_SCCP\_ADDR\_T\_GT@{OSMO\_SCCP\_ADDR\_T\_GT}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{OSMO\_SCCP\_ADDR\_T\_GT}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+GT~0x0001 /$\ast$ global title $\ast$/}

\mbox{\label{sccp__sap_8h_a613b20d0d87c4ae6818191f52528d81c}} 
\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_ADDR\_T\_IPv4@{OSMO\_SCCP\_ADDR\_T\_IPv4}}
\index{OSMO\_SCCP\_ADDR\_T\_IPv4@{OSMO\_SCCP\_ADDR\_T\_IPv4}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{OSMO\_SCCP\_ADDR\_T\_IPv4}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+IPv4~0x0008}

\mbox{\label{sccp__sap_8h_ac2c76564697e55f4e79e30b55a2208a2}} 
\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_ADDR\_T\_IPv6@{OSMO\_SCCP\_ADDR\_T\_IPv6}}
\index{OSMO\_SCCP\_ADDR\_T\_IPv6@{OSMO\_SCCP\_ADDR\_T\_IPv6}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{OSMO\_SCCP\_ADDR\_T\_IPv6}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+IPv6~0x0010}

\mbox{\label{sccp__sap_8h_a087e6207191f292fb4a166f6dbb9d619}} 
\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_ADDR\_T\_MASK@{OSMO\_SCCP\_ADDR\_T\_MASK}}
\index{OSMO\_SCCP\_ADDR\_T\_MASK@{OSMO\_SCCP\_ADDR\_T\_MASK}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{OSMO\_SCCP\_ADDR\_T\_MASK}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+MASK~0x001f}

\mbox{\label{sccp__sap_8h_a94365eaf81e21fc6de2bc883a389fea8}} 
\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_ADDR\_T\_PC@{OSMO\_SCCP\_ADDR\_T\_PC}}
\index{OSMO\_SCCP\_ADDR\_T\_PC@{OSMO\_SCCP\_ADDR\_T\_PC}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{OSMO\_SCCP\_ADDR\_T\_PC}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+PC~0x0002 /$\ast$ signalling point code $\ast$/}

\mbox{\label{sccp__sap_8h_a976574212c259139669d5647752e286e}} 
\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_ADDR\_T\_SSN@{OSMO\_SCCP\_ADDR\_T\_SSN}}
\index{OSMO\_SCCP\_ADDR\_T\_SSN@{OSMO\_SCCP\_ADDR\_T\_SSN}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{OSMO\_SCCP\_ADDR\_T\_SSN}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+SSN~0x0004 /$\ast$ subsystem number $\ast$/}

\mbox{\label{sccp__sap_8h_a84633307508223cbc6109173cf998f8f}} 
\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_SMLC\_BSSAP@{OSMO\_SCCP\_SSN\_SMLC\_BSSAP}}
\index{OSMO\_SCCP\_SSN\_SMLC\_BSSAP@{OSMO\_SCCP\_SSN\_SMLC\_BSSAP}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{OSMO\_SCCP\_SSN\_SMLC\_BSSAP}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+SMLC\+\_\+\+BSSAP~\textbf{ OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+SMLC\+\_\+\+BSSAP\+\_\+\+LE}}

\mbox{\label{sccp__sap_8h_a0c7bb95bcef403bb312420a266eca7f6}} 
\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCU\_UNITDATA\_REQ\_P\_SEQUENCE\_CONTROL\_NOT\_PRESENT@{OSMO\_SCU\_UNITDATA\_REQ\_P\_SEQUENCE\_CONTROL\_NOT\_PRESENT}}
\index{OSMO\_SCU\_UNITDATA\_REQ\_P\_SEQUENCE\_CONTROL\_NOT\_PRESENT@{OSMO\_SCU\_UNITDATA\_REQ\_P\_SEQUENCE\_CONTROL\_NOT\_PRESENT}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{OSMO\_SCU\_UNITDATA\_REQ\_P\_SEQUENCE\_CONTROL\_NOT\_PRESENT}
{\footnotesize\ttfamily \#define OSMO\+\_\+\+SCU\+\_\+\+UNITDATA\+\_\+\+REQ\+\_\+\+P\+\_\+\+SEQUENCE\+\_\+\+CONTROL\+\_\+\+NOT\+\_\+\+PRESENT~0xffffffff}



\doxysubsection{Enumeration Type Documentation}
\mbox{\label{sccp__sap_8h_a49e6fdb7b5e0de1886d06a45f9cba18e}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_gti@{osmo\_sccp\_gti}}
\index{osmo\_sccp\_gti@{osmo\_sccp\_gti}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_gti}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+sccp\+\_\+gti}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_GTI\_NO\_GT@{OSMO\_SCCP\_GTI\_NO\_GT}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_GTI\_NO\_GT@{OSMO\_SCCP\_GTI\_NO\_GT}}}\mbox{\label{sccp__sap_8h_a49e6fdb7b5e0de1886d06a45f9cba18eaf068c2c9887cc960213128dcca3f3482}} 
OSMO\+\_\+\+SCCP\+\_\+\+GTI\+\_\+\+NO\+\_\+\+GT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_GTI\_NAI\_ONLY@{OSMO\_SCCP\_GTI\_NAI\_ONLY}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_GTI\_NAI\_ONLY@{OSMO\_SCCP\_GTI\_NAI\_ONLY}}}\mbox{\label{sccp__sap_8h_a49e6fdb7b5e0de1886d06a45f9cba18ea0e183b3d35d6fca2330dec196836d684}} 
OSMO\+\_\+\+SCCP\+\_\+\+GTI\+\_\+\+NAI\+\_\+\+ONLY&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_GTI\_TT\_ONLY@{OSMO\_SCCP\_GTI\_TT\_ONLY}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_GTI\_TT\_ONLY@{OSMO\_SCCP\_GTI\_TT\_ONLY}}}\mbox{\label{sccp__sap_8h_a49e6fdb7b5e0de1886d06a45f9cba18ea469e1f170d5b09b6b2b1211b67e2bc9c}} 
OSMO\+\_\+\+SCCP\+\_\+\+GTI\+\_\+\+TT\+\_\+\+ONLY&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_GTI\_TT\_NPL\_ENC@{OSMO\_SCCP\_GTI\_TT\_NPL\_ENC}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_GTI\_TT\_NPL\_ENC@{OSMO\_SCCP\_GTI\_TT\_NPL\_ENC}}}\mbox{\label{sccp__sap_8h_a49e6fdb7b5e0de1886d06a45f9cba18ea521a558053686ed99fcc5b180e0624db}} 
OSMO\+\_\+\+SCCP\+\_\+\+GTI\+\_\+\+TT\+\_\+\+NPL\+\_\+\+ENC&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_GTI\_TT\_NPL\_ENC\_NAI@{OSMO\_SCCP\_GTI\_TT\_NPL\_ENC\_NAI}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_GTI\_TT\_NPL\_ENC\_NAI@{OSMO\_SCCP\_GTI\_TT\_NPL\_ENC\_NAI}}}\mbox{\label{sccp__sap_8h_a49e6fdb7b5e0de1886d06a45f9cba18ea085829d7feedf9819301cca8cc730f7e}} 
OSMO\+\_\+\+SCCP\+\_\+\+GTI\+\_\+\+TT\+\_\+\+NPL\+\_\+\+ENC\+\_\+\+NAI&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{sccp__sap_8h_abd8a385427f71c48da2345b5b020883f}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_nai@{osmo\_sccp\_nai}}
\index{osmo\_sccp\_nai@{osmo\_sccp\_nai}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_nai}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+sccp\+\_\+nai}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_NAI\_UNKNOWN@{OSMO\_SCCP\_NAI\_UNKNOWN}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_NAI\_UNKNOWN@{OSMO\_SCCP\_NAI\_UNKNOWN}}}\mbox{\label{sccp__sap_8h_abd8a385427f71c48da2345b5b020883fa93a8c91be85d9aa68738893272647269}} 
OSMO\+\_\+\+SCCP\+\_\+\+NAI\+\_\+\+UNKNOWN&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_NAI\_SUBSCR@{OSMO\_SCCP\_NAI\_SUBSCR}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_NAI\_SUBSCR@{OSMO\_SCCP\_NAI\_SUBSCR}}}\mbox{\label{sccp__sap_8h_abd8a385427f71c48da2345b5b020883fa086642dd980f4318bde88d35d158d305}} 
OSMO\+\_\+\+SCCP\+\_\+\+NAI\+\_\+\+SUBSCR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_NAI\_RES\_NAT\_USE@{OSMO\_SCCP\_NAI\_RES\_NAT\_USE}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_NAI\_RES\_NAT\_USE@{OSMO\_SCCP\_NAI\_RES\_NAT\_USE}}}\mbox{\label{sccp__sap_8h_abd8a385427f71c48da2345b5b020883faf4daad0b9d8bab32e46ecbf236cd0b87}} 
OSMO\+\_\+\+SCCP\+\_\+\+NAI\+\_\+\+RES\+\_\+\+NAT\+\_\+\+USE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_NAI\_NATL@{OSMO\_SCCP\_NAI\_NATL}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_NAI\_NATL@{OSMO\_SCCP\_NAI\_NATL}}}\mbox{\label{sccp__sap_8h_abd8a385427f71c48da2345b5b020883fafae57f4a40f3ffcb95c0c336aef0830f}} 
OSMO\+\_\+\+SCCP\+\_\+\+NAI\+\_\+\+NATL&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_NAI\_INTL@{OSMO\_SCCP\_NAI\_INTL}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_NAI\_INTL@{OSMO\_SCCP\_NAI\_INTL}}}\mbox{\label{sccp__sap_8h_abd8a385427f71c48da2345b5b020883fa453535dcf2ea807cc852ab3008ad5bdb}} 
OSMO\+\_\+\+SCCP\+\_\+\+NAI\+\_\+\+INTL&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{sccp__sap_8h_a17f6f83b4a88824312b58ef93881d1aa}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_npi@{osmo\_sccp\_npi}}
\index{osmo\_sccp\_npi@{osmo\_sccp\_npi}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_npi}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+sccp\+\_\+npi}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_NPI\_UNKNOWN@{OSMO\_SCCP\_NPI\_UNKNOWN}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_NPI\_UNKNOWN@{OSMO\_SCCP\_NPI\_UNKNOWN}}}\mbox{\label{sccp__sap_8h_a17f6f83b4a88824312b58ef93881d1aaab6488c13fbfacd605f0ec26d96d4a04f}} 
OSMO\+\_\+\+SCCP\+\_\+\+NPI\+\_\+\+UNKNOWN&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_NPI\_E164\_ISDN@{OSMO\_SCCP\_NPI\_E164\_ISDN}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_NPI\_E164\_ISDN@{OSMO\_SCCP\_NPI\_E164\_ISDN}}}\mbox{\label{sccp__sap_8h_a17f6f83b4a88824312b58ef93881d1aaa966ab558ef86f44a2c3f5fdda7523343}} 
OSMO\+\_\+\+SCCP\+\_\+\+NPI\+\_\+\+E164\+\_\+\+ISDN&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_NPI\_GEERIC@{OSMO\_SCCP\_NPI\_GEERIC}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_NPI\_GEERIC@{OSMO\_SCCP\_NPI\_GEERIC}}}\mbox{\label{sccp__sap_8h_a17f6f83b4a88824312b58ef93881d1aaa2edfcac0ff805e07fc53b013fad9cbbf}} 
OSMO\+\_\+\+SCCP\+\_\+\+NPI\+\_\+\+GEERIC&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_NPI\_X121\_DATA@{OSMO\_SCCP\_NPI\_X121\_DATA}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_NPI\_X121\_DATA@{OSMO\_SCCP\_NPI\_X121\_DATA}}}\mbox{\label{sccp__sap_8h_a17f6f83b4a88824312b58ef93881d1aaa68c30ca57ef40444fe9d43370d9df182}} 
OSMO\+\_\+\+SCCP\+\_\+\+NPI\+\_\+\+X121\+\_\+\+DATA&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_NPI\_F69\_TELEX@{OSMO\_SCCP\_NPI\_F69\_TELEX}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_NPI\_F69\_TELEX@{OSMO\_SCCP\_NPI\_F69\_TELEX}}}\mbox{\label{sccp__sap_8h_a17f6f83b4a88824312b58ef93881d1aaa10b76f9ded165fc1a253591ba915b2df}} 
OSMO\+\_\+\+SCCP\+\_\+\+NPI\+\_\+\+F69\+\_\+\+TELEX&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_NPI\_E210\_MARITIME@{OSMO\_SCCP\_NPI\_E210\_MARITIME}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_NPI\_E210\_MARITIME@{OSMO\_SCCP\_NPI\_E210\_MARITIME}}}\mbox{\label{sccp__sap_8h_a17f6f83b4a88824312b58ef93881d1aaa3de3bae494fb5f3f99e9d75c44ef86b6}} 
OSMO\+\_\+\+SCCP\+\_\+\+NPI\+\_\+\+E210\+\_\+\+MARITIME&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_NPI\_E212\_LAND@{OSMO\_SCCP\_NPI\_E212\_LAND}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_NPI\_E212\_LAND@{OSMO\_SCCP\_NPI\_E212\_LAND}}}\mbox{\label{sccp__sap_8h_a17f6f83b4a88824312b58ef93881d1aaa908d5887a58bc33a8d919090da02ce43}} 
OSMO\+\_\+\+SCCP\+\_\+\+NPI\+\_\+\+E212\+\_\+\+LAND&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_NPI\_E214\_ISDN\_MOBILE@{OSMO\_SCCP\_NPI\_E214\_ISDN\_MOBILE}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_NPI\_E214\_ISDN\_MOBILE@{OSMO\_SCCP\_NPI\_E214\_ISDN\_MOBILE}}}\mbox{\label{sccp__sap_8h_a17f6f83b4a88824312b58ef93881d1aaa20d146e5dac90433b005a66a09e12705}} 
OSMO\+\_\+\+SCCP\+\_\+\+NPI\+\_\+\+E214\+\_\+\+ISDN\+\_\+\+MOBILE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_NPI\_PRIVATE@{OSMO\_SCCP\_NPI\_PRIVATE}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_NPI\_PRIVATE@{OSMO\_SCCP\_NPI\_PRIVATE}}}\mbox{\label{sccp__sap_8h_a17f6f83b4a88824312b58ef93881d1aaad6286652b0b4e7e247d86963b639d212}} 
OSMO\+\_\+\+SCCP\+\_\+\+NPI\+\_\+\+PRIVATE&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{sccp__sap_8h_a2efdc51f0625e9b6c4e4a8f9f0cf8bd3}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_originator@{osmo\_sccp\_originator}}
\index{osmo\_sccp\_originator@{osmo\_sccp\_originator}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_originator}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+sccp\+\_\+originator}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_ORIG\_NS\_PROVIDER@{OSMO\_SCCP\_ORIG\_NS\_PROVIDER}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_ORIG\_NS\_PROVIDER@{OSMO\_SCCP\_ORIG\_NS\_PROVIDER}}}\mbox{\label{sccp__sap_8h_a2efdc51f0625e9b6c4e4a8f9f0cf8bd3a4b6c209efad850969c38e94d440bcac7}} 
OSMO\+\_\+\+SCCP\+\_\+\+ORIG\+\_\+\+NS\+\_\+\+PROVIDER&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_ORIG\_NS\_USER@{OSMO\_SCCP\_ORIG\_NS\_USER}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_ORIG\_NS\_USER@{OSMO\_SCCP\_ORIG\_NS\_USER}}}\mbox{\label{sccp__sap_8h_a2efdc51f0625e9b6c4e4a8f9f0cf8bd3a2666804cc746e11ac1fae1e9ae7bac28}} 
OSMO\+\_\+\+SCCP\+\_\+\+ORIG\+\_\+\+NS\+\_\+\+USER&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_ORIG\_UNDEFINED@{OSMO\_SCCP\_ORIG\_UNDEFINED}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_ORIG\_UNDEFINED@{OSMO\_SCCP\_ORIG\_UNDEFINED}}}\mbox{\label{sccp__sap_8h_a2efdc51f0625e9b6c4e4a8f9f0cf8bd3ae4342469a039fc93342494100ac90735}} 
OSMO\+\_\+\+SCCP\+\_\+\+ORIG\+\_\+\+UNDEFINED&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{sccp__sap_8h_ac54d56d58db268f9d322ad675806d00f}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_rem\_sccp\_status@{osmo\_sccp\_rem\_sccp\_status}}
\index{osmo\_sccp\_rem\_sccp\_status@{osmo\_sccp\_rem\_sccp\_status}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_rem\_sccp\_status}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+sccp\+\_\+rem\+\_\+sccp\+\_\+status}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_REM\_SCCP\_S\_AVAILABLE@{OSMO\_SCCP\_REM\_SCCP\_S\_AVAILABLE}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_REM\_SCCP\_S\_AVAILABLE@{OSMO\_SCCP\_REM\_SCCP\_S\_AVAILABLE}}}\mbox{\label{sccp__sap_8h_ac54d56d58db268f9d322ad675806d00faa6d822b31a43adfc51c74615d8b259d7}} 
OSMO\+\_\+\+SCCP\+\_\+\+REM\+\_\+\+SCCP\+\_\+\+S\+\_\+\+AVAILABLE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_REM\_SCCP\_S\_UNAVAILABLE\_UNKNOWN@{OSMO\_SCCP\_REM\_SCCP\_S\_UNAVAILABLE\_UNKNOWN}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_REM\_SCCP\_S\_UNAVAILABLE\_UNKNOWN@{OSMO\_SCCP\_REM\_SCCP\_S\_UNAVAILABLE\_UNKNOWN}}}\mbox{\label{sccp__sap_8h_ac54d56d58db268f9d322ad675806d00fad1e002d023f3e2ea7660af0f23edb629}} 
OSMO\+\_\+\+SCCP\+\_\+\+REM\+\_\+\+SCCP\+\_\+\+S\+\_\+\+UNAVAILABLE\+\_\+\+UNKNOWN&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_REM\_SCCP\_S\_UNEQUIPPED@{OSMO\_SCCP\_REM\_SCCP\_S\_UNEQUIPPED}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_REM\_SCCP\_S\_UNEQUIPPED@{OSMO\_SCCP\_REM\_SCCP\_S\_UNEQUIPPED}}}\mbox{\label{sccp__sap_8h_ac54d56d58db268f9d322ad675806d00fa19a10ae41e422c454d93ce579ae89a35}} 
OSMO\+\_\+\+SCCP\+\_\+\+REM\+\_\+\+SCCP\+\_\+\+S\+\_\+\+UNEQUIPPED&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_REM\_SCCP\_S\_INACCESSIBLE@{OSMO\_SCCP\_REM\_SCCP\_S\_INACCESSIBLE}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_REM\_SCCP\_S\_INACCESSIBLE@{OSMO\_SCCP\_REM\_SCCP\_S\_INACCESSIBLE}}}\mbox{\label{sccp__sap_8h_ac54d56d58db268f9d322ad675806d00fa7607d0f9e0dee9427448515d0d080a6d}} 
OSMO\+\_\+\+SCCP\+\_\+\+REM\+\_\+\+SCCP\+\_\+\+S\+\_\+\+INACCESSIBLE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_REM\_SCCP\_S\_CONGESTED@{OSMO\_SCCP\_REM\_SCCP\_S\_CONGESTED}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_REM\_SCCP\_S\_CONGESTED@{OSMO\_SCCP\_REM\_SCCP\_S\_CONGESTED}}}\mbox{\label{sccp__sap_8h_ac54d56d58db268f9d322ad675806d00fa751884bdd224598bd3dde6d4d984cfbd}} 
OSMO\+\_\+\+SCCP\+\_\+\+REM\+\_\+\+SCCP\+\_\+\+S\+\_\+\+CONGESTED&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{sccp__sap_8h_a4e8e86883f33973c4bf8432a31d1ac4f}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_routing\_ind@{osmo\_sccp\_routing\_ind}}
\index{osmo\_sccp\_routing\_ind@{osmo\_sccp\_routing\_ind}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_routing\_ind}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+sccp\+\_\+routing\+\_\+ind}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_RI\_NONE@{OSMO\_SCCP\_RI\_NONE}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_RI\_NONE@{OSMO\_SCCP\_RI\_NONE}}}\mbox{\label{sccp__sap_8h_a4e8e86883f33973c4bf8432a31d1ac4fab6ad632048cc163f216bffb89370f27a}} 
OSMO\+\_\+\+SCCP\+\_\+\+RI\+\_\+\+NONE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_RI\_GT@{OSMO\_SCCP\_RI\_GT}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_RI\_GT@{OSMO\_SCCP\_RI\_GT}}}\mbox{\label{sccp__sap_8h_a4e8e86883f33973c4bf8432a31d1ac4fa7b7c645ad65242b4e4446d1a6c7e2001}} 
OSMO\+\_\+\+SCCP\+\_\+\+RI\+\_\+\+GT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_RI\_SSN\_PC@{OSMO\_SCCP\_RI\_SSN\_PC}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_RI\_SSN\_PC@{OSMO\_SCCP\_RI\_SSN\_PC}}}\mbox{\label{sccp__sap_8h_a4e8e86883f33973c4bf8432a31d1ac4fae84b506f74ab108b5f43f51593090267}} 
OSMO\+\_\+\+SCCP\+\_\+\+RI\+\_\+\+SSN\+\_\+\+PC&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_RI\_SSN\_IP@{OSMO\_SCCP\_RI\_SSN\_IP}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_RI\_SSN\_IP@{OSMO\_SCCP\_RI\_SSN\_IP}}}\mbox{\label{sccp__sap_8h_a4e8e86883f33973c4bf8432a31d1ac4fafa3c559fc747dfc0549380c069802c4d}} 
OSMO\+\_\+\+SCCP\+\_\+\+RI\+\_\+\+SSN\+\_\+\+IP&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{sccp__sap_8h_ad21aee16f8bf4abed8b6e906cb5d51d1}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_sp\_status@{osmo\_sccp\_sp\_status}}
\index{osmo\_sccp\_sp\_status@{osmo\_sccp\_sp\_status}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_sp\_status}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+sccp\+\_\+sp\+\_\+status}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SP\_S\_INACCESSIBLE@{OSMO\_SCCP\_SP\_S\_INACCESSIBLE}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SP\_S\_INACCESSIBLE@{OSMO\_SCCP\_SP\_S\_INACCESSIBLE}}}\mbox{\label{sccp__sap_8h_ad21aee16f8bf4abed8b6e906cb5d51d1a6ac7a81c40091943caa0dc7ca6f971e1}} 
OSMO\+\_\+\+SCCP\+\_\+\+SP\+\_\+\+S\+\_\+\+INACCESSIBLE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SP\_S\_CONGESTED@{OSMO\_SCCP\_SP\_S\_CONGESTED}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SP\_S\_CONGESTED@{OSMO\_SCCP\_SP\_S\_CONGESTED}}}\mbox{\label{sccp__sap_8h_ad21aee16f8bf4abed8b6e906cb5d51d1a02bd1962cf510e6ada15872558adc634}} 
OSMO\+\_\+\+SCCP\+\_\+\+SP\+\_\+\+S\+\_\+\+CONGESTED&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SP\_S\_ACCESSIBLE@{OSMO\_SCCP\_SP\_S\_ACCESSIBLE}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SP\_S\_ACCESSIBLE@{OSMO\_SCCP\_SP\_S\_ACCESSIBLE}}}\mbox{\label{sccp__sap_8h_ad21aee16f8bf4abed8b6e906cb5d51d1a6b4c9ef553fc09a2d6e1b5fada4afcc9}} 
OSMO\+\_\+\+SCCP\+\_\+\+SP\+\_\+\+S\+\_\+\+ACCESSIBLE&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_ssn@{osmo\_sccp\_ssn}}
\index{osmo\_sccp\_ssn@{osmo\_sccp\_ssn}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_ssn}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+sccp\+\_\+ssn}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_MGMT@{OSMO\_SCCP\_SSN\_MGMT}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_MGMT@{OSMO\_SCCP\_SSN\_MGMT}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3af8c5729f11b1da35b71df01737f3f4b1}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+MGMT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_ISUP@{OSMO\_SCCP\_SSN\_ISUP}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_ISUP@{OSMO\_SCCP\_SSN\_ISUP}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3a2050cf36d2f7ca60c9a083056df1fd35}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+ISUP&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_OMAP@{OSMO\_SCCP\_SSN\_OMAP}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_OMAP@{OSMO\_SCCP\_SSN\_OMAP}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3ad3c568331b2374e7d9fa6b89f33e8b77}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+OMAP&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_MAP@{OSMO\_SCCP\_SSN\_MAP}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_MAP@{OSMO\_SCCP\_SSN\_MAP}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3aa68a459da3fba2bb7bdf78bfd4338093}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+MAP&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_HLR@{OSMO\_SCCP\_SSN\_HLR}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_HLR@{OSMO\_SCCP\_SSN\_HLR}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3a41ab9595f3a97885e28b1e5c0eea2619}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+HLR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_VLR@{OSMO\_SCCP\_SSN\_VLR}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_VLR@{OSMO\_SCCP\_SSN\_VLR}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3a5a06fdc45ed0cf06bde60d5cee22c913}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+VLR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_MSC@{OSMO\_SCCP\_SSN\_MSC}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_MSC@{OSMO\_SCCP\_SSN\_MSC}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3a6d448853fdf6c10c7260a30f234904ac}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+MSC&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_EIR@{OSMO\_SCCP\_SSN\_EIR}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_EIR@{OSMO\_SCCP\_SSN\_EIR}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3aacdd2fd201f06a66c32a677d3c202b8f}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+EIR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_AUC@{OSMO\_SCCP\_SSN\_AUC}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_AUC@{OSMO\_SCCP\_SSN\_AUC}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3acf0b9933911bf797d25918a0b41f8931}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+AUC&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_ISDN\_SS@{OSMO\_SCCP\_SSN\_ISDN\_SS}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_ISDN\_SS@{OSMO\_SCCP\_SSN\_ISDN\_SS}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3a970a2a59db902406cc99bbb3b20c35df}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+ISDN\+\_\+\+SS&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_RES\_INTL@{OSMO\_SCCP\_SSN\_RES\_INTL}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_RES\_INTL@{OSMO\_SCCP\_SSN\_RES\_INTL}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3a2495fb9eb3ace50817cd5c953c9d5c3c}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+RES\+\_\+\+INTL&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_BISDN@{OSMO\_SCCP\_SSN\_BISDN}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_BISDN@{OSMO\_SCCP\_SSN\_BISDN}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3ad3e5787c6ec01db6f0ff6f9b165cbfd8}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+BISDN&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_TC\_TEST@{OSMO\_SCCP\_SSN\_TC\_TEST}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_TC\_TEST@{OSMO\_SCCP\_SSN\_TC\_TEST}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3ab216724ff8bc67eb2af54cf439fac247}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+TC\+\_\+\+TEST&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_RANAP@{OSMO\_SCCP\_SSN\_RANAP}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_RANAP@{OSMO\_SCCP\_SSN\_RANAP}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3a653cd29319701933467d859627079900}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+RANAP&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_RNSAP@{OSMO\_SCCP\_SSN\_RNSAP}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_RNSAP@{OSMO\_SCCP\_SSN\_RNSAP}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3ab69022f8d522270a437ea1d5d5de2130}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+RNSAP&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_GMLC\_MAP@{OSMO\_SCCP\_SSN\_GMLC\_MAP}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_GMLC\_MAP@{OSMO\_SCCP\_SSN\_GMLC\_MAP}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3a84a1ab96fe19618519a1d8f5ae373ded}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+GMLC\+\_\+\+MAP&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_CAP@{OSMO\_SCCP\_SSN\_CAP}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_CAP@{OSMO\_SCCP\_SSN\_CAP}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3aaf167d10738ade0b8587dfdc0a1dc141}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+CAP&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_gsmSCF\_MAP@{OSMO\_SCCP\_SSN\_gsmSCF\_MAP}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_gsmSCF\_MAP@{OSMO\_SCCP\_SSN\_gsmSCF\_MAP}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3a6cabf48c5090cb195580c068401855c9}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+gsm\+SCF\+\_\+\+MAP&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_SIWF\_MAP@{OSMO\_SCCP\_SSN\_SIWF\_MAP}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_SIWF\_MAP@{OSMO\_SCCP\_SSN\_SIWF\_MAP}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3ae2e2dd84d4e1faeaee704cf3785adf3e}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+SIWF\+\_\+\+MAP&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_SGSN\_MAP@{OSMO\_SCCP\_SSN\_SGSN\_MAP}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_SGSN\_MAP@{OSMO\_SCCP\_SSN\_SGSN\_MAP}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3a4b9c11776c409fb54f113ef13037f869}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+SGSN\+\_\+\+MAP&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_GGSN\_MAP@{OSMO\_SCCP\_SSN\_GGSN\_MAP}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_GGSN\_MAP@{OSMO\_SCCP\_SSN\_GGSN\_MAP}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3aa7737038fcd8938bdac09884e28cf699}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+GGSN\+\_\+\+MAP&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_PCAP@{OSMO\_SCCP\_SSN\_PCAP}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_PCAP@{OSMO\_SCCP\_SSN\_PCAP}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3ab6eadaaba332d67cb70ffff39025757a}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+PCAP&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_BSC\_BSSAP\_LE@{OSMO\_SCCP\_SSN\_BSC\_BSSAP\_LE}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_BSC\_BSSAP\_LE@{OSMO\_SCCP\_SSN\_BSC\_BSSAP\_LE}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3a00dc66b0b37e31bf4c32f91984574721}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+BSC\+\_\+\+BSSAP\+\_\+\+LE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_MSC\_BSSAP\_LE@{OSMO\_SCCP\_SSN\_MSC\_BSSAP\_LE}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_MSC\_BSSAP\_LE@{OSMO\_SCCP\_SSN\_MSC\_BSSAP\_LE}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3a2b531c083085fad5e7e4f0c3fc7f4db6}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+MSC\+\_\+\+BSSAP\+\_\+\+LE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_SMLC\_BSSAP\_LE@{OSMO\_SCCP\_SSN\_SMLC\_BSSAP\_LE}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_SMLC\_BSSAP\_LE@{OSMO\_SCCP\_SSN\_SMLC\_BSSAP\_LE}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3a9f96db2bfcb59de1a85d7ddc5cffe31f}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+SMLC\+\_\+\+BSSAP\+\_\+\+LE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_BSS\_OAM@{OSMO\_SCCP\_SSN\_BSS\_OAM}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_BSS\_OAM@{OSMO\_SCCP\_SSN\_BSS\_OAM}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3ada6e95c9772888a811642dece8804c15}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+BSS\+\_\+\+OAM&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCCP\_SSN\_BSSAP@{OSMO\_SCCP\_SSN\_BSSAP}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCCP\_SSN\_BSSAP@{OSMO\_SCCP\_SSN\_BSSAP}}}\mbox{\label{sccp__sap_8h_abcafee7a0ecfc15e79eadd6fedd7b1f3a874a940496999089ccd459ea7c200dce}} 
OSMO\+\_\+\+SCCP\+\_\+\+SSN\+\_\+\+BSSAP&\\
\hline

\end{DoxyEnumFields}
\mbox{\label{sccp__sap_8h_a10a7e6f0a0082df4e420d5f0ba6b51fd}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_scu\_prim\_type@{osmo\_scu\_prim\_type}}
\index{osmo\_scu\_prim\_type@{osmo\_scu\_prim\_type}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_scu\_prim\_type}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+scu\+\_\+prim\+\_\+type}}



SCCP-\/\+User primitives as per Q.\+711. 

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCU\_PRIM\_N\_CONNECT@{OSMO\_SCU\_PRIM\_N\_CONNECT}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCU\_PRIM\_N\_CONNECT@{OSMO\_SCU\_PRIM\_N\_CONNECT}}}\mbox{\label{sccp__sap_8h_a10a7e6f0a0082df4e420d5f0ba6b51fda163b8169eb623a0232f855af0a7aaf76}} 
OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+CONNECT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCU\_PRIM\_N\_DATA@{OSMO\_SCU\_PRIM\_N\_DATA}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCU\_PRIM\_N\_DATA@{OSMO\_SCU\_PRIM\_N\_DATA}}}\mbox{\label{sccp__sap_8h_a10a7e6f0a0082df4e420d5f0ba6b51fdafa53f07a1cb6e62afee8cd52bc78b613}} 
OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+DATA&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCU\_PRIM\_N\_EXPEDITED\_DATA@{OSMO\_SCU\_PRIM\_N\_EXPEDITED\_DATA}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCU\_PRIM\_N\_EXPEDITED\_DATA@{OSMO\_SCU\_PRIM\_N\_EXPEDITED\_DATA}}}\mbox{\label{sccp__sap_8h_a10a7e6f0a0082df4e420d5f0ba6b51fdab579f44105757d3aabfa8cd4d7db5636}} 
OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+EXPEDITED\+\_\+\+DATA&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCU\_PRIM\_N\_DISCONNECT@{OSMO\_SCU\_PRIM\_N\_DISCONNECT}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCU\_PRIM\_N\_DISCONNECT@{OSMO\_SCU\_PRIM\_N\_DISCONNECT}}}\mbox{\label{sccp__sap_8h_a10a7e6f0a0082df4e420d5f0ba6b51fdae4befb8d6ead24366c55501a1c90740a}} 
OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+DISCONNECT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCU\_PRIM\_N\_RESET@{OSMO\_SCU\_PRIM\_N\_RESET}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCU\_PRIM\_N\_RESET@{OSMO\_SCU\_PRIM\_N\_RESET}}}\mbox{\label{sccp__sap_8h_a10a7e6f0a0082df4e420d5f0ba6b51fda8b076665012c27692bd2a534d5b77185}} 
OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+RESET&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCU\_PRIM\_N\_INFORM@{OSMO\_SCU\_PRIM\_N\_INFORM}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCU\_PRIM\_N\_INFORM@{OSMO\_SCU\_PRIM\_N\_INFORM}}}\mbox{\label{sccp__sap_8h_a10a7e6f0a0082df4e420d5f0ba6b51fda63d256fca7b1277105480d356f789acf}} 
OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+INFORM&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCU\_PRIM\_N\_UNITDATA@{OSMO\_SCU\_PRIM\_N\_UNITDATA}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCU\_PRIM\_N\_UNITDATA@{OSMO\_SCU\_PRIM\_N\_UNITDATA}}}\mbox{\label{sccp__sap_8h_a10a7e6f0a0082df4e420d5f0ba6b51fda8c12b554e04e5cc55c0a5025b11fa82f}} 
OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+UNITDATA&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCU\_PRIM\_N\_NOTICE@{OSMO\_SCU\_PRIM\_N\_NOTICE}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCU\_PRIM\_N\_NOTICE@{OSMO\_SCU\_PRIM\_N\_NOTICE}}}\mbox{\label{sccp__sap_8h_a10a7e6f0a0082df4e420d5f0ba6b51fda449b72eabe407228f84c819ed12b9548}} 
OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+NOTICE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCU\_PRIM\_N\_COORD@{OSMO\_SCU\_PRIM\_N\_COORD}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCU\_PRIM\_N\_COORD@{OSMO\_SCU\_PRIM\_N\_COORD}}}\mbox{\label{sccp__sap_8h_a10a7e6f0a0082df4e420d5f0ba6b51fdafef9bed9cbd4cc0bf69840fccf52c2d6}} 
OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+COORD&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCU\_PRIM\_N\_STATE@{OSMO\_SCU\_PRIM\_N\_STATE}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCU\_PRIM\_N\_STATE@{OSMO\_SCU\_PRIM\_N\_STATE}}}\mbox{\label{sccp__sap_8h_a10a7e6f0a0082df4e420d5f0ba6b51fdab7a89459005112dfec8fb0d06d38e025}} 
OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+STATE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_SCU\_PRIM\_N\_PCSTATE@{OSMO\_SCU\_PRIM\_N\_PCSTATE}!sccp\_sap.h@{sccp\_sap.h}}\index{sccp\_sap.h@{sccp\_sap.h}!OSMO\_SCU\_PRIM\_N\_PCSTATE@{OSMO\_SCU\_PRIM\_N\_PCSTATE}}}\mbox{\label{sccp__sap_8h_a10a7e6f0a0082df4e420d5f0ba6b51fda8f4ca1baf4f403bea0dfc0b62fedcf9c}} 
OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+PCSTATE&\\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\mbox{\label{sccp__sap_8h_a4b5916b441a0441510f6feca9ba09310}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_addr\_by\_name@{osmo\_sccp\_addr\_by\_name}}
\index{osmo\_sccp\_addr\_by\_name@{osmo\_sccp\_addr\_by\_name}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_addr\_by\_name()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$ osmo\+\_\+sccp\+\_\+addr\+\_\+by\+\_\+name (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{dest\+\_\+addr,  }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}



Lookup an SCCP address from the addressbook by its name. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em dest\+\_\+addr} & pointer to output the resulting sccp-\/address; (set to NULL if not interested) \\
\hline
\mbox{\texttt{ in}}  & {\em name} & of the address to lookup \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
SS7 instance; NULL on error 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::addr}, \textbf{ addr\+\_\+entry\+\_\+by\+\_\+name\+\_\+global()}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::inst}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::name}, and \textbf{ NULL}.

\mbox{\label{sccp__sap_8h_a673062adcb4dcd4615ef8e485d70ed07}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_addr\_by\_name\_local@{osmo\_sccp\_addr\_by\_name\_local}}
\index{osmo\_sccp\_addr\_by\_name\_local@{osmo\_sccp\_addr\_by\_name\_local}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_addr\_by\_name\_local()}
{\footnotesize\ttfamily int osmo\+\_\+sccp\+\_\+addr\+\_\+by\+\_\+name\+\_\+local (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{dest\+\_\+addr,  }\item[{const char $\ast$}]{name,  }\item[{const struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})}



Lookup an SCCP address from the addressbook of a specific instance by its name. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em dest\+\_\+addr} & pointer to output the resulting sccp-\/address; (set to NULL if not interested) \\
\hline
\mbox{\texttt{ in}}  & {\em name} & of the address to lookup \\
\hline
\mbox{\texttt{ in}}  & {\em inst} & ss7 instance of which the address book will be searched \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; $<$0 on error 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::addr}, \textbf{ addr\+\_\+entry\+\_\+by\+\_\+name\+\_\+local()}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::inst}, and \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::name}.

\mbox{\label{sccp__sap_8h_ad88f30b0068a27f1462dafd29a5809db}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_addr\_cmp@{osmo\_sccp\_addr\_cmp}}
\index{osmo\_sccp\_addr\_cmp@{osmo\_sccp\_addr\_cmp}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_addr\_cmp()}
{\footnotesize\ttfamily int osmo\+\_\+sccp\+\_\+addr\+\_\+cmp (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{a,  }\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{b,  }\item[{uint32\+\_\+t}]{presence\+\_\+criteria }\end{DoxyParamCaption})}



Compare two SCCP addresses by given presence criteria. 

Any OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+$\ast$ type not set in presence\+\_\+criteria is ignored. In case all bits are set in presence\+\_\+criteria, the comparison is in the order of\+: OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+GT, OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+PC, OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+IPv4, OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+IPv6, OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+SSN. The SCCP addresses\textquotesingle{} Routing Indicator is not compared, see \doxyref{osmo\+\_\+sccp\+\_\+addr\+\_\+ri\+\_\+cmp()}{p.}{sccp__instance_8c_aff3c1c4bd54d70d478e318440708140d}. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em a} & left side. \\
\hline
\mbox{\texttt{ in}}  & {\em b} & right side. \\
\hline
\mbox{\texttt{ in}}  & {\em presence\+\_\+criteria} & A bitmask of OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+$\ast$ values, or OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+MASK to compare all parts, except the routing indicator. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
-\/1 if a $<$ b, 1 if a $>$ b, and 0 if all checked values match. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+sccp\+\_\+addr\+::gt}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::ip}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+GT}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+IPv4}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+IPv6}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+PC}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+SSN}, \textbf{ osmo\+\_\+sccp\+\_\+gt\+\_\+cmp()}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::pc}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::presence}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::ssn}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::v4}, and \textbf{ osmo\+\_\+sccp\+\_\+addr\+::v6}.



Referenced by \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+ri\+\_\+cmp()}, and \textbf{ tcap\+\_\+trans\+\_\+track\+\_\+entry\+\_\+find()}.

\mbox{\label{sccp__sap_8h_aa0877f3f7bcf3f59ec08f98488de3f6a}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_addr\_create@{osmo\_sccp\_addr\_create}}
\index{osmo\_sccp\_addr\_create@{osmo\_sccp\_addr\_create}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_addr\_create()}
{\footnotesize\ttfamily int osmo\+\_\+sccp\+\_\+addr\+\_\+create (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{const char $\ast$}]{name,  }\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{dest\+\_\+addr }\end{DoxyParamCaption})}



Add an SCCP address entry to the addressbook. 


\begin{DoxyParams}[1]{Parameters}
 & {\em \mbox{[}int\mbox{]}} & inst cs7 instance where this address belongs \\
\hline
\mbox{\texttt{ in}}  & {\em name} & of the address to create \\
\hline
\mbox{\texttt{ in}}  & {\em dest\+\_\+addr} & address value to add to the addressbook. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, negative error code on error.
\end{DoxyReturn}
Validates that the name is unique among all cs7 instances of the process, and that no such entry already exists. 

References \textbf{ addr\+\_\+entry\+\_\+alloc()}, \textbf{ addr\+\_\+entry\+\_\+by\+\_\+name\+\_\+global()}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::id}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::inst}, \textbf{ LOGSS7}, and \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::name}.



Referenced by \textbf{ DEFUN\+\_\+\+ATTR()}.

\mbox{\label{sccp__sap_8h_aff3c1c4bd54d70d478e318440708140d}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_addr\_ri\_cmp@{osmo\_sccp\_addr\_ri\_cmp}}
\index{osmo\_sccp\_addr\_ri\_cmp@{osmo\_sccp\_addr\_ri\_cmp}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_addr\_ri\_cmp()}
{\footnotesize\ttfamily int osmo\+\_\+sccp\+\_\+addr\+\_\+ri\+\_\+cmp (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{a,  }\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{b }\end{DoxyParamCaption})}



Compare the routing information of two SCCP addresses. 

Compare the ri of a and b, and, if equal, return \doxyref{osmo\+\_\+sccp\+\_\+addr\+\_\+cmp()}{p.}{sccp__instance_8c_ad88f30b0068a27f1462dafd29a5809db} with presence criteria selected according to ri. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em a} & left side. \\
\hline
\mbox{\texttt{ in}}  & {\em b} & right side. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
-\/1 if a $<$ b, 1 if a $>$ b, and 0 if a == b. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+cmp()}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+GT}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+IPv4}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+IPv6}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+PC}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+SSN}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+RI\+\_\+\+GT}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+RI\+\_\+\+NONE}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+RI\+\_\+\+SSN\+\_\+\+IP}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+RI\+\_\+\+SSN\+\_\+\+PC}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::presence}, and \textbf{ osmo\+\_\+sccp\+\_\+addr\+::ri}.

\mbox{\label{sccp__sap_8h_aaf489c16310c0af80dd868102ad2d57a}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_addr\_update@{osmo\_sccp\_addr\_update}}
\index{osmo\_sccp\_addr\_update@{osmo\_sccp\_addr\_update}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_addr\_update()}
{\footnotesize\ttfamily int osmo\+\_\+sccp\+\_\+addr\+\_\+update (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{inst,  }\item[{const char $\ast$}]{name,  }\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{dest\+\_\+addr }\end{DoxyParamCaption})}



Update the value of an SCCP address entry already present in the addressbook. 


\begin{DoxyParams}[1]{Parameters}
 & {\em \mbox{[}int\mbox{]}} & inst cs7 instance where this address belongs \\
\hline
\mbox{\texttt{ in}}  & {\em name} & of the address to update \\
\hline
\mbox{\texttt{ in}}  & {\em dest\+\_\+addr} & address value to store in the addressbook. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, negative error code on error. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::addr}, \textbf{ addr\+\_\+entry\+\_\+by\+\_\+name\+\_\+local()}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::cfg}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::id}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::inst}, \textbf{ LOGSS7}, and \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::name}.

\mbox{\label{sccp__sap_8h_a4384e35f0d7a832835621b6734a8240a}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_check\_addr@{osmo\_sccp\_check\_addr}}
\index{osmo\_sccp\_check\_addr@{osmo\_sccp\_check\_addr}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_check\_addr()}
{\footnotesize\ttfamily bool osmo\+\_\+sccp\+\_\+check\+\_\+addr (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{addr,  }\item[{uint32\+\_\+t}]{presence }\end{DoxyParamCaption})}



check whether a given SCCP-\/\+Address is consistent. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em addr} & SCCP address to check \\
\hline
\mbox{\texttt{ in}}  & {\em presence} & mask with minimum required address components \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
true when address data seems plausible 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+sccp\+\_\+addr\+::gt}, \textbf{ osmo\+\_\+sccp\+\_\+gt\+::gti}, \textbf{ osmo\+\_\+sccp\+\_\+gt\+::nai}, \textbf{ osmo\+\_\+sccp\+\_\+gt\+::npi}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+GT}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+IPv4}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+IPv6}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+PC}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+ADDR\+\_\+\+T\+\_\+\+SSN}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+RI\+\_\+\+GT}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+RI\+\_\+\+SSN\+\_\+\+IP}, \textbf{ OSMO\+\_\+\+SCCP\+\_\+\+RI\+\_\+\+SSN\+\_\+\+PC}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+::presence}, and \textbf{ osmo\+\_\+sccp\+\_\+addr\+::ri}.

\mbox{\label{sccp__sap_8h_a5c813c818a361fb7381c843efb5577e3}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_get\_priv@{osmo\_sccp\_get\_priv}}
\index{osmo\_sccp\_get\_priv@{osmo\_sccp\_get\_priv}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_get\_priv()}
{\footnotesize\ttfamily void $\ast$ osmo\+\_\+sccp\+\_\+get\+\_\+priv (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{sccp }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+sccp\+\_\+instance\+::priv}.

\mbox{\label{sccp__sap_8h_a2d9b935c8121fab24c082eb19ba4c61d}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_get\_sccp@{osmo\_sccp\_get\_sccp}}
\index{osmo\_sccp\_get\_sccp@{osmo\_sccp\_get\_sccp}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_get\_sccp()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$ osmo\+\_\+sccp\+\_\+get\+\_\+sccp (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$}]{scu }\end{DoxyParamCaption})}



get the SCCP instance that is related to the given sccp user 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em scu} & SCCP user \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
SCCP instance; NULL if scu was NULL 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+sccp\+\_\+user\+::inst}, and \textbf{ NULL}.

\mbox{\label{sccp__sap_8h_a6d5c2ee0d18c64fe3aac7b3978f6d331}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_get\_ss7@{osmo\_sccp\_get\_ss7}}
\index{osmo\_sccp\_get\_ss7@{osmo\_sccp\_get\_ss7}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_get\_ss7()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$ osmo\+\_\+sccp\+\_\+get\+\_\+ss7 (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{sccp }\end{DoxyParamCaption})}



get the SS7 instance that is related to the given SCCP instance 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em sccp} & SCCP instance \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
SS7 instance; NULL if sccp was NULL 
\end{DoxyReturn}


References \textbf{ NULL}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::sccp}, and \textbf{ osmo\+\_\+sccp\+\_\+instance\+::ss7}.

\mbox{\label{sccp__sap_8h_a4cc1b98cb117cc04627d55df97123f0b}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_gt\_cmp@{osmo\_sccp\_gt\_cmp}}
\index{osmo\_sccp\_gt\_cmp@{osmo\_sccp\_gt\_cmp}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_gt\_cmp()}
{\footnotesize\ttfamily int osmo\+\_\+sccp\+\_\+gt\+\_\+cmp (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+gt} $\ast$}]{a,  }\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+gt} $\ast$}]{b }\end{DoxyParamCaption})}



Compare two SCCP Global Titles. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em a} & left side. \\
\hline
\mbox{\texttt{ in}}  & {\em b} & right side. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
-\/1 if a $<$ b, 1 if a $>$ b, and 0 if a == b. 
\end{DoxyReturn}


Referenced by \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+cmp()}.

\mbox{\label{sccp__sap_8h_a5fc6d088659bd4118643b79afdd5d9ab}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_gti\_name@{osmo\_sccp\_gti\_name}}
\index{osmo\_sccp\_gti\_name@{osmo\_sccp\_gti\_name}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_gti\_name()}
{\footnotesize\ttfamily static const char $\ast$ osmo\+\_\+sccp\+\_\+gti\+\_\+name (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+sccp\+\_\+gti}}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ osmo\+\_\+sccp\+\_\+gti\+\_\+names}.



Referenced by \textbf{ sccp\+\_\+addr\+\_\+to\+\_\+str\+\_\+buf()}.

\mbox{\label{sccp__sap_8h_a91f367a691757d5d683a1ce3bde02e0c}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_instance\_create@{osmo\_sccp\_instance\_create}}
\index{osmo\_sccp\_instance\_create@{osmo\_sccp\_instance\_create}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_instance\_create()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$ osmo\+\_\+sccp\+\_\+instance\+\_\+create (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+ss7\+\_\+instance} $\ast$}]{ss7,  }\item[{void $\ast$}]{priv }\end{DoxyParamCaption})}



create a SCCP Instance and register it as user with SS7 inst 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em ss7} & SS7 instance to which this SCCP instance belongs \\
\hline
\mbox{\texttt{ in}}  & {\em priv} & private data to be stored within SCCP instance \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated SCCP instance on success; NULL on error 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+sccp\+\_\+instance\+::list}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::max\+\_\+optional\+\_\+data}, \textbf{ MTP\+\_\+\+SI\+\_\+\+SCCP}, \textbf{ mtp\+\_\+user\+\_\+prim\+\_\+cb()}, \textbf{ NULL}, \textbf{ osmo\+\_\+sccp\+\_\+timer\+\_\+defaults}, \textbf{ osmo\+\_\+ss7\+\_\+user\+\_\+create()}, \textbf{ osmo\+\_\+ss7\+\_\+user\+\_\+register()}, \textbf{ osmo\+\_\+ss7\+\_\+user\+\_\+set\+\_\+prim\+\_\+cb()}, \textbf{ osmo\+\_\+ss7\+\_\+user\+\_\+set\+\_\+priv()}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::priv}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::queue}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::rout\+\_\+fail\+\_\+pending}, \textbf{ rout\+\_\+fail\+\_\+pending\+\_\+cb()}, \textbf{ sccp\+\_\+scmg\+\_\+init()}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::ss7}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::ss7\+\_\+user}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::tdefs}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::timer}, and \textbf{ osmo\+\_\+sccp\+\_\+instance\+::users}.



Referenced by \textbf{ osmo\+\_\+ss7\+\_\+ensure\+\_\+sccp()}.

\mbox{\label{sccp__sap_8h_a399c0860d3bba4c0a051d85ae52e488b}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_instance\_destroy@{osmo\_sccp\_instance\_destroy}}
\index{osmo\_sccp\_instance\_destroy@{osmo\_sccp\_instance\_destroy}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_instance\_destroy()}
{\footnotesize\ttfamily void osmo\+\_\+sccp\+\_\+instance\+\_\+destroy (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+sccp\+\_\+instance\+::connections}, \textbf{ osmo\+\_\+sccp\+\_\+user\+::inst}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::list}, \textbf{ osmo\+\_\+sccp\+\_\+user\+::list}, \textbf{ MTP\+\_\+\+SI\+\_\+\+SCCP}, \textbf{ NULL}, \textbf{ osmo\+\_\+sccp\+\_\+user\+\_\+unbind()}, \textbf{ osmo\+\_\+ss7\+\_\+user\+\_\+destroy()}, \textbf{ osmo\+\_\+ss7\+\_\+user\+\_\+unregister()}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::rout\+\_\+fail\+\_\+pending}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::sccp}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::ss7}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::ss7\+\_\+user}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::timer}, and \textbf{ osmo\+\_\+sccp\+\_\+instance\+::users}.

\mbox{\label{sccp__sap_8h_aefc784e9f3a56c93d1d62fb10732c2c8}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_instance\_next\_conn\_id@{osmo\_sccp\_instance\_next\_conn\_id}}
\index{osmo\_sccp\_instance\_next\_conn\_id@{osmo\_sccp\_instance\_next\_conn\_id}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_instance\_next\_conn\_id()}
{\footnotesize\ttfamily int osmo\+\_\+sccp\+\_\+instance\+\_\+next\+\_\+conn\+\_\+id (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{sccp }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+sccp\+\_\+instance\+::next\+\_\+id}, and \textbf{ sccp\+\_\+find\+\_\+conn\+\_\+by\+\_\+id()}.



Referenced by \textbf{ conn\+\_\+create()}.

\mbox{\label{sccp__sap_8h_ac75660cfa2a1056de1586ceac3717b93}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_local\_addr\_by\_instance@{osmo\_sccp\_local\_addr\_by\_instance}}
\index{osmo\_sccp\_local\_addr\_by\_instance@{osmo\_sccp\_local\_addr\_by\_instance}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_local\_addr\_by\_instance()}
{\footnotesize\ttfamily void osmo\+\_\+sccp\+\_\+local\+\_\+addr\+\_\+by\+\_\+instance (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{dest\+\_\+addr,  }\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{uint32\+\_\+t}]{ssn }\end{DoxyParamCaption})}



derive a basic local SCCP-\/\+Address from a given SCCP instance. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em dest\+\_\+addr} & pointer to output address memory \\
\hline
\mbox{\texttt{ in}}  & {\em inst} & SCCP instance \\
\hline
\mbox{\texttt{ in}}  & {\em ssn} & Subsystem Number \\
\hline
\end{DoxyParams}


References \textbf{ osmo\+\_\+ss7\+\_\+instance\+::cfg}, \textbf{ osmo\+\_\+sccp\+\_\+make\+\_\+addr\+\_\+pc\+\_\+ssn()}, \textbf{ osmo\+\_\+ss7\+\_\+instance\+::primary\+\_\+pc}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::ss7}, and \textbf{ ssn}.

\mbox{\label{sccp__sap_8h_abc34d0320ec536b5b359cd2dfcaefd08}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_name\_by\_addr@{osmo\_sccp\_name\_by\_addr}}
\index{osmo\_sccp\_name\_by\_addr@{osmo\_sccp\_name\_by\_addr}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_name\_by\_addr()}
{\footnotesize\ttfamily const char $\ast$ osmo\+\_\+sccp\+\_\+name\+\_\+by\+\_\+addr (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+sccp\+\_\+addr} $\ast$}]{addr }\end{DoxyParamCaption})}



Reverse lookup the lookup-\/name of a specified SCCP address. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em name} & of the address to lookup \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
char pointer to the lookup-\/name; NULL on error 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::addr}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::list\+\_\+global}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+entry\+::name}, \textbf{ NULL}, and \textbf{ sccp\+\_\+address\+\_\+book\+\_\+global}.

\mbox{\label{sccp__sap_8h_a5fa55b38245239b5aca65a19760ebd02}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_rem\_sccp\_status\_name@{osmo\_sccp\_rem\_sccp\_status\_name}}
\index{osmo\_sccp\_rem\_sccp\_status\_name@{osmo\_sccp\_rem\_sccp\_status\_name}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_rem\_sccp\_status\_name()}
{\footnotesize\ttfamily static const char $\ast$ osmo\+\_\+sccp\+\_\+rem\+\_\+sccp\+\_\+status\+\_\+name (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+sccp\+\_\+rem\+\_\+sccp\+\_\+status}}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ osmo\+\_\+sccp\+\_\+rem\+\_\+sccp\+\_\+status\+\_\+names}.

\mbox{\label{sccp__sap_8h_a4e397d2ac7d15a8622f253c693197a80}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_routing\_ind\_name@{osmo\_sccp\_routing\_ind\_name}}
\index{osmo\_sccp\_routing\_ind\_name@{osmo\_sccp\_routing\_ind\_name}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_routing\_ind\_name()}
{\footnotesize\ttfamily static const char $\ast$ osmo\+\_\+sccp\+\_\+routing\+\_\+ind\+\_\+name (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+sccp\+\_\+routing\+\_\+ind}}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ osmo\+\_\+sccp\+\_\+routing\+\_\+ind\+\_\+names}.



Referenced by \textbf{ sccp\+\_\+addr\+\_\+to\+\_\+str\+\_\+buf()}.

\mbox{\label{sccp__sap_8h_a887c5a0200931e2b890ce2a098b859f2}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_set\_priv@{osmo\_sccp\_set\_priv}}
\index{osmo\_sccp\_set\_priv@{osmo\_sccp\_set\_priv}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_set\_priv()}
{\footnotesize\ttfamily void osmo\+\_\+sccp\+\_\+set\+\_\+priv (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{sccp,  }\item[{void $\ast$}]{priv }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+sccp\+\_\+instance\+::priv}, and \textbf{ osmo\+\_\+sccp\+\_\+user\+::priv}.

\mbox{\label{sccp__sap_8h_a4491069f0329358236869783ab887140}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_sp\_status\_name@{osmo\_sccp\_sp\_status\_name}}
\index{osmo\_sccp\_sp\_status\_name@{osmo\_sccp\_sp\_status\_name}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_sp\_status\_name()}
{\footnotesize\ttfamily static const char $\ast$ osmo\+\_\+sccp\+\_\+sp\+\_\+status\+\_\+name (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+sccp\+\_\+sp\+\_\+status}}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ osmo\+\_\+sccp\+\_\+sp\+\_\+status\+\_\+names}.

\mbox{\label{sccp__sap_8h_a2204e204441895bcb66867a379864405}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_ssn\_name@{osmo\_sccp\_ssn\_name}}
\index{osmo\_sccp\_ssn\_name@{osmo\_sccp\_ssn\_name}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_ssn\_name()}
{\footnotesize\ttfamily static const char $\ast$ osmo\+\_\+sccp\+\_\+ssn\+\_\+name (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+sccp\+\_\+ssn}}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ osmo\+\_\+sccp\+\_\+ssn\+\_\+names}.



Referenced by \textbf{ sccp\+\_\+addr\+\_\+to\+\_\+str\+\_\+buf()}, and \textbf{ scrc\+\_\+node\+\_\+6()}.

\mbox{\label{sccp__sap_8h_aa6b837a8e560b41e6a0208af9d0b96d2}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_user\_bind@{osmo\_sccp\_user\_bind}}
\index{osmo\_sccp\_user\_bind@{osmo\_sccp\_user\_bind}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_user\_bind()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$ osmo\+\_\+sccp\+\_\+user\+\_\+bind (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{const char $\ast$}]{name,  }\item[{osmo\+\_\+prim\+\_\+cb}]{prim\+\_\+cb,  }\item[{uint16\+\_\+t}]{ssn }\end{DoxyParamCaption})}



Bind a given SCCP User to a given SSN (at any PC) 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em inst} & SCCP Instance \\
\hline
\mbox{\texttt{ in}}  & {\em name} & human-\/readable name \\
\hline
\mbox{\texttt{ in}}  & {\em prim\+\_\+cb} & User provided callback to pass a primitive/msg up the stack \\
\hline
\mbox{\texttt{ in}}  & {\em ssn} & Sub-\/\+System Number to bind to \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Callee-\/allocated SCCP User on success; negative otherwise
\end{DoxyReturn}
Ownership of oph-\/$>$msg in prim\+\_\+cb is transferred to the user of the registered callback when called. 

References \textbf{ osmo\+\_\+sccp\+\_\+user\+::inst}, \textbf{ osmo\+\_\+sccp\+\_\+user\+::name}, \textbf{ OSMO\+\_\+\+SS7\+\_\+\+PC\+\_\+\+INVALID}, \textbf{ osmo\+\_\+sccp\+\_\+user\+::prim\+\_\+cb}, \textbf{ sccp\+\_\+user\+\_\+bind\+\_\+pc()}, and \textbf{ ssn}.



Referenced by \textbf{ sccp\+\_\+scmg\+\_\+init()}.

\mbox{\label{sccp__sap_8h_a5ef27c4f387e597d75a96d9dc724ec72}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_user\_bind\_pc@{osmo\_sccp\_user\_bind\_pc}}
\index{osmo\_sccp\_user\_bind\_pc@{osmo\_sccp\_user\_bind\_pc}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_user\_bind\_pc()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$ osmo\+\_\+sccp\+\_\+user\+\_\+bind\+\_\+pc (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{const char $\ast$}]{name,  }\item[{osmo\+\_\+prim\+\_\+cb}]{prim\+\_\+cb,  }\item[{uint16\+\_\+t}]{ssn,  }\item[{uint32\+\_\+t}]{pc }\end{DoxyParamCaption})}



Bind a given SCCP User to a given SSN+\+PC. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em inst} & SCCP Instance \\
\hline
\mbox{\texttt{ in}}  & {\em name} & human-\/readable name \\
\hline
\mbox{\texttt{ in}}  & {\em prim\+\_\+cb} & User provided callback to pass a primitive/msg up the stack \\
\hline
\mbox{\texttt{ in}}  & {\em ssn} & Sub-\/\+System Number to bind to \\
\hline
\mbox{\texttt{ in}}  & {\em pc} & Point Code to bind to \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Callee-\/allocated SCCP User on success; negative otherwise
\end{DoxyReturn}
Ownership of oph-\/$>$msg in prim\+\_\+cb is transferred to the user of the registered callback when called. 

References \textbf{ osmo\+\_\+sccp\+\_\+user\+::inst}, \textbf{ osmo\+\_\+sccp\+\_\+user\+::name}, \textbf{ pc}, \textbf{ osmo\+\_\+sccp\+\_\+user\+::prim\+\_\+cb}, \textbf{ sccp\+\_\+user\+\_\+bind\+\_\+pc()}, and \textbf{ ssn}.

\mbox{\label{sccp__sap_8h_a3a84472a746578822a5cbc0dcbfece55}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_user\_find@{osmo\_sccp\_user\_find}}
\index{osmo\_sccp\_user\_find@{osmo\_sccp\_user\_find}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_user\_find()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$ osmo\+\_\+sccp\+\_\+user\+\_\+find (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+instance} $\ast$}]{inst,  }\item[{uint16\+\_\+t}]{ssn,  }\item[{uint32\+\_\+t}]{pc }\end{DoxyParamCaption})}



Find a SCCP User registered for given PC+\+SSN or SSN only. 

First search all users with a valid PC for a full PC+\+SSN match. If no match was found, search all users with an invalid PC for an SSN-\/only match. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em inst} & SCCP Instance in which to search. \\
\hline
\mbox{\texttt{ in}}  & {\em ssn} & Sub-\/\+System Number to search for. \\
\hline
\mbox{\texttt{ in}}  & {\em pc} & Point Code to search for. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
Matching SCCP User; NULL if none found. 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+sccp\+\_\+user\+::inst}, \textbf{ pc}, \textbf{ sccp\+\_\+user\+\_\+find()}, and \textbf{ ssn}.

\mbox{\label{sccp__sap_8h_a7454eca93e50d156d85fccc82073ac76}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_user\_get\_priv@{osmo\_sccp\_user\_get\_priv}}
\index{osmo\_sccp\_user\_get\_priv@{osmo\_sccp\_user\_get\_priv}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_user\_get\_priv()}
{\footnotesize\ttfamily void $\ast$ osmo\+\_\+sccp\+\_\+user\+\_\+get\+\_\+priv (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$}]{scu }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+sccp\+\_\+user\+::priv}.

\mbox{\label{sccp__sap_8h_ac95418f1985ff6dd5661c4aaad92b373}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_user\_name@{osmo\_sccp\_user\_name}}
\index{osmo\_sccp\_user\_name@{osmo\_sccp\_user\_name}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_user\_name()}
{\footnotesize\ttfamily const char $\ast$ osmo\+\_\+sccp\+\_\+user\+\_\+name (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$}]{scu }\end{DoxyParamCaption})}



Compose a human readable string to describe the SCCP user\textquotesingle{}s connection. 

The output follows [\textquotesingle{}$<$scu.\+name$>$\textquotesingle{}\+:]$<$local-\/sccp-\/addr$>$, e.\+g. \char`\"{}\textquotesingle{}\+Osmo\+HNBW\textquotesingle{}\+:\+RI=\+SSN\+\_\+\+PC,\+PC=0.\+23.\+5,\+SSN=\+RANAP\char`\"{}, or just \char`\"{}\+RI=\+SSN\+\_\+\+PC,\+PC=0.\+23.\+5,\+SSN=\+RANAP\char`\"{} if no scu-\/$>$name is set. This calls \doxyref{osmo\+\_\+sccp\+\_\+addr\+\_\+name()}{p.}{sccp__helpers_8h_ab751c4579907146b3194fda7eb54a5ec}, which returns a static buffer; hence calling this function and \doxyref{osmo\+\_\+sccp\+\_\+addr\+\_\+name()}{p.}{sccp__helpers_8h_ab751c4579907146b3194fda7eb54a5ec} in the same printf statement is likely to conflict. 

References \textbf{ osmo\+\_\+sccp\+\_\+user\+::inst}, \textbf{ osmo\+\_\+sccp\+\_\+user\+::name}, \textbf{ osmo\+\_\+sccp\+\_\+addr\+\_\+name()}, \textbf{ osmo\+\_\+sccp\+\_\+make\+\_\+addr\+\_\+pc\+\_\+ssn()}, \textbf{ osmo\+\_\+sccp\+\_\+user\+::pc}, \textbf{ osmo\+\_\+sccp\+\_\+instance\+::ss7}, and \textbf{ osmo\+\_\+sccp\+\_\+user\+::ssn}.

\mbox{\label{sccp__sap_8h_a80a39e9ce7614bcd9715d28a72d8d1d8}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_user\_sap\_down@{osmo\_sccp\_user\_sap\_down}}
\index{osmo\_sccp\_user\_sap\_down@{osmo\_sccp\_user\_sap\_down}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_user\_sap\_down()}
{\footnotesize\ttfamily int osmo\+\_\+sccp\+\_\+user\+\_\+sap\+\_\+down (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$}]{scu,  }\item[{struct osmo\+\_\+prim\+\_\+hdr $\ast$}]{oph }\end{DoxyParamCaption})}



Main entrance function for primitives from SCCP User. 

Implies a msgb\+\_\+free(oph-\/$>$msg), otherwise the same as osmo\+\_\+sccp\+\_\+user\+\_\+sap(). 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em scu} & SCCP User sending us the primitive \\
\hline
\mbox{\texttt{ in}}  & {\em oph} & Osmocom primitive sent by the user \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative on error 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+scu\+\_\+prim\+::oph}, and \textbf{ osmo\+\_\+sccp\+\_\+user\+\_\+sap\+\_\+down\+\_\+nofree()}.



Referenced by \textbf{ osmo\+\_\+sccp\+\_\+tx\+\_\+conn\+\_\+req()}, \textbf{ osmo\+\_\+sccp\+\_\+tx\+\_\+conn\+\_\+resp\+\_\+msg()}, \textbf{ osmo\+\_\+sccp\+\_\+tx\+\_\+data()}, \textbf{ osmo\+\_\+sccp\+\_\+tx\+\_\+disconn\+\_\+data()}, \textbf{ osmo\+\_\+sccp\+\_\+tx\+\_\+unitdata()}, and \textbf{ sccp\+\_\+scmg\+\_\+tx()}.

\mbox{\label{sccp__sap_8h_a1e856f6b6f7d9533aca0ddab9e045226}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_user\_sap\_down\_nofree@{osmo\_sccp\_user\_sap\_down\_nofree}}
\index{osmo\_sccp\_user\_sap\_down\_nofree@{osmo\_sccp\_user\_sap\_down\_nofree}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_user\_sap\_down\_nofree()}
{\footnotesize\ttfamily int osmo\+\_\+sccp\+\_\+user\+\_\+sap\+\_\+down\+\_\+nofree (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$}]{scu,  }\item[{struct osmo\+\_\+prim\+\_\+hdr $\ast$}]{oph }\end{DoxyParamCaption})}



Main entrance function for primitives from SCCP User. 

The caller is required to free oph-\/$>$msg, otherwise the same as \doxyref{osmo\+\_\+sccp\+\_\+user\+\_\+sap\+\_\+down()}{p.}{sccp__sap_8c_a80a39e9ce7614bcd9715d28a72d8d1d8}. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em scu} & SCCP User sending us the primitive \\
\hline
\mbox{\texttt{ in}}  & {\em oph} & Osmocom primitive sent by the user \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative on error 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+scu\+\_\+connect\+\_\+param\+::conn\+\_\+id}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::connect}, \textbf{ sccp\+\_\+connection\+::fi}, \textbf{ sccp\+\_\+connection\+::inst}, \textbf{ osmo\+\_\+sccp\+\_\+user\+::inst}, \textbf{ LOGPSCU}, \textbf{ osmo\+\_\+scu\+\_\+prim\+::oph}, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+CONNECT}, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+DATA}, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+DISCONNECT}, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+RESET}, \textbf{ OSMO\+\_\+\+SCU\+\_\+\+PRIM\+\_\+\+N\+\_\+\+UNITDATA}, \textbf{ osmo\+\_\+scu\+\_\+prim\+\_\+name()}, \textbf{ sccp\+\_\+conn\+\_\+alloc()}, \textbf{ sccp\+\_\+find\+\_\+conn\+\_\+by\+\_\+id()}, \textbf{ sccp\+\_\+sclc\+\_\+user\+\_\+sap\+\_\+down\+\_\+nofree()}, \textbf{ scu\+\_\+prim\+\_\+conn\+\_\+id()}, \textbf{ scu\+\_\+scoc\+\_\+event\+\_\+map}, and \textbf{ osmo\+\_\+scu\+\_\+prim\+::u}.



Referenced by \textbf{ osmo\+\_\+sccp\+\_\+user\+\_\+sap\+\_\+down()}.

\mbox{\label{sccp__sap_8h_a232a3859dff9bb004f12999c9717c82c}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_user\_set\_priv@{osmo\_sccp\_user\_set\_priv}}
\index{osmo\_sccp\_user\_set\_priv@{osmo\_sccp\_user\_set\_priv}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_user\_set\_priv()}
{\footnotesize\ttfamily void osmo\+\_\+sccp\+\_\+user\+\_\+set\+\_\+priv (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$}]{scu,  }\item[{void $\ast$}]{priv }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+sccp\+\_\+user\+::priv}.

\mbox{\label{sccp__sap_8h_ae2b5a2f259d5c4cf9b0e9dd9ba298665}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_user\_unbind@{osmo\_sccp\_user\_unbind}}
\index{osmo\_sccp\_user\_unbind@{osmo\_sccp\_user\_unbind}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_user\_unbind()}
{\footnotesize\ttfamily void osmo\+\_\+sccp\+\_\+user\+\_\+unbind (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+sccp\+\_\+user} $\ast$}]{scu }\end{DoxyParamCaption})}



Unbind a given SCCP user. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em scu} & SCCP User which is to be un-\/bound. Will be destroyed at the time this function returns. \\
\hline
\end{DoxyParams}


References \textbf{ LOGPSCU}, and \textbf{ sccp\+\_\+user\+\_\+free()}.



Referenced by \textbf{ osmo\+\_\+sccp\+\_\+instance\+\_\+destroy()}.

\mbox{\label{sccp__sap_8h_a6d4d5f16593e9d3f087228dd064dc3ef}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_vty\_init@{osmo\_sccp\_vty\_init}}
\index{osmo\_sccp\_vty\_init@{osmo\_sccp\_vty\_init}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_vty\_init()}
{\footnotesize\ttfamily void osmo\+\_\+sccp\+\_\+vty\+\_\+init (\begin{DoxyParamCaption}\item[{void}]{ }\end{DoxyParamCaption})}



References \textbf{ gen\+\_\+sccp\+\_\+timer\+\_\+cmd\+\_\+strs()}.

\mbox{\label{sccp__sap_8h_a4a0d3e2c8c9135326cf427fbd07ee785}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_scu\_prim\_hdr\_name\_buf@{osmo\_scu\_prim\_hdr\_name\_buf}}
\index{osmo\_scu\_prim\_hdr\_name\_buf@{osmo\_scu\_prim\_hdr\_name\_buf}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_scu\_prim\_hdr\_name\_buf()}
{\footnotesize\ttfamily int osmo\+\_\+scu\+\_\+prim\+\_\+hdr\+\_\+name\+\_\+buf (\begin{DoxyParamCaption}\item[{char $\ast$}]{buf,  }\item[{size\+\_\+t}]{buflen,  }\item[{const struct osmo\+\_\+prim\+\_\+hdr $\ast$}]{oph }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+scu\+\_\+prim\+\_\+type\+\_\+name()}.



Referenced by \textbf{ osmo\+\_\+scu\+\_\+prim\+\_\+hdr\+\_\+name\+\_\+c()}, and \textbf{ osmo\+\_\+scu\+\_\+prim\+\_\+name()}.

\mbox{\label{sccp__sap_8h_a27a4c463624ef3845af7d9e1d6b9e170}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_scu\_prim\_hdr\_name\_c@{osmo\_scu\_prim\_hdr\_name\_c}}
\index{osmo\_scu\_prim\_hdr\_name\_c@{osmo\_scu\_prim\_hdr\_name\_c}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_scu\_prim\_hdr\_name\_c()}
{\footnotesize\ttfamily char $\ast$ osmo\+\_\+scu\+\_\+prim\+\_\+hdr\+\_\+name\+\_\+c (\begin{DoxyParamCaption}\item[{void $\ast$}]{ctx,  }\item[{const struct osmo\+\_\+prim\+\_\+hdr $\ast$}]{oph }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+scu\+\_\+prim\+\_\+hdr\+\_\+name\+\_\+buf()}.

\mbox{\label{sccp__sap_8h_ac79050659ecf2f0f5f4921715b386ce4}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_scu\_prim\_name@{osmo\_scu\_prim\_name}}
\index{osmo\_scu\_prim\_name@{osmo\_scu\_prim\_name}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_scu\_prim\_name()}
{\footnotesize\ttfamily char $\ast$ osmo\+\_\+scu\+\_\+prim\+\_\+name (\begin{DoxyParamCaption}\item[{const struct osmo\+\_\+prim\+\_\+hdr $\ast$}]{oph }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+scu\+\_\+prim\+\_\+hdr\+\_\+name\+\_\+buf()}, and \textbf{ prim\+\_\+name\+\_\+buf}.



Referenced by \textbf{ osmo\+\_\+sccp\+\_\+user\+\_\+sap\+\_\+down\+\_\+nofree()}, \textbf{ sccp\+\_\+sclc\+\_\+user\+\_\+sap\+\_\+down\+\_\+nofree()}, \textbf{ sccp\+\_\+user\+\_\+prim\+\_\+up()}, \textbf{ scmg\+\_\+prim\+\_\+cb()}, \textbf{ xua\+\_\+opt\+\_\+data\+\_\+cache\+\_\+keep()}, and \textbf{ xua\+\_\+opt\+\_\+data\+\_\+check\+\_\+drop()}.

\mbox{\label{sccp__sap_8h_a936f5cb2f3b284a411389f6070758c96}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_scu\_prim\_type\_name@{osmo\_scu\_prim\_type\_name}}
\index{osmo\_scu\_prim\_type\_name@{osmo\_scu\_prim\_type\_name}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_scu\_prim\_type\_name()}
{\footnotesize\ttfamily static const char $\ast$ osmo\+\_\+scu\+\_\+prim\+\_\+type\+\_\+name (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+scu\+\_\+prim\+\_\+type}}]{val }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ osmo\+\_\+scu\+\_\+prim\+\_\+type\+\_\+names}.



Referenced by \textbf{ osmo\+\_\+scu\+\_\+prim\+\_\+hdr\+\_\+name\+\_\+buf()}.



\doxysubsection{Variable Documentation}
\mbox{\label{sccp__sap_8h_ae1bde590c466d405e70b9b804527c1ad}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_gti\_names@{osmo\_sccp\_gti\_names}}
\index{osmo\_sccp\_gti\_names@{osmo\_sccp\_gti\_names}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_gti\_names}
{\footnotesize\ttfamily const struct value\+\_\+string osmo\+\_\+sccp\+\_\+gti\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ osmo\+\_\+sccp\+\_\+gti\+\_\+name()}.

\mbox{\label{sccp__sap_8h_a3c04df19759d08735f59de6af9678edf}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_rem\_sccp\_status\_names@{osmo\_sccp\_rem\_sccp\_status\_names}}
\index{osmo\_sccp\_rem\_sccp\_status\_names@{osmo\_sccp\_rem\_sccp\_status\_names}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_rem\_sccp\_status\_names}
{\footnotesize\ttfamily const struct value\+\_\+string osmo\+\_\+sccp\+\_\+rem\+\_\+sccp\+\_\+status\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ osmo\+\_\+sccp\+\_\+rem\+\_\+sccp\+\_\+status\+\_\+name()}.

\mbox{\label{sccp__sap_8h_a7d2dbcc6dbd2e8f75fb6e75ba2bfe28b}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_routing\_ind\_names@{osmo\_sccp\_routing\_ind\_names}}
\index{osmo\_sccp\_routing\_ind\_names@{osmo\_sccp\_routing\_ind\_names}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_routing\_ind\_names}
{\footnotesize\ttfamily const struct value\+\_\+string osmo\+\_\+sccp\+\_\+routing\+\_\+ind\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ osmo\+\_\+sccp\+\_\+routing\+\_\+ind\+\_\+name()}.

\mbox{\label{sccp__sap_8h_a27e007aa3158d15fb27a6c28957935c2}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_sp\_status\_names@{osmo\_sccp\_sp\_status\_names}}
\index{osmo\_sccp\_sp\_status\_names@{osmo\_sccp\_sp\_status\_names}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_sp\_status\_names}
{\footnotesize\ttfamily const struct value\+\_\+string osmo\+\_\+sccp\+\_\+sp\+\_\+status\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ osmo\+\_\+sccp\+\_\+sp\+\_\+status\+\_\+name()}.

\mbox{\label{sccp__sap_8h_a5fed5e157ab1a93095318b73beb22813}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_sccp\_ssn\_names@{osmo\_sccp\_ssn\_names}}
\index{osmo\_sccp\_ssn\_names@{osmo\_sccp\_ssn\_names}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_sccp\_ssn\_names}
{\footnotesize\ttfamily const struct value\+\_\+string osmo\+\_\+sccp\+\_\+ssn\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ osmo\+\_\+sccp\+\_\+ssn\+\_\+name()}.

\mbox{\label{sccp__sap_8h_af01add5b9ac72524cf20285d60ffb717}} 
\index{sccp\_sap.h@{sccp\_sap.h}!osmo\_scu\_prim\_type\_names@{osmo\_scu\_prim\_type\_names}}
\index{osmo\_scu\_prim\_type\_names@{osmo\_scu\_prim\_type\_names}!sccp\_sap.h@{sccp\_sap.h}}
\doxysubsubsection{osmo\_scu\_prim\_type\_names}
{\footnotesize\ttfamily const struct value\+\_\+string osmo\+\_\+scu\+\_\+prim\+\_\+type\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ osmo\+\_\+scu\+\_\+prim\+\_\+type\+\_\+name()}.

