\doxysection{include/osmocom/gsm/oap\+\_\+client.h File Reference}
\label{oap__client_8h}\index{include/osmocom/gsm/oap\_client.h@{include/osmocom/gsm/oap\_client.h}}
{\ttfamily \#include $<$stdint.\+h$>$}\newline
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ osmo\+\_\+oap\+\_\+client\+\_\+config}
\item 
struct \textbf{ osmo\+\_\+oap\+\_\+client\+\_\+state}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \textbf{ osmo\+\_\+oap\+\_\+client\+\_\+init} (struct \textbf{ osmo\+\_\+oap\+\_\+client\+\_\+config} $\ast$\textbf{ config}, struct \textbf{ osmo\+\_\+oap\+\_\+client\+\_\+state} $\ast$state)
\item 
int \textbf{ osmo\+\_\+oap\+\_\+client\+\_\+register} (struct \textbf{ osmo\+\_\+oap\+\_\+client\+\_\+state} $\ast$state, struct \textbf{ msgb} $\ast$$\ast$msg\+\_\+tx)
\item 
int \textbf{ osmo\+\_\+oap\+\_\+client\+\_\+handle} (struct \textbf{ osmo\+\_\+oap\+\_\+client\+\_\+state} $\ast$state, const struct \textbf{ msgb} $\ast$msg\+\_\+rx, struct \textbf{ msgb} $\ast$$\ast$msg\+\_\+tx)
\item 
struct \textbf{ msgb} $\ast$ \textbf{ osmo\+\_\+oap\+\_\+client\+\_\+encoded} (const struct \textbf{ osmo\+\_\+oap\+\_\+message} $\ast$oap\+\_\+client\+\_\+msg)
\end{DoxyCompactItemize}


\doxysubsection{Function Documentation}
\mbox{\label{oap__client_8h_a827c012e6a3393d723b823fa92234c86}} 
\index{oap\_client.h@{oap\_client.h}!osmo\_oap\_client\_encoded@{osmo\_oap\_client\_encoded}}
\index{osmo\_oap\_client\_encoded@{osmo\_oap\_client\_encoded}!oap\_client.h@{oap\_client.h}}
\doxysubsubsection{osmo\_oap\_client\_encoded()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ osmo\+\_\+oap\+\_\+client\+\_\+encoded (\begin{DoxyParamCaption}\item[{const struct \textbf{ osmo\+\_\+oap\+\_\+message} $\ast$}]{oap\+\_\+client\+\_\+msg }\end{DoxyParamCaption})}



References \textbf{ msg}, \textbf{ msgb\+\_\+alloc\+\_\+headroom()}, \textbf{ OSMO\+\_\+\+ASSERT}, and \textbf{ osmo\+\_\+oap\+\_\+encode()}.



Referenced by \textbf{ oap\+\_\+msg\+\_\+challenge\+\_\+response()}, and \textbf{ oap\+\_\+msg\+\_\+register()}.

\mbox{\label{oap__client_8h_a76c2a4c3ad73e7d83a96115d72e88ca5}} 
\index{oap\_client.h@{oap\_client.h}!osmo\_oap\_client\_handle@{osmo\_oap\_client\_handle}}
\index{osmo\_oap\_client\_handle@{osmo\_oap\_client\_handle}!oap\_client.h@{oap\_client.h}}
\doxysubsubsection{osmo\_oap\_client\_handle()}
{\footnotesize\ttfamily int osmo\+\_\+oap\+\_\+client\+\_\+handle (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+oap\+\_\+client\+\_\+state} $\ast$}]{state,  }\item[{const struct \textbf{ msgb} $\ast$}]{msg\+\_\+rx,  }\item[{struct \textbf{ msgb} $\ast$$\ast$}]{msg\+\_\+tx }\end{DoxyParamCaption})}



References \textbf{ data}, \textbf{ DLOAP}, \textbf{ get\+\_\+value\+\_\+string()}, \textbf{ gsm48\+\_\+gmm\+\_\+cause\+\_\+names}, \textbf{ handle\+\_\+challenge()}, \textbf{ LOGL\+\_\+\+ERROR}, \textbf{ LOGP}, \textbf{ osmo\+\_\+oap\+\_\+message\+::message\+\_\+type}, \textbf{ msgb\+\_\+l2}, \textbf{ msgb\+\_\+l2len()}, \textbf{ OAP\+\_\+\+MSGT\+\_\+\+CHALLENGE\+\_\+\+REQUEST}, \textbf{ OAP\+\_\+\+MSGT\+\_\+\+CHALLENGE\+\_\+\+RESULT}, \textbf{ OAP\+\_\+\+MSGT\+\_\+\+REGISTER\+\_\+\+ERROR}, \textbf{ OAP\+\_\+\+MSGT\+\_\+\+REGISTER\+\_\+\+REQUEST}, \textbf{ OAP\+\_\+\+MSGT\+\_\+\+REGISTER\+\_\+\+RESULT}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ osmo\+\_\+oap\+\_\+client\+\_\+register()}, \textbf{ osmo\+\_\+oap\+\_\+decode()}, \textbf{ osmo\+\_\+oap\+\_\+client\+\_\+state\+::registration\+\_\+failures}, and \textbf{ osmo\+\_\+oap\+\_\+client\+\_\+state\+::state}.

\mbox{\label{oap__client_8h_abd3bcd7cd68c725ba56c886d2fbb90d4}} 
\index{oap\_client.h@{oap\_client.h}!osmo\_oap\_client\_init@{osmo\_oap\_client\_init}}
\index{osmo\_oap\_client\_init@{osmo\_oap\_client\_init}!oap\_client.h@{oap\_client.h}}
\doxysubsubsection{osmo\_oap\_client\_init()}
{\footnotesize\ttfamily int osmo\+\_\+oap\+\_\+client\+\_\+init (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+oap\+\_\+client\+\_\+config} $\ast$}]{config,  }\item[{struct \textbf{ osmo\+\_\+oap\+\_\+client\+\_\+state} $\ast$}]{state }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+oap\+\_\+client\+\_\+state\+::client\+\_\+id}, \textbf{ config}, \textbf{ DLOAP}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGP}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ osmo\+\_\+oap\+\_\+client\+\_\+state\+::secret\+\_\+k}, \textbf{ osmo\+\_\+oap\+\_\+client\+\_\+state\+::secret\+\_\+opc}, and \textbf{ osmo\+\_\+oap\+\_\+client\+\_\+state\+::state}.

\mbox{\label{oap__client_8h_afebde9d8a1c470b3fa45e2920f46f831}} 
\index{oap\_client.h@{oap\_client.h}!osmo\_oap\_client\_register@{osmo\_oap\_client\_register}}
\index{osmo\_oap\_client\_register@{osmo\_oap\_client\_register}!oap\_client.h@{oap\_client.h}}
\doxysubsubsection{osmo\_oap\_client\_register()}
{\footnotesize\ttfamily int osmo\+\_\+oap\+\_\+client\+\_\+register (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+oap\+\_\+client\+\_\+state} $\ast$}]{state,  }\item[{struct \textbf{ msgb} $\ast$$\ast$}]{msg\+\_\+tx }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+oap\+\_\+client\+\_\+state\+::client\+\_\+id}, \textbf{ oap\+\_\+msg\+\_\+register()}, and \textbf{ osmo\+\_\+oap\+\_\+client\+\_\+state\+::state}.



Referenced by \textbf{ osmo\+\_\+oap\+\_\+client\+\_\+handle()}.

