\doxysection{include/osmocom/gsm/ipa.h File Reference}
\label{ipa_8h}\index{include/osmocom/gsm/ipa.h@{include/osmocom/gsm/ipa.h}}
{\ttfamily \#include $<$stdint.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/msgb.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gsm/tlv.\+h$>$}\newline
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ ipaccess\+\_\+unit}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
const char $\ast$ \textbf{ ipa\+\_\+ccm\+\_\+idtag\+\_\+name} (uint8\+\_\+t tag)
\item 
int \textbf{ ipa\+\_\+ccm\+\_\+idtag\+\_\+parse} (struct \textbf{ tlv\+\_\+parsed} $\ast$dec, unsigned char $\ast$buf, int \textbf{ len}) \textbf{ OSMO\+\_\+\+DEPRECATED}(\char`\"{}Use ipa\+\_\+ccm\+\_\+id\+\_\+
\item 
int \textbf{ ipa\+\_\+ccm\+\_\+idtag\+\_\+parse\+\_\+off} (struct \textbf{ tlv\+\_\+parsed} $\ast$dec, unsigned char $\ast$buf, int \textbf{ len}, const int len\+\_\+offset) \textbf{ OSMO\+\_\+\+DEPRECATED\+\_\+\+OUTSIDE}(\char`\"{}Use ipa\+\_\+ccm\+\_\+id\+\_\+
\item 
int \textbf{ ipa\+\_\+ccm\+\_\+id\+\_\+get\+\_\+parse} (struct \textbf{ tlv\+\_\+parsed} $\ast$dec, const uint8\+\_\+t $\ast$buf, unsigned int \textbf{ len})
\begin{DoxyCompactList}\small\item\em Parse the payload part of an IPA CCM ID GET, return \doxyref{tlv\+\_\+parsed}{p.}{structtlv__parsed} format. \end{DoxyCompactList}\item 
int \textbf{ ipa\+\_\+ccm\+\_\+id\+\_\+resp\+\_\+parse} (struct \textbf{ tlv\+\_\+parsed} $\ast$dec, const uint8\+\_\+t $\ast$buf, unsigned int \textbf{ len})
\begin{DoxyCompactList}\small\item\em Parse the payload part of an IPA CCM ID RESP, return \doxyref{tlv\+\_\+parsed}{p.}{structtlv__parsed} format. \end{DoxyCompactList}\item 
int \textbf{ ipa\+\_\+parse\+\_\+unitid} (const char $\ast$str, struct \textbf{ ipaccess\+\_\+unit} $\ast$unit\+\_\+data)
\item 
int \textbf{ ipa\+\_\+ccm\+\_\+tlv\+\_\+to\+\_\+unitdata} (struct \textbf{ ipaccess\+\_\+unit} $\ast$ud, const struct \textbf{ tlv\+\_\+parsed} $\ast$tp)
\begin{DoxyCompactList}\small\item\em Fill ud struct from tp structure. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ ipa\+\_\+ccm\+\_\+make\+\_\+id\+\_\+resp} (const struct \textbf{ ipaccess\+\_\+unit} $\ast$dev, const uint8\+\_\+t $\ast$ies\+\_\+req, unsigned int num\+\_\+ies\+\_\+req)
\begin{DoxyCompactList}\small\item\em Generate IPA CCM ID RESP based on list of IEs. \end{DoxyCompactList}\item 
struct \textbf{ msgb} $\ast$ \textbf{ ipa\+\_\+ccm\+\_\+make\+\_\+id\+\_\+resp\+\_\+from\+\_\+req} (const struct \textbf{ ipaccess\+\_\+unit} $\ast$dev, const uint8\+\_\+t $\ast$\textbf{ data}, unsigned int \textbf{ len})
\begin{DoxyCompactList}\small\item\em Generate IPA CCM ID RESP based on requets payload. \end{DoxyCompactList}\item 
int \textbf{ ipa\+\_\+send} (int \textbf{ fd}, const void $\ast$\textbf{ msg}, size\+\_\+t msglen)
\item 
int \textbf{ ipa\+\_\+ccm\+\_\+send\+\_\+pong} (int \textbf{ fd})
\item 
int \textbf{ ipa\+\_\+ccm\+\_\+send\+\_\+id\+\_\+ack} (int \textbf{ fd})
\item 
int \textbf{ ipa\+\_\+ccm\+\_\+send\+\_\+id\+\_\+req} (int \textbf{ fd})
\item 
int \textbf{ ipa\+\_\+ccm\+\_\+rcvmsg\+\_\+base} (struct \textbf{ msgb} $\ast$\textbf{ msg}, struct \textbf{ osmo\+\_\+fd} $\ast$bfd)
\item 
int \textbf{ ipa\+\_\+ccm\+\_\+rcvmsg\+\_\+bts\+\_\+base} (struct \textbf{ msgb} $\ast$\textbf{ msg}, struct \textbf{ osmo\+\_\+fd} $\ast$bfd)
\item 
void \textbf{ ipa\+\_\+prepend\+\_\+header\+\_\+ext} (struct \textbf{ msgb} $\ast$\textbf{ msg}, int \textbf{ proto})
\item 
void \textbf{ ipa\+\_\+prepend\+\_\+header} (struct \textbf{ msgb} $\ast$\textbf{ msg}, int \textbf{ proto})
\item 
struct \textbf{ msgb} $\ast$ \textbf{ ipa\+\_\+msg\+\_\+alloc} (int headroom)
\item 
int \textbf{ ipa\+\_\+msg\+\_\+recv} (int \textbf{ fd}, struct \textbf{ msgb} $\ast$$\ast$rmsg)
\item 
int \textbf{ ipa\+\_\+msg\+\_\+recv\+\_\+buffered} (int \textbf{ fd}, struct \textbf{ msgb} $\ast$$\ast$rmsg, struct \textbf{ msgb} $\ast$$\ast$tmp\+\_\+msg)
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
\+\_\+parse \textbf{ instead}
\end{DoxyCompactItemize}


\doxysubsection{Function Documentation}
\mbox{\label{ipa_8h_ac75f1926b9c685baf241a906f5f3efc2}} 
\index{ipa.h@{ipa.h}!ipa\_ccm\_idtag\_parse@{ipa\_ccm\_idtag\_parse}}
\index{ipa\_ccm\_idtag\_parse@{ipa\_ccm\_idtag\_parse}!ipa.h@{ipa.h}}
\doxysubsubsection{ipa\_ccm\_idtag\_parse()}
{\footnotesize\ttfamily int ipa\+\_\+ccm\+\_\+idtag\+\_\+parse (\begin{DoxyParamCaption}\item[{struct \textbf{ tlv\+\_\+parsed} $\ast$}]{dec,  }\item[{unsigned char $\ast$}]{buf,  }\item[{int}]{len }\end{DoxyParamCaption})}

\mbox{\label{ipa_8h_aebd9ad9622a76efb4a33b6cb2faffaa1}} 
\index{ipa.h@{ipa.h}!ipa\_ccm\_idtag\_parse\_off@{ipa\_ccm\_idtag\_parse\_off}}
\index{ipa\_ccm\_idtag\_parse\_off@{ipa\_ccm\_idtag\_parse\_off}!ipa.h@{ipa.h}}
\doxysubsubsection{ipa\_ccm\_idtag\_parse\_off()}
{\footnotesize\ttfamily int ipa\+\_\+ccm\+\_\+idtag\+\_\+parse\+\_\+off (\begin{DoxyParamCaption}\item[{struct \textbf{ tlv\+\_\+parsed} $\ast$}]{dec,  }\item[{unsigned char $\ast$}]{buf,  }\item[{int}]{len,  }\item[{const int}]{len\+\_\+offset }\end{DoxyParamCaption})}

\mbox{\label{ipa_8h_a87457ae1d72bc4f9aade1ea94bf393c8}} 
\index{ipa.h@{ipa.h}!ipa\_msg\_recv@{ipa\_msg\_recv}}
\index{ipa\_msg\_recv@{ipa\_msg\_recv}!ipa.h@{ipa.h}}
\doxysubsubsection{ipa\_msg\_recv()}
{\footnotesize\ttfamily int ipa\+\_\+msg\+\_\+recv (\begin{DoxyParamCaption}\item[{int}]{fd,  }\item[{struct \textbf{ msgb} $\ast$$\ast$}]{rmsg }\end{DoxyParamCaption})}

\mbox{\label{ipa_8h_a74cd3b6aa6207ef4a9a50237eafaa3b7}} 
\index{ipa.h@{ipa.h}!ipa\_msg\_recv\_buffered@{ipa\_msg\_recv\_buffered}}
\index{ipa\_msg\_recv\_buffered@{ipa\_msg\_recv\_buffered}!ipa.h@{ipa.h}}
\doxysubsubsection{ipa\_msg\_recv\_buffered()}
{\footnotesize\ttfamily int ipa\+\_\+msg\+\_\+recv\+\_\+buffered (\begin{DoxyParamCaption}\item[{int}]{fd,  }\item[{struct \textbf{ msgb} $\ast$$\ast$}]{rmsg,  }\item[{struct \textbf{ msgb} $\ast$$\ast$}]{tmp\+\_\+msg }\end{DoxyParamCaption})}



\doxysubsection{Variable Documentation}
\mbox{\label{ipa_8h_a68f48b7b449155b56420d63a7927f4c2}} 
\index{ipa.h@{ipa.h}!instead@{instead}}
\index{instead@{instead}!ipa.h@{ipa.h}}
\doxysubsubsection{instead}
{\footnotesize\ttfamily \+\_\+parse instead}

