[PATCH] osmo-ttcn3-hacks[master]: bsc: CRCX is answered with (malformed) ACK

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

Harald Welte gerrit-no-reply at lists.osmocom.org
Fri Jan 26 09:43:08 UTC 2018


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

bsc: CRCX is answered with (malformed) ACK

Change-Id: I09c1ed467e95be236e0758d6a9c8bbef405c02eb
---
M library/MGCP_Emulation.ttcn
1 file changed, 41 insertions(+), 2 deletions(-)


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

diff --git a/library/MGCP_Emulation.ttcn b/library/MGCP_Emulation.ttcn
index f8d5a1e..1209ff6 100644
--- a/library/MGCP_Emulation.ttcn
+++ b/library/MGCP_Emulation.ttcn
@@ -33,6 +33,7 @@
 	port MGCPEM_PROC_PT PROC;
 
 	var charstring g_mgcp_id;
+	var integer g_mgcp_conn_id := -1;
 }
 
 type function MGCPCreateCallback(MgcpCommand cmd, charstring id)
@@ -49,6 +50,19 @@
 	uint16_t mgw_udp_port
 }
 
+function tr_MGCP_RecvFrom_R(template MgcpMessage msg)
+runs on MGCP_Emulation_CT return template MGCP_RecvFrom {
+	var template MGCP_RecvFrom mrf := {
+		connId := g_mgcp_conn_id,
+		remName := ?,
+		remPort := ?,
+		locName := ?,
+		locPort := ?,
+		msg := msg
+	}
+	return mrf;
+}
+
 function main(MGCPOps ops, MGCP_conn_parameters p, charstring id) runs on MGCP_Emulation_CT {
 	var Result res;
 	g_mgcp_id := id;
@@ -60,12 +74,32 @@
 p.mgw_udp_port,
 		p.callagent_ip, p.callagent_udp_port, 0, { udp:={} });
 	
+	g_mgcp_conn_id := res.connId;
 	
 	while (true) {
+		var MGCP_ConnHdlr vc_conn;
+		var ExpectCriteria crit;
+		var MGCP_RecvFrom mrf;
+		var MgcpMessage msg;
+		var MgcpCommand cmd;
+		var MgcpResponse resp;
+
 		alt {
-		[] CLIENT.receive(MgcpCommand:?) {
+		/* MGCP from client */
+		[] CLIENT.receive(MgcpResponse:?) -> value resp sender vc_conn {
+			/* Pass message through */
+			msg.response := resp;
+			MGCP.send(t_MGCP_Send(g_mgcp_conn_id, msg));
 			}
-		[] MGCP.receive(MGCP_RecvFrom:?) {
+		[] MGCP.receive(tr_MGCP_RecvFrom_R(?)) -> value mrf {
+			if (ischosen(mrf.msg.command)) {
+				cmd := mrf.msg.command;
+				vc_conn := ops.create_cb.apply(cmd, id);
+				f_handle_userData(vc_conn, cmd);
+			} else {
+				setverdict(fail, "Received unexpected MGCP response: ", mrf.msg.response);
+				self.stop;
+			}
 			}
 		[] PROC.getcall(MGCPEM_register:{?,?}) -> param(crit, vc_conn) {
 			f_create_expect(crit, vc_conn);
@@ -75,6 +109,11 @@
 	}
 }
 
+private function f_handle_userData(MGCP_ConnHdlr conn, MgcpCommand cmd)
+runs on MGCP_Emulation_CT {
+	CLIENT.send(cmd) to conn;
+}
+
 /* "Expect" Handling */
 
 /*  */

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I09c1ed467e95be236e0758d6a9c8bbef405c02eb
Gerrit-PatchSet: 1
Gerrit-Project: osmo-ttcn3-hacks
Gerrit-Branch: master
Gerrit-Owner: Harald Welte <laforge at gnumonks.org>
Gerrit-Reviewer: daniel <dwillmann at sysmocom.de>



More information about the gerrit-log mailing list