library: move IA/IAR Rest Octets to GSM_RestOctets.ttcn
Change-Id: Icd96fc461e37d1346950a4fa158e0421bd7330c5
diff --git a/library/GSM_RR_Types.ttcn b/library/GSM_RR_Types.ttcn
index 335e290..b62dcb9 100644
--- a/library/GSM_RR_Types.ttcn
+++ b/library/GSM_RR_Types.ttcn
@@ -15,6 +15,7 @@
import from General_Types all;
import from Osmocom_Types all;
import from GSM_Types all;
+ import from GSM_RestOctets all;
import from RLCMAC_CSN1_Types all;
import from MobileL3_CommonIE_Types all;
import from MobileL3_RRM_Types all;
@@ -421,224 +422,6 @@
uint3_t non_drx_timer
} with { variant "" };
- /* 44.018 10.5.2.16 */
- type record IaRestOctHL {
- uint6_t freq_par_len,
- BIT2 padding ('00'B) optional,
- uint6_t maio optional,
- octetstring mobile_allocation optional
- } with {
- variant (freq_par_len) "LENGTHTO(mobile_allocation,maio,padding)"
-/*
- variant (padding) "PRESENCE(freq_par_len != 0)"
- variant (maio) "PRESENCE(freq_par_len != 0)"
- variant (mobile_allocation) "PRESENCE(freq_par_len != 0)"
-*/
- };
- type record SecondPartAssign {
- BIT1 r99, /* L / H */
- BIT1 presence optional,
- BIT5 ext_ra optional
- } with {
- variant (r99) "CSN.1 L/H"
- variant (presence) "PRESENCE(r99 = '1'B)" /* H */
- variant (ext_ra) "PRESENCE(presence = '1'B)"
- /* See https://bugs.eclipse.org/bugs/show_bug.cgi?id=562488 */
- variant (ext_ra) "BYTEORDER(last)" // FIXME: should be first
- };
- type union PacketUlDlAssignUnion {
- PacketUlAssign ul,
- PacketDlAssign dl
- };
- type record PacketUlDlAssign {
- BIT1 ass_disc,
- PacketUlDlAssignUnion ass
- } with {
- variant (ass) "CROSSTAG(dl, ass_disc = '1'B; ul, ass_disc = '0'B)"
- };
- type union PacketAssignUnion {
- SecondPartAssign spa,
- PacketUlDlAssign uldl
- };
- type record IaRestOctHH {
- /* Packet Assignment discriminator:
- * Packet Uplink / Downlink Assignment (0)
- * Second Part Packet Assignment (1) */
- BIT1 pa_disc,
- PacketAssignUnion pa
- } with {
- variant (pa) "CROSSTAG(spa, pa_disc = '1'B; uldl, pa_disc = '0'B)"
- };
- type record TbfStartingTime {
- uint5_t t1,
- uint6_t t3,
- uint5_t t2
- };
- type record PacketUlAssignDyn {
- uint5_t tfi_assignment,
- BIT1 polling,
- BIT1 spare ('0'B),
- uint3_t usf,
- BIT1 usf_granularity,
- BIT1 p0_present,
- uint4_t p0 optional,
- BIT1 pr_mode optional,
- ChCodingCommand ch_coding_cmd,
- BIT1 tlli_block_chan_coding,
- BIT1 alpha_present,
- uint4_t alpha optional,
- uint5_t gamma,
- BIT1 ta_index_present,
- uint4_t ta_index optional,
- BIT1 tbf_starting_time_present,
- TbfStartingTime tbf_starting_time optional
- } with {
- variant (p0) "PRESENCE(p0_present = '1'B)"
- variant (pr_mode) "PRESENCE(p0_present = '1'B)"
- variant (alpha) "PRESENCE(alpha_present = '1'B)"
- variant (ta_index) "PRESENCE(ta_index_present = '1'B)"
- variant (tbf_starting_time) "PRESENCE(tbf_starting_time_present = '1'B)"
- };
- type record PacketUlAssignSgl {
- BIT1 alpha_present,
- uint4_t alpha optional,
- uint5_t gamma,
- BIT2 padding ('01'B),
- TbfStartingTime tbf_starting_time
- /* TODO: P0 / PR_MODE */
- } with {
- variant (alpha) "PRESENCE(alpha_present = '1'B)"
- };
- type record PacketUlAssign {
- BIT1 presence,
- PacketUlAssignDyn dynamic optional,
- PacketUlAssignSgl single optional
- /* TODO: Estended RA, PFI */
- } with {
- variant (dynamic) "PRESENCE(presence = '1'B)"
- variant (single) "PRESENCE(presence = '0'B)"
- };
- type record PacketDlAssG1 {
- uint5_t tfi_assignment,
- BIT1 rlc_mode,
- BIT1 alpha_present,
- uint4_t alpha optional,
- uint5_t gamma,
- BIT1 polling,
- BIT1 ta_valid
- } with { variant "" };
- type record PacketDlAssign {
- GprsTlli tlli,
- BIT1 group1_present,
- PacketDlAssG1 group1 optional,
- BIT1 ta_index_present,
- uint4_t ta_index optional,
- BIT1 tbf_starting_time_present,
- TbfStartingTime tbf_starting_time optional,
- BIT1 p0_present,
- uint4_t p0 optional,
- BIT1 pr_mode optional
- /* TODO: EGPRS window size, etc. */
- } with {
- variant (group1) "PRESENCE(group1_present = '1'B)"
- variant (ta_index) "PRESENCE(ta_index_present = '1'B)"
- variant (tbf_starting_time) "PRESENCE(tbf_starting_time_present = '1'B)"
- variant (p0) "PRESENCE(p0_present = '1'B)"
- variant (pr_mode) "PRESENCE(p0_present = '1'B)"
- };
- type record IaRestOctLL {
- BIT1 compressed_irat_ho_info_ind
- } with {
- variant (compressed_irat_ho_info_ind) "CSN.1 L/H"
- };
- type record EgprsUlAssignDyn {
- uint5_t tfi_assignment,
- BIT1 polling,
- BIT1 spare ('0'B),
- uint3_t usf,
- BIT1 usf_granularity,
- BIT1 p0_present,
- uint4_t p0 optional,
- BIT1 pr_mode optional,
- EgprsChCodingCommand egprs_ch_coding_cmd,
- BIT1 tlli_block_chan_coding,
- BIT1 bep_period2_present,
- BIT4 bep_period2 optional,
- BIT1 resegment,
- EgprsWindowSize egprs_window_size,
- BIT1 alpha_present,
- uint4_t alpha optional,
- uint5_t gamma,
- BIT1 ta_index_present,
- uint4_t ta_index optional,
- BIT1 tbf_starting_time_present,
- TbfStartingTime tbf_starting_time optional
- /* TODO: Additions for Rel-7 */
- } with {
- variant (p0) "PRESENCE(p0_present = '1'B)"
- variant (pr_mode) "PRESENCE(p0_present = '1'B)"
- variant (bep_period2) "PRESENCE(bep_period2_present = '1'B)"
- variant (alpha) "PRESENCE(alpha_present = '1'B)"
- variant (ta_index) "PRESENCE(ta_index_present = '1'B)"
- variant (tbf_starting_time) "PRESENCE(tbf_starting_time_present = '1'B)"
- };
- type record EgprsUlAssignMultiblock {
- BIT1 alpha_present,
- uint4_t alpha optional,
- uint5_t gamma,
- TbfStartingTime tbf_starting_time,
- BIT2 nr_radio_blocks_allocated,
- BIT1 p0_present,
- uint4_t p0 optional,
- BIT1 spare ('0'B) optional,
- BIT1 pr_mode optional
- /* TDO: Additions for Rel-6 */
- } with {
- variant (alpha) "PRESENCE(alpha_present = '1'B)"
- variant (p0) "PRESENCE(p0_present = '1'B)"
- variant (spare) "PRESENCE(p0_present = '1'B)"
- variant (pr_mode) "PRESENCE(p0_present = '1'B)"
- };
- /* 3GPP TS 44.018 version 13.3.2 10.5.2.16, "EGPRS Packet Uplink Assignment" */
- type record EgprsUlAss {
- BIT5 ext_ra,
- BIT1 ats_present,
- AccessTechnologiesRequestRepetition ats optional,
- BIT1 presence,
- EgprsUlAssignDyn dynamic optional,
- EgprsUlAssignMultiblock multiblock optional
- } with {
- variant (ats) "PRESENCE(ats_present = '1'B)"
- variant (dynamic) "PRESENCE(presence = '1'B)"
- variant (multiblock) "PRESENCE(presence = '0'B)"
- /* See https://bugs.eclipse.org/bugs/show_bug.cgi?id=562488 */
- variant (ext_ra) "BYTEORDER(last)" // FIXME: should be first
- };
-
- type octetstring MblkDlAss; /* TODO */
- type record IaRestOctLH {
- BIT2 presence,
- EgprsUlAss egprs_ul optional,
- MblkDlAss multiblock_dl_ass optional
- } with {
- variant (egprs_ul) "PRESENCE(presence = '00'B)"
- variant (multiblock_dl_ass) "PRESENCE(presence = '01'B)"
- };
- type record IaRestOctets {
- BIT2 presence,
- IaRestOctLL ll optional,
- IaRestOctLH lh optional,
- IaRestOctHL hl optional,
- IaRestOctHH hh optional
- } with {
- variant (presence) "CSN.1 L/H"
- variant (ll) "PRESENCE(presence = '00'B)"
- variant (lh) "PRESENCE(presence = '01'B)"
- variant (hl) "PRESENCE(presence = '10'B)"
- variant (hh) "PRESENCE(presence = '11'B)"
- variant "PADDING(yes), PADDING_PATTERN('00101011'B)"
- };
-
type record MeasurementResults {
BIT1 ba_used,
BIT1 dtx_used,
@@ -744,34 +527,6 @@
IARRestOctets rest_octets
} with { variant "" };
- /* 10.5.2.17 IAR (Immediate Assignment Reject) Rest Octets */
- type record IARRestOctets {
- ExtRAList ext_ra_list,
- BIT1 rel13_ind, // L/H
- uint3_t rcc optional
- /* Addition in Rel-15: PEO IMM Cell Group Details struct */
- } with {
- variant (rel13_ind) "CSN.1 L/H"
- variant (rcc) "PRESENCE(rel13_ind = '1'B)"
-
- /* The TITAN's RAW encoder generates an octet-aligned octetstring,
- * so we should make sure that unused bits contain proper padding. */
- variant "PADDING(yes), PADDING_PATTERN('00101011'B)"
- };
-
- /* Optional extended RA: 0 | 1 < Extended RA 1 : bit (5) > */
- type record ExtRAOpt {
- BIT1 presence, // L/H
- BIT5 ext_ra optional
- } with {
- variant (presence) "CSN.1 L/H"
- variant (ext_ra) "PRESENCE(presence = '1'B)"
- /* See https://bugs.eclipse.org/bugs/show_bug.cgi?id=562488 */
- variant (ext_ra) "BYTEORDER(last)"
- };
-
- type record length(4) of ExtRAOpt ExtRAList;
-
/* 9.1.21 */
type record MeasurementReport {
MeasurementResults meas_res