[PATCH] osmo-ttcn3-hacks[master]: bsc: add test for OS#3041

This is merely a historical archive of years 2008-2021, before the migration to mailman3.

A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.

Neels Hofmeyr gerrit-no-reply at lists.osmocom.org
Sun Mar 11 23:10:33 UTC 2018


Review at  https://gerrit.osmocom.org/7219

bsc: add test for OS#3041

Change-Id: Ie4aa2f01c83b40303fa40ed64dbfce372b7cd96c
---
M bsc/BSC_Tests.ttcn
1 file changed, 64 insertions(+), 0 deletions(-)


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

diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index dc266ab..42ab5bf 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -233,6 +233,13 @@
 		}
 }
 
+altstep no_bssmap_reset() runs on test_CT {
+	[] BSSAP.receive(tr_BSSAP_UNITDATA_ind(?, ?, tr_BSSMAP_Reset)) {
+		setverdict(fail, "unexpected BSSMAP Reset");
+		self.stop;
+	}
+}
+
 function f_init_mgcp(charstring id) runs on test_CT {
 	id := id & "-MGCP";
 
@@ -1694,6 +1701,61 @@
 	vc_conn.done;
 }
 
+/* OS#3041: Open and close N connections in a normal fashion, and expect no
+ * BSSMAP Reset just because of that. */
+testcase TC_bssmap_clear_does_not_cause_bssmap_reset() runs on test_CT {
+	var default d;
+	var integer i;
+	var DchanTuple dt;
+
+	f_init();
+
+	/* Wait for initial BSSMAP Reset to pass */
+	f_sleep(4.0);
+
+	d := activate(no_bssmap_reset());
+
+	/* Setup up a number of connections and RLSD them again from the MSC
+	 * side. In the buggy behavior, the fourth one triggers BSSMAP Reset.
+	 * Let's do it some more times for good measure. */
+	for (i := 0; i < 8; i := i+1) {
+		/* Setup a BSSAP connection and clear it right away. This is
+		 * the MSC telling the BSC about a planned release, it's not an
+		 * erratic loss of a connection. */
+		dt := f_est_dchan('23'O, 23, '00010203040506'O);
+
+		/* TODO for this test: maybe a plain RLSD could be considered
+		 * erratic, in which case this test would have to play out a
+		 * BSSMAP Clear as well. That would pan out something like
+		 * testcase TC_chan_rel_rll_rel_ind(), however, at the time of
+		 * writing that test fails and it makes no sense to import that
+		 * failure here. */
+		if (false) {
+			/* simulate RLL REL IND */
+			f_ipa_tx(0, ts_RSL_REL_IND(dt.rsl_chan_nr, valueof(ts_RslLinkID_DCCH(0))));
+
+			/* expect BSC to disable the channel */
+			f_exp_ipa_rx(0, tr_RSL_MsgTypeD(RSL_MT_RF_CHAN_REL), T3101_MAX);
+			/* respond with CHAN REL ACK */
+			f_ipa_tx(0, ts_RSL_RF_CHAN_REL_ACK(dt.rsl_chan_nr));
+
+			/* expect DISC_IND on MSC side */
+			BSSAP.receive(tr_BSSAP_DISC_ind(dt.sccp_conn_id, ?, ?));
+		}
+
+		/* MSC disconnects as instructed. */
+		BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0));
+	}
+
+	/* In the buggy behavior, a timeout of 2 seconds happens between above
+	 * trigger (logs "SIGTRAN connection down, reconnecting...") and the
+	 * actual BSSMAP Reset. Wait a bit longer just to make sure. */
+	f_sleep(4.0);
+
+	deactivate(d);
+	f_shutdown_helper();
+}
+
 
 control {
 	/* CTRL interface testing */
@@ -1768,6 +1830,8 @@
 	execute( TC_err_82_short_msg() );
 	execute( TC_err_84_unknown_msg() );
 	execute( TC_ho_int() );
+
+	execute( TC_bssmap_clear_does_not_cause_bssmap_reset() );
 }
 
 }

-- 
To view, visit https://gerrit.osmocom.org/7219
To unsubscribe, visit https://gerrit.osmocom.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ie4aa2f01c83b40303fa40ed64dbfce372b7cd96c
Gerrit-PatchSet: 1
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Owner: Neels Hofmeyr <nhofmeyr at sysmocom.de>



More information about the gerrit-log mailing list