aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2018-06-15 22:18:43 +0200
committerNeels Hofmeyr <neels@hofmeyr.de>2018-06-18 17:54:33 +0200
commit378a49ce604404cc93cedd216053129ed4e80087 (patch)
tree157fa78a1d2c31ee3c66dd9378e0351f120d52f0
parent92d4842022307b60cd215318596b68b40e708e57 (diff)
bsc: handover: actually send Handover Detect
Until now, the test went from RR Handover Command directly to RR Handover Complete, and osmo-bsc didn't mind it. However, the normal handover procedure requires an RSL Handover Detect to be sent in-between those. Send that. Change-Id: I6e54edcc3a99e116d852eca8e48c7a5bc685e832
-rw-r--r--bsc/MSC_ConnectionHandler.ttcn4
-rw-r--r--library/RSL_Types.ttcn9
2 files changed, 13 insertions, 0 deletions
diff --git a/bsc/MSC_ConnectionHandler.ttcn b/bsc/MSC_ConnectionHandler.ttcn
index 08467628..2042979d 100644
--- a/bsc/MSC_ConnectionHandler.ttcn
+++ b/bsc/MSC_ConnectionHandler.ttcn
@@ -877,6 +877,10 @@ altstep as_handover(inout HandoverState st) runs on MSC_ConnHdlr {
* before performing a hand-over */
f_rslem_resume(RSL1_PROC);
+ /* send handover detect */
+ RSL1.send(ts_RSL_HANDO_DET(new_chan_nr));
+ f_sleep(0.3);
+
/* send handover complete over the new channel */
var PDU_ML3_MS_NW l3_tx := valueof(ts_RRM_HandoverComplete('00'O));
RSL1.send(ts_RSL_DATA_IND(new_chan_nr, valueof(ts_RslLinkID_DCCH(0)),
diff --git a/library/RSL_Types.ttcn b/library/RSL_Types.ttcn
index 3804d403..e1f6af0e 100644
--- a/library/RSL_Types.ttcn
+++ b/library/RSL_Types.ttcn
@@ -1309,6 +1309,15 @@ template RSL_Message tr_RSL_MsgTypeDR(template RSL_MessageType msg_type) modifie
}
}
+ /* 8.4.7 BTS -> BSC */
+ template (value) RSL_Message ts_RSL_HANDO_DET(template (value) RslChannelNr chan_nr) := {
+ msg_disc := ts_RSL_MsgDisc(RSL_MDISC_DCHAN, false),
+ msg_type := RSL_MT_HANDO_DET,
+ ies := {
+ t_RSL_IE(RSL_IE_CHAN_NR, RSL_IE_Body:{chan_nr := chan_nr})
+ }
+ }
+
/* COMMON CHANNEL MANAGEMENT MESSAGES */