summaryrefslogtreecommitdiffstats
path: root/bsc-nat/BSC_MS_ConnectionHandler.ttcn
diff options
context:
space:
mode:
authorDaniel Willmann <dwillmann@sysmocom.de>2017-11-30 13:14:37 +0100
committerDaniel Willmann <dwillmann@sysmocom.de>2017-11-30 13:14:37 +0100
commit04541d715edb56d39c1e7d3237053be984362167 (patch)
tree39a2dd0d0cfd1860509301e53ede36b04d4f182b /bsc-nat/BSC_MS_ConnectionHandler.ttcn
parente98bb2e1538f1e5ca3e432ced2eb5bb21b5bbd00 (diff)
bsc-nat: Wait for the second MDCX in the BSC_MS conn handler
The bsc-nat sends another MDCX so account for that in the state machine
Diffstat (limited to 'bsc-nat/BSC_MS_ConnectionHandler.ttcn')
-rw-r--r--bsc-nat/BSC_MS_ConnectionHandler.ttcn11
1 files changed, 10 insertions, 1 deletions
diff --git a/bsc-nat/BSC_MS_ConnectionHandler.ttcn b/bsc-nat/BSC_MS_ConnectionHandler.ttcn
index ee56401..a385525 100644
--- a/bsc-nat/BSC_MS_ConnectionHandler.ttcn
+++ b/bsc-nat/BSC_MS_ConnectionHandler.ttcn
@@ -66,6 +66,7 @@ type enumerated BSC_State {
BSC_STATE_WAIT_ASS_REQ,
BSC_STATE_WAIT_CRCX,
BSC_STATE_WAIT_MDCX,
+ BSC_STATE_WAIT_MDCX2,
BSC_STATE_WAIT_CLEAR_CMD,
BSC_STATE_WAIT_DLCX,
BSC_STATE_WAIT_DISC_IND
@@ -116,7 +117,15 @@ runs on BSC_MS_ConnHdlr {
/* MDCX -> OK */
[g_state == BSC_STATE_WAIT_MDCX] BSSAP.receive(tr_MDCX) -> value mgcp_cmd {
/* FIXME: verify if local part of endpoint name matches CIC */
- /* respond with CRCX_ACK */
+ /* respond with MDCX_ACK */
+ g_state := BSC_STATE_WAIT_MDCX2;
+ BSSAP.send(ts_MDCX_ACK(mgcp_cmd.line.trans_id, g_mgcp_conn_id, g_sdp));
+ }
+
+ /* MDCX -> OK */
+ [g_state == BSC_STATE_WAIT_MDCX2] BSSAP.receive(tr_MDCX) -> value mgcp_cmd {
+ /* FIXME: verify if local part of endpoint name matches CIC */
+ /* respond with MDCX_ACK */
g_state := BSC_STATE_WAIT_CLEAR_CMD;
BSSAP.send(ts_MDCX_ACK(mgcp_cmd.line.trans_id, g_mgcp_conn_id, g_sdp));
}