Attention is currently required from: laforge, fixeria.
pespin has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-bts/+/29935 )
Change subject: osmo-bts-trx: use lookup tables for checking AMR CMI/CMR on Downlink
......................................................................
Patch Set 1: Code-Review+1
--
To view, visit https://gerrit.osmocom.org/c/osmo-bts/+/29935
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-bts
Gerrit-Branch: master
Gerrit-Change-Id: I75ecf5369f31c8b8e9519d2b580355fa80c24196
Gerrit-Change-Number: 29935
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: laforge <laforge(a)osmocom.org>
Gerrit-Reviewer: pespin <pespin(a)sysmocom.de>
Gerrit-Attention: laforge <laforge(a)osmocom.org>
Gerrit-Attention: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-Comment-Date: Mon, 31 Oct 2022 20:50:07 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment
fixeria has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/29937 )
Change subject: BTS_Tests: fix TC_conn_fail_crit: tune the MS back to BCCH
......................................................................
BTS_Tests: fix TC_conn_fail_crit: tune the MS back to BCCH
osmo-bts-trx declares a connection failure when the radio link counter
S reaches 0. This counter is decreased every time the Viterbi decoder
yields a decoding error on the Uplink SACCH. For more details, see
3GPP TS 45.008, section 5.2.
The scheduler in osmo-bts-trx expects NOPE indications to be sent by
the transceiver in the absence of valid Uplink bursts. However, due
to the asynchronous nature of TRXD link, our virtual Um interface
implementation, fake_trx.py, does not generate NOPE indications on
it's own. Instead, trxcon is sending empty TRXDv0 PDUs (BURST.req),
which are then translated to proper TRXDv1 NOPE.ind by fake_trx.py.
The TC_conn_fail_crit currently sends L1CTL_DM_REL_REQ in order to
simulate connection loss, what makes trxcon disable all active
timeslots and thus stop sending NOPE.req to fake_trx.py.
Let's tune trxcon back to BCCH, in order to ensure that NOPE.req
messages are still being sent, so that osmo-bts-trx will be able
to declare a connection failure over the RSL as expected.
Change-Id: I34aee95111eafea90eeeea861682f1b4547d7b03
Related: Ic292d180ba64206fb4d88adb284f9f9d058b4587
---
M bts/BTS_Tests.ttcn
1 file changed, 1 insertion(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/37/29937/1
diff --git a/bts/BTS_Tests.ttcn b/bts/BTS_Tests.ttcn
index cecdda1..9baee40 100644
--- a/bts/BTS_Tests.ttcn
+++ b/bts/BTS_Tests.ttcn
@@ -3945,6 +3945,7 @@
f_est_dchan();
f_sleep(2.0);
L1CTL.send(ts_L1CTL_DM_REL_REQ(g_chan_nr));
+ f_l1_tune(L1CTL); /* tune back to BCCH */
timer T := 40.0;
T.start;
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/29937
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: I34aee95111eafea90eeeea861682f1b4547d7b03
Gerrit-Change-Number: 29937
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy(a)sysmocom.de>
Gerrit-MessageType: newchange
Jenkins Builder has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/29934 )
Change subject: pcu: Introduce tests TC_ul_tbf_{1,2}phase_while_dl_ass_pch
......................................................................
Patch Set 1:
(2 comments)
File pcu/PCU_Tests.ttcn:
Robot Comment from checkpatch (run ID jenkins-gerrit-lint-610):
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/29934/comment/e6700f05_eded…
PS1, Line 4046: /* We should finally receive the DL-data that was received previosuly from the SGSN: */
'previosuly' may be misspelled - perhaps 'previously'?
Robot Comment from checkpatch (run ID jenkins-gerrit-lint-610):
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/29934/comment/333fbb49_96bd…
PS1, Line 4113: /* We should finally receive the DL-data that was received previosuly from the SGSN: */
'previosuly' may be misspelled - perhaps 'previously'?
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/29934
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: I6a72c36265bfdc757180cbb466492ad6bbbf16ad
Gerrit-Change-Number: 29934
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-CC: Jenkins Builder
Gerrit-Comment-Date: Mon, 31 Oct 2022 16:41:05 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Gerrit-MessageType: comment
pespin has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/29934 )
Change subject: pcu: Introduce tests TC_ul_tbf_{1,2}phase_while_dl_ass_pch
......................................................................
pcu: Introduce tests TC_ul_tbf_{1,2}phase_while_dl_ass_pch
Related: OS#5700
Change-Id: I6a72c36265bfdc757180cbb466492ad6bbbf16ad
---
M pcu/PCU_Tests.ttcn
M pcu/expected-results.xml
2 files changed, 155 insertions(+), 0 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/34/29934/1
diff --git a/pcu/PCU_Tests.ttcn b/pcu/PCU_Tests.ttcn
index 6d17d96..049b0cd 100644
--- a/pcu/PCU_Tests.ttcn
+++ b/pcu/PCU_Tests.ttcn
@@ -3965,6 +3965,157 @@
f_shutdown(__BFILE__, __LINE__, final := true);
}
+/* Scenario: MS creates a UL TBF and
+ * finishes sending data (CV=0), which is forwarded to SGSN by PCU. PCU acks with
+ * FINAL_ACK=1 (hence UL TBF moves to FINISHED state). Then SGSN answers and PCU
+ * has to assign a DL TBF on PCH. While the network is waiting for the MS to
+ * move to PDCH before transmitting DL data (timer X2002), the MS finds out it
+ * needs to send new UL data and hence sends a RACH request to create a new UL
+ * TBF.
+ * Make sure the the MS is assigned a DL TBF through PACCH in that case even if
+ * no new DL data is received from the SGSN. OS#5700.
+ * This test validates the specific case where the 2nd UL TBF is done through
+ * 1phase-access.
+ */
+testcase TC_ul_tbf_1phase_while_dl_ass_pch() runs on RAW_PCU_Test_CT {
+ var RlcmacDlBlock dl_block;
+ var octetstring data := f_rnd_octstring(10);
+ var uint32_t sched_fn;
+ var uint32_t poll_fn;
+ var uint32_t dl_fn;
+ var GprsMS ms;
+ timer T;
+ var octetstring payload;
+
+ /* Initialize NS/BSSGP side */
+ f_init_bssgp();
+ /* Initialize GPRS MS side */
+ f_init_gprs_ms();
+ ms := g_ms[0]; /* We only use first MS in this test */
+
+ /* Initialize the PCU interface abstraction */
+ f_init_raw(testcasename(), ts_PCUIF_INFO_default(c_PCUIF_Flags_noMCS));
+
+ /* Establish BSSGP connection to the PCU */
+ f_bssgp_establish();
+ f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli);
+
+ /* Establish an Uplink TBF */
+ f_ms_establish_ul_tbf(ms);
+
+ /* Send one UL block (with TLLI since we are in One-Phase Access
+ contention resolution) and make sure it is ACKED fine. */
+ payload := f_rnd_octstring(f_ultbf_payload_fill_length(ms.ul_tbf, true));
+ dl_fn := f_rx_rlcmac_dl_block_exp_dummy(dl_block);
+ f_ms_tx_ul_data_block(ms, payload, cv := 1, with_tlli := true, fn := f_next_pdch_block(dl_fn));
+
+ f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn);
+ payload := f_rnd_octstring(f_ultbf_payload_fill_length(ms.ul_tbf, false));
+ f_ms_tx_ul_data_block(ms, payload, cv := 0);
+ f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn);
+
+ /* 1 UL block should be received in SGSN */
+ BSSGP[0].receive(tr_BSSGP_UL_UD(ms.tlli, mp_gb_cfg.bvc[0].cell_id));
+ /* Now SGSN sends some DL data, PCU will page on CCCH (PCH) */
+ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data));
+
+ /* UL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */
+ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn);
+ f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH);
+
+ /* Now the PCU is waiting for the MS to move to PDCH in order to send data to it (timer X2002).
+ * The MS decides it want to send new Ul TBF so it send RACH req to ask for it: */
+ f_ms_establish_ul_tbf(ms);
+
+ /* Send one UL block (with TLLI since we are in One-Phase Access
+ * contention resolution) and make sure it is ACKED fine. */
+ payload := f_rnd_octstring(f_ultbf_payload_fill_length(ms.ul_tbf, true));
+ dl_fn := f_rx_rlcmac_dl_block_exp_dummy(dl_block);
+ f_ms_tx_ul_data_block(ms, payload, cv := 1, with_tlli := true, fn := f_next_pdch_block(dl_fn));
+
+ /* UL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */
+ f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn);
+
+ /* The PCU considers the MS to have gone over Contention Resolution
+ * after having sent the first UL ACK/NACK to it, hence next it will try to
+ * assign the DL-TBF to send the data it received from the SGSN previously: */
+ f_ms_rx_pkt_ass_pacch(ms, poll_fn, tr_RLCMAC_DL_PACKET_ASS);
+ /* the MS ACKs the PKT_DL_ASS: */
+ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), poll_fn);
+
+ /* We should finally receive the DL-data that was received previosuly from the SGSN: */
+ f_rx_rlcmac_dl_block_exp_data(dl_block, dl_fn, data, 0);
+
+ f_shutdown(__BFILE__, __LINE__, final := true);
+}
+
+/* Same as TC_ul_tbf_2phase_while_dl_ass_pch, but this test validates the
+ * specific case where the 2nd UL TBF is done through 2phase-access. */
+testcase TC_ul_tbf_2phase_while_dl_ass_pch() runs on RAW_PCU_Test_CT {
+ var RlcmacDlBlock dl_block;
+ var octetstring data := f_rnd_octstring(10);
+ var uint32_t sched_fn;
+ var uint32_t poll_fn;
+ var uint32_t dl_fn;
+ var GprsMS ms;
+ timer T;
+ var octetstring payload;
+ var PollFnCtx pollctx;
+
+ /* Initialize NS/BSSGP side */
+ f_init_bssgp();
+ /* Initialize GPRS MS side */
+ f_init_gprs_ms();
+ ms := g_ms[0]; /* We only use first MS in this test */
+
+ /* Initialize the PCU interface abstraction */
+ f_init_raw(testcasename(), ts_PCUIF_INFO_default(c_PCUIF_Flags_noMCS));
+
+ /* Establish BSSGP connection to the PCU */
+ f_bssgp_establish();
+ f_bssgp_client_llgmm_assign(TLLI_UNUSED, ms.tlli);
+
+ /* Establish an Uplink TBF */
+ f_ms_establish_ul_tbf(ms);
+
+ /* Send one UL block (with TLLI since we are in One-Phase Access
+ contention resolution) and make sure it is ACKED fine. */
+ payload := f_rnd_octstring(f_ultbf_payload_fill_length(ms.ul_tbf, true));
+ dl_fn := f_rx_rlcmac_dl_block_exp_dummy(dl_block);
+ f_ms_tx_ul_data_block(ms, payload, cv := 1, with_tlli := true, fn := f_next_pdch_block(dl_fn));
+
+ f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn);
+ payload := f_rnd_octstring(f_ultbf_payload_fill_length(ms.ul_tbf, false));
+ f_ms_tx_ul_data_block(ms, payload, cv := 0);
+ f_rx_rlcmac_dl_block_exp_ack_nack(dl_block, sched_fn);
+
+ /* 1 UL block should be received in SGSN */
+ BSSGP[0].receive(tr_BSSGP_UL_UD(ms.tlli, mp_gb_cfg.bvc[0].cell_id));
+ /* Now SGSN sends some DL data, PCU will page on CCCH (PCH) */
+ BSSGP[0].send(ts_BSSGP_DL_UD(ms.tlli, data));
+
+ /* UL ACK/NACK sets poll+rrbp requesting PACKET CONTROL ACK */
+ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), sched_fn);
+ f_ms_exp_dl_tbf_ass_ccch(ms, PCU_IF_SAPI_PCH);
+
+ /* Now the PCU is waiting for the MS to move to PDCH in order to send data to it (timer X2002).
+ * The MS decides it want to send new Ul TBF so it send RACH req to ask for it: */
+ pollctx := f_ms_establish_ul_tbf_2phase_access(ms, ts_RlcMacUlCtrl_PKT_RES_REQ(ms.tlli, ms_racap_gprs_def));
+
+ /* Pkt Uplink Assignment above sets poll+rrbp requesting PACKET CONTROL ACK */
+ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), pollctx.fn, nr := pollctx.tstrxbts);
+
+ /* Now that MS seized the UL-TBF, PCU sends DL-TBF Assignment on PACCH */
+ f_ms_rx_pkt_ass_pacch(ms, poll_fn, tr_RLCMAC_DL_PACKET_ASS);
+ /* the MS ACKs the PKT_DL_ASS: */
+ f_ms_tx_ul_block(ms, ts_RLCMAC_CTRL_ACK(ms.tlli), poll_fn);
+
+ /* We should finally receive the DL-data that was received previosuly from the SGSN: */
+ f_rx_rlcmac_dl_block_exp_data(dl_block, dl_fn, data, 0);
+
+ f_shutdown(__BFILE__, __LINE__, final := true);
+}
+
private function f_TC_egprs_pkt_chan_req(in EGPRSPktChRequest req,
template GsmRrMessage t_imm_ass := ?,
PCUIF_BurstType bt := BURST_TYPE_1)
@@ -6900,6 +7051,8 @@
execute( TC_dl_egprs_data_no_llc_ui_dummy() );
execute( TC_ul_tbf_finished_pkt_dl_ass_pch() );
+ execute( TC_ul_tbf_1phase_while_dl_ass_pch() );
+ execute( TC_ul_tbf_2phase_while_dl_ass_pch() );
/* EGPRS specific test cases */
execute( TC_egprs_pkt_chan_req_signalling() );
diff --git a/pcu/expected-results.xml b/pcu/expected-results.xml
index c666ff7..1f953aa 100644
--- a/pcu/expected-results.xml
+++ b/pcu/expected-results.xml
@@ -71,6 +71,8 @@
<testcase classname='PCU_Tests' name='TC_dl_gprs_data_no_llc_ui_dummy' time='MASKED'/>
<testcase classname='PCU_Tests' name='TC_dl_egprs_data_no_llc_ui_dummy' time='MASKED'/>
<testcase classname='PCU_Tests' name='TC_ul_tbf_finished_pkt_dl_ass_pch' time='MASKED'/>
+ <testcase classname='PCU_Tests' name='TC_ul_tbf_1phase_while_dl_ass_pch' time='MASKED'/>
+ <testcase classname='PCU_Tests' name='TC_ul_tbf_2phase_while_dl_ass_pch' time='MASKED'/>
<testcase classname='PCU_Tests' name='TC_egprs_pkt_chan_req_signalling' time='MASKED'/>
<testcase classname='PCU_Tests' name='TC_egprs_pkt_chan_req_one_phase' time='MASKED'/>
<testcase classname='PCU_Tests' name='TC_egprs_pkt_chan_req_two_phase' time='MASKED'/>
--
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/29934
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: I6a72c36265bfdc757180cbb466492ad6bbbf16ad
Gerrit-Change-Number: 29934
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-MessageType: newchange
Attention is currently required from: pespin.
dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/29932 )
Change subject: tbf_fsm: Introduce new event to act upon contention resolution success
......................................................................
Patch Set 1: Code-Review+1
--
To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/29932
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-pcu
Gerrit-Branch: master
Gerrit-Change-Id: I8b9555864d3615ce0a024b641c67921f82273a8d
Gerrit-Change-Number: 29932
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Mon, 31 Oct 2022 16:34:01 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment
Attention is currently required from: pespin.
dexter has posted comments on this change. ( https://gerrit.osmocom.org/c/osmo-pcu/+/29931 )
Change subject: Avoid losing DL-TBF during MS merge
......................................................................
Patch Set 1: Code-Review+1
--
To view, visit https://gerrit.osmocom.org/c/osmo-pcu/+/29931
To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings
Gerrit-Project: osmo-pcu
Gerrit-Branch: master
Gerrit-Change-Id: I29f4ffa904d79d58275c6596cc5ef6790b6e68c6
Gerrit-Change-Number: 29931
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin(a)sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: dexter <pmaier(a)sysmocom.de>
Gerrit-Attention: pespin <pespin(a)sysmocom.de>
Gerrit-Comment-Date: Mon, 31 Oct 2022 16:32:25 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
Gerrit-MessageType: comment