library/GSM_RR_Types: add IAR Rest Octets definition

See 3GPP TS 44.018, section 10.5.2.17 "IAR Rest Octets".

Change-Id: Ib1f16b310d6ca94f19a1700c78cb37e8b35ac570
diff --git a/library/GSM_RR_Types.ttcn b/library/GSM_RR_Types.ttcn
index 0fa6ec6..4bd65d1 100644
--- a/library/GSM_RR_Types.ttcn
+++ b/library/GSM_RR_Types.ttcn
@@ -652,9 +652,38 @@
 	type record ImmediateAssignmentReject {
 		FeatureIndicator		feature_ind,
 		PageMode			page_mode,
-		ReqRefWaitInd4			payload
+		ReqRefWaitInd4			payload,
+		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