\doxysection{include/osmocom/gsm/gsm48\+\_\+rest\+\_\+octets.h File Reference}
\label{gsm48__rest__octets_8h}\index{include/osmocom/gsm/gsm48\_rest\_octets.h@{include/osmocom/gsm/gsm48\_rest\_octets.h}}
{\ttfamily \#include $<$stdbool.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gsm/sysinfo.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gsm/protocol/gsm\+\_\+44\+\_\+060.\+h$>$}\newline
\doxysubsection*{Data Structures}
\begin{DoxyCompactItemize}
\item 
struct \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+pch\+\_\+nch\+\_\+info}
\item 
struct \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+vbs\+\_\+vgcs\+\_\+options}
\item 
struct \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+dtm\+\_\+support}
\item 
struct \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+gprs\+\_\+ms\+\_\+txpwr\+\_\+max\+\_\+ccch}
\item 
struct \textbf{ osmo\+\_\+gsm48\+\_\+si6\+\_\+ro\+\_\+info}
\item 
struct \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+selection\+\_\+params}
\item 
struct \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+power\+\_\+offset}
\item 
struct \textbf{ osmo\+\_\+gsm48\+\_\+si3\+\_\+gprs\+\_\+ind}
\item 
struct \textbf{ osmo\+\_\+gsm48\+\_\+lsa\+\_\+params}
\item 
struct \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info}
\item 
struct \textbf{ osmo\+\_\+gsm48\+\_\+si13\+\_\+info}
\end{DoxyCompactItemize}
\doxysubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \textbf{ SI2\+Q\+\_\+\+MAX\+\_\+\+NUM}~16
\item 
\#define \textbf{ SI2\+Q\+\_\+\+MAX\+\_\+\+LEN}~160
\item 
\#define \textbf{ SI2\+Q\+\_\+\+MIN\+\_\+\+LEN}~18
\end{DoxyCompactItemize}
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
int \textbf{ osmo\+\_\+gsm48\+\_\+rest\+\_\+octets\+\_\+si1\+\_\+encode} (uint8\+\_\+t $\ast$\textbf{ data}, uint8\+\_\+t $\ast$\textbf{ nch\+\_\+pos}, int is1800\+\_\+net)
\item 
int \textbf{ osmo\+\_\+gsm48\+\_\+si1ro\+\_\+nch\+\_\+pos\+\_\+decode} (uint8\+\_\+t value, uint8\+\_\+t $\ast$num\+\_\+blocks, uint8\+\_\+t $\ast$first\+\_\+block)
\begin{DoxyCompactList}\small\item\em Decode the 5-\/bit \textquotesingle{}NCH position\textquotesingle{} field within SI1 Rest Octets. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+gsm48\+\_\+si1ro\+\_\+nch\+\_\+pos\+\_\+encode} (uint8\+\_\+t num\+\_\+blocks, uint8\+\_\+t first\+\_\+block)
\begin{DoxyCompactList}\small\item\em Encode the 5-\/bit \textquotesingle{}NCH position\textquotesingle{} field within SI1 Rest Octets. \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+gsm48\+\_\+rest\+\_\+octets\+\_\+si2quater\+\_\+encode} (uint8\+\_\+t $\ast$\textbf{ data}, uint8\+\_\+t si2q\+\_\+index, uint8\+\_\+t si2q\+\_\+count, const uint16\+\_\+t $\ast$uarfcn\+\_\+list, size\+\_\+t $\ast$u\+\_\+offset, size\+\_\+t uarfcn\+\_\+length, uint16\+\_\+t $\ast$scramble\+\_\+list, struct \textbf{ osmo\+\_\+earfcn\+\_\+si2q} $\ast$si2quater\+\_\+neigh\+\_\+list, size\+\_\+t $\ast$e\+\_\+offset)
\item 
int \textbf{ osmo\+\_\+gsm48\+\_\+rest\+\_\+octets\+\_\+si6\+\_\+encode} (uint8\+\_\+t $\ast$\textbf{ data}, const struct \textbf{ osmo\+\_\+gsm48\+\_\+si6\+\_\+ro\+\_\+info} $\ast$in)
\item 
int \textbf{ osmo\+\_\+gsm48\+\_\+rest\+\_\+octets\+\_\+si3\+\_\+encode} (uint8\+\_\+t $\ast$\textbf{ data}, const struct \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info} $\ast$si3)
\item 
int \textbf{ osmo\+\_\+gsm48\+\_\+rest\+\_\+octets\+\_\+si4\+\_\+encode} (uint8\+\_\+t $\ast$\textbf{ data}, const struct \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info} $\ast$si4, int \textbf{ len})
\item 
int \textbf{ osmo\+\_\+gsm48\+\_\+rest\+\_\+octets\+\_\+si13\+\_\+decode} (struct \textbf{ osmo\+\_\+gsm48\+\_\+si13\+\_\+info} $\ast$si13, const uint8\+\_\+t $\ast$\textbf{ data})
\begin{DoxyCompactList}\small\item\em Decode SI13 Rest Octests (04.\+08 Chapter 10.\+5.\+2.\+37b). \end{DoxyCompactList}\item 
int \textbf{ osmo\+\_\+gsm48\+\_\+rest\+\_\+octets\+\_\+si13\+\_\+encode} (uint8\+\_\+t $\ast$\textbf{ data}, const struct \textbf{ osmo\+\_\+gsm48\+\_\+si13\+\_\+info} $\ast$si13)
\item 
void \textbf{ osmo\+\_\+gsm48\+\_\+rest\+\_\+octets\+\_\+si3\+\_\+decode} (struct \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info} $\ast$si3, const uint8\+\_\+t $\ast$\textbf{ data})
\begin{DoxyCompactList}\small\item\em Decode SI3 Rest Octests (Chapter 10.\+5.\+2.\+34 / Table 10.\+4.\+72). \end{DoxyCompactList}\item 
void \textbf{ osmo\+\_\+gsm48\+\_\+rest\+\_\+octets\+\_\+si4\+\_\+decode} (struct \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info} $\ast$si4, const uint8\+\_\+t $\ast$\textbf{ data}, int \textbf{ len})
\end{DoxyCompactItemize}


\doxysubsection{Macro Definition Documentation}
\mbox{\label{gsm48__rest__octets_8h_ab966628a0b06a97f61398f1c837d2a99}} 
\index{gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}!SI2Q\_MAX\_LEN@{SI2Q\_MAX\_LEN}}
\index{SI2Q\_MAX\_LEN@{SI2Q\_MAX\_LEN}!gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}}
\doxysubsubsection{SI2Q\_MAX\_LEN}
{\footnotesize\ttfamily \#define SI2\+Q\+\_\+\+MAX\+\_\+\+LEN~160}

\mbox{\label{gsm48__rest__octets_8h_aab2ae86f4327d239a610b413ad97e855}} 
\index{gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}!SI2Q\_MAX\_NUM@{SI2Q\_MAX\_NUM}}
\index{SI2Q\_MAX\_NUM@{SI2Q\_MAX\_NUM}!gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}}
\doxysubsubsection{SI2Q\_MAX\_NUM}
{\footnotesize\ttfamily \#define SI2\+Q\+\_\+\+MAX\+\_\+\+NUM~16}

\mbox{\label{gsm48__rest__octets_8h_af8fd23c7ab101f50b72834d250006030}} 
\index{gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}!SI2Q\_MIN\_LEN@{SI2Q\_MIN\_LEN}}
\index{SI2Q\_MIN\_LEN@{SI2Q\_MIN\_LEN}!gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}}
\doxysubsubsection{SI2Q\_MIN\_LEN}
{\footnotesize\ttfamily \#define SI2\+Q\+\_\+\+MIN\+\_\+\+LEN~18}



\doxysubsection{Function Documentation}
\mbox{\label{gsm48__rest__octets_8h_a8c6b0a4487950d4ec573d8dc4a787232}} 
\index{gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}!osmo\_gsm48\_rest\_octets\_si13\_decode@{osmo\_gsm48\_rest\_octets\_si13\_decode}}
\index{osmo\_gsm48\_rest\_octets\_si13\_decode@{osmo\_gsm48\_rest\_octets\_si13\_decode}!gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}}
\doxysubsubsection{osmo\_gsm48\_rest\_octets\_si13\_decode()}
{\footnotesize\ttfamily int osmo\+\_\+gsm48\+\_\+rest\+\_\+octets\+\_\+si13\+\_\+decode (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+gsm48\+\_\+si13\+\_\+info} $\ast$}]{si13,  }\item[{const uint8\+\_\+t $\ast$}]{data }\end{DoxyParamCaption})}



Decode SI13 Rest Octests (04.\+08 Chapter 10.\+5.\+2.\+37b). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em si13} & decoded SI13 rest octets \\
\hline
\mbox{\texttt{ in}}  & {\em encoded} & SI13 rest octets \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
parsed bits on success, negative on error 
\end{DoxyReturn}


References \textbf{ osmo\+\_\+gsm48\+\_\+si13\+\_\+info\+::bcch\+\_\+change\+\_\+mark}, \textbf{ bitvec\+\_\+get\+\_\+bit\+\_\+high()}, \textbf{ bitvec\+\_\+get\+\_\+uint()}, \textbf{ osmo\+\_\+gsm48\+\_\+si13\+\_\+info\+::cell\+\_\+opts}, \textbf{ bitvec\+::cur\+\_\+bit}, \textbf{ bitvec\+::data}, \textbf{ data}, \textbf{ bitvec\+::data\+\_\+len}, \textbf{ decode\+\_\+gprs\+\_\+cell\+\_\+opt()}, \textbf{ decode\+\_\+gprs\+\_\+pwr\+\_\+ctrl\+\_\+pars()}, \textbf{ ENOTSUP}, \textbf{ H}, \textbf{ osmo\+\_\+gsm48\+\_\+si13\+\_\+info\+::net\+\_\+ctrl\+\_\+ord}, \textbf{ osmo\+\_\+gsm48\+\_\+si13\+\_\+info\+::prio\+\_\+acc\+\_\+thr}, \textbf{ osmo\+\_\+gsm48\+\_\+si13\+\_\+info\+::pwr\+\_\+ctrl\+\_\+pars}, \textbf{ osmo\+\_\+gsm48\+\_\+si13\+\_\+info\+::rac}, \textbf{ osmo\+\_\+gsm48\+\_\+si13\+\_\+info\+::si\+\_\+change\+\_\+field}, and \textbf{ osmo\+\_\+gsm48\+\_\+si13\+\_\+info\+::spgc\+\_\+ccch\+\_\+sup}.

\mbox{\label{gsm48__rest__octets_8h_a2e63b2384e9d3128d343d71381b41a06}} 
\index{gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}!osmo\_gsm48\_rest\_octets\_si13\_encode@{osmo\_gsm48\_rest\_octets\_si13\_encode}}
\index{osmo\_gsm48\_rest\_octets\_si13\_encode@{osmo\_gsm48\_rest\_octets\_si13\_encode}!gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}}
\doxysubsubsection{osmo\_gsm48\_rest\_octets\_si13\_encode()}
{\footnotesize\ttfamily int osmo\+\_\+gsm48\+\_\+rest\+\_\+octets\+\_\+si13\+\_\+encode (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{data,  }\item[{const struct \textbf{ osmo\+\_\+gsm48\+\_\+si13\+\_\+info} $\ast$}]{si13 }\end{DoxyParamCaption})}



References \textbf{ append\+\_\+gprs\+\_\+cell\+\_\+opt()}, \textbf{ append\+\_\+gprs\+\_\+mobile\+\_\+alloc()}, \textbf{ append\+\_\+gprs\+\_\+pwr\+\_\+ctrl\+\_\+pars()}, \textbf{ osmo\+\_\+gsm48\+\_\+si13\+\_\+info\+::bcch\+\_\+change\+\_\+mark}, \textbf{ bitvec\+\_\+set\+\_\+bit()}, \textbf{ bitvec\+\_\+set\+\_\+uint()}, \textbf{ bitvec\+\_\+spare\+\_\+padding()}, \textbf{ osmo\+\_\+gsm48\+\_\+si13\+\_\+info\+::cell\+\_\+opts}, \textbf{ bitvec\+::data}, \textbf{ data}, \textbf{ bitvec\+::data\+\_\+len}, \textbf{ H}, \textbf{ L}, \textbf{ osmo\+\_\+gsm48\+\_\+si13\+\_\+info\+::net\+\_\+ctrl\+\_\+ord}, \textbf{ osmo\+\_\+gsm48\+\_\+si13\+\_\+info\+::prio\+\_\+acc\+\_\+thr}, \textbf{ osmo\+\_\+gsm48\+\_\+si13\+\_\+info\+::pwr\+\_\+ctrl\+\_\+pars}, \textbf{ osmo\+\_\+gsm48\+\_\+si13\+\_\+info\+::rac}, \textbf{ osmo\+\_\+gsm48\+\_\+si13\+\_\+info\+::si\+\_\+change\+\_\+field}, and \textbf{ osmo\+\_\+gsm48\+\_\+si13\+\_\+info\+::spgc\+\_\+ccch\+\_\+sup}.

\mbox{\label{gsm48__rest__octets_8h_a1bee05a7f558bcaae514f96bbb9e07d7}} 
\index{gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}!osmo\_gsm48\_rest\_octets\_si1\_encode@{osmo\_gsm48\_rest\_octets\_si1\_encode}}
\index{osmo\_gsm48\_rest\_octets\_si1\_encode@{osmo\_gsm48\_rest\_octets\_si1\_encode}!gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}}
\doxysubsubsection{osmo\_gsm48\_rest\_octets\_si1\_encode()}
{\footnotesize\ttfamily int osmo\+\_\+gsm48\+\_\+rest\+\_\+octets\+\_\+si1\+\_\+encode (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{data,  }\item[{uint8\+\_\+t $\ast$}]{nch\+\_\+pos,  }\item[{int}]{is1800\+\_\+net }\end{DoxyParamCaption})}



References \textbf{ bitvec\+\_\+set\+\_\+bit()}, \textbf{ bitvec\+\_\+set\+\_\+uint()}, \textbf{ bitvec\+\_\+spare\+\_\+padding()}, \textbf{ bitvec\+::data}, \textbf{ data}, \textbf{ bitvec\+::data\+\_\+len}, \textbf{ H}, and \textbf{ L}.

\mbox{\label{gsm48__rest__octets_8h_ab83e2b3a2dd7e5873e90856c59737c1f}} 
\index{gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}!osmo\_gsm48\_rest\_octets\_si2quater\_encode@{osmo\_gsm48\_rest\_octets\_si2quater\_encode}}
\index{osmo\_gsm48\_rest\_octets\_si2quater\_encode@{osmo\_gsm48\_rest\_octets\_si2quater\_encode}!gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}}
\doxysubsubsection{osmo\_gsm48\_rest\_octets\_si2quater\_encode()}
{\footnotesize\ttfamily int osmo\+\_\+gsm48\+\_\+rest\+\_\+octets\+\_\+si2quater\+\_\+encode (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{data,  }\item[{uint8\+\_\+t}]{si2q\+\_\+index,  }\item[{uint8\+\_\+t}]{si2q\+\_\+count,  }\item[{const uint16\+\_\+t $\ast$}]{uarfcn\+\_\+list,  }\item[{size\+\_\+t $\ast$}]{u\+\_\+offset,  }\item[{size\+\_\+t}]{uarfcn\+\_\+length,  }\item[{uint16\+\_\+t $\ast$}]{scramble\+\_\+list,  }\item[{struct \textbf{ osmo\+\_\+earfcn\+\_\+si2q} $\ast$}]{si2quater\+\_\+neigh\+\_\+list,  }\item[{size\+\_\+t $\ast$}]{e\+\_\+offset }\end{DoxyParamCaption})}



References \textbf{ append\+\_\+earfcn()}, \textbf{ append\+\_\+uarfcns()}, \textbf{ bitvec\+\_\+set\+\_\+bit()}, \textbf{ bitvec\+\_\+set\+\_\+uint()}, \textbf{ bitvec\+\_\+spare\+\_\+padding()}, \textbf{ bitvec\+\_\+zero()}, \textbf{ bitvec\+::cur\+\_\+bit}, \textbf{ bitvec\+::data}, \textbf{ data}, \textbf{ bitvec\+::data\+\_\+len}, \textbf{ L}, \textbf{ si2q\+\_\+earfcn\+\_\+count()}, and \textbf{ SI2\+Q\+\_\+\+MAX\+\_\+\+LEN}.

\mbox{\label{gsm48__rest__octets_8h_a9848710656f03c1282cf5c7c90ead26b}} 
\index{gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}!osmo\_gsm48\_rest\_octets\_si3\_decode@{osmo\_gsm48\_rest\_octets\_si3\_decode}}
\index{osmo\_gsm48\_rest\_octets\_si3\_decode@{osmo\_gsm48\_rest\_octets\_si3\_decode}!gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}}
\doxysubsubsection{osmo\_gsm48\_rest\_octets\_si3\_decode()}
{\footnotesize\ttfamily void osmo\+\_\+gsm48\+\_\+rest\+\_\+octets\+\_\+si3\+\_\+decode (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info} $\ast$}]{si3,  }\item[{const uint8\+\_\+t $\ast$}]{data }\end{DoxyParamCaption})}



Decode SI3 Rest Octests (Chapter 10.\+5.\+2.\+34 / Table 10.\+4.\+72). 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ out}}  & {\em si3} & decoded SI3 rest octets \\
\hline
\mbox{\texttt{ in}}  & {\em encoded} & SI3 rest octets, 4 octets long \\
\hline
\end{DoxyParams}


References \textbf{ bitvec\+\_\+get\+\_\+bit\+\_\+high()}, \textbf{ bitvec\+\_\+get\+\_\+uint()}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+selection\+\_\+params\+::cbq}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+selection\+\_\+params\+::cell\+\_\+resel\+\_\+off}, \textbf{ bitvec\+::data}, \textbf{ data}, \textbf{ bitvec\+::data\+\_\+len}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::early\+\_\+cm\+\_\+ctrl}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::early\+\_\+cm\+\_\+restrict\+\_\+3g}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::gprs\+\_\+ind}, \textbf{ H}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+selection\+\_\+params\+::penalty\+\_\+time}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+power\+\_\+offset\+::power\+\_\+offset}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::power\+\_\+offset}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+selection\+\_\+params\+::present}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+power\+\_\+offset\+::present}, \textbf{ osmo\+\_\+gsm48\+\_\+si3\+\_\+gprs\+\_\+ind\+::present}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::present}, \textbf{ osmo\+\_\+gsm48\+\_\+si3\+\_\+gprs\+\_\+ind\+::ra\+\_\+colour}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::scheduling}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::selection\+\_\+params}, \textbf{ osmo\+\_\+gsm48\+\_\+si3\+\_\+gprs\+\_\+ind\+::si13\+\_\+position}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::si2quater\+\_\+indicator}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::si2ter\+\_\+indicator}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+selection\+\_\+params\+::temp\+\_\+offs}, and \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::where}.

\mbox{\label{gsm48__rest__octets_8h_aa8c4555688398761a0760776f47a7423}} 
\index{gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}!osmo\_gsm48\_rest\_octets\_si3\_encode@{osmo\_gsm48\_rest\_octets\_si3\_encode}}
\index{osmo\_gsm48\_rest\_octets\_si3\_encode@{osmo\_gsm48\_rest\_octets\_si3\_encode}!gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}}
\doxysubsubsection{osmo\_gsm48\_rest\_octets\_si3\_encode()}
{\footnotesize\ttfamily int osmo\+\_\+gsm48\+\_\+rest\+\_\+octets\+\_\+si3\+\_\+encode (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{data,  }\item[{const struct \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info} $\ast$}]{si3 }\end{DoxyParamCaption})}



References \textbf{ append\+\_\+gprs\+\_\+ind()}, \textbf{ append\+\_\+power\+\_\+offset()}, \textbf{ append\+\_\+selection\+\_\+params()}, \textbf{ bitvec\+\_\+set\+\_\+bit()}, \textbf{ bitvec\+\_\+set\+\_\+uint()}, \textbf{ bitvec\+\_\+spare\+\_\+padding()}, \textbf{ bitvec\+::data}, \textbf{ data}, \textbf{ bitvec\+::data\+\_\+len}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::early\+\_\+cm\+\_\+ctrl}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::early\+\_\+cm\+\_\+restrict\+\_\+3g}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::gprs\+\_\+ind}, \textbf{ H}, \textbf{ L}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::power\+\_\+offset}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::present}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::scheduling}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::selection\+\_\+params}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::si2quater\+\_\+indicator}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::si2ter\+\_\+indicator}, and \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::where}.

\mbox{\label{gsm48__rest__octets_8h_a3da8de952a2a1be8d6c42beaf6870f23}} 
\index{gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}!osmo\_gsm48\_rest\_octets\_si4\_decode@{osmo\_gsm48\_rest\_octets\_si4\_decode}}
\index{osmo\_gsm48\_rest\_octets\_si4\_decode@{osmo\_gsm48\_rest\_octets\_si4\_decode}!gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}}
\doxysubsubsection{osmo\_gsm48\_rest\_octets\_si4\_decode()}
{\footnotesize\ttfamily void osmo\+\_\+gsm48\+\_\+rest\+\_\+octets\+\_\+si4\+\_\+decode (\begin{DoxyParamCaption}\item[{struct \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info} $\ast$}]{si4,  }\item[{const uint8\+\_\+t $\ast$}]{data,  }\item[{int}]{len }\end{DoxyParamCaption})}



References \textbf{ bitvec\+\_\+get\+\_\+bit\+\_\+high()}, \textbf{ bitvec\+\_\+get\+\_\+uint()}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+selection\+\_\+params\+::cbq}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+selection\+\_\+params\+::cell\+\_\+resel\+\_\+off}, \textbf{ bitvec\+::data}, \textbf{ data}, \textbf{ bitvec\+::data\+\_\+len}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::gprs\+\_\+ind}, \textbf{ H}, \textbf{ len}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+selection\+\_\+params\+::penalty\+\_\+time}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+power\+\_\+offset\+::power\+\_\+offset}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::power\+\_\+offset}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+selection\+\_\+params\+::present}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+power\+\_\+offset\+::present}, \textbf{ osmo\+\_\+gsm48\+\_\+si3\+\_\+gprs\+\_\+ind\+::present}, \textbf{ osmo\+\_\+gsm48\+\_\+si3\+\_\+gprs\+\_\+ind\+::ra\+\_\+colour}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::selection\+\_\+params}, \textbf{ osmo\+\_\+gsm48\+\_\+si3\+\_\+gprs\+\_\+ind\+::si13\+\_\+position}, and \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+selection\+\_\+params\+::temp\+\_\+offs}.

\mbox{\label{gsm48__rest__octets_8h_a04400b7fc273590a53887322d2160f1b}} 
\index{gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}!osmo\_gsm48\_rest\_octets\_si4\_encode@{osmo\_gsm48\_rest\_octets\_si4\_encode}}
\index{osmo\_gsm48\_rest\_octets\_si4\_encode@{osmo\_gsm48\_rest\_octets\_si4\_encode}!gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}}
\doxysubsubsection{osmo\_gsm48\_rest\_octets\_si4\_encode()}
{\footnotesize\ttfamily int osmo\+\_\+gsm48\+\_\+rest\+\_\+octets\+\_\+si4\+\_\+encode (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{data,  }\item[{const struct \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info} $\ast$}]{si4,  }\item[{int}]{len }\end{DoxyParamCaption})}



References \textbf{ append\+\_\+gprs\+\_\+ind()}, \textbf{ append\+\_\+lsa\+\_\+params()}, \textbf{ append\+\_\+power\+\_\+offset()}, \textbf{ append\+\_\+selection\+\_\+params()}, \textbf{ bitvec\+\_\+set\+\_\+bit()}, \textbf{ bitvec\+\_\+set\+\_\+uint()}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::break\+\_\+ind}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::cell\+\_\+id}, \textbf{ bitvec\+::data}, \textbf{ data}, \textbf{ bitvec\+::data\+\_\+len}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::gprs\+\_\+ind}, \textbf{ H}, \textbf{ L}, \textbf{ len}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::lsa\+\_\+params}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::power\+\_\+offset}, \textbf{ osmo\+\_\+gsm48\+\_\+lsa\+\_\+params\+::present}, and \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+ro\+\_\+info\+::selection\+\_\+params}.

\mbox{\label{gsm48__rest__octets_8h_a66665f1f3f726a97c855c5a9fe03558c}} 
\index{gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}!osmo\_gsm48\_rest\_octets\_si6\_encode@{osmo\_gsm48\_rest\_octets\_si6\_encode}}
\index{osmo\_gsm48\_rest\_octets\_si6\_encode@{osmo\_gsm48\_rest\_octets\_si6\_encode}!gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}}
\doxysubsubsection{osmo\_gsm48\_rest\_octets\_si6\_encode()}
{\footnotesize\ttfamily int osmo\+\_\+gsm48\+\_\+rest\+\_\+octets\+\_\+si6\+\_\+encode (\begin{DoxyParamCaption}\item[{uint8\+\_\+t $\ast$}]{data,  }\item[{const struct \textbf{ osmo\+\_\+gsm48\+\_\+si6\+\_\+ro\+\_\+info} $\ast$}]{in }\end{DoxyParamCaption})}



References \textbf{ osmo\+\_\+gsm48\+\_\+si6\+\_\+ro\+\_\+info\+::band\+\_\+indicator\+\_\+1900}, \textbf{ bitvec\+\_\+set\+\_\+bit()}, \textbf{ bitvec\+\_\+set\+\_\+uint()}, \textbf{ bitvec\+\_\+spare\+\_\+padding()}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+pch\+\_\+nch\+\_\+info\+::call\+\_\+priority}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+pch\+\_\+nch\+\_\+info\+::call\+\_\+priority\+\_\+present}, \textbf{ bitvec\+::data}, \textbf{ data}, \textbf{ bitvec\+::data\+\_\+len}, \textbf{ osmo\+\_\+gsm48\+\_\+si6\+\_\+ro\+\_\+info\+::dtm\+\_\+support}, \textbf{ osmo\+\_\+gsm48\+\_\+si6\+\_\+ro\+\_\+info\+::gprs\+\_\+ms\+\_\+txpwr\+\_\+max\+\_\+ccch}, \textbf{ H}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+vbs\+\_\+vgcs\+\_\+options\+::inband\+\_\+notifications}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+vbs\+\_\+vgcs\+\_\+options\+::inband\+\_\+pagings}, \textbf{ L}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+dtm\+\_\+support\+::max\+\_\+lapdm}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+gprs\+\_\+ms\+\_\+txpwr\+\_\+max\+\_\+ccch\+::max\+\_\+txpwr}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+pch\+\_\+nch\+\_\+info\+::nln\+\_\+sacch}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+pch\+\_\+nch\+\_\+info\+::nln\+\_\+status\+\_\+sacch}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+pch\+\_\+nch\+\_\+info\+::paging\+\_\+channel\+\_\+restructuring}, \textbf{ osmo\+\_\+gsm48\+\_\+si6\+\_\+ro\+\_\+info\+::pch\+\_\+nch\+\_\+info}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+pch\+\_\+nch\+\_\+info\+::present}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+vbs\+\_\+vgcs\+\_\+options\+::present}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+dtm\+\_\+support\+::present}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+gprs\+\_\+ms\+\_\+txpwr\+\_\+max\+\_\+ccch\+::present}, \textbf{ osmo\+\_\+gsm48\+\_\+si\+\_\+dtm\+\_\+support\+::rac}, and \textbf{ osmo\+\_\+gsm48\+\_\+si6\+\_\+ro\+\_\+info\+::vbs\+\_\+vgcs\+\_\+options}.

\mbox{\label{gsm48__rest__octets_8h_a8526ab6627e9644ea457f44bef04bcea}} 
\index{gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}!osmo\_gsm48\_si1ro\_nch\_pos\_decode@{osmo\_gsm48\_si1ro\_nch\_pos\_decode}}
\index{osmo\_gsm48\_si1ro\_nch\_pos\_decode@{osmo\_gsm48\_si1ro\_nch\_pos\_decode}!gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}}
\doxysubsubsection{osmo\_gsm48\_si1ro\_nch\_pos\_decode()}
{\footnotesize\ttfamily int osmo\+\_\+gsm48\+\_\+si1ro\+\_\+nch\+\_\+pos\+\_\+decode (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{value,  }\item[{uint8\+\_\+t $\ast$}]{num\+\_\+blocks,  }\item[{uint8\+\_\+t $\ast$}]{first\+\_\+block }\end{DoxyParamCaption})}



Decode the 5-\/bit \textquotesingle{}NCH position\textquotesingle{} field within SI1 Rest Octets. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em value} & 5-\/bit value from SI1 rest octets \\
\hline
\mbox{\texttt{ out}}  & {\em num\+\_\+blocks} & Number of CCCH used for NCH \\
\hline
\mbox{\texttt{ out}}  & {\em first\+\_\+block} & First CCCH block used for NCH \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success; negative in case of error 
\end{DoxyReturn}


References \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ nch\+\_\+pos\+::first\+\_\+block}, \textbf{ nch\+\_\+pos\+::num\+\_\+blocks}, and \textbf{ si1ro\+\_\+nch\+\_\+positions}.

\mbox{\label{gsm48__rest__octets_8h_a555e16ace13a45c4bf6813af4ae3cd71}} 
\index{gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}!osmo\_gsm48\_si1ro\_nch\_pos\_encode@{osmo\_gsm48\_si1ro\_nch\_pos\_encode}}
\index{osmo\_gsm48\_si1ro\_nch\_pos\_encode@{osmo\_gsm48\_si1ro\_nch\_pos\_encode}!gsm48\_rest\_octets.h@{gsm48\_rest\_octets.h}}
\doxysubsubsection{osmo\_gsm48\_si1ro\_nch\_pos\_encode()}
{\footnotesize\ttfamily int osmo\+\_\+gsm48\+\_\+si1ro\+\_\+nch\+\_\+pos\+\_\+encode (\begin{DoxyParamCaption}\item[{uint8\+\_\+t}]{num\+\_\+blocks,  }\item[{uint8\+\_\+t}]{first\+\_\+block }\end{DoxyParamCaption})}



Encode the 5-\/bit \textquotesingle{}NCH position\textquotesingle{} field within SI1 Rest Octets. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em num\+\_\+blocks} & Number of CCCH used for NCH \\
\hline
\mbox{\texttt{ in}}  & {\em first\+\_\+block} & First CCCH block used for NCH \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
5-\/bit value for SI1 rest octets on success; negative in case of error 
\end{DoxyReturn}


References \textbf{ ARRAY\+\_\+\+SIZE}, \textbf{ nch\+\_\+pos\+::first\+\_\+block}, \textbf{ nch\+\_\+pos\+::num\+\_\+blocks}, and \textbf{ si1ro\+\_\+nch\+\_\+positions}.

