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,