\doxysection{gsm\+\_\+08\+\_\+18.\+h}
\label{gsm__08__18_8h_source}\index{include/osmocom/gprs/protocol/gsm\_08\_18.h@{include/osmocom/gprs/protocol/gsm\_08\_18.h}}
\textbf{ Go to the documentation of this file.}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 }
\DoxyCodeLine{2 \textcolor{comment}{/* Updated to reflect TS 48.018 version 15.0.0 Release 15 */}}
\DoxyCodeLine{3 }
\DoxyCodeLine{4 \textcolor{preprocessor}{\#pragma once}}
\DoxyCodeLine{5 }
\DoxyCodeLine{6 \textcolor{preprocessor}{\#include <stdint.h>}}
\DoxyCodeLine{7 \textcolor{preprocessor}{\#include <osmocom/core/endian.h>}}
\DoxyCodeLine{8 }
\DoxyCodeLine{10 \textcolor{preprocessor}{\#define BVCI\_SIGNALLING 0x0000}}
\DoxyCodeLine{11 \textcolor{preprocessor}{\#define BVCI\_PTM        0x0001}}
\DoxyCodeLine{12 }
\DoxyCodeLine{13 \textcolor{comment}{/* typo backwards compatiblity */}}
\DoxyCodeLine{14 \textcolor{preprocessor}{\#define BSSGP\_PDUT\_RA\_CAPA\_UDPATE BSSGP\_PDUT\_RA\_CAPA\_UPDATE}}
\DoxyCodeLine{15 }
\DoxyCodeLine{17 \textcolor{keyword}{enum} bssgp\_pdu\_type \{}
\DoxyCodeLine{18         \textcolor{comment}{/* PDUs between RL and BSSGP SAPs */}}
\DoxyCodeLine{19         BSSGP\_PDUT\_DL\_UNITDATA            = 0x00,}
\DoxyCodeLine{20         BSSGP\_PDUT\_UL\_UNITDATA            = 0x01,}
\DoxyCodeLine{21         BSSGP\_PDUT\_RA\_CAPABILITY        = 0x02,}
\DoxyCodeLine{22         \textcolor{comment}{/* PDUs between MBMS SAPs */}}
\DoxyCodeLine{23         BSSGP\_PDUT\_PTM\_UNITDATA          = 0x03, \textcolor{comment}{/* reserved in later specs */}}
\DoxyCodeLine{24         BSSGP\_PDUT\_DL\_MMBS\_UNITDATA  = 0x04,}
\DoxyCodeLine{25         BSSGP\_PDUT\_UL\_MMBS\_UNITDATA  = 0x05,}
\DoxyCodeLine{26         \textcolor{comment}{/* PDUs between GMM SAPs */}}
\DoxyCodeLine{27         BSSGP\_PDUT\_PAGING\_PS                = 0x06,}
\DoxyCodeLine{28         BSSGP\_PDUT\_PAGING\_CS                = 0x07,}
\DoxyCodeLine{29         BSSGP\_PDUT\_RA\_CAPA\_UPDATE      = 0x08,}
\DoxyCodeLine{30         BSSGP\_PDUT\_RA\_CAPA\_UPDATE\_ACK      = 0x09,}
\DoxyCodeLine{31         BSSGP\_PDUT\_RADIO\_STATUS          = 0x0a,}
\DoxyCodeLine{32         BSSGP\_PDUT\_SUSPEND            = 0x0b,}
\DoxyCodeLine{33         BSSGP\_PDUT\_SUSPEND\_ACK            = 0x0c,}
\DoxyCodeLine{34         BSSGP\_PDUT\_SUSPEND\_NACK          = 0x0d,}
\DoxyCodeLine{35         BSSGP\_PDUT\_RESUME              = 0x0e,}
\DoxyCodeLine{36         BSSGP\_PDUT\_RESUME\_ACK              = 0x0f,}
\DoxyCodeLine{37         BSSGP\_PDUT\_RESUME\_NACK            = 0x10,}
\DoxyCodeLine{38         BSSGP\_PDUT\_PAGING\_PS\_REJECT  = 0x11,}
\DoxyCodeLine{39         BSSGP\_PDUT\_DUMMY\_PAGING\_PS    = 0x12,}
\DoxyCodeLine{40         BSSGP\_PDUT\_DUMMY\_PAGING\_PS\_RESP  = 0x13,}
\DoxyCodeLine{41         BSSGP\_PDUT\_MS\_REGISTR\_ENQ      = 0x14,}
\DoxyCodeLine{42         BSSGP\_PDUT\_MS\_REGISTR\_ENQ\_RESP    = 0x15,}
\DoxyCodeLine{43         \textcolor{comment}{/* PDus between NM SAPs */}}
\DoxyCodeLine{44         BSSGP\_PDUT\_BVC\_BLOCK                = 0x20,}
\DoxyCodeLine{45         BSSGP\_PDUT\_BVC\_BLOCK\_ACK        = 0x21,}
\DoxyCodeLine{46         BSSGP\_PDUT\_BVC\_RESET                = 0x22,}
\DoxyCodeLine{47         BSSGP\_PDUT\_BVC\_RESET\_ACK        = 0x23,}
\DoxyCodeLine{48         BSSGP\_PDUT\_BVC\_UNBLOCK            = 0x24,}
\DoxyCodeLine{49         BSSGP\_PDUT\_BVC\_UNBLOCK\_ACK    = 0x25,}
\DoxyCodeLine{50         BSSGP\_PDUT\_FLOW\_CONTROL\_BVC  = 0x26,}
\DoxyCodeLine{51         BSSGP\_PDUT\_FLOW\_CONTROL\_BVC\_ACK  = 0x27,}
\DoxyCodeLine{52         BSSGP\_PDUT\_FLOW\_CONTROL\_MS    = 0x28,}
\DoxyCodeLine{53         BSSGP\_PDUT\_FLOW\_CONTROL\_MS\_ACK    = 0x29,}
\DoxyCodeLine{54         BSSGP\_PDUT\_FLUSH\_LL          = 0x2a,}
\DoxyCodeLine{55         BSSGP\_PDUT\_FLUSH\_LL\_ACK          = 0x2b,}
\DoxyCodeLine{56         BSSGP\_PDUT\_LLC\_DISCARD            = 0x2c,}
\DoxyCodeLine{57         BSSGP\_PDUT\_FLOW\_CONTROL\_PFC  = 0x2d,}
\DoxyCodeLine{58         BSSGP\_PDUT\_FLOW\_CONTROL\_PFC\_ACK  = 0x2e,}
\DoxyCodeLine{59         BSSGP\_PDUT\_SGSN\_INVOKE\_TRACE        = 0x40,}
\DoxyCodeLine{60         BSSGP\_PDUT\_STATUS              = 0x41,}
\DoxyCodeLine{61         BSSGP\_PDUT\_OVERLOAD          = 0x42,}
\DoxyCodeLine{62         \textcolor{comment}{/* PDUs between PFM SAP's */}}
\DoxyCodeLine{63         BSSGP\_PDUT\_DOWNLOAD\_BSS\_PFC  = 0x50,}
\DoxyCodeLine{64         BSSGP\_PDUT\_CREATE\_BSS\_PFC      = 0x51,}
\DoxyCodeLine{65         BSSGP\_PDUT\_CREATE\_BSS\_PFC\_ACK      = 0x52,}
\DoxyCodeLine{66         BSSGP\_PDUT\_CREATE\_BSS\_PFC\_NACK    = 0x53,}
\DoxyCodeLine{67         BSSGP\_PDUT\_MODIFY\_BSS\_PFC      = 0x54,}
\DoxyCodeLine{68         BSSGP\_PDUT\_MODIFY\_BSS\_PFC\_ACK      = 0x55,}
\DoxyCodeLine{69         BSSGP\_PDUT\_DELETE\_BSS\_PFC      = 0x56,}
\DoxyCodeLine{70         BSSGP\_PDUT\_DELETE\_BSS\_PFC\_ACK      = 0x57,}
\DoxyCodeLine{71         BSSGP\_PDUT\_DELETE\_BSS\_PFC\_REQ      = 0x58,}
\DoxyCodeLine{72         BSSGP\_PDUT\_PS\_HO\_REQUIRED      = 0x59,}
\DoxyCodeLine{73         BSSGP\_PDUT\_PS\_HO\_REQUIRED\_ACK      = 0x5a,}
\DoxyCodeLine{74         BSSGP\_PDUT\_PS\_HO\_REQUIRED\_NACK    = 0x5b,}
\DoxyCodeLine{75         BSSGP\_PDUT\_PS\_HO\_REQUEST        = 0x5c,}
\DoxyCodeLine{76         BSSGP\_PDUT\_PS\_HO\_REQUEST\_ACK        = 0x5d,}
\DoxyCodeLine{77         BSSGP\_PDUT\_PS\_HO\_REQUEST\_NACK      = 0x5e,}
\DoxyCodeLine{78         BSSGP\_PDUT\_PS\_HO\_COMPLETE      = 0x91,}
\DoxyCodeLine{79         BSSGP\_PDUT\_PS\_HO\_CANCEL          = 0x92,}
\DoxyCodeLine{80         BSSGP\_PDUT\_PS\_HO\_COMPLETE\_ACK      = 0x93,}
\DoxyCodeLine{81         \textcolor{comment}{/* PDUs between LCS SAPs */}}
\DoxyCodeLine{82         BSSGP\_PDUT\_PERFORM\_LOC\_REQ    = 0x60,}
\DoxyCodeLine{83         BSSGP\_PDUT\_PERFORM\_LOC\_RESP  = 0x61,}
\DoxyCodeLine{84         BSSGP\_PDUT\_PERFORM\_LOC\_ABORT        = 0x62,}
\DoxyCodeLine{85         BSSGP\_PDUT\_POSITION\_COMMAND  = 0x63,}
\DoxyCodeLine{86         BSSGP\_PDUT\_POSITION\_RESPONSE        = 0x64,}
\DoxyCodeLine{87         \textcolor{comment}{/* PDUs between RIM SAPs */}}
\DoxyCodeLine{88         BSSGP\_PDUT\_RAN\_INFO          = 0x70,}
\DoxyCodeLine{89         BSSGP\_PDUT\_RAN\_INFO\_REQ          = 0x71,}
\DoxyCodeLine{90         BSSGP\_PDUT\_RAN\_INFO\_ACK          = 0x72,}
\DoxyCodeLine{91         BSSGP\_PDUT\_RAN\_INFO\_ERROR      = 0x73,}
\DoxyCodeLine{92         BSSGP\_PDUT\_RAN\_INFO\_APP\_ERROR      = 0x74,}
\DoxyCodeLine{93         \textcolor{comment}{/* PDUs between MBMS SAPs */}}
\DoxyCodeLine{94         BSSGP\_PDUT\_MBMS\_START\_REQ      = 0x80,}
\DoxyCodeLine{95         BSSGP\_PDUT\_MBMS\_START\_RESP    = 0x81,}
\DoxyCodeLine{96         BSSGP\_PDUT\_MBMS\_STOP\_REQ        = 0x82,}
\DoxyCodeLine{97         BSSGP\_PDUT\_MBMS\_STOP\_RESP      = 0x83,}
\DoxyCodeLine{98         BSSGP\_PDUT\_MBMS\_UPDATE\_REQ    = 0x84,}
\DoxyCodeLine{99         BSSGP\_PDUT\_MBMS\_UPDATE\_RESP  = 0x85,}
\DoxyCodeLine{100 \};}
\DoxyCodeLine{101 }
\DoxyCodeLine{103 \textcolor{keyword}{struct }bssgp\_ud\_hdr \{}
\DoxyCodeLine{104         uint8\_t pdu\_type;       }
\DoxyCodeLine{105         uint32\_t tlli;              }
\DoxyCodeLine{106         uint8\_t qos\_profile[3];      }
\DoxyCodeLine{107         uint8\_t data[0];    \textcolor{comment}{/* optional/conditional IEs as TLVs */}}
\DoxyCodeLine{108 \} \_\_attribute\_\_((packed));}
\DoxyCodeLine{109 }
\DoxyCodeLine{111 \textcolor{keyword}{struct }bssgp\_normal\_hdr \{}
\DoxyCodeLine{112         uint8\_t pdu\_type;       }
\DoxyCodeLine{113         uint8\_t data[0];    }
\DoxyCodeLine{114 \};}
\DoxyCodeLine{115 }
\DoxyCodeLine{117 \textcolor{keyword}{enum} bssgp\_iei\_type \{}
\DoxyCodeLine{118         BSSGP\_IE\_ALIGNMENT            = 0x00,}
\DoxyCodeLine{119         BSSGP\_IE\_BMAX\_DEFAULT\_MS        = 0x01,}
\DoxyCodeLine{120         BSSGP\_IE\_BSS\_AREA\_ID                = 0x02,}
\DoxyCodeLine{121         BSSGP\_IE\_BUCKET\_LEAK\_RATE      = 0x03,}
\DoxyCodeLine{122         BSSGP\_IE\_BVCI                      = 0x04,}
\DoxyCodeLine{123         BSSGP\_IE\_BVC\_BUCKET\_SIZE        = 0x05,}
\DoxyCodeLine{124         BSSGP\_IE\_BVC\_MEASUREMENT        = 0x06,}
\DoxyCodeLine{125         BSSGP\_IE\_CAUSE                    = 0x07,}
\DoxyCodeLine{126         BSSGP\_IE\_CELL\_ID                = 0x08,}
\DoxyCodeLine{127         BSSGP\_IE\_CHAN\_NEEDED                = 0x09,}
\DoxyCodeLine{128         BSSGP\_IE\_DRX\_PARAMS          = 0x0a,}
\DoxyCodeLine{129         BSSGP\_IE\_EMLPP\_PRIO          = 0x0b,}
\DoxyCodeLine{130         BSSGP\_IE\_FLUSH\_ACTION              = 0x0c,}
\DoxyCodeLine{131         BSSGP\_IE\_IMSI                      = 0x0d,}
\DoxyCodeLine{132         BSSGP\_IE\_LLC\_PDU                = 0x0e,}
\DoxyCodeLine{133         BSSGP\_IE\_LLC\_FRAMES\_DISCARDED      = 0x0f,}
\DoxyCodeLine{134         BSSGP\_IE\_LOCATION\_AREA            = 0x10,}
\DoxyCodeLine{135         BSSGP\_IE\_MOBILE\_ID            = 0x11,}
\DoxyCodeLine{136         BSSGP\_IE\_MS\_BUCKET\_SIZE          = 0x12,}
\DoxyCodeLine{137         BSSGP\_IE\_MS\_RADIO\_ACCESS\_CAP        = 0x13,}
\DoxyCodeLine{138         BSSGP\_IE\_OMC\_ID                  = 0x14,}
\DoxyCodeLine{139         BSSGP\_IE\_PDU\_IN\_ERROR              = 0x15,}
\DoxyCodeLine{140         BSSGP\_IE\_PDU\_LIFETIME              = 0x16,}
\DoxyCodeLine{141         BSSGP\_IE\_PRIORITY              = 0x17,}
\DoxyCodeLine{142         BSSGP\_IE\_QOS\_PROFILE                = 0x18,}
\DoxyCodeLine{143         BSSGP\_IE\_RADIO\_CAUSE                = 0x19,}
\DoxyCodeLine{144         BSSGP\_IE\_RA\_CAP\_UPD\_CAUSE      = 0x1a,}
\DoxyCodeLine{145         BSSGP\_IE\_ROUTEING\_AREA            = 0x1b,}
\DoxyCodeLine{146         BSSGP\_IE\_R\_DEFAULT\_MS              = 0x1c,}
\DoxyCodeLine{147         BSSGP\_IE\_SUSPEND\_REF\_NR          = 0x1d,}
\DoxyCodeLine{148         BSSGP\_IE\_TAG                        = 0x1e,}
\DoxyCodeLine{149         BSSGP\_IE\_TLLI                      = 0x1f,}
\DoxyCodeLine{150         BSSGP\_IE\_TMSI                      = 0x20,}
\DoxyCodeLine{151         BSSGP\_IE\_TRACE\_REFERENC          = 0x21,}
\DoxyCodeLine{152         BSSGP\_IE\_TRACE\_TYPE          = 0x22,}
\DoxyCodeLine{153         BSSGP\_IE\_TRANSACTION\_ID          = 0x23,}
\DoxyCodeLine{154         BSSGP\_IE\_TRIGGER\_ID          = 0x24,}
\DoxyCodeLine{155         BSSGP\_IE\_NUM\_OCT\_AFF                = 0x25,}
\DoxyCodeLine{156         BSSGP\_IE\_LSA\_ID\_LIST                = 0x26,}
\DoxyCodeLine{157         BSSGP\_IE\_LSA\_INFORMATION        = 0x27,}
\DoxyCodeLine{158         BSSGP\_IE\_PACKET\_FLOW\_ID          = 0x28,}
\DoxyCodeLine{159         BSSGP\_IE\_PACKET\_FLOW\_TIMER    = 0x29,}
\DoxyCodeLine{160         BSSGP\_IE\_AGG\_BSS\_QOS\_PROFILE        = 0x3a,}
\DoxyCodeLine{161         BSSGP\_IE\_FEATURE\_BITMAP          = 0x3b,}
\DoxyCodeLine{162         BSSGP\_IE\_BUCKET\_FULL\_RATIO    = 0x3c,}
\DoxyCodeLine{163         BSSGP\_IE\_SERVICE\_UTRAN\_CCO    = 0x3d,}
\DoxyCodeLine{164         BSSGP\_IE\_NSEI                      = 0x3e,}
\DoxyCodeLine{165         BSSGP\_IE\_RRLP\_APDU            = 0x3f,}
\DoxyCodeLine{166         BSSGP\_IE\_LCS\_QOS                = 0x40,}
\DoxyCodeLine{167         BSSGP\_IE\_LCS\_CLIENT\_TYPE        = 0x41,}
\DoxyCodeLine{168         BSSGP\_IE\_REQUESTED\_GPS\_AST\_DATA  = 0x42,}
\DoxyCodeLine{169         BSSGP\_IE\_LOCATION\_TYPE            = 0x43,}
\DoxyCodeLine{170         BSSGP\_IE\_LOCATION\_ESTIMATE    = 0x44,}
\DoxyCodeLine{171         BSSGP\_IE\_POSITIONING\_DATA      = 0x45,}
\DoxyCodeLine{172         BSSGP\_IE\_DECIPHERING\_KEYS      = 0x46,}
\DoxyCodeLine{173         BSSGP\_IE\_LCS\_PRIORITY              = 0x47,}
\DoxyCodeLine{174         BSSGP\_IE\_LCS\_CAUSE            = 0x48,}
\DoxyCodeLine{175         BSSGP\_IE\_LCS\_CAPABILITY          = 0x49,}
\DoxyCodeLine{176         BSSGP\_IE\_RRLP\_FLAGS          = 0x4a,}
\DoxyCodeLine{177         BSSGP\_IE\_RIM\_APP\_IDENTITY      = 0x4b,}
\DoxyCodeLine{178         BSSGP\_IE\_RIM\_SEQ\_NR          = 0x4c,}
\DoxyCodeLine{179         BSSGP\_IE\_RIM\_REQ\_APP\_CONTAINER    = 0x4d,}
\DoxyCodeLine{180         BSSGP\_IE\_RAN\_INFO\_APP\_CONTAINER  = 0x4e,}
\DoxyCodeLine{181         BSSGP\_IE\_RIM\_PDU\_INDICATIONS        = 0x4f,}
\DoxyCodeLine{182         BSSGP\_IE\_PFC\_FLOW\_CTRL\_PARAMS      = 0x52,}
\DoxyCodeLine{183         BSSGP\_IE\_GLOBAL\_CN\_ID              = 0x53,}
\DoxyCodeLine{184         BSSGP\_IE\_RIM\_ROUTING\_INFO      = 0x54,}
\DoxyCodeLine{185         BSSGP\_IE\_RIM\_PROTOCOL\_VERSION      = 0x55,}
\DoxyCodeLine{186         BSSGP\_IE\_APP\_ERROR\_CONTAINER        = 0x56,}
\DoxyCodeLine{187         BSSGP\_IE\_RI\_REQ\_RIM\_CONTAINER      = 0x57,}
\DoxyCodeLine{188         BSSGP\_IE\_RI\_RIM\_CONTAINER      = 0x58,}
\DoxyCodeLine{189         BSSGP\_IE\_RI\_APP\_ERROR\_RIM\_CONT    = 0x59,}
\DoxyCodeLine{190         BSSGP\_IE\_RI\_ACK\_RIM\_CONTAINER      = 0x5a,}
\DoxyCodeLine{191         BSSGP\_IE\_RI\_ERROR\_RIM\_COINTAINER= 0x5b,}
\DoxyCodeLine{192         BSSGP\_IE\_TMGI                      = 0x5c,}
\DoxyCodeLine{193         BSSGP\_IE\_MBMS\_SESSION\_ID        = 0x5d,}
\DoxyCodeLine{194         BSSGP\_IE\_MBMS\_SESSION\_DURATION    = 0x5e,}
\DoxyCodeLine{195         BSSGP\_IE\_MBMS\_SA\_ID\_LIST        = 0x5f,}
\DoxyCodeLine{196         BSSGP\_IE\_MBMS\_RESPONSE            = 0x60,}
\DoxyCodeLine{197         BSSGP\_IE\_MBMS\_RA\_LIST              = 0x61,}
\DoxyCodeLine{198         BSSGP\_IE\_MBMS\_SESSION\_INFO    = 0x62,}
\DoxyCodeLine{199         BSSGP\_IE\_MBMS\_STOP\_CAUSE        = 0x63,}
\DoxyCodeLine{200         BSSGP\_IE\_SBSS\_TO\_TBSS\_TR\_CONT      = 0x64,}
\DoxyCodeLine{201         BSSGP\_IE\_TBSS\_TO\_SBSS\_TR\_CONT      = 0x65,}
\DoxyCodeLine{202         BSSGP\_IE\_NAS\_CONT\_FOR\_PS\_HO  = 0x66,}
\DoxyCodeLine{203         BSSGP\_IE\_PFC\_TO\_BE\_SETUP\_LIST      = 0x67,}
\DoxyCodeLine{204         BSSGP\_IE\_LIST\_OF\_SETUP\_PFC    = 0x68,}
\DoxyCodeLine{205         BSSGP\_IE\_EXT\_FEATURE\_BITMAP  = 0x69,}
\DoxyCodeLine{206         BSSGP\_IE\_SRC\_TO\_TGT\_TR\_CONT  = 0x6a,}
\DoxyCodeLine{207         BSSGP\_IE\_TGT\_TO\_SRC\_TR\_CONT  = 0x6b,}
\DoxyCodeLine{208         BSSGP\_IE\_NC\_ID                    = 0x6c,}
\DoxyCodeLine{209         BSSGP\_IE\_PAGE\_MODE            = 0x6d,}
\DoxyCodeLine{210         BSSGP\_IE\_CONTAINER\_ID              = 0x6e,}
\DoxyCodeLine{211         BSSGP\_IE\_GLOBAL\_TFI          = 0x6f,}
\DoxyCodeLine{212         BSSGP\_IE\_IMEI                      = 0x70,}
\DoxyCodeLine{213         BSSGP\_IE\_TIME\_TO\_MBMS\_DATA\_XFR    = 0x71,}
\DoxyCodeLine{214         BSSGP\_IE\_MBMS\_SESSION\_REP\_NR        = 0x72,}
\DoxyCodeLine{215         BSSGP\_IE\_INTER\_RAT\_HO\_INFO    = 0x73,}
\DoxyCodeLine{216         BSSGP\_IE\_PS\_HO\_COMMAND            = 0x74,}
\DoxyCodeLine{217         BSSGP\_IE\_PS\_HO\_INDICATIONS    = 0x75,}
\DoxyCodeLine{218         BSSGP\_IE\_SI\_PSI\_CONTAINER      = 0x76,}
\DoxyCodeLine{219         BSSGP\_IE\_ACTIVE\_PFC\_LIST        = 0x77,}
\DoxyCodeLine{220         BSSGP\_IE\_VELOCITY\_DATA            = 0x78,}
\DoxyCodeLine{221         BSSGP\_IE\_DTM\_HO\_COMMAND          = 0x79,}
\DoxyCodeLine{222         BSSGP\_IE\_CS\_INDICATION            = 0x7a,}
\DoxyCodeLine{223         BSSGP\_IE\_RQD\_GANNS\_AST\_DATA  = 0x7b,}
\DoxyCodeLine{224         BSSGP\_IE\_GANSS\_LOCATION\_TYPE        = 0x7c,}
\DoxyCodeLine{225         BSSGP\_IE\_GANSS\_POSITIONING\_DATA  = 0x7d,}
\DoxyCodeLine{226         BSSGP\_IE\_FLOW\_CTRL\_GRANULARITY    = 0x7e,}
\DoxyCodeLine{227         BSSGP\_IE\_ENB\_ID                  = 0x7f,}
\DoxyCodeLine{228         BSSGP\_IE\_EUTRAN\_IRAT\_HO\_INFO        = 0x80,}
\DoxyCodeLine{229         BSSGP\_IE\_SUB\_PID4RAT\_FREQ\_PRIO    = 0x81,}
\DoxyCodeLine{230         BSSGP\_IE\_REQ4IRAT\_HO\_INFO      = 0x82,}
\DoxyCodeLine{231         BSSGP\_IE\_RELIABLE\_IRAT\_HO\_INFO    = 0x83,}
\DoxyCodeLine{232         BSSGP\_IE\_SON\_TRANSFER\_APP\_ID        = 0x84,}
\DoxyCodeLine{233         BSSGP\_IE\_CSG\_ID                  = 0x85,}
\DoxyCodeLine{234         BSSGP\_IE\_TAC                        = 0x86,}
\DoxyCodeLine{235         BSSGP\_IE\_REDIRECT\_ATTEMPT\_FLAG    = 0x87,}
\DoxyCodeLine{236         BSSGP\_IE\_REDIRECTION\_INDICATION  = 0x88,}
\DoxyCodeLine{237         BSSGP\_IE\_REDIRECTION\_COMPLETED    = 0x89,}
\DoxyCodeLine{238         BSSGP\_IE\_UNCONF\_SEND\_STATE\_VAR    = 0x8a,}
\DoxyCodeLine{239         BSSGP\_IE\_IRAT\_MEASUREMENT\_CONF    = 0x8b,}
\DoxyCodeLine{240         BSSGP\_IE\_SCI                        = 0x8c,}
\DoxyCodeLine{241         BSSGP\_IE\_GGSN\_PGW\_LOCATION    = 0x8d,}
\DoxyCodeLine{242         BSSGP\_IE\_SELECTED\_PLMN\_ID      = 0x8e,}
\DoxyCodeLine{243         BSSGP\_IE\_PRIO\_CLASS\_IND          = 0x8f,}
\DoxyCodeLine{244         BSSGP\_IE\_SOURCE\_CELL\_ID          = 0x90,}
\DoxyCodeLine{245         BSSGP\_IE\_IRAT\_MEAS\_CFG\_E\_EARFCN  = 0x91,}
\DoxyCodeLine{246         BSSGP\_IE\_EDRX\_PARAMETERS        = 0x92,}
\DoxyCodeLine{247         BSSGP\_IE\_T\_UNTIL\_NEXT\_PAGING        = 0x93,}
\DoxyCodeLine{248         BSSGP\_IE\_COVERAGE\_CLASS          = 0x98,}
\DoxyCodeLine{249         BSSGP\_IE\_PAGING\_ATTEMPT\_INFO        = 0x99,}
\DoxyCodeLine{250         BSSGP\_IE\_EXCEPTION\_REPORT\_FLAG    = 0x9a,}
\DoxyCodeLine{251         BSSGP\_IE\_OLD\_RA\_ID            = 0x9b,}
\DoxyCodeLine{252         BSSGP\_IE\_ATTACH\_IND          = 0x9c,}
\DoxyCodeLine{253         BSSGP\_IE\_PLMN\_ID                = 0x9d,}
\DoxyCodeLine{254         BSSGP\_IE\_MME\_QUERY            = 0x9e,}
\DoxyCodeLine{255         BSSGP\_IE\_SGSN\_GROUP\_ID            = 0x9f,}
\DoxyCodeLine{256         BSSGP\_IE\_ADDITIONAL\_PTMSI      = 0xa0,}
\DoxyCodeLine{257         BSSGP\_IE\_UE\_USAGE\_TYPE            = 0xa1,}
\DoxyCodeLine{258         BSSGP\_IE\_MLAT\_TIMER          = 0xa2,}
\DoxyCodeLine{259         BSSGP\_IE\_MLAT\_TA                = 0xa3,}
\DoxyCodeLine{260         BSSGP\_IE\_MS\_SYNC\_ACCURACY      = 0xa4,}
\DoxyCodeLine{261         BSSGP\_IE\_BTS\_RX\_ACCURACY\_LVL        = 0xa5,}
\DoxyCodeLine{262         BSSGP\_IE\_TA\_REQ                  = 0xa6,}
\DoxyCodeLine{263 \};}
\DoxyCodeLine{264 }
\DoxyCodeLine{266 \textcolor{keyword}{enum} gprs\_bssgp\_cause \{}
\DoxyCodeLine{267         BSSGP\_CAUSE\_PROC\_OVERLOAD              = 0x00,}
\DoxyCodeLine{268         BSSGP\_CAUSE\_EQUIP\_FAIL                    = 0x01,}
\DoxyCodeLine{269         BSSGP\_CAUSE\_TRASIT\_NET\_FAIL          = 0x02,}
\DoxyCodeLine{270         BSSGP\_CAUSE\_CAPA\_GREATER\_0KPBS            = 0x03,}
\DoxyCodeLine{271         BSSGP\_CAUSE\_UNKNOWN\_MS                    = 0x04,}
\DoxyCodeLine{272         BSSGP\_CAUSE\_UNKNOWN\_BVCI                = 0x05,}
\DoxyCodeLine{273         BSSGP\_CAUSE\_CELL\_TRAF\_CONG            = 0x06,}
\DoxyCodeLine{274         BSSGP\_CAUSE\_SGSN\_CONG                      = 0x07,}
\DoxyCodeLine{275         BSSGP\_CAUSE\_OML\_INTERV                    = 0x08,}
\DoxyCodeLine{276         BSSGP\_CAUSE\_BVCI\_BLOCKED                = 0x09,}
\DoxyCodeLine{277         BSSGP\_CAUSE\_PFC\_CREATE\_FAIL          = 0x0a,}
\DoxyCodeLine{278         BSSGP\_CAUSE\_PFC\_PREEMPTED              = 0x0b,}
\DoxyCodeLine{279         BSSGP\_CAUSE\_ABQP\_NOT\_SUPP              = 0x0c,}
\DoxyCodeLine{280         BSSGP\_CAUSE\_SEM\_INCORR\_PDU            = 0x20,}
\DoxyCodeLine{281         BSSGP\_CAUSE\_INV\_MAND\_INF                = 0x21,}
\DoxyCodeLine{282         BSSGP\_CAUSE\_MISSING\_MAND\_IE          = 0x22,}
\DoxyCodeLine{283         BSSGP\_CAUSE\_MISSING\_COND\_IE          = 0x23,}
\DoxyCodeLine{284         BSSGP\_CAUSE\_UNEXP\_COND\_IE              = 0x24,}
\DoxyCodeLine{285         BSSGP\_CAUSE\_COND\_IE\_ERR                  = 0x25,}
\DoxyCodeLine{286         BSSGP\_CAUSE\_PDU\_INCOMP\_STATE                = 0x26,}
\DoxyCodeLine{287         BSSGP\_CAUSE\_PROTO\_ERR\_UNSPEC                = 0x27,}
\DoxyCodeLine{288         BSSGP\_CAUSE\_PDU\_INCOMP\_FEAT          = 0x28,}
\DoxyCodeLine{289         BSSGP\_CAUSE\_REQ\_INFO\_NOT\_AVAIL            = 0x29,}
\DoxyCodeLine{290         BSSGP\_CAUSE\_UNKN\_DST                        = 0x2a,}
\DoxyCodeLine{291         BSSGP\_CAUSE\_UNKN\_RIM\_AI                  = 0x2b,}
\DoxyCodeLine{292         BSSGP\_CAUSE\_INVAL\_CONT\_UI              = 0x2c,}
\DoxyCodeLine{293         BSSGP\_CAUSE\_PFC\_QUEUE                      = 0x2d,}
\DoxyCodeLine{294         BSSGP\_CAUSE\_PFC\_CREATED                  = 0x2e,}
\DoxyCodeLine{295         BSSGP\_CAUSE\_T12\_EXPIRY                    = 0x2f,}
\DoxyCodeLine{296         BSSGP\_CAUSE\_MS\_UNDER\_PS\_HO            = 0x30,}
\DoxyCodeLine{297         BSSGP\_CAUSE\_UL\_QUALITY                    = 0x31,}
\DoxyCodeLine{298         BSSGP\_CAUSE\_UL\_STRENGTH                  = 0x32,}
\DoxyCodeLine{299         BSSGP\_CAUSE\_DL\_QUALITY                    = 0x33,}
\DoxyCodeLine{300         BSSGP\_CAUSE\_DL\_STRENGTH                  = 0x34,}
\DoxyCodeLine{301         BSSGP\_CAUSE\_DISTANCE                        = 0x35,}
\DoxyCodeLine{302         BSSGP\_CAUSE\_BETTER\_CELL                  = 0x36,}
\DoxyCodeLine{303         BSSGP\_CAUSE\_TRAFFIC                  = 0x37,}
\DoxyCodeLine{304         BSSGP\_CAUSE\_MS\_RADIO\_LOSS              = 0x38,}
\DoxyCodeLine{305         BSSGP\_CAUSE\_MS\_BACK\_OLD\_CHAN                = 0x39,}
\DoxyCodeLine{306         BSSGP\_CAUSE\_T13\_EXPIRY                    = 0x3a,}
\DoxyCodeLine{307         BSSGP\_CAUSE\_T14\_EXPIRY                    = 0x3b,}
\DoxyCodeLine{308         BSSGP\_CAUSE\_NOT\_ALL\_PFC                  = 0x3c,}
\DoxyCodeLine{309         BSSGP\_CAUSE\_CS                            = 0x3d,}
\DoxyCodeLine{310         BSSGP\_CAUSE\_REQ\_ALG\_NOT\_SUPP                = 0x3e,}
\DoxyCodeLine{311         BSSGP\_CAUSE\_RELOC\_FAIL                    = 0x3f,}
\DoxyCodeLine{312         BSSGP\_CAUSE\_DIR\_RETRY                      = 0x40,}
\DoxyCodeLine{313         BSSGP\_CAUSE\_TIME\_CRIT\_RELOC          = 0x41,}
\DoxyCodeLine{314         BSSGP\_CAUSE\_PS\_HO\_TARG\_NA              = 0x42,}
\DoxyCodeLine{315         BSSGP\_CAUSE\_PS\_HO\_TARG\_NOT\_SUPP          = 0x43,}
\DoxyCodeLine{316         BSSGP\_CAUSE\_PUESBINE                        = 0x44,}
\DoxyCodeLine{317         BSSGP\_CAUSE\_DTM\_HO\_NO\_CS\_RES                = 0x45,}
\DoxyCodeLine{318         BSSGP\_CAUSE\_DTM\_HO\_PS\_ALLOC\_FAIL        = 0x46,}
\DoxyCodeLine{319         BSSGP\_CAUSE\_DTM\_HO\_T24\_EXPIRY              = 0x47,}
\DoxyCodeLine{320         BSSGP\_CAUSE\_DTM\_HO\_INVAL\_CS\_IND          = 0x48,}
\DoxyCodeLine{321         BSSGP\_CAUSE\_DTM\_HO\_T23\_EXPIRY              = 0x49,}
\DoxyCodeLine{322         BSSGP\_CAUSE\_DTM\_HO\_MSC\_ERR            = 0x4a,}
\DoxyCodeLine{323         BSSGP\_CAUSE\_INVAL\_CSG\_CELL            = 0x4b,}
\DoxyCodeLine{324 \};}
\DoxyCodeLine{325 }
\DoxyCodeLine{326 \textcolor{comment}{/* Feature Bitmap (Section 11.3.45) */}}
\DoxyCodeLine{327 \textcolor{preprocessor}{\#define BSSGP\_FEAT\_PFC          0x01    }\textcolor{comment}{/* Packet Flow Context */}\textcolor{preprocessor}{}}
\DoxyCodeLine{328 \textcolor{preprocessor}{\#define BSSGP\_FEAT\_CBL          0x02    }\textcolor{comment}{/* Current Bucket Level */}\textcolor{preprocessor}{}}
\DoxyCodeLine{329 \textcolor{preprocessor}{\#define BSSGP\_FEAT\_INR          0x04    }\textcolor{comment}{/* Inter-\/NSE re-\/routing */}\textcolor{preprocessor}{}}
\DoxyCodeLine{330 \textcolor{preprocessor}{\#define BSSGP\_FEAT\_LCS          0x08    }\textcolor{comment}{/* Location Services */}\textcolor{preprocessor}{}}
\DoxyCodeLine{331 \textcolor{preprocessor}{\#define BSSGP\_FEAT\_RIM          0x10    }\textcolor{comment}{/* RAN Inoformation Management */}\textcolor{preprocessor}{}}
\DoxyCodeLine{332 \textcolor{preprocessor}{\#define BSSGP\_FEAT\_PFC\_FC       0x20    }\textcolor{comment}{/* PFC Flow Control */}\textcolor{preprocessor}{}}
\DoxyCodeLine{333 \textcolor{preprocessor}{\#define BSSGP\_FEAT\_ERS          0x40    }\textcolor{comment}{/* Enhanced Radio Status */}\textcolor{preprocessor}{}}
\DoxyCodeLine{334 \textcolor{preprocessor}{\#define BSSGP\_FEAT\_MBMS         0x80    }\textcolor{comment}{/* Multimedia Broadcast */}\textcolor{preprocessor}{}}
\DoxyCodeLine{335 }
\DoxyCodeLine{336 \textcolor{comment}{/* Extended Feature Bitmap (Section 11.3.84) */}}
\DoxyCodeLine{337 \textcolor{preprocessor}{\#define BSSGP\_XFEAT\_PSHO        0x01    }\textcolor{comment}{/* PS Handover */}\textcolor{preprocessor}{}}
\DoxyCodeLine{338 \textcolor{preprocessor}{\#define BSSGP\_XFEAT\_GBIT        0x02    }\textcolor{comment}{/* Gigabit Interface */}\textcolor{preprocessor}{}}
\DoxyCodeLine{339 \textcolor{preprocessor}{\#define BSSGP\_XFEAT\_MOCN        0x04    }\textcolor{comment}{/* Multi-\/Operator CN */}\textcolor{preprocessor}{}}
\DoxyCodeLine{340 \textcolor{preprocessor}{\#define BSSGP\_XFEAT\_CSPS        0x08    }\textcolor{comment}{/* CS/PS coordination enhancements */}\textcolor{preprocessor}{}}
\DoxyCodeLine{341 \textcolor{preprocessor}{\#define BSSGP\_XFEAT\_ECIoT       0x10    }\textcolor{comment}{/* EC-\/GSM-\/IoT */}\textcolor{preprocessor}{}}
\DoxyCodeLine{342 \textcolor{preprocessor}{\#define BSSGP\_XFEAT\_DCN         0x20    }\textcolor{comment}{/* Dedicated CN */}\textcolor{preprocessor}{}}
\DoxyCodeLine{343 \textcolor{preprocessor}{\#define BSSGP\_XFEAT\_eDRX        0x40    }\textcolor{comment}{/* eDRX */}\textcolor{preprocessor}{}}
\DoxyCodeLine{344 \textcolor{preprocessor}{\#define BSSGP\_XFEAT\_MSAD        0x80    }\textcolor{comment}{/* MS-\/assisted Dedicated CN selection */}\textcolor{preprocessor}{}}
\DoxyCodeLine{345 }
\DoxyCodeLine{346 \textcolor{comment}{/* Flow Control Granularity (Section 11.3.102) */}}
\DoxyCodeLine{347 \textcolor{keyword}{enum} bssgp\_fc\_granularity \{}
\DoxyCodeLine{348         BSSGP\_FC\_GRAN\_100      = 0,}
\DoxyCodeLine{349         BSSGP\_FC\_GRAN\_1000    = 1,}
\DoxyCodeLine{350         BSSGP\_FC\_GRAN\_10000  = 2,}
\DoxyCodeLine{351         BSSGP\_FC\_GRAN\_100000        = 3,}
\DoxyCodeLine{352 \};}
\DoxyCodeLine{353 }
\DoxyCodeLine{354 \textcolor{comment}{/* RAN-\/INFORMATION-\/REQUEST PDU Type Extension}}
\DoxyCodeLine{355 \textcolor{comment}{ * 3GPP TS 48.018, table 11.3.65.1 */}}
\DoxyCodeLine{356 \textcolor{keyword}{enum} bssgp\_rim\_pdu\_type \{}
\DoxyCodeLine{357         RIM\_PDU\_TYPE\_STOP      = 0,}
\DoxyCodeLine{358         RIM\_PDU\_TYPE\_SING\_REP      = 1,}
\DoxyCodeLine{359         RIM\_PDU\_TYPE\_MULT\_REP      = 2,}
\DoxyCodeLine{360 \};}
\DoxyCodeLine{361 }
\DoxyCodeLine{362 \textcolor{comment}{/* RIM PDU Indications}}
\DoxyCodeLine{363 \textcolor{comment}{ * 3GPP TS 48.018, section 11.3.65.0 */}}
\DoxyCodeLine{364 \textcolor{keyword}{struct }bssgp\_rim\_pdu\_ind \{}
\DoxyCodeLine{365 \textcolor{preprocessor}{\#if OSMO\_IS\_LITTLE\_ENDIAN}}
\DoxyCodeLine{366                 uint8\_t ack\_requested:1,}
\DoxyCodeLine{367                         pdu\_type\_ext:3,}
\DoxyCodeLine{368                         reserved:4;}
\DoxyCodeLine{369 \textcolor{preprocessor}{\#elif OSMO\_IS\_BIG\_ENDIAN}}
\DoxyCodeLine{370 \textcolor{comment}{/* auto-\/generated from the little endian part above (libosmocore/contrib/struct\_endianness.py) */}}
\DoxyCodeLine{371                 uint8\_t reserved:4, pdu\_type\_ext:3, ack\_requested:1;}
\DoxyCodeLine{372 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{373 \} \_\_attribute\_\_ ((packed));}

\end{DoxyCode}
