\doxysection{xua\+\_\+internal.\+h}
\label{xua__internal_8h_source}\index{src/xua\_internal.h@{src/xua\_internal.h}}
\textbf{ Go to the documentation of this file.}
\begin{DoxyCode}{0}
\DoxyCodeLine{00001\ \textcolor{preprocessor}{\#pragma\ once}}
\DoxyCodeLine{00002\ }
\DoxyCodeLine{00003\ \textcolor{preprocessor}{\#include\ <osmocom/core/tdef.h>}}
\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ <osmocom/sigtran/osmo\_ss7.h>}}
\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ "{}xua\_msg.h"{}}}
\DoxyCodeLine{00006\ }
\DoxyCodeLine{00007\ \textcolor{preprocessor}{\#define\ M3UA\_MSG\_SIZE\ 2048}}
\DoxyCodeLine{00008\ \textcolor{preprocessor}{\#define\ M3UA\_MSG\_HEADROOM\ 512}}
\DoxyCodeLine{00009\ }
\DoxyCodeLine{00010\ \textcolor{keyword}{struct\ }osmo\_sccp\_addr;}
\DoxyCodeLine{00011\ \textcolor{keyword}{struct\ }m3ua\_data\_hdr;}
\DoxyCodeLine{00012\ }
\DoxyCodeLine{00013\ \textcolor{keywordtype}{int}\ sua\_addr\_parse\_part(\textcolor{keyword}{struct}\ osmo\_sccp\_addr\ *out,}
\DoxyCodeLine{00014\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ xua\_msg\_part\ *param);}
\DoxyCodeLine{00015\ \textcolor{keywordtype}{int}\ sua\_addr\_parse(\textcolor{keyword}{struct}\ osmo\_sccp\_addr\ *out,\ \textcolor{keyword}{struct}\ xua\_msg\ *xua,\ uint16\_t\ iei);}
\DoxyCodeLine{00016\ }
\DoxyCodeLine{00017\ \textcolor{keywordtype}{int}\ sua\_parse\_gt(\textcolor{keyword}{struct}\ osmo\_sccp\_gt\ *gt,\ \textcolor{keyword}{const}\ uint8\_t\ *data,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ datalen);}
\DoxyCodeLine{00018\ }
\DoxyCodeLine{00019\ \textcolor{keyword}{struct\ }xua\_msg\ *osmo\_sccp\_to\_xua(\textcolor{keyword}{struct}\ msgb\ *msg);}
\DoxyCodeLine{00020\ \textcolor{keyword}{struct\ }msgb\ *osmo\_sua\_to\_sccp(\textcolor{keyword}{struct}\ xua\_msg\ *xua);}
\DoxyCodeLine{00021\ }
\DoxyCodeLine{00022\ \textcolor{keywordtype}{int}\ sua\_rx\_msg(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,\ \textcolor{keyword}{struct}\ msgb\ *msg);}
\DoxyCodeLine{00023\ }
\DoxyCodeLine{00024\ \textcolor{keywordtype}{int}\ sua\_tx\_xua\_as(\textcolor{keyword}{struct}\ osmo\_ss7\_as\ *as,\ \textcolor{keyword}{struct}\ xua\_msg\ *xua);}
\DoxyCodeLine{00025\ \textcolor{keywordtype}{void}\ sua\_tx\_snm\_available(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,\ \textcolor{keyword}{const}\ uint32\_t\ *rctx,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ num\_rctx,}
\DoxyCodeLine{00026\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint32\_t\ *aff\_pc,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ num\_aff\_pc,\ \textcolor{keyword}{const}\ uint32\_t\ *aff\_ssn,}
\DoxyCodeLine{00027\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint32\_t\ *smi,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *info\_string,\ \textcolor{keywordtype}{bool}\ available);}
\DoxyCodeLine{00028\ \textcolor{keywordtype}{void}\ sua\_tx\_snm\_congestion(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,\ \textcolor{keyword}{const}\ uint32\_t\ *rctx,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ num\_rctx,}
\DoxyCodeLine{00029\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint32\_t\ *aff\_pc,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ num\_aff\_pc,\ \textcolor{keyword}{const}\ uint32\_t\ *ssn,}
\DoxyCodeLine{00030\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint8\_t\ cong\_level,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *info\_string);}
\DoxyCodeLine{00031\ \textcolor{keywordtype}{void}\ sua\_tx\_snm\_daud(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,\ \textcolor{keyword}{const}\ uint32\_t\ *rctx,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ num\_rctx,}
\DoxyCodeLine{00032\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint32\_t\ *aff\_pc,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ num\_aff\_pc,\ \textcolor{keyword}{const}\ uint32\_t\ *aff\_ssn,}
\DoxyCodeLine{00033\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint32\_t\ *smi,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *info\_string);}
\DoxyCodeLine{00034\ \textcolor{keywordtype}{void}\ sua\_tx\_dupu(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,\ \textcolor{keyword}{const}\ uint32\_t\ *rctx,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ num\_rctx,}
\DoxyCodeLine{00035\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint32\_t\ dpc,\ uint16\_t\ user,\ uint16\_t\ cause,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *info\_str);}
\DoxyCodeLine{00036\ }
\DoxyCodeLine{00037\ \textcolor{keyword}{struct\ }osmo\_mtp\_prim\ *m3ua\_to\_xfer\_ind(\textcolor{keyword}{struct}\ xua\_msg\ *xua);}
\DoxyCodeLine{00038\ \textcolor{keywordtype}{int}\ m3ua\_hmdc\_rx\_from\_l2(\textcolor{keyword}{struct}\ osmo\_ss7\_instance\ *inst,\ \textcolor{keyword}{struct}\ xua\_msg\ *xua);}
\DoxyCodeLine{00039\ \textcolor{keyword}{struct\ }msgb\ *m3ua\_to\_msg(\textcolor{keyword}{struct}\ xua\_msg\ *xua);}
\DoxyCodeLine{00040\ \textcolor{keywordtype}{int}\ m3ua\_tx\_xua\_as(\textcolor{keyword}{struct}\ osmo\_ss7\_as\ *as,\ \textcolor{keyword}{struct}\ xua\_msg\ *xua);}
\DoxyCodeLine{00041\ \textcolor{keywordtype}{void}\ m3ua\_tx\_snm\_available(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,\ \textcolor{keyword}{const}\ uint32\_t\ *rctx,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ num\_rctx,}
\DoxyCodeLine{00042\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint32\_t\ *aff\_pc,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ num\_aff\_pc,}
\DoxyCodeLine{00043\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *info\_string,\ \textcolor{keywordtype}{bool}\ available);}
\DoxyCodeLine{00044\ \textcolor{keywordtype}{void}\ m3ua\_tx\_snm\_congestion(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,\ \textcolor{keyword}{const}\ uint32\_t\ *rctx,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ num\_rctx,}
\DoxyCodeLine{00045\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint32\_t\ *aff\_pc,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ num\_aff\_pc,}
\DoxyCodeLine{00046\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint32\_t\ *concerned\_dpc,\ \textcolor{keyword}{const}\ uint8\_t\ *cong\_level,}
\DoxyCodeLine{00047\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *info\_string);}
\DoxyCodeLine{00048\ \textcolor{keywordtype}{void}\ m3ua\_tx\_snm\_daud(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,\ \textcolor{keyword}{const}\ uint32\_t\ *rctx,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ num\_rctx,}
\DoxyCodeLine{00049\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint32\_t\ *aff\_pc,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ num\_aff\_pc,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *info\_string);}
\DoxyCodeLine{00050\ \textcolor{keywordtype}{void}\ m3ua\_tx\_dupu(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,\ \textcolor{keyword}{const}\ uint32\_t\ *rctx,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ num\_rctx,}
\DoxyCodeLine{00051\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint32\_t\ dpc,\ uint16\_t\ user,\ uint16\_t\ cause,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *info\_str);}
\DoxyCodeLine{00052\ }
\DoxyCodeLine{00053\ \textcolor{keywordtype}{void}\ xua\_tx\_snm\_available(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,\ \textcolor{keyword}{const}\ uint32\_t\ *rctx,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ num\_rctx,}
\DoxyCodeLine{00054\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint32\_t\ *aff\_pc,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ num\_aff\_pc,}
\DoxyCodeLine{00055\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *info\_str,\ \textcolor{keywordtype}{bool}\ available);}
\DoxyCodeLine{00056\ }
\DoxyCodeLine{00057\ \textcolor{keywordtype}{void}\ xua\_snm\_rx\_daud(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,\ \textcolor{keyword}{struct}\ xua\_msg\ *xua);}
\DoxyCodeLine{00058\ \textcolor{keywordtype}{void}\ xua\_snm\_rx\_duna(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,\ \textcolor{keyword}{struct}\ osmo\_ss7\_as\ *as,\ \textcolor{keyword}{struct}\ xua\_msg\ *xua);}
\DoxyCodeLine{00059\ \textcolor{keywordtype}{void}\ xua\_snm\_rx\_dava(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,\ \textcolor{keyword}{struct}\ osmo\_ss7\_as\ *as,\ \textcolor{keyword}{struct}\ xua\_msg\ *xua);}
\DoxyCodeLine{00060\ \textcolor{keywordtype}{void}\ xua\_snm\_rx\_dupu(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,\ \textcolor{keyword}{struct}\ osmo\_ss7\_as\ *as,\ \textcolor{keyword}{struct}\ xua\_msg\ *xua);}
\DoxyCodeLine{00061\ \textcolor{keywordtype}{void}\ xua\_snm\_rx\_scon(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,\ \textcolor{keyword}{struct}\ osmo\_ss7\_as\ *as,\ \textcolor{keyword}{struct}\ xua\_msg\ *xua);}
\DoxyCodeLine{00062\ \textcolor{keywordtype}{int}\ m3ua\_rx\_msg(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,\ \textcolor{keyword}{struct}\ msgb\ *msg);}
\DoxyCodeLine{00063\ }
\DoxyCodeLine{00064\ \textcolor{keyword}{struct\ }msgb\ *m3ua\_msgb\_alloc(\textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *name);}
\DoxyCodeLine{00065\ \textcolor{keyword}{struct\ }xua\_msg\ *m3ua\_xfer\_from\_data(\textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ m3ua\_data\_hdr\ *data\_hdr,}
\DoxyCodeLine{00066\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint8\_t\ *data,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ data\_len);}
\DoxyCodeLine{00067\ \textcolor{keyword}{struct\ }m3ua\_data\_hdr\ *data\_hdr\_from\_m3ua(\textcolor{keyword}{struct}\ xua\_msg\ *xua);}
\DoxyCodeLine{00068\ \textcolor{keywordtype}{void}\ m3ua\_dh\_to\_xfer\_param(\textcolor{keyword}{struct}\ osmo\_mtp\_transfer\_param\ *param,}
\DoxyCodeLine{00069\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ m3ua\_data\_hdr\ *mdh);}
\DoxyCodeLine{00070\ \textcolor{keywordtype}{void}\ mtp\_xfer\_param\_to\_m3ua\_dh(\textcolor{keyword}{struct}\ m3ua\_data\_hdr\ *mdh,}
\DoxyCodeLine{00071\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ osmo\_mtp\_transfer\_param\ *param);}
\DoxyCodeLine{00072\ }
\DoxyCodeLine{00073\ }
\DoxyCodeLine{00074\ \textcolor{keyword}{extern}\ \textcolor{keyword}{const}\ \textcolor{keyword}{struct\ }xua\_msg\_class\ m3ua\_msg\_class\_mgmt;}
\DoxyCodeLine{00075\ \textcolor{keyword}{extern}\ \textcolor{keyword}{const}\ \textcolor{keyword}{struct\ }xua\_msg\_class\ m3ua\_msg\_class\_snm;}
\DoxyCodeLine{00076\ \textcolor{keyword}{extern}\ \textcolor{keyword}{const}\ \textcolor{keyword}{struct\ }xua\_msg\_class\ m3ua\_msg\_class\_rkm;}
\DoxyCodeLine{00077\ \textcolor{keyword}{extern}\ \textcolor{keyword}{const}\ \textcolor{keyword}{struct\ }xua\_msg\_class\ m3ua\_msg\_class\_aspsm;}
\DoxyCodeLine{00078\ \textcolor{keyword}{extern}\ \textcolor{keyword}{const}\ \textcolor{keyword}{struct\ }xua\_msg\_class\ m3ua\_msg\_class\_asptm;}
\DoxyCodeLine{00079\ }
\DoxyCodeLine{00080\ \textcolor{keyword}{extern}\ \textcolor{keyword}{const}\ \textcolor{keyword}{struct\ }value\_string\ m3ua\_err\_names[];}
\DoxyCodeLine{00081\ \textcolor{keyword}{extern}\ \textcolor{keyword}{const}\ \textcolor{keyword}{struct\ }value\_string\ m3ua\_ntfy\_type\_names[];}
\DoxyCodeLine{00082\ \textcolor{keyword}{extern}\ \textcolor{keyword}{const}\ \textcolor{keyword}{struct\ }value\_string\ m3ua\_ntfy\_stchg\_names[];}
\DoxyCodeLine{00083\ \textcolor{keyword}{extern}\ \textcolor{keyword}{const}\ \textcolor{keyword}{struct\ }value\_string\ m3ua\_ntfy\_other\_names[];}
\DoxyCodeLine{00084\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *m3ua\_ntfy\_info\_name(uint16\_t\ ntfy\_status\_type,\ uint16\_t\ ntfy\_status\_info);}
\DoxyCodeLine{00085\ }
\DoxyCodeLine{00086\ \textcolor{keyword}{struct\ }xua\_msg\ *m3ua\_encode\_notify(\textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ osmo\_xlm\_prim\_notify\ *npar);}
\DoxyCodeLine{00087\ \textcolor{keywordtype}{int}\ m3ua\_decode\_notify(\textcolor{keyword}{struct}\ osmo\_xlm\_prim\_notify\ *npar,\ \textcolor{keywordtype}{void}\ *ctx,}
\DoxyCodeLine{00088\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ xua\_msg\ *xua);}
\DoxyCodeLine{00089\ \textcolor{keywordtype}{int}\ m3ua\_rx\_rkm(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,\ \textcolor{keyword}{struct}\ xua\_msg\ *xua);}
\DoxyCodeLine{00090\ \textcolor{keywordtype}{void}\ xua\_rkm\_cleanup\_dyn\_as\_for\_asp(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp);}
\DoxyCodeLine{00091\ }
\DoxyCodeLine{00092\ \textcolor{keyword}{struct\ }osmo\_xlm\_prim\ *xua\_xlm\_prim\_alloc(\textcolor{keyword}{enum}\ osmo\_xlm\_prim\_type\ prim\_type,}
\DoxyCodeLine{00093\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{enum}\ osmo\_prim\_operation\ op);}
\DoxyCodeLine{00094\ }
\DoxyCodeLine{00095\ \textcolor{keywordtype}{void}\ xua\_asp\_send\_xlm\_prim(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,\ \textcolor{keyword}{struct}\ osmo\_xlm\_prim\ *prim);}
\DoxyCodeLine{00096\ \textcolor{keywordtype}{void}\ xua\_asp\_send\_xlm\_prim\_simple(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,}
\DoxyCodeLine{00097\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{enum}\ osmo\_xlm\_prim\_type\ prim\_type,}
\DoxyCodeLine{00098\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{enum}\ osmo\_prim\_operation\ op);}
\DoxyCodeLine{00099\ }
\DoxyCodeLine{00100\ \textcolor{keywordtype}{void}\ xua\_snm\_pc\_available(\textcolor{keyword}{struct}\ osmo\_ss7\_as\ *as,\ \textcolor{keyword}{const}\ uint32\_t\ *aff\_pc,}
\DoxyCodeLine{00101\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ num\_aff\_pc,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *info\_str,\ \textcolor{keywordtype}{bool}\ available);}
\DoxyCodeLine{00102\ }
\DoxyCodeLine{00103\ \textcolor{keywordtype}{void}\ xua\_tx\_snm\_daud(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,\ \textcolor{keyword}{const}\ uint32\_t\ *rctx,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ num\_rctx,}
\DoxyCodeLine{00104\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint32\_t\ *aff\_pc,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ num\_aff\_pc,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *info\_str);}
\DoxyCodeLine{00105\ }
\DoxyCodeLine{00106\ \textcolor{keyword}{enum}\ ss7\_asp\_lm\_timer\ \{}
\DoxyCodeLine{00107\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ 0\ kept\ unused\ on\ purpose\ since\ it's\ handled\ specially\ by\ osmo\_fsm\ */}}
\DoxyCodeLine{00108\ \ \ \ \ \ \ \ \ SS7\_ASP\_LM\_T\_WAIT\_ASP\_UP\ =\ 1,}
\DoxyCodeLine{00109\ \ \ \ \ \ \ \ \ SS7\_ASP\_LM\_T\_WAIT\_NOTIFY,}
\DoxyCodeLine{00110\ \ \ \ \ \ \ \ \ SS7\_ASP\_LM\_T\_WAIT\_NOTIY\_RKM,}
\DoxyCodeLine{00111\ \ \ \ \ \ \ \ \ SS7\_ASP\_LM\_T\_WAIT\_RK\_REG\_RESP,}
\DoxyCodeLine{00112\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ This\ must\ remain\ the\ last\ item:\ */}}
\DoxyCodeLine{00113\ \ \ \ \ \ \ \ \ SS7\_ASP\_LM\_TIMERS\_LEN}
\DoxyCodeLine{00114\ \};}
\DoxyCodeLine{00115\ }
\DoxyCodeLine{00116\ \textcolor{keyword}{extern}\ \textcolor{keyword}{const}\ \textcolor{keyword}{struct\ }osmo\_tdef\ ss7\_asp\_lm\_timer\_defaults[SS7\_ASP\_LM\_TIMERS\_LEN];}
\DoxyCodeLine{00117\ }
\DoxyCodeLine{00118\ \textcolor{keyword}{extern}\ \textcolor{keyword}{const}\ \textcolor{keyword}{struct\ }value\_string\ ss7\_asp\_lm\_timer\_names[];}
\DoxyCodeLine{00119\ \textcolor{keyword}{static}\ \textcolor{keyword}{inline}\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *ss7\_asp\_lm\_timer\_name(\textcolor{keyword}{enum}\ ss7\_asp\_lm\_timer\ val)}
\DoxyCodeLine{00120\ \{\ \textcolor{keywordflow}{return}\ get\_value\_string(ss7\_asp\_lm\_timer\_names,\ val);\ \}}
\DoxyCodeLine{00121\ }
\DoxyCodeLine{00122\ \textcolor{keyword}{extern}\ \textcolor{keyword}{struct\ }osmo\_fsm\ xua\_default\_lm\_fsm;}
\DoxyCodeLine{00123\ \textcolor{keyword}{extern}\ \textcolor{keyword}{const}\ \textcolor{keyword}{struct\ }value\_string\ m3ua\_rkm\_reg\_status\_vals[];}
\DoxyCodeLine{00124\ \textcolor{keyword}{extern}\ \textcolor{keyword}{const}\ \textcolor{keyword}{struct\ }value\_string\ m3ua\_rkm\_dereg\_status\_vals[];}
\DoxyCodeLine{00125\ }
\DoxyCodeLine{00126\ \textcolor{keywordtype}{int}\ xua\_as\_transmit\_msg(\textcolor{keyword}{struct}\ osmo\_ss7\_as\ *as,\ \textcolor{keyword}{struct}\ xua\_msg\ *xua);}
\DoxyCodeLine{00127\ }
\DoxyCodeLine{00128\ \textcolor{keywordtype}{int}\ xua\_find\_as\_for\_asp(\textcolor{keyword}{struct}\ osmo\_ss7\_as\ **as,\ \textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,}
\DoxyCodeLine{00129\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ xua\_msg\_part\ *rctx\_ie);}
\DoxyCodeLine{00130\ }
\DoxyCodeLine{00131\ \textcolor{keyword}{struct\ }msgb\ *ipa\_gen\_ping(\textcolor{keywordtype}{void});}
\DoxyCodeLine{00132\ \textcolor{keyword}{struct\ }msgb\ *ipa\_to\_msg(\textcolor{keyword}{struct}\ xua\_msg\ *xua);}
\DoxyCodeLine{00133\ \textcolor{keywordtype}{int}\ ipa\_tx\_xua\_as(\textcolor{keyword}{struct}\ osmo\_ss7\_as\ *as,\ \textcolor{keyword}{struct}\ xua\_msg\ *xua);}
\DoxyCodeLine{00134\ \textcolor{keywordtype}{int}\ ipa\_rx\_msg(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,\ \textcolor{keyword}{struct}\ msgb\ *msg,\ uint8\_t\ sls);}
\DoxyCodeLine{00135\ \textcolor{keyword}{struct\ }osmo\_ss7\_as\ *ipa\_find\_as\_for\_asp(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp);}
\DoxyCodeLine{00136\ }
\DoxyCodeLine{00137\ \textcolor{keywordtype}{int}\ osmo\_isup\_party\_parse(\textcolor{keywordtype}{char}\ *out\_digits,\ \textcolor{keyword}{const}\ uint8\_t\ *in,}
\DoxyCodeLine{00138\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ in\_num\_bytes,\ \textcolor{keywordtype}{bool}\ odd);}
\DoxyCodeLine{00139\ \textcolor{keywordtype}{int}\ osmo\_sccp\_addr\_parse(\textcolor{keyword}{struct}\ osmo\_sccp\_addr\ *out,}
\DoxyCodeLine{00140\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ uint8\_t\ *addr,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ addrlen);}
\DoxyCodeLine{00141\ \textcolor{keywordtype}{int}\ osmo\_sccp\_addr\_encode(\textcolor{keyword}{struct}\ msgb\ *msg,\ \textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ osmo\_sccp\_addr\ *in);}
\DoxyCodeLine{00142\ }
\DoxyCodeLine{00143\ \textcolor{keywordtype}{int}\ ss7\_asp\_rx\_unknown(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,\ \textcolor{keywordtype}{int}\ ppid\_mux,\ \textcolor{keyword}{struct}\ msgb\ *msg);}

\end{DoxyCode}
