blob: a55f5dad7d649280042d04b91a2a0400f33aa9d1 [file] [log] [blame]
Harald Weltef7c2b202020-03-29 17:34:11 +02001module BSSLAP_Types {
2
3/* BSSLAP_Types, defining abstract TTCN-3 data types for the 3GPP BSSLAP protocol.
4 *
5 * BSSLAP is a 3GPP standard protocol used between BSC and SMLC in a GSM network.
6 * This file covers 3GPP TS 48.071 version 15.0.0 Release 15
7 *
8 * (C) 2020 by Harald Welte <laforge@gnumonks.org>
9 * All rights reserved.
10 *
11 * Released under the terms of GNU General Public License, Version 2 or
12 * (at your option) any later version.
13 *
14 * SPDX-License-Identifier: GPL-2.0-or-later
15 */
16
17import from General_Types all;
18import from Osmocom_Types all;
19
20
21/* 3GPP TS 48.071 Table 5.1 */
22type enumerated BSSLAP_IEI {
23 BSSLAP_IEI_TA ('00000001'B),
24 BSSLAP_IEI_CELL_ID ('00001001'B),
25 BSSLAP_IEI_CHAN_DESC ('00010000'B),
26 BSSLAP_IEI_MEAS_REP ('00010100'B),
27 BSSLAP_IEI_CAUSE ('00011000'B),
28 BSSLAP_IEI_RRLP_FLAG ('00011001'B),
29 BSSLAP_IEI_RRLP ('00011011'B),
30 BSSLAP_IEI_CELL_ID_LIST ('00011100'B),
31 BSSLAP_IEI_ENH_MEAS_REP ('00011101'B),
32 BSSLAP_IEI_LAC ('00011110'B),
33 BSSLAP_IEI_FREQ_LIST ('00100001'B),
34 BSSLAP_IEI_MS_POWER ('00100010'B),
35 BSSLAP_IEI_DELTA_TIMER ('00100011'B),
36 BSSLAP_IEI_SERVING_CELL_ID ('00100100'B),
37 BSSLAP_IEI_ENCR_KEY ('00100101'B),
38 BSSLAP_IEI_CIPH_MODE_SET ('00100110'B),
39 BSSLAP_IEI_CHAN_MODE ('00100111'B),
40 BSSLAP_IEI_MR_CONFIG ('00101000'B),
41 BSSLAP_IEI_POLLING_REPETITION ('00101001'B),
42 BSSLAP_IEI_PACKET_CHAN_DESC ('00101010'B),
43 BSSLAP_IEI_TLLI ('00101011'B),
44 BSSLAP_IEI_TFI ('00101100'B),
45 BSSLAP_IEI_TBF_START_TIME ('00101101'B),
46 BSSLAP_IEI_PWRUP_START_TIME ('00101110'B),
47 BSSLAP_IEI_LONG_ENCR_KEY ('00101111'B),
48 BSSLAP_IEI_CONCUR_POS_PROC_F ('00110000'B)
49} with { variant "FIELDLENGTH(8)" };
50
51/* 3GPP TS 48.071 Section 5.1 */
52type enumerated BSSLAP_MsgType {
53 BSSLAP_MSGT_TA_REQUEST ('00000001'B),
54 BSSLAP_MSGT_TA_RESPONSE ('00000010'B),
55 BSSLAP_MSGT_REJECT ('00001010'B),
56 BSSLAP_MSGT_RESET ('00001011'B),
57 BSSLAP_MSGT_ABORT ('00001100'B),
58 BSSLAP_MSGT_TA_LAYER3 ('00001101'B),
59 BSSLAP_MSGT_MS_POS_CMD ('00001111'B),
60 BSSLAP_MSGT_MS_POS_RESP ('00010000'B),
61 BSSLAP_MSGT_UTDOA_REQ ('00010001'B),
62 BSSLAP_MSGT_UTDOA_RESP ('00010010'B)
63} with { variant "FIELDLENGTH(8)" };
64
65
66/* Section 4.2.1 */
67type record BSSLAP_TaRequest {
68 BSSLAP_MsgType msg_type
69};
70
71/* Section 4.2.2 */
72type record BSSLAP_TaResponse {
73 BSSLAP_MsgType msg_type,
74 BSSLAP_IE_CellId serving_cell_id,
75 BSSLAP_IE_TimingAdvance timing_advance,
76 BSSLAP_IE_MeasRep meas_rep optional,
77 BSSLAP_IE_EnhMeasRep enh_meas_rep optional,
78 BSSLAP_IE_CellIdList meas_cell_id_list optional,
79 BSSLAP_IE_ConcurMethodF concur_meth_flag optional
80};
81
82/* Section 4.2.5 */
83type record BSSLAP_Reject {
84 BSSLAP_MsgType msg_type,
85 BSSLAP_IE_Cause cause
86};
87
88/* Section 4.2.6 */
89type record BSSLAP_Reset {
90 BSSLAP_MsgType msg_type,
91 BSSLAP_IE_CellId cell_id,
92 BSSLAP_IE_TimingAdvance timing_advance,
93 BSSLAP_IE_ChanDesc chan_desc,
94 BSSLAP_IE_Cause cause,
95 BSSLAP_IE_MeasRep meas_rep optional,
96 BSSLAP_IE_EnhMeasRep enh_meas_rep optional,
97 BSSLAP_IE_CellIdList meas_cell_id_list optional,
98 BSSLAP_IE_LAC lac optional,
99 BSSLAP_IE_FreqList freq_list optional,
100 BSSLAP_IE_ChanMode chan_mode optional,
101 BSSLAP_IE_MultiRateConfig mr_config optional,
102 BSSLAP_IE_PacketChanDesc pkt_chan_desc optional,
103 BSSLAP_IE_TLLI tlli optional,
104 BSSLAP_IE_TFI tfi optional,
105 BSSLAP_IE_StartingTime tbf_start_time optional,
106 BSSLAP_IE_EncryptionKey encr_key optional,
107 BSSLAP_IE_CiphModeSet ciph_mode_set optional,
108 BSSLAP_IE_LongEncryptionKey long_encr_key optional
109};
110
111/* Section 4.2.7 */
112type record BSSLAP_Abort {
113 BSSLAP_MsgType msg_type,
114 BSSLAP_IE_Cause cause
115};
116
117/* Section 4.2.8 */
118type record BSSLAP_TA_Layer3 {
119 BSSLAP_MsgType msg_type,
120 BSSLAP_IE_TimingAdvance timing_advance,
121 BSSLAP_IE_MeasRep meas_rep optional,
122 BSSLAP_IE_EnhMeasRep enh_meas_rep optional,
123 BSSLAP_IE_CellIdList meas_cell_id_list optional
124};
125
126/* Section 4.2.9 */
127type record BSSLAP_MS_PosCmd {
128 BSSLAP_MsgType msg_type,
129 BSSLAP_IE_RrlpFlag flag,
130 BSSLAP_IE_Rrlp rrlp_info
131};
132
133/* Section 4.2.10 */
134type record BSSLAP_MS_PosResp {
135 BSSLAP_MsgType msg_type,
136 BSSLAP_IE_RrlpFlag flag,
137 BSSLAP_IE_Rrlp rrlp_info,
138 BSSLAP_IE_TimingAdvance timing_advance optional,
139 BSSLAP_IE_MeasRep meas_rep optional,
140 BSSLAP_IE_EnhMeasRep enh_meas_rep optional,
141 BSSLAP_IE_CellIdList meas_cell_id_list optional,
142 BSSLAP_IE_ConcurMethodF concur_meth_flag optional
143};
144
145/* Section 4.2.11 */
146type record BSSLAP_UTDOA_Req {
147 BSSLAP_MsgType msg_type,
148 BSSLAP_IE_DeltaTimer delta_timer optional,
149 BSSLAP_IE_PollingRep polling_repetition optional
150};
151
152type union BSSLAP_PDU {
153 BSSLAP_TaRequest ta_req,
154 BSSLAP_TaResponse ta_resp,
155 BSSLAP_Reject reject,
156 BSSLAP_Reset reset,
157 BSSLAP_Abort abort,
158 BSSLAP_TA_Layer3 ta_layer3,
159 BSSLAP_MS_PosCmd ms_pos_cmd,
160 BSSLAP_MS_PosResp ms_pos_resp,
161 BSSLAP_UTDOA_Req utdoa_req
162 // TODO: U-TDOA Resp
163} with { variant "TAG(
164 ta_req, msg_type = BSSLAP_MSGT_TA_REQUEST;
165 ta_resp, msg_type = BSSLAP_MSGT_TA_RESPONSE;
166 reject, msg_type = BSSLAP_MSGT_REJECT;
167 reset, msg_type = BSSLAP_MSGT_RESET;
168 abort, msg_type = BSSLAP_MSGT_ABORT;
169 ta_layer3, msg_type = BSSLAP_MSGT_TA_LAYER3;
170 ms_pos_cmd, msg_type = BSSLAP_MSGT_MS_POS_CMD;
171 ms_pos_resp, msg_type = BSSLAP_MSGT_MS_POS_RESP;
172 utdoa_req, msg_type = BSSLAP_MSGT_UTDOA_REQ;
173 )"
174};
175
176
177/* Section 5.2 */
178type record BSSLAP_IE_TimingAdvance {
179 BSSLAP_IEI iei,
180 uint8_t ta
181} with { variant "PRESENCE(iei = BSSLAP_IEI_TA)" };
182
183
184/* Section 5.4 */
185type record BSSLAP_IE_CellId {
186 BSSLAP_IEI iei,
187 uint16_t cell_id
188} with { variant "PRESENCE(iei = BSSLAP_IEI_CELL_ID)" };
189
190/* Section 5.8 */
191type record BSSLAP_IE_ChanDesc {
192 BSSLAP_IEI iei,
193 OCT3 chan_desc
194} with { variant "PRESENCE(iei = BSSLAP_IEI_CHAN_DESC)" };
195
196
197/* Section 5.12 */
198type record BSSLAP_IE_MeasRep {
199 BSSLAP_IEI iei,
200 uint8_t len,
201 octetstring meas_rep
202} with {
203 variant "PRESENCE(iei = BSSLAP_IEI_MEAS_REP)"
204 variant (len) "LENGTHTO(meas_rep)"
205};
206
207/* Section 5.14 */
208type record BSSLAP_IE_Cause {
209 BSSLAP_IEI iei,
210 BSSLAP_Cause cause
211} with { variant "PRESENCE(iei = BSSLAP_IEI_CAUSE)" };
212type enumerated BSSLAP_Cause {
213 BSSLAP_CAUSE_CONGESTION ('00000000'B),
214 BSSLAP_CAUSE_CHAN_MODE_NOT_SUPP ('00000001'B),
215 BSSLAP_CAUSE_POS_PROC_NOT_SUPP ('00000010'B),
216 BSSLAP_CAUSE_OTHER_RADIO_EVT_FAIL ('00000011'B),
217 BSSLAP_CAUSE_INTRA_BSS_HO ('00000100'B),
218 BSSLAP_CAUSE_SUPERV_TIMER_EXPIRED ('00000101'B),
219 BSSLAP_CAUSE_INTER_BSS_HO ('00000110'B),
220 BSSLAP_CAUSE_LOSS_SIG_CONN_MS ('00000111'B),
221 BSSLAP_CAUSE_INCORR_SERV_CELL_ID ('00001000'B),
222 BSSLAP_CAUSE_BSSAP_LE_SEGMENT_ERR ('00001001'B),
223 BSSLAP_CAUSE_CONCUR_POS_PROC_NOT_EN ('00001010'B)
224};
225
226/* Section 5.15 */
227type record BSSLAP_IE_RrlpFlag {
228 BSSLAP_IEI iei,
229 BIT7 spare,
230 boolean not_a_pos_cmd
231} with { variant "PRESENCE(iei = BSSLAP_IEI_RRLP_FLAG)" };
232
233/* Section 5.16 */
234type record BSSLAP_IE_Rrlp {
235 BSSLAP_IEI iei,
236 uint16_t len,
237 octetstring rrlp_apdu
238} with {
239 variant "PRESENCE(iei = BSSLAP_IEI_RRLP)"
240 variant (len) "LENGTHTO(rrlp_apdu)"
241};
242
243/* Section 5.17 */
244type record BSSLAP_IE_CellIdList {
245 BSSLAP_IEI iei,
246 uint8_t len,
247 BSSLAP_CellIdList cell_id_list
248} with {
249 variant "PRESENCE(iei = BSSLAP_IEI_CELL_ID_LIST)"
250 variant (len) "LENGTHTO(cell_id_list)"
251};
252type record of BSSLAP_CellIdListEnt BSSLAP_CellIdList;
253type union BSSLAP_CellIdListEnt {
254 BIT4 spare,
255 BSSLAP_CellIdDiscr discr,
256 BSSLAP_CellIdListEntU u
257}// with {
258//};
259type enumerated BSSLAP_CellIdDiscr {
260 BSSLAP_CIDL_DISC_CGI ('0000'B),
261 BSSLAP_CIDL_DISC_LAC_CI ('0001'B),
262 BSSLAP_CIDL_DISC_3G_1 ('0010'B),
263 BSSLAP_CIDL_DISC_3G_2 ('0011'B)
264} with { variant "FIELDLENGTH(4)" };
265type union BSSLAP_CellIdListEntU {
266 BSSLAP_CellIdListEntCGI cgi,
267 BSSLAP_CellIdListEntLACCI lac_ci,
268 BSSLAP_CellIdListEnt3G1 umts_cont1,
269 BSSLAP_CellIdListEnt3G2 umts_cont2
270};
271type record BSSLAP_CellIdListEntCGI {
272 HEX6n mcc_mnc,
273 uint16_t lac,
274 uint16_t ci
275};
276type record BSSLAP_CellIdListEntLACCI {
277 uint16_t lac,
278 uint16_t ci
279};
280type record BSSLAP_CellIdListEnt3G1 {
281 OCT9 cont
282};
283type record BSSLAP_CellIdListEnt3G2 {
284 OCT6 cont
285};
286
287/* Section 5.18 */
288type record BSSLAP_IE_EnhMeasRep {
289 BSSLAP_IEI iei,
290 uint8_t len,
291 octetstring meas_rep
292} with {
293 variant "PRESENCE(iei = BSSLAP_IEI_ENH_MEAS_REP)"
294 variant (len) "LENGTHTO(meas_rep)"
295};
296
297/* Section 5.19 */
298type record BSSLAP_IE_LAC {
299 BSSLAP_IEI iei,
300 uint16_t lac
301} with { variant "PRESENCE(iei = BSSLAP_IEI_LAC)" };
302
303/* Section 5.20 */
304type record BSSLAP_IE_FreqList {
305 BSSLAP_IEI iei,
306 uint8_t len,
307 octetstring freq_list
308} with {
309 variant "PRESENCE(iei = BSSLAP_IEI_FREQ_LIST)"
310 variant (len) "LENGTHTO(freq_list)"
311};
312
313/* Section 5.21 */
314type record BSSLAP_IE_MsPower {
315 BSSLAP_IEI iei,
316 uint8_t ms_pwr
317} with { variant "PRESENCE(iei = BSSLAP_IEI_MS_POWER)" };
318
319/* Section 5.22 */
320type record BSSLAP_IE_DeltaTimer {
321 BSSLAP_IEI iei,
322 uint8_t timer_val
323} with { variant "PRESENCE(iei = BSSLAP_IEI_MS_POWER)" };
324
325/* Section 5.23 */
326type record BSSLAP_IE_ServingCellId {
327 BSSLAP_IEI iei,
328 uint8_t len,
329 octetstring val // FIXME: like TS 08.08
330} with {
331 variant "PRESENCE(iei = BSSLAP_IEI_SERVING_CELL_ID)"
332 variant (len) "LENGTHTO(val)"
333};
334
335/* Section 5.24 */
336type record BSSLAP_IE_EncryptionKey {
337 BSSLAP_IEI iei,
338 OCT8 kc
339} with { variant "PRESENCE(iei = BSSLAP_IEI_ENCR_KEY)" };
340
341/* Section 5.25 */
342type record BSSLAP_IE_CiphModeSet {
343 BSSLAP_IEI iei,
344 BIT1 spare,
345 BIT3 iei2,
346 BIT3 algo_id,
347 boolean sc
348} with { variant "PRESENCE(iei = BSSLAP_IEI_CIPH_MODE_SET)" };
349
350/* Section 5.26 */
351type record BSSLAP_IE_ChanMode {
352 BSSLAP_IEI iei,
353 OCT1 mode
354} with { variant "PRESENCE(iei = BSSLAP_IEI_CHAN_MODE)" };
355
356/* Section 5.27 */
357type record BSSLAP_IE_MultiRateConfig {
358 BSSLAP_IEI iei,
359 uint8_t len,
360 /* TODO: Unify with TS 48.018 */
361 uint3_t mr_speech_ver,
362 boolean nscb,
363 boolean icmi,
364 BIT1 spare,
365 uint2_t start_mode,
366 octetstring parameters
367} with {
368 variant "PRESENCE(iei = BSSLAP_IEI_MR_CONFIG)"
369 variant (len) "LENGTHTO(mr_speech_ver,nscb,icmi,spare,start_mode,parameters)"
370};
371
372/* Section 5.28 */
373type record BSSLAP_IE_PollingRep {
374 BSSLAP_IEI iei,
375 BIT2 spare,
376 uint6_t num_rep
377} with { variant "PRESENCE(iei = BSSLAP_IEI_MR_CONFIG)" };
378
379/* Section 5.29 */
380type record BSSLAP_IE_PacketChanDesc {
381 BSSLAP_IEI iei,
382 OCT4 chan_desc
383} with { variant "PRESENCE(iei = BSSLAP_IEI_PACKET_CHAN_DESC)" };
384
385/* Section 5.30 */
386type record BSSLAP_IE_TLLI {
387 BSSLAP_IEI iei,
388 OCT4 tlli
389} with { variant "PRESENCE(iei = BSSLAP_IEI_TLLI)" };
390
391/* Section 5.31 */
392type record BSSLAP_IE_TFI {
393 BSSLAP_IEI iei,
394 BIT3 spare,
395 uint5_t tfi
396} with { variant "PRESENCE(iei = BSSLAP_IEI_TFI)" };
397
398/* Section 5.32 */
399type record BSSLAP_IE_StartingTime {
400 BSSLAP_IEI iei,
401 uint5_t t1_p,
402 uint6_t t3,
403 uint6_t t2
404} with { variant "PRESENCE(iei = BSSLAP_IEI_TBF_START_TIME)" };
405
406/* Section 5.33 */
407type record BSSLAP_IE_LongEncryptionKey {
408 BSSLAP_IEI iei,
409 OCT16 kc
410} with { variant "PRESENCE(iei = BSSLAP_IEI_LONG_ENCR_KEY)" };
411
412/* Section 5.34 */
413type record BSSLAP_IE_ConcurMethodF {
414 BSSLAP_IEI iei,
415 BSSLAP_ConcurMethodF flag
416} with { variant "PRESENCE(iei = BSSLAP_IEI_CONCUR_POS_PROC_F)" };
417type enumerated BSSLAP_ConcurMethodF {
418 BSSLAP_SECOND_CONCUR_ALLOWED ('00000000'B),
419 BSSLAP_SECOND_CONCUR_DISALLOWED ('11111111'B)
420} with { variant "FIELDLENGTH(8)" };
421
422
423
424external function enc_BSSLAP_PDU(in BSSLAP_PDU msg) return octetstring
425 with { extension "prototype(convert) encode(RAW)" };
426external function dec_BSSLAP_PDU(in octetstring stream) return BSSLAP_PDU
427 with { extension "prototype(convert) decode(RAW)" };
428
429template (value) BSSLAP_PDU ts_BSSLAP_TA_Req := {
430 ta_req := {
431 msg_type := BSSLAP_MSGT_TA_REQUEST
432 }
433}
434template (present) BSSLAP_PDU tr_BSSLAP_TA_Req := {
435 ta_req := {
436 msg_type := BSSLAP_MSGT_TA_REQUEST
437 }
438}
439
440template (value) BSSLAP_PDU
441ts_BSSLAP_TA_Resp(uint16_t cell_id, uint8_t ta) := {
442 ta_resp := {
443 msg_type := BSSLAP_MSGT_TA_RESPONSE,
444 serving_cell_id := ts_BSSLAP_IE_CellId(cell_id),
445 timing_advance := ts_BSSLAP_IE_TA(ta),
446 meas_rep := omit,
447 enh_meas_rep := omit,
448 meas_cell_id_list := omit,
449 concur_meth_flag := omit
450 }
451}
452template (present) BSSLAP_PDU
453tr_BSSLAP_TA_Resp(template (present) uint16_t cell_id, template (present) uint8_t ta) := {
454 ta_resp := {
455 msg_type := BSSLAP_MSGT_TA_RESPONSE,
456 serving_cell_id := tr_BSSLAP_IE_CellId(cell_id),
457 timing_advance := tr_BSSLAP_IE_TA(ta),
458 meas_rep := *,
459 enh_meas_rep := *,
460 meas_cell_id_list := *,
461 concur_meth_flag := *
462 }
463}
464
465template (value) BSSLAP_PDU
466ts_BSSLAP_Reject(BSSLAP_Cause cause) := {
467 reject := {
468 msg_type := BSSLAP_MSGT_REJECT,
469 cause := ts_BSSLAP_IE_Cause(cause)
470 }
471}
472template (present) BSSLAP_PDU
473tr_BSSLAP_Reject(template (present) BSSLAP_Cause cause) := {
474 reject := {
475 msg_type := BSSLAP_MSGT_REJECT,
476 cause := tr_BSSLAP_IE_Cause(cause)
477 }
478}
479
480
481template (value) BSSLAP_PDU
482ts_BSSLAP_Abort(BSSLAP_Cause cause) := {
483 abort := {
484 msg_type := BSSLAP_MSGT_ABORT,
485 cause := ts_BSSLAP_IE_Cause(cause)
486 }
487}
488template (present) BSSLAP_PDU
489tr_BSSLAP_Abort(template (present) BSSLAP_Cause cause) := {
490 abort := {
491 msg_type := BSSLAP_MSGT_ABORT,
492 cause := tr_BSSLAP_IE_Cause(cause)
493 }
494}
495
Neels Hofmeyr0d774652020-10-01 06:37:19 +0200496template (value) BSSLAP_PDU ts_BSSLAP_TA_Layer3(uint8_t ta) := {
497 ta_layer3 := {
498 msg_type := BSSLAP_MSGT_TA_LAYER3,
499 timing_advance := ts_BSSLAP_IE_TA(ta),
500 meas_rep := omit,
501 enh_meas_rep := omit,
502 meas_cell_id_list := omit
503 }
504}
Harald Weltef7c2b202020-03-29 17:34:11 +0200505
Neels Hofmeyr0d774652020-10-01 06:37:19 +0200506template (present) BSSLAP_PDU tr_BSSLAP_TA_Layer3(template BSSLAP_IE_TimingAdvance timing_advance := *) := {
507 ta_layer3 := {
508 msg_type := BSSLAP_MSGT_TA_LAYER3,
509 timing_advance := timing_advance,
510 meas_rep := *,
511 enh_meas_rep := *,
512 meas_cell_id_list := *
513 }
514}
515
516template (value) BSSLAP_IE_ChanDesc ts_BSSLAP_IE_ChanDesc := {
517 iei := BSSLAP_IEI_CHAN_DESC,
518 chan_desc := '112233'O /* FIXME */
519}
520
521template (value) BSSLAP_PDU
522ts_BSSLAP_Reset(uint16_t cell_id,
523 uint8_t ta,
524 BSSLAP_IE_ChanDesc chan_desc,
525 BSSLAP_Cause cause) := {
526 reset := {
527 msg_type := BSSLAP_MSGT_RESET,
528 cell_id := ts_BSSLAP_IE_CellId(cell_id),
529 timing_advance := ts_BSSLAP_IE_TA(ta),
530 chan_desc := chan_desc,
Vadim Yanitskiy9e55abd2022-03-16 20:25:35 +0300531 cause := ts_BSSLAP_IE_Cause(cause),
Neels Hofmeyr0d774652020-10-01 06:37:19 +0200532 meas_rep := omit,
533 enh_meas_rep := omit,
534 meas_cell_id_list := omit,
535 lac := omit,
536 freq_list := omit,
537 chan_mode := omit,
538 mr_config := omit,
539 pkt_chan_desc := omit,
540 tlli := omit,
541 tfi := omit,
542 tbf_start_time := omit,
543 encr_key := omit,
544 ciph_mode_set := omit,
545 long_encr_key := omit
546 }
547}
548
549template (present) BSSLAP_PDU
550tr_BSSLAP_Reset(template (present) BSSLAP_Cause cause) := {
551 reset := {
552 msg_type := BSSLAP_MSGT_RESET,
553 cell_id := ?,
554 timing_advance := ?,
555 chan_desc := ?,
556 cause := tr_BSSLAP_IE_Cause(cause),
557 meas_rep := *,
558 enh_meas_rep := *,
559 meas_cell_id_list := *,
560 lac := *,
561 freq_list := *,
562 chan_mode := *,
563 mr_config := *,
564 pkt_chan_desc := *,
565 tlli := *,
566 tfi := *,
567 tbf_start_time := *,
568 encr_key := *,
569 ciph_mode_set := *,
570 long_encr_key := *
571 }
572}
Harald Weltef7c2b202020-03-29 17:34:11 +0200573
574template (value) BSSLAP_IE_TimingAdvance ts_BSSLAP_IE_TA(uint8_t ta) := {
575 iei := BSSLAP_IEI_TA,
576 ta := ta
577}
578template (present) BSSLAP_IE_TimingAdvance tr_BSSLAP_IE_TA(template (present) uint8_t ta) := {
579 iei := BSSLAP_IEI_TA,
580 ta := ta
581}
582
583template (value) BSSLAP_IE_CellId ts_BSSLAP_IE_CellId(uint16_t cell_id) := {
584 iei := BSSLAP_IEI_CELL_ID,
585 cell_id := cell_id
586}
587template (present) BSSLAP_IE_CellId tr_BSSLAP_IE_CellId(template (present) uint16_t cell_id) := {
588 iei := BSSLAP_IEI_CELL_ID,
589 cell_id := cell_id
590}
591
592template (value) BSSLAP_IE_Cause ts_BSSLAP_IE_Cause(BSSLAP_Cause cause) := {
593 iei := BSSLAP_IEI_CAUSE,
594 cause := cause
595}
596template (present) BSSLAP_IE_Cause tr_BSSLAP_IE_Cause(template (present) BSSLAP_Cause cause) := {
597 iei := BSSLAP_IEI_CAUSE,
598 cause := cause
599}
600
601
602
603
604
605
606} with { encode "RAW" };