\doxysection{ss7\+\_\+asp.\+h}
\label{ss7__asp_8h_source}\index{src/ss7\_asp.h@{src/ss7\_asp.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\ <stdint.h>}}
\DoxyCodeLine{00004\ \textcolor{preprocessor}{\#include\ <osmocom/core/linuxlist.h>}}
\DoxyCodeLine{00005\ \textcolor{preprocessor}{\#include\ <osmocom/core/fsm.h>}}
\DoxyCodeLine{00006\ \textcolor{preprocessor}{\#include\ <osmocom/core/msgb.h>}}
\DoxyCodeLine{00007\ \textcolor{preprocessor}{\#include\ <osmocom/core/tdef.h>}}
\DoxyCodeLine{00008\ \textcolor{preprocessor}{\#include\ <osmocom/netif/stream.h>}}
\DoxyCodeLine{00009\ }
\DoxyCodeLine{00010\ \textcolor{preprocessor}{\#include\ <osmocom/sigtran/osmo\_ss7.h>}}
\DoxyCodeLine{00011\ }
\DoxyCodeLine{00012\ \textcolor{preprocessor}{\#include\ "{}ss7\_asp\_peer.h"{}}}
\DoxyCodeLine{00013\ \textcolor{preprocessor}{\#include\ "{}ss7\_internal.h"{}}}
\DoxyCodeLine{00014\ }
\DoxyCodeLine{00015\ \textcolor{comment}{/***********************************************************************}}
\DoxyCodeLine{00016\ \textcolor{comment}{\ *\ SS7\ Application\ Server\ Processes}}
\DoxyCodeLine{00017\ \textcolor{comment}{\ ***********************************************************************/}}
\DoxyCodeLine{00018\ }
\DoxyCodeLine{00019\ \textcolor{keyword}{struct\ }osmo\_ss7\_instance;}
\DoxyCodeLine{00020\ \textcolor{keyword}{struct\ }osmo\_xua\_layer\_manager;}
\DoxyCodeLine{00021\ }
\DoxyCodeLine{00022\ \textcolor{keyword}{enum}\ ss7\_asp\_xua\_timer\ \{}
\DoxyCodeLine{00023\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ 0\ kept\ unused\ on\ purpose\ since\ it's\ handled\ specially\ by\ osmo\_fsm\ */}}
\DoxyCodeLine{00024\ \ \ \ \ \ \ \ \ SS7\_ASP\_XUA\_T\_ACK\ =\ 1,\ \textcolor{comment}{/*\ RFC3868\ \&\ RFC4666\ timer\ T(ack)\ */}}
\DoxyCodeLine{00025\ \ \ \ \ \ \ \ \ SS7\_ASP\_XUA\_T\_BEAT,\ \textcolor{comment}{/*\ RFC3868\ \&\ RFC4666\ timer\ T(beat)\ */}}
\DoxyCodeLine{00026\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ This\ must\ remain\ the\ last\ item:\ */}}
\DoxyCodeLine{00027\ \ \ \ \ \ \ \ \ SS7\_ASP\_XUA\_TIMERS\_LEN}
\DoxyCodeLine{00028\ \};}
\DoxyCodeLine{00029\ \textcolor{keyword}{extern}\ \textcolor{keyword}{const}\ \textcolor{keyword}{struct\ }value\_string\ ss7\_asp\_xua\_timer\_names[];}
\DoxyCodeLine{00030\ \textcolor{keyword}{extern}\ \textcolor{keyword}{const}\ \textcolor{keyword}{struct\ }osmo\_tdef\ ss7\_asp\_xua\_timer\_defaults[SS7\_ASP\_XUA\_TIMERS\_LEN];}
\DoxyCodeLine{00031\ \textcolor{comment}{/*\ According\ to\ SUA\ RFC3868\ Section\ 8,\ M3UA\ RFC4666\ Section\ 4.3.4.1\ */}}
\DoxyCodeLine{00032\ \textcolor{preprocessor}{\#define\ SS7\_ASP\_XUA\_DEFAULT\_T\_ACK\_SEC\ \ \ 2}}
\DoxyCodeLine{00033\ \textcolor{comment}{/*\ According\ to\ SUA\ RFC3868\ Section\ 8\ */}}
\DoxyCodeLine{00034\ \textcolor{preprocessor}{\#define\ SS7\_ASP\_XUA\_DEFAULT\_T\_BEAT\_SEC\ \ 30}}
\DoxyCodeLine{00035\ }
\DoxyCodeLine{00036\ \textcolor{keyword}{enum}\ ss7\_asp\_ctr\ \{}
\DoxyCodeLine{00037\ \ \ \ \ \ \ \ \ SS7\_ASP\_CTR\_PKT\_RX\_TOTAL,}
\DoxyCodeLine{00038\ \ \ \ \ \ \ \ \ SS7\_ASP\_CTR\_PKT\_RX\_UNKNOWN,}
\DoxyCodeLine{00039\ \ \ \ \ \ \ \ \ SS7\_ASP\_CTR\_PKT\_TX\_TOTAL,}
\DoxyCodeLine{00040\ \};}
\DoxyCodeLine{00041\ }
\DoxyCodeLine{00042\ \textcolor{keyword}{struct\ }osmo\_ss7\_asp\ \{}
\DoxyCodeLine{00044\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }llist\_head\ list;}
\DoxyCodeLine{00045\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }osmo\_ss7\_instance\ *inst;}
\DoxyCodeLine{00046\ }
\DoxyCodeLine{00048\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }osmo\_fsm\_inst\ *fi;}
\DoxyCodeLine{00049\ }
\DoxyCodeLine{00051\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }osmo\_xua\_server\ *xua\_server;}
\DoxyCodeLine{00052\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }llist\_head\ siblings;}
\DoxyCodeLine{00053\ }
\DoxyCodeLine{00055\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }osmo\_stream\_cli\ *client;}
\DoxyCodeLine{00056\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }osmo\_stream\_srv\ *server;}
\DoxyCodeLine{00058\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{char}\ *sock\_name;}
\DoxyCodeLine{00059\ }
\DoxyCodeLine{00060\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ ASP\ Identifier\ for\ ASP-\/UP\ +\ NTFY,\ as\ received\ by\ the\ peer.}}
\DoxyCodeLine{00061\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ (In\ IPA\ ASPs\ it's\ used\ internally\ to\ hold\ 4-\/bit\ SLS).}}
\DoxyCodeLine{00062\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ FIXME:\ This\ should\ actually\ be\ stored\ in\ a\ AS-\/ASP\ relation,\ since\ it}}
\DoxyCodeLine{00063\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ \ \ \ \ \ \ \ can\ be\ different\ per\ AS,\ see\ RFC4666\ 3.5.1}}
\DoxyCodeLine{00064\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ "{}The\ optional\ ASP\ Identifier\ parameter\ contains\ a\ unique\ value\ that}}
\DoxyCodeLine{00065\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ *\ \ is\ locally\ significant\ among\ the\ ASPs\ that\ support\ an\ AS"{}.}}
\DoxyCodeLine{00066\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ */}}
\DoxyCodeLine{00067\ \ \ \ \ \ \ \ \ uint32\_t\ remote\_asp\_id;}
\DoxyCodeLine{00068\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ remote\_asp\_id\_present;}
\DoxyCodeLine{00069\ }
\DoxyCodeLine{00070\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ Layer\ Manager\ to\ which\ we\ talk\ */}}
\DoxyCodeLine{00071\ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keyword}{struct\ }osmo\_xua\_layer\_manager\ *lm;}
\DoxyCodeLine{00072\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{void}\ *lm\_priv;}
\DoxyCodeLine{00073\ }
\DoxyCodeLine{00075\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ dyn\_allocated;}
\DoxyCodeLine{00076\ }
\DoxyCodeLine{00078\ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ simple\_client\_allocated;}
\DoxyCodeLine{00079\ }
\DoxyCodeLine{00081\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }rate\_ctr\_group\ *ctrg;}
\DoxyCodeLine{00082\ }
\DoxyCodeLine{00084\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }msgb\ *pending\_msg;}
\DoxyCodeLine{00085\ }
\DoxyCodeLine{00086\ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ IPA\ proto\ ASP\ specific\ fields.\ */}}
\DoxyCodeLine{00087\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\{}
\DoxyCodeLine{00088\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ Incoming\ IPA\ PDUs\ have\ no\ SLS\ field,\ hence\ a\ potentially}}
\DoxyCodeLine{00089\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ unique\ one\ within\ AS\ is\ assigned\ to\ this\ ASP\ and\ applied}}
\DoxyCodeLine{00090\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ manually\ when\ received.\ */}}
\DoxyCodeLine{00091\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint8\_t\ sls:4;}
\DoxyCodeLine{00092\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ sls\_assigned;}
\DoxyCodeLine{00093\ \ \ \ \ \ \ \ \ \}\ ipa;}
\DoxyCodeLine{00094\ }
\DoxyCodeLine{00095\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\{}
\DoxyCodeLine{00096\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ enabled;}
\DoxyCodeLine{00097\ \ \ \ \ \ \ \ \ \}\ tcap;}
\DoxyCodeLine{00098\ }
\DoxyCodeLine{00099\ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\{}
\DoxyCodeLine{00100\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{char}\ *name;}
\DoxyCodeLine{00101\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{char}\ *description;}
\DoxyCodeLine{00102\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{enum}\ osmo\_ss7\_asp\_protocol\ proto;}
\DoxyCodeLine{00103\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{enum}\ osmo\_ss7\_asp\_admin\_state\ adm\_state;}
\DoxyCodeLine{00104\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ is\_server;}
\DoxyCodeLine{00105\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{enum}\ osmo\_ss7\_asp\_role\ role;}
\DoxyCodeLine{00106\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ role\_set\_by\_vty;}
\DoxyCodeLine{00107\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ trans\_role\_set\_by\_vty;}
\DoxyCodeLine{00108\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ Used\ internally\ by\ "{}asp"{}\ node\ to\ figure\ out\ if\ "{}no\ shutdown"{}}}
\DoxyCodeLine{00109\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ was\ done\ explicitly,\ in\ order\ to\ avoid\ automatic\ asp}}
\DoxyCodeLine{00110\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ reconfiguring/restart\ at\ go\_parent().}}
\DoxyCodeLine{00111\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ Can\ be\ dropped\ in\ the\ future\ once\ we\ make\ sure\ everybody\ uses}}
\DoxyCodeLine{00112\ \textcolor{comment}{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ *\ "{}[no]\ shutdown"{}\ explicitly\ in\ cfg\ files.\ */}}
\DoxyCodeLine{00113\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ explicit\_shutdown\_state\_by\_vty\_since\_node\_enter;}
\DoxyCodeLine{00114\ }
\DoxyCodeLine{00115\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }osmo\_ss7\_asp\_peer\ local;}
\DoxyCodeLine{00116\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }osmo\_ss7\_asp\_peer\ remote;}
\DoxyCodeLine{00117\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint8\_t\ qos\_class;}
\DoxyCodeLine{00118\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint32\_t\ quirks;}
\DoxyCodeLine{00119\ }
\DoxyCodeLine{00120\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ Whether\ to\ Tx\ xUA\ DAUD\ during\ ASP\ activation\ when\ in\ ASP\ role.\ */}}
\DoxyCodeLine{00121\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ daud\_act;}
\DoxyCodeLine{00122\ }
\DoxyCodeLine{00123\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ T\_defs\ used\ by\ the\ default\_lm:\ */}}
\DoxyCodeLine{00124\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }osmo\_tdef\ *T\_defs\_xua;}
\DoxyCodeLine{00125\ }
\DoxyCodeLine{00126\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{comment}{/*\ T\_defs\ used\ by\ the\ default\_lm:\ */}}
\DoxyCodeLine{00127\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }osmo\_tdef\ *T\_defs\_lm;}
\DoxyCodeLine{00128\ }
\DoxyCodeLine{00129\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\{}
\DoxyCodeLine{00130\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ num\_ostreams\_present;}
\DoxyCodeLine{00131\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ max\_instreams\_present;}
\DoxyCodeLine{00132\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ max\_attempts\_present;}
\DoxyCodeLine{00133\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ max\_init\_timeo\_present;}
\DoxyCodeLine{00134\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint16\_t\ num\_ostreams\_value;}
\DoxyCodeLine{00135\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint16\_t\ max\_instreams\_value;}
\DoxyCodeLine{00136\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint16\_t\ max\_attempts\_value;}
\DoxyCodeLine{00137\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint16\_t\ max\_init\_timeo\_value;\ \textcolor{comment}{/*\ ms\ */}}
\DoxyCodeLine{00138\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\ sctp\_init;}
\DoxyCodeLine{00139\ }
\DoxyCodeLine{00140\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{struct\ }\{}
\DoxyCodeLine{00141\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ keepalive\_enable;}
\DoxyCodeLine{00142\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ keepalive\_time\_present;}
\DoxyCodeLine{00143\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ keepalive\_intvl\_present;}
\DoxyCodeLine{00144\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ keepalive\_probes\_present;}
\DoxyCodeLine{00145\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{bool}\ user\_timeout\_present;}
\DoxyCodeLine{00146\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ keepalive\_time\_value;\ \textcolor{comment}{/*\ seconds\ */}}
\DoxyCodeLine{00147\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ keepalive\_intvl\_value;\ \textcolor{comment}{/*\ seconds\ */}}
\DoxyCodeLine{00148\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ keepalive\_probes\_value;}
\DoxyCodeLine{00149\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ user\_timeout\_value;\ \textcolor{comment}{/*\ milliseconds\ */}}
\DoxyCodeLine{00150\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\ tcp;}
\DoxyCodeLine{00151\ }
\DoxyCodeLine{00153\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ trans\_proto;}
\DoxyCodeLine{00154\ \ \ \ \ \ \ \ \ \}\ cfg;}
\DoxyCodeLine{00155\ \};}
\DoxyCodeLine{00156\ }
\DoxyCodeLine{00157\ \textcolor{keyword}{struct\ }osmo\_ss7\_asp\ *ss7\_asp\_alloc(\textcolor{keyword}{struct}\ osmo\_ss7\_instance\ *inst,\ \textcolor{keyword}{const}\ \textcolor{keywordtype}{char}\ *name,}
\DoxyCodeLine{00158\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uint16\_t\ remote\_port,\ uint16\_t\ local\_port,}
\DoxyCodeLine{00159\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keywordtype}{int}\ trans\_proto,\ \textcolor{keyword}{enum}\ osmo\_ss7\_asp\_protocol\ proto);}
\DoxyCodeLine{00160\ \textcolor{keywordtype}{bool}\ ss7\_asp\_set\_default\_peer\_hosts(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp);}
\DoxyCodeLine{00161\ \textcolor{keywordtype}{bool}\ ss7\_asp\_is\_started(\textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp);}
\DoxyCodeLine{00162\ \textcolor{keywordtype}{int}\ ss7\_asp\_get\_fd(\textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp);}
\DoxyCodeLine{00163\ \textcolor{keywordtype}{int}\ ss7\_asp\_disconnect\_stream(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp);}
\DoxyCodeLine{00164\ }
\DoxyCodeLine{00165\ \textcolor{keywordtype}{int}\ ss7\_asp\_apply\_tcp\_pars(\textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp);}
\DoxyCodeLine{00166\ \textcolor{keywordtype}{int}\ ss7\_asp\_apply\_peer\_primary\_address(\textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp);}
\DoxyCodeLine{00167\ \textcolor{keywordtype}{int}\ ss7\_asp\_apply\_primary\_address(\textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp);}
\DoxyCodeLine{00168\ \textcolor{keywordtype}{int}\ ss7\_asp\_apply\_new\_local\_address(\textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ loc\_idx);}
\DoxyCodeLine{00169\ \textcolor{keywordtype}{int}\ ss7\_asp\_apply\_drop\_local\_address(\textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ loc\_idx);}
\DoxyCodeLine{00170\ }
\DoxyCodeLine{00171\ \textcolor{keywordtype}{void}\ ss7\_asp\_restart\_after\_reconfigure(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp);}
\DoxyCodeLine{00172\ \textcolor{keywordtype}{void}\ osmo\_ss7\_asp\_remove\_default\_lm(\textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp);}
\DoxyCodeLine{00173\ }
\DoxyCodeLine{00174\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ ss7\_asp\_get\_all\_rctx(\textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,\ uint32\_t\ *rctx,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ rctx\_size,}
\DoxyCodeLine{00175\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ osmo\_ss7\_as\ *excl\_as);}
\DoxyCodeLine{00176\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ ss7\_asp\_get\_all\_rctx\_be(\textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp,\ uint32\_t\ *rctx,\ \textcolor{keywordtype}{unsigned}\ \textcolor{keywordtype}{int}\ rctx\_size,}
\DoxyCodeLine{00177\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ osmo\_ss7\_as\ *excl\_as);}
\DoxyCodeLine{00178\ }
\DoxyCodeLine{00179\ \textcolor{keywordtype}{int}\ ss7\_asp\_determine\_traf\_mode(\textcolor{keyword}{const}\ \textcolor{keyword}{struct}\ osmo\_ss7\_asp\ *asp);}
\DoxyCodeLine{00180\ }
\DoxyCodeLine{00181\ \textcolor{preprocessor}{\#define\ LOGPASP(asp,\ subsys,\ level,\ fmt,\ args\ ...)\ \(\backslash\)}}
\DoxyCodeLine{00182\ \textcolor{preprocessor}{\ \ \ \ \ \ \ \ \_LOGSS7((asp)-\/>inst,\ subsys,\ level,\ "{}ASP(\%s)\ "{}\ fmt,\ (asp)-\/>cfg.name,\ \#\#\ args)}}

\end{DoxyCode}
