blob: 9fce0e8eab67f046be6d9e3f3021a8698cb329bd [file] [log] [blame]
Holger Hans Peter Freyther97510812012-01-22 13:36:52 +01001Testing generation of GSM0808 messages
Philipp Maier4f4905f2018-11-30 13:36:12 +01002test_gsm0808_enc_cause: encoded: 04 01 41 (rc = 3)
3test_gsm0808_enc_cause: encoded: 04 02 80 41 (rc = 4)
Holger Hans Peter Freyther97510812012-01-22 13:36:52 +01004Testing creating Layer3
Philipp Maierfa896ab2017-03-27 16:55:32 +02005Testing creating Layer3 (AoIP)
Holger Hans Peter Freyther97510812012-01-22 13:36:52 +01006Testing creating Reset
Philipp Maier15596e22017-04-05 17:55:27 +02007Testing creating Reset Ack
Holger Hans Peter Freyther97510812012-01-22 13:36:52 +01008Testing creating Clear Command
Harald Weltecf665fc2019-02-18 13:45:36 +01009Testing creating Clear Command 2
10Testing creating Clear Command 2 (CSFB)
Holger Hans Peter Freyther97510812012-01-22 13:36:52 +010011Testing creating Clear Complete
Philipp Maierb478dd32017-03-29 15:50:05 +020012Testing creating Chipher Mode Command
Holger Hans Peter Freyther97510812012-01-22 13:36:52 +010013Testing creating Cipher Complete
14Testing creating Cipher Reject
Maxed651d22018-11-07 15:25:05 +010015Testing creating Cipher Reject (extended)
Holger Hans Peter Freyther97510812012-01-22 13:36:52 +010016Testing creating CM U
17Testing creating SAPI Reject
Philipp Maierc6144a22017-03-29 17:53:43 +020018Testing creating Assignment Request
Max52074322018-11-30 10:44:07 +010019Testing creating Assignment Request with Kc and LCLS
Holger Hans Peter Freyther97510812012-01-22 13:36:52 +010020Testing creating Assignment Complete
Philipp Maierfa896ab2017-03-27 16:55:32 +020021Testing creating Assignment Complete (AoIP)
Holger Hans Peter Freyther97510812012-01-22 13:36:52 +010022Testing creating Assignment Failure
Philipp Maierfa896ab2017-03-27 16:55:32 +020023Testing creating Assignment Failure (AoIP)
Holger Hans Peter Freyther97510812012-01-22 13:36:52 +010024Testing creating Clear Request
Philipp Maier3d48ec02017-03-29 17:37:55 +020025Testing creating Paging Request
Holger Hans Peter Freyther97510812012-01-22 13:36:52 +010026Testing creating DTAP
27Testing prepend DTAP
Max969fb2e2018-12-10 11:01:10 +010028Testing Global Call Reference IE encoder...
29 15 bytes added: OK
Max5ec0cf52019-01-15 16:37:09 +010030 decoded 15 bytes: OK:
31LCLS Config: Not available, Control: Not available, Correlation-Needed: 1
32 GCR NetID 0xf1f2f3, Node 0xdead, CallRefID 0x4142434445
Neels Hofmeyrdb2fa4e2018-04-13 04:11:20 +020033test_gsm0808_enc_dec_cell_id_list_lac: encoded: 1a 07 05 01 24 ab cd 56 78 (rc = 9)
Neels Hofmeyr74663d92018-03-23 01:46:42 +010034------- test_cell_id_list_add
Neels Hofmeyra4399c82018-04-17 02:26:10 +020035 cell_id_list == CGI[0]:{}
Neels Hofmeyr74663d92018-03-23 01:46:42 +010036gsm0808_cell_id_list_add(&cil, &lac1) --> rc = 1
Neels Hofmeyra4399c82018-04-17 02:26:10 +020037 cell_id_list == LAC[1]:{123}
Neels Hofmeyr74663d92018-03-23 01:46:42 +010038gsm0808_cell_id_list_add(&cil, &lac1) --> rc = 0
Neels Hofmeyra4399c82018-04-17 02:26:10 +020039 cell_id_list == LAC[1]:{123}
Neels Hofmeyr74663d92018-03-23 01:46:42 +010040gsm0808_cell_id_list_add(&cil, &lac2) --> rc = 2
Neels Hofmeyra4399c82018-04-17 02:26:10 +020041 cell_id_list == LAC[3]:{123, 456, 789}
Neels Hofmeyr74663d92018-03-23 01:46:42 +010042gsm0808_cell_id_list_add(&cil, &lac2) --> rc = 0
Neels Hofmeyra4399c82018-04-17 02:26:10 +020043 cell_id_list == LAC[3]:{123, 456, 789}
Neels Hofmeyr74663d92018-03-23 01:46:42 +010044gsm0808_cell_id_list_add(&cil, &cil) --> rc = 0
Neels Hofmeyra4399c82018-04-17 02:26:10 +020045 cell_id_list == LAC[3]:{123, 456, 789}
Neels Hofmeyr74663d92018-03-23 01:46:42 +010046gsm0808_cell_id_list_add(&cil, &cgi1) --> rc = -22
Neels Hofmeyra4399c82018-04-17 02:26:10 +020047 cell_id_list == LAC[3]:{123, 456, 789}
48* can't add to BSS list
49 cell_id_list == BSS[0]
Neels Hofmeyr74663d92018-03-23 01:46:42 +010050gsm0808_cell_id_list_add(&cil, &lac1) --> rc = -22
Neels Hofmeyra4399c82018-04-17 02:26:10 +020051 cell_id_list == BSS[0]
52* other types (including NO_CELL) take on new type iff empty
53 cell_id_list == NO-CELL[0]
Neels Hofmeyr74663d92018-03-23 01:46:42 +010054gsm0808_cell_id_list_add(&cil, &cgi1) --> rc = 1
Neels Hofmeyra4399c82018-04-17 02:26:10 +020055 cell_id_list == CGI[1]:{001-02-3-4}
Neels Hofmeyr74663d92018-03-23 01:46:42 +010056gsm0808_cell_id_list_add(&cil, &cgi1) --> rc = 0
Neels Hofmeyra4399c82018-04-17 02:26:10 +020057 cell_id_list == CGI[1]:{001-02-3-4}
Neels Hofmeyr74663d92018-03-23 01:46:42 +010058gsm0808_cell_id_list_add(&cil, &cgi2) --> rc = 2
Neels Hofmeyra4399c82018-04-17 02:26:10 +020059 cell_id_list == CGI[3]:{001-02-3-4, 001-002-3-4, 005-006-7-8}
Neels Hofmeyr74663d92018-03-23 01:46:42 +010060gsm0808_cell_id_list_add(&cil, &cgi2) --> rc = 0
Neels Hofmeyra4399c82018-04-17 02:26:10 +020061 cell_id_list == CGI[3]:{001-02-3-4, 001-002-3-4, 005-006-7-8}
62* test gsm0808_cell_id_list_name_buf()'s return val
63 strlen(gsm0808_cell_id_list_name(cil)) == 45
64 gsm0808_cell_id_list_name_buf(buf, 46, cil)) == 45 "CGI[3]:{001-02-3-4, 001-002-3-4, 005-006-7-8}"
65 gsm0808_cell_id_list_name_buf(buf, 23, cil)) == 45 "CGI[3]:{001-02-3-4, 00"
66 gsm0808_cell_id_list_name_buf(buf, 11, cil)) == 45 "CGI[3]:{00"
67 gsm0808_cell_id_list_name_buf(buf, 5, cil)) == 45 "CGI["
68 gsm0808_cell_id_list_name_buf(buf, 2, cil)) == 45 "C"
69 gsm0808_cell_id_list_name_buf(buf, 1, cil)) == 45 ""
70 gsm0808_cell_id_list_name_buf(buf, 0, cil)) == 45 "#"
71* list-full behavior
Neels Hofmeyr74663d92018-03-23 01:46:42 +010072cil.id_list_len = 126
73gsm0808_cell_id_list_add(&cil, &cgi2a) --> rc = 1
74cil.id_list_len = 127
Neels Hofmeyr74663d92018-03-23 01:46:42 +010075cil.id_list_len = 126
76gsm0808_cell_id_list_add(&cil, &cgi3) --> rc = -28
77cil.id_list_len = 127
78gsm0808_cell_id_list_add(&cil, &cgi2a) --> rc = -28
79cil.id_list_len = 127
80------- test_cell_id_list_add done
Neels Hofmeyr250e7f72018-04-13 03:30:14 +020081test_gsm0808_enc_dec_cell_id_lac: encoded: 05 03 05 01 24 (rc = 5)
82test_gsm0808_enc_dec_cell_id_bss: encoded: 05 01 06 (rc = 3)
83test_gsm0808_enc_dec_cell_id_no_cell: encoded: 05 01 03 (rc = 3)
84test_gsm0808_enc_dec_cell_id_lai_and_lac: encoded: 05 06 04 21 63 54 23 42 (rc = 8)
85test_gsm0808_enc_dec_cell_id_ci: encoded: 05 03 02 04 23 (rc = 5)
86test_gsm0808_enc_dec_cell_id_lac_and_ci: encoded: 05 05 01 04 23 02 35 (rc = 7)
87test_gsm0808_enc_dec_cell_id_global: encoded: 05 08 00 21 63 54 23 42 04 23 (rc = 10)
Philipp Maier5f2eb152018-09-19 13:40:21 +020088Testing gsm0808_sc_cfg_from_gsm48_mr_cfg():
89Input:
90 m4_75= 0 smod= 0
91 m5_15= 0 spare= 0
92 m5_90= 0 icmi= 0
93 m6_70= 0 nscb= 0
94 m7_40= 0 ver= 0
95 m7_95= 0
96 m10_2= 0
97 m12_2= 0
98Result (fr):
99 S15-S0 = 0000 = 0b0000000000000000
100Result (hr):
101 S15-S0 = 0000 = 0b0000000000000000
102
103Input:
104 m4_75= 1 smod= 0
105 m5_15= 0 spare= 0
106 m5_90= 0 icmi= 0
107 m6_70= 0 nscb= 0
108 m7_40= 0 ver= 0
109 m7_95= 0
110 m10_2= 0
111 m12_2= 0
112Result (fr):
113 S15-S0 = 5703 = 0b0101011100000011
114Result (hr):
115 S15-S0 = 0703 = 0b0000011100000011
116
117Input:
118 m4_75= 0 smod= 0
119 m5_15= 1 spare= 0
120 m5_90= 0 icmi= 0
121 m6_70= 0 nscb= 0
122 m7_40= 0 ver= 0
123 m7_95= 0
124 m10_2= 0
125 m12_2= 0
126Result (fr):
127 S15-S0 = 0000 = 0b0000000000000000
128Result (hr):
129 S15-S0 = 0000 = 0b0000000000000000
130
131Input:
132 m4_75= 0 smod= 0
133 m5_15= 0 spare= 0
134 m5_90= 1 icmi= 0
135 m6_70= 0 nscb= 0
136 m7_40= 0 ver= 0
137 m7_95= 0
138 m10_2= 0
139 m12_2= 0
140Result (fr):
141 S15-S0 = 5706 = 0b0101011100000110
142Result (hr):
143 S15-S0 = 0706 = 0b0000011100000110
144
145Input:
146 m4_75= 0 smod= 0
147 m5_15= 0 spare= 0
148 m5_90= 0 icmi= 0
149 m6_70= 1 nscb= 0
150 m7_40= 0 ver= 0
151 m7_95= 0
152 m10_2= 0
153 m12_2= 0
154Result (fr):
155 S15-S0 = 1608 = 0b0001011000001000
156Result (hr):
157 S15-S0 = 0608 = 0b0000011000001000
158
159Input:
160 m4_75= 0 smod= 0
161 m5_15= 0 spare= 0
162 m5_90= 0 icmi= 0
163 m6_70= 0 nscb= 0
164 m7_40= 1 ver= 0
165 m7_95= 0
166 m10_2= 0
167 m12_2= 0
168Result (fr):
169 S15-S0 = 0412 = 0b0000010000010010
170Result (hr):
171 S15-S0 = 0412 = 0b0000010000010010
172
173Input:
174 m4_75= 0 smod= 0
175 m5_15= 0 spare= 0
176 m5_90= 0 icmi= 0
177 m6_70= 0 nscb= 0
178 m7_40= 0 ver= 0
179 m7_95= 1
180 m10_2= 0
181 m12_2= 0
182Result (fr):
183 S15-S0 = 4020 = 0b0100000000100000
184Result (hr):
185 S15-S0 = 0020 = 0b0000000000100000
186
187Input:
188 m4_75= 0 smod= 0
189 m5_15= 0 spare= 0
190 m5_90= 0 icmi= 0
191 m6_70= 0 nscb= 0
192 m7_40= 0 ver= 0
193 m7_95= 0
194 m10_2= 1
195 m12_2= 0
196Result (fr):
197 S15-S0 = 1040 = 0b0001000001000000
198Result (hr):
199 S15-S0 = 0000 = 0b0000000000000000
200
201Input:
202 m4_75= 0 smod= 0
203 m5_15= 0 spare= 0
204 m5_90= 0 icmi= 0
205 m6_70= 0 nscb= 0
206 m7_40= 0 ver= 0
207 m7_95= 0
208 m10_2= 0
209 m12_2= 1
210Result (fr):
211 S15-S0 = 4082 = 0b0100000010000010
212Result (hr):
213 S15-S0 = 0002 = 0b0000000000000010
214
215Input:
216 m4_75= 1 smod= 0
217 m5_15= 1 spare= 0
218 m5_90= 1 icmi= 0
219 m6_70= 1 nscb= 0
220 m7_40= 0 ver= 0
221 m7_95= 0
222 m10_2= 0
223 m12_2= 0
224Result (fr):
225 S15-S0 = 570f = 0b0101011100001111
226Result (hr):
227 S15-S0 = 070f = 0b0000011100001111
228
229Input:
230 m4_75= 0 smod= 0
231 m5_15= 0 spare= 0
232 m5_90= 0 icmi= 0
233 m6_70= 0 nscb= 0
234 m7_40= 1 ver= 0
235 m7_95= 1
236 m10_2= 1
237 m12_2= 1
238Result (fr):
239 S15-S0 = 54f2 = 0b0101010011110010
240Result (hr):
241 S15-S0 = 0432 = 0b0000010000110010
242
243Input:
244 m4_75= 0 smod= 0
245 m5_15= 0 spare= 0
246 m5_90= 1 icmi= 0
247 m6_70= 1 nscb= 0
248 m7_40= 0 ver= 0
249 m7_95= 0
250 m10_2= 1
251 m12_2= 1
252Result (fr):
253 S15-S0 = 57ce = 0b0101011111001110
254Result (hr):
255 S15-S0 = 070e = 0b0000011100001110
256
257Input:
258 m4_75= 1 smod= 0
259 m5_15= 1 spare= 0
260 m5_90= 0 icmi= 0
261 m6_70= 0 nscb= 0
262 m7_40= 1 ver= 0
263 m7_95= 1
264 m10_2= 0
265 m12_2= 0
266Result (fr):
267 S15-S0 = 5733 = 0b0101011100110011
268Result (hr):
269 S15-S0 = 0733 = 0b0000011100110011
270
271Input:
272 m4_75= 0 smod= 0
273 m5_15= 1 spare= 0
274 m5_90= 0 icmi= 0
275 m6_70= 1 nscb= 0
276 m7_40= 0 ver= 0
277 m7_95= 1
278 m10_2= 0
279 m12_2= 1
280Result (fr):
281 S15-S0 = 56aa = 0b0101011010101010
282Result (hr):
283 S15-S0 = 062a = 0b0000011000101010
284
285Input:
286 m4_75= 1 smod= 0
287 m5_15= 0 spare= 0
288 m5_90= 1 icmi= 0
289 m6_70= 0 nscb= 0
290 m7_40= 1 ver= 0
291 m7_95= 0
292 m10_2= 1
293 m12_2= 0
294Result (fr):
295 S15-S0 = 5757 = 0b0101011101010111
296Result (hr):
297 S15-S0 = 0717 = 0b0000011100010111
298
299Input:
300 m4_75= 1 smod= 0
301 m5_15= 1 spare= 0
302 m5_90= 1 icmi= 0
303 m6_70= 1 nscb= 0
304 m7_40= 1 ver= 0
305 m7_95= 1
306 m10_2= 1
307 m12_2= 1
308Result (fr):
309 S15-S0 = 57ff = 0b0101011111111111
310Result (hr):
311 S15-S0 = 073f = 0b0000011100111111
312
Philipp Maier8515d032018-09-25 15:57:49 +0200313Testing gsm48_mr_cfg_from_gsm0808_sc_cfg():
314Input:
315 S15-S0 = ff03 = 0b1111111100000011
316Output:
317 m4_75= 1 smod= 0
Philipp Maier3713af82019-02-27 16:48:25 +0100318 m5_15= 0 spare= 0
319 m5_90= 1 icmi= 1
Philipp Maier8515d032018-09-25 15:57:49 +0200320 m6_70= 0 nscb= 0
Philipp Maier3713af82019-02-27 16:48:25 +0100321 m7_40= 1 ver= 1
Philipp Maier8515d032018-09-25 15:57:49 +0200322 m7_95= 0
323 m10_2= 0
Philipp Maier3713af82019-02-27 16:48:25 +0100324 m12_2= 1
Philipp Maier8515d032018-09-25 15:57:49 +0200325
326Input:
327 S15-S0 = 0000 = 0b0000000000000000
328Output:
329 m4_75= 0 smod= 0
Philipp Maier3713af82019-02-27 16:48:25 +0100330 m5_15= 0 spare= 0
Philipp Maier8515d032018-09-25 15:57:49 +0200331 m5_90= 0 icmi= 1
332 m6_70= 0 nscb= 0
333 m7_40= 0 ver= 1
334 m7_95= 0
335 m10_2= 0
336 m12_2= 0
Philipp Maier3713af82019-02-27 16:48:25 +0100337 Result invalid!
Philipp Maier8515d032018-09-25 15:57:49 +0200338
339Input:
340 S15-S0 = ff06 = 0b1111111100000110
341Output:
Philipp Maier3713af82019-02-27 16:48:25 +0100342 m4_75= 1 smod= 0
343 m5_15= 0 spare= 0
Philipp Maier8515d032018-09-25 15:57:49 +0200344 m5_90= 1 icmi= 1
345 m6_70= 0 nscb= 0
Philipp Maier3713af82019-02-27 16:48:25 +0100346 m7_40= 1 ver= 1
Philipp Maier8515d032018-09-25 15:57:49 +0200347 m7_95= 0
348 m10_2= 0
Philipp Maier3713af82019-02-27 16:48:25 +0100349 m12_2= 1
Philipp Maier8515d032018-09-25 15:57:49 +0200350
351Input:
352 S15-S0 = 3e08 = 0b0011111000001000
353Output:
354 m4_75= 0 smod= 0
Philipp Maier3713af82019-02-27 16:48:25 +0100355 m5_15= 0 spare= 0
Philipp Maier8515d032018-09-25 15:57:49 +0200356 m5_90= 0 icmi= 1
357 m6_70= 1 nscb= 0
358 m7_40= 0 ver= 1
359 m7_95= 0
360 m10_2= 0
361 m12_2= 0
362
363Input:
364 S15-S0 = 0c12 = 0b0000110000010010
365Output:
Philipp Maier3713af82019-02-27 16:48:25 +0100366 m4_75= 1 smod= 0
367 m5_15= 0 spare= 0
368 m5_90= 1 icmi= 1
Philipp Maier8515d032018-09-25 15:57:49 +0200369 m6_70= 0 nscb= 0
370 m7_40= 1 ver= 1
371 m7_95= 0
372 m10_2= 0
Philipp Maier3713af82019-02-27 16:48:25 +0100373 m12_2= 1
Philipp Maier8515d032018-09-25 15:57:49 +0200374
375Input:
376 S15-S0 = c020 = 0b1100000000100000
377Output:
378 m4_75= 0 smod= 0
Philipp Maier3713af82019-02-27 16:48:25 +0100379 m5_15= 0 spare= 0
Philipp Maier8515d032018-09-25 15:57:49 +0200380 m5_90= 0 icmi= 1
381 m6_70= 0 nscb= 0
382 m7_40= 0 ver= 1
383 m7_95= 1
384 m10_2= 0
385 m12_2= 0
386
387Input:
388 S15-S0 = 3040 = 0b0011000001000000
389Output:
390 m4_75= 0 smod= 0
Philipp Maier3713af82019-02-27 16:48:25 +0100391 m5_15= 0 spare= 0
Philipp Maier8515d032018-09-25 15:57:49 +0200392 m5_90= 0 icmi= 1
393 m6_70= 0 nscb= 0
394 m7_40= 0 ver= 1
395 m7_95= 0
396 m10_2= 1
397 m12_2= 0
398
399Input:
400 S15-S0 = c082 = 0b1100000010000010
401Output:
Philipp Maier3713af82019-02-27 16:48:25 +0100402 m4_75= 1 smod= 0
403 m5_15= 0 spare= 0
404 m5_90= 1 icmi= 1
Philipp Maier8515d032018-09-25 15:57:49 +0200405 m6_70= 0 nscb= 0
Philipp Maier3713af82019-02-27 16:48:25 +0100406 m7_40= 1 ver= 1
Philipp Maier8515d032018-09-25 15:57:49 +0200407 m7_95= 0
408 m10_2= 0
409 m12_2= 1
410
411Input:
Philipp Maier3713af82019-02-27 16:48:25 +0100412 S15-S0 = 0001 = 0b0000000000000001
Philipp Maier8515d032018-09-25 15:57:49 +0200413Output:
414 m4_75= 1 smod= 0
Philipp Maier3713af82019-02-27 16:48:25 +0100415 m5_15= 0 spare= 0
416 m5_90= 0 icmi= 1
417 m6_70= 0 nscb= 0
418 m7_40= 0 ver= 1
419 m7_95= 0
420 m10_2= 0
421 m12_2= 0
422
423Input:
424 S15-S0 = 0002 = 0b0000000000000010
425Output:
426 m4_75= 1 smod= 0
427 m5_15= 0 spare= 0
428 m5_90= 1 icmi= 1
429 m6_70= 0 nscb= 0
430 m7_40= 1 ver= 1
431 m7_95= 0
432 m10_2= 0
433 m12_2= 1
434
435Input:
436 S15-S0 = 0004 = 0b0000000000000100
437Output:
438 m4_75= 0 smod= 0
439 m5_15= 0 spare= 0
440 m5_90= 1 icmi= 1
441 m6_70= 0 nscb= 0
442 m7_40= 0 ver= 1
443 m7_95= 0
444 m10_2= 0
445 m12_2= 0
446
447Input:
448 S15-S0 = 0008 = 0b0000000000001000
449Output:
450 m4_75= 0 smod= 0
451 m5_15= 0 spare= 0
Philipp Maier8515d032018-09-25 15:57:49 +0200452 m5_90= 0 icmi= 1
453 m6_70= 1 nscb= 0
454 m7_40= 0 ver= 1
455 m7_95= 0
Philipp Maier3713af82019-02-27 16:48:25 +0100456 m10_2= 0
457 m12_2= 0
458
459Input:
460 S15-S0 = 0010 = 0b0000000000010000
461Output:
462 m4_75= 0 smod= 0
463 m5_15= 0 spare= 0
464 m5_90= 0 icmi= 1
465 m6_70= 0 nscb= 0
466 m7_40= 1 ver= 1
467 m7_95= 0
468 m10_2= 0
469 m12_2= 0
470
471Input:
472 S15-S0 = 0020 = 0b0000000000100000
473Output:
474 m4_75= 0 smod= 0
475 m5_15= 0 spare= 0
476 m5_90= 0 icmi= 1
477 m6_70= 0 nscb= 0
478 m7_40= 0 ver= 1
479 m7_95= 1
480 m10_2= 0
481 m12_2= 0
482
483Input:
484 S15-S0 = 0040 = 0b0000000001000000
485Output:
486 m4_75= 0 smod= 0
487 m5_15= 0 spare= 0
488 m5_90= 0 icmi= 1
489 m6_70= 0 nscb= 0
490 m7_40= 0 ver= 1
491 m7_95= 0
Philipp Maier8515d032018-09-25 15:57:49 +0200492 m10_2= 1
493 m12_2= 0
494
495Input:
Philipp Maier3713af82019-02-27 16:48:25 +0100496 S15-S0 = 0080 = 0b0000000010000000
Philipp Maier8515d032018-09-25 15:57:49 +0200497Output:
498 m4_75= 0 smod= 0
Philipp Maier3713af82019-02-27 16:48:25 +0100499 m5_15= 0 spare= 0
Philipp Maier8515d032018-09-25 15:57:49 +0200500 m5_90= 0 icmi= 1
501 m6_70= 0 nscb= 0
Philipp Maier3713af82019-02-27 16:48:25 +0100502 m7_40= 0 ver= 1
Philipp Maier8515d032018-09-25 15:57:49 +0200503 m7_95= 0
Philipp Maier3713af82019-02-27 16:48:25 +0100504 m10_2= 0
Philipp Maier8515d032018-09-25 15:57:49 +0200505 m12_2= 1
506
507Input:
Philipp Maier3713af82019-02-27 16:48:25 +0100508 S15-S0 = 0058 = 0b0000000001011000
Philipp Maier8515d032018-09-25 15:57:49 +0200509Output:
510 m4_75= 0 smod= 0
Philipp Maier3713af82019-02-27 16:48:25 +0100511 m5_15= 0 spare= 0
512 m5_90= 0 icmi= 1
513 m6_70= 1 nscb= 0
514 m7_40= 1 ver= 1
515 m7_95= 0
516 m10_2= 1
517 m12_2= 0
518
519Input:
520 S15-S0 = 0021 = 0b0000000000100001
521Output:
522 m4_75= 1 smod= 0
523 m5_15= 0 spare= 0
Philipp Maier8515d032018-09-25 15:57:49 +0200524 m5_90= 0 icmi= 1
525 m6_70= 0 nscb= 0
526 m7_40= 0 ver= 1
527 m7_95= 1
528 m10_2= 0
Philipp Maier3713af82019-02-27 16:48:25 +0100529 m12_2= 0
530
531Input:
532 S15-S0 = 0084 = 0b0000000010000100
533Output:
534 m4_75= 0 smod= 0
535 m5_15= 0 spare= 0
536 m5_90= 1 icmi= 1
537 m6_70= 0 nscb= 0
538 m7_40= 0 ver= 1
539 m7_95= 0
540 m10_2= 0
Philipp Maier8515d032018-09-25 15:57:49 +0200541 m12_2= 1
542
Philipp Maier3713af82019-02-27 16:48:25 +0100543Input:
544 S15-S0 = 0086 = 0b0000000010000110
545Output:
546 m4_75= 1 smod= 0
547 m5_15= 0 spare= 0
548 m5_90= 1 icmi= 1
549 m6_70= 0 nscb= 0
550 m7_40= 1 ver= 1
551 m7_95= 0
552 m10_2= 0
553 m12_2= 1
554
555Input:
556 S15-S0 = 000a = 0b0000000000001010
557Output:
558 m4_75= 1 smod= 0
559 m5_15= 0 spare= 0
560 m5_90= 1 icmi= 1
561 m6_70= 0 nscb= 0
562 m7_40= 1 ver= 1
563 m7_95= 0
564 m10_2= 0
565 m12_2= 1
566 Result invalid!
567
568Input:
569 S15-S0 = 0079 = 0b0000000001111001
570Output:
571 m4_75= 1 smod= 0
572 m5_15= 0 spare= 0
573 m5_90= 0 icmi= 1
574 m6_70= 1 nscb= 0
575 m7_40= 1 ver= 1
576 m7_95= 1
577 m10_2= 0
578 m12_2= 0
579 Result invalid!
580
581Input:
582 S15-S0 = 0000 = 0b0000000000000000
583Output:
584 m4_75= 0 smod= 0
585 m5_15= 0 spare= 0
586 m5_90= 0 icmi= 1
587 m6_70= 0 nscb= 0
588 m7_40= 0 ver= 1
589 m7_95= 0
590 m10_2= 0
591 m12_2= 0
592 Result invalid!
593
594Input:
595 S15-S0 = ffff = 0b1111111111111111
596Output:
597 m4_75= 1 smod= 0
598 m5_15= 0 spare= 0
599 m5_90= 1 icmi= 1
600 m6_70= 0 nscb= 0
601 m7_40= 1 ver= 1
602 m7_95= 0
603 m10_2= 0
604 m12_2= 1
605 Result invalid!
606
Neels Hofmeyrd01ef752018-09-21 15:57:26 +0200607
608test_cell_id_matching
609[0] LAC:23 LAC:23 MATCH
610[0] LAC:23 LAC:23 MATCH exactly
611[1] LAC:23 LAC:42 don't match
612[1] LAC:23 LAC:42 don't match exactly
613[2] LAC:23 CI:5 MATCH
614[2] LAC:23 CI:5 don't match exactly
615[3] LAC:23 CI:6 MATCH
616[3] LAC:23 CI:6 don't match exactly
617[4] LAC:23 LAC-CI:23-5 MATCH
618[4] LAC:23 LAC-CI:23-5 don't match exactly
619[5] LAC:23 LAC-CI:42-6 don't match
620[5] LAC:23 LAC-CI:42-6 don't match exactly
621[6] LAC:23 LAI:023-042-23 MATCH
622[6] LAC:23 LAI:023-042-23 don't match exactly
623[7] LAC:23 LAI:023-042-42 don't match
624[7] LAC:23 LAI:023-042-42 don't match exactly
625[8] LAC:23 LAI:023-99-23 MATCH
626[8] LAC:23 LAI:023-99-23 don't match exactly
627[9] LAC:23 LAI:023-42-23 MATCH
628[9] LAC:23 LAI:023-42-23 don't match exactly
629[10] LAC:23 CGI:023-042-23-5 MATCH
630[10] LAC:23 CGI:023-042-23-5 don't match exactly
631[11] LAC:23 CGI:023-042-42-6 don't match
632[11] LAC:23 CGI:023-042-42-6 don't match exactly
633[12] LAC:23 CGI:023-99-23-5 MATCH
634[12] LAC:23 CGI:023-99-23-5 don't match exactly
635[13] CI:5 LAC:23 MATCH
636[13] CI:5 LAC:23 don't match exactly
637[14] CI:5 LAC:42 MATCH
638[14] CI:5 LAC:42 don't match exactly
639[15] CI:5 CI:5 MATCH
640[15] CI:5 CI:5 MATCH exactly
641[16] CI:5 CI:6 don't match
642[16] CI:5 CI:6 don't match exactly
643[17] CI:5 LAC-CI:23-5 MATCH
644[17] CI:5 LAC-CI:23-5 don't match exactly
645[18] CI:5 LAC-CI:42-6 don't match
646[18] CI:5 LAC-CI:42-6 don't match exactly
647[19] CI:5 LAI:023-042-23 MATCH
648[19] CI:5 LAI:023-042-23 don't match exactly
649[20] CI:5 LAI:023-042-42 MATCH
650[20] CI:5 LAI:023-042-42 don't match exactly
651[21] CI:5 LAI:023-99-23 MATCH
652[21] CI:5 LAI:023-99-23 don't match exactly
653[22] CI:5 LAI:023-42-23 MATCH
654[22] CI:5 LAI:023-42-23 don't match exactly
655[23] CI:5 CGI:023-042-23-5 MATCH
656[23] CI:5 CGI:023-042-23-5 don't match exactly
657[24] CI:5 CGI:023-042-42-6 don't match
658[24] CI:5 CGI:023-042-42-6 don't match exactly
659[25] CI:5 CGI:023-99-23-5 MATCH
660[25] CI:5 CGI:023-99-23-5 don't match exactly
661[26] LAC-CI:23-5 LAC:23 MATCH
662[26] LAC-CI:23-5 LAC:23 don't match exactly
663[27] LAC-CI:23-5 LAC:42 don't match
664[27] LAC-CI:23-5 LAC:42 don't match exactly
665[28] LAC-CI:23-5 CI:5 MATCH
666[28] LAC-CI:23-5 CI:5 don't match exactly
667[29] LAC-CI:23-5 CI:6 don't match
668[29] LAC-CI:23-5 CI:6 don't match exactly
669[30] LAC-CI:23-5 LAC-CI:23-5 MATCH
670[30] LAC-CI:23-5 LAC-CI:23-5 MATCH exactly
671[31] LAC-CI:23-5 LAC-CI:42-6 don't match
672[31] LAC-CI:23-5 LAC-CI:42-6 don't match exactly
673[32] LAC-CI:23-5 LAI:023-042-23 MATCH
674[32] LAC-CI:23-5 LAI:023-042-23 don't match exactly
675[33] LAC-CI:23-5 LAI:023-042-42 don't match
676[33] LAC-CI:23-5 LAI:023-042-42 don't match exactly
677[34] LAC-CI:23-5 LAI:023-99-23 MATCH
678[34] LAC-CI:23-5 LAI:023-99-23 don't match exactly
679[35] LAC-CI:23-5 LAI:023-42-23 MATCH
680[35] LAC-CI:23-5 LAI:023-42-23 don't match exactly
681[36] LAC-CI:23-5 CGI:023-042-23-5 MATCH
682[36] LAC-CI:23-5 CGI:023-042-23-5 don't match exactly
683[37] LAC-CI:23-5 CGI:023-042-42-6 don't match
684[37] LAC-CI:23-5 CGI:023-042-42-6 don't match exactly
685[38] LAC-CI:23-5 CGI:023-99-23-5 MATCH
686[38] LAC-CI:23-5 CGI:023-99-23-5 don't match exactly
687[39] LAI:023-042-23 LAC:23 MATCH
688[39] LAI:023-042-23 LAC:23 don't match exactly
689[40] LAI:023-042-23 LAC:42 don't match
690[40] LAI:023-042-23 LAC:42 don't match exactly
691[41] LAI:023-042-23 CI:5 MATCH
692[41] LAI:023-042-23 CI:5 don't match exactly
693[42] LAI:023-042-23 CI:6 MATCH
694[42] LAI:023-042-23 CI:6 don't match exactly
695[43] LAI:023-042-23 LAC-CI:23-5 MATCH
696[43] LAI:023-042-23 LAC-CI:23-5 don't match exactly
697[44] LAI:023-042-23 LAC-CI:42-6 don't match
698[44] LAI:023-042-23 LAC-CI:42-6 don't match exactly
699[45] LAI:023-042-23 LAI:023-042-23 MATCH
700[45] LAI:023-042-23 LAI:023-042-23 MATCH exactly
701[46] LAI:023-042-23 LAI:023-042-42 don't match
702[46] LAI:023-042-23 LAI:023-042-42 don't match exactly
703[47] LAI:023-042-23 LAI:023-99-23 don't match
704[47] LAI:023-042-23 LAI:023-99-23 don't match exactly
705[48] LAI:023-042-23 LAI:023-42-23 don't match
706[48] LAI:023-042-23 LAI:023-42-23 don't match exactly
707[49] LAI:023-042-23 CGI:023-042-23-5 MATCH
708[49] LAI:023-042-23 CGI:023-042-23-5 don't match exactly
709[50] LAI:023-042-23 CGI:023-042-42-6 don't match
710[50] LAI:023-042-23 CGI:023-042-42-6 don't match exactly
711[51] LAI:023-042-23 CGI:023-99-23-5 don't match
712[51] LAI:023-042-23 CGI:023-99-23-5 don't match exactly
713[52] CGI:023-042-23-5 LAC:23 MATCH
714[52] CGI:023-042-23-5 LAC:23 don't match exactly
715[53] CGI:023-042-23-5 LAC:42 don't match
716[53] CGI:023-042-23-5 LAC:42 don't match exactly
717[54] CGI:023-042-23-5 CI:5 MATCH
718[54] CGI:023-042-23-5 CI:5 don't match exactly
719[55] CGI:023-042-23-5 CI:6 don't match
720[55] CGI:023-042-23-5 CI:6 don't match exactly
721[56] CGI:023-042-23-5 LAC-CI:23-5 MATCH
722[56] CGI:023-042-23-5 LAC-CI:23-5 don't match exactly
723[57] CGI:023-042-23-5 LAC-CI:42-6 don't match
724[57] CGI:023-042-23-5 LAC-CI:42-6 don't match exactly
725[58] CGI:023-042-23-5 LAI:023-042-23 MATCH
726[58] CGI:023-042-23-5 LAI:023-042-23 don't match exactly
727[59] CGI:023-042-23-5 LAI:023-042-42 don't match
728[59] CGI:023-042-23-5 LAI:023-042-42 don't match exactly
729[60] CGI:023-042-23-5 LAI:023-99-23 don't match
730[60] CGI:023-042-23-5 LAI:023-99-23 don't match exactly
731[61] CGI:023-042-23-5 LAI:023-42-23 don't match
732[61] CGI:023-042-23-5 LAI:023-42-23 don't match exactly
733[62] CGI:023-042-23-5 CGI:023-042-23-5 MATCH
734[62] CGI:023-042-23-5 CGI:023-042-23-5 MATCH exactly
735[63] CGI:023-042-23-5 CGI:023-042-42-6 don't match
736[63] CGI:023-042-23-5 CGI:023-042-42-6 don't match exactly
737[64] CGI:023-042-23-5 CGI:023-99-23-5 don't match
738[64] CGI:023-042-23-5 CGI:023-99-23-5 don't match exactly
739
740test_cell_id_list_matching(test match)
741LAC:23 and LAC[2]:{42, 23}: MATCH at [1]
742LAC:23 and CI[2]:{5, 6}: MATCH at [0]
743LAC:23 and LAC-CI[2]:{42-6, 23-5}: MATCH at [1]
744LAC:23 and LAI[4]:{023-042-42, 023-042-23, 023-99-23, 023-42-23}: MATCH at [1]
745LAC:23 and CGI[3]:{023-042-42-6, 023-042-23-5, 023-99-23-5}: MATCH at [1]
746CI:5 and LAC[2]:{23, 42}: MATCH at [0]
747CI:5 and CI[2]:{6, 5}: MATCH at [1]
748CI:5 and LAC-CI[2]:{42-6, 23-5}: MATCH at [1]
749CI:5 and LAI[4]:{023-042-23, 023-042-42, 023-99-23, 023-42-23}: MATCH at [0]
750CI:5 and CGI[3]:{023-042-42-6, 023-042-23-5, 023-99-23-5}: MATCH at [1]
751LAC-CI:23-5 and LAC[2]:{42, 23}: MATCH at [1]
752LAC-CI:23-5 and CI[2]:{6, 5}: MATCH at [1]
753LAC-CI:23-5 and LAC-CI[2]:{42-6, 23-5}: MATCH at [1]
754LAC-CI:23-5 and LAI[4]:{023-042-42, 023-042-23, 023-99-23, 023-42-23}: MATCH at [1]
755LAC-CI:23-5 and CGI[3]:{023-042-42-6, 023-042-23-5, 023-99-23-5}: MATCH at [1]
756LAI:023-042-23 and LAC[2]:{42, 23}: MATCH at [1]
757LAI:023-042-23 and CI[2]:{5, 6}: MATCH at [0]
758LAI:023-042-23 and LAC-CI[2]:{42-6, 23-5}: MATCH at [1]
759LAI:023-042-23 and LAI[4]:{023-042-42, 023-99-23, 023-42-23, 023-042-23}: MATCH at [3]
760LAI:023-042-23 and CGI[3]:{023-042-42-6, 023-99-23-5, 023-042-23-5}: MATCH at [2]
761CGI:023-042-23-5 and LAC[2]:{42, 23}: MATCH at [1]
762CGI:023-042-23-5 and CI[2]:{6, 5}: MATCH at [1]
763CGI:023-042-23-5 and LAC-CI[2]:{42-6, 23-5}: MATCH at [1]
764CGI:023-042-23-5 and LAI[4]:{023-042-42, 023-99-23, 023-42-23, 023-042-23}: MATCH at [3]
765CGI:023-042-23-5 and CGI[3]:{023-042-42-6, 023-99-23-5, 023-042-23-5}: MATCH at [2]
766
767test_cell_id_list_matching(test mismatch)
768LAC:23 and LAC[1]:{42}: mismatch
769LAC:23 vs. CI: No match_id entries to test mismatch
770LAC:23 and LAC-CI[1]:{42-6}: mismatch
771LAC:23 and LAI[1]:{023-042-42}: mismatch
772LAC:23 and CGI[1]:{023-042-42-6}: mismatch
773CI:5 vs. LAC: No match_id entries to test mismatch
774CI:5 and CI[1]:{6}: mismatch
775CI:5 and LAC-CI[1]:{42-6}: mismatch
776CI:5 vs. LAI: No match_id entries to test mismatch
777CI:5 and CGI[1]:{023-042-42-6}: mismatch
778LAC-CI:23-5 and LAC[1]:{42}: mismatch
779LAC-CI:23-5 and CI[1]:{6}: mismatch
780LAC-CI:23-5 and LAC-CI[1]:{42-6}: mismatch
781LAC-CI:23-5 and LAI[1]:{023-042-42}: mismatch
782LAC-CI:23-5 and CGI[1]:{023-042-42-6}: mismatch
783LAI:023-042-23 and LAC[1]:{42}: mismatch
784LAI:023-042-23 vs. CI: No match_id entries to test mismatch
785LAI:023-042-23 and LAC-CI[1]:{42-6}: mismatch
786LAI:023-042-23 and LAI[3]:{023-042-42, 023-99-23, 023-42-23}: mismatch
787LAI:023-042-23 and CGI[2]:{023-042-42-6, 023-99-23-5}: mismatch
788CGI:023-042-23-5 and LAC[1]:{42}: mismatch
789CGI:023-042-23-5 and CI[1]:{6}: mismatch
790CGI:023-042-23-5 and LAC-CI[1]:{42-6}: mismatch
791CGI:023-042-23-5 and LAI[3]:{023-042-42, 023-99-23, 023-42-23}: mismatch
792CGI:023-042-23-5 and CGI[2]:{023-042-42-6, 023-99-23-5}: mismatch
Neels Hofmeyr3a504532019-02-10 22:28:27 +0100793
794test_gsm0808_cell_id_to_from_cgi()
795cid LAC:23 -> cgi 777-007-23-7777 LAC -> cid LAC:23
796 --> gsm0808_cell_id{LAC} = LAC:23
797 --> gsm0808_cell_id{CI} = CI:7777
798 --> gsm0808_cell_id{LAC-CI} = LAC-CI:23-7777
799 --> gsm0808_cell_id{LAI} = LAI:777-007-23
800 --> gsm0808_cell_id{CGI} = CGI:777-007-23-7777
801cid LAC:42 -> cgi 777-007-42-7777 LAC -> cid LAC:42
802 --> gsm0808_cell_id{LAC} = LAC:42
803 --> gsm0808_cell_id{CI} = CI:7777
804 --> gsm0808_cell_id{LAC-CI} = LAC-CI:42-7777
805 --> gsm0808_cell_id{LAI} = LAI:777-007-42
806 --> gsm0808_cell_id{CGI} = CGI:777-007-42-7777
807cid CI:5 -> cgi 777-007-7777-5 CI -> cid CI:5
808 --> gsm0808_cell_id{LAC} = LAC:7777
809 --> gsm0808_cell_id{CI} = CI:5
810 --> gsm0808_cell_id{LAC-CI} = LAC-CI:7777-5
811 --> gsm0808_cell_id{LAI} = LAI:777-007-7777
812 --> gsm0808_cell_id{CGI} = CGI:777-007-7777-5
813cid CI:6 -> cgi 777-007-7777-6 CI -> cid CI:6
814 --> gsm0808_cell_id{LAC} = LAC:7777
815 --> gsm0808_cell_id{CI} = CI:6
816 --> gsm0808_cell_id{LAC-CI} = LAC-CI:7777-6
817 --> gsm0808_cell_id{LAI} = LAI:777-007-7777
818 --> gsm0808_cell_id{CGI} = CGI:777-007-7777-6
819cid LAC-CI:23-5 -> cgi 777-007-23-5 LAC CI -> cid LAC-CI:23-5
820 --> gsm0808_cell_id{LAC} = LAC:23
821 --> gsm0808_cell_id{CI} = CI:5
822 --> gsm0808_cell_id{LAC-CI} = LAC-CI:23-5
823 --> gsm0808_cell_id{LAI} = LAI:777-007-23
824 --> gsm0808_cell_id{CGI} = CGI:777-007-23-5
825cid LAC-CI:42-6 -> cgi 777-007-42-6 LAC CI -> cid LAC-CI:42-6
826 --> gsm0808_cell_id{LAC} = LAC:42
827 --> gsm0808_cell_id{CI} = CI:6
828 --> gsm0808_cell_id{LAC-CI} = LAC-CI:42-6
829 --> gsm0808_cell_id{LAI} = LAI:777-007-42
830 --> gsm0808_cell_id{CGI} = CGI:777-007-42-6
831cid LAI:023-042-23 -> cgi 023-042-23-7777 PLMN LAC -> cid LAI:023-042-23
832 --> gsm0808_cell_id{LAC} = LAC:23
833 --> gsm0808_cell_id{CI} = CI:7777
834 --> gsm0808_cell_id{LAC-CI} = LAC-CI:23-7777
835 --> gsm0808_cell_id{LAI} = LAI:023-042-23
836 --> gsm0808_cell_id{CGI} = CGI:023-042-23-7777
837cid LAI:023-042-42 -> cgi 023-042-42-7777 PLMN LAC -> cid LAI:023-042-42
838 --> gsm0808_cell_id{LAC} = LAC:42
839 --> gsm0808_cell_id{CI} = CI:7777
840 --> gsm0808_cell_id{LAC-CI} = LAC-CI:42-7777
841 --> gsm0808_cell_id{LAI} = LAI:023-042-42
842 --> gsm0808_cell_id{CGI} = CGI:023-042-42-7777
843cid LAI:023-99-23 -> cgi 023-99-23-7777 PLMN LAC -> cid LAI:023-99-23
844 --> gsm0808_cell_id{LAC} = LAC:23
845 --> gsm0808_cell_id{CI} = CI:7777
846 --> gsm0808_cell_id{LAC-CI} = LAC-CI:23-7777
847 --> gsm0808_cell_id{LAI} = LAI:023-99-23
848 --> gsm0808_cell_id{CGI} = CGI:023-99-23-7777
849cid LAI:023-42-23 -> cgi 023-42-23-7777 PLMN LAC -> cid LAI:023-42-23
850 --> gsm0808_cell_id{LAC} = LAC:23
851 --> gsm0808_cell_id{CI} = CI:7777
852 --> gsm0808_cell_id{LAC-CI} = LAC-CI:23-7777
853 --> gsm0808_cell_id{LAI} = LAI:023-42-23
854 --> gsm0808_cell_id{CGI} = CGI:023-42-23-7777
855cid CGI:023-042-23-5 -> cgi 023-042-23-5 PLMN LAC CI -> cid CGI:023-042-23-5
856 --> gsm0808_cell_id{LAC} = LAC:23
857 --> gsm0808_cell_id{CI} = CI:5
858 --> gsm0808_cell_id{LAC-CI} = LAC-CI:23-5
859 --> gsm0808_cell_id{LAI} = LAI:023-042-23
860 --> gsm0808_cell_id{CGI} = CGI:023-042-23-5
861cid CGI:023-042-42-6 -> cgi 023-042-42-6 PLMN LAC CI -> cid CGI:023-042-42-6
862 --> gsm0808_cell_id{LAC} = LAC:42
863 --> gsm0808_cell_id{CI} = CI:6
864 --> gsm0808_cell_id{LAC-CI} = LAC-CI:42-6
865 --> gsm0808_cell_id{LAI} = LAI:023-042-42
866 --> gsm0808_cell_id{CGI} = CGI:023-042-42-6
867cid CGI:023-99-23-5 -> cgi 023-99-23-5 PLMN LAC CI -> cid CGI:023-99-23-5
868 --> gsm0808_cell_id{LAC} = LAC:23
869 --> gsm0808_cell_id{CI} = CI:5
870 --> gsm0808_cell_id{LAC-CI} = LAC-CI:23-5
871 --> gsm0808_cell_id{LAI} = LAI:023-99-23
872 --> gsm0808_cell_id{CGI} = CGI:023-99-23-5
873cid NO-CELL:NO-CELL -> cgi 777-007-7777-7777 -> cid NO-CELL:NO-CELL
874 --> gsm0808_cell_id{LAC} = LAC:7777
875 --> gsm0808_cell_id{CI} = CI:7777
876 --> gsm0808_cell_id{LAC-CI} = LAC-CI:7777-7777
877 --> gsm0808_cell_id{LAI} = LAI:777-007-7777
878 --> gsm0808_cell_id{CGI} = CGI:777-007-7777-7777
879cid unknown 0x1a7:unknown 0x1a7 -> cgi 777-007-7777-7777 -> cid unknown 0x1a7:unknown 0x1a7
880 --> gsm0808_cell_id{LAC} = LAC:7777
881 --> gsm0808_cell_id{CI} = CI:7777
882 --> gsm0808_cell_id{LAC-CI} = LAC-CI:7777-7777
883 --> gsm0808_cell_id{LAI} = LAI:777-007-7777
884 --> gsm0808_cell_id{CGI} = CGI:777-007-7777-7777
Holger Hans Peter Freyther97510812012-01-22 13:36:52 +0100885Done