fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15410
Change subject: PCU_Tests_RAW.ttcn: introduce TC_ta_init_prach to test initial TA ...................................................................... PCU_Tests_RAW.ttcn: introduce TC_ta_init_prach to test initial TA Change-Id: I21f76ae723519c0eb54515922a05ca8045b00ade --- M library/GSM_RR_Types.ttcn M pcu/PCU_Tests_RAW.ttcn 2 files changed, 68 insertions(+), 1 deletion(-) git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/10/15410/1 diff --git a/library/GSM_RR_Types.ttcn b/library/GSM_RR_Types.ttcn index 457f0f5..987f808 100644 --- a/library/GSM_RR_Types.ttcn +++ b/library/GSM_RR_Types.ttcn @@ -589,7 +589,8 @@ /* TODO: starting time TLV */ IaRestOctets rest_octets optional } with { variant (chan_desc) "PRESENCE(ded_or_tbf.tbf = false)" - variant (pkt_chan_desc) "PRESENCE(ded_or_tbf.tbf = true)" }; + variant (pkt_chan_desc) "PRESENCE(ded_or_tbf.tbf = true)" + variant "PADDING(184), PADDING_PATTERN('00101011'B)" }; /* 9.1.20 */ type record ReqRefWaitInd { @@ -766,6 +767,31 @@ } }; + template GsmRrMessage tr_IMM_TBF_ASS(template boolean dl := ?, + template uint8_t ra := ?, + template GsmFrameNumber fn := ?, + template TimingAdvance ta := ?, + template PacketChannelDescription ch_desc := ?, + template IaRestOctets rest := ?) := { + header := t_RrHeader(IMMEDIATE_ASSIGNMENT, ?), + payload := { + imm_ass := { + ded_or_tbf := { + spare := ?, + tma := ?, + downlink := dl, + tbf := true + }, + page_mode := PAGE_MODE_NORMAL, + chan_desc := omit, + pkt_chan_desc := ch_desc, + req_ref := tr_compute_ReqRef(ra, fn), + timing_advance := ta, + mobile_allocation := ?, + rest_octets := rest + } + } + }; template (value) GsmRrL3Message ts_MEAS_REP(boolean valid, uint6_t rxl_f, uint6_t rxl_s, uint3_t rxq_f, uint3_t rxq_s, diff --git a/pcu/PCU_Tests_RAW.ttcn b/pcu/PCU_Tests_RAW.ttcn index 4732da6..03d914c 100644 --- a/pcu/PCU_Tests_RAW.ttcn +++ b/pcu/PCU_Tests_RAW.ttcn @@ -438,6 +438,44 @@ setverdict(pass); } +/* Test of correct Timing Advance at the time of TBF establishment + * (derived from timing offset during PRACH request). */ +testcase TC_ta_init_prach() runs on RAW_Test_CT { + /* Initialize NS codec + * TODO: do we really need it? */ + f_init_ns_codec(); + + /* Initialize PCU interface (emulate the BTS) */ + f_init_pcuif(); + + /* Packet Immediate Assignment on AGCH */ + var template PCUIF_Message data_req_tpl := tr_PCUIF_DATA_REQ( + bts_nr := 0, trx_nr := 0, ts_nr := 0, + sapi := PCU_IF_SAPI_AGCH); + + for (var integer ta := 0; ta < 64; ta := ta + 16) { + /* Send an Access Burst (8-bit) + * FIXME: properly encode RA, + * HACK: we're using the same TDMA FN */ + f_pcuif_tx(ts_PCUIF_RACH_IND(bts_nr := 0, ra := oct2int('3A'O), is_11bit := 0, + burst_type := BURST_TYPE_0, + fn := 1337, arfcn := 871, + qta := ta * 4)); + + /* Expect Immediate (TBF) Assignment on TS0/AGCH */ + data_req_tpl.u.data_req.data := decmatch tr_IMM_TBF_ASS( + dl := false, ra := oct2int('3A'O), fn := 1337, ta := ta); + alt { + [] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, data_req_tpl)) { + log("Rx Immediate Assignment for UL TBF"); + setverdict(pass); + } + [] PCU.receive(t_SD_PCUIF(g_pcu_conn_id, PCUIF_Message:?)) { + repeat; + } + } + } +} control { execute( TC_ns_reset() ); @@ -450,6 +488,9 @@ execute( TC_ns_so_block() ); execute( TC_pcuif_suspend() ); + + /* Timing Advance tests (see GSM TS 43.064, section 6) */ + execute( TC_ta_init_prach() ); } -- To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15410 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: osmo-ttcn3-hacks Gerrit-Branch: master Gerrit-Change-Id: I21f76ae723519c0eb54515922a05ca8045b00ade Gerrit-Change-Number: 15410 Gerrit-PatchSet: 1 Gerrit-Owner: fixeria <axilira...@gmail.com> Gerrit-MessageType: newchange