Change in ...osmo-ttcn3-hacks[master]: bsc-sccplite: Fix expected DLCX in HO tests

pespin gerrit-no-reply at lists.osmocom.org
Tue Jun 18 16:33:13 UTC 2019


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


Change subject: bsc-sccplite: Fix expected DLCX in HO tests
......................................................................

bsc-sccplite: Fix expected DLCX in HO tests

* TTCN3 code was not ACKing the DLCXs, and as a result retransmitted
DLCX BSC->MGW were being counted as 2nd DLCX.

* In SCCPLite, only 1 DLCX is expected BSC->MGW, because the BSC only
takes care of the BTS-side conn in the endpoint, while MSC takes care of
the MSC-side conn (which is not sent in this case because doesn't really
involved the BSC other than forwarding the message, which will already
be tested in other places in forthcoming commits).

* Getting rid of retransmissions by ACKing the DLCX, it unconvers a bug
in TC_ho_out_fail_no_ho_detect when on AoIP, where BSC only deletes one
of the 2 previously created connections.

* Code is refactored into the function because its logic is made more
complex, and may be even more complex in forthcoming commits when we add
MGCP-over-IPA forwarding verification support.

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



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

diff --git a/bsc/BSC_Tests.ttcn b/bsc/BSC_Tests.ttcn
index 00995bf..976bc46 100644
--- a/bsc/BSC_Tests.ttcn
+++ b/bsc/BSC_Tests.ttcn
@@ -2887,6 +2887,28 @@
 	vc_conn.done;
 }
 
+/* Expecting MGCP to DLCX the endpoint's two connections: towards BTS and towards MSC */
+private function f_expect_dlcx_conns(boolean exp_clear_cmpl := true) runs on MSC_ConnHdlr {
+	var MgcpCommand mgcp;
+
+	MGCP.receive(tr_DLCX()) -> value mgcp {
+				log("Got first DLCX: ", mgcp);
+				MGCP.send(ts_DLCX_ACK2(mgcp.line.trans_id));
+		};
+
+	/* For SCCPLite, BSC doesn't handle the MSC-side */
+	if (g_pars.aoip) {
+		MGCP.receive(tr_DLCX()) -> value mgcp {
+				log("Got second DLCX: ", mgcp);
+				MGCP.send(ts_DLCX_ACK2(mgcp.line.trans_id));
+			};
+	}
+
+	if (exp_clear_cmpl) {
+		BSSAP.receive(tr_BSSMAP_ClearComplete);
+	}
+}
+
 private function f_tc_ho_out_of_this_bsc(charstring id) runs on MSC_ConnHdlr {
 	g_pars := f_gen_test_hdlr_pars();
 
@@ -2937,17 +2959,7 @@
 	var BssmapCause cause := enum2int(cause_val);
 	BSSAP.send(ts_BSSMAP_ClearCommand(cause));
 
-	/* Expecting MGCP to DLCX the endpoint's two connections: towards BTS and towards MSC */
-	var MgcpCommand mgcp;
-	interleave {
-	[] BSSAP.receive(tr_BSSMAP_ClearComplete);
-	[] MGCP.receive(tr_DLCX()) -> value mgcp {
-			log("Got first DLCX: ", mgcp);
-		}
-	[] MGCP.receive(tr_DLCX()) -> value mgcp {
-			log("Got second DLCX: ", mgcp);
-		}
-	}
+	f_expect_dlcx_conns(true);
 	setverdict(pass);
 	f_sleep(1.0);
 }
@@ -3154,14 +3166,10 @@
 	[] BSSAP.receive(tr_BSSMAP_ClearRequest) {
 			log("Got BSSMAP Clear Request");
 		}
-	[] MGCP.receive(tr_DLCX()) -> value mgcp {
-			log("Got first DLCX: ", mgcp);
-		}
-	[] MGCP.receive(tr_DLCX()) -> value mgcp {
-			log("Got second DLCX: ", mgcp);
-		}
 	}
 
+	f_expect_dlcx_conns(false);
+
 	setverdict(pass);
 	f_sleep(1.0);
 }
@@ -3305,17 +3313,7 @@
 	var BssmapCause cause := enum2int(cause_val);
 	BSSAP.send(ts_BSSMAP_ClearCommand(cause));
 
-	/* Expecting MGCP to DLCX the endpoint's two connections: towards BTS and towards MSC */
-	var MgcpCommand mgcp;
-	interleave {
-	[] BSSAP.receive(tr_BSSMAP_ClearComplete);
-	[] MGCP.receive(tr_DLCX()) -> value mgcp {
-			log("Got first DLCX: ", mgcp);
-		}
-	[] MGCP.receive(tr_DLCX()) -> value mgcp {
-			log("Got second DLCX: ", mgcp);
-		}
-	}
+	f_expect_dlcx_conns(true);
 	setverdict(pass);
 	f_sleep(1.0);
 
@@ -3397,17 +3395,7 @@
 	var BssmapCause cause := enum2int(cause_val);
 	BSSAP.send(ts_BSSMAP_ClearCommand(cause));
 
-	/* Expecting MGCP to DLCX the endpoint's two connections: towards BTS and towards MSC */
-	var MgcpCommand mgcp;
-	interleave {
-	[] BSSAP.receive(tr_BSSMAP_ClearComplete);
-	[] MGCP.receive(tr_DLCX()) -> value mgcp {
-			log("Got first DLCX: ", mgcp);
-		}
-	[] MGCP.receive(tr_DLCX()) -> value mgcp {
-			log("Got second DLCX: ", mgcp);
-		}
-	}
+	f_expect_dlcx_conns(true);
 	setverdict(pass);
 	f_sleep(1.0);
 }
@@ -3486,17 +3474,7 @@
 	var BssmapCause cause := enum2int(cause_val);
 	BSSAP.send(ts_BSSMAP_ClearCommand(cause));
 
-	/* Expecting MGCP to DLCX the endpoint's two connections: towards BTS and towards MSC */
-	var MgcpCommand mgcp;
-	interleave {
-	[] BSSAP.receive(tr_BSSMAP_ClearComplete);
-	[] MGCP.receive(tr_DLCX()) -> value mgcp {
-			log("Got first DLCX: ", mgcp);
-		}
-	[] MGCP.receive(tr_DLCX()) -> value mgcp {
-			log("Got second DLCX: ", mgcp);
-		}
-	}
+	f_expect_dlcx_conns(true);
 	setverdict(pass);
 	f_sleep(1.0);
 
@@ -3563,24 +3541,13 @@
 	BSSAP.receive(tr_BSSMAP_HandoverFailure);
 
 	/* MSC plays dumb and sends no Clear Command */
-
-	/* Expecting MGCP to DLCX the endpoint's two connections: towards BTS and towards MSC */
 	var PDU_BSSAP rx_clear_request;
-	var MgcpCommand mgcp;
-	interleave {
-	[] BSSAP.receive(tr_BSSMAP_ClearRequest) -> value rx_clear_request {
+
+	BSSAP.receive(tr_BSSMAP_ClearRequest) -> value rx_clear_request {
 		var BssmapCause cause := bit2int(rx_clear_request.pdu.bssmap.clearRequest.cause.causeValue);
 		BSSAP.send(ts_BSSMAP_ClearCommand(cause));
 	};
-	[] BSSAP.receive(tr_BSSMAP_ClearComplete);
-
-	[] MGCP.receive(tr_DLCX()) -> value mgcp {
-			log("Got first DLCX: ", mgcp);
-		}
-	[] MGCP.receive(tr_DLCX()) -> value mgcp {
-			log("Got second DLCX: ", mgcp);
-		}
-	}
+	f_expect_dlcx_conns(true);
 	setverdict(pass);
 	f_sleep(1.0);
 }

-- 
To view, visit https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/14508
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: Ia1d0db9af073760105cc8509e228e317dbea2268
Gerrit-Change-Number: 14508
Gerrit-PatchSet: 1
Gerrit-Owner: pespin <pespin at sysmocom.de>
Gerrit-MessageType: newchange
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190618/fa5a2662/attachment.html>


More information about the gerrit-log mailing list