diff --git a/library/GSM_RR_Types.ttcn b/library/GSM_RR_Types.ttcn index b62dcb926..160ae39c3 100644 --- a/library/GSM_RR_Types.ttcn +++ b/library/GSM_RR_Types.ttcn @@ -651,119 +651,6 @@ module GSM_RR_Types { with { extension "prototype(convert) decode(RAW)" }; - 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 (value) GsmRrMessage ts_IMM_ASS(uint8_t ra, GsmFrameNumber fn, TimingAdvance ta, ChannelDescription ch_desc, MobileAllocationLV ma) := { header := ts_RrHeader(IMMEDIATE_ASSIGNMENT, 0), @@ -929,18 +816,6 @@ module GSM_RR_Types { wait_ind := wi }; - 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 - }; - template (value) ChannelDescription ts_ChanDescH0(template (value) RslChannelNr chan_nr, template (value) uint12_t arfcn, template (value) uint3_t tsc := 7) := { diff --git a/library/GSM_RestOctets.ttcn b/library/GSM_RestOctets.ttcn index 5f99a85d9..6fa781cc1 100644 --- a/library/GSM_RestOctets.ttcn +++ b/library/GSM_RestOctets.ttcn @@ -281,6 +281,131 @@ type record ExtRAOpt { 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)" };