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)" };
