bsc: inter-BSC HO: add TC_ho_out_of_this_bsc, TC_ho_into_this_bsc
Add f_gen_handover_req() like f_gen_ass_req(), to match AoIP or SCCPlite
requirements.
For incoming HO, MSC_ConnHdlr needs to know the SCCP addresses to expect the
incoming SCCP Connection from MSC to BSC. Add 'handover' section to
TestHdlrParams, and pass in the addresses from test_CT via that.
In osmo-bsc.cfg, add a remote neighbor config, so that the VTY command
'handover any to arfcn 123 bsic any' can trigger an outgoing inter-BSC HO.
Add various BSSMAP handover templates to BSSMAP_Templates.ttcn.
Add RR Ho Command template to L3_Templates.ttcn.
Move ts_BSSAP_Conn_Req() from msc/BSC_ConnectionHandler.ttcn to
library/BSSMAP_Emulation.ttcn, so we can also model an SCCP Connection Request
in BSC_Tests.ttcn (this time from MSC to BSC).
Add the two new tests to bsc/expected-results.xml.
Related: OS#2283
Change-Id: Id22852d4be7f127d827e7a8beeec55db27c07f03
diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn
index 70db2ec..adfcc9e 100644
--- a/library/BSSMAP_Templates.ttcn
+++ b/library/BSSMAP_Templates.ttcn
@@ -670,6 +670,139 @@
}
}
+template PDU_BSSAP tr_BSSMAP_HandoverRequired modifies tr_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ handoverRequired := {
+ messageType := '11'O
+ }
+ }
+ }
+}
+
+template (value) PDU_BSSAP ts_BSSMAP_HandoverCommand(octetstring layer3info)
+modifies ts_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ handoverCommand := {
+ messageType := '13'O,
+ layer3Information := {
+ elementIdentifier := '17'O,
+ lengthIndicator := 0,
+ layer3info := layer3info
+ },
+ cellIdentifier := omit,
+ newBSSToOldBSSInfo := omit,
+ talkerPriority := omit
+ }
+ }
+ }
+}
+
+template PDU_BSSAP ts_BSSMAP_HandoverRequest(
+ template BSSMAP_IE_CircuitIdentityCode cic := omit,
+ template BSSMAP_IE_AoIP_TransportLayerAddress aoip_tla := omit,
+ template BSSMAP_IE_CellIdentifier cell_id_target := ts_CellID_LAC_CI(1, 0),
+ template BSSMAP_IE_CellIdentifier cell_id_source := ts_CellID_LAC_CI(1, 1)
+ )
+modifies ts_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ handoverRequest := {
+ messageType := '10'O,
+ channelType := ts_BSSMAP_IE_ChannelType,
+ encryptionInformation :=
+ ts_BSSMAP_IE_EncrInfo('0000000000000000'O,'01'O),
+ classmarkInformationType := {
+ classmarkInformationType1 := {
+ elementIdentifier := '1D'O,
+ rf_PowerCapability := '000'B,
+ a5_1 := '0'B,
+ esind := '0'B,
+ revisionLevel := '10'B,
+ spare1_1 := '0'B
+ }
+ },
+ cellIdentifierSource := cell_id_source,
+ priority := omit,
+ circuitIdentityCode := cic,
+ downLinkDTX_Flag := omit,
+ cellIdentifierTarget := cell_id_target,
+ interferenceBandToBeUsed := omit,
+ cause := omit,
+ classmarkInformationType3 := omit,
+ currentChannelType1 := omit,
+ speechVersion := omit,
+ groupCallReference := omit,
+ talkerFlag := omit,
+ configurationEvolutionIndication := omit,
+ chosenEncryptionAlgorithm := omit,
+ oldToNewBSSInfo := omit,
+ lSAInformation := omit,
+ lSAAccessControlSuppression := omit,
+ serviceHandover := omit,
+ iMSI_bssmap := omit,
+ sourceToTargetRNCTransparentInfo := omit,
+ sourceToTargetRNCTransparentInfoCDMA := omit,
+ sNAAccessInformation := omit,
+ talkerPriority := omit,
+ aoIPTransportLayer := aoip_tla,
+ codecList := omit,
+ callIdentifier := omit,
+ kC128 := omit,
+ globalCallReference := omit,
+ lCLS_Configuration := omit,
+ connectionStatusControl := omit
+ }
+ }
+ }
+}
+
+template PDU_BSSAP tr_BSSMAP_HandoverRequestAcknowledge(template octetstring layer3info)
+modifies tr_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ handoverRequestAck := {
+ messageType := '12'O,
+ layer3Information := {
+ elementIdentifier := '17'O,
+ lengthIndicator := ?,
+ layer3info := layer3info
+ }
+ }
+ }
+ }
+}
+
+template PDU_BSSAP tr_BSSMAP_HandoverDetect
+modifies tr_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ handoverDetect := {
+ messageType := '1B'O,
+ talkerPriority := *
+ }
+ }
+ }
+}
+
+template PDU_BSSAP tr_BSSMAP_HandoverComplete
+modifies tr_BSSAP_BSSMAP := {
+ pdu := {
+ bssmap := {
+ handoverComplete := {
+ messageType := '14'O,
+ rR_Cause := *,
+ talkerPriority := *,
+ speechCodec := *,
+ codecList := *,
+ chosenEncryptionAlgorithm := *,
+ chosenChannel := *,
+ lCLS_BSS_Status := *
+ }
+ }
+ }
+}
template BSSMAP_IE_IMSI ts_BSSMAP_Imsi(hexstring imsi_digits) := {
elementIdentifier := '08'O,