\doxysection{gsmtap\+\_\+util.\+h}
\label{gsmtap__util_8h_source}\index{include/osmocom/core/gsmtap\_util.h@{include/osmocom/core/gsmtap\_util.h}}
\textbf{ Go to the documentation of this file.}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{preprocessor}{\#pragma once}}
\DoxyCodeLine{2 }
\DoxyCodeLine{3 \textcolor{preprocessor}{\#include <stdint.h>}}
\DoxyCodeLine{4 \textcolor{preprocessor}{\#include <osmocom/core/write\_queue.h>}}
\DoxyCodeLine{5 \textcolor{preprocessor}{\#include <osmocom/core/select.h>}}
\DoxyCodeLine{6 }
\DoxyCodeLine{11 uint8\_t chantype\_rsl2gsmtap2(uint8\_t rsl\_chantype, uint8\_t rsl\_link\_id, \textcolor{keywordtype}{bool} user\_plane);}
\DoxyCodeLine{12 }
\DoxyCodeLine{13 uint8\_t chantype\_rsl2gsmtap(uint8\_t rsl\_chantype, uint8\_t rsl\_link\_id)}
\DoxyCodeLine{14         OSMO\_DEPRECATED(\textcolor{stringliteral}{"{}Use chantype\_rsl2gsmtap2() instead"{}});}
\DoxyCodeLine{15 }
\DoxyCodeLine{16 \textcolor{keywordtype}{void} chantype\_gsmtap2rsl(uint8\_t gsmtap\_chantype, uint8\_t *rsl\_chantype, uint8\_t *link\_id);}
\DoxyCodeLine{17 }
\DoxyCodeLine{18 \textcolor{keyword}{struct }msgb *gsmtap\_makemsg\_ex(uint8\_t type, uint16\_t arfcn, uint8\_t ts, uint8\_t chan\_type,}
\DoxyCodeLine{19                             uint8\_t ss, uint32\_t fn, int8\_t signal\_dbm,}
\DoxyCodeLine{20                             int8\_t snr, \textcolor{keyword}{const} uint8\_t *data, \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} len);}
\DoxyCodeLine{21 }
\DoxyCodeLine{22 \textcolor{keyword}{struct }msgb *gsmtap\_makemsg(uint16\_t arfcn, uint8\_t ts, uint8\_t chan\_type,}
\DoxyCodeLine{23                             uint8\_t ss, uint32\_t fn, int8\_t signal\_dbm,}
\DoxyCodeLine{24                             int8\_t snr, \textcolor{keyword}{const} uint8\_t *data, \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} len);}
\DoxyCodeLine{25 }
\DoxyCodeLine{27 \textcolor{keyword}{struct }gsmtap\_inst;}
\DoxyCodeLine{28 }
\DoxyCodeLine{29 \textcolor{keywordtype}{int} gsmtap\_inst\_fd(\textcolor{keyword}{struct} gsmtap\_inst *gti)}
\DoxyCodeLine{30         OSMO\_DEPRECATED(\textcolor{stringliteral}{"{}Use gsmtap\_inst\_fd2() instead"{}});}
\DoxyCodeLine{31 }
\DoxyCodeLine{32 \textcolor{keywordtype}{int} gsmtap\_inst\_fd2(\textcolor{keyword}{const} \textcolor{keyword}{struct} gsmtap\_inst *gti);}
\DoxyCodeLine{33 }
\DoxyCodeLine{34 \textcolor{keywordtype}{int} gsmtap\_source\_init\_fd(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *host, uint16\_t port);}
\DoxyCodeLine{35 \textcolor{keywordtype}{int} gsmtap\_source\_init\_fd2(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *local\_host, uint16\_t local\_port, \textcolor{keyword}{const} \textcolor{keywordtype}{char} *rem\_host, uint16\_t rem\_port);}
\DoxyCodeLine{36 }
\DoxyCodeLine{37 \textcolor{keywordtype}{int} gsmtap\_source\_add\_sink\_fd(\textcolor{keywordtype}{int} gsmtap\_fd);}
\DoxyCodeLine{38 }
\DoxyCodeLine{39 \textcolor{keyword}{struct }gsmtap\_inst *gsmtap\_source\_init(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *host, uint16\_t port,}
\DoxyCodeLine{40                                         \textcolor{keywordtype}{int} ofd\_wq\_mode);}
\DoxyCodeLine{41 \textcolor{keyword}{struct }gsmtap\_inst *gsmtap\_source\_init2(\textcolor{keyword}{const} \textcolor{keywordtype}{char} *local\_host, uint16\_t local\_port,}
\DoxyCodeLine{42                                         \textcolor{keyword}{const} \textcolor{keywordtype}{char} *rem\_host, uint16\_t rem\_port, \textcolor{keywordtype}{int} ofd\_wq\_mode);}
\DoxyCodeLine{43 }
\DoxyCodeLine{44 \textcolor{keywordtype}{void} gsmtap\_source\_free(\textcolor{keyword}{struct} gsmtap\_inst *gti);}
\DoxyCodeLine{45 }
\DoxyCodeLine{46 \textcolor{keywordtype}{int} gsmtap\_source\_add\_sink(\textcolor{keyword}{struct} gsmtap\_inst *gti);}
\DoxyCodeLine{47 }
\DoxyCodeLine{48 \textcolor{keywordtype}{int} gsmtap\_sendmsg(\textcolor{keyword}{struct} gsmtap\_inst *gti, \textcolor{keyword}{struct} msgb *msg);}
\DoxyCodeLine{49 \textcolor{keywordtype}{int} gsmtap\_sendmsg\_free(\textcolor{keyword}{struct} gsmtap\_inst *gti, \textcolor{keyword}{struct} msgb *msg);}
\DoxyCodeLine{50 }
\DoxyCodeLine{51 \textcolor{keywordtype}{int} gsmtap\_send\_ex(\textcolor{keyword}{struct} gsmtap\_inst *gti, uint8\_t type, uint16\_t arfcn, uint8\_t ts,}
\DoxyCodeLine{52                 uint8\_t chan\_type, uint8\_t ss, uint32\_t fn,}
\DoxyCodeLine{53                 int8\_t signal\_dbm, int8\_t snr, \textcolor{keyword}{const} uint8\_t *data,}
\DoxyCodeLine{54                 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} len);}
\DoxyCodeLine{55 }
\DoxyCodeLine{56 \textcolor{keywordtype}{int} gsmtap\_send(\textcolor{keyword}{struct} gsmtap\_inst *gti, uint16\_t arfcn, uint8\_t ts,}
\DoxyCodeLine{57                 uint8\_t chan\_type, uint8\_t ss, uint32\_t fn,}
\DoxyCodeLine{58                 int8\_t signal\_dbm, int8\_t snr, \textcolor{keyword}{const} uint8\_t *data,}
\DoxyCodeLine{59                 \textcolor{keywordtype}{unsigned} \textcolor{keywordtype}{int} len);}
\DoxyCodeLine{60 }
\DoxyCodeLine{61 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }value\_string gsmtap\_gsm\_channel\_names[];}
\DoxyCodeLine{62 \textcolor{keyword}{extern} \textcolor{keyword}{const} \textcolor{keyword}{struct }value\_string gsmtap\_type\_names[];}
\DoxyCodeLine{63 }

\end{DoxyCode}
