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