libosmogsm  0.9.6-9.20170220git32ee5af8.fc29
Osmocom GSM library
gsm_44_318.h
1 #pragma once
2 
3 #include <stdint.h>
4 
5 /* Definitions according to 3GPP TS 44.318 6.8.0 Release 6 */
6 
7 /* Table 11.1.1.2.1: Protocol Discriminator */
8 enum gan_pdisc {
9  GA_PDISC_RC = 0,
10  GA_PDISC_CSR = 1,
11  GA_PDISC_PSR = 2,
12 };
13 
14 /* Table 11.1.1.4.1: Message types for URR */
15 
16 enum gan_msg_type {
17  GA_MT_RC_DISCOVERY_REQUEST = 0x01,
18  GA_MT_RC_DISCOVERY_ACCEPT = 0x02,
19  GA_MT_RC_DISCOVERY_REJECT = 0x03,
20 
21  GA_MT_RC_REGISTER_REQUEST = 0x10,
22  GA_MT_RC_REGISTER_ACCEPT = 0x11,
23  GA_MT_RC_REGISTER_REDIRECT = 0x12,
24  GA_MT_RC_REGISTER_REJECT = 0x13,
25  GA_MT_RC_DEREGISTER = 0x14,
26  GA_MT_RC_REGISTER_UPDATE_UL = 0x15,
27  GA_MT_RC_REGISTER_UPDATE_DL = 0x16,
28  GA_MT_RC_CELL_BCAST_INFO = 0x17,
29 
30  GA_MT_CSR_CIPH_MODE_CMD = 0x20,
31  GA_MT_CSR_CIPH_MODE_COMPL = 0x21,
32 
33  GA_MT_CSR_ACT_CHAN = 0x30,
34  GA_MT_CSR_ACT_CHAN_ACK = 0x31,
35  GA_MT_CSR_ACT_CHAN_COMPL = 0x32,
36  GA_MT_CSR_ACT_CHAN_FAIL = 0x33,
37  GA_MT_CSR_CHAN_MODE_MOD = 0x34,
38  GA_MT_CSR_CHAN_MODE_MOD_ACK = 0x35,
39 
40  GA_MT_CSR_RELEASE = 0x40,
41  GA_MT_CSR_RELEASE_COMPL = 0x41,
42  GA_MT_CSR_CLEAR_REQ = 0x42,
43 
44  GA_MT_CSR_HO_ACCESS = 0x50,
45  GA_MT_CSR_HO_COMPL = 0x51,
46  GA_MT_CSR_UL_QUAL_IND = 0x52,
47  GA_MT_CSR_HO_INFO = 0x53,
48  GA_MT_CSR_HO_CMD = 0x54,
49  GA_MT_CSR_HO_FAIL = 0x55,
50 
51  GA_MT_CSR_PAGING_REQ = 0x60,
52  GA_MT_CSR_PAGING_RESP = 0x61,
53 
54  GA_MT_CSR_UL_DIRECT_XFER = 0x70,
55  GA_MT_CSR_DL_DIRECT_XFER = 0x72,
56  GA_MT_CSR_STATUS = 0x73,
57  GA_MT_RC_KEEPALIVE = 0x74,
58  GA_MT_CSR_CM_ENQ = 0x75,
59  GA_MT_CSR_CM_CHANGE = 0x76,
60  GA_MT_PSR_GPRS_SUSPEND_REQ = 0x77,
61  GA_RC_SYNC_INFO = 0x78,
62  GA_CSR_UTRAN_CM_CHG = 0x79,
63 
64  GA_MT_CSR_REQUEST = 0x80,
65  GA_MT_CSR_REQUEST_ACCEPT = 0x81,
66  GA_MT_CSR_REQUEST_REJECT = 0x82,
67 };
68 
69 /* All tables in 10.1.x and 10.2.x / Table 11.2.1 */
70 enum gan_iei {
71  GA_IE_MI = 1,
72  GA_IE_GAN_RELEASE_IND = 2,
73  GA_IE_RADIO_IE = 3,
74  GA_IE_GERAN_CELL_ID = 4,
75  GA_IE_LAC = 5,
76  GA_IE_GERAN_COV_IND = 6,
77  GA_IE_GAN_CM = 7,
78  GA_IE_GEO_LOC = 8,
79  GA_IE_DEF_SEGW_IP = 9,
80  GA_IE_DEF_SEGW_FQDN = 10,
81  GA_IE_REDIR_CTR = 11,
82  GA_IE_DISCOV_REJ_CAUSE = 12,
83  GA_IE_GANC_CELL_DESC = 13,
84  GA_IE_GANC_CTRL_CH_DESC = 14,
85  GA_IE_GERAN_CELL_ID_LIST= 15,
86  GA_IE_TU3907_TIMER = 16,
87  GA_IE_RR_STATE = 17,
88  GA_IE_RAI = 18,
89  GA_IE_GAN_BAND = 19,
90  GA_IE_GARC_GACSR_STATE = 20,
91  GA_IE_REG_REJ_CAUSE = 21,
92  GA_IE_TU3906_TIMER = 22,
93  GA_IE_TU3910_TIMER = 23,
94  GA_IE_TU3902_TIMER = 24,
95  GA_IE_L3_MSG = 26,
96  GA_IE_CHAN_MODE = 27,
97  GA_IE_MS_CLASSMARK2 = 28,
98  GA_IE_RR_CAUSE = 29,
99  GA_EI_CIPH_MODE_SET = 30,
100  GA_IE_GPRS_RESUMPTION = 31,
101  GA_IE_HO_FROM_GAN_CMD = 32,
102  GA_IE_UL_QUAL_IND = 33,
103  GA_IE_TLLI = 34,
104  GA_IE_PFI = 35,
105  GA_IE_SUSP_CAUSE = 36,
106  GA_IE_TU3920_TIMER = 37,
107  GA_IE_REQD_QOS = 38,
108  GA_IE_P_DEACT_CAUSE = 39,
109  GA_IE_REQD_UL_RATE = 40,
110  GA_IE_RAC = 41,
111  GA_IE_AP_LOCATION = 42,
112  GA_IE_TU4001_TIMER = 43,
113  GA_IE_LOC_STATUS = 44,
114  GA_IE_CIPH_RESP = 45,
115  GA_IE_CIPH_RAND = 46,
116  GA_IE_CIPH_MAC = 47,
117  GA_IE_CKSN = 48,
118  GA_IE_SAPI_ID = 49,
119  GA_IE_EST_CAUSE = 50,
120  GA_IE_CHAN_NEEDED = 51,
121  GA_IE_PDU_IN_ERROR = 52,
122  GA_IE_SAMPLE_SIZE = 53,
123  GA_IE_PAYLOAD_TYPE = 54,
124  GA_IE_MULTIRATE_CONF = 55,
125  GA_IE_MS_CLASSMARK3 = 56,
126  GA_IE_LLC_PDU = 57,
127  GA_IE_LOC_BLACKL_IND = 58,
128  GA_IE_RESET_IND = 59,
129  GA_IE_TU4003_TIMER = 60,
130  GA_IE_AP_SERV_NAME = 61,
131  GA_IE_SERV_ZONE_INFO = 62,
132  GA_IE_RTP_RED_CONF = 63,
133  GA_IE_UTRAN_CLASSMARK = 64,
134  GA_IE_CM_ENQ_MASK = 65,
135  GA_IE_UTRAN_CELLID_LIST = 66,
136  GA_IE_SERV_GANC_TBL_IND = 67,
137  GA_IE_AP_REG_IND = 68,
138  GA_IE_GAN_PLMN_LIST = 69,
139  GA_IE_REQD_GAN_SERV = 71,
140  GA_IE_BCAST_CONTAINER = 72,
141  GA_IE_3G_CELL_ID = 73,
142  GA_IE_MS_RADIO_ID = 96,
143  GA_IE_DEF_GANC_IP = 97,
144  GA_IE_DEF_GANC_FQDN = 98,
145  GA_IE_GPRS_IP_ADDR = 99,
146  GA_IE_GPRS_UDP_PORT = 100,
147  GA_IE_GANC_TCP_PORT = 103,
148  GA_IE_RTP_UDP_PORT = 104,
149  GA_IE_RTCP_UDP_PORT = 105,
150  GA_IE_GERAN_RCV_SIGL_LIST = 106,
151  GA_IE_UTRAN_RCV_SIGL_LIST = 107,
152 };
153 
154 /* 11.1.1 GA-RC and GA-CSR Message header IE */
156  uint16_t len;
157  uint8_t pdisc:4,
158  skip_ind:4;
159  uint8_t msg_type;
160  uint8_t data[0];
161 } __attribute__((packed));
162 
163 /* 11.2.14.1: GAN Control Channel Description IE */
165  uint8_t spare:1,
166  ecmc:1,
167  nmo:2,
168  gprs:1,
169  dtm:1,
170  att:1,
171  mscr:1;
172 #if 0
173  uint8_t mscr:1,
174  att:1,
175  dtm:1,
176  gprs:1,
177  nmo:2,
178  ecmc:1,
179  spare:1;
180 #endif
181  uint8_t t3212;
182  uint8_t rac;
183  uint8_t sgsnr:1,
184  ecmp:1,
185  re:1,
186  pfcfm:1,
187  tgecs:2,
188  spare2:2;
189 #if 0
190  uint8_t spare2:2,
191  tgecs:2,
192  pfcfm:1,
193  re:1,
194  ecmp:1,
195  sgsnr:1;
196 #endif
197  uint8_t access_class[2];
198 } __attribute__((packed));
Definition: gsm_44_318.h:164
Definition: gsm_44_318.h:155