Change in osmo-ttcn3-hacks[master]: bsc: add TC_imm_ass_pre_chan_ack_dyn_ts

neels gerrit-no-reply at lists.osmocom.org
Sun Aug 8 01:57:31 UTC 2021


neels has uploaded this change for review. ( https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25169 )


Change subject: bsc: add TC_imm_ass_pre_chan_ack_dyn_ts
......................................................................

bsc: add TC_imm_ass_pre_chan_ack_dyn_ts

Related: SYS#5559
Change-Id: Ic5a3b930c57a5c61514137986eb4f8f8c1f2a1ba
---
M bsc/BSC_Tests.ttcn
M bsc/BSC_Tests_2.ttcn
2 files changed, 72 insertions(+), 4 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/69/25169/1

diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index f9900f7..1cc876f 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -4232,14 +4232,14 @@
 	f_shutdown_helper();
 }
 
-private function f_disable_all_tch_f() runs on test_CT {
+function f_disable_all_tch_f() runs on test_CT {
 	f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 1 sub-slot 0 borken");
 	f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 2 sub-slot 0 borken");
 	f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 3 sub-slot 0 borken");
 	f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 4 sub-slot 0 borken");
 }
 
-private function f_disable_all_tch_h() runs on test_CT {
+function f_disable_all_tch_h() runs on test_CT {
 	f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 5 sub-slot 0 borken");
 	f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 5 sub-slot 1 borken");
 }
@@ -4253,7 +4253,7 @@
 	f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 5 sub-slot 1 unused");
 }
 
-private function f_disable_all_sdcch() runs on test_CT {
+function f_disable_all_sdcch() runs on test_CT {
 	f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 0 sub-slot 0 borken");
 	f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 0 sub-slot 1 borken");
 	f_vty_transceive(BSCVTY, "bts 0 trx 0 timeslot 0 sub-slot 2 borken");
@@ -6748,7 +6748,7 @@
 	}
 }
 
-private function f_ts_set_chcomb(integer bts_nr, integer trx_nr, integer ts_nr, charstring chcomb)
+function f_ts_set_chcomb(integer bts_nr, integer trx_nr, integer ts_nr, charstring chcomb)
 runs on test_CT {
 	f_vty_enter_cfg_ts(BSCVTY, bts_nr, trx_nr, ts_nr);
 	f_vty_transceive(BSCVTY, "phys_chan_config " & chcomb);
diff --git a/bsc/BSC_Tests_2.ttcn b/bsc/BSC_Tests_2.ttcn
index bbf869f..b211a37 100644
--- a/bsc/BSC_Tests_2.ttcn
+++ b/bsc/BSC_Tests_2.ttcn
@@ -185,8 +185,76 @@
 	f_shutdown_helper();
 }
 
+testcase TC_imm_ass_pre_chan_ack_dyn_ts() runs on test_CT {
+	/* change Timeslot 6 before f_init() starts RSL */
+	f_init_vty();
+	f_ts_set_chcomb(0, 0, 6, "TCH/F_TCH/H_PDCH");
+	f_vty_transceive(BSCVTY, "drop bts connection 0 oml");
+
+	f_init(1, false);
+	f_sleep(1.0);
+
+	var RslChannelNr chan_nr := valueof(t_RslChanNr_PDCH(6));
+	/* The BSC will activate the dynamic PDCH by default, so confirm that */
+	f_exp_ipa_rx(0, tr_RSL_CHAN_ACT_PDCH(chan_nr, ?));
+	f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, 2323));
+
+	/* clean up timeslot 6 config, will only take effect when the OML drops the next time */
+	f_ts_set_chcomb(0, 0, 6, "PDCH");
+
+	/* block all static timeslots so that the dyn TS will be used */
+	f_disable_all_tch_f();
+	f_disable_all_tch_h();
+	f_disable_all_sdcch();
+
+	var RSL_Message chan_act;
+	var RSL_Message imm_ass;
+
+	f_init(1, false);
+	f_sleep(1.0);
+
+	f_vty_set_imm_ass(BSCVTY, 0, "pre-chan-ack");
+
+	/* RA containing reason=LU */
+	var GsmFrameNumber fn := 2342;
+	var uint8_t ra := 2;
+	f_ipa_tx(0, ts_RSL_CHAN_RQD(int2oct(ra, 1), fn));
+
+	/* (set bts 0 cfg back to default) */
+	f_vty_set_imm_ass(BSCVTY);
+
+	/* Expect the dyn TS to deactivate PDCH first */
+	f_exp_ipa_rx(0, tr_RSL_RF_CHAN_REL(chan_nr));
+	f_ipa_tx(0, ts_RSL_RF_CHAN_REL_ACK(chan_nr));
+
+	/* Now activation as SDCCH8 */
+	chan_nr := valueof(t_RslChanNr_SDCCH8(tn := 6, sub_slot := 0));
+
+	chan_act := f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_CHAN_ACTIV));
+	//var RslChannelNr chan_nr := chan_act.ies[0].body.chan_nr;
+
+	/* *FIRST* expect the Immediate Assignment, before we ACK the chan act */
+	imm_ass := f_exp_ipa_rx(0, tr_RSL_IMM_ASSIGN(0));
+	f_verify_imm_ass(imm_ass, ra, fn, chan_nr);
+
+	/* Only now send the Chan Act ACK */
+	f_ipa_tx(0, ts_RSL_CHAN_ACT_ACK(chan_nr, fn+10));
+
+	/* Check that the lchan is working */
+	var octetstring l3 := '00010203040506'O;
+	f_ipa_tx(0, ts_RSL_EST_IND(chan_nr, valueof(ts_RslLinkID_DCCH(0)), l3));
+
+	var BSSAP_N_CONNECT_ind rx_c_ind;
+	BSSAP.receive(tr_BSSAP_CONNECT_ind(?, ?, tr_BSSMAP_ComplL3(l3))) -> value rx_c_ind;
+	BSSAP.send(ts_BSSAP_CONNECT_res(rx_c_ind.connectionId));
+
+	f_sleep(1.0);
+	f_shutdown_helper();
+}
+
 control {
 	execute( TC_imm_ass_post_chan_ack() );
 	execute( TC_imm_ass_pre_chan_ack() );
+	execute( TC_imm_ass_pre_chan_ack_dyn_ts() );
 }
 }

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/25169
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: Ic5a3b930c57a5c61514137986eb4f8f8c1f2a1ba
Gerrit-Change-Number: 25169
Gerrit-PatchSet: 1
Gerrit-Owner: neels <nhofmeyr at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20210808/0cb22650/attachment.htm>


More information about the gerrit-log mailing list