\doxysection{gprs\+\_\+bssgp2.\+h}
\label{gprs__bssgp2_8h_source}\index{include/osmocom/gprs/gprs\_bssgp2.h@{include/osmocom/gprs/gprs\_bssgp2.h}}
\textbf{ Go to the documentation of this file.}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 \textcolor{preprocessor}{\#pragma once}}
\DoxyCodeLine{2 \textcolor{preprocessor}{\#include <stdint.h>}}
\DoxyCodeLine{3 }
\DoxyCodeLine{4 \textcolor{preprocessor}{\#include <osmocom/gprs/protocol/gsm\_08\_18.h>}}
\DoxyCodeLine{5 \textcolor{preprocessor}{\#include <osmocom/gprs/gprs\_ns2.h>}}
\DoxyCodeLine{6 }
\DoxyCodeLine{7 \textcolor{keyword}{struct }bssgp2\_flow\_ctrl;}
\DoxyCodeLine{8 \textcolor{keyword}{struct }gprs\_ns2\_inst;}
\DoxyCodeLine{9 \textcolor{keyword}{struct }gprs\_ra\_id;}
\DoxyCodeLine{10 \textcolor{keyword}{struct }msgb;}
\DoxyCodeLine{11 }
\DoxyCodeLine{12 \textcolor{keyword}{struct }bssgp2\_flow\_ctrl \{}
\DoxyCodeLine{13         uint8\_t tag;}
\DoxyCodeLine{14         \textcolor{comment}{/* maximum bucket size (Bmax) in bytes */}}
\DoxyCodeLine{15         uint64\_t bucket\_size\_max;}
\DoxyCodeLine{17         uint64\_t bucket\_leak\_rate;}
\DoxyCodeLine{18         \textcolor{comment}{/* percentage how full the given bucket is */}}
\DoxyCodeLine{19         uint8\_t bucket\_full\_ratio;}
\DoxyCodeLine{20         \textcolor{keywordtype}{bool} bucket\_full\_ratio\_present;}
\DoxyCodeLine{21         \textcolor{keyword}{union }\{}
\DoxyCodeLine{23                 \textcolor{keyword}{struct }\{}
\DoxyCodeLine{25                         uint64\_t bmax\_default\_ms;}
\DoxyCodeLine{27                         uint64\_t r\_default\_ms;}
\DoxyCodeLine{28 }
\DoxyCodeLine{30                         uint32\_t measurement;}
\DoxyCodeLine{31                         \textcolor{keywordtype}{bool} measurement\_present;}
\DoxyCodeLine{32                 \} bvc;}
\DoxyCodeLine{34                 \textcolor{keyword}{struct }\{}
\DoxyCodeLine{36                         uint32\_t tlli;}
\DoxyCodeLine{37                 \} ms;}
\DoxyCodeLine{38         \} u;}
\DoxyCodeLine{39 \};}
\DoxyCodeLine{40 }
\DoxyCodeLine{41 }
\DoxyCodeLine{42 \textcolor{keywordtype}{int} bssgp2\_nsi\_tx\_ptp(\textcolor{keyword}{struct} gprs\_ns2\_inst *nsi, uint16\_t nsei, uint16\_t bvci,}
\DoxyCodeLine{43                       \textcolor{keyword}{struct} msgb *msg, uint32\_t lsp);}
\DoxyCodeLine{44 }
\DoxyCodeLine{45 \textcolor{keywordtype}{int} bssgp2\_nsi\_tx\_sig(\textcolor{keyword}{struct} gprs\_ns2\_inst *nsi, uint16\_t nsei, \textcolor{keyword}{struct} msgb *msg, uint32\_t lsp);}
\DoxyCodeLine{46 }
\DoxyCodeLine{47 \textcolor{keyword}{struct }msgb *bssgp2\_enc\_bvc\_block(uint16\_t bvci, \textcolor{keyword}{enum} gprs\_bssgp\_cause cause);}
\DoxyCodeLine{48 }
\DoxyCodeLine{49 \textcolor{keyword}{struct }msgb *bssgp2\_enc\_bvc\_block\_ack(uint16\_t bvci);}
\DoxyCodeLine{50 }
\DoxyCodeLine{51 \textcolor{keyword}{struct }msgb *bssgp2\_enc\_bvc\_unblock(uint16\_t bvci);}
\DoxyCodeLine{52 }
\DoxyCodeLine{53 \textcolor{keyword}{struct }msgb *bssgp2\_enc\_bvc\_unblock\_ack(uint16\_t bvci);}
\DoxyCodeLine{54 }
\DoxyCodeLine{55 \textcolor{keyword}{struct }msgb *bssgp2\_enc\_bvc\_reset(uint16\_t bvci, \textcolor{keyword}{enum} gprs\_bssgp\_cause cause,}
\DoxyCodeLine{56                                   \textcolor{keyword}{const} \textcolor{keyword}{struct} gprs\_ra\_id *ra\_id, uint16\_t cell\_id,}
\DoxyCodeLine{57                                   \textcolor{keyword}{const} uint8\_t *feat\_bm, \textcolor{keyword}{const} uint8\_t *ext\_feat\_bm);}
\DoxyCodeLine{58 }
\DoxyCodeLine{59 \textcolor{keyword}{struct }msgb *bssgp2\_enc\_bvc\_reset\_ack(uint16\_t bvci, \textcolor{keyword}{const} \textcolor{keyword}{struct} gprs\_ra\_id *ra\_id, uint16\_t cell\_id,}
\DoxyCodeLine{60                                       \textcolor{keyword}{const} uint8\_t *feat\_bm, \textcolor{keyword}{const} uint8\_t *ext\_feat\_bm);}
\DoxyCodeLine{61 }
\DoxyCodeLine{62 \textcolor{keyword}{struct }msgb *bssgp2\_enc\_flush\_ll(uint32\_t tlli, uint16\_t old\_bvci,}
\DoxyCodeLine{63                                  \textcolor{keyword}{const} uint16\_t *new\_bvci, \textcolor{keyword}{const} uint16\_t *nsei);}
\DoxyCodeLine{64 \textcolor{keyword}{struct }msgb *bssgp2\_enc\_status(uint8\_t cause, \textcolor{keyword}{const} uint16\_t *bvci, \textcolor{keyword}{const} \textcolor{keyword}{struct} msgb *orig\_msg, uint16\_t max\_pdu\_len);}
\DoxyCodeLine{65 }
\DoxyCodeLine{66 }
\DoxyCodeLine{67 \textcolor{keywordtype}{int} bssgp2\_dec\_fc\_bvc(\textcolor{keyword}{struct} bssgp2\_flow\_ctrl *fc, \textcolor{keyword}{const} \textcolor{keyword}{struct} tlv\_parsed *tp);}
\DoxyCodeLine{68 \textcolor{keyword}{struct }msgb *bssgp2\_enc\_fc\_bvc(\textcolor{keyword}{const} \textcolor{keyword}{struct} bssgp2\_flow\_ctrl *fc, \textcolor{keyword}{enum} bssgp\_fc\_granularity *gran);}
\DoxyCodeLine{69 \textcolor{keyword}{struct }msgb *bssgp2\_enc\_fc\_bvc\_ack(uint8\_t tag);}
\DoxyCodeLine{70 \textcolor{keywordtype}{int} bssgp2\_dec\_fc\_ms(\textcolor{keyword}{struct} bssgp2\_flow\_ctrl *fc, \textcolor{keyword}{struct} tlv\_parsed *tp);}
\DoxyCodeLine{71 \textcolor{keyword}{struct }msgb *bssgp2\_enc\_fc\_ms(\textcolor{keyword}{const} \textcolor{keyword}{struct} bssgp2\_flow\_ctrl *fc, \textcolor{keyword}{enum} bssgp\_fc\_granularity *gran);}
\DoxyCodeLine{72 \textcolor{keyword}{struct }msgb *bssgp2\_enc\_fc\_ms\_ack(uint32\_t tlli, uint8\_t tag);}

\end{DoxyCode}
