From e52bc2d9dfcdacfe8d90abd16a867d2da7d0aef1 Mon Sep 17 00:00:00 2001 From: Neels Hofmeyr Date: Thu, 1 Oct 2020 06:39:10 +0200 Subject: BSSMAP templates for LCS Both BSSMAP-LE and BSSMAP use the LCS Cause IE with identical definition. In order to not add further dependencies from BSSMAP_Templates.ttcn to BSSAP_LE_Types.ttcn to BSSLAP_Types.ttcn, duplicate the LCS Cause enum. Change-Id: Ifee698c128a5345f6bf0301ad4dac9e083285d56 --- library/BSSMAP_Templates.ttcn | 105 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 105 insertions(+) (limited to 'library') diff --git a/library/BSSMAP_Templates.ttcn b/library/BSSMAP_Templates.ttcn index 0ec56393..da822a94 100644 --- a/library/BSSMAP_Templates.ttcn +++ b/library/BSSMAP_Templates.ttcn @@ -103,6 +103,25 @@ type enumerated myBSSMAP_Cause { GSM0808_CAUSE_DTM_HO_TIMER_EXPIRY ('1100010'B) } with { variant "FIELDLENGTH(7)" }; +type enumerated BSSMAP_LcsCause { + BSSMAP_LCS_CAUSE_UNSPECIFIED ('00000000'B), + BSSMAP_LCS_CAUSE_SYSTEM_FAILURE ('00000001'B), + BSSMAP_LCS_CAUSE_PROTOCOL_ERROR ('00000010'B), + BSSMAP_LCS_CAUSE_DATA_MISSING_IN_REQ ('00000011'B), + BSSMAP_LCS_CAUSE_UNEXP_DATA_IN_REQ ('00000100'B), + BSSMAP_LCS_CAUSE_POS_METH_FAILURE ('00000101'B), + BSSMAP_LCS_CAUSE_TGT_MS_UNREACHABLE ('00000110'B), + BSSMAP_LCS_CAUSE_REQUEST_ABORTED ('00000111'B), + BSSMAP_LCS_CAUSE_FACILITY_NOTSUPP ('00001000'B), + BSSMAP_LCS_CAUSE_INTER_BSC_HO ('00001001'B), + BSSMAP_LCS_CAUSE_INTRA_BSC_HO ('00001010'B), + BSSMAP_LCS_CAUSE_CONGESTION ('00001011'B), + BSSMAP_LCS_CAUSE_INTER_NSE_CHG ('00001100'B), + BSSMAP_LCS_CAUSE_RA_UPDAT ('00001101'B), + BSSMAP_LCS_CAUSE_PTMSI_REALLOC ('00001110'B), + BSSMAP_LCS_CAUSE_GPRS_SUSPENSION ('00001111'B) +} with { variant "FIELDLENGTH(8)" }; + template PDU_BSSAP ts_BSSAP_BSSMAP := { discriminator := '0'B, spare := '0000000'B, @@ -1693,6 +1712,92 @@ return template (present) BIT3 { } } +template (value) BSSMAP_IE_LocationType ts_BSSMAP_IE_LocationType +:= { + elementIdentifier := '44'O, + lengthIndicator := 1, + locationInformation := '00'O, + positioningMethod := omit +} + +template (value) PDU_BSSAP ts_BSSMAP_Perform_Location_Request(template (omit) BSSMAP_IE_IMSI imsi, + template (omit) BSSMAP_IE_CellIdentifier cellIdentifier := omit + ) +modifies ts_BSSAP_BSSMAP := { + pdu := { + bssmap := { + performLocationRequest := { + messageType := '2B'O, + locationType := ts_BSSMAP_IE_LocationType, + cellIdentifier := cellIdentifier, + classmarkInformationType3 := omit, + lCS_ClientType := omit, + chosenChannel := omit, + lCS_Priority := omit, + lCS_QOS := omit, + gPS_AssistanceData := omit, + aPDU := omit, + iMSI := imsi, + iMEI := omit, + gANSS_LocationType := omit, + gANSS_AssistanceData := omit + } + } + } +} + +template (present) BSSMAP_IE_LocationEstimate tr_BSSMAP_IE_LocationEstimate(template (present) octetstring geo_loc := ?) +:= { + elementIdentifier := '45'O, + lengthIndicator := ?, + geographicLocation := geo_loc +} +function tr_BSSMAP_LcsCause(template (present) BSSMAP_LcsCause cause) +return template (omit) BSSMAP_IE_LCSCause { + if (istemplatekind(cause, "omit")) { + return omit; + } + var template BSSMAP_IE_LCSCause ie := { + elementIdentifier := '47'O, + lengthIndicator := 1, + causeValue := int2bit(enum2int(valueof(cause)), 8), + diagnosticValue := omit + } + return ie; +} + +template (present) PDU_BSSAP tr_BSSMAP_Perform_Location_Response( + template BSSMAP_IE_LocationEstimate locationEstimate := *, + template BSSMAP_IE_PositioningData positioningData := *, + template BSSMAP_IE_LCSCause lCS_Cause := * + ) +modifies tr_BSSAP_BSSMAP := { + pdu := { + bssmap := { + performLocationResponse := { + messageType := '2D'O, + locationEstimate := locationEstimate, + positioningData := positioningData, + decipheringKeys := *, + lCS_Cause := lCS_Cause, + velocityEstimate := *, + gANSS_PositioningData := * + } + } + } +} + +template (present) PDU_BSSAP tr_BSSMAP_Perform_Location_Abort(template (present) BSSMAP_IE_LCSCause lCS_Cause := ?) +modifies tr_BSSAP_BSSMAP := { + pdu := { + bssmap := { + performLocationAbort := { + messageType := '2E'O, + lCS_Cause := lCS_Cause + } + } + } +} } with { encode "RAW" }; -- cgit v1.2.3