Change in osmo-ttcn3-hacks[master]: BSC_Tests: add TC_rll_{rel_ind, err_ind, timeout}_sapi_n_reject

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/.

fixeria gerrit-no-reply at lists.osmocom.org
Fri Aug 28 11:11:56 UTC 2020


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


Change subject: BSC_Tests: add TC_rll_{rel_ind,err_ind,timeout}_sapi_n_reject
......................................................................

BSC_Tests: add TC_rll_{rel_ind,err_ind,timeout}_sapi_n_reject

The idea of these new test cases is to verify that the IUT does
send BSSMAP SAPI N Reject in the following cases respectively:

  - on receipt of an unexpected RLL RELease INDication message
    in response to RLL ESTablish REQuest (for SAPI=3 link);

  - on receipt of an unexpected RLL ERROR INDication message
    in response to RLL ESTablish REQuest (for SAPI=3 link);

  - due to SAPI=3 link establishment timeout.

Change-Id: I00489e2af3befe5780380f64b09fb01e726c8df5
Related: SYS#5047, OS#4728
---
M bsc/BSC_Tests.ttcn
1 file changed, 117 insertions(+), 0 deletions(-)



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

diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 61b700c..f100972 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -1881,6 +1881,118 @@
 	setverdict(pass);
 }
 
+private function f_exp_sapi_n_reject(template (present) GsmSapi sapi := ?,
+				     template myBSSMAP_Cause cause := ?)
+runs on test_CT {
+	var BSSAP_N_DATA_ind rx_di;
+	timer T := 2.0;
+
+	var template BSSMAP_IE_Cause tr_cause := tr_BSSMAP_IE_Cause(cause);
+	var template PDU_BSSAP tr_pdu := tr_BSSMAP_SAPInReject(sapi);
+
+	T.start;
+	alt {
+	[] BSSAP.receive(tr_BSSAP_DATA_ind(?, tr_pdu)) -> value rx_di {
+		var BSSMAP_IE_Cause rx_cause := rx_di.userData.pdu.bssmap.sAPInReject.cause;
+		if (not match(rx_cause, tr_cause)) {
+			setverdict(fail, "Rx unexpected Cause IE: ",
+				   rx_cause, " vs expected ", tr_cause);
+		}
+		setverdict(pass);
+		}
+	[] BSSAP.receive(BSSAP_N_DATA_ind:?) -> value rx_di {
+		setverdict(fail, "Rx unexpected BSSAP PDU: ", rx_di);
+		}
+	[] T.timeout {
+		setverdict(fail, "Timeout waiting for BSSMAP SAPI N Reject");
+		}
+	}
+}
+
+/* Check if we get SAPI N Reject on receipt of unexpected RLL RELease INDication */
+testcase TC_rll_rel_ind_sapi_n_reject() runs on test_CT {
+	var octetstring rnd_data := f_rnd_octstring(16);
+	var RSL_Message rx_rsl;
+	var DchanTuple dt;
+
+	f_init(1);
+
+	/* MS establishes a SAPI=0 link on DCCH */
+	dt := f_est_dchan(f_rnd_ra_cs(), 23, rnd_data);
+
+	/* MSC sends some data on (not yet established) SAPI=3 link */
+	BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSAP_DTAP(rnd_data, '03'O)));
+	/* BSC attempts to establish a SAPI=3 link on DCCH */
+	rx_rsl := f_exp_ipa_rx(0, tr_RSL_EST_REQ(dt.rsl_chan_nr, tr_RslLinkID_DCCH(3)));
+
+	/* MS sends unexpected RELease INDication on SAPI=3 */
+	f_ipa_tx(0, ts_RSL_REL_IND(dt.rsl_chan_nr, ts_RslLinkID_DCCH(3)));
+	/* We expect to receive BSSMAP SAPI N Reject message from the BSC */
+	f_exp_sapi_n_reject(3, GSM0808_CAUSE_MS_NOT_EQUIPPED);
+
+	/* Clean up the connection */
+	BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0));
+	f_expect_chan_rel(0, dt.rsl_chan_nr, expect_rll_rel_req := false);
+
+	setverdict(pass);
+}
+
+/* Check if we get SAPI N Reject on receipt of unexpected RLL ERROR INDication */
+testcase TC_rll_err_ind_sapi_n_reject() runs on test_CT {
+	var octetstring rnd_data := f_rnd_octstring(16);
+	var RSL_Message rx_rsl;
+	var DchanTuple dt;
+
+	f_init(1);
+
+	/* MS establishes a SAPI=0 link on DCCH */
+	dt := f_est_dchan(f_rnd_ra_cs(), 23, rnd_data);
+
+	/* MSC sends some data on (not yet established) SAPI=3 link */
+	BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSAP_DTAP(rnd_data, '03'O)));
+	/* BSC attempts to establish a SAPI=3 link on DCCH */
+	rx_rsl := f_exp_ipa_rx(0, tr_RSL_EST_REQ(dt.rsl_chan_nr, tr_RslLinkID_DCCH(3)));
+
+	/* BTS sends unexpected ERROR INDication on SAPI=3 */
+	f_ipa_tx(0, ts_RSL_ERROR_IND(dt.rsl_chan_nr, ts_RslLinkID_DCCH(3), ''O));
+	/* We expect to receive BSSMAP SAPI N Reject message from the BSC */
+	f_exp_sapi_n_reject(3, GSM0808_CAUSE_BSS_NOT_EQUIPPED);
+
+	/* Clean up the connection */
+	BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0));
+	f_expect_chan_rel(0, dt.rsl_chan_nr, expect_rll_rel_req := false);
+
+	setverdict(pass);
+}
+
+/* Check if we get SAPI N Reject due to a timeout */
+testcase TC_rll_timeout_sapi_n_reject() runs on test_CT {
+	var octetstring rnd_data := f_rnd_octstring(16);
+	var RSL_Message rx_rsl;
+	var DchanTuple dt;
+
+	f_init(1);
+
+	/* MS establishes a SAPI=0 link on DCCH */
+	dt := f_est_dchan(f_rnd_ra_cs(), 23, rnd_data);
+
+	/* MSC sends some data on (not yet established) SAPI=3 link */
+	BSSAP.send(ts_BSSAP_DATA_req(dt.sccp_conn_id, ts_BSSAP_DTAP(rnd_data, '03'O)));
+	/* BSC attempts to establish a SAPI=3 link on DCCH */
+	rx_rsl := f_exp_ipa_rx(0, tr_RSL_EST_REQ(dt.rsl_chan_nr, tr_RslLinkID_DCCH(3)));
+
+	/* MS does not respond, so the link establishment timeout triggers SAPI N Reject */
+	f_sleep(8.0); /* TODO: reduce this timeout somehow? */
+	/* We expect to receive BSSMAP SAPI N Reject message from the BSC */
+	f_exp_sapi_n_reject(3, GSM0808_CAUSE_BSS_NOT_EQUIPPED);
+
+	/* Clean up the connection */
+	BSSAP.send(ts_BSSAP_DISC_req(dt.sccp_conn_id, 0));
+	f_expect_chan_rel(0, dt.rsl_chan_nr, expect_rll_rel_req := false);
+
+	setverdict(pass);
+}
+
 testcase TC_si_default() runs on test_CT {
 	f_init(0);
 	f_init_bts_and_check_sysinfo(0, expect_si := SystemInformationConfig_default);
@@ -6446,6 +6558,11 @@
 	execute( TC_rll_est_ind_inval_sapi3() );
 	execute( TC_rll_est_ind_inval_sacch() );
 
+	/* SAPI N Reject triggered by RLL establishment failures */
+	execute( TC_rll_rel_ind_sapi_n_reject() );
+	execute( TC_rll_err_ind_sapi_n_reject() );
+	execute( TC_rll_timeout_sapi_n_reject() );
+
 	/* Paging related tests */
 	execute( TC_paging_imsi_nochan() );
 	execute( TC_paging_tmsi_nochan() );

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/19874
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: I00489e2af3befe5780380f64b09fb01e726c8df5
Gerrit-Change-Number: 19874
Gerrit-PatchSet: 1
Gerrit-Owner: fixeria <vyanitskiy at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200828/5afc5ec7/attachment.htm>


More information about the gerrit-log mailing list