neels has uploaded this change for review. (
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/37809?usp=email )
Change subject: hnbgw: test for RUA Disconnect when there is no CN
......................................................................
hnbgw: test for RUA Disconnect when there is no CN
Related: OS#6283
Related: osmo-hnbgw Iafb30c31a4c5db53ecdda99a0e0b5937b71e362c
Change-Id: I2b5c024a395e736538c0c37db40d34f3b8d99991
---
M hnbgw/HNBGW_Tests.ttcn
1 file changed, 49 insertions(+), 11 deletions(-)
git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/09/37809/1
diff --git a/hnbgw/HNBGW_Tests.ttcn b/hnbgw/HNBGW_Tests.ttcn
index 3765411..bfbab7d 100644
--- a/hnbgw/HNBGW_Tests.ttcn
+++ b/hnbgw/HNBGW_Tests.ttcn
@@ -290,6 +290,7 @@
HnbConfig hnb optional,
boolean expect_separate_sccp_cr,
integer tx_sccp_cr_data_len,
+ boolean expect_compl_l3_success,
charstring pfcp_local_addr,
octetstring nas_pdu optional,
/* local and remote SCCP addresses, used in TC_mscpool_paging_* */
@@ -1197,6 +1198,7 @@
hnb := omit, /* filled in later */
expect_separate_sccp_cr := expect_separate_sccp_cr,
tx_sccp_cr_data_len := tx_sccp_cr_data_len,
+ expect_compl_l3_success := true,
pfcp_local_addr := mp_pfcp_ip_local,
nas_pdu := omit,
sccp_addr_msc := omit,
@@ -2155,37 +2157,43 @@
f_counter_name_vals_list_add(g_ctr_cn, cn_nr, countername, val);
}
-private function f_perform_compl_l3(octetstring nas, boolean do_clear := true, boolean
expect_iu_l3 := true)
+private function f_perform_compl_l3(octetstring nas, boolean do_clear := true, boolean
expect_success := true)
runs on ConnHdlr {
timer T := 10.0;
- /* create an expect on the Iu side for the random NAS portion */
- if (g_pars.expect_separate_sccp_cr) {
- f_ran_register_sccp_cr_without_payload();
- } else {
- f_ran_register_exp(nas);
+ if (expect_success) {
+ /* create an expect on the Iu side for the random NAS portion */
+ if (g_pars.expect_separate_sccp_cr) {
+ f_ran_register_sccp_cr_without_payload();
+ } else {
+ f_ran_register_exp(nas);
+ }
}
/* send Connect via Iuh (creating a RUA connection) */
var RANAP_PDU tx := f_build_initial_ue_with_nas(g_pars, nas);
RUA.send(RUA_Conn_Req:{g_pars.ps_domain, tx});
- if (expect_iu_l3) {
+ if (expect_success) {
/* Expect same message to arrive at CN */
f_bssap_expect(tx);
+ } else {
+ RUA.receive(RUA_Disc_Ind:?);
}
}
private function f_tc_cnpool_compl_l3(charstring id, TestHdlrParams pars) runs on
ConnHdlr {
f_init_handler(pars);
- f_perform_compl_l3(g_pars.nas_pdu);
+ f_perform_compl_l3(g_pars.nas_pdu, expect_success := g_pars.expect_compl_l3_success);
}
private function f_TC_cnpool_compl_l3(boolean ps_domain, octetstring nas_pdu, integer
cn_nr,
- template (omit) charstring inc_countername := omit) runs on test_CT {
+ template (omit) charstring inc_countername := omit,
+ boolean expect_compl_l3_success := true) runs on test_CT {
var ConnHdlr vc_conn;
var template (value) TestHdlrParams pars := t_pars(0, ps_domain := ps_domain, cn_nr :=
cn_nr);
pars.nas_pdu := nas_pdu;
+ pars.expect_compl_l3_success := expect_compl_l3_success;
log("XXX ", pars);
vc_conn := f_start_handler_with_pars(refers(f_tc_cnpool_compl_l3), pars);
vc_conn.done;
@@ -2196,14 +2204,16 @@
}
function f_TC_cnpool_compl_l3_list(boolean ps_domain, ro_octetstring compl3,
Osmocom_Types.ro_integer cn_nrs,
- charstring inc_countername) runs on test_CT {
+ template (omit) charstring inc_countername,
+ boolean expect_compl_l3_success := true) runs on test_CT {
var integer n := lengthof(compl3);
if (n < lengthof(cn_nrs)) {
n := lengthof(cn_nrs);
}
for (var integer i := 0; i < n; i := i + 1) {
var integer cn_nr := cn_nrs[i mod lengthof(cn_nrs)];
- f_TC_cnpool_compl_l3(ps_domain, compl3[i mod lengthof(compl3)], cn_nr,
inc_countername);
+ f_TC_cnpool_compl_l3(ps_domain, compl3[i mod lengthof(compl3)], cn_nr,
inc_countername,
+ expect_compl_l3_success);
}
}
@@ -2984,6 +2994,34 @@
f_shutdown_helper();
}
+/* When no CN was found for a UE / domain, make sure osmo-hnbgw returns a Disconnect
(OS#6283) */
+testcase TC_mscpool_L3Compl_no_cn() runs on test_CT {
+ f_TC_cnpool_L3Compl_no_cn(ps_domain := false);
+}
+testcase TC_sgsnpool_L3Compl_no_cn() runs on test_CT {
+ f_TC_cnpool_L3Compl_no_cn(ps_domain := true);
+}
+function f_TC_cnpool_L3Compl_no_cn(boolean ps_domain) runs on test_CT {
+
+ /* Have one MSC and one SGSN but do not allow attaching.
+ * I would use no MSCs and no SGSNs, but then we need many tweaks to allow test startup
without any "BSSAP"
+ * port. */
+ f_init();
+ f_vty_cnlink_allow_attach(HNBGWVTY, ps_domain, {false});
+
+ f_ctrs_cn_init(ps_domain := ps_domain);
+
+ var ro_octetstring compl3 := f_gen_compl3_by_domain(ps_domain, 4);
+ f_TC_cnpool_compl_l3_list(ps_domain, compl3, {0, 0, 0, 0}, omit, // FIXME failure
counter?
+ expect_compl_l3_success := false);
+
+ f_shutdown_helper();
+}
+
+
+
+
+
control {
execute(TC_hnb_register());
execute(TC_hnb_register_duplicate());
--
To view, visit
https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/37809?usp=email
To unsubscribe, or for help writing mail filters, visit
https://gerrit.osmocom.org/settings?usp=email
Gerrit-MessageType: newchange
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Change-Id: I2b5c024a395e736538c0c37db40d34f3b8d99991
Gerrit-Change-Number: 37809
Gerrit-PatchSet: 1
Gerrit-Owner: neels <nhofmeyr(a)sysmocom.de>