\doxysection{gsm\+\_\+44\+\_\+318.\+h}
\label{gsm__44__318_8h_source}\index{include/osmocom/gsm/protocol/gsm\_44\_318.h@{include/osmocom/gsm/protocol/gsm\_44\_318.h}}
\textbf{ Go to the documentation of this file.}
\begin{DoxyCode}{0}
\DoxyCodeLine{1 }
\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{9 \textcolor{comment}{/* Table 11.1.1.2.1: Protocol Discriminator */}}
\DoxyCodeLine{10 \textcolor{keyword}{enum} gan\_pdisc \{}
\DoxyCodeLine{11         GA\_PDISC\_RC                  = 0,}
\DoxyCodeLine{12         GA\_PDISC\_CSR                        = 1,}
\DoxyCodeLine{13         GA\_PDISC\_PSR                        = 2,}
\DoxyCodeLine{14 \};}
\DoxyCodeLine{15 }
\DoxyCodeLine{16 \textcolor{comment}{/* Table 11.1.1.4.1: Message types for URR */}}
\DoxyCodeLine{17 }
\DoxyCodeLine{18 \textcolor{keyword}{enum} gan\_msg\_type \{}
\DoxyCodeLine{19         GA\_MT\_RC\_DISCOVERY\_REQUEST    = 0x01,}
\DoxyCodeLine{20         GA\_MT\_RC\_DISCOVERY\_ACCEPT      = 0x02,}
\DoxyCodeLine{21         GA\_MT\_RC\_DISCOVERY\_REJECT      = 0x03,}
\DoxyCodeLine{22 }
\DoxyCodeLine{23         GA\_MT\_RC\_REGISTER\_REQUEST      = 0x10,}
\DoxyCodeLine{24         GA\_MT\_RC\_REGISTER\_ACCEPT        = 0x11,}
\DoxyCodeLine{25         GA\_MT\_RC\_REGISTER\_REDIRECT    = 0x12,}
\DoxyCodeLine{26         GA\_MT\_RC\_REGISTER\_REJECT        = 0x13,}
\DoxyCodeLine{27         GA\_MT\_RC\_DEREGISTER          = 0x14,}
\DoxyCodeLine{28         GA\_MT\_RC\_REGISTER\_UPDATE\_UL  = 0x15,}
\DoxyCodeLine{29         GA\_MT\_RC\_REGISTER\_UPDATE\_DL  = 0x16,}
\DoxyCodeLine{30         GA\_MT\_RC\_CELL\_BCAST\_INFO        = 0x17,}
\DoxyCodeLine{31 }
\DoxyCodeLine{32         GA\_MT\_CSR\_CIPH\_MODE\_CMD          = 0x20,}
\DoxyCodeLine{33         GA\_MT\_CSR\_CIPH\_MODE\_COMPL      = 0x21,}
\DoxyCodeLine{34 }
\DoxyCodeLine{35         GA\_MT\_CSR\_ACT\_CHAN            = 0x30,}
\DoxyCodeLine{36         GA\_MT\_CSR\_ACT\_CHAN\_ACK            = 0x31,}
\DoxyCodeLine{37         GA\_MT\_CSR\_ACT\_CHAN\_COMPL        = 0x32,}
\DoxyCodeLine{38         GA\_MT\_CSR\_ACT\_CHAN\_FAIL          = 0x33,}
\DoxyCodeLine{39         GA\_MT\_CSR\_CHAN\_MODE\_MOD          = 0x34,}
\DoxyCodeLine{40         GA\_MT\_CSR\_CHAN\_MODE\_MOD\_ACK  = 0x35,}
\DoxyCodeLine{41 }
\DoxyCodeLine{42         GA\_MT\_CSR\_RELEASE              = 0x40,}
\DoxyCodeLine{43         GA\_MT\_CSR\_RELEASE\_COMPL          = 0x41,}
\DoxyCodeLine{44         GA\_MT\_CSR\_CLEAR\_REQ          = 0x42,}
\DoxyCodeLine{45 }
\DoxyCodeLine{46         GA\_MT\_CSR\_HO\_ACCESS          = 0x50,}
\DoxyCodeLine{47         GA\_MT\_CSR\_HO\_COMPL            = 0x51,}
\DoxyCodeLine{48         GA\_MT\_CSR\_UL\_QUAL\_IND              = 0x52,}
\DoxyCodeLine{49         GA\_MT\_CSR\_HO\_INFO              = 0x53,}
\DoxyCodeLine{50         GA\_MT\_CSR\_HO\_CMD                = 0x54,}
\DoxyCodeLine{51         GA\_MT\_CSR\_HO\_FAIL              = 0x55,}
\DoxyCodeLine{52 }
\DoxyCodeLine{53         GA\_MT\_CSR\_PAGING\_REQ                = 0x60,}
\DoxyCodeLine{54         GA\_MT\_CSR\_PAGING\_RESP              = 0x61,}
\DoxyCodeLine{55 }
\DoxyCodeLine{56         GA\_MT\_CSR\_UL\_DIRECT\_XFER        = 0x70,}
\DoxyCodeLine{57         GA\_MT\_CSR\_DL\_DIRECT\_XFER        = 0x72,}
\DoxyCodeLine{58         GA\_MT\_CSR\_STATUS                = 0x73,}
\DoxyCodeLine{59         GA\_MT\_RC\_KEEPALIVE            = 0x74,}
\DoxyCodeLine{60         GA\_MT\_CSR\_CM\_ENQ                = 0x75,}
\DoxyCodeLine{61         GA\_MT\_CSR\_CM\_CHANGE          = 0x76,}
\DoxyCodeLine{62         GA\_MT\_PSR\_GPRS\_SUSPEND\_REQ    = 0x77,}
\DoxyCodeLine{63         GA\_RC\_SYNC\_INFO                  = 0x78,}
\DoxyCodeLine{64         GA\_CSR\_UTRAN\_CM\_CHG          = 0x79,}
\DoxyCodeLine{65 }
\DoxyCodeLine{66         GA\_MT\_CSR\_REQUEST              = 0x80,}
\DoxyCodeLine{67         GA\_MT\_CSR\_REQUEST\_ACCEPT        = 0x81,}
\DoxyCodeLine{68         GA\_MT\_CSR\_REQUEST\_REJECT        = 0x82,}
\DoxyCodeLine{69 \};}
\DoxyCodeLine{70 }
\DoxyCodeLine{71 \textcolor{comment}{/* All tables in 10.1.x and 10.2.x / Table 11.2.1 */}}
\DoxyCodeLine{72 \textcolor{keyword}{enum} gan\_iei \{}
\DoxyCodeLine{73         GA\_IE\_MI                = 1,}
\DoxyCodeLine{74         GA\_IE\_GAN\_RELEASE\_IND      = 2,}
\DoxyCodeLine{75         GA\_IE\_RADIO\_IE            = 3,}
\DoxyCodeLine{76         GA\_IE\_GERAN\_CELL\_ID  = 4,}
\DoxyCodeLine{77         GA\_IE\_LAC              = 5,}
\DoxyCodeLine{78         GA\_IE\_GERAN\_COV\_IND  = 6,}
\DoxyCodeLine{79         GA\_IE\_GAN\_CM                = 7,}
\DoxyCodeLine{80         GA\_IE\_GEO\_LOC              = 8,}
\DoxyCodeLine{81         GA\_IE\_DEF\_SEGW\_IP      = 9,}
\DoxyCodeLine{82         GA\_IE\_DEF\_SEGW\_FQDN  = 10,}
\DoxyCodeLine{83         GA\_IE\_REDIR\_CTR          = 11,}
\DoxyCodeLine{84         GA\_IE\_DISCOV\_REJ\_CAUSE    = 12,}
\DoxyCodeLine{85         GA\_IE\_GANC\_CELL\_DESC        = 13,}
\DoxyCodeLine{86         GA\_IE\_GANC\_CTRL\_CH\_DESC  = 14,}
\DoxyCodeLine{87         GA\_IE\_GERAN\_CELL\_ID\_LIST= 15,}
\DoxyCodeLine{88         GA\_IE\_TU3907\_TIMER    = 16,}
\DoxyCodeLine{89         GA\_IE\_RR\_STATE            = 17,}
\DoxyCodeLine{90         GA\_IE\_RAI              = 18,}
\DoxyCodeLine{91         GA\_IE\_GAN\_BAND            = 19,}
\DoxyCodeLine{92         GA\_IE\_GARC\_GACSR\_STATE    = 20,}
\DoxyCodeLine{93         GA\_IE\_REG\_REJ\_CAUSE  = 21,}
\DoxyCodeLine{94         GA\_IE\_TU3906\_TIMER    = 22,}
\DoxyCodeLine{95         GA\_IE\_TU3910\_TIMER    = 23,}
\DoxyCodeLine{96         GA\_IE\_TU3902\_TIMER    = 24,}
\DoxyCodeLine{97         GA\_IE\_L3\_MSG                = 26,}
\DoxyCodeLine{98         GA\_IE\_CHAN\_MODE          = 27,}
\DoxyCodeLine{99         GA\_IE\_MS\_CLASSMARK2  = 28,}
\DoxyCodeLine{100         GA\_IE\_RR\_CAUSE            = 29,}
\DoxyCodeLine{101         GA\_EI\_CIPH\_MODE\_SET  = 30,}
\DoxyCodeLine{102         GA\_IE\_GPRS\_RESUMPTION      = 31,}
\DoxyCodeLine{103         GA\_IE\_HO\_FROM\_GAN\_CMD      = 32,}
\DoxyCodeLine{104         GA\_IE\_UL\_QUAL\_IND      = 33,}
\DoxyCodeLine{105         GA\_IE\_TLLI            = 34,}
\DoxyCodeLine{106         GA\_IE\_PFI              = 35,}
\DoxyCodeLine{107         GA\_IE\_SUSP\_CAUSE        = 36,}
\DoxyCodeLine{108         GA\_IE\_TU3920\_TIMER    = 37,}
\DoxyCodeLine{109         GA\_IE\_REQD\_QOS            = 38,}
\DoxyCodeLine{110         GA\_IE\_P\_DEACT\_CAUSE  = 39,}
\DoxyCodeLine{111         GA\_IE\_REQD\_UL\_RATE    = 40,}
\DoxyCodeLine{112         GA\_IE\_RAC              = 41,}
\DoxyCodeLine{113         GA\_IE\_AP\_LOCATION      = 42,}
\DoxyCodeLine{114         GA\_IE\_TU4001\_TIMER    = 43,}
\DoxyCodeLine{115         GA\_IE\_LOC\_STATUS        = 44,}
\DoxyCodeLine{116         GA\_IE\_CIPH\_RESP          = 45,}
\DoxyCodeLine{117         GA\_IE\_CIPH\_RAND          = 46,}
\DoxyCodeLine{118         GA\_IE\_CIPH\_MAC            = 47,}
\DoxyCodeLine{119         GA\_IE\_CKSN            = 48,}
\DoxyCodeLine{120         GA\_IE\_SAPI\_ID              = 49,}
\DoxyCodeLine{121         GA\_IE\_EST\_CAUSE          = 50,}
\DoxyCodeLine{122         GA\_IE\_CHAN\_NEEDED      = 51,}
\DoxyCodeLine{123         GA\_IE\_PDU\_IN\_ERROR    = 52,}
\DoxyCodeLine{124         GA\_IE\_SAMPLE\_SIZE      = 53,}
\DoxyCodeLine{125         GA\_IE\_PAYLOAD\_TYPE    = 54,}
\DoxyCodeLine{126         GA\_IE\_MULTIRATE\_CONF        = 55,}
\DoxyCodeLine{127         GA\_IE\_MS\_CLASSMARK3  = 56,}
\DoxyCodeLine{128         GA\_IE\_LLC\_PDU              = 57,}
\DoxyCodeLine{129         GA\_IE\_LOC\_BLACKL\_IND        = 58,}
\DoxyCodeLine{130         GA\_IE\_RESET\_IND          = 59,}
\DoxyCodeLine{131         GA\_IE\_TU4003\_TIMER    = 60,}
\DoxyCodeLine{132         GA\_IE\_AP\_SERV\_NAME    = 61,}
\DoxyCodeLine{133         GA\_IE\_SERV\_ZONE\_INFO        = 62,}
\DoxyCodeLine{134         GA\_IE\_RTP\_RED\_CONF    = 63,}
\DoxyCodeLine{135         GA\_IE\_UTRAN\_CLASSMARK      = 64,}
\DoxyCodeLine{136         GA\_IE\_CM\_ENQ\_MASK      = 65,}
\DoxyCodeLine{137         GA\_IE\_UTRAN\_CELLID\_LIST = 66,}
\DoxyCodeLine{138         GA\_IE\_SERV\_GANC\_TBL\_IND  = 67,}
\DoxyCodeLine{139         GA\_IE\_AP\_REG\_IND        = 68,}
\DoxyCodeLine{140         GA\_IE\_GAN\_PLMN\_LIST  = 69,}
\DoxyCodeLine{141         GA\_IE\_REQD\_GAN\_SERV  = 71,}
\DoxyCodeLine{142         GA\_IE\_BCAST\_CONTAINER      = 72,}
\DoxyCodeLine{143         GA\_IE\_3G\_CELL\_ID        = 73,}
\DoxyCodeLine{144         GA\_IE\_MS\_RADIO\_ID      = 96,}
\DoxyCodeLine{145         GA\_IE\_DEF\_GANC\_IP      = 97,}
\DoxyCodeLine{146         GA\_IE\_DEF\_GANC\_FQDN  = 98,}
\DoxyCodeLine{147         GA\_IE\_GPRS\_IP\_ADDR    = 99,}
\DoxyCodeLine{148         GA\_IE\_GPRS\_UDP\_PORT  = 100,}
\DoxyCodeLine{149         GA\_IE\_GANC\_TCP\_PORT  = 103,}
\DoxyCodeLine{150         GA\_IE\_RTP\_UDP\_PORT    = 104,}
\DoxyCodeLine{151         GA\_IE\_RTCP\_UDP\_PORT  = 105,}
\DoxyCodeLine{152         GA\_IE\_GERAN\_RCV\_SIGL\_LIST = 106,}
\DoxyCodeLine{153         GA\_IE\_UTRAN\_RCV\_SIGL\_LIST = 107,}
\DoxyCodeLine{154 \};}
\DoxyCodeLine{155 }
\DoxyCodeLine{156 \textcolor{comment}{/* 11.1.1 GA-\/RC and GA-\/CSR Message header IE */}}
\DoxyCodeLine{157 \textcolor{keyword}{struct }gan\_rc\_csr\_hdr \{}
\DoxyCodeLine{158 \textcolor{preprocessor}{\#if OSMO\_IS\_LITTLE\_ENDIAN}}
\DoxyCodeLine{159         uint16\_t len;}
\DoxyCodeLine{160         uint8\_t pdisc:4,}
\DoxyCodeLine{161                 skip\_ind:4;}
\DoxyCodeLine{162         uint8\_t msg\_type;}
\DoxyCodeLine{163         uint8\_t data[0];}
\DoxyCodeLine{164 \textcolor{preprocessor}{\#elif OSMO\_IS\_BIG\_ENDIAN}}
\DoxyCodeLine{165 \textcolor{comment}{/* auto-\/generated from the little endian part above (libosmocore/contrib/struct\_endianness.py) */}}
\DoxyCodeLine{166         uint16\_t len;}
\DoxyCodeLine{167         uint8\_t skip\_ind:4, pdisc:4;}
\DoxyCodeLine{168         uint8\_t msg\_type;}
\DoxyCodeLine{169         uint8\_t data[0];}
\DoxyCodeLine{170 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{171 \} \_\_attribute\_\_((packed));}
\DoxyCodeLine{172 }
\DoxyCodeLine{173 \textcolor{comment}{/* 11.2.14.1: GAN Control Channel Description IE */}}
\DoxyCodeLine{174 \textcolor{keyword}{struct }gan\_cch\_desc\_ie \{}
\DoxyCodeLine{175 \textcolor{preprocessor}{\#if OSMO\_IS\_LITTLE\_ENDIAN}}
\DoxyCodeLine{176         uint8\_t spare:1,}
\DoxyCodeLine{177                 ecmc:1,}
\DoxyCodeLine{178                 nmo:2,}
\DoxyCodeLine{179                 gprs:1,}
\DoxyCodeLine{180                 dtm:1,}
\DoxyCodeLine{181                 att:1,}
\DoxyCodeLine{182                 mscr:1;}
\DoxyCodeLine{183         uint8\_t t3212;}
\DoxyCodeLine{184         uint8\_t rac;}
\DoxyCodeLine{185         uint8\_t sgsnr:1,}
\DoxyCodeLine{186                 ecmp:1,}
\DoxyCodeLine{187                 re:1,}
\DoxyCodeLine{188                 pfcfm:1,}
\DoxyCodeLine{189                 tgecs:2,}
\DoxyCodeLine{190                 spare2:2;}
\DoxyCodeLine{191         uint8\_t access\_class[2];}
\DoxyCodeLine{192 \textcolor{preprocessor}{\#elif OSMO\_IS\_BIG\_ENDIAN}}
\DoxyCodeLine{193 \textcolor{comment}{/* auto-\/generated from the little endian part above (libosmocore/contrib/struct\_endianness.py) */}}
\DoxyCodeLine{194         uint8\_t mscr:1, att:1, dtm:1, gprs:1, nmo:2, ecmc:1, spare:1;}
\DoxyCodeLine{195         uint8\_t t3212;}
\DoxyCodeLine{196         uint8\_t rac;}
\DoxyCodeLine{197         uint8\_t spare2:2, tgecs:2, pfcfm:1, re:1, ecmp:1, sgsnr:1;}
\DoxyCodeLine{198         uint8\_t access\_class[2];}
\DoxyCodeLine{199 \textcolor{preprocessor}{\#endif}}
\DoxyCodeLine{200 \} \_\_attribute\_\_((packed));}

\end{DoxyCode}
