\doxysection{include/osmocom/gprs/gprs\+\_\+bssgp\+\_\+bss.h File Reference}
\label{gprs__bssgp__bss_8h}\index{include/osmocom/gprs/gprs\_bssgp\_bss.h@{include/osmocom/gprs/gprs\_bssgp\_bss.h}}


GPRS BSSGP protocol implementation as per 3GPP TS 08.\+18.  


{\ttfamily \#include $<$osmocom/core/msgb.\+h$>$}\newline
{\ttfamily \#include $<$osmocom/gprs/gprs\+\_\+bssgp.\+h$>$}\newline
\doxysubsection*{Functions}
\begin{DoxyCompactItemize}
\item 
uint8\+\_\+t $\ast$ \textbf{ bssgp\+\_\+msgb\+\_\+tlli\+\_\+put} (struct \textbf{ msgb} $\ast$\textbf{ msg}, uint32\+\_\+t \textbf{ tlli})
\item 
uint8\+\_\+t $\ast$ \textbf{ bssgp\+\_\+msgb\+\_\+ra\+\_\+put} (struct \textbf{ msgb} $\ast$\textbf{ msg}, const struct \textbf{ gprs\+\_\+ra\+\_\+id} $\ast$\textbf{ ra\+\_\+id})
\item 
int \textbf{ bssgp\+\_\+tx\+\_\+bvc\+\_\+ptp\+\_\+reset} (uint16\+\_\+t \textbf{ nsei}, enum \textbf{ gprs\+\_\+bssgp\+\_\+cause} \textbf{ cause})
\begin{DoxyCompactList}\small\item\em Initiate reset procedure for all PTP BVC on a given NSEI. \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+tx\+\_\+suspend} (uint16\+\_\+t \textbf{ nsei}, uint32\+\_\+t \textbf{ tlli}, const struct \textbf{ gprs\+\_\+ra\+\_\+id} $\ast$\textbf{ ra\+\_\+id})
\begin{DoxyCompactList}\small\item\em GMM-\/\+SUSPEND.\+req (Chapter 10.\+3.\+6) \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+tx\+\_\+resume} (uint16\+\_\+t \textbf{ nsei}, uint32\+\_\+t \textbf{ tlli}, const struct \textbf{ gprs\+\_\+ra\+\_\+id} $\ast$\textbf{ ra\+\_\+id}, uint8\+\_\+t suspend\+\_\+ref)
\begin{DoxyCompactList}\small\item\em GMM-\/\+RESUME.\+req (Chapter 10.\+3.\+9) \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+tx\+\_\+ra\+\_\+capa\+\_\+upd} (struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$bctx, uint32\+\_\+t \textbf{ tlli}, uint8\+\_\+t tag)
\begin{DoxyCompactList}\small\item\em Transmit RA-\/\+CAPABILITY-\/\+UPDATE (10.\+3.\+3) \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+tx\+\_\+radio\+\_\+status\+\_\+tlli} (struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$bctx, uint8\+\_\+t \textbf{ cause}, uint32\+\_\+t \textbf{ tlli})
\begin{DoxyCompactList}\small\item\em Transmit RADIO-\/\+STATUS for TLLI (10.\+3.\+5) \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+tx\+\_\+radio\+\_\+status\+\_\+tmsi} (struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$bctx, uint8\+\_\+t \textbf{ cause}, uint32\+\_\+t tmsi)
\begin{DoxyCompactList}\small\item\em Transmit RADIO-\/\+STATUS for TMSI (10.\+3.\+5) \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+tx\+\_\+radio\+\_\+status\+\_\+imsi} (struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$bctx, uint8\+\_\+t \textbf{ cause}, const char $\ast$imsi)
\begin{DoxyCompactList}\small\item\em Transmit RADIO-\/\+STATUS for IMSI (10.\+3.\+5) \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+tx\+\_\+flush\+\_\+ll\+\_\+ack} (struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$bctx, uint32\+\_\+t \textbf{ tlli}, uint8\+\_\+t action, uint16\+\_\+t bvci\+\_\+new, uint32\+\_\+t num\+\_\+octets)
\begin{DoxyCompactList}\small\item\em Transmit FLUSH-\/\+LL-\/\+ACK (Chapter 10.\+4.\+2) \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+tx\+\_\+llc\+\_\+discarded} (struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$bctx, uint32\+\_\+t \textbf{ tlli}, uint8\+\_\+t num\+\_\+frames, uint32\+\_\+t num\+\_\+octets)
\begin{DoxyCompactList}\small\item\em Transmit LLC-\/\+DISCARDED (Chapter 10.\+4.\+3) \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+tx\+\_\+bvc\+\_\+block} (struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$bctx, uint8\+\_\+t \textbf{ cause})
\begin{DoxyCompactList}\small\item\em Transmit a BVC-\/\+BLOCK message (Chapter 10.\+4.\+8) \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+tx\+\_\+bvc\+\_\+unblock} (struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$bctx)
\begin{DoxyCompactList}\small\item\em Transmit a BVC-\/\+UNBLOCK message (Chapter 10.\+4.\+10) \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+tx\+\_\+bvc\+\_\+reset} (struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$bctx, uint16\+\_\+t \textbf{ bvci}, uint8\+\_\+t \textbf{ cause})
\item 
int \textbf{ bssgp\+\_\+tx\+\_\+bvc\+\_\+reset2} (struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$bctx, uint16\+\_\+t \textbf{ bvci}, uint8\+\_\+t \textbf{ cause}, bool add\+\_\+cell\+\_\+id)
\begin{DoxyCompactList}\small\item\em Transmit a BVC-\/\+RESET message (Chapter 10.\+4.\+12) \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+tx\+\_\+ul\+\_\+ud} (struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$bctx, uint32\+\_\+t \textbf{ tlli}, const uint8\+\_\+t $\ast$\textbf{ qos\+\_\+profile}, struct \textbf{ msgb} $\ast$llc\+\_\+pdu)
\begin{DoxyCompactList}\small\item\em RL-\/\+UL-\/\+UNITDATA.\+req (Chapter 10.\+2.\+2) \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+rx\+\_\+paging} (struct \textbf{ bssgp\+\_\+paging\+\_\+info} $\ast$pinfo, struct \textbf{ msgb} $\ast$\textbf{ msg})
\item 
int \textbf{ bssgp\+\_\+tx\+\_\+fc\+\_\+bvc} (struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$bctx, uint8\+\_\+t tag, uint32\+\_\+t bucket\+\_\+size, uint32\+\_\+t bucket\+\_\+leak\+\_\+rate, uint32\+\_\+t bmax\+\_\+default\+\_\+ms, uint32\+\_\+t r\+\_\+default\+\_\+ms, uint8\+\_\+t $\ast$bucket\+\_\+full\+\_\+ratio, uint32\+\_\+t $\ast$queue\+\_\+delay\+\_\+ms)
\begin{DoxyCompactList}\small\item\em Transmit a FLOW\+\_\+\+CONTROL-\/\+BVC (Chapter 10.\+4.\+4) \end{DoxyCompactList}\item 
int \textbf{ bssgp\+\_\+tx\+\_\+fc\+\_\+ms} (struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$bctx, uint32\+\_\+t \textbf{ tlli}, uint8\+\_\+t tag, uint32\+\_\+t ms\+\_\+bucket\+\_\+size, uint32\+\_\+t bucket\+\_\+leak\+\_\+rate, uint8\+\_\+t $\ast$bucket\+\_\+full\+\_\+ratio)
\begin{DoxyCompactList}\small\item\em Transmit a FLOW\+\_\+\+CONTROL-\/\+MS (Chapter 10.\+4.\+6) \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsection{Detailed Description}
GPRS BSSGP protocol implementation as per 3GPP TS 08.\+18. 



\doxysubsection{Function Documentation}
\mbox{\label{gprs__bssgp__bss_8h_aec493d997dc0bb1a79e72e8d51478a3d}} 
\index{gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}!bssgp\_msgb\_ra\_put@{bssgp\_msgb\_ra\_put}}
\index{bssgp\_msgb\_ra\_put@{bssgp\_msgb\_ra\_put}!gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}}
\doxysubsubsection{bssgp\_msgb\_ra\_put()}
{\footnotesize\ttfamily uint8\+\_\+t $\ast$ bssgp\+\_\+msgb\+\_\+ra\+\_\+put (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{const struct \textbf{ gprs\+\_\+ra\+\_\+id} $\ast$}]{ra\+\_\+id }\end{DoxyParamCaption})}



References \textbf{ BSSGP\+\_\+\+IE\+\_\+\+ROUTEING\+\_\+\+AREA}, \textbf{ gsm48\+\_\+encode\+\_\+ra()}, \textbf{ msg}, \textbf{ msgb\+\_\+tvlv\+\_\+put()}, and \textbf{ ra\+\_\+id}.



Referenced by \textbf{ bssgp\+\_\+tx\+\_\+paging()}, \textbf{ bssgp\+\_\+tx\+\_\+resume()}, \textbf{ bssgp\+\_\+tx\+\_\+resume\+\_\+ack()}, \textbf{ bssgp\+\_\+tx\+\_\+resume\+\_\+nack()}, \textbf{ bssgp\+\_\+tx\+\_\+suspend()}, \textbf{ bssgp\+\_\+tx\+\_\+suspend\+\_\+ack()}, and \textbf{ bssgp\+\_\+tx\+\_\+suspend\+\_\+nack()}.

\mbox{\label{gprs__bssgp__bss_8h_a01115ef3a9e887d47000f25874fcd1e5}} 
\index{gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}!bssgp\_msgb\_tlli\_put@{bssgp\_msgb\_tlli\_put}}
\index{bssgp\_msgb\_tlli\_put@{bssgp\_msgb\_tlli\_put}!gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}}
\doxysubsubsection{bssgp\_msgb\_tlli\_put()}
{\footnotesize\ttfamily uint8\+\_\+t $\ast$ bssgp\+\_\+msgb\+\_\+tlli\+\_\+put (\begin{DoxyParamCaption}\item[{struct \textbf{ msgb} $\ast$}]{msg,  }\item[{uint32\+\_\+t}]{tlli }\end{DoxyParamCaption})}



References \textbf{ BSSGP\+\_\+\+IE\+\_\+\+TLLI}, \textbf{ msg}, \textbf{ msgb\+\_\+tvlv\+\_\+put()}, \textbf{ osmo\+\_\+htonl}, and \textbf{ tlli}.



Referenced by \textbf{ bssgp\+\_\+tx\+\_\+fc\+\_\+ms()}, \textbf{ bssgp\+\_\+tx\+\_\+flush\+\_\+ll\+\_\+ack()}, \textbf{ bssgp\+\_\+tx\+\_\+llc\+\_\+discarded()}, \textbf{ bssgp\+\_\+tx\+\_\+ra\+\_\+capa\+\_\+upd()}, \textbf{ bssgp\+\_\+tx\+\_\+radio\+\_\+status\+\_\+tlli()}, \textbf{ bssgp\+\_\+tx\+\_\+resume()}, \textbf{ bssgp\+\_\+tx\+\_\+resume\+\_\+ack()}, \textbf{ bssgp\+\_\+tx\+\_\+resume\+\_\+nack()}, \textbf{ bssgp\+\_\+tx\+\_\+suspend()}, \textbf{ bssgp\+\_\+tx\+\_\+suspend\+\_\+ack()}, and \textbf{ bssgp\+\_\+tx\+\_\+suspend\+\_\+nack()}.

\mbox{\label{gprs__bssgp__bss_8h_a50c3246618a8a59d9bac8c3acbd4c29f}} 
\index{gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}!bssgp\_rx\_paging@{bssgp\_rx\_paging}}
\index{bssgp\_rx\_paging@{bssgp\_rx\_paging}!gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}}
\doxysubsubsection{bssgp\_rx\_paging()}
{\footnotesize\ttfamily int bssgp\+\_\+rx\+\_\+paging (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+paging\+\_\+info} $\ast$}]{pinfo,  }\item[{struct \textbf{ msgb} $\ast$}]{msg }\end{DoxyParamCaption})}



References \textbf{ BSSGP\+\_\+\+IE\+\_\+\+BSS\+\_\+\+AREA\+\_\+\+ID}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+BVCI}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+DRX\+\_\+\+PARAMS}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+IMSI}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+LOCATION\+\_\+\+AREA}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+QOS\+\_\+\+PROFILE}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+ROUTEING\+\_\+\+AREA}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+TMSI}, \textbf{ BSSGP\+\_\+\+PAGING\+\_\+\+BSS\+\_\+\+AREA}, \textbf{ BSSGP\+\_\+\+PAGING\+\_\+\+BVCI}, \textbf{ BSSGP\+\_\+\+PAGING\+\_\+\+CS}, \textbf{ BSSGP\+\_\+\+PAGING\+\_\+\+LOCATION\+\_\+\+AREA}, \textbf{ BSSGP\+\_\+\+PAGING\+\_\+\+PS}, \textbf{ BSSGP\+\_\+\+PAGING\+\_\+\+ROUTEING\+\_\+\+AREA}, \textbf{ BSSGP\+\_\+\+PDUT\+\_\+\+PAGING\+\_\+\+CS}, \textbf{ BSSGP\+\_\+\+PDUT\+\_\+\+PAGING\+\_\+\+PS}, \textbf{ bssgp\+\_\+tlv\+\_\+parse()}, \textbf{ bssgp\+\_\+paging\+\_\+info\+::bvci}, \textbf{ bssgp\+\_\+normal\+\_\+hdr\+::data}, \textbf{ bssgp\+\_\+paging\+\_\+info\+::drx\+\_\+params}, \textbf{ gsm48\+\_\+mi\+\_\+to\+\_\+string()}, \textbf{ gsm48\+\_\+parse\+\_\+ra()}, \textbf{ GSM\+\_\+\+IMSI\+\_\+\+LENGTH}, \textbf{ bssgp\+\_\+paging\+\_\+info\+::imsi}, \textbf{ bssgp\+\_\+paging\+\_\+info\+::mode}, \textbf{ msg}, \textbf{ msgb\+\_\+bssgp\+\_\+len}, \textbf{ msgb\+\_\+bssgph}, \textbf{ bssgp\+\_\+normal\+\_\+hdr\+::pdu\+\_\+type}, \textbf{ bssgp\+\_\+paging\+\_\+info\+::ptmsi}, \textbf{ bssgp\+\_\+paging\+\_\+info\+::qos}, \textbf{ bssgp\+\_\+paging\+\_\+info\+::raid}, \textbf{ bssgp\+\_\+paging\+\_\+info\+::scope}, \textbf{ TLVP\+\_\+\+LEN}, \textbf{ TLVP\+\_\+\+PRES\+\_\+\+LEN}, \textbf{ TLVP\+\_\+\+PRESENT}, \textbf{ TLVP\+\_\+\+VAL}, and \textbf{ tlvp\+\_\+val16be()}.

\mbox{\label{gprs__bssgp__bss_8h_ab5fbe1ab01472bbd5227d3fa072e4c30}} 
\index{gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}!bssgp\_tx\_bvc\_block@{bssgp\_tx\_bvc\_block}}
\index{bssgp\_tx\_bvc\_block@{bssgp\_tx\_bvc\_block}!gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}}
\doxysubsubsection{bssgp\_tx\_bvc\_block()}
{\footnotesize\ttfamily int bssgp\+\_\+tx\+\_\+bvc\+\_\+block (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$}]{bctx,  }\item[{uint8\+\_\+t}]{cause }\end{DoxyParamCaption})}



Transmit a BVC-\/\+BLOCK message (Chapter 10.\+4.\+8) 



References \textbf{ bssgp\+\_\+cause\+\_\+str()}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+BVCI}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+CAUSE}, \textbf{ bssgp\+\_\+msgb\+\_\+alloc()}, \textbf{ bssgp\+\_\+ns\+\_\+send}, \textbf{ bssgp\+\_\+ns\+\_\+send\+\_\+data}, \textbf{ BSSGP\+\_\+\+PDUT\+\_\+\+BVC\+\_\+\+BLOCK}, \textbf{ bssgp\+\_\+bvc\+\_\+ctx\+::bvci}, \textbf{ cause}, \textbf{ DLBSSGP}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGP}, \textbf{ msg}, \textbf{ msgb\+\_\+bvci}, \textbf{ msgb\+\_\+nsei}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+tvlv\+\_\+put()}, \textbf{ bssgp\+\_\+bvc\+\_\+ctx\+::nsei}, \textbf{ osmo\+\_\+htons}, and \textbf{ bssgp\+\_\+normal\+\_\+hdr\+::pdu\+\_\+type}.

\mbox{\label{gprs__bssgp__bss_8h_ad57da17b8aaad82802cf258dfd72dfc9}} 
\index{gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}!bssgp\_tx\_bvc\_ptp\_reset@{bssgp\_tx\_bvc\_ptp\_reset}}
\index{bssgp\_tx\_bvc\_ptp\_reset@{bssgp\_tx\_bvc\_ptp\_reset}!gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}}
\doxysubsubsection{bssgp\_tx\_bvc\_ptp\_reset()}
{\footnotesize\ttfamily int bssgp\+\_\+tx\+\_\+bvc\+\_\+ptp\+\_\+reset (\begin{DoxyParamCaption}\item[{uint16\+\_\+t}]{nsei,  }\item[{enum \textbf{ gprs\+\_\+bssgp\+\_\+cause}}]{cause }\end{DoxyParamCaption})}



Initiate reset procedure for all PTP BVC on a given NSEI. 

This function initiates reset procedure for all PTP BVC with a given cause. 
\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em nsei} & NSEI to which PTP BVC should belong to \\
\hline
\mbox{\texttt{ in}}  & {\em cause} & Cause of BVC RESET \\
\hline
\end{DoxyParams}
\begin{DoxyReturn}{Returns}
0 on success, negative error code otherwise 
\end{DoxyReturn}


References \textbf{ bssgp\+\_\+bvc\+\_\+ctxts}, \textbf{ bssgp\+\_\+cause\+\_\+str()}, \textbf{ bssgp\+\_\+tx\+\_\+bvc\+\_\+reset()}, \textbf{ bssgp\+\_\+bvc\+\_\+ctx\+::bvci}, \textbf{ BVCI\+\_\+\+SIGNALLING}, \textbf{ cause}, \textbf{ DLBSSGP}, \textbf{ list}, \textbf{ llist\+\_\+for\+\_\+each\+\_\+entry}, \textbf{ LOGL\+\_\+\+DEBUG}, \textbf{ LOGP}, \textbf{ bssgp\+\_\+bvc\+\_\+ctx\+::nsei}, and \textbf{ nsei}.

\mbox{\label{gprs__bssgp__bss_8h_a81943590c9ca6c3a961ef567bdf19883}} 
\index{gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}!bssgp\_tx\_bvc\_reset@{bssgp\_tx\_bvc\_reset}}
\index{bssgp\_tx\_bvc\_reset@{bssgp\_tx\_bvc\_reset}!gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}}
\doxysubsubsection{bssgp\_tx\_bvc\_reset()}
{\footnotesize\ttfamily int bssgp\+\_\+tx\+\_\+bvc\+\_\+reset (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$}]{bctx,  }\item[{uint16\+\_\+t}]{bvci,  }\item[{uint8\+\_\+t}]{cause }\end{DoxyParamCaption})}



References \textbf{ bssgp\+\_\+tx\+\_\+bvc\+\_\+reset2()}, \textbf{ bvci}, \textbf{ BVCI\+\_\+\+PTM}, \textbf{ BVCI\+\_\+\+SIGNALLING}, and \textbf{ cause}.



Referenced by \textbf{ bssgp\+\_\+tx\+\_\+bvc\+\_\+ptp\+\_\+reset()}, and \textbf{ DEFUN()}.

\mbox{\label{gprs__bssgp__bss_8h_aabefbe67317a589b6c484aaa80348b9f}} 
\index{gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}!bssgp\_tx\_bvc\_reset2@{bssgp\_tx\_bvc\_reset2}}
\index{bssgp\_tx\_bvc\_reset2@{bssgp\_tx\_bvc\_reset2}!gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}}
\doxysubsubsection{bssgp\_tx\_bvc\_reset2()}
{\footnotesize\ttfamily int bssgp\+\_\+tx\+\_\+bvc\+\_\+reset2 (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$}]{bctx,  }\item[{uint16\+\_\+t}]{bvci,  }\item[{uint8\+\_\+t}]{cause,  }\item[{bool}]{add\+\_\+cell\+\_\+id }\end{DoxyParamCaption})}



Transmit a BVC-\/\+RESET message (Chapter 10.\+4.\+12) 



References \textbf{ bssgp\+\_\+tx\+\_\+bvc\+\_\+reset\+\_\+nsei\+\_\+bvci()}, \textbf{ bvci}, \textbf{ cause}, \textbf{ bssgp\+\_\+bvc\+\_\+ctx\+::cell\+\_\+id}, \textbf{ bssgp\+\_\+bvc\+\_\+ctx\+::nsei}, and \textbf{ bssgp\+\_\+bvc\+\_\+ctx\+::ra\+\_\+id}.



Referenced by \textbf{ bssgp\+\_\+tx\+\_\+bvc\+\_\+reset()}.

\mbox{\label{gprs__bssgp__bss_8h_ad680a1bec5c25142280deffc246f6cfa}} 
\index{gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}!bssgp\_tx\_bvc\_unblock@{bssgp\_tx\_bvc\_unblock}}
\index{bssgp\_tx\_bvc\_unblock@{bssgp\_tx\_bvc\_unblock}!gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}}
\doxysubsubsection{bssgp\_tx\_bvc\_unblock()}
{\footnotesize\ttfamily int bssgp\+\_\+tx\+\_\+bvc\+\_\+unblock (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$}]{bctx }\end{DoxyParamCaption})}



Transmit a BVC-\/\+UNBLOCK message (Chapter 10.\+4.\+10) 



References \textbf{ BSSGP\+\_\+\+IE\+\_\+\+BVCI}, \textbf{ bssgp\+\_\+msgb\+\_\+alloc()}, \textbf{ bssgp\+\_\+ns\+\_\+send}, \textbf{ bssgp\+\_\+ns\+\_\+send\+\_\+data}, \textbf{ BSSGP\+\_\+\+PDUT\+\_\+\+BVC\+\_\+\+UNBLOCK}, \textbf{ bssgp\+\_\+bvc\+\_\+ctx\+::bvci}, \textbf{ DLBSSGP}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGP}, \textbf{ msg}, \textbf{ msgb\+\_\+bvci}, \textbf{ msgb\+\_\+nsei}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+tvlv\+\_\+put()}, \textbf{ bssgp\+\_\+bvc\+\_\+ctx\+::nsei}, \textbf{ osmo\+\_\+htons}, and \textbf{ bssgp\+\_\+normal\+\_\+hdr\+::pdu\+\_\+type}.

\mbox{\label{gprs__bssgp__bss_8h_a7902e846d83f59e753f610b8ac181b1b}} 
\index{gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}!bssgp\_tx\_fc\_bvc@{bssgp\_tx\_fc\_bvc}}
\index{bssgp\_tx\_fc\_bvc@{bssgp\_tx\_fc\_bvc}!gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}}
\doxysubsubsection{bssgp\_tx\_fc\_bvc()}
{\footnotesize\ttfamily int bssgp\+\_\+tx\+\_\+fc\+\_\+bvc (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$}]{bctx,  }\item[{uint8\+\_\+t}]{tag,  }\item[{uint32\+\_\+t}]{bucket\+\_\+size,  }\item[{uint32\+\_\+t}]{bucket\+\_\+leak\+\_\+rate,  }\item[{uint32\+\_\+t}]{bmax\+\_\+default\+\_\+ms,  }\item[{uint32\+\_\+t}]{r\+\_\+default\+\_\+ms,  }\item[{uint8\+\_\+t $\ast$}]{bucket\+\_\+full\+\_\+ratio,  }\item[{uint32\+\_\+t $\ast$}]{queue\+\_\+delay\+\_\+ms }\end{DoxyParamCaption})}



Transmit a FLOW\+\_\+\+CONTROL-\/\+BVC (Chapter 10.\+4.\+4) 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em bctx} & BVC Context \\
\hline
\mbox{\texttt{ in}}  & {\em tag} & Additional tag to identify acknowledge \\
\hline
\mbox{\texttt{ in}}  & {\em bucket\+\_\+size} & Maximum bucket size in octets \\
\hline
\mbox{\texttt{ in}}  & {\em bucket\+\_\+leak\+\_\+rate} & Bucket leak rate in octets/sec \\
\hline
\mbox{\texttt{ in}}  & {\em bmax\+\_\+default\+\_\+ms} & Maximum bucket size default for MS \\
\hline
\mbox{\texttt{ in}}  & {\em r\+\_\+default\+\_\+ms} & Bucket leak rate default for MS in octets/sec \\
\hline
\mbox{\texttt{ in}}  & {\em bucket\+\_\+full\+\_\+ratio} & Ratio (in percent) of queue filling \\
\hline
\mbox{\texttt{ in}}  & {\em queue\+\_\+delay\+\_\+ms} & Average queuing delay in milliseconds \\
\hline
\end{DoxyParams}


References \textbf{ BSSGP\+\_\+\+IE\+\_\+\+BMAX\+\_\+\+DEFAULT\+\_\+\+MS}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+BUCKET\+\_\+\+FULL\+\_\+\+RATIO}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+BUCKET\+\_\+\+LEAK\+\_\+\+RATE}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+BVC\+\_\+\+BUCKET\+\_\+\+SIZE}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+BVC\+\_\+\+MEASUREMENT}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+R\+\_\+\+DEFAULT\+\_\+\+MS}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+TAG}, \textbf{ bssgp\+\_\+msgb\+\_\+alloc()}, \textbf{ bssgp\+\_\+ns\+\_\+send}, \textbf{ bssgp\+\_\+ns\+\_\+send\+\_\+data}, \textbf{ BSSGP\+\_\+\+PDUT\+\_\+\+FLOW\+\_\+\+CONTROL\+\_\+\+BVC}, \textbf{ bssgp\+\_\+bvc\+\_\+ctx\+::bvci}, \textbf{ msg}, \textbf{ msgb\+\_\+bvci}, \textbf{ msgb\+\_\+nsei}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+tvlv\+\_\+put()}, \textbf{ bssgp\+\_\+bvc\+\_\+ctx\+::nsei}, \textbf{ osmo\+\_\+htons}, and \textbf{ bssgp\+\_\+normal\+\_\+hdr\+::pdu\+\_\+type}.

\mbox{\label{gprs__bssgp__bss_8h_a0c3fe77e38e6d6befba69a3a36ff4e0b}} 
\index{gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}!bssgp\_tx\_fc\_ms@{bssgp\_tx\_fc\_ms}}
\index{bssgp\_tx\_fc\_ms@{bssgp\_tx\_fc\_ms}!gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}}
\doxysubsubsection{bssgp\_tx\_fc\_ms()}
{\footnotesize\ttfamily int bssgp\+\_\+tx\+\_\+fc\+\_\+ms (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$}]{bctx,  }\item[{uint32\+\_\+t}]{tlli,  }\item[{uint8\+\_\+t}]{tag,  }\item[{uint32\+\_\+t}]{ms\+\_\+bucket\+\_\+size,  }\item[{uint32\+\_\+t}]{bucket\+\_\+leak\+\_\+rate,  }\item[{uint8\+\_\+t $\ast$}]{bucket\+\_\+full\+\_\+ratio }\end{DoxyParamCaption})}



Transmit a FLOW\+\_\+\+CONTROL-\/\+MS (Chapter 10.\+4.\+6) 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em bctx} & BVC Context \\
\hline
\mbox{\texttt{ in}}  & {\em tlli} & TLLI to identify MS \\
\hline
\mbox{\texttt{ in}}  & {\em tag} & Additional tag to identify acknowledge \\
\hline
\mbox{\texttt{ in}}  & {\em ms\+\_\+bucket\+\_\+size} & Maximum bucket size in octets \\
\hline
\mbox{\texttt{ in}}  & {\em bucket\+\_\+leak\+\_\+rate} & Bucket leak rate in octets/sec \\
\hline
\mbox{\texttt{ in}}  & {\em bucket\+\_\+full\+\_\+ratio} & Ratio (in percent) of queue filling \\
\hline
\end{DoxyParams}


References \textbf{ BSSGP\+\_\+\+IE\+\_\+\+BUCKET\+\_\+\+FULL\+\_\+\+RATIO}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+BUCKET\+\_\+\+LEAK\+\_\+\+RATE}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+MS\+\_\+\+BUCKET\+\_\+\+SIZE}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+TAG}, \textbf{ bssgp\+\_\+msgb\+\_\+alloc()}, \textbf{ bssgp\+\_\+msgb\+\_\+tlli\+\_\+put()}, \textbf{ bssgp\+\_\+ns\+\_\+send}, \textbf{ bssgp\+\_\+ns\+\_\+send\+\_\+data}, \textbf{ BSSGP\+\_\+\+PDUT\+\_\+\+FLOW\+\_\+\+CONTROL\+\_\+\+MS}, \textbf{ bssgp\+\_\+bvc\+\_\+ctx\+::bvci}, \textbf{ msg}, \textbf{ msgb\+\_\+bvci}, \textbf{ msgb\+\_\+nsei}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+tvlv\+\_\+put()}, \textbf{ bssgp\+\_\+bvc\+\_\+ctx\+::nsei}, \textbf{ bssgp\+\_\+normal\+\_\+hdr\+::pdu\+\_\+type}, and \textbf{ tlli}.

\mbox{\label{gprs__bssgp__bss_8h_a321e0b0807d0c3f06b7a871c7df5e3da}} 
\index{gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}!bssgp\_tx\_flush\_ll\_ack@{bssgp\_tx\_flush\_ll\_ack}}
\index{bssgp\_tx\_flush\_ll\_ack@{bssgp\_tx\_flush\_ll\_ack}!gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}}
\doxysubsubsection{bssgp\_tx\_flush\_ll\_ack()}
{\footnotesize\ttfamily int bssgp\+\_\+tx\+\_\+flush\+\_\+ll\+\_\+ack (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$}]{bctx,  }\item[{uint32\+\_\+t}]{tlli,  }\item[{uint8\+\_\+t}]{action,  }\item[{uint16\+\_\+t}]{bvci\+\_\+new,  }\item[{uint32\+\_\+t}]{num\+\_\+octets }\end{DoxyParamCaption})}



Transmit FLUSH-\/\+LL-\/\+ACK (Chapter 10.\+4.\+2) 



References \textbf{ BSSGP\+\_\+\+IE\+\_\+\+BVCI}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+FLUSH\+\_\+\+ACTION}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+NUM\+\_\+\+OCT\+\_\+\+AFF}, \textbf{ bssgp\+\_\+msgb\+\_\+alloc()}, \textbf{ bssgp\+\_\+msgb\+\_\+tlli\+\_\+put()}, \textbf{ bssgp\+\_\+ns\+\_\+send}, \textbf{ bssgp\+\_\+ns\+\_\+send\+\_\+data}, \textbf{ BSSGP\+\_\+\+PDUT\+\_\+\+FLUSH\+\_\+\+LL\+\_\+\+ACK}, \textbf{ msg}, \textbf{ msgb\+\_\+bvci}, \textbf{ msgb\+\_\+nsei}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+tvlv\+\_\+put()}, \textbf{ bssgp\+\_\+bvc\+\_\+ctx\+::nsei}, \textbf{ osmo\+\_\+htonl}, \textbf{ osmo\+\_\+htons}, \textbf{ bssgp\+\_\+normal\+\_\+hdr\+::pdu\+\_\+type}, and \textbf{ tlli}.

\mbox{\label{gprs__bssgp__bss_8h_a98eeaea71a75c64ba1d82033093ee7eb}} 
\index{gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}!bssgp\_tx\_llc\_discarded@{bssgp\_tx\_llc\_discarded}}
\index{bssgp\_tx\_llc\_discarded@{bssgp\_tx\_llc\_discarded}!gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}}
\doxysubsubsection{bssgp\_tx\_llc\_discarded()}
{\footnotesize\ttfamily int bssgp\+\_\+tx\+\_\+llc\+\_\+discarded (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$}]{bctx,  }\item[{uint32\+\_\+t}]{tlli,  }\item[{uint8\+\_\+t}]{num\+\_\+frames,  }\item[{uint32\+\_\+t}]{num\+\_\+octets }\end{DoxyParamCaption})}



Transmit LLC-\/\+DISCARDED (Chapter 10.\+4.\+3) 



References \textbf{ BSSGP\+\_\+\+IE\+\_\+\+BVCI}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+LLC\+\_\+\+FRAMES\+\_\+\+DISCARDED}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+NUM\+\_\+\+OCT\+\_\+\+AFF}, \textbf{ bssgp\+\_\+msgb\+\_\+alloc()}, \textbf{ bssgp\+\_\+msgb\+\_\+tlli\+\_\+put()}, \textbf{ bssgp\+\_\+ns\+\_\+send}, \textbf{ bssgp\+\_\+ns\+\_\+send\+\_\+data}, \textbf{ BSSGP\+\_\+\+PDUT\+\_\+\+LLC\+\_\+\+DISCARD}, \textbf{ bssgp\+\_\+bvc\+\_\+ctx\+::bvci}, \textbf{ DLBSSGP}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGP}, \textbf{ msg}, \textbf{ msgb\+\_\+bvci}, \textbf{ msgb\+\_\+nsei}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+tvlv\+\_\+put()}, \textbf{ bssgp\+\_\+bvc\+\_\+ctx\+::nsei}, \textbf{ osmo\+\_\+htonl}, \textbf{ osmo\+\_\+htons}, \textbf{ bssgp\+\_\+normal\+\_\+hdr\+::pdu\+\_\+type}, and \textbf{ tlli}.

\mbox{\label{gprs__bssgp__bss_8h_a36c43b26ae23e318b31e86f0b58b5a73}} 
\index{gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}!bssgp\_tx\_ra\_capa\_upd@{bssgp\_tx\_ra\_capa\_upd}}
\index{bssgp\_tx\_ra\_capa\_upd@{bssgp\_tx\_ra\_capa\_upd}!gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}}
\doxysubsubsection{bssgp\_tx\_ra\_capa\_upd()}
{\footnotesize\ttfamily int bssgp\+\_\+tx\+\_\+ra\+\_\+capa\+\_\+upd (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$}]{bctx,  }\item[{uint32\+\_\+t}]{tlli,  }\item[{uint8\+\_\+t}]{tag }\end{DoxyParamCaption})}



Transmit RA-\/\+CAPABILITY-\/\+UPDATE (10.\+3.\+3) 



References \textbf{ BSSGP\+\_\+\+IE\+\_\+\+TAG}, \textbf{ bssgp\+\_\+msgb\+\_\+alloc()}, \textbf{ bssgp\+\_\+msgb\+\_\+tlli\+\_\+put()}, \textbf{ bssgp\+\_\+ns\+\_\+send}, \textbf{ bssgp\+\_\+ns\+\_\+send\+\_\+data}, \textbf{ BSSGP\+\_\+\+PDUT\+\_\+\+RA\+\_\+\+CAPA\+\_\+\+UDPATE}, \textbf{ bssgp\+\_\+bvc\+\_\+ctx\+::bvci}, \textbf{ DLBSSGP}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGP}, \textbf{ msg}, \textbf{ msgb\+\_\+bvci}, \textbf{ msgb\+\_\+nsei}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+tvlv\+\_\+put()}, \textbf{ bssgp\+\_\+bvc\+\_\+ctx\+::nsei}, \textbf{ bssgp\+\_\+normal\+\_\+hdr\+::pdu\+\_\+type}, and \textbf{ tlli}.

\mbox{\label{gprs__bssgp__bss_8h_a19123f7105053d9894f9d5411a88750a}} 
\index{gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}!bssgp\_tx\_radio\_status\_imsi@{bssgp\_tx\_radio\_status\_imsi}}
\index{bssgp\_tx\_radio\_status\_imsi@{bssgp\_tx\_radio\_status\_imsi}!gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}}
\doxysubsubsection{bssgp\_tx\_radio\_status\_imsi()}
{\footnotesize\ttfamily int bssgp\+\_\+tx\+\_\+radio\+\_\+status\+\_\+imsi (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$}]{bctx,  }\item[{uint8\+\_\+t}]{cause,  }\item[{const char $\ast$}]{imsi }\end{DoxyParamCaption})}



Transmit RADIO-\/\+STATUS for IMSI (10.\+3.\+5) 



References \textbf{ BSSGP\+\_\+\+IE\+\_\+\+IMSI}, \textbf{ cause}, \textbf{ common\+\_\+tx\+\_\+radio\+\_\+status()}, \textbf{ common\+\_\+tx\+\_\+radio\+\_\+status2()}, \textbf{ DLBSSGP}, \textbf{ gsm48\+\_\+generate\+\_\+mid\+\_\+from\+\_\+imsi()}, \textbf{ GSM48\+\_\+\+MID\+\_\+\+MAX\+\_\+\+SIZE}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGPC}, \textbf{ mi}, \textbf{ msg}, \textbf{ msgb\+\_\+tvlv\+\_\+put()}, and \textbf{ OSMO\+\_\+\+ASSERT}.

\mbox{\label{gprs__bssgp__bss_8h_a12f22eebec47f4798df2f86dbc4ce694}} 
\index{gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}!bssgp\_tx\_radio\_status\_tlli@{bssgp\_tx\_radio\_status\_tlli}}
\index{bssgp\_tx\_radio\_status\_tlli@{bssgp\_tx\_radio\_status\_tlli}!gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}}
\doxysubsubsection{bssgp\_tx\_radio\_status\_tlli()}
{\footnotesize\ttfamily int bssgp\+\_\+tx\+\_\+radio\+\_\+status\+\_\+tlli (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$}]{bctx,  }\item[{uint8\+\_\+t}]{cause,  }\item[{uint32\+\_\+t}]{tlli }\end{DoxyParamCaption})}



Transmit RADIO-\/\+STATUS for TLLI (10.\+3.\+5) 



References \textbf{ bssgp\+\_\+msgb\+\_\+tlli\+\_\+put()}, \textbf{ cause}, \textbf{ common\+\_\+tx\+\_\+radio\+\_\+status()}, \textbf{ common\+\_\+tx\+\_\+radio\+\_\+status2()}, \textbf{ DLBSSGP}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGPC}, \textbf{ msg}, and \textbf{ tlli}.

\mbox{\label{gprs__bssgp__bss_8h_ae5ddf07cef4a8eca000952b539546b84}} 
\index{gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}!bssgp\_tx\_radio\_status\_tmsi@{bssgp\_tx\_radio\_status\_tmsi}}
\index{bssgp\_tx\_radio\_status\_tmsi@{bssgp\_tx\_radio\_status\_tmsi}!gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}}
\doxysubsubsection{bssgp\_tx\_radio\_status\_tmsi()}
{\footnotesize\ttfamily int bssgp\+\_\+tx\+\_\+radio\+\_\+status\+\_\+tmsi (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$}]{bctx,  }\item[{uint8\+\_\+t}]{cause,  }\item[{uint32\+\_\+t}]{tmsi }\end{DoxyParamCaption})}



Transmit RADIO-\/\+STATUS for TMSI (10.\+3.\+5) 



References \textbf{ BSSGP\+\_\+\+IE\+\_\+\+TMSI}, \textbf{ cause}, \textbf{ common\+\_\+tx\+\_\+radio\+\_\+status()}, \textbf{ common\+\_\+tx\+\_\+radio\+\_\+status2()}, \textbf{ DLBSSGP}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGPC}, \textbf{ msg}, \textbf{ msgb\+\_\+tvlv\+\_\+put()}, and \textbf{ osmo\+\_\+htonl}.

\mbox{\label{gprs__bssgp__bss_8h_acf50b722650b5b60863378bbdf52d522}} 
\index{gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}!bssgp\_tx\_resume@{bssgp\_tx\_resume}}
\index{bssgp\_tx\_resume@{bssgp\_tx\_resume}!gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}}
\doxysubsubsection{bssgp\_tx\_resume()}
{\footnotesize\ttfamily int bssgp\+\_\+tx\+\_\+resume (\begin{DoxyParamCaption}\item[{uint16\+\_\+t}]{nsei,  }\item[{uint32\+\_\+t}]{tlli,  }\item[{const struct \textbf{ gprs\+\_\+ra\+\_\+id} $\ast$}]{ra\+\_\+id,  }\item[{uint8\+\_\+t}]{suspend\+\_\+ref }\end{DoxyParamCaption})}



GMM-\/\+RESUME.\+req (Chapter 10.\+3.\+9) 



References \textbf{ BSSGP\+\_\+\+IE\+\_\+\+SUSPEND\+\_\+\+REF\+\_\+\+NR}, \textbf{ bssgp\+\_\+msgb\+\_\+alloc()}, \textbf{ bssgp\+\_\+msgb\+\_\+ra\+\_\+put()}, \textbf{ bssgp\+\_\+msgb\+\_\+tlli\+\_\+put()}, \textbf{ bssgp\+\_\+ns\+\_\+send}, \textbf{ bssgp\+\_\+ns\+\_\+send\+\_\+data}, \textbf{ BSSGP\+\_\+\+PDUT\+\_\+\+RESUME}, \textbf{ DLBSSGP}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGP}, \textbf{ msg}, \textbf{ msgb\+\_\+bvci}, \textbf{ msgb\+\_\+nsei}, \textbf{ msgb\+\_\+put()}, \textbf{ msgb\+\_\+tvlv\+\_\+put()}, \textbf{ nsei}, \textbf{ bssgp\+\_\+normal\+\_\+hdr\+::pdu\+\_\+type}, \textbf{ ra\+\_\+id}, and \textbf{ tlli}.

\mbox{\label{gprs__bssgp__bss_8h_a9b6f2e6bd8d07b253d824d642ae37862}} 
\index{gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}!bssgp\_tx\_suspend@{bssgp\_tx\_suspend}}
\index{bssgp\_tx\_suspend@{bssgp\_tx\_suspend}!gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}}
\doxysubsubsection{bssgp\_tx\_suspend()}
{\footnotesize\ttfamily int bssgp\+\_\+tx\+\_\+suspend (\begin{DoxyParamCaption}\item[{uint16\+\_\+t}]{nsei,  }\item[{uint32\+\_\+t}]{tlli,  }\item[{const struct \textbf{ gprs\+\_\+ra\+\_\+id} $\ast$}]{ra\+\_\+id }\end{DoxyParamCaption})}



GMM-\/\+SUSPEND.\+req (Chapter 10.\+3.\+6) 



References \textbf{ bssgp\+\_\+msgb\+\_\+alloc()}, \textbf{ bssgp\+\_\+msgb\+\_\+ra\+\_\+put()}, \textbf{ bssgp\+\_\+msgb\+\_\+tlli\+\_\+put()}, \textbf{ bssgp\+\_\+ns\+\_\+send}, \textbf{ bssgp\+\_\+ns\+\_\+send\+\_\+data}, \textbf{ BSSGP\+\_\+\+PDUT\+\_\+\+SUSPEND}, \textbf{ DLBSSGP}, \textbf{ LOGL\+\_\+\+NOTICE}, \textbf{ LOGP}, \textbf{ msg}, \textbf{ msgb\+\_\+bvci}, \textbf{ msgb\+\_\+nsei}, \textbf{ msgb\+\_\+put()}, \textbf{ nsei}, \textbf{ bssgp\+\_\+normal\+\_\+hdr\+::pdu\+\_\+type}, \textbf{ ra\+\_\+id}, and \textbf{ tlli}.

\mbox{\label{gprs__bssgp__bss_8h_a86639c3e67df0f818630ca547ddf1200}} 
\index{gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}!bssgp\_tx\_ul\_ud@{bssgp\_tx\_ul\_ud}}
\index{bssgp\_tx\_ul\_ud@{bssgp\_tx\_ul\_ud}!gprs\_bssgp\_bss.h@{gprs\_bssgp\_bss.h}}
\doxysubsubsection{bssgp\_tx\_ul\_ud()}
{\footnotesize\ttfamily int bssgp\+\_\+tx\+\_\+ul\+\_\+ud (\begin{DoxyParamCaption}\item[{struct \textbf{ bssgp\+\_\+bvc\+\_\+ctx} $\ast$}]{bctx,  }\item[{uint32\+\_\+t}]{tlli,  }\item[{const uint8\+\_\+t $\ast$}]{qos\+\_\+profile,  }\item[{struct \textbf{ msgb} $\ast$}]{llc\+\_\+pdu }\end{DoxyParamCaption})}



RL-\/\+UL-\/\+UNITDATA.\+req (Chapter 10.\+2.\+2) 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em bctx} & BVC Context \\
\hline
\mbox{\texttt{ in}}  & {\em tlli} & TLLI to identify MS \\
\hline
\mbox{\texttt{ in}}  & {\em qos\+\_\+profile} & Pointer to three octests of QoS profile \\
\hline
\mbox{\texttt{ in}}  & {\em llc\+\_\+pdu} & msgb pointer containing UL Unitdata IE payload \\
\hline
\end{DoxyParams}


References \textbf{ bssgp\+\_\+create\+\_\+cell\+\_\+id()}, \textbf{ BSSGP\+\_\+\+CTR\+\_\+\+BYTES\+\_\+\+OUT}, \textbf{ BSSGP\+\_\+\+CTR\+\_\+\+PKTS\+\_\+\+OUT}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+ALIGNMENT}, \textbf{ BSSGP\+\_\+\+IE\+\_\+\+CELL\+\_\+\+ID}, \textbf{ bssgp\+\_\+ns\+\_\+send}, \textbf{ bssgp\+\_\+ns\+\_\+send\+\_\+data}, \textbf{ BSSGP\+\_\+\+PDUT\+\_\+\+UL\+\_\+\+UNITDATA}, \textbf{ bssgp\+\_\+bvc\+\_\+ctx\+::bvci}, \textbf{ bssgp\+\_\+bvc\+\_\+ctx\+::cell\+\_\+id}, \textbf{ bssgp\+\_\+bvc\+\_\+ctx\+::ctrg}, \textbf{ msg}, \textbf{ msgb\+\_\+bvci}, \textbf{ msgb\+\_\+nsei}, \textbf{ msgb\+\_\+push()}, \textbf{ msgb\+\_\+tvlv\+\_\+push()}, \textbf{ bssgp\+\_\+bvc\+\_\+ctx\+::nsei}, \textbf{ osmo\+\_\+htonl}, \textbf{ bssgp\+\_\+ud\+\_\+hdr\+::pdu\+\_\+type}, \textbf{ qos\+\_\+profile}, \textbf{ bssgp\+\_\+ud\+\_\+hdr\+::qos\+\_\+profile}, \textbf{ bssgp\+\_\+bvc\+\_\+ctx\+::ra\+\_\+id}, \textbf{ rate\+\_\+ctr\+\_\+add()}, \textbf{ rate\+\_\+ctr\+\_\+group\+\_\+get\+\_\+ctr()}, \textbf{ rate\+\_\+ctr\+\_\+inc()}, \textbf{ tlli}, and \textbf{ bssgp\+\_\+ud\+\_\+hdr\+::tlli}.

