library: move IA/IAR RO templates to GSM_RestOctets.ttcn

Change-Id: I3d3ad6228c44fd06620e8e97f08b24346f876972
diff --git a/library/GSM_RestOctets.ttcn b/library/GSM_RestOctets.ttcn
index 5f99a85..6fa781c 100644
--- a/library/GSM_RestOctets.ttcn
+++ b/library/GSM_RestOctets.ttcn
@@ -281,6 +281,131 @@
 	variant (ext_ra) "BYTEORDER(last)"
 };
 
+template PacketDlAssign tr_PacketDlAssign(template GprsTlli tlli) := {
+	tlli := tlli,
+	group1_present := ?,
+	group1 := *,
+	ta_index_present := ?,
+	ta_index := *,
+	tbf_starting_time_present := ?,
+	tbf_starting_time := *,
+	p0_present := ?,
+	p0 := *,
+	pr_mode := *
+};
+
+template IaRestOctets tr_IaRestOctets_DLAss(template PacketDlAssign dl_ass) := {
+	presence := '11'B, /* HH */
+	ll := omit, lh := omit, hl := omit,
+	hh := {
+		pa_disc := '0'B, /* Packet Assignment (0) */
+		pa := {
+			uldl := {
+				ass_disc := '1'B, /* Downlink Assignment (1) */
+				ass := { dl := dl_ass }
+			}
+		}
+	}
+};
+
+template PacketUlAssign tr_PacketUlDynAssign(template uint5_t tfi := ?,
+					     template BIT1 polling := ?,
+					     template uint3_t usf := ?,
+					     template BIT1 usf_granularity := ?,
+					     template ChCodingCommand cs := ?) := {
+	presence := '1'B, /* Dynamic Block Allocation */
+	dynamic := {
+		tfi_assignment := tfi,
+		polling := polling,
+		spare := '0'B, /* Dynamic Block Allocation (mandatory after Rel-4) */
+		usf := usf,
+		usf_granularity := usf_granularity,
+		p0_present := ?,
+		p0 := *,
+		pr_mode := *,
+		ch_coding_cmd := cs,
+		tlli_block_chan_coding := ?,
+		alpha_present := ?,
+		alpha := *,
+		gamma := ?,
+		/* TODO: add to parameters */
+		ta_index_present := ?,
+		ta_index := *,
+		tbf_starting_time_present := ?,
+		tbf_starting_time := *
+	},
+	single := omit
+};
+
+template PacketUlAssign tr_PacketUlSglAssign := {
+	presence := '0'B, /* Single Block Allocation */
+	dynamic := omit,
+	single := {
+		alpha_present := ?,
+		alpha := *,
+		gamma := ?,
+		padding := '01'B,
+		tbf_starting_time := ?
+	}
+};
+
+template IaRestOctets tr_IaRestOctets_ULAss(template PacketUlAssign ul_ass) := {
+	presence := '11'B, /* HH */
+	ll := omit, lh := omit, hl := omit,
+	hh := {
+		pa_disc := '0'B, /* Packet Assignment (0) */
+		pa := {
+			uldl := {
+				ass_disc := '0'B, /* Uplink Assignment (0) */
+				ass := { ul := ul_ass }
+			}
+		}
+	}
+};
+
+template EgprsUlAss tr_EgprsUlAssDynamic(template (present) BIT5 ext_ra := ?,
+					 template EgprsUlAssignDyn dyn_ass := ?) := {
+	ext_ra := ext_ra,
+	ats_present := ?,
+	ats := *,
+	presence := '1'B,
+	dynamic := dyn_ass,
+	multiblock := omit
+};
+template EgprsUlAss tr_EgprsUlAssMultiblock(template (present) BIT5 ext_ra := ?,
+					    template EgprsUlAssignMultiblock mb_ass := ?) := {
+	ext_ra := ext_ra,
+	ats_present := ?,
+	ats := *,
+	presence := '0'B,
+	dynamic := omit,
+	multiblock := mb_ass
+};
+
+template IaRestOctets tr_IaRestOctets_EGPRSULAss(template EgprsUlAss ul_ass) := {
+	presence := '01'B, /* LH */
+	ll := omit,
+	lh := {
+		presence := '00'B,
+		egprs_ul := ul_ass,
+		multiblock_dl_ass := omit
+	},
+	hl := omit,
+	hh := omit
+};
+
+template IARRestOctets tr_IARRestOctets(template ExtRAList ext_ra_list := ?,
+					template uint3_t rcc := ?) := {
+	ext_ra_list := ext_ra_list,
+	rel13_ind := ?,
+	rcc := rcc ifpresent
+};
+
+template ExtRAOpt tr_ExtRAOpt(template BIT5 ext_ra := ?) := {
+	presence := '1'B, // L/H
+	ext_ra := ext_ra
+};
+
 
 external function enc_IaRestOctets(in IaRestOctets ro) return octetstring
 	with { extension "prototype(convert) encode(RAW)" };