\doxysection{include/osmocom/gsm/cbsp.h File Reference}
\label{cbsp_8h}\index{include/osmocom/gsm/cbsp.h@{include/osmocom/gsm/cbsp.h}}
{\ttfamily \#include $<$stdint.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/core/linuxlist.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gsm/protocol/gsm\+\_\+48\+\_\+049.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gsm/gsm0808\+\_\+utils.\+h$>$}\newline
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+content}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+cell\+\_\+ent}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+cell\+\_\+list}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+num\+\_\+compl\+\_\+ent}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+num\+\_\+compl\+\_\+list}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+loading\+\_\+ent}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+loading\+\_\+list}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+fail\+\_\+ent}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+write\+\_\+replace}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+write\+\_\+replace\+\_\+complete}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+write\+\_\+replace\+\_\+failure}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+kill}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+kill\+\_\+complete}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+kill\+\_\+failure}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+load\+\_\+query}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+load\+\_\+query\+\_\+complete}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+load\+\_\+query\+\_\+failure}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+msg\+\_\+status\+\_\+query}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+msg\+\_\+status\+\_\+query\+\_\+complete}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+msg\+\_\+status\+\_\+query\+\_\+failure}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+reset}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+reset\+\_\+complete}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+reset\+\_\+failure}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+keep\+\_\+alive}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+keep\+\_\+alive\+\_\+complete}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+restart}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+failure}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+error\+\_\+ind}
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+decoded}
\end{DoxyCompactItemize}
\doxysubsection*{Enumerations}
\begin{DoxyCompactItemize}
\item 
enum \textbf{ osmo\+\_\+cbsp\+\_\+cause} \{ \newline
\textbf{ OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+PARAM\+\_\+\+NOT\+\_\+\+RECOGNISED} = 0
, \newline
\textbf{ OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+PARAM\+\_\+\+VALUE\+\_\+\+INVALID}
, \newline
\textbf{ OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+MSG\+\_\+\+REF\+\_\+\+NOT\+\_\+\+IDENTIFIED}
, \newline
\textbf{ OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+CELL\+\_\+\+ID\+\_\+\+NOT\+\_\+\+VALID}
, \newline
\textbf{ OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+UNRECOGNISED\+\_\+\+MESSAGE}
, \newline
\textbf{ OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+MISSING\+\_\+\+MANDATORY\+\_\+\+ELEMENT}
, \newline
\textbf{ OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+BSC\+\_\+\+CAPACITY\+\_\+\+EXCEEDED}
, \newline
\textbf{ OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+CELL\+\_\+\+MEMORY\+\_\+\+EXCEEDED}
, \newline
\textbf{ OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+BSC\+\_\+\+MEMORY\+\_\+\+EXCEEDED}
, \newline
\textbf{ OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+CELL\+\_\+\+BROADCAST\+\_\+\+NOT\+\_\+\+SUPPORTED}
, \newline
\textbf{ OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+CELL\+\_\+\+BROADCAST\+\_\+\+NOT\+\_\+\+OPERATIONAL}
, \newline
\textbf{ OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+INCOMPATIBLE\+\_\+\+DRX\+\_\+\+PARAM}
, \newline
\textbf{ OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+EXT\+\_\+\+CHAN\+\_\+\+NOT\+\_\+\+SUPPORTED}
, \newline
\textbf{ OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+MSG\+\_\+\+REF\+\_\+\+ALREADY\+\_\+\+USED}
, \newline
\textbf{ OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+UNSPECIFIED\+\_\+\+ERROR}
, \newline
\textbf{ OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+LAI\+\_\+\+OR\+\_\+\+LAC\+\_\+\+NOT\+\_\+\+VALID}
 \}
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
static const char $\ast$ \textbf{ osmo\+\_\+cbsp\+\_\+cause\+\_\+name} (enum \textbf{ osmo\+\_\+cbsp\+\_\+cause} \textbf{ cause})
\item 
struct \textbf{ msgb} $\ast$ \textbf{ osmo\+\_\+cbsp\+\_\+msgb\+\_\+alloc} (void $\ast$ctx, const char $\ast$\textbf{ name})
\item 
struct \textbf{ msgb} $\ast$ \textbf{ osmo\+\_\+cbsp\+\_\+encode} (void $\ast$ctx, const struct \textbf{ osmo\+\_\+cbsp\+\_\+decoded} $\ast$in)
\begin{DoxyCompactList}\small\item\em Encode a CBSP message from the decoded/parsed structure representation to binary PDU. \end{DoxyCompactList}\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+decoded} $\ast$ \textbf{ osmo\+\_\+cbsp\+\_\+decode} (void $\ast$ctx, struct \textbf{ msgb} $\ast$in)
\begin{DoxyCompactList}\small\item\em Decode a CBSP message from wire formwat to pased structure. \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+cbsp\+\_\+init\+\_\+struct} (struct \textbf{ osmo\+\_\+cbsp\+\_\+decoded} $\ast$cbsp, enum \textbf{ cbsp\+\_\+msg\+\_\+type} \textbf{ msg\+\_\+type})
\item 
struct \textbf{ osmo\+\_\+cbsp\+\_\+decoded} $\ast$ \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+\_\+alloc} (void $\ast$ctx, enum \textbf{ cbsp\+\_\+msg\+\_\+type} \textbf{ msg\+\_\+type})
\begin{DoxyCompactList}\small\item\em Dynamically allocate and initialize decoded CBSP structure. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+cbsp\+\_\+recv\+\_\+buffered} (void $\ast$ctx, int \textbf{ fd}, struct \textbf{ msgb} $\ast$$\ast$rmsg, struct \textbf{ msgb} $\ast$$\ast$tmp\+\_\+msg)
\item 
int \textbf{ osmo\+\_\+cbsp\+\_\+segmentation\+\_\+cb} (struct \textbf{ msgb} $\ast$\textbf{ msg})
\end{DoxyCompactItemize}
\doxysubsection*{Variables}
\begin{DoxyCompactItemize}
\item 
const struct \textbf{ value\+\_\+string} \textbf{ osmo\+\_\+cbsp\+\_\+cause\+\_\+names} [$\,$]
\item 
\+\_\+\+\_\+thread const char $\ast$ \textbf{ osmo\+\_\+cbsp\+\_\+errstr}
\end{DoxyCompactItemize}


\doxysubsection{Enumeration Type Documentation}
\mbox{\label{cbsp_8h_a3680a0ebb3bdcb658cb8b69a54acc444}} 
\index{cbsp.h@{cbsp.h}!osmo\_cbsp\_cause@{osmo\_cbsp\_cause}}
\index{osmo\_cbsp\_cause@{osmo\_cbsp\_cause}!cbsp.h@{cbsp.h}}
\doxysubsubsection{osmo\_cbsp\_cause}
{\footnotesize\ttfamily enum \textbf{ osmo\+\_\+cbsp\+\_\+cause}}

\begin{DoxyEnumFields}{Enumerator}
\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_CBSP\_CAUSE\_PARAM\_NOT\_RECOGNISED@{OSMO\_CBSP\_CAUSE\_PARAM\_NOT\_RECOGNISED}!cbsp.h@{cbsp.h}}\index{cbsp.h@{cbsp.h}!OSMO\_CBSP\_CAUSE\_PARAM\_NOT\_RECOGNISED@{OSMO\_CBSP\_CAUSE\_PARAM\_NOT\_RECOGNISED}}}\mbox{\label{cbsp_8h_a3680a0ebb3bdcb658cb8b69a54acc444a281dc6fc9460745631d3206e3b023aec}} 
OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+PARAM\+\_\+\+NOT\+\_\+\+RECOGNISED&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_CBSP\_CAUSE\_PARAM\_VALUE\_INVALID@{OSMO\_CBSP\_CAUSE\_PARAM\_VALUE\_INVALID}!cbsp.h@{cbsp.h}}\index{cbsp.h@{cbsp.h}!OSMO\_CBSP\_CAUSE\_PARAM\_VALUE\_INVALID@{OSMO\_CBSP\_CAUSE\_PARAM\_VALUE\_INVALID}}}\mbox{\label{cbsp_8h_a3680a0ebb3bdcb658cb8b69a54acc444a992f51a6637764d02b88e74477b11ea2}} 
OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+PARAM\+\_\+\+VALUE\+\_\+\+INVALID&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_CBSP\_CAUSE\_MSG\_REF\_NOT\_IDENTIFIED@{OSMO\_CBSP\_CAUSE\_MSG\_REF\_NOT\_IDENTIFIED}!cbsp.h@{cbsp.h}}\index{cbsp.h@{cbsp.h}!OSMO\_CBSP\_CAUSE\_MSG\_REF\_NOT\_IDENTIFIED@{OSMO\_CBSP\_CAUSE\_MSG\_REF\_NOT\_IDENTIFIED}}}\mbox{\label{cbsp_8h_a3680a0ebb3bdcb658cb8b69a54acc444ae7982e6702f9685db8e9fd410e13552d}} 
OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+MSG\+\_\+\+REF\+\_\+\+NOT\+\_\+\+IDENTIFIED&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_CBSP\_CAUSE\_CELL\_ID\_NOT\_VALID@{OSMO\_CBSP\_CAUSE\_CELL\_ID\_NOT\_VALID}!cbsp.h@{cbsp.h}}\index{cbsp.h@{cbsp.h}!OSMO\_CBSP\_CAUSE\_CELL\_ID\_NOT\_VALID@{OSMO\_CBSP\_CAUSE\_CELL\_ID\_NOT\_VALID}}}\mbox{\label{cbsp_8h_a3680a0ebb3bdcb658cb8b69a54acc444ac85ff0a7cf5dd80f116ca7f1831e4087}} 
OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+CELL\+\_\+\+ID\+\_\+\+NOT\+\_\+\+VALID&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_CBSP\_CAUSE\_UNRECOGNISED\_MESSAGE@{OSMO\_CBSP\_CAUSE\_UNRECOGNISED\_MESSAGE}!cbsp.h@{cbsp.h}}\index{cbsp.h@{cbsp.h}!OSMO\_CBSP\_CAUSE\_UNRECOGNISED\_MESSAGE@{OSMO\_CBSP\_CAUSE\_UNRECOGNISED\_MESSAGE}}}\mbox{\label{cbsp_8h_a3680a0ebb3bdcb658cb8b69a54acc444a0e4b73cb7dfc4894b3d723f71b1b9f9f}} 
OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+UNRECOGNISED\+\_\+\+MESSAGE&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_CBSP\_CAUSE\_MISSING\_MANDATORY\_ELEMENT@{OSMO\_CBSP\_CAUSE\_MISSING\_MANDATORY\_ELEMENT}!cbsp.h@{cbsp.h}}\index{cbsp.h@{cbsp.h}!OSMO\_CBSP\_CAUSE\_MISSING\_MANDATORY\_ELEMENT@{OSMO\_CBSP\_CAUSE\_MISSING\_MANDATORY\_ELEMENT}}}\mbox{\label{cbsp_8h_a3680a0ebb3bdcb658cb8b69a54acc444a812edeb8b8b11d519ece0a8df4ae4059}} 
OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+MISSING\+\_\+\+MANDATORY\+\_\+\+ELEMENT&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_CBSP\_CAUSE\_BSC\_CAPACITY\_EXCEEDED@{OSMO\_CBSP\_CAUSE\_BSC\_CAPACITY\_EXCEEDED}!cbsp.h@{cbsp.h}}\index{cbsp.h@{cbsp.h}!OSMO\_CBSP\_CAUSE\_BSC\_CAPACITY\_EXCEEDED@{OSMO\_CBSP\_CAUSE\_BSC\_CAPACITY\_EXCEEDED}}}\mbox{\label{cbsp_8h_a3680a0ebb3bdcb658cb8b69a54acc444ab741e8260b5ea6e42f7f449c0658d119}} 
OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+BSC\+\_\+\+CAPACITY\+\_\+\+EXCEEDED&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_CBSP\_CAUSE\_CELL\_MEMORY\_EXCEEDED@{OSMO\_CBSP\_CAUSE\_CELL\_MEMORY\_EXCEEDED}!cbsp.h@{cbsp.h}}\index{cbsp.h@{cbsp.h}!OSMO\_CBSP\_CAUSE\_CELL\_MEMORY\_EXCEEDED@{OSMO\_CBSP\_CAUSE\_CELL\_MEMORY\_EXCEEDED}}}\mbox{\label{cbsp_8h_a3680a0ebb3bdcb658cb8b69a54acc444aac51a64c16da98b13fa2b08cb3597ac0}} 
OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+CELL\+\_\+\+MEMORY\+\_\+\+EXCEEDED&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_CBSP\_CAUSE\_BSC\_MEMORY\_EXCEEDED@{OSMO\_CBSP\_CAUSE\_BSC\_MEMORY\_EXCEEDED}!cbsp.h@{cbsp.h}}\index{cbsp.h@{cbsp.h}!OSMO\_CBSP\_CAUSE\_BSC\_MEMORY\_EXCEEDED@{OSMO\_CBSP\_CAUSE\_BSC\_MEMORY\_EXCEEDED}}}\mbox{\label{cbsp_8h_a3680a0ebb3bdcb658cb8b69a54acc444afdc95781e806b76d63869a9280182f7f}} 
OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+BSC\+\_\+\+MEMORY\+\_\+\+EXCEEDED&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_CBSP\_CAUSE\_CELL\_BROADCAST\_NOT\_SUPPORTED@{OSMO\_CBSP\_CAUSE\_CELL\_BROADCAST\_NOT\_SUPPORTED}!cbsp.h@{cbsp.h}}\index{cbsp.h@{cbsp.h}!OSMO\_CBSP\_CAUSE\_CELL\_BROADCAST\_NOT\_SUPPORTED@{OSMO\_CBSP\_CAUSE\_CELL\_BROADCAST\_NOT\_SUPPORTED}}}\mbox{\label{cbsp_8h_a3680a0ebb3bdcb658cb8b69a54acc444a901f49d09781f8d43f38799f45b327e6}} 
OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+CELL\+\_\+\+BROADCAST\+\_\+\+NOT\+\_\+\+SUPPORTED&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_CBSP\_CAUSE\_CELL\_BROADCAST\_NOT\_OPERATIONAL@{OSMO\_CBSP\_CAUSE\_CELL\_BROADCAST\_NOT\_OPERATIONAL}!cbsp.h@{cbsp.h}}\index{cbsp.h@{cbsp.h}!OSMO\_CBSP\_CAUSE\_CELL\_BROADCAST\_NOT\_OPERATIONAL@{OSMO\_CBSP\_CAUSE\_CELL\_BROADCAST\_NOT\_OPERATIONAL}}}\mbox{\label{cbsp_8h_a3680a0ebb3bdcb658cb8b69a54acc444ad9e3ad6a3999ca045dcf5376695d6fb9}} 
OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+CELL\+\_\+\+BROADCAST\+\_\+\+NOT\+\_\+\+OPERATIONAL&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_CBSP\_CAUSE\_INCOMPATIBLE\_DRX\_PARAM@{OSMO\_CBSP\_CAUSE\_INCOMPATIBLE\_DRX\_PARAM}!cbsp.h@{cbsp.h}}\index{cbsp.h@{cbsp.h}!OSMO\_CBSP\_CAUSE\_INCOMPATIBLE\_DRX\_PARAM@{OSMO\_CBSP\_CAUSE\_INCOMPATIBLE\_DRX\_PARAM}}}\mbox{\label{cbsp_8h_a3680a0ebb3bdcb658cb8b69a54acc444ae48714897b72ad5923e38f94e338470b}} 
OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+INCOMPATIBLE\+\_\+\+DRX\+\_\+\+PARAM&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_CBSP\_CAUSE\_EXT\_CHAN\_NOT\_SUPPORTED@{OSMO\_CBSP\_CAUSE\_EXT\_CHAN\_NOT\_SUPPORTED}!cbsp.h@{cbsp.h}}\index{cbsp.h@{cbsp.h}!OSMO\_CBSP\_CAUSE\_EXT\_CHAN\_NOT\_SUPPORTED@{OSMO\_CBSP\_CAUSE\_EXT\_CHAN\_NOT\_SUPPORTED}}}\mbox{\label{cbsp_8h_a3680a0ebb3bdcb658cb8b69a54acc444ab41f872b325e9c840afca27f6c529b11}} 
OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+EXT\+\_\+\+CHAN\+\_\+\+NOT\+\_\+\+SUPPORTED&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_CBSP\_CAUSE\_MSG\_REF\_ALREADY\_USED@{OSMO\_CBSP\_CAUSE\_MSG\_REF\_ALREADY\_USED}!cbsp.h@{cbsp.h}}\index{cbsp.h@{cbsp.h}!OSMO\_CBSP\_CAUSE\_MSG\_REF\_ALREADY\_USED@{OSMO\_CBSP\_CAUSE\_MSG\_REF\_ALREADY\_USED}}}\mbox{\label{cbsp_8h_a3680a0ebb3bdcb658cb8b69a54acc444a6021c4cd126137bd17ff7cbbe00a8f1a}} 
OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+MSG\+\_\+\+REF\+\_\+\+ALREADY\+\_\+\+USED&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_CBSP\_CAUSE\_UNSPECIFIED\_ERROR@{OSMO\_CBSP\_CAUSE\_UNSPECIFIED\_ERROR}!cbsp.h@{cbsp.h}}\index{cbsp.h@{cbsp.h}!OSMO\_CBSP\_CAUSE\_UNSPECIFIED\_ERROR@{OSMO\_CBSP\_CAUSE\_UNSPECIFIED\_ERROR}}}\mbox{\label{cbsp_8h_a3680a0ebb3bdcb658cb8b69a54acc444a3cf6190f16f4c224305e938dc752eb75}} 
OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+UNSPECIFIED\+\_\+\+ERROR&\\
\hline

\raisebox{\heightof{T}}[0pt][0pt]{\index{OSMO\_CBSP\_CAUSE\_LAI\_OR\_LAC\_NOT\_VALID@{OSMO\_CBSP\_CAUSE\_LAI\_OR\_LAC\_NOT\_VALID}!cbsp.h@{cbsp.h}}\index{cbsp.h@{cbsp.h}!OSMO\_CBSP\_CAUSE\_LAI\_OR\_LAC\_NOT\_VALID@{OSMO\_CBSP\_CAUSE\_LAI\_OR\_LAC\_NOT\_VALID}}}\mbox{\label{cbsp_8h_a3680a0ebb3bdcb658cb8b69a54acc444a39cad89ffcaf02057663a197da028702}} 
OSMO\+\_\+\+CBSP\+\_\+\+CAUSE\+\_\+\+LAI\+\_\+\+OR\+\_\+\+LAC\+\_\+\+NOT\+\_\+\+VALID&\\
\hline

\end{DoxyEnumFields}


\doxysubsection{Function Documentation}
\mbox{\label{cbsp_8h_a5c7fab8c8b288e857082fd62965b943d}} 
\index{cbsp.h@{cbsp.h}!osmo\_cbsp\_cause\_name@{osmo\_cbsp\_cause\_name}}
\index{osmo\_cbsp\_cause\_name@{osmo\_cbsp\_cause\_name}!cbsp.h@{cbsp.h}}
\doxysubsubsection{osmo\_cbsp\_cause\_name()}
{\footnotesize\ttfamily static const char $\ast$ osmo\+\_\+cbsp\+\_\+cause\+\_\+name (\begin{DoxyParamCaption}\item[{enum \textbf{ osmo\+\_\+cbsp\+\_\+cause}}]{cause }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [inline]}, {\ttfamily [static]}}



References \textbf{ cause}, \textbf{ get\+\_\+value\+\_\+string()}, and \textbf{ osmo\+\_\+cbsp\+\_\+cause\+\_\+names}.

\mbox{\label{cbsp_8h_acc134bbb9dd7e9c8c3fe83aa2212137b}} 
\index{cbsp.h@{cbsp.h}!osmo\_cbsp\_decode@{osmo\_cbsp\_decode}}
\index{osmo\_cbsp\_decode@{osmo\_cbsp\_decode}!cbsp.h@{cbsp.h}}
\doxysubsubsection{osmo\_cbsp\_decode()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+cbsp\+\_\+decoded} $\ast$ osmo\+\_\+cbsp\+\_\+decode (\begin{DoxyParamCaption}\item[{void $\ast$}]{ctx,  }\item[{struct \textbf{ msgb} $\ast$}]{in }\end{DoxyParamCaption})}



Decode a CBSP message from wire formwat to pased structure. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em ctx} & talloc context from which to allocate decoded output. \\
\hline
\mbox{\texttt{ in}}  & {\em in} & message buffer contiaining binary CBSP message. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated decoded representation of CBSP message; NULL on error 
\end{DoxyReturn}


References \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ cbsp\+\_\+att\+\_\+tlvdef}, \textbf{ cbsp\+\_\+dec\+\_\+error\+\_\+ind()}, \textbf{ cbsp\+\_\+dec\+\_\+failure()}, \textbf{ cbsp\+\_\+dec\+\_\+keep\+\_\+alive()}, \textbf{ cbsp\+\_\+dec\+\_\+keep\+\_\+alive\+\_\+compl()}, \textbf{ cbsp\+\_\+dec\+\_\+kill()}, \textbf{ cbsp\+\_\+dec\+\_\+kill\+\_\+compl()}, \textbf{ cbsp\+\_\+dec\+\_\+kill\+\_\+fail()}, \textbf{ cbsp\+\_\+dec\+\_\+load\+\_\+query()}, \textbf{ cbsp\+\_\+dec\+\_\+load\+\_\+query\+\_\+compl()}, \textbf{ cbsp\+\_\+dec\+\_\+load\+\_\+query\+\_\+fail()}, \textbf{ cbsp\+\_\+dec\+\_\+msg\+\_\+status\+\_\+query()}, \textbf{ cbsp\+\_\+dec\+\_\+msg\+\_\+status\+\_\+query\+\_\+compl()}, \textbf{ cbsp\+\_\+dec\+\_\+msg\+\_\+status\+\_\+query\+\_\+fail()}, \textbf{ cbsp\+\_\+dec\+\_\+reset()}, \textbf{ cbsp\+\_\+dec\+\_\+reset\+\_\+compl()}, \textbf{ cbsp\+\_\+dec\+\_\+reset\+\_\+fail()}, \textbf{ cbsp\+\_\+dec\+\_\+restart()}, \textbf{ cbsp\+\_\+dec\+\_\+write\+\_\+repl()}, \textbf{ cbsp\+\_\+dec\+\_\+write\+\_\+repl\+\_\+compl()}, \textbf{ cbsp\+\_\+dec\+\_\+write\+\_\+repl\+\_\+fail()}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+ERROR\+\_\+\+IND}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+FAILURE}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+KEEP\+\_\+\+ALIVE}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+KEEP\+\_\+\+ALIVE\+\_\+\+COMPL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+KILL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+KILL\+\_\+\+COMPL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+KILL\+\_\+\+FAIL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+LOAD\+\_\+\+QUERY}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+LOAD\+\_\+\+QUERY\+\_\+\+COMPL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+LOAD\+\_\+\+QUERY\+\_\+\+FAIL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+MSG\+\_\+\+STATUS\+\_\+\+QUERY}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+MSG\+\_\+\+STATUS\+\_\+\+QUERY\+\_\+\+COMPL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+MSG\+\_\+\+STATUS\+\_\+\+QUERY\+\_\+\+FAIL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+RESET}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+RESET\+\_\+\+COMPL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+RESET\+\_\+\+FAIL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+RESTART}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+SET\+\_\+\+DRX}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+SET\+\_\+\+DRX\+\_\+\+COMPL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+SET\+\_\+\+DRX\+\_\+\+FAIL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+WRITE\+\_\+\+REPLACE}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+WRITE\+\_\+\+REPLACE\+\_\+\+COMPL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+WRITE\+\_\+\+REPLACE\+\_\+\+FAIL}, \textbf{ msgb\+::data}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::error\+\_\+ind}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::failure}, \textbf{ h}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::keep\+\_\+alive}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::keep\+\_\+alive\+\_\+compl}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::kill}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::kill\+\_\+compl}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::kill\+\_\+fail}, \textbf{ msgb\+::l1h}, \textbf{ msgb\+::l2h}, \textbf{ len}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::load\+\_\+query}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::load\+\_\+query\+\_\+compl}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::load\+\_\+query\+\_\+fail}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::msg\+\_\+status\+\_\+query}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::msg\+\_\+status\+\_\+query\+\_\+compl}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::msg\+\_\+status\+\_\+query\+\_\+fail}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::msg\+\_\+type}, \textbf{ msgb\+\_\+l1}, \textbf{ msgb\+\_\+l1len()}, \textbf{ msgb\+\_\+l2}, \textbf{ msgb\+\_\+l2len()}, \textbf{ msgb\+\_\+trim()}, \textbf{ OSMO\+\_\+\+ASSERT}, \textbf{ osmo\+\_\+cbsp\+\_\+errstr}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::reset}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::reset\+\_\+compl}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::reset\+\_\+fail}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::restart}, \textbf{ tlv\+\_\+parse2()}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::u}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::write\+\_\+replace}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::write\+\_\+replace\+\_\+compl}, and \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::write\+\_\+replace\+\_\+fail}.

\mbox{\label{cbsp_8h_aac1dc7a9775545df5b06983b6df2e38f}} 
\index{cbsp.h@{cbsp.h}!osmo\_cbsp\_decoded\_alloc@{osmo\_cbsp\_decoded\_alloc}}
\index{osmo\_cbsp\_decoded\_alloc@{osmo\_cbsp\_decoded\_alloc}!cbsp.h@{cbsp.h}}
\doxysubsubsection{osmo\_cbsp\_decoded\_alloc()}
{\footnotesize\ttfamily struct \textbf{ osmo\+\_\+cbsp\+\_\+decoded} $\ast$ osmo\+\_\+cbsp\+\_\+decoded\+\_\+alloc (\begin{DoxyParamCaption}\item[{void $\ast$}]{ctx,  }\item[{enum \textbf{ cbsp\+\_\+msg\+\_\+type}}]{msg\+\_\+type }\end{DoxyParamCaption})}



Dynamically allocate and initialize decoded CBSP structure. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em ctx} & talloc context from which to allocate \\
\hline
\mbox{\texttt{ in}}  & {\em msg\+\_\+type} & CBSP message type for which to initialize result \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
allocated + initialized decoded CBSP structure; NULL on talloc failure 
\end{DoxyReturn}


References \textbf{ msg\+\_\+type}, and \textbf{ osmo\+\_\+cbsp\+\_\+init\+\_\+struct()}.

\mbox{\label{cbsp_8h_acebad7aebd53177739279dcefd2591ad}} 
\index{cbsp.h@{cbsp.h}!osmo\_cbsp\_encode@{osmo\_cbsp\_encode}}
\index{osmo\_cbsp\_encode@{osmo\_cbsp\_encode}!cbsp.h@{cbsp.h}}
\doxysubsubsection{osmo\_cbsp\_encode()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ osmo\+\_\+cbsp\+\_\+encode (\begin{DoxyParamCaption}\item[{void $\ast$}]{ctx,  }\item[{const struct \textbf{ osmo\+\_\+cbsp\+\_\+decoded} $\ast$}]{in }\end{DoxyParamCaption})}



Encode a CBSP message from the decoded/parsed structure representation to binary PDU. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em ctx} & talloc context from which to allocate returned msgb. \\
\hline
\mbox{\texttt{ in}}  & {\em in} & decoded CBSP message which is to be encoded. Ownership not transferred. \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
callee-\/allocated message buffer containing binary CBSP PDU; NULL on error 
\end{DoxyReturn}


References \textbf{ cbsp\+\_\+enc\+\_\+error\+\_\+ind()}, \textbf{ cbsp\+\_\+enc\+\_\+failure()}, \textbf{ cbsp\+\_\+enc\+\_\+keep\+\_\+alive()}, \textbf{ cbsp\+\_\+enc\+\_\+keep\+\_\+alive\+\_\+compl()}, \textbf{ cbsp\+\_\+enc\+\_\+kill()}, \textbf{ cbsp\+\_\+enc\+\_\+kill\+\_\+compl()}, \textbf{ cbsp\+\_\+enc\+\_\+kill\+\_\+fail()}, \textbf{ cbsp\+\_\+enc\+\_\+load\+\_\+query()}, \textbf{ cbsp\+\_\+enc\+\_\+load\+\_\+query\+\_\+compl()}, \textbf{ cbsp\+\_\+enc\+\_\+load\+\_\+query\+\_\+fail()}, \textbf{ cbsp\+\_\+enc\+\_\+msg\+\_\+status\+\_\+query()}, \textbf{ cbsp\+\_\+enc\+\_\+msg\+\_\+status\+\_\+query\+\_\+compl()}, \textbf{ cbsp\+\_\+enc\+\_\+msg\+\_\+status\+\_\+query\+\_\+fail()}, \textbf{ cbsp\+\_\+enc\+\_\+reset()}, \textbf{ cbsp\+\_\+enc\+\_\+reset\+\_\+compl()}, \textbf{ cbsp\+\_\+enc\+\_\+reset\+\_\+fail()}, \textbf{ cbsp\+\_\+enc\+\_\+restart()}, \textbf{ cbsp\+\_\+enc\+\_\+write\+\_\+repl()}, \textbf{ cbsp\+\_\+enc\+\_\+write\+\_\+repl\+\_\+compl()}, \textbf{ cbsp\+\_\+enc\+\_\+write\+\_\+repl\+\_\+fail()}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+ERROR\+\_\+\+IND}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+FAILURE}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+KEEP\+\_\+\+ALIVE}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+KEEP\+\_\+\+ALIVE\+\_\+\+COMPL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+KILL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+KILL\+\_\+\+COMPL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+KILL\+\_\+\+FAIL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+LOAD\+\_\+\+QUERY}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+LOAD\+\_\+\+QUERY\+\_\+\+COMPL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+LOAD\+\_\+\+QUERY\+\_\+\+FAIL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+MSG\+\_\+\+STATUS\+\_\+\+QUERY}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+MSG\+\_\+\+STATUS\+\_\+\+QUERY\+\_\+\+COMPL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+MSG\+\_\+\+STATUS\+\_\+\+QUERY\+\_\+\+FAIL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+RESET}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+RESET\+\_\+\+COMPL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+RESET\+\_\+\+FAIL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+RESTART}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+SET\+\_\+\+DRX}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+SET\+\_\+\+DRX\+\_\+\+COMPL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+SET\+\_\+\+DRX\+\_\+\+FAIL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+WRITE\+\_\+\+REPLACE}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+WRITE\+\_\+\+REPLACE\+\_\+\+COMPL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+WRITE\+\_\+\+REPLACE\+\_\+\+FAIL}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::error\+\_\+ind}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::failure}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::keep\+\_\+alive}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::keep\+\_\+alive\+\_\+compl}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::kill}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::kill\+\_\+compl}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::kill\+\_\+fail}, \textbf{ len}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::load\+\_\+query}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::load\+\_\+query\+\_\+compl}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::load\+\_\+query\+\_\+fail}, \textbf{ msg}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::msg\+\_\+status\+\_\+query}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::msg\+\_\+status\+\_\+query\+\_\+compl}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::msg\+\_\+status\+\_\+query\+\_\+fail}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::msg\+\_\+type}, \textbf{ msgb\+\_\+free()}, \textbf{ msgb\+\_\+length()}, \textbf{ msgb\+\_\+push\+\_\+u8()}, \textbf{ osmo\+\_\+cbsp\+\_\+errstr}, \textbf{ osmo\+\_\+cbsp\+\_\+msgb\+\_\+alloc()}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::reset}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::reset\+\_\+compl}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::reset\+\_\+fail}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::restart}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::u}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::write\+\_\+replace}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::write\+\_\+replace\+\_\+compl}, and \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::write\+\_\+replace\+\_\+fail}.

\mbox{\label{cbsp_8h_ad8db24a384191cda681cd95847131460}} 
\index{cbsp.h@{cbsp.h}!osmo\_cbsp\_init\_struct@{osmo\_cbsp\_init\_struct}}
\index{osmo\_cbsp\_init\_struct@{osmo\_cbsp\_init\_struct}!cbsp.h@{cbsp.h}}
\doxysubsubsection{osmo\_cbsp\_init\_struct()}
{\footnotesize\ttfamily void osmo\+\_\+cbsp\+\_\+init\+\_\+struct (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+cbsp\+\_\+decoded} $\ast$}]{cbsp,  }\item[{enum \textbf{ cbsp\+\_\+msg\+\_\+type}}]{msg\+\_\+type }\end{DoxyParamCaption})}



References \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+FAILURE}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+KILL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+KILL\+\_\+\+COMPL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+KILL\+\_\+\+FAIL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+LOAD\+\_\+\+QUERY}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+LOAD\+\_\+\+QUERY\+\_\+\+COMPL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+LOAD\+\_\+\+QUERY\+\_\+\+FAIL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+MSG\+\_\+\+STATUS\+\_\+\+QUERY}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+MSG\+\_\+\+STATUS\+\_\+\+QUERY\+\_\+\+COMPL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+MSG\+\_\+\+STATUS\+\_\+\+QUERY\+\_\+\+FAIL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+RESET}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+RESET\+\_\+\+COMPL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+RESET\+\_\+\+FAIL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+RESTART}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+WRITE\+\_\+\+REPLACE}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+WRITE\+\_\+\+REPLACE\+\_\+\+COMPL}, \textbf{ CBSP\+\_\+\+MSGT\+\_\+\+WRITE\+\_\+\+REPLACE\+\_\+\+FAIL}, \textbf{ osmo\+\_\+cbsp\+\_\+write\+\_\+replace\+::cell\+\_\+list}, \textbf{ osmo\+\_\+cbsp\+\_\+write\+\_\+replace\+\_\+complete\+::cell\+\_\+list}, \textbf{ osmo\+\_\+cbsp\+\_\+write\+\_\+replace\+\_\+failure\+::cell\+\_\+list}, \textbf{ osmo\+\_\+cbsp\+\_\+kill\+::cell\+\_\+list}, \textbf{ osmo\+\_\+cbsp\+\_\+kill\+\_\+complete\+::cell\+\_\+list}, \textbf{ osmo\+\_\+cbsp\+\_\+kill\+\_\+failure\+::cell\+\_\+list}, \textbf{ osmo\+\_\+cbsp\+\_\+load\+\_\+query\+::cell\+\_\+list}, \textbf{ osmo\+\_\+cbsp\+\_\+msg\+\_\+status\+\_\+query\+::cell\+\_\+list}, \textbf{ osmo\+\_\+cbsp\+\_\+reset\+::cell\+\_\+list}, \textbf{ osmo\+\_\+cbsp\+\_\+reset\+\_\+complete\+::cell\+\_\+list}, \textbf{ osmo\+\_\+cbsp\+\_\+reset\+\_\+failure\+::cell\+\_\+list}, \textbf{ osmo\+\_\+cbsp\+\_\+restart\+::cell\+\_\+list}, \textbf{ osmo\+\_\+cbsp\+\_\+write\+\_\+replace\+\_\+failure\+::fail\+\_\+list}, \textbf{ osmo\+\_\+cbsp\+\_\+kill\+\_\+failure\+::fail\+\_\+list}, \textbf{ osmo\+\_\+cbsp\+\_\+load\+\_\+query\+\_\+failure\+::fail\+\_\+list}, \textbf{ osmo\+\_\+cbsp\+\_\+msg\+\_\+status\+\_\+query\+\_\+failure\+::fail\+\_\+list}, \textbf{ osmo\+\_\+cbsp\+\_\+reset\+\_\+failure\+::fail\+\_\+list}, \textbf{ osmo\+\_\+cbsp\+\_\+failure\+::fail\+\_\+list}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::failure}, \textbf{ INIT\+\_\+\+LLIST\+\_\+\+HEAD}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::kill}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::kill\+\_\+compl}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::kill\+\_\+fail}, \textbf{ osmo\+\_\+cbsp\+\_\+cell\+\_\+list\+::list}, \textbf{ osmo\+\_\+cbsp\+\_\+num\+\_\+compl\+\_\+list\+::list}, \textbf{ osmo\+\_\+cbsp\+\_\+loading\+\_\+list\+::list}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::load\+\_\+query}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::load\+\_\+query\+\_\+compl}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::load\+\_\+query\+\_\+fail}, \textbf{ osmo\+\_\+cbsp\+\_\+load\+\_\+query\+\_\+complete\+::loading\+\_\+list}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::msg\+\_\+status\+\_\+query}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::msg\+\_\+status\+\_\+query\+\_\+compl}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::msg\+\_\+status\+\_\+query\+\_\+fail}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::msg\+\_\+type}, \textbf{ msg\+\_\+type}, \textbf{ osmo\+\_\+cbsp\+\_\+write\+\_\+replace\+\_\+complete\+::num\+\_\+compl\+\_\+list}, \textbf{ osmo\+\_\+cbsp\+\_\+write\+\_\+replace\+\_\+failure\+::num\+\_\+compl\+\_\+list}, \textbf{ osmo\+\_\+cbsp\+\_\+kill\+\_\+complete\+::num\+\_\+compl\+\_\+list}, \textbf{ osmo\+\_\+cbsp\+\_\+kill\+\_\+failure\+::num\+\_\+compl\+\_\+list}, \textbf{ osmo\+\_\+cbsp\+\_\+msg\+\_\+status\+\_\+query\+\_\+complete\+::num\+\_\+compl\+\_\+list}, \textbf{ osmo\+\_\+cbsp\+\_\+msg\+\_\+status\+\_\+query\+\_\+failure\+::num\+\_\+compl\+\_\+list}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::reset}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::reset\+\_\+compl}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::reset\+\_\+fail}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::restart}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::u}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::write\+\_\+replace}, \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::write\+\_\+replace\+\_\+compl}, and \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+::write\+\_\+replace\+\_\+fail}.



Referenced by \textbf{ osmo\+\_\+cbsp\+\_\+decoded\+\_\+alloc()}.

\mbox{\label{cbsp_8h_a57fa841e73eaae5e0358f8790006c1d3}} 
\index{cbsp.h@{cbsp.h}!osmo\_cbsp\_msgb\_alloc@{osmo\_cbsp\_msgb\_alloc}}
\index{osmo\_cbsp\_msgb\_alloc@{osmo\_cbsp\_msgb\_alloc}!cbsp.h@{cbsp.h}}
\doxysubsubsection{osmo\_cbsp\_msgb\_alloc()}
{\footnotesize\ttfamily struct \textbf{ msgb} $\ast$ osmo\+\_\+cbsp\+\_\+msgb\+\_\+alloc (\begin{DoxyParamCaption}\item[{void $\ast$}]{ctx,  }\item[{const char $\ast$}]{name }\end{DoxyParamCaption})}



References \textbf{ msgb\+\_\+alloc\+\_\+headroom\+\_\+c()}, and \textbf{ name}.



Referenced by \textbf{ osmo\+\_\+cbsp\+\_\+encode()}.

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

\mbox{\label{cbsp_8h_aab2249a967e5c6d0b04f69ed4ec03f9d}} 
\index{cbsp.h@{cbsp.h}!osmo\_cbsp\_segmentation\_cb@{osmo\_cbsp\_segmentation\_cb}}
\index{osmo\_cbsp\_segmentation\_cb@{osmo\_cbsp\_segmentation\_cb}!cbsp.h@{cbsp.h}}
\doxysubsubsection{osmo\_cbsp\_segmentation\_cb()}
{\footnotesize\ttfamily int osmo\+\_\+cbsp\+\_\+segmentation\+\_\+cb (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})}



\doxysubsection{Variable Documentation}
\mbox{\label{cbsp_8h_a67b8857b494f564ac294f53a46acfb25}} 
\index{cbsp.h@{cbsp.h}!osmo\_cbsp\_cause\_names@{osmo\_cbsp\_cause\_names}}
\index{osmo\_cbsp\_cause\_names@{osmo\_cbsp\_cause\_names}!cbsp.h@{cbsp.h}}
\doxysubsubsection{osmo\_cbsp\_cause\_names}
{\footnotesize\ttfamily const struct \textbf{ value\+\_\+string} osmo\+\_\+cbsp\+\_\+cause\+\_\+names[$\,$]\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ osmo\+\_\+cbsp\+\_\+cause\+\_\+name()}.

\mbox{\label{cbsp_8h_a1befa471665a2e115692d0e05119cc00}} 
\index{cbsp.h@{cbsp.h}!osmo\_cbsp\_errstr@{osmo\_cbsp\_errstr}}
\index{osmo\_cbsp\_errstr@{osmo\_cbsp\_errstr}!cbsp.h@{cbsp.h}}
\doxysubsubsection{osmo\_cbsp\_errstr}
{\footnotesize\ttfamily \+\_\+\+\_\+thread const char$\ast$ osmo\+\_\+cbsp\+\_\+errstr\hspace{0.3cm}{\ttfamily [extern]}}



Referenced by \textbf{ cbsp\+\_\+dec\+\_\+error\+\_\+ind()}, \textbf{ cbsp\+\_\+dec\+\_\+failure()}, \textbf{ cbsp\+\_\+dec\+\_\+keep\+\_\+alive()}, \textbf{ cbsp\+\_\+dec\+\_\+kill()}, \textbf{ cbsp\+\_\+dec\+\_\+kill\+\_\+compl()}, \textbf{ cbsp\+\_\+dec\+\_\+kill\+\_\+fail()}, \textbf{ cbsp\+\_\+dec\+\_\+load\+\_\+query()}, \textbf{ cbsp\+\_\+dec\+\_\+load\+\_\+query\+\_\+compl()}, \textbf{ cbsp\+\_\+dec\+\_\+load\+\_\+query\+\_\+fail()}, \textbf{ cbsp\+\_\+dec\+\_\+msg\+\_\+status\+\_\+query()}, \textbf{ cbsp\+\_\+dec\+\_\+msg\+\_\+status\+\_\+query\+\_\+compl()}, \textbf{ cbsp\+\_\+dec\+\_\+msg\+\_\+status\+\_\+query\+\_\+fail()}, \textbf{ cbsp\+\_\+dec\+\_\+reset()}, \textbf{ cbsp\+\_\+dec\+\_\+reset\+\_\+compl()}, \textbf{ cbsp\+\_\+dec\+\_\+reset\+\_\+fail()}, \textbf{ cbsp\+\_\+dec\+\_\+restart()}, \textbf{ cbsp\+\_\+dec\+\_\+write\+\_\+repl()}, \textbf{ cbsp\+\_\+dec\+\_\+write\+\_\+repl\+\_\+compl()}, \textbf{ cbsp\+\_\+dec\+\_\+write\+\_\+repl\+\_\+fail()}, \textbf{ cbsp\+\_\+decode\+\_\+cell\+\_\+list()}, \textbf{ cbsp\+\_\+decode\+\_\+fail\+\_\+list()}, \textbf{ cbsp\+\_\+decode\+\_\+loading\+\_\+list()}, \textbf{ cbsp\+\_\+decode\+\_\+num\+\_\+compl\+\_\+list()}, \textbf{ cbsp\+\_\+enc\+\_\+write\+\_\+repl()}, \textbf{ encode\+\_\+wperiod()}, \textbf{ osmo\+\_\+cbsp\+\_\+decode()}, and \textbf{ osmo\+\_\+cbsp\+\_\+encode()}.

