diff options
author | erititan | 2017-10-09 09:45:52 +0000 |
---|---|---|
committer | erititan | 2017-10-09 09:45:52 +0000 |
commit | 9579761e051318cd786f914f0eceead938d07f3f (patch) | |
tree | 5c4db4e611704b8db5cd40f75a8636356eb8b385 | |
parent | 5d1efd52e896ac022459c2765cc39cf03f3e28b7 (diff) | |
download | titan.ProtocolModules.BSSMAP_v11.2.0-9579761e051318cd786f914f0eceead938d07f3f.tar.gz titan.ProtocolModules.BSSMAP_v11.2.0-9579761e051318cd786f914f0eceead938d07f3f.tar.xz titan.ProtocolModules.BSSMAP_v11.2.0-9579761e051318cd786f914f0eceead938d07f3f.zip |
Initial commitR.2.A
-rw-r--r-- | BSSMAP_v11.2.0_CNL113761.tpd | 57 | ||||
-rw-r--r-- | doc/15517-CNL113761_EN_A_PDFV1R5.pdf | bin | 0 -> 152293 bytes | |||
-rw-r--r-- | doc/19817-CNL113761_EN_A_PDFV1R5.pdf | bin | 0 -> 173892 bytes | |||
-rw-r--r-- | doc/BSSMAP_v11.2_PRI.pdf | bin | 0 -> 28422 bytes | |||
-rw-r--r-- | src/BSSAP_Types.ttcn | 2983 | ||||
-rw-r--r-- | src/BSSMAP_V11.2.0.grp | 26 |
6 files changed, 3066 insertions, 0 deletions
diff --git a/BSSMAP_v11.2.0_CNL113761.tpd b/BSSMAP_v11.2.0_CNL113761.tpd new file mode 100644 index 0000000..c9c06f0 --- /dev/null +++ b/BSSMAP_v11.2.0_CNL113761.tpd @@ -0,0 +1,57 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + Copyright (c) 2017 Ericsson + + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + + File: BSSMAP_v11.2.0_CNL113761.tpd + Description: tpd project file + Rev: R2A + Prodnr: CNL 113 761 + + --> +<TITAN_Project_File_Information version="1.0"> + <ProjectName>BSSMAP_v11.2.0_CNL113761</ProjectName> + <ReferencedProjects> + <ReferencedProject name="ProtocolModules_Common" projectLocationURI="../COMMON/ProtocolModules_Common.tpd"/> + </ReferencedProjects> + <Folders> + <FolderResource projectRelativePath="doc" relativeURI="doc"/> + <FolderResource projectRelativePath="src" relativeURI="src"/> + </Folders> + <Files> + <FileResource projectRelativePath="doc/BSSMAP_v11.2.0_CNL113761_FS.pdf" relativeURI="/doc/BSSMAP_v11.2.0_CNL113761_FS.pdf"/> + <FileResource projectRelativePath="doc/BSSMAP_v11.2.0_CNL113761_PRI.pdf" relativeURI="/doc/BSSMAP_v11.2.0_CNL113761_PRI.pdf"/> + <FileResource projectRelativePath="doc/BSSMAP_v11.2.0_CNL113761_UG.pdf" relativeURI="/doc/BSSMAP_v11.2.0_CNL113761_UG.pdf"/> + <FileResource projectRelativePath="src/BSSAP_Types.ttcn" relativeURI="/src/BSSAP_Types.ttcn"/> + </Files> + <ActiveConfiguration>Default</ActiveConfiguration> + <Configurations> + <Configuration name="Default"> + <ProjectProperties> + <MakefileSettings> + <generateInternalMakefile>true</generateInternalMakefile> + <GNUMake>true</GNUMake> + <incrementalDependencyRefresh>true</incrementalDependencyRefresh> + <targetExecutable>bin/BSSMAP_v11.2.0_CNL113761</targetExecutable> + <buildLevel>Level 3 - Creating object files with dependency update</buildLevel> + </MakefileSettings> + <LocalBuildSettings> + <workingDirectory>bin</workingDirectory> + </LocalBuildSettings> + </ProjectProperties> + <FolderProperties> + <FolderResource> + <FolderPath>doc</FolderPath> + <FolderProperties> + <ExcludeFromBuild>true</ExcludeFromBuild> + </FolderProperties> + </FolderResource> + </FolderProperties> + </Configuration> + </Configurations> +</TITAN_Project_File_Information> diff --git a/doc/15517-CNL113761_EN_A_PDFV1R5.pdf b/doc/15517-CNL113761_EN_A_PDFV1R5.pdf Binary files differnew file mode 100644 index 0000000..da2a5e2 --- /dev/null +++ b/doc/15517-CNL113761_EN_A_PDFV1R5.pdf diff --git a/doc/19817-CNL113761_EN_A_PDFV1R5.pdf b/doc/19817-CNL113761_EN_A_PDFV1R5.pdf Binary files differnew file mode 100644 index 0000000..bd28137 --- /dev/null +++ b/doc/19817-CNL113761_EN_A_PDFV1R5.pdf diff --git a/doc/BSSMAP_v11.2_PRI.pdf b/doc/BSSMAP_v11.2_PRI.pdf Binary files differnew file mode 100644 index 0000000..d951fe3 --- /dev/null +++ b/doc/BSSMAP_v11.2_PRI.pdf diff --git a/src/BSSAP_Types.ttcn b/src/BSSAP_Types.ttcn new file mode 100644 index 0000000..cec9a6e --- /dev/null +++ b/src/BSSAP_Types.ttcn @@ -0,0 +1,2983 @@ +/////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2000-2017 Ericsson Telecom AB +// +// All rights reserved. This program and the accompanying materials +// are made available under the terms of the Eclipse Public License v1.0 +// which accompanies this distribution, and is available at +// http://www.eclipse.org/legal/epl-v10.html +/////////////////////////////////////////////////////////////////////////////// +// +// File: BSSAP_Types.ttcn +// Rev: R2A +// Prodnr: CNL 113 761 +// Updated: 2012-10-30 +// Contact: http://ttcn.ericsson.se + +module BSSAP_Types { + +// This module contains the type definitions and encoding attributes for +// Base Station System. The signalling protocol reference model is based +// on 48.008 V11.2.0 Figure 1. +// +// ------------------------------ +// | BSSAP | +// | | +// | ------------------------- | BSSMAP layer is defined in 48.008 v11.2.0 +// | | | | | +// | | DTAP | BSSMAP | | +// | | | | | +// | ------------------------- | +// | | Distribution Function | | +// |=============================| +// | SCCP | +// ------------------------------ + + +import from General_Types all; + +external function enc_PDU_BSSAP(in PDU_BSSAP pdu) return octetstring +with { extension "prototype(convert) encode(RAW)" } +external function dec_PDU_BSSAP(in octetstring stream) return PDU_BSSAP +with { extension "prototype(convert) decode(RAW)" } + +external function enc_PDU_BSSAP_fast(in PDU_BSSAP pdu, out octetstring stream) +with { extension "prototype(fast) encode(RAW)" } +external function dec_PDU_BSSAP_backtrack(in octetstring stream, out PDU_BSSAP pdu) return integer +with { extension "prototype(backtrack) decode(RAW)" } + +/////////////////////////////////////////// +// BSSMAP information element definition +/////////////////////////////////////////// + +// Circuit Identity Code - 48.008 subclause 3.2.2.2 +type record BSSMAP_IE_CircuitIdentityCode +{ + OCT1 elementIdentifier, // '01'O + OCT1 cicHigh, // CIC = 11 bits of used information + OCT1 cicLow // (last 5 bits not used) +} with { variant "PRESENCE (elementIdentifier = '01'O)" } + + +// Connection Release Requested - 48.008 subclause 3.2.2.3 +type record BSSMAP_IE_ConnectionReleaseRequested +{ + OCT1 elementIdentifier // '36'O +} with { variant "PRESENCE (elementIdentifier = '36'O)" } + + +// Resource Available - 48.008 subclause 3.2.2.4 +type record BSSMAP_IE_ResourceAvailable +{ + OCT1 elementIdentifier, // '03'O + OCT4 band1, + OCT4 band2, + OCT4 band3, + OCT4 band4, + OCT4 band5 +} with { variant "PRESENCE (elementIdentifier = '03'O)" } + +// Cause - 48.008 subclause 3.2.2.5 +type record BSSMAP_IE_Cause +{ + OCT1 elementIdentifier, // '04'O + INT1 lengthIndicator, + BIT7 causeValue, + BIT1 extensionCauseValue, + OCT1 spare1 optional +} with { variant "PRESENCE (elementIdentifier = '04'O)" + variant (lengthIndicator) + "LENGTHTO (causeValue,extensionCauseValue,spare1)"; + variant (spare1) "PRESENCE(extensionCauseValue = '1'B)"} + +// IMSI - 48.008 subclause 3.2.2.6 +type record BSSMAP_IE_IMSI +{ + OCT1 elementIdentifier, // '08'O + INT1 lengthIndicator, + BIT3 typeOfIdentity, + BIT1 oddEvenIndicator, // '0'B even / 1'B odd number of identity digits + HEX5_16 digits // if nr of digits is even, the last digit: '1111'B +} with { variant "PRESENCE (elementIdentifier = '08'O)" + variant (lengthIndicator) + "LENGTHTO (typeOfIdentity,oddEvenIndicator,digits)"; + variant "PADDING(yes),PADDING_PATTERN('1'B)"} + + +// TMSI - 48.008 subclause 3.2.2.7 +type record BSSMAP_IE_TMSI +{ + OCT1 elementIdentifier, // '09'O + INT1 lengthIndicator, + OCT4 tmsiOctets // octets 3-6 in real +} with { variant "PRESENCE (elementIdentifier = '09'O)" + variant (lengthIndicator) "LENGTHTO (tmsiOctets)"} + + +// Number Of MSs - 48.008 subclause 3.2.2.8 +type record BSSMAP_IE_NumberOfMSs +{ + OCT1 elementIdentifier, // '0E'O + OCT1 NrOfHoCandidates +} + + +// Layer 3 Header Info - 48.008 subclause 3.2.2.9 +type record BSSMAP_IE_Layer3HeaderInfo +{ + OCT1 elementIdentifier, //'07'O + INT1 lengthIndicator, //'02'O + BIT4 pd, // '0110'B + BIT4 spare1_4, // '0000'B + BIT4 ti, // '0000'B + BIT4 spare2_4 // '0000'B +} with { variant "PRESENCE (elementIdentifier = '07'O)" + variant (lengthIndicator) "LENGTHTO (pd, spare1_4, ti, spare2_4)" } + + +// Encryption Information - 48.008 subclause 3.2.2.10 +type record BSSMAP_IE_EncryptionInformation +{ + OCT1 elementIdentifier, // '0A'O + INT1 lengthIndicator, // 1..9 + OCT1 permittedAlgorithms,// '1'B encryption no + // '0' B GSM A5/1 not useable + // '1' B GSM A5/useable 1 + // '0' B GSM A5/2 not useable + // '1' B GSM A5/useable 2 + // '0' B GSM A5/3 not useable + // '1' B GSM A5/useable 3 + // '0' B GSM A5/4 not useable + // '1' B GSM A5/useable 4 + // '0' B GSM A5/5 useable not + // '1' B GSM A5/useable 5 + // '0' B GSM A5/6 useable not + // '1' B GSM A5/useable 6 + // '0' B GSM A5/7 useable not + // '1' B GSM A5/useable 7 + OCT8 key optional +} with { variant "PRESENCE (elementIdentifier = '0A'O)" + variant (lengthIndicator) "LENGTHTO (permittedAlgorithms, key)" } + + +// Channel Type - 48.008 subclause 3.2.2.11 +type record BSSMAP_IE_ChannelType +{ + OCT1 elementIdentifier, //'0B'O + INT1 lengthIndicator, // 3..8 + BIT4 speechOrDataIndicator, //'0001'B Speech,'0010'B Data '0011'B Sign + BIT4 spare1_4, // '0000'B + OCT1 channelRateAndType, // + octetstring speechId_DataIndicator +} with {variant (lengthIndicator) "LENGTHTO (speechOrDataIndicator, + spare1_4, channelRateAndType, speechId_DataIndicator)" } + + +// Periodicity - 48.008 subclause 3.2.2.12 +type record BSSMAP_IE_Periodicity +{ + OCT1 elementIdentifier, //'0C'O + OCT1 periodicity +} + + +// Extended Resource Indicator - 48.008 subclause 3.2.2.13 +type record BSSMAP_IE_ExtendedResourceInd +{ + OCT1 elementIdentifier, //'0D'O + BIT1 TARR, + BIT1 SM, + BIT6 spare +} with { variant "PRESENCE (elementIdentifier = '0D'O)" } + + +// Total Resource Accessible - 48.008 subclause 3.2.2.14 +type record BSSMAP_IE_TotalResourceAccessible +{ + OCT1 elementIdentifier, //'22'O + OCT2 nrOfFullRateCh, + OCT2 nrOfHalfRateCh +} with { variant "PRESENCE (elementIdentifier = '22'O)" } + + +// LSA Identifier - 48.008 subclause 3.2.2.15 +type record BSSMAP_IE_LSAIdentifier +{ + OCT1 elementIdentifier, //'3B'O + INT1 lengthIndicator, // 3 + BSSMAP_FIELD_LSAId lSAID +} with { variant "PRESENCE (elementIdentifier = '3B'O)" + variant (lengthIndicator) "LENGTHTO (lSAID)"} + +type record BSSMAP_FIELD_LSAId +{ + OCT1 lSAID, + OCT1 lSAIDcont1, + OCT1 lSAIDcont2 +} + + +// LSA Identifier List - 48.008 subclause 3.2.2.16 +type record BSSMAP_IE_LSAIdentifierList +{ + OCT1 elementIdentifier, //'3C'O + INT1 lengthIndicator, + BIT1 EP, + BIT7 spare, + BSSMAP_FIELD_LSAIdList lSAIDlist +} with {variant (lengthIndicator) "LENGTHTO (EP,spare,lSAIDlist)"} + +type record of BSSMAP_FIELD_LSAId BSSMAP_FIELD_LSAIdList + + +// Cell Identifier - 48.008 subclause 3.2.2.17 +type record BSSMAP_IE_CellIdentifier +{ + OCT1 elementIdentifier, // '05'O + INT1 lengthIndicator, + BIT4 cellIdentifierDiscriminator, + BIT4 spare1_4, // '0000'B + BSSMAP_FIELD_CellIdentification cellIdentification +} with { variant "PRESENCE (elementIdentifier = '05'O)" + variant (lengthIndicator) + "LENGTHTO(cellIdentifierDiscriminator,spare1_4,cellIdentification)"; + variant (cellIdentification) "CROSSTAG( + cI_CGI, cellIdentifierDiscriminator='0000'B; + cI_LAC_CI, cellIdentifierDiscriminator='0001'B; + cI_CI, cellIdentifierDiscriminator='0010'B; + cI_noCell, cellIdentifierDiscriminator='0011'B; + cI_PLMN_LAC_RNC, cellIdentifierDiscriminator='1000'B; + cI_RNC, cellIdentifierDiscriminator='1001'B; + cI_LAC_RNC, cellIdentifierDiscriminator='1010'B; + cI_SAI, cellIdentifierDiscriminator='1011'B; + ci_LAC_RNC_CI, cellIdentifierDiscriminator='1100'B; + )"} + +type union BSSMAP_FIELD_CellIdentification +{ + BSSMAP_FIELD_CellIdentification_CGI cI_CGI, // discriminator = '0000'B + BSSMAP_FIELD_CellIdentification_LAC_CI cI_LAC_CI, // discriminator = '0001'B + OCT2 cI_CI, // discriminator = '0010'B + OCT0 cI_noCell, // discriminator = '0011'B + BSSMAP_FIELD_CellIdentification_PLMN_LAC_RNC cI_PLMN_LAC_RNC,// discriminator = '1000'B + OCT2 cI_RNC, // discriminator = '1001'B + BSSMAP_FIELD_CellIdentification_LAC_RNC cI_LAC_RNC,// discriminator = '1010'B + BSSMAP_FIELD_CellIdentification_SAI cI_SAI, // discriminator = '1011'B + BSSMAP_FIELD_LAC_RNC_CI ci_LAC_RNC_CI // discriminator = '1100'B +} + +type record BSSMAP_FIELD_CellIdentification_CGI +{ + OCT3 mcc_mnc, + OCT2 lac, + OCT2 ci +} + +type record BSSMAP_FIELD_CellIdentification_LAC_CI +{ + OCT2 lac, + OCT2 ci +} + +type record BSSMAP_FIELD_CellIdentification_LAI +{ + OCT3 mcc_mnc, + OCT2 lac +} + +type record BSSMAP_FIELD_CellIdentification_PLMN_LAC_RNC +{ + OCT3 mcc_mnc, + OCT2 lac, + OCT2 rncId +} + +type record BSSMAP_FIELD_CellIdentification_LAC_RNC +{ + OCT2 lac, + OCT2 rncId +} + +type record BSSMAP_FIELD_CellIdentification_SAI +{ + OCT3 mcc_mnc, + OCT2 lac, + OCT2 sac +} + +type record BSSMAP_FIELD_LAC_RNC_CI +{ + OCT3 mcc_mnc, + OCT2 lac, + OCT2 rncId, + OCT2 ci +} + + +// Cell Identifier List - 48.008 subclause 3.2.2.27 +type record BSSMAP_IE_CellIdentifierList +{ + OCT1 elementIdentifier, // '1A'O + INT1 lengthIndicator, + BIT4 cellIdentifierDiscriminator, + BIT4 spare1_4, // '0000'B + BSSMAP_FIELD_CellIdentificationList cellIdentificationList +} with { variant "PRESENCE (elementIdentifier = '1A'O)" + variant (lengthIndicator) + "LENGTHTO(cellIdentifierDiscriminator,spare1_4,cellIdentificationList)"; + variant (cellIdentificationList) "CROSSTAG( + cIl_CGI, cellIdentifierDiscriminator='0000'B; + cIl_LAC_CI, cellIdentifierDiscriminator='0001'B; + cIl_CI, cellIdentifierDiscriminator='0010'B; + cIl_noCell, cellIdentifierDiscriminator='0011'B; + cIl_LAI, cellIdentifierDiscriminator='0100'B; + cIl_LAC, cellIdentifierDiscriminator='0101'B; + cIl_allInBSS, cellIdentifierDiscriminator='0110'B; + cIl_PLMN_LAC_RNC, cellIdentifierDiscriminator='1000'B; + cIl_RNC, cellIdentifierDiscriminator='1001'B; + cIl_LAC_RNC, cellIdentifierDiscriminator='1010'B;)"} + +type union BSSMAP_FIELD_CellIdentificationList { + BSSMAP_FIELD_CellIdentificationList_CGI cIl_CGI, // discr. = '0000'B + BSSMAP_FIELD_CellIdentificationList_LAC_CI cIl_LAC_CI,// discr. = '0001'B + RecordOfOCT2 cIl_CI, // discr. = '0010'B + OCT0 cIl_noCell,// discr. = '0011'B + BSSMAP_FIELD_CellIdentificationList_LAI cIl_LAI, // discr. = '0100'B only paging + RecordOfOCT2 cIl_LAC, // discr. = '0101'B only paging + OCT0 cIl_allInBSS, // discr. = '0110'B only paging + BSSMAP_FIELD_CellIdentificationList_PLMN_LAC_RNC cIl_PLMN_LAC_RNC, // discr. = '1000'B + RecordOfOCT2 cIl_RNC, // discr. = '1001'B + BSSMAP_FIELD_CellIdentificationList_LAC_RNC cIl_LAC_RNC // discr. = '1010'B +} + + +type record of OCT2 +RecordOfOCT2 + +type record of BSSMAP_FIELD_CellIdentification_CGI +BSSMAP_FIELD_CellIdentificationList_CGI + +type record of BSSMAP_FIELD_CellIdentification_LAC_CI +BSSMAP_FIELD_CellIdentificationList_LAC_CI + +type record of BSSMAP_FIELD_CellIdentification_LAI +BSSMAP_FIELD_CellIdentificationList_LAI + +type record of BSSMAP_FIELD_CellIdentification_PLMN_LAC_RNC +BSSMAP_FIELD_CellIdentificationList_PLMN_LAC_RNC + +type record of BSSMAP_FIELD_CellIdentification_LAC_RNC +BSSMAP_FIELD_CellIdentificationList_LAC_RNC + +type record of BSSMAP_FIELD_CellIdentification_SAI +BSSMAP_FIELD_CellIdentificationList_SAI + +// 3.2.2.27a Cell Identifier List Segment +type record BSSMAP_IE_CellIdentifierListSegment +{ + OCT1 elementIdentifier, // '6D'O + INT1 lengthIndicator, + BIT4 sequenceNumber, + BIT4 sequenceLength, + BIT4 cellIdentifierDiscriminator, + BIT4 spare, + BSSMAP_FIELD_CellIdentificationListSegment cellIdentificationListSegment +} with { variant "PRESENCE (elementIdentifier = '6D'O)" + variant (lengthIndicator) + "LENGTHTO(sequenceNumber, sequenceLength, cellIdentifierDiscriminator, spare, cellIdentificationListSegment)"; + variant (cellIdentificationListSegment) "CROSSTAG( + cIl_CGI, cellIdentifierDiscriminator='0000'B; + cIl_LAC_CI, cellIdentifierDiscriminator='0001'B; + cIl_CI, cellIdentifierDiscriminator='0010'B; + cIl_noCell, cellIdentifierDiscriminator='0011'B; + cIl_LAI, cellIdentifierDiscriminator='0100'B; + cIl_LAC, cellIdentifierDiscriminator='0101'B; + cIl_allInBSS, cellIdentifierDiscriminator='0110'B; + cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"} + + + +type union BSSMAP_FIELD_CellIdentificationListSegment +{ + BSSMAP_FIELD_CellIdentificationList_CGI cIl_CGI, // discr. ='0000'B; + BSSMAP_FIELD_CellIdentificationList_LAC_CI_Segment cIl_LAC_CI, // discr. ='0001'B + BSSMAP_FIELD_CellIdentificationList_CIL_CI_Segment cIl_CI, // discr. ='0010'B; + OCT0 cIl_noCell, // discr. ='0011'B; + BSSMAP_FIELD_CellIdentificationList_LAI cIl_LAI, // discr. ='0100'B; + RecordOfOCT2 cIl_LAC, // discr. ='0101'B; + OCT0 cIl_allInBSS, // discr. ='0101'B; + RecordOfOCT3 cIl_MCC_MNC // discr. ='0111'B; +} + +type record BSSMAP_FIELD_CellIdentificationList_LAC_CI_Segment +{ + OCT3 mcc_mnc, + BSSMAP_FIELD_CellIdentificationList_LAC_CI lac_ci +} + +type record BSSMAP_FIELD_CellIdentificationList_CIL_CI_Segment +{ + OCT3 mcc_mnc, + OCT2 lac, + RecordOfOCT2 ci +} + +type record of OCT3 +RecordOfOCT3 + + +// 3.2.2.27b Cell Identifier List Segment for Established Cells +type record BSSMAP_IE_CellIdentifierListSegmentEstCells +{ + OCT1 elementIdentifier, // '71'O + INT1 lengthIndicator, + BIT4 cellIdentifierDiscriminator, + BIT4 spare1_4, // '0000'B + BSSMAP_FIELD_CellIdentificationListEstablishment cellIdentificationListEstCells +} with { variant "PRESENCE (elementIdentifier = '71'O)" + variant (lengthIndicator) + "LENGTHTO(cellIdentifierDiscriminator,spare1_4,cellIdentificationListEstCells)"; + variant (cellIdentificationListEstCells) "CROSSTAG( + cIl_CGI, cellIdentifierDiscriminator='0000'B; + cIl_LAC_CI, cellIdentifierDiscriminator='0001'B; + cIl_CI, cellIdentifierDiscriminator='0010'B; + cIl_LAI, cellIdentifierDiscriminator='0100'B; + cIl_LAC, cellIdentifierDiscriminator='0101'B; + cIl_allInBSS, cellIdentifierDiscriminator='0110'B; + cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"} + + +type union BSSMAP_FIELD_CellIdentificationListEstablishment +{ + BSSMAP_FIELD_CellIdentificationList_CGI cIl_CGI, // discr. = '0000'B + BSSMAP_FIELD_CellIdentificationList_LAC_CI_Segment cIl_LAC_CI, // discr. = '0001'B; + BSSMAP_FIELD_CellIdentificationList_CIL_CI_Segment cIl_CI, // discr. = '0010'B; + BSSMAP_FIELD_CellIdentificationList_LAI cIl_LAI, // discr. = '0100'B; + RecordOfOCT2 cIl_LAC, // discr. = '0101'B; + OCT0 cIl_allInBSS, // discr. = '0110'B; + RecordOfOCT3 cIl_MCC_MNC // discr. = '0111'B; + } + +// 3.2.2.27c +type record BSSMAP_IE_CellIdentifierListSegmentCellsToEst +{ + OCT1 elementIdentifier, // '73'O + INT1 lengthIndicator, + BIT4 cellIdentifierDiscriminator, + BIT4 spare1_4, // '0000'B + BSSMAP_FIELD_CellIdentificationListEstablishment cellIdentificationListCellsToEst +} with { variant "PRESENCE (elementIdentifier = '72'O)" + variant (lengthIndicator) + "LENGTHTO(cellIdentifierDiscriminator,spare1_4,cellIdentificationListCellsToEst)"; + variant (cellIdentificationListCellsToEst) "CROSSTAG( + cIl_CGI, cellIdentifierDiscriminator='0000'B; + cIl_LAC_CI, cellIdentifierDiscriminator='0001'B; + cIl_CI, cellIdentifierDiscriminator='0010'B; + cIl_LAI, cellIdentifierDiscriminator='0100'B; + cIl_LAC, cellIdentifierDiscriminator='0101'B; + cIl_allInBSS, cellIdentifierDiscriminator='0110'B; + cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"} + +// 3.2.2.27e +type record BSSMAP_IE_CellIdentifierListSegmentReleasedCellsNoUserPresent +{ + OCT1 elementIdentifier, // '74'O + INT1 lengthIndicator, + BIT4 cellIdentifierDiscriminator, + BIT4 spare1_4, // '0000'B + BSSMAP_FIELD_CellIdentificationListEstablishment cellIdentificationListReleasedCellsNoUserPresent +} with { variant "PRESENCE (elementIdentifier = '74'O)" + variant (lengthIndicator) + "LENGTHTO(cellIdentifierDiscriminator,spare1_4,cellIdentificationListReleasedCellsNoUserPresent)"; + variant (cellIdentificationListReleasedCellsNoUserPresent) "CROSSTAG( + cIl_CGI, cellIdentifierDiscriminator='0000'B; + cIl_LAC_CI, cellIdentifierDiscriminator='0001'B; + cIl_CI, cellIdentifierDiscriminator='0010'B; + cIl_LAI, cellIdentifierDiscriminator='0100'B; + cIl_LAC, cellIdentifierDiscriminator='0101'B; + cIl_allInBSS, cellIdentifierDiscriminator='0110'B; + cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"} + + // 3.2.2.27f +type record BSSMAP_IE_CellIdentifierListSegmentNotEstablishedCellsNoEstPossible +{ + OCT1 elementIdentifier, // '73'O + INT1 lengthIndicator, + BIT4 cellIdentifierDiscriminator, + BIT4 spare1_4, // '0000'B + BSSMAP_FIELD_CellIdentificationListEstablishment cellIdentificationListNotEstablishedCellsNoEstPossible +} with { variant "PRESENCE (elementIdentifier = '73'O)" + variant (lengthIndicator) + "LENGTHTO(cellIdentifierDiscriminator,spare1_4,cellIdentificationListNotEstablishedCellsNoEstPossible)"; + variant (cellIdentificationListNotEstablishedCellsNoEstPossible) "CROSSTAG( + cIl_CGI, cellIdentifierDiscriminator='0000'B; + cIl_LAC_CI, cellIdentifierDiscriminator='0001'B; + cIl_CI, cellIdentifierDiscriminator='0010'B; + cIl_LAI, cellIdentifierDiscriminator='0100'B; + cIl_LAC, cellIdentifierDiscriminator='0101'B; + cIl_allInBSS, cellIdentifierDiscriminator='0110'B; + cIl_MCC_MNC, cellIdentifierDiscriminator='0111'B;)"} + + +// Priority - 48.008 subclause 3.2.2.18 +type record BSSMAP_IE_Priority +{ + OCT1 elementIdentifier, //'06'O + INT1 lengthIndicator, //'01'O + BIT1 pvi, // '0'B connection canNOT be preempted by other allocation + // '1'B connection might be preempted by other allocation + BIT1 qa, // '0'B queuing not allowed - '1'B queuing allowed + BIT4 priorityLevel, // '0000'B spare + // '0001'B priority 1 level (highest) + // '1110'B priority 14 level (lowest) + // '1111'B priority used not + BIT1 pci, // '0'B allocation canNOT preempt connection other + // '1'B allocation might preempt other connection + BIT1 spare1_1 // '0'B +} with { variant "PRESENCE (elementIdentifier = '06'O)" + variant(lengthIndicator) "LENGTHTO(pvi,qa,priorityLevel,pci,spare1_1)" } + + +// Classmark Information Type 2 - 48.008 subclause 3.2.2.19 +type record BSSMAP_IE_ClassmarkInformationType2 +{ + OCT1 elementIdentifier, //'12'O + INT1 lengthIndicator, // '02'O or '03'O + BIT3 rf_PowerCapability, // '000'B class1 (for GSM+DCS+PCS) + // '001'B class2 (for GSM+DCS+PCS) + // '010'B class3 (for GSM+DCS+PCS) + // '011'class4 B (only for GSM) + // '100'class5 B (only for GSM) + BIT1 a5_1, //encryption algorithm A5/1 available ('1'B) or not ('0'B) + BIT1 esind,//controlled early classmark sending implemented ('1'B) or not ('0'B) + BIT2 revisionLevel, // '00'B reserved for phase1 (GSM+DCS) + // '00'B reserved (PCS) + // '01'B used by phase2 MSs (GSM+DCS) + // '01'B used by PCS1900 MSs phase1 (PCS) + BIT1 spare1_1, // '0'B + BIT1 fc, // MS' support of E/R_GSM ('1'B) or not ('0'B) + BIT1 vgcs, // VGCS capability or notification wanted ('1'B) or not ('0'B) + BIT1 vbs, // VBS capability or notification wanted ('1'B) or not ('0'B) + BIT1 sm_Capability, // SM capbility present ('1'B) or not ('0'B) + BIT2 ss_ScreenIndicator, // '00'B default value of phase1 (GSM+DCS) + // '00'reserved B (PCS) + // '01'B capability of notation ellipsis + // '10'B for future use + // '11'B for use future + BIT1 ps_Capability, // ignored, if received + BIT1 spare2_1, // '0'B + BSSMAP_FIELD_ClassmarkInformationType2_oct5 classmarkInformationType2_oct5 +} with { variant "PRESENCE (elementIdentifier = '12'O)"; + variant (lengthIndicator) "LENGTHTO (rf_PowerCapability, a5_1, + esind, revisionLevel, spare1_1, fc, vgcs, vbs, sm_Capability, + ss_ScreenIndicator, ps_Capability, spare2_1, + classmarkInformationType2_oct5)" } + +// Helper type for BSSMAP Applib +type record BSSMAP_IE_ClassmarkInformationType2_V +{ + BIT3 rf_PowerCapability, // '000'B class1 (for GSM+DCS+PCS) + // '001'B class2 (for GSM+DCS+PCS) + // '010'B class3 (for GSM+DCS+PCS) + // '011'class4 B (only for GSM) + // '100'class5 B (only for GSM) + BIT1 a5_1, //encryption algorithm A5/1 available ('1'B) or not ('0'B) + BIT1 esind,//controlled early classmark sending implemented ('1'B) or not ('0'B) + BIT2 revisionLevel, // '00'B reserved for phase1 (GSM+DCS) + // '00'B reserved (PCS) + // '01'B used by phase2 MSs (GSM+DCS) + // '01'B used by PCS1900 MSs phase1 (PCS) + BIT1 spare1_1, // '0'B + BIT1 fc, // MS' support of E/R_GSM ('1'B) or not ('0'B) + BIT1 vgcs, // VGCS capability or notification wanted ('1'B) or not ('0'B) + BIT1 vbs, // VBS capability or notification wanted ('1'B) or not ('0'B) + BIT1 sm_Capability, // SM capbility present ('1'B) or not ('0'B) + BIT2 ss_ScreenIndicator, // '00'B default value of phase1 (GSM+DCS) + // '00'reserved B (PCS) + // '01'B capability of notation ellipsis + // '10'B for future use + // '11'B for use future + BIT1 ps_Capability, // ignored, if received + BIT1 spare2_1, // '0'B + BSSMAP_FIELD_ClassmarkInformationType2_oct5 classmarkInformationType2_oct5 +} + +type record BSSMAP_FIELD_ClassmarkInformationType2_oct5 +{ + BIT1 a5_2,//encryption algorithm A5/2 available ('0'B) or not ('1'B) + BIT1 a5_3,//encryption algorithm A5/3 available ('0'B) or not ('1'B) + BIT1 cmsp,//"Network initiated MO CM connectionrequest" not supported ('0'B) + //or supported for at least one CM protocol ('1'B) + BIT1 solsa,// The ME support SoLSA ('1'B) or not ('0'B) + BIT1 ucs2, // '0'B ME has a preference for the default alphabet over UCS2 + // '1'B ME has no preference between the use of the default + // alphabet and the use of UCS2 + BIT1 lcsvacap, // LCS value added location request notification capability + // supported ('1'B) or not ('0'B) + BIT1 spare,// '0'B + BIT1 cm3 // '0'B Any additional capability info ('1'B) or not ('0'B) +} + + +// Classmark Information Type 3 - 48.008 subclause 3.2.2.20 +type record BSSMAP_IE_ClassmarkInformationType3 +{ + OCT1 elementIdentifier, //'13'O + INT1 lengthIndicator, // '01'O .. '0C'O + OCT1_32 classmark3ValuePart +} with { variant "PRESENCE (elementIdentifier = '13'O)" + variant (lengthIndicator) "LENGTHTO (classmark3ValuePart)"} + + +// Interference Band To Be Used - 48.008 subclause 3.2.2.21 +type record BSSMAP_IE_InterferenceBandToBeUsed +{ + OCT1 elementIdentifier, // '14'O + BIT5 band, + BIT3 spare +} with { variant "PRESENCE (elementIdentifier = '14'O)" } + + +// RR Cause - 48.008 subclause 3.2.2.22 +type record BSSMAP_IE_RR_Cause +{ + OCT1 elementIdentifier, // '15'O + OCT1 rr_Cause +} with { variant "PRESENCE (elementIdentifier = '15'O)" } + + +// LSA Information - 48.008 subclause 3.2.2.23 +type record BSSMAP_IE_LSAInformation +{ + OCT1 elementIdentifier, //'3D'O + INT1 lengthIndicator, + BIT1 lSAonly, + BIT7 spare, + BSSMAP_FIELD_LSAIdAttrib_List lSAIdAttrib_List +} with { variant "PRESENCE (elementIdentifier = '3D'O)" + variant (lengthIndicator) "LENGTHTO (lSAonly,spare,lSAIdAttrib_List)" } + +type record BSSMAP_FIELD_LSAIdAttrib +{ + BIT4 priority, + BIT1 pref, + BIT1 act, + BIT2 spare +} + +type record of BSSMAP_FIELD_LSAIdAttrib BSSMAP_FIELD_LSAIdAttrib_List + + +// Layer 3 Information - 48.008 subclause 3.2.2.24 +type record BSSMAP_IE_Layer3Information +{ + OCT1 elementIdentifier, // '17'O + INT1 lengthIndicator, + octetstring layer3info +} with { variant "PRESENCE (elementIdentifier = '17'O)" + variant (lengthIndicator) "LENGTHTO (layer3info)"} + +// DLCI - 48.008 subclause 3.2.2.25 (48006 v8.0.0 section 9.3.2) +type record BSSMAP_IE_DLCI +{ + OCT1 elementIdentifier, // '18'O + BIT3 sapiValue, // '011'O Short Message Signalling Service + BIT3 spare, + BIT1 c1, + BIT1 c2 +} + + +// Downlink DTX Flag - 48.008 subclause 3.2.2.26 +type record BSSMAP_IE_DownLinkDTXFlag +{ + OCT1 elementIdentifier, // '19'O + BIT1 dtx, // DTX is disabled ('0'B) or enabled ('1'B) to downlink + BIT7 spare1_7 // '0000000'B +} with { variant "PRESENCE (elementIdentifier = '19'O)" } + + +// Cell Identifier List - 48.008 subclause 3.2.2.27 +// See above under Cell Identifier + + +// Response Request - 48.008 subclause 3.2.2.28 +type record BSSMAP_IE_ResponseRequest +{ + OCT1 elementIdentifier // '1B'O +} with { variant "PRESENCE (elementIdentifier = '1B'O)" } + + +// Resource Indication Method - 48.008 subclause 3.2.2.29 +type record BSSMAP_IE_ResourceIndMethod +{ + OCT1 elementIdentifier, // '1C'O + BIT4 resourceIndMethod, + BIT4 spare +} + + +// Classmark Information Type 1 - 48.008 subclause 3.2.2.30 +type record BSSMAP_IE_ClassmarkInformationType1 +{ + OCT1 elementIdentifier, // '1D'O + BIT3 rf_PowerCapability, // '000'B class1 (for GSM+DCS+PCS) + // '001'B class2 (for GSM+DCS+PCS) + // '010'B class3 (for GSM+DCS+PCS) + // '011'class4 B (only for GSM) + // '100'class5 B (only for GSM) + BIT1 a5_1, //encryption algorithm A5/1 available ('1'B) or not ('0'B) + BIT1 esind, //controlled early classmark sending implemented (1) or not (0) + BIT2 revisionLevel, + BIT1 spare1_1 // '0'B +} with { variant "PRESENCE(elementIdentifier = '1D'O)" } + +// Circuit Identity Code List - 48.008 subclause 3.2.2.31 +type record BSSMAP_IE_CircuitIdentityCodeList +{ + OCT1 elementIdentifier, // '1E'O + INT1 lengthIndicator, + OCT1 range, // A number in binary representation ranging from 2 to 255 + OCTN status // status data of lengthIndicator 1_32 +} with { variant "PRESENCE(elementIdentifier = '1E'O)" + variant (lengthIndicator) "LENGTHTO (range, status)" } ; + + +// Diagnostics - 48.008 subclause 3.2.2.32 +type record BSSMAP_IE_Diagnostics +{ + OCT1 elementIdentifier, // '1F'O + INT1 lengthIndicator, + OCT1 errorLocation, // First octet of Error pointer + BIT4 bitPointer, + BIT4 spare, + OCTN messageReceived // The errorneous message +} with {variant (lengthIndicator) + "LENGTHTO (errorLocation, bitPointer, spare, messageReceived)" } ; + + +// Chosen Channel - 48.008 subclause 3.2.2.33 +type record BSSMAP_IE_ChosenChannel +{ + OCT1 elementIdentifier, // '21'O + BIT4 channel, + BIT4 channelMode +} with { variant "PRESENCE (elementIdentifier = '21'O)" } + + +// Cipher Response Mode - 48.008 subclause 3.2.2.34 +type record BSSMAP_IE_CipherResponseMode +{ + OCT1 elementIdentifier, // '23'O + BIT1 cipherResponseModeInfo,//IMEISV must be included by MS ('0') or not (1) + BIT7 spare1_7 // '0000000'B +} with { variant "PRESENCE (elementIdentifier = '23'O)" } + + +// Layer 3 Message contents - 48.008 subclause 3.2.2.35 +type record BSSMAP_IE_Layer3MessageContents +{ + OCT1 elementIdentifier, // '20'O + INT1 lengthIndicator, + octetstring layer3MsgConents +} with { variant "PRESENCE (elementIdentifier = '20'O)" + variant (lengthIndicator) "LENGTHTO (layer3MsgConents)"} + + +// Channel Needed - 48.008 subclause 3.2.2.36 +type record BSSMAP_IE_ChannelNeeded +{ + OCT1 elementIdentifier, // '24'O + BIT2 channel, //00:any, 01:SDCCH, 10:Full TCH, 11:Dual TCH + BIT6 spare +} with { variant "PRESENCE (elementIdentifier = '24'O)" } + + +// Trace Type - 48.008 subclause 3.2.2.37 +type record BSSMAP_IE_TraceType +{ + OCT1 elementIdentifier, // '25'O + BIT2 e,// Event Invoking + // '00'B: Mobile Originated Call, Mobile Call Terminated, + // Short Message Service Mobile Originated, Short + // Message Service Mobile Terminated, Independent Call + // Supplementary Services, Updates Location, + // IMSI attach, detach IMSI + // '01'B: Mobile Originated Call, Mobile Call Terminated, + // Short Message Service Mobile Originated, Short + // Message Service Mobile Terminated, Independent Call + // Supplementary Services only + // '10'B: Location Updates, IMSI attach, IMSI only detach + // '11'B: Operator definable + BIT2 d,// MSC Type Record + // '00'B: Basic + // '01'B: Detailed (Optional) + // '00'B: Spare + // '00'B: No Trace MSC + BIT2 c,// BSS Type Record + // '00'B: Basic + // '01'B: Handover + // '00'B: Radio + // '00'B: No Trace BSS + BIT1 b,// For expansion future + // Set to '0'B + BIT1 a // Priority Indication + // '0'B: Priority No + // '1'B: Priority +} + + +// Trigger ID - 48.008 subclause 3.2.2.38 +type record BSSMAP_IE_TriggerId +{ + OCT1 elementIdentifier, //'26'O + INT1 lengthIndicator, + octetstring entityIdentity length(1..20) +} with { variant "PRESENCE (elementIdentifier = '26'O)" + variant (lengthIndicator) "LENGTHTO (entityIdentity)" } + + +// Trace Reference - 48.008 subclause 3.2.2.39 +type record BSSMAP_IE_TraceReference +{ + OCT1 elementIdentifier, // '27'O + OCT1 msb_TraceReference, // the most significant bit of trace reference + OCT1 lsb_TraceReference // the least significant bit of trace reference +} with { variant "PRESENCE (elementIdentifier = '27'O)" } + + +// Transaction ID - 48.008 subclause 3.2.2.40 +type record BSSMAP_IE_TransactionId +{ + OCT1 elementIdentifier, //'28'O + INT1 lengthIndicator, + octetstring transactionNumber length(1..2) +} with { variant "PRESENCE (elementIdentifier = '28'O)" + variant (lengthIndicator) "LENGTHTO (transactionNumber)" } + + +// Mobil Identity - 48.008 subclause 3.2.2.41 +type record BSSMAP_IE_MobileIdentity +{ + OCT1 elementIdentifier, // '29'O + INT1 lengthIndicator, + BIT3 typeOfIdentity, + BIT1 oddEvenIndicator, // '0'B even / 1'B odd number of identity digits + HEX5_16 digits // if nr of digits is even, the last digit: '1111'B +} with { variant "PRESENCE (elementIdentifier = '29'O)" + variant (lengthIndicator) + "LENGTHTO (typeOfIdentity,oddEvenIndicator,digits)"; + variant "PADDING(yes),PADDING_PATTERN('1'B)"} + + +// OMCID - 48.008 subclause 3.2.2.42 +type record BSSMAP_IE_OMCId +{ + OCT1 elementIdentifier, // '2A'O + INT1 lengthIndicator, + BIT4 numberingPlanind, // '0000'B unknown + // '0001'B ISDN/Telephony Numbering Plan (Rec CCITT E.164) + // '0011'B data numbering plan (CCITT Rec X.121) + // '0100'B telex numbering plan (CCITT Rec F.69) + // '0110'B land mobile numbering plan (CCITT Rec E.212) + // '1000'B national numbering plan + // '1001'B private numbering plan + // All other values are reserved + BIT3 natureOfAddress, // '000'B unknown + // '001'B international number + // '010'B national significant number + // '011'B network specific number + // '100'B subscriber number + // '110'B abbreviated number + // All other values are reserved + BIT1 ext, + OCTN digits// The digits are encoded TBCD (digit 0000 _ 1001 (0_9), + // 1010 = '*', 1011 = '#', 1100 = 'A', 1101 = 'B', 1110 = 'C'). + // If the number of identity digits is odd bits then bit 5-8 + // of the last octet is filled with '1111' +} with { variant "PRESENCE (elementIdentifier = '2A'O)" + variant (lengthIndicator) "LENGTHTO (numberingPlanind, natureOfAddress, + ext, digits)"} + + +// Forward Indicator - 48.008 subclause 3.2.2.43 +type record BSSMAP_IE_ForwardIndicator +{ + OCT1 elementIdentifier, //'2B'O + BIT4 forwardIndicator, + BIT4 spare +} with { variant "PRESENCE (elementIdentifier = '2B'O)" } + + +// Choosen Encryption Algorithm - 48.008 subclause 3.2.2.44 +type record BSSMAP_IE_ChosenEncryptionAlgorithm +{ + OCT1 elementIdentifier, // '2C'O + OCT1 algorithmIdentifier // '00000001'B no encryption + // '00000010'B A5/1 + // '00000011'B A5/2 + // '00000100'B A5/3 + // '00000101'B A5/4 + // '00000110'B A5/5 + // '00000111'B A5/6 + // '00001000'B A5/7 +} with { variant "PRESENCE (elementIdentifier = '2C'O)" } + + +// Circuit Pool - 48.008 subclause 3.2.2.45 +type record BSSMAP_IE_CircuitPool +{ + OCT1 elementIdentifier, // '2D'O + OCT1 circuitPoolNumber +} with { variant "PRESENCE (elementIdentifier = '2D'O)" } + + +// Circuit Pool List - 48.008 subclause 3.2.2.46 +type record BSSMAP_IE_CircuitPoolList +{ + OCT1 elementIdentifier, // '2E'O + INT1 lengthIndicator, + octetstring circuitPoolNumber +} with { variant "PRESENCE (elementIdentifier = '2E'O)" + variant (lengthIndicator) "LENGTHTO (circuitPoolNumber)" } ; + + +// Time Indication - 48.008 subclause 3.2.2.47 +type record BSSMAP_IE_TimeIndication +{ + OCT1 elementIdentifier, // '2F'O + OCT1 time +} + + +// Resource Situation - 48.008 subclause 3.2.2.48 +type record BSSMAP_IE_ResourceSituation +{ + OCT1 elementIdentifier, // '30'O + INT1 lengthIndicator, + BSSMAP_FIELD_ResourceList resourceList +} with {variant "PRESENCE (elementIdentifier = '30'O)" + variant (lengthIndicator) "LENGTHTO (resourceList)" } + +type record of BSSMAP_FIELD_Resource +BSSMAP_FIELD_ResourceList + +type record BSSMAP_FIELD_Resource +{ + BIT4 channelType, + BIT4 resourceAndBandInd, + OCT1 nrOfChannels, + OCT1 nrOfChannels7_15 optional +} with {variant (nrOfChannels) "EXTENSION_BIT(reverse)"} + + +// Current Channel Type 1 - 48.008 subclause 3.2.2.49 +type record BSSMAP_IE_CurrentChannelType1 +{ + OCT1 elementIdentifier, // '31'O + BIT4 channel, + BIT4 channelMode +} with { variant "PRESENCE (elementIdentifier = '31'O)" } + +// Queueing Indicator - 48.008 subclause 3.2.2.50 +type record BSSMAP_IE_QueueingIndicator +{ + OCT1 elementIdentifier, //'32'O + BIT1 spare1, // '0'B + BIT1 qri, // It is recommended to allow queueing ('1'B) or not ('0'B) + BIT6 spare2 // '000000'B +} with { variant "PRESENCE (elementIdentifier = '32'O)" } + +// Speech Version - 48.008 subclause 3.2.2.51 +type record BSSMAP_IE_SpeechVersion +{ + OCT1 elementIdentifier, // '40'O + BIT7 speechVersionIdentifier,//'0000001'B speech full rate version 1 (H'01) + //'0010001'B speech full rate version 2 (H'11) + //'0100001'B speech full rate version 3 (H'21) + //'0000101'B speech half rate version 1 (H'05) + //'0010101'B speech half rate version 2 (H'15) + //'0100101'B speech half rate version 3 (H'25) + BIT1 spare1_1 // '0'B +} with { variant "PRESENCE (elementIdentifier = '40'O)" } + + +// Assignment Requirement - 48.008 subclause 3.2.2.52 +type record BSSMAP_IE_AssignmentRequirement +{ + OCT1 elementIdentifier, // '33'O + OCT1 assignmentRequirement +} with { variant "PRESENCE (elementIdentifier = '33'O)" } + + +// Talker Flag - 48.008 subclause 3.2.2.54 +type record BSSMAP_IE_TalkerFlag +{ + OCT1 elementIdentifier // '35'O +} with { variant "PRESENCE (elementIdentifier = '35'O)" } + + +// Group Call Reference - 48.008 subclause 3.2.2.55 +type record BSSMAP_IE_GroupCallReference +{ + OCT1 elementIdentifier, // '37'O + INT1 lengthIndicator, // 1..6 + octetstring descrGroupbroadcastCallRef length(1..5) // never sent by MSC, ignored if received +} with { variant "PRESENCE (elementIdentifier = '37'O)" + variant (lengthIndicator) "LENGTHTO (descrGroupbroadcastCallRef)" } + + +// EMLPP Priority - 48.008 subclause 3.2.2.56 +type record BSSMAP_IE_EMLPP_Priority +{ + OCT1 elementIdentifier,// '38'O + BIT3 callPriority, // '000'B no priority applied + // '001'B call priority level 4 + // '010'B call priority 3 level + // '011'B call priority level 2 + // '100'B call priority 1 level + // '101'B call priority level 0 + // '110'B call priority B level + // '111'B call priority level A + BIT5 spare1_5 // '00000'B +} with { variant "PRESENCE (elementIdentifier = '38'O)" } + + +// Configuration Evolution Indicator - 48.008 subclause 3.2.2.57 +type record BSSMAP_IE_ConfigurationEvolutionIndication +{ + OCT1 elementIdentifier,// H'39 + BIT4 smi, // '0000'B no modification is allowed + // '0001'B modification allowed <= 1 TCH/F + // '0010'B modification allowed <= 2 TCH/F + // '0011'B modification allowed <= 3 TCH/F + // '0100'B modification allowed <= 4 TCH/F + BIT4 spare1_4 // '0000'B +} with { variant "PRESENCE (elementIdentifier = '39'O)" } + + +// Old BSS to New BSS Information - 48.008 subclause 3.2.2.58 +type record BSSMAP_IE_OldToNewBSSInfo +{ + OCT1 elementIdentifier, //'3A'O + INT1 lengthIndicator, + octetstring oldToNewBSSIEs +} with { variant "PRESENCE (elementIdentifier = '3A'O)" + variant (lengthIndicator) "LENGTHTO (oldToNewBSSIEs)" } + + +// LCS QOS - 48.008 subclause 3.2.2.60 (and 49.031 10.16) +type record BSSMAP_IE_LCSQOS { + OCT1 elementIdentifier, // '3E'O + INT1 lengthIndicator, + BIT1 vCI, //Vertical Coordinate Indicator: VC requested ('1'B) or not ('0'B) + BIT1 vEL, // report velocity if available (1) or not(0) + BIT6 spare_1_6, // '0000000'B + BIT7 horizontalAccuracy, // Accuracy Horizontal (HA) + BIT1 hAI, // Horizontal Accuracy Indicator HA is specified (1) or not (0) + BIT7 verticalAccuracy, // Accuracy Vertical (VA) + BIT1 vAI, // Vertical Accuracy Indicator VA is specified (1) or not (0) + BIT6 spare_2_6, // '000000'B + BIT2 rTC // '00'B Response Time is not specified + // '01'B delay Low + // '10'B Delay tolerant + // '11'B Reserved +} with { variant "PRESENCE (elementIdentifier = '3E'O)" + variant (lengthIndicator) "LENGTHTO (vCI, vEL, spare_1_6, horizontalAccuracy, + hAI, verticalAccuracy, vAI, spare_2_6, rTC)"} + + +// LSA Access Control Suppression - 48.008 subclause 3.2.2.61 +type record BSSMAP_IE_LSAAccessControlSuppression +{ + OCT1 elementIdentifier, //'3F'O + BIT1 em, // in emergency calls em = '1'B + BIT7 spare // '0000000'B +} with { variant "PRESENCE (elementIdentifier = '3F'O)" } + + +// LCS Priority - 48.008 subclause 3.2.2.62 +type record BSSMAP_IE_LCSPriority +{ + OCT1 elementIdentifier,// '43'O + INT1 lengthIndicator, + OCT1 priority // see "another FS" TS 29.002 for more detail +} with { variant "PRESENCE (elementIdentifier = '43'O)" + variant (lengthIndicator) "LENGTHTO (priority)"} + + +// Location Type - 48.008 subclause 3.2.2.63 +type record BSSMAP_IE_LocationType +{ + OCT1 elementIdentifier, // '44'O + INT1 lengthIndicator, // 1 or 2 + OCT1 locationInformation,// '00000000'B current location geographic + // '00000001'B loc assistance info for target MS + // '00000010'B deciphering keys for broadcast + // assistance data for MS target + // all other values are reserved + OCT1 positioningMethod optional + // '00000000'B reserved + // '00000001'B Mobile E_OTD Assisted + // '00000010'B Mobile Based E_OTD + // '00000011'B GPS Assisted + // all other values are reserved +} with {variant (lengthIndicator) "LENGTHTO (locationInformation, positioningMethod)"} + + +// Location Estimate - 48.008 subclause 3.2.2.64 +type record BSSMAP_IE_LocationEstimate +{ + OCT1 elementIdentifier, // '45'O + INT1 lengthIndicator, // 1_22 on A_interface, 1_93 E_interface on + OCTN geographicLocation +} with { variant "PRESENCE (elementIdentifier = '45'O)" + variant (lengthIndicator) "LENGTHTO (geographicLocation)"} + + +// Positioning Data - 48.008 subclause 3.2.2.65 +type record BSSMAP_IE_PositioningData +{ + OCT1 elementIdentifier, // '46'O + INT1 lengthIndicator, // 2_11 + BIT4 positioningDataDescriminator, // '0000'B indicates usage of each + // positioning data method, + // that was attempted + // all other values reserved are + BIT4 spare_1_4, // '0000'B + BSSMAP_FIELD_PositioningMethods positioningMethod // of lengthIndicator 1_10 +} with { variant "PRESENCE (elementIdentifier = '46'O)" + variant (lengthIndicator) "LENGTHTO (positioningDataDescriminator, spare_1_4,positioningMethod)"} + +type record BSSMAP_FIELD_PositioningMethod +{ + BIT3 usage, // '000'B unsuccesful attempt due to failure or interruption + // '001'B succesful attempt, results not used to generate location + // '010'B succesful attempt, results used to verify but not generate location + // '011'B succesful attempt, results used to generate location + // '100'B succesful attempt, MS supports multiple based positioning methods + BIT5 positioningMethod // '00000'B Timing Advance + // '00001'B TOA + // '00010'B AOA + // '00011'B Mobile EOTD Assisted + // '00100'B Mobile Based E_OTD + // '00101'B Mobile GPS Assisted + // '00110'B Mobile Based GPS + // '00111'B GPS Conventional + // '01000'B _ '01111'B reserved for GSM + // '10000'B _ '11111'B reserved for network + // specific positioning methods +} + +type record of BSSMAP_FIELD_PositioningMethod BSSMAP_FIELD_PositioningMethods + + +// LCS Cause - 48.008 subclause 3.2.2.66 +type record BSSMAP_IE_LCSCause +{ + OCT1 elementIdentifier, // '47'O + INT1 lengthIndicator, // 1 (_> diagnosticValue invalid) 2 or + BIT8 causeValue, // '00000000'BUnspecified + // '00000001'B System Failure + // '00000010'B Error Protocol + // '00000011'B Data missing in position request + // '00000100'B unexpected data value in request position + // '00000101'B Position method failure + // '00000110'B Target unreachable MS + // '00000111'B Location request aborted + // '00001000'B Facility supported not + // '00001001'B intra_BSC_HO ongoing + // '00001010'B complete intra_BSC_HO + // '00001011'B congestion + // all other values reserved are + OCT1 diagnosticValue optional +} with { variant "PRESENCE (elementIdentifier = '47'O)" + variant (lengthIndicator) "LENGTHTO (causeValue, diagnosticValue)"} + + +// LCS Client Type - 48.008 subclause 3.2.2.67 +type record BSSMAP_IE_LCSClientType +{ + OCT1 elementIdentifier, // '48'O + INT1 lengthIndicator, // 1 + BIT4 subtype, // all values unspecified/reserved except for: + // category = PLMN Operator: + // '0000'B Unspecified + // '0001'B Boradcast Service + // '0010'B O&M + // '0011'B Statistics Anonymous + // '0100'B Target MS Service Support + // all other values reserved are + BIT4 category // '0000'B Value added client + // '0010'B Operator PLMN + // '0011'B Emergency Services + // '0100'B Lawful Services Intercept + // all other values are reserved +} with { variant "PRESENCE (elementIdentifier = '48'O)" + variant (lengthIndicator) "LENGTHTO (subtype, category)"} + + +// APDU - 48.008 subclause 3.2.2.68 (and 49.031 v5.3.0) +type record BSSMAP_IE_APDU +{ + OCT1 elementIdentifier, //'49'O + LIN2_BO_LAST lengthIndicator, + BIT7 protocolID optional, // '0000000'reserved B + // '0000001'BSSLAP B (the only currently supported) + // '0000010'LLP B + // '0000011'B SMLCPP + BIT1 spare_1_1 optional, // '0'B + octetstring embeddedMessage optional // of length: 5_25 +} with { variant "PRESENCE (elementIdentifier = '49'O)" + variant (lengthIndicator) + "LENGTHTO (protocolID,spare_1_1,embeddedMessage)"} + + +// Network Element Identity - 48.008 subclause 3.2.2.69 +type record BSSMAP_IE_NetworkElementIdentity +{ + OCT1 elementIdentifier, //'4A'O + INT1 lengthIndicator, + BIT4 iDDiscriminator, + BIT4 spare, + OCTN networkElementIdentity // Network Element Identity +} with {variant (lengthIndicator) + "LENGTHTO (iDDiscriminator,spare,networkElementIdentity)"} + + +// GPS Assistant Data - 48.008 subclause 3.2.2.70 +type record BSSMAP_IE_GPSAssistanceData +{ + OCT1 elementIdentifier, //'4B'O + INT1 lengthIndicator, // 1_38 + OCT1 a_to_h, + OCT1 i_to_p, + OCTN satellite_related_data // Satellite related data +} with { variant "PRESENCE (elementIdentifier = '4B'O)" + variant (lengthIndicator) "LENGTHTO (satellite_related_data,a_to_h,i_to_p)"} + + +// Deciphering Key - 48.008 subclause 3.2.2.71 +type record BSSMAP_IE_DecipheringKeys +{ + OCT1 elementIdentifier, // '4C'O + INT1 lengthIndicator, // 1, 8, 15 + BIT8 cipheringKeyFlag, // current ciphering key is used (1) or not (0) + BIT56 currentdecipheringKeyValue, + BIT56 nextdecipheringKeyValue optional +} with { variant "PRESENCE (elementIdentifier = '4C'O)" + variant (lengthIndicator) "LENGTHTO (cipheringKeyFlag, + currentdecipheringKeyValue, nextdecipheringKeyValue)"} + + +// Return Error Request - 48.008 subclause 3.2.2.72 +type record BSSMAP_IE_ReturnErrorRequest +{ + OCT1 elementIdentifier, //'4D'O + INT1 lengthIndicator, + OCT1 returnErrorType // Return Error Request +} with { variant "PRESENCE (elementIdentifier = '4D'O)" + variant (lengthIndicator) "LENGTHTO (returnErrorType)"} + + +// Return Error Cause - 48.008 subclause 3.2.2.73 +type record BSSMAP_IE_ReturnErrorCause +{ + OCT1 elementIdentifier, //'4E'O + INT1 lengthIndicator, + OCT1 returnErrorCause // Return Error Cause +} with { variant "PRESENCE (elementIdentifier = '4E'O)" + variant (lengthIndicator) "LENGTHTO (returnErrorCause)"} + + +// Segmentation - 48.008 subclause 3.2.2.74 +type record BSSMAP_IE_Segmentation +{ + OCT1 elementIdentifier, //'4F'O + INT1 lengthIndicator, + BIT4 segmentationNumber, + BIT1 segmentationBit, + BIT3 spare, + OCT2 messageID optional +} with { variant "PRESENCE (elementIdentifier = '4F'O)" + variant (lengthIndicator) + "LENGTHTO (segmentationNumber,segmentationBit,spare,messageID)"} + + +// Service Handover - 48.008 subclause 3.2.2.75 +type record BSSMAP_IE_ServiceHandover +{ + OCT1 elementIdentifier, //'50'O + INT1 lengthIndicator, + BIT3 serviceHandoverInfo, + BIT5 spare +} with { variant "PRESENCE (elementIdentifier = '50'O)" + variant (lengthIndicator) "LENGTHTO (serviceHandoverInfo,spare)" } + + +//Source RNC to Target RNC transparent information -48.008 subclause 3.2.2.76-77 +type record BSSMAP_IE_SourceToTargetRNCTransparentInfo +{ + OCT1 elementIdentifier, //'51'O or '52'O + INT1 lengthIndicator, + octetstring informationcontainer +} with { variant (lengthIndicator) "LENGTHTO (informationcontainer)" } + + +// GERAN Classmark - 48.008 subclause 3.2.2.78 +type record BSSMAP_IE_GERANClassmark +{ + OCT1 elementIdentifier, //'53'O + INT1 lengthIndicator, + OCTN GERANClassmark +} with { variant "PRESENCE (elementIdentifier = '53'O)" + variant (lengthIndicator) "LENGTHTO (GERANClassmark)" } + + +// GERAN BSC Container - 48.008 subclause 3.2.2.79 +type record BSSMAP_IE_GERANBSCContainer +{ + OCT1 elementIdentifier, //'54'O + INT1 lengthIndicator, + OCT1 codecType, + BIT3 maxNrofTCH, + BIT5 allowedRadioIFRates +} with {variant (lengthIndicator) + "LENGTHTO (codecType, maxNrofTCH, allowedRadioIFRates)" } + + +// New BSS to Old BSS Information - 48.008 subclause 3.2.2.80 +type record BSSMAP_IE_NewBSSToOldBSSInfo +{ + OCT1 elementIdentifier, //'61'O + INT1 lengthIndicator, + OCTN newBSSToOldBSSIE optional +} with { variant "PRESENCE (elementIdentifier = '61'O)" + variant (lengthIndicator) "LENGTHTO (newBSSToOldBSSIE)" } + + +// Inter-System Information - 48.008 subclause 3.2.2.81 +type record BSSMAP_IE_InterSystemInfo +{ + OCT1 elementIdentifier, //'63'O + INT1 lengthIndicator, + OCTN interSystemInfoTranspCont +} with { variant "PRESENCE (elementIdentifier = '63'O)" + variant (lengthIndicator) "LENGTHTO (interSystemInfoTranspCont)" } + + +// SNA Access Information - 48.008 subclause 3.2.2.82 +type record BSSMAP_IE_SNAAccessInfo +{ + OCT1 elementIdentifier, //'64'O + INT1 lengthIndicator, + AuthorisedPLMN_List sNAAccessInfo +} with { variant "PRESENCE (elementIdentifier = '64'O)" + variant (lengthIndicator) "LENGTHTO (sNAAccessInfo)" } + +type record of AuthorisedPLMN AuthorisedPLMN_List; + +type record AuthorisedPLMN +{ + INT1 lengthIndicator, + OCT3 mcc_mnc, + RecordOfOCT2 authorisedSNA optional +} with { variant (lengthIndicator) "LENGTHTO (mcc_mnc,authorisedSNA)" } + + +// 3.2.2.83 VSTK_RAND Information +type record BSSMAP_IE_VSTK_RAND +{ + OCT1 elementIdentifier, // '65' + INT1 lengthIndicator, + OCT1 VSTK_RAND_1, + OCT2 VSTK_RAND_2, + OCT3 VSTK_RAND_3, + OCT4 VSTK_RAND_4, + BIT4 spare, + BIT4 VSTK_RAND_5 +} with { variant "PRESENCE (elementIdentifier = '65'O)" + variant (lengthIndicator) + "LENGTHTO (VSTK_RAND_1, VSTK_RAND_2, VSTK_RAND_3, VSTK_RAND_4, spare, VSTK_RAND_5)"} + + +// 3.2.2.84 VSTK information +type record BSSMAP_IE_VSTK +{ + OCT1 elementIdentifier, // '66' + INT1 lengthIndicator, + OCT16 VSTK +} with { variant "PRESENCE (elementIdentifier = '66'O)" + variant (lengthIndicator) "LENGTHTO (VSTK)"} + + +// 3.2.2.85 Paging Information +type record BSSMAP_IE_PagingInformation +{ + OCT1 elementIdentifier, // '67' + INT1 lengthIndicator, + BIT1 VGCS_or_VBS, // 0: not a member of any VGCS/VBS-group + BIT2 pagingCause, + BIT5 spare +} with { variant "PRESENCE (elementIdentifier = '67'O)" + variant (lengthIndicator) + "LENGTHTO (VGCS_or_VBS, pagingCause, spare)"} + + +// 3.2.2.86 IMEI +type record BSSMAP_IE_IMEI +{ + OCT1 elementIdentifier, // '68' + INT1 lengthIndicator, + BIT3 typeOfIdentity, + BIT1 oddEvenIndicator, // '0'B even / 1'B odd number of identity digits + HEX5_16 digits // if nr of digits is even, the last digit: '1111'B +} with { variant "PRESENCE (elementIdentifier = '68'O)" + variant (lengthIndicator) + "LENGTHTO (typeOfIdentity,oddEvenIndicator,digits)"; + variant "PADDING(yes),PADDING_PATTERN('1'B)"} + + +// 3.2.2.87 Velocity Estimate +type record BSSMAP_IE_VelocityEstimate +{ + OCT1 elementIdentifier, // '55' + INT1 lengthIndicator, + OCTN velocityEstimate +} with { variant "PRESENCE (elementIdentifier = '55'O)" + variant (lengthIndicator) "LENGTHTO (velocityEstimate)"} + + +// 3.2.2.88 VGCS Feature Flags +type record BSSMAP_IE_VGCS_FeatureFlags +{ + OCT1 elementIdentifier, // '69' + INT1 lengthIndicator, + BIT1 TP_Ind, // 0: Talker Priority not supported; 1: Talker Priority supported + BIT2 AS_Ind, // least sig. bit: 0: No A-interface circuit sharing; 1: A-interface circuit sharing; + // most sig. bit: 0: No A-interface link sharing; 1: A-interface link sharing + BIT1 BSS_Res, // 0: No re-establishment of the group or broadcast call by the BSS; + // 1: Re-establishment of the group or broadcast call by the BSS + BIT1 tCP, + BIT3 spare +} with { variant "PRESENCE (elementIdentifier = '69'O)" + variant (lengthIndicator) + "LENGTHTO (TP_Ind, AS_Ind, BSS_Res, tCP, spare)"} + + +// Talker Priority - 48.008 subclause 3.2.2.89 +type record BSSMAP_IE_TalkerPriority +{ + OCT1 elementIdentifier, // '6A'O + BIT2 priority, + // 0 0 Normal Priority + // 0 1 Privileged Priority + // 1 0 Emergency Priority + // 1 1 reserved for future use + BIT6 spare // 1..9 +} with { variant "PRESENCE (elementIdentifier = '6A'O)" } + + +// 3.2.2.90 Emergency Set Indication +type record BSSMAP_IE_EmergencySetIndication +{ + OCT1 elementIdentifier // '6B' +} with { variant "PRESENCE (elementIdentifier = '6B'O)" } + + +// 3.2.2.91 Talker Identity +type record BSSMAP_IE_TalkerIdentity +{ + OCT1 elementIdentifier, // '6C' + INT1 lengthIndicator, + BIT3 fillerBits, + BIT5 spare, + OCT17 talkerIdentity +} with { variant "PRESENCE (elementIdentifier = '6C'O)" + variant (lengthIndicator) + "LENGTHTO (fillerBits, spare, talkerIdentity)"} + + +// 3.2.2.92 SMS to VGCS +type octetstring OCT248 length(0..248); + +type record BSSMAP_IE_SMS_to_VGCS +{ + OCT1 elementIdentifier, // '6E' + INT1 lengthIndicator, + OCT248 SMS +} with {variant (lengthIndicator) + "LENGTHTO (SMS)"} + + +// 3.2.2.93 VGCS talker mode +type record BSSMAP_IE_VGCS_TalkerMode +{ + OCT1 elementIdentifier, // '6F' + INT1 lengthIndicator, + BIT2 spare, + BIT4 groupCipherKeyNumber, + BIT2 RR_mode // 0 0: dedicated mode (i.e. dedicated channel) + // 0 1: group transmit mode (i.e. voice group channel) + // Other values are reserved for future use. +} with {variant (lengthIndicator) + "LENGTHTO (spare, groupCipherKeyNumber, RR_mode)"} + + +// 3.2.2.94 VGCS/VBS Cell Status +type record BSSMAP_IE_VGCS_VBS_CellStatus +{ + OCT1 elementIdentifier, // '70' + INT1 lengthIndicator, + BIT3 status, + BIT5 spare +} with { variant "PRESENCE (elementIdentifier = '70'O)" + variant (lengthIndicator) "LENGTHTO (status, spare)"} + + +// 3.2.2.95 GANSS Assistance Data +type record BSSMAP_IE_GANSS_AssistanceData +{ + OCT1 elementIdentifier, //'75' + INT1 lengthIndicator, + OCTN gANSS_AssistanceDataInfo // 49.031 Section 10.31 +} with { variant "PRESENCE (elementIdentifier = '75'O)" + variant (lengthIndicator) "LENGTHTO (gANSS_AssistanceDataInfo)"} + + +// 3.2.2.96 GANSS Positioning Data +type record BSSMAP_IE_GANSS_PositioningData +{ + OCT1 elementIdentifier, // '76' + INT1 lengthIndicator, + GANSS_PositioningData gANSS_PositioningDataInfo +} with { variant "PRESENCE (elementIdentifier = '76'O)" + variant (lengthIndicator) "LENGTHTO (gANSS_PositioningDataInfo)"} + +type record GANSS_PositioningData // 49.031 Section 10.32 +{ + BIT3 usage, + BIT3 gANSS_Id, + BIT2 method +} + + +// 3.2.2.97 GANSS Location Type +type record BSSMAP_IE_GANSS_LocationType +{ + OCT1 elementIdentifier, // '77' + INT1 lengthIndicator, + GANSS_LocationType gANSS_LocationTypeInfo +} with { variant "PRESENCE (elementIdentifier = '77'O)" + variant (lengthIndicator) "LENGTHTO (gANSS_LocationTypeInfo)"} + +type record GANSS_LocationType // 49.031 Section 10.33 +{ + BIT1 galileo, + BIT1 sBAS, + BIT1 modernizedGPS, + BIT1 qZSS, + BIT1 gLONASS, + BIT3 spare +} + + +// 3.2.2.98 Application data +type record BSSMAP_IE_ApplicationData +{ + OCT1 elementIdentifier, // '78' + INT1 lengthIndicator, + OCT9 applicationDataInfo // "implementation-specific" according to 44.018 v8.7.0 Section 10.5.2.72 +} with { variant "PRESENCE (elementIdentifier = '78'O)" + variant (lengthIndicator) "LENGTHTO (applicationDataInfo)"} + + +// 3.2.2.99 Data Identity +type record BSSMAP_IE_DataIdentity +{ + OCT1 elementIdentifier, // '79' + INT1 lengthIndicator, + DataIdentity dataIdentityInfo +} with { variant "PRESENCE (elementIdentifier = '79'O)" + variant (lengthIndicator) "LENGTHTO (dataIdentityInfo)"} + + +type record DataIdentity // 44.018 v8.7.0 Section 10.5.2.73 +{ + BIT1 aI, + BIT4 dI, + BIT3 dP +} + + +// 3.2.2.100 Application Data Information +type record BSSMAP_IE_ApplicationDataInformation +{ + OCT1 elementIdentifier, // 7A' + INT1 lengthIndicator, + BIT1 bT_Ind, + BIT7 spare +} with { variant "PRESENCE (elementIdentifier = '7A'O)" + variant (lengthIndicator) "LENGTHTO (bT_Ind, spare)"} + + +// 3.2.2.101 MSISDN +type record BSSMAP_IE_MSISDN +{ + OCT1 elementIdentifier, // '7B' + INT1 lengthIndicator, + octetstring msisdn +} with { variant "PRESENCE (elementIdentifier = '7B'O)" + variant (lengthIndicator) "LENGTHTO (msisdn)"} + + +// 3.2.2.102 AoIP Transport Layer Address +type record BSSMAP_IE_AoIP_TransportLayerAddress +{ + OCT1 elementIdentifier, // '7C' + INT1 lengthIndicator, + BSSMAP_FIELD_IPAddress ipAddress, + LIN2_BO_LAST uDPPortValue +} with { + variant "PRESENCE (elementIdentifier = '7C'O)"; + variant (lengthIndicator) "LENGTHTO (ipAddress, uDPPortValue)"; + variant (ipAddress) "CROSSTAG(ipv4,lengthIndicator = 6; + ipv6,lengthIndicator = 18)" +} + +type union BSSMAP_FIELD_IPAddress +{ + OCT4 ipv4, + OCT16 ipv6 +} + +//3.2.2.103 Speech Codec List +type record BSSMAP_IE_SpeechCodecList +{ + OCT1 elementIdentifier, // '7D' + INT1 lengthIndicator, + BSSMAP_FIELD_CodecElements codecElements +} with { + variant "PRESENCE (elementIdentifier = '7D'O)"; + variant (lengthIndicator) "LENGTHTO (codecElements)" +} + +type record of BSSMAP_FIELD_CodecElement BSSMAP_FIELD_CodecElements; + +type record BSSMAP_FIELD_CodecElement +{ + BSSMAP_FIELD_CodecType codecType, + BIT1 tF, + BIT1 pT, + BIT1 pI, + BIT1 fI, + OCT1 extendedCodecType optional, + BIT8 s0_7 optional, + BIT8 s8_15 optional +} with { + variant (extendedCodecType) "PRESENCE (codecType = CodecExtension)"; + variant (s0_7) "PRESENCE (codecType = FR_AMR, + codecType = HR_AMR, + codecType = FR_AMR_WB, + codecType = OHR_AMR, + codecType = OFR_AMR_WB, + codecType = OHR_AMR_WB, + extendedCodecType = 'FD'O)"; + variant (s8_15) "PRESENCE (codecType = FR_AMR, + codecType = HR_AMR, + codecType = OHR_AMR)"; +} + +type enumerated BSSMAP_FIELD_CodecType +{ + GSM_FR(0), + GSM_HR(1), + GSM_EFR(2), + FR_AMR(3), + HR_AMR(4), + FR_AMR_WB(9), + OHR_AMR(11), + OFR_AMR_WB(12), + OHR_AMR_WB(13), + CodecExtension(15) +} + +//3.2.2.104 Speech Codec +type record BSSMAP_IE_SpeechCodec +{ + OCT1 elementIdentifier, // '7E' + INT1 lengthIndicator, + BSSMAP_FIELD_CodecElements codecElements +} with { + variant "PRESENCE (elementIdentifier = '7E'O)"; + variant (lengthIndicator) "LENGTHTO (codecElements)" +} + +//3.2.2.105 Call Identifier +type record BSSMAP_IE_CallIdentifier +{ + OCT1 elementIdentifier, //'7F' + OCT4 callIdentifierInfo +} with { variant "PRESENCE (elementIdentifier = '7F'O)";} + +//3.2.2.106 Call Identifier List +type record BSSMAP_IE_CallIdentifierList +{ + OCT1 elementIdentifier, // '80' + INT1 lengthIndicator, + OCT4List callIdentifierListInfo length (1..62) +} with { variant "PRESENCE (elementIdentifier = '80'O)"; + variant (lengthIndicator) "LENGTHTO (callIdentifierListInfo)"} + +//3.2.2.107 A Interface Selector For Reset +type record BSSMAP_IE_A_InterfaceSelectorForReset +{ + OCT1 elementIdentifier, // '81' + BIT1 rTD, + BIT1 rIP, + BIT6 spare +} with { variant "PRESENCE (elementIdentifier = '81'O)";} + + +//3.2.2.109 KC128 +type record BSSMAP_IE_KC128 +{ + OCT1 elementIdentifier, // '83' + OCT16 kC128_Value +} with { variant "PRESENCE (elementIdentifier = '83'O)";} + + +//3.2.2.110 CSG Identifier +type record BSSMAP_IE_CSG_Identifier +{ + OCT1 elementIdentifier, //84 + INT1 lengthIndicator, + bitstring cSG_ID_Value length(27), + BIT5 spare1, + BIT1 cellAccessMode, + BIT7 spare2 +} with { variant "PRESENCE (elementIdentifier = '84'O)"; + variant (lengthIndicator) "LENGTHTO (cSG_ID_Value,spare1,cellAccessMode,spare2)"} + + +//3.2.2.111 Redirect Attempt Flag +type record BSSMAP_IE_RedirectAttemptFlag +{ + OCT1 elementIdentifier //85 +} with { variant "PRESENCE (elementIdentifier = '85'O)";} + + +//3.2.2.112 Reroute Reject Cause +type record BSSMAP_IE_RerouteRejectCause +{ + OCT1 elementIdentifier, //86 + OCT1 rerouteRejectCauseValue +} with { variant "PRESENCE (elementIdentifier = '86'O)";} + + +//3.2.2.113 Send Sequence Number +type record BSSMAP_IE_SendSequenceNumber +{ + OCT1 elementIdentifier, //87 + BIT6 spare, + INT2b sendSequenceNumber +} with { variant "PRESENCE (elementIdentifier = '87'O)";} + + +//3.2.2.114 Reroute Complete Outcome +type record BSSMAP_IE_RerouteCompleteOutcome +{ + OCT1 elementIdentifier, //88 + OCT1 rerouteCompleteOutcomeValue +} with { variant "PRESENCE (elementIdentifier = '88'O)";} + + +//3.2.2.115 Global Call Reference +type record BSSMAP_IE_GlobalCallReference +{ + OCT1 elementIdentifier, //89 + INT1 lengthIndicator, + GlobalCallReferenceValue globalCallReferenceValue +} with { variant "PRESENCE (elementIdentifier = '89'O)"; + variant (lengthIndicator) "LENGTHTO (globalCallReferenceValue)"} + +//3GPP TS 29.205 B.2.1.9 +type record GlobalCallReferenceValue +{ + INT1 networkIDLengthIndicator, + octetstring networkID length (3..5), + INT1 nodeIDLengthIndicator, + OCT2 nodeID, + INT1 callReferenceIDLengthIndicator, + OCT5 callReferenceID +} with { + variant (networkIDLengthIndicator) "LENGTHTO (networkID)" + variant (nodeIDLengthIndicator) "LENGTHTO (nodeID)" + variant (callReferenceIDLengthIndicator) "LENGTHTO (callReferenceID )" + } + + +//3.2.2.116 LCLS Configuration +type record BSSMAP_IE_LCLS_Configuration +{ + OCT1 elementIdentifier, //8A + BIT4 lCLS_ConfigurationValue, + BIT4 spare +} with { variant "PRESENCE (elementIdentifier = '8A'O)";} + + +//3.2.2.117 LCLS Connection Status Control +type record BSSMAP_IE_LCLS_ConnectionStatusControl +{ + OCT1 elementIdentifier, //8B + BIT4 lCLS_ConnectionStatusControlValue, + BIT4 spare +} with { variant "PRESENCE (elementIdentifier = '8B'O)";} + + +//3.2.2.118 LCLS Correlation Not Needed +type record BSSMAP_IE_LCLS_CorrelationNotNeeded +{ + OCT1 elementIdentifier //8C +} with { variant "PRESENCE (elementIdentifier = '8C'O)";} + + +//3.2.2.119 LCLS BSS Status +type record BSSMAP_IE_LCLS_BSS_Status +{ + OCT1 elementIdentifier, //8D + BIT4 lCLS_BSS_StatusValue, + BIT4 spare +} with { variant "PRESENCE (elementIdentifier = '8D'O)";} + + +//3.2.2.120 LCLS Break Request +type record BSSMAP_IE_LCLS_BreakRequest +{ + OCT1 elementIdentifier //8E +} with { variant "PRESENCE (elementIdentifier = '8E'O)";} + +//3.2.2.121 CSFB Indication +type record BSSMAP_IE_CSFB_Indication +{ + OCT1 elementIdentifier //8F +} with { variant "PRESENCE (elementIdentifier = '8F'O)";} + + + +/////////////////////////////////////////////////////// +// Used in HANDOVER REQUEST message +type union BSSMAP_IE_ClassmarkInformationType +{ + BSSMAP_IE_ClassmarkInformationType1 classmarkInformationType1, + BSSMAP_IE_ClassmarkInformationType2 classmarkInformationType2 +} + + +/////////////////////////////////////////// +// BSSMAP message definition +/////////////////////////////////////////// + +// ASSIGNMENT REQUEST - 48.008 subclause 3.2.1.1 +type record PDU_BSSMAP_AssignmentRequest +{ + OCT1 messageType, // '01'O + BSSMAP_IE_ChannelType channelType, + BSSMAP_IE_Layer3HeaderInfo layer3HeaderInfo optional, + BSSMAP_IE_Priority priority optional, + BSSMAP_IE_CircuitIdentityCode circuitIdentityCode optional, + BSSMAP_IE_DownLinkDTXFlag downLinkDTX_Flag optional, + BSSMAP_IE_InterferenceBandToBeUsed interferenceBandToBeUsed optional, + BSSMAP_IE_ClassmarkInformationType2 classmarkInformationType2 optional, + BSSMAP_IE_GroupCallReference groupCallReference optional, + BSSMAP_IE_TalkerFlag talkerFlag optional, + BSSMAP_IE_ConfigurationEvolutionIndication configurationEvolutionIndication optional, + BSSMAP_IE_LSAAccessControlSuppression lsaAccesControlSuppression optional, + BSSMAP_IE_ServiceHandover serviceHandover optional, + BSSMAP_IE_EncryptionInformation encryptionInformation optional, + BSSMAP_IE_TalkerPriority talkerPriority optional, + BSSMAP_IE_AoIP_TransportLayerAddress aoIPTransportLayer optional, + BSSMAP_IE_SpeechCodecList codecList optional, + BSSMAP_IE_CallIdentifier callIdentifier optional, + BSSMAP_IE_KC128 kC128 optional, + BSSMAP_IE_GlobalCallReference globalCallReference optional, + BSSMAP_IE_LCLS_Configuration lCLS_Configuration optional, + BSSMAP_IE_LCLS_ConnectionStatusControl lCLS_ConnectionStatusControl optional, + BSSMAP_IE_LCLS_CorrelationNotNeeded lCLS_CorrelationNotNeeded optional +} with { variant "PRESENCE (messageType = '01'O)" } + + +// ASSIGNMENT COMPLETE - 48.008 subclause 3.2.1.2 +type record PDU_BSSMAP_AssignmentComplete +{ + OCT1 messageType, // '02'O + BSSMAP_IE_RR_Cause rR_Cause optional, + BSSMAP_IE_CircuitIdentityCode circuitIdentityCode optional, + BSSMAP_IE_CellIdentifier cellIdentifier optional, + BSSMAP_IE_ChosenChannel chosenChannel optional, + BSSMAP_IE_ChosenEncryptionAlgorithm chosenEncryptionAlgorithm optional, + BSSMAP_IE_CircuitPool circuitPool optional, + BSSMAP_IE_SpeechVersion speechVersion optional, + BSSMAP_IE_LSAIdentifier lSAIdentifier optional, + BSSMAP_IE_TalkerPriority talkerPriority optional, + BSSMAP_IE_AoIP_TransportLayerAddress aoIPTransportLayer optional, + BSSMAP_IE_SpeechCodec speechCodec optional, + BSSMAP_IE_SpeechCodecList codecList optional, + BSSMAP_IE_LCLS_BSS_Status lCLS_BSS_Status optional +} with { variant "PRESENCE (messageType = '02'O)" } + +// ASSIGNMENT FAILURE - 48.008 subclause 3.2.1.3 +type record PDU_BSSMAP_AssignmentFailure +{ + OCT1 messageType, // '03'O + BSSMAP_IE_Cause cause, + BSSMAP_IE_RR_Cause rR_Cause optional, + BSSMAP_IE_CircuitPool circuitPool optional, + BSSMAP_IE_CircuitPoolList circuitPoolList optional, + BSSMAP_IE_TalkerPriority talkerPriority optional, + BSSMAP_IE_SpeechCodecList codecList optional +} with { variant "PRESENCE (messageType = '03'O)" } + +// BLOCK - 48.008 subclause 3.2.1.4 +type record PDU_BSSMAP_Block +{ + OCT1 messageType, // H'40 + BSSMAP_IE_CircuitIdentityCode circuitIdentityCode, + BSSMAP_IE_Cause cause, + BSSMAP_IE_ConnectionReleaseRequested connectionReleaseRequested optional +} with { variant "PRESENCE (messageType = '40'O)" } + + +// BLOCKING ACKNOWLEDGE - 48.008 subclause 3.2.1.5 +type record PDU_BSSMAP_BlockingAck +{ + OCT1 messageType, // H'41 + BSSMAP_IE_CircuitIdentityCode circuitIdentityCode +} with { variant "PRESENCE (messageType = '41'O)" } + + +// UNBLOCK - 48.008 subclause 3.2.1.6 +type record PDU_BSSMAP_Unblock +{ + OCT1 messageType, // H'42 + BSSMAP_IE_CircuitIdentityCode circuitIdentityCode +} with { variant "PRESENCE (messageType = '42'O)" } + + +// UNBLOCKING ACKNOWLEDGE - 48.008 subclause 3.2.1.7 +type record PDU_BSSMAP_UnblockAck +{ + OCT1 messageType, // H'43 + BSSMAP_IE_CircuitIdentityCode circuitIdentityCode +} with { variant "PRESENCE (messageType = '43'O)" } + + +// HANDOVER REQUEST - 48.008 subclause 3.2.1.8 +type record PDU_BSSMAP_HandoverRequest +{ + OCT1 messageType, // '10'O + BSSMAP_IE_ChannelType channelType, + BSSMAP_IE_EncryptionInformation encryptionInformation, + BSSMAP_IE_ClassmarkInformationType classmarkInformationType, //Type 1 or 2 + BSSMAP_IE_CellIdentifier cellIdentifierSource, + BSSMAP_IE_Priority priority optional, + BSSMAP_IE_CircuitIdentityCode circuitIdentityCode optional, + BSSMAP_IE_DownLinkDTXFlag downLinkDTX_Flag optional, + BSSMAP_IE_CellIdentifier cellIdentifierTarget, + BSSMAP_IE_InterferenceBandToBeUsed interferenceBandToBeUsed optional, + BSSMAP_IE_Cause cause optional, + BSSMAP_IE_ClassmarkInformationType3 classmarkInformationType3 optional, + BSSMAP_IE_CurrentChannelType1 currentChannelType1 optional, + BSSMAP_IE_SpeechVersion speechVersion optional, + BSSMAP_IE_GroupCallReference groupCallReference optional, + BSSMAP_IE_TalkerFlag talkerFlag optional, + BSSMAP_IE_ConfigurationEvolutionIndication configurationEvolutionIndication optional, + BSSMAP_IE_ChosenEncryptionAlgorithm chosenEncryptionAlgorithm optional, + BSSMAP_IE_OldToNewBSSInfo oldToNewBSSInfo optional, + BSSMAP_IE_LSAInformation lSAInformation optional, + BSSMAP_IE_LSAAccessControlSuppression lSAAccessControlSuppression optional, + BSSMAP_IE_ServiceHandover serviceHandover optional, + BSSMAP_IE_IMSI iMSI_bssmap optional, + BSSMAP_IE_SourceToTargetRNCTransparentInfo sourceToTargetRNCTransparentInfo optional, + BSSMAP_IE_SourceToTargetRNCTransparentInfo sourceToTargetRNCTransparentInfoCDMA optional, + BSSMAP_IE_SNAAccessInfo sNAAccessInformation optional, + BSSMAP_IE_TalkerPriority talkerPriority optional, + BSSMAP_IE_AoIP_TransportLayerAddress aoIPTransportLayer optional, + BSSMAP_IE_SpeechCodecList codecList optional, + BSSMAP_IE_CallIdentifier callIdentifier optional, + BSSMAP_IE_KC128 kC128 optional, + BSSMAP_IE_GlobalCallReference globalCallReference optional, + BSSMAP_IE_LCLS_Configuration lCLS_Configuration optional, + BSSMAP_IE_LCLS_ConnectionStatusControl connectionStatusControl optional +} with { variant "PRESENCE (messageType = '10'O)" + variant "TAG ( + sourceToTargetRNCTransparentInfo, elementIdentifier = '51'O; + sourceToTargetRNCTransparentInfoCDMA, elementIdentifier = '52'O)"} + + +// HANDOVER REQUIRED - 48.008 subclause 3.2.1.9 +type record PDU_BSSMAP_HandoverRequired +{ + OCT1 messageType, // '11'O + BSSMAP_IE_Cause cause, + BSSMAP_IE_ResponseRequest responseRequest optional, + BSSMAP_IE_CellIdentifierList cellIdentifierList, + BSSMAP_IE_CircuitPoolList circuitPoolList optional, + BSSMAP_IE_CurrentChannelType1 currentChannelType1 optional, + BSSMAP_IE_SpeechVersion speechVersion optional, + BSSMAP_IE_QueueingIndicator queueingIndicator optional, + BSSMAP_IE_OldToNewBSSInfo oldToNewBSSInfo optional, + BSSMAP_IE_SourceToTargetRNCTransparentInfo sourceToTargetRNCTransparentInfo optional, + BSSMAP_IE_SourceToTargetRNCTransparentInfo sourceToTargetRNCTransparentInfoCDMA optional, + BSSMAP_IE_GERANClassmark gERANClassmark optional, + BSSMAP_IE_TalkerPriority talkerPriority optional, + BSSMAP_IE_SpeechCodec speechCodec optional, + BSSMAP_IE_CSG_Identifier cSG_Identifier optional +} with { variant "PRESENCE (messageType = '11'O)" + variant "TAG ( + sourceToTargetRNCTransparentInfo, elementIdentifier = '51'O; + sourceToTargetRNCTransparentInfoCDMA, elementIdentifier = '52'O)"} + + +// HANDOVER REQUEST ACKNOWLEDGE - 48.008 subclause 3.2.1.10 +type record PDU_BSSMAP_HandoverRequestAck +{ + OCT1 messageType, // '12'O + BSSMAP_IE_Layer3Information layer3Information, + BSSMAP_IE_ChosenChannel chosenChannel optional, + BSSMAP_IE_ChosenEncryptionAlgorithm chosenEncryptionAlgorithm optional, + BSSMAP_IE_CircuitPool circuitPool optional, + BSSMAP_IE_SpeechVersion speechVersion optional, + BSSMAP_IE_CircuitIdentityCode circuitIdentityCode optional, + BSSMAP_IE_LSAIdentifier lSAIdentifier optional, + BSSMAP_IE_NewBSSToOldBSSInfo newBSSToOldBSSInfo optional, + BSSMAP_IE_InterSystemInfo interSystemInformation optional, + BSSMAP_IE_TalkerPriority talkerPriority optional, + BSSMAP_IE_AoIP_TransportLayerAddress aoIPTransportLayer optional, + BSSMAP_IE_SpeechCodecList codecList optional, + BSSMAP_IE_SpeechCodec speechCodec optional, + BSSMAP_IE_LCLS_BSS_Status lCLS_bSS_Status optional +} with { variant "PRESENCE (messageType = '12'O)" } + + +// HANDOVER COMMAND - 48.008 subclause 3.2.1.11 +type record PDU_BSSMAP_HandoverCommand +{ + OCT1 messageType, // '13'O + BSSMAP_IE_Layer3Information layer3Information, + BSSMAP_IE_CellIdentifier cellIdentifier optional, + BSSMAP_IE_NewBSSToOldBSSInfo newBSSToOldBSSInfo optional, + BSSMAP_IE_TalkerPriority talkerPriority optional +} with { variant "PRESENCE (messageType = '13'O)" } + + +// HANDOVER COMPLETE - 48.008 subclause 3.2.1.12 +type record PDU_BSSMAP_HandoverComplete +{ + OCT1 messageType, // H'14 + BSSMAP_IE_RR_Cause rR_Cause optional, + BSSMAP_IE_TalkerPriority talkerPriority optional, + BSSMAP_IE_SpeechCodec speechCodec optional, + BSSMAP_IE_SpeechCodecList codecList optional, + BSSMAP_IE_ChosenEncryptionAlgorithm chosenEncryptionAlgorithm optional, + BSSMAP_IE_ChosenChannel chosenChannel optional, + BSSMAP_IE_LCLS_BSS_Status lCLS_BSS_Status optional +} with { variant "PRESENCE (messageType = '14'O)" } + + +// HANDOVER SUCCEEDED - 48.008 subclause 3.2.1.13 +type record PDU_BSSMAP_HandoverSucceeded +{ + OCT1 messageType, // H'15 + BSSMAP_IE_TalkerPriority talkerPriority optional +} with { variant "PRESENCE (messageType = '15'O)" } + + +// HANDOVER CANDIDATE ENQUIRE - 48.008 subclause 3.2.1.14 +type record PDU_BSSMAP_HandoverCandidateEnquire +{ + OCT1 messageType, // H'18 + BSSMAP_IE_NumberOfMSs numberOfMSs, + BSSMAP_IE_CellIdentifierList cellIdentifierList, + BSSMAP_IE_CellIdentifier cellIdentifier +} with { variant "PRESENCE (messageType = '18'O)" } + + +// HANDOVER CANDIDATE RESPONSE - 48.008 subclause 3.2.1.15 +type record PDU_BSSMAP_HandoverCandidateResponse +{ + OCT1 messageType, // H'19 + BSSMAP_IE_NumberOfMSs numberOfMSs, + BSSMAP_IE_CellIdentifier cellIdentifier +} with { variant "PRESENCE (messageType = '19'O)" } + + +// HANDOVER FAILURE - 48.008 subclause 3.2.1.16 +type record PDU_BSSMAP_HandoverFailure +{ + OCT1 messageType, + BSSMAP_IE_Cause cause, + BSSMAP_IE_RR_Cause rR_Cause optional, + BSSMAP_IE_CircuitPool circuitPool optional, + BSSMAP_IE_CircuitPoolList circuitPoolList optional, + BSSMAP_IE_GERANClassmark gERANClassmark optional, + BSSMAP_IE_NewBSSToOldBSSInfo newBSSToOldBSSInfo optional, + BSSMAP_IE_InterSystemInfo interSystemInformation optional, + BSSMAP_IE_TalkerPriority talkerPriority optional, + BSSMAP_IE_SpeechCodecList codecList optional +} with { variant "PRESENCE (messageType = '16'O)" } + + +// RESOURCE REQUEST - 48.008 subclause 3.2.1.17 +type record PDU_BSSMAP_ResourceRequest +{ + OCT1 messageType, + BSSMAP_IE_Periodicity periodicity, + BSSMAP_IE_ResourceIndMethod resourceIndicationMethod, + BSSMAP_IE_CellIdentifier cellIdentifier, + BSSMAP_IE_ExtendedResourceInd extendedResourceIndicator optional +} with { variant "PRESENCE (messageType = '50'O)" } + + +// RESOURCE INDICATION - 48.008 subclause 3.2.1.18 +type record PDU_BSSMAP_ResourceIndication +{ + OCT1 messageType, + BSSMAP_IE_ResourceIndMethod resourceIndicationMethod, + BSSMAP_IE_ResourceAvailable resourceAvailable optional, + BSSMAP_IE_CellIdentifier cellIdentifier, + BSSMAP_IE_TotalResourceAccessible totalResourceAccessible optional +} with { variant "PRESENCE (messageType = '51'O)" } + +// PAGING - 48.008 subclause 3.2.1.19 +type record PDU_BSSMAP_Paging +{ + OCT1 messageType, // '52'O + BSSMAP_IE_IMSI iMSI, + BSSMAP_IE_TMSI tMSI optional, + BSSMAP_IE_CellIdentifierList cellIdentifierList, + BSSMAP_IE_ChannelNeeded channelNeeded optional, + BSSMAP_IE_EMLPP_Priority eMLPP_Priority optional, + BSSMAP_IE_PagingInformation pagingInformation optional +} with { variant "PRESENCE (messageType = '52'O)" } + + +// CLEAR REQUEST - 48.008 subclause 3.2.1.20 +type record PDU_BSSMAP_ClearRequest +{ + OCT1 messageType, // H'22 + BSSMAP_IE_Cause cause +} with { variant "PRESENCE (messageType = '22'O)" } + + +// CLEAR COMMAND - 48.008 subclause 3.2.1.21 +type record PDU_BSSMAP_ClearCommand +{ + OCT1 messageType, // H'20 + BSSMAP_IE_Layer3HeaderInfo layer3HeaderInfo optional, + BSSMAP_IE_Cause cause, + BSSMAP_IE_CSFB_Indication cSFB_Indication optional +} with { variant "PRESENCE (messageType = '20'O)" } + + +// CLEAR COMPLETE - 48.008 subclause 3.2.1.22 +type record PDU_BSSMAP_ClearComplete +{ + OCT1 messageType // H'21 +} with { variant "PRESENCE (messageType = '21'O)" } + + +// RESET - 48.008 subclause 3.2.1.23 +type record PDU_BSSMAP_Reset +{ + OCT1 messageType, // H'30 + BSSMAP_IE_Cause cause, + BSSMAP_IE_A_InterfaceSelectorForReset a_InterfaceSelectorForReset optional +} with { variant "PRESENCE (messageType = '30'O)" } + + +// RESET ACKNOWLEDGE - 48.008 subclause 3.2.1.24 +type record PDU_BSSMAP_ResetAck +{ + OCT1 messageType, // H'31 + BSSMAP_IE_A_InterfaceSelectorForReset a_InterfaceSelectorForReset optional +} with { variant "PRESENCE (messageType = '31'O)" } + + +// HANDOVER PERFORMED - 48.008 subclause 3.2.1.25 +type record PDU_BSSMAP_HandoverPerformed +{ + OCT1 messageType, + BSSMAP_IE_Cause cause, + BSSMAP_IE_CellIdentifier cellIdentifier, + BSSMAP_IE_ChosenChannel chosenChannel optional, + BSSMAP_IE_ChosenEncryptionAlgorithm chosenEncryptionAlgorithm optional, + BSSMAP_IE_SpeechVersion speechVersion optional, + BSSMAP_IE_LSAIdentifier lSAIdentifier optional, + BSSMAP_IE_TalkerPriority talkerPriority optional, + BSSMAP_IE_SpeechCodecList codecList optional, + BSSMAP_IE_SpeechCodec speechCodec optional, + BSSMAP_IE_LCLS_BSS_Status lCLS_BSS_Status optional +} with { variant "PRESENCE (messageType = '17'O)" } + +// OVERLOAD - 48.008 subclause 3.2.1.26 +type record PDU_BSSMAP_Overload +{ + OCT1 messageType, // H'32 + BSSMAP_IE_Cause cause, + BSSMAP_IE_CellIdentifier cellIdentifier optional +} with { variant "PRESENCE (messageType = '32'O)" } + + +// MSC INVOKE TRACE - 48.008 subclause 3.2.1.27 +type record PDU_BSSMAP_MSCInvokeTrace +{ + OCT1 messageType, // H'36 + BSSMAP_IE_TraceType traceType, + BSSMAP_IE_TriggerId triggerId optional, + BSSMAP_IE_TraceReference traceReference, + BSSMAP_IE_TransactionId transactionId optional, + BSSMAP_IE_MobileIdentity mobileIdentity optional, + BSSMAP_IE_OMCId oMCId optional +} with { variant "PRESENCE (messageType = '36'O)" } + + +// BSS INVOKE TRACE - 48.008 subclause 3.2.1.28 +type record PDU_BSSMAP_BSSInvokeTrace +{ + OCT1 messageType, // H'37 + BSSMAP_IE_TraceType traceType, + BSSMAP_IE_ForwardIndicator forwardIndicator optional, + BSSMAP_IE_TriggerId triggerId optional, + BSSMAP_IE_TraceReference traceReference, + BSSMAP_IE_TransactionId transactionId optional, + BSSMAP_IE_OMCId oMCId optional +} with { variant "PRESENCE (messageType = '37'O)" } + + +// CLASSMARK UPDATE - 48.008 subclause 3.2.1.29 +type record PDU_BSSMAP_ClassmarkUpdate +{ + OCT1 messageType, // '54'O + BSSMAP_IE_ClassmarkInformationType2 classmarkInformationType2, + BSSMAP_IE_ClassmarkInformationType3 classmarkInformationType3 optional, + BSSMAP_IE_TalkerPriority talkerPriority optional +} with { variant "PRESENCE (messageType = '54'O)" } + +// CIPHER MODE COMMAND - 48.008 subclause 3.2.1.30 +type record PDU_BSSMAP_CipherModeCommand +{ + OCT1 messageType, // '53'O + BSSMAP_IE_Layer3HeaderInfo layer3HeaderInfo optional, + BSSMAP_IE_EncryptionInformation encryptionInformation, + BSSMAP_IE_CipherResponseMode cipherResponseMode optional, + BSSMAP_IE_KC128 kC128 optional +} with { variant "PRESENCE (messageType = '53'O)" } + + +// CIPHER MODE COMPLETE - 48.008 subclause 3.2.1.31 +type record PDU_BSSMAP_CipherModeComplete +{ + OCT1 messageType, // '55'O + BSSMAP_IE_Layer3MessageContents layer3MessageContents optional, + BSSMAP_IE_ChosenEncryptionAlgorithm chosenEncryptionAlgorithm optional +} with { variant "PRESENCE (messageType = '55'O)" } + + +// COMPLETE LAYER 3 INFORMATION - 48.008 subclause 3.2.1.32 +type record PDU_BSSMAP_CompleteLayer3Information +{ + OCT1 messageType, // '57'O + BSSMAP_IE_CellIdentifier cellIdentifier, + BSSMAP_IE_Layer3Information layer3Information, + BSSMAP_IE_ChosenChannel chosenChannel optional, + BSSMAP_IE_LSAIdentifier lSAIdentifier optional, + BSSMAP_IE_APDU aPDU optional, + BSSMAP_IE_SpeechCodecList codecList optional, + BSSMAP_IE_RedirectAttemptFlag redirectAttemptFlag optional, + BSSMAP_IE_SendSequenceNumber sendSequenceNumber optional, + BSSMAP_IE_IMSI iMSI optional +} with { variant "PRESENCE (messageType = '57'O)" } + + +// QUEUEING INDICATION - 48.008 subclause 3.2.1.33 +type record PDU_BSSMAP_QueueingIndication +{ + OCT1 messageType // H'56 +} with { variant "PRESENCE (messageType = '56'O)" } + + +// SAPI "n" REJECT - 48.008 subclause 3.2.1.34 +type record PDU_BSSMAP_SAPInReject +{ + OCT1 messageType, // H'25 + BSSMAP_IE_DLCI dLCI, + BSSMAP_IE_Cause cause +} with { variant "PRESENCE (messageType = '25'O)" } + + +// HANDOVER REQUIRED REJECT - 48.008 subclause 3.2.1.37 +type record PDU_BSSMAP_HandoverRequiredReject +{ + OCT1 messageType, + BSSMAP_IE_Cause cause, + BSSMAP_IE_NewBSSToOldBSSInfo newBSSToOldBSSInfo optional, + BSSMAP_IE_TalkerPriority talkerPriority optional +} with { variant "PRESENCE (messageType = '1A'O)" } + +// RESET CIRCUIT - 48.008 subclause 3.2.1.38 +type record PDU_BSSMAP_ResetCircuit +{ + OCT1 messageType, // H'34 + BSSMAP_IE_CircuitIdentityCode circuitIdentityCode, + BSSMAP_IE_Cause cause +} with { variant "PRESENCE (messageType = '34'O)" } + + +// RESET CIRCUIT ACKNOWLEDGE - 48.008 subclause 3.2.1.39 +type record PDU_BSSMAP_ResetCircuitAck +{ + OCT1 messageType, // H'35 + BSSMAP_IE_CircuitIdentityCode circuitIdentityCode +} with { variant "PRESENCE (messageType = '35'O)" } + + +// HANDOVER DETECT - 48.008 subclause 3.2.1.40 +type record PDU_BSSMAP_HandoverDetect +{ + OCT1 messageType, // '1B'O + BSSMAP_IE_TalkerPriority talkerPriority optional +} with { variant "PRESENCE (messageType = '1B'O)" } + + +// CIRCUIT GROUP BLOCK - 48.008 subclause 3.2.1.41 +type record PDU_BSSMAP_CircuitGroupBlock +{ + OCT1 messageType, // H'44 + BSSMAP_IE_Cause cause, + BSSMAP_IE_CircuitIdentityCode circuitIdentityCode, + BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList +} with { variant "PRESENCE (messageType = '44'O)" } + + +// CIRCUIT GROUP BLOCKING ACKNOWLEDGE - 48.008 subclause 3.2.1.42 +type record PDU_BSSMAP_CircuitGroupBlockingAck +{ + OCT1 messageType, // H'45 + BSSMAP_IE_CircuitIdentityCode circuitIdentityCode, + BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList +} with { variant "PRESENCE (messageType = '45'O)" } + + +// CIRCUIT GROUP UNBLOCK - 48.008 subclause 3.2.1.43 +type record PDU_BSSMAP_CircuitGroupUnblock +{ + OCT1 messageType, // H'46 + BSSMAP_IE_CircuitIdentityCode circuitIdentityCode, + BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList +} with { variant "PRESENCE (messageType = '46'O)" } + + +// CIRCUIT GROUP UNBLOCKING ACKNOWLEDGE - 48.008 subclause 3.2.1.44 +type record PDU_BSSMAP_CircuitGroupUnblockAck +{ + OCT1 messageType, // H'47 + BSSMAP_IE_CircuitIdentityCode circuitIdentityCode, + BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList +} with { variant "PRESENCE (messageType = '47'O)" } + + +// CONFUSION - 48.008 subclause 3.2.1.45 +type record PDU_BSSMAP_Confusion +{ + OCT1 messageType, // H'26 + BSSMAP_IE_Cause cause, + BSSMAP_IE_Diagnostics diagnostics +} with { variant "PRESENCE (messageType = '26'O)" } + + +// CLASSMARK REQUEST - 48.008 subclause 3.2.1.46 +type record PDU_BSSMAP_ClassmarkRequest +{ + OCT1 messageType, // H'58 + BSSMAP_IE_TalkerPriority talkerPriority optional +} with { variant "PRESENCE (messageType = '58'O)" } + +// UNEQUIPPED CIRCUIT - 48.008 subclause 3.2.1.47 +type record PDU_BSSMAP_UnequippedCircuit +{ + OCT1 messageType, // H'48 + BSSMAP_IE_CircuitIdentityCode circuitIdentityCode, + BSSMAP_IE_CircuitIdentityCodeList circuitIdentityCodeList optional +} with { variant "PRESENCE (messageType = '48'O)" } + + +// CIPHER MODE REJECT - 48.008 subclause 3.2.1.48 +type record PDU_BSSMAP_CipherModeReject +{ + OCT1 messageType, // H'59 + BSSMAP_IE_Cause cause +} with { variant "PRESENCE (messageType = '59'O)" } + + +// LOAD INDICATION - 48.008 subclause 3.2.1.49 +type record PDU_BSSMAP_LoadIndication +{ + OCT1 messageType, // H'5A + BSSMAP_IE_TimeIndication timeIndication, + BSSMAP_IE_CellIdentifier cellIdentifier, + BSSMAP_IE_CellIdentifierList cellIdentifierList, + BSSMAP_IE_ResourceSituation resourceSitation optional, + BSSMAP_IE_Cause cause optional +} with { variant "PRESENCE (messageType = '5A'O)" } + + +// VGCS/VBS SETUP - 48.008 subclause 3.2.1.50 +type record PDU_BSSMAP_VGCS_VBSSetup +{ + OCT1 messageType, // H'04 + BSSMAP_IE_GroupCallReference groupCallReference, + BSSMAP_IE_Priority priority optional, + BSSMAP_IE_VGCS_FeatureFlags vGCS_FeatureFlags optional +} with { variant "PRESENCE (messageType = '04'O)" } + +// VGCS/VBS SETUP ACK - 48.008 subclause 3.2.1.51 +type record PDU_BSSMAP_VGCS_VBSSetupAck +{ + OCT1 messageType, // H'05 + BSSMAP_IE_VGCS_FeatureFlags vGCS_FeatureFlags optional +} with { variant "PRESENCE (messageType = '05'O)" } + + +// VGCS/VBS SETUP REFUSE - 48.008 subclause 3.2.1.52 +type record PDU_BSSMAP_VGCS_VBSSetupRefuse +{ + OCT1 messageType, // H'06 + BSSMAP_IE_Cause cause +} with { variant "PRESENCE (messageType = '06'O)" } + + +// VGCS/VBS ASSIGNMENT REQUEST - 48.008 subclause 3.2.1.53 +type record PDU_BSSMAP_VGCS_VBSAssignmentRequest +{ + OCT1 messageType, // H'07 + BSSMAP_IE_ChannelType channelType, + BSSMAP_IE_AssignmentRequirement assignmentRequirement, + BSSMAP_IE_CellIdentifier cellIdentifier, + BSSMAP_IE_GroupCallReference groupCallReference, + BSSMAP_IE_Priority priority optional, + BSSMAP_IE_CircuitIdentityCode circuitIdentityCode optional, + BSSMAP_IE_DownLinkDTXFlag downLinkDTX_Flag optional, + BSSMAP_IE_EncryptionInformation encryptionInformation optional, + BSSMAP_IE_VSTK_RAND vSTK_RAND optional, + BSSMAP_IE_VSTK vSTK optional, + BSSMAP_IE_CellIdentifierListSegment cellIdentifierListSegment optional +} with { variant "PRESENCE (messageType = '07'O)" } + + +// VGCS/VBS ASSIGNMENT RESULT - 48.008 subclause 3.2.1.54 +type record PDU_BSSMAP_VGCS_VBSAssignmentResult +{ + OCT1 messageType, // H'1C + BSSMAP_IE_ChannelType channelType, + BSSMAP_IE_CellIdentifier cellIdentifier, + BSSMAP_IE_ChosenChannel chosenChannel optional, + BSSMAP_IE_CircuitIdentityCode circuitIdentityCode optional, + BSSMAP_IE_CircuitPool circuitPool optional +} with { variant "PRESENCE (messageType = '1C'O)" } + + +// VGCS/VBS ASSIGNMENT FAILURE - 48.008 subclause 3.2.1.55 +type record PDU_BSSMAP_VGCS_VBSAssignmentFailure +{ + OCT1 messageType, // H'1D + BSSMAP_IE_Cause cause, + BSSMAP_IE_CircuitPool circuitPool optional, + BSSMAP_IE_CircuitPoolList circuitPoolList optional +} with { variant "PRESENCE (messageType = '1D'O)" } + + +// VGCS/VBS QUEUING INDICATION - 48.008 subclause 3.2.1.56 +type record PDU_BSSMAP_VGCS_VBSQueuingIndication +{ + OCT1 messageType // H'1E +} with { variant "PRESENCE (messageType = '1E'O)" } + + +// UPLINK REQUEST - 48.008 subclause 3.2.1.57 +type record PDU_BSSMAP_UplinkRequest +{ + OCT1 messageType, // H'1F + BSSMAP_IE_TalkerPriority talkerPriority optional, + BSSMAP_IE_CellIdentifier cellIdentifier optional, + BSSMAP_IE_Layer3Information layer3Information optional, + BSSMAP_IE_MobileIdentity mobileIdentity optional +} with { variant "PRESENCE (messageType = '1F'O)" } + + +// UPLINK REQUEST ACK - 48.008 subclause 3.2.1.58 +type record PDU_BSSMAP_UplinkRequestAck +{ + OCT1 messageType, // H'27 + BSSMAP_IE_TalkerPriority talkerPriority optional, + BSSMAP_IE_EmergencySetIndication emergencySetIndication optional, + BSSMAP_IE_TalkerIdentity talkerIdentity optional +} with { variant "PRESENCE (messageType = '27'O)" } + + +// UPLINK REQUEST CONFIRMATION - 48.008 subclause 3.2.1.59 +type record PDU_BSSMAP_UplinkRequestConfirmation +{ + OCT1 messageType, // H'49 + BSSMAP_IE_CellIdentifier cellIdentifier, + BSSMAP_IE_TalkerIdentity talkerIdentity optional, + BSSMAP_IE_Layer3Information layer3Information +} with { variant "PRESENCE (messageType = '49'O)" } + + +// UPLINK APPLICATION DATA - 48.008 subclause 3.2.1.59a +type record PDU_BSSMAP_UplinkApplicationData +{ + OCT1 messageType, + BSSMAP_IE_CellIdentifier cellIdentifier, + BSSMAP_IE_Layer3Information layer3Information, + BSSMAP_IE_ApplicationDataInformation applicationDataInformation +} with { variant "PRESENCE (messageType = '63'O)" } + + +// UPLINK RELEASE INDICATION- 48.008 subclause 3.2.1.60 +type record PDU_BSSMAP_UplinkReleaseIndication +{ + OCT1 messageType, // H'4A + BSSMAP_IE_Cause cause, + BSSMAP_IE_TalkerPriority talkerPriority optional +} with { variant "PRESENCE (messageType = '4A'O)" } + + +// UPLINK REJECT COMMAND - 48.008 subclause 3.2.1.61 +type record PDU_BSSMAP_UplinkRejectCommand +{ + OCT1 messageType, // H'4B + BSSMAP_IE_Cause cause, + BSSMAP_IE_TalkerPriority currentTalkerPriority optional, + BSSMAP_IE_TalkerPriority rejectedTalkerPriority optional, + BSSMAP_IE_TalkerIdentity talkerIdentity optional +} with { variant "PRESENCE (messageType = '4B'O)" } + + +// UPLINK RELEASE COMMAND - 48.008 subclause 3.2.1.62 +type record PDU_BSSMAP_UplinkReleaseCommand +{ + OCT1 messageType, // H'4C + BSSMAP_IE_Cause cause +} with { variant "PRESENCE (messageType = '4C'O)" } + + +// UPLINK SEIZED COMMAND- 48.008 subclause 3.2.1.63 +type record PDU_BSSMAP_UplinkSeizedCommand +{ + OCT1 messageType, // H'4E + BSSMAP_IE_Cause cause, + BSSMAP_IE_TalkerPriority talkerPriority optional, + BSSMAP_IE_EmergencySetIndication emergencySetIndication optional, + BSSMAP_IE_TalkerIdentity talkerIdentity optional +} with { variant "PRESENCE (messageType = '4E'O)" } + + + +// SUSPEND - 48.008 subclause 3.2.1.64 +type record PDU_BSSMAP_Suspend +{ + OCT1 messageType, // H'28 + BSSMAP_IE_DLCI dLCI +} with { variant "PRESENCE (messageType = '28'O)" } + + +// RESUME - 48.008 subclause 3.2.1.65 +type record PDU_BSSMAP_Resume +{ + OCT1 messageType, // H'29 + BSSMAP_IE_DLCI dLCI +} with { variant "PRESENCE (messageType = '29'O)" } + + +// CHANGE CIRCUIT - 48.008 subclause 3.2.1.66 +type record PDU_BSSMAP_ChangeCircuit +{ + OCT1 messageType, // H'4E + BSSMAP_IE_Cause cause +} with { variant "PRESENCE (messageType = '4E'O)" } + + +// CHANGE CIRCUIT ACKNOWLEDGE - 48.008 subclause 3.2.1.67 +type record PDU_BSSMAP_ChangeCircuitAck +{ + OCT1 messageType, // H'4F + BSSMAP_IE_CircuitIdentityCode circuitIdentity +} with { variant "PRESENCE (messageType = '4F'O)" } + + +// COMMON ID - 48.008 subclause 3.2.1.68 +type record PDU_BSSMAP_CommonID +{ + OCT1 messageType, // H'2F + BSSMAP_IE_IMSI iMSI, + BSSMAP_IE_SNAAccessInfo sNAAccessInformation optional +} with { variant "PRESENCE (messageType = '2F'O)" } + + +// LSA INFORMATION - 48.008 subclause 3.2.1.69 +type record PDU_BSSMAP_LSAInformation +{ + OCT1 messageType, // H'2C + BSSMAP_IE_LSAInformation lSAInformation +} with { variant "PRESENCE (messageType = '2C'O)" } + + +// REFORM LOCATION REQUEST - 48.008 subclause 3.2.1.71 +type record PDU_BSSMAP_PerformLocationRequest +{ + OCT1 messageType, // '2B'O + BSSMAP_IE_LocationType locationType, + BSSMAP_IE_CellIdentifier cellIdentifier optional, + BSSMAP_IE_ClassmarkInformationType3 classmarkInformationType3 optional, + BSSMAP_IE_LCSClientType lCS_ClientType optional, + BSSMAP_IE_ChosenChannel chosenChannel optional, + BSSMAP_IE_LCSPriority lCS_Priority optional, + BSSMAP_IE_LCSQOS lCS_QOS optional, + BSSMAP_IE_GPSAssistanceData gPS_AssistanceData optional, + BSSMAP_IE_APDU aPDU optional, + BSSMAP_IE_IMSI iMSI optional, + BSSMAP_IE_IMEI iMEI optional, + BSSMAP_IE_GANSS_LocationType gANSS_LocationType optional, + BSSMAP_IE_GANSS_AssistanceData gANSS_AssistanceData optional +} with { variant "PRESENCE (messageType = '2B'O)" } + + +// REFORM LOCATION RESPONSE - 48.008 subclause 3.2.1.72 +type record PDU_BSSMAP_PerformLocationResponse +{ + OCT1 messageType, // '2D'O + BSSMAP_IE_LocationEstimate locationEstimate optional, + BSSMAP_IE_PositioningData positioningData optional, + BSSMAP_IE_DecipheringKeys decipheringKeys optional, + BSSMAP_IE_LCSCause lCS_Cause optional, + BSSMAP_IE_VelocityEstimate velocityEstimate optional, + BSSMAP_IE_GANSS_PositioningData gANSS_PositioningData optional +} with { variant "PRESENCE (messageType = '2D'O)" } + + +// REFORM LOCATION ABORT - 48.008 subclause 3.2.1.73 +type record PDU_BSSMAP_PerformLocationAbort +{ + OCT1 messageType, // '2E'O + BSSMAP_IE_LCSCause lCS_Cause +} with { variant "PRESENCE (messageType = '2E'O)" } + + +// CONNECTIONLESS INFORMATION - 48.008 subclause 3.2.1.74 +type record PDU_BSSMAP_ConnectionlessInformation +{ + OCT1 messageType, // '3A'O + BSSMAP_IE_NetworkElementIdentity networkElementIdentitySource, + BSSMAP_IE_NetworkElementIdentity networkElementIdentityTarget, + BSSMAP_IE_APDU aPDU, + BSSMAP_IE_Segmentation segmentation optional, + BSSMAP_IE_ReturnErrorRequest returnErrorRequest optional, + BSSMAP_IE_ReturnErrorCause returnErrorCause optional +} with { variant "PRESENCE (messageType = '3A'O)" } + +// 3.2.1.75 CHANNEL MODIFY REQUEST +type record PDU_BSSMAP_ChannelModifyRequest +{ + OCT1 messageType, // '08'O + BSSMAP_IE_Cause cause +} with { variant "PRESENCE (messageType = '08'O)" } + +// FIXME: these two message type codes are not specified in the standard +/*// 3.2.1.76 EMERGENCY RESET INDICATION +type record PDU_BSSMAP_EmergencyResetIndication +{ +OCT1 messageType, // 'X'O +BSSMAP_IE_CellIdentifier cellIdentifier optional, +BSSMAP_IE_Layer3Information layer3Information optional, +BSSMAP_IE_MobileIdentity mobileIdentity optional +} with {variant "TAG ( +// layer3Information?} + +// 3.2.1.77 EMERGENCY RESET COMMAND +type record PDU_BSSMAP_EmergencyResetCommand +{ +OCT1 messageType // 'X'O +}*/ + +// 3.2.1.78 VGCS ADDITIONAL INFORMATION +type record PDU_BSSMAP_VGCS_AdditionalInformation +{ + OCT1 messageType, // '60'O + BSSMAP_IE_TalkerIdentity talkerIdentity +} with { variant "PRESENCE (messageType = '60'O)" } + + +// 3.2.1.79 VGCS/VBS AREA CELL INFO +type record PDU_BSSMAP_VGCS_VBS_AreaCellInfo +{ + OCT1 messageType, // '3C'O + BSSMAP_IE_CellIdentifierListSegment cellIdentifierListSegment, + BSSMAP_IE_AssignmentRequirement assignmentRequirement optional +} with { variant "PRESENCE (messageType = '3C'O)" } + + +// 3.2.1.80 VGCS/VBS ASSIGNMENT STATUS +type record PDU_BSSMAP_VGCS_VBS_AssignmentStatus +{ + OCT1 messageType, // '3B'O + BSSMAP_IE_CellIdentifierListSegmentEstCells cellIdentifierListForEstablishedCells optional, + BSSMAP_IE_CellIdentifierListSegmentCellsToEst cellIdentifierListForCellsToEstablish optional, + BSSMAP_IE_CellIdentifierListSegmentReleasedCellsNoUserPresent cellIdentifierListSegmentReleasedCellsNoUserPresent optional, + BSSMAP_IE_CellIdentifierListSegmentNotEstablishedCellsNoEstPossible cellIdentifierListSegmentNotEstablishedCellsNoEstPossible optional, + BSSMAP_IE_VGCS_VBS_CellStatus vGCS_VBS_CellStatus optional +} with { variant "PRESENCE (messageType = '3B'O)" } + + +// 3.2.1.81 VGCS SMS +type record PDU_BSSMAP_VGCS_SMS +{ + OCT1 messageType, // '61'O + BSSMAP_IE_SMS_to_VGCS sMS_to_VGCS +} with { variant "PRESENCE (messageType = '61'O)" } + + +// 3.2.1.82 NOTIFICATION DATA +type record PDU_BSSMAP_NotificationData +{ + OCT1 messageType, // '62' + BSSMAP_IE_ApplicationData applicationData, + BSSMAP_IE_DataIdentity dataIdentity, + BSSMAP_IE_MSISDN mSISDN optional +} with { variant "PRESENCE (messageType = '62'O)" } + + +// 3.2.1.83 INTERNAL HANDOVER REQUIRED +type record PDU_BSSMAP_InternalHandoverRequired +{ + OCT1 messageType, // '70' + BSSMAP_IE_Cause cause, + BSSMAP_IE_CellIdentifier cellIdentifier, + BSSMAP_IE_AoIP_TransportLayerAddress aoIPTransportLayer optional, + BSSMAP_IE_SpeechCodecList codecList +} with { variant "PRESENCE (messageType = '70'O)" } + + +// 3.2.1.84 INTERNAL HANDOVER REQUIRED REJECT +type record PDU_BSSMAP_InternalHandoverRequiredReject +{ + OCT1 messageType, // '71' + BSSMAP_IE_Cause cause, + BSSMAP_IE_SpeechCodecList codecList optional +} with { variant "PRESENCE (messageType = '71'O)" } + + +// 3.2.1.85 INTERNAL HANDOVER COMMAND +type record PDU_BSSMAP_InternalHandoverCommand +{ + OCT1 messageType, // '72' + BSSMAP_IE_SpeechCodec speechCodec, + BSSMAP_IE_CircuitIdentityCode circuitIdentityCode optional, + BSSMAP_IE_AoIP_TransportLayerAddress aoIPTransportLayer optional, + BSSMAP_IE_CallIdentifier callIdentifier optional, + BSSMAP_IE_DownLinkDTXFlag downLinkDTX_Flag optional, + BSSMAP_IE_LCLS_ConnectionStatusControl lCLS_ConnectionStatusControl optional +} with { variant "PRESENCE (messageType = '72'O)" } + +// 3.2.1.86 INTERNAL HANDOVER ENQUIRY +type record PDU_BSSMAP_InternalHandoverEnquiry +{ + OCT1 messageType, //'73' + BSSMAP_IE_SpeechCodec speechCodec +} with { variant "PRESENCE (messageType = '73'O)" } + + +// 3.2.1.87 RESET IP RESOURCE +type record PDU_BSSMAP_ResetIPResource +{ + OCT1 messageType, //'3D' + BSSMAP_IE_Cause cause, + BSSMAP_IE_CallIdentifierList callIdentifierList +} with { variant "PRESENCE (messageType = '3D'O)" } + + +// 3.2.1.88 RESET IP RESOURCE ACK +type record PDU_BSSMAP_ResetIPResourceAck +{ + OCT1 messageType, //'3E' + BSSMAP_IE_CallIdentifierList callIdentifierList +} with { variant "PRESENCE (messageType = '3E'O)" } + + +// 3.2.1.89 REROUTE COMMAND +type record PDU_BSSMAP_RerouteCommand +{ + OCT1 messageType, //'78' + BSSMAP_IE_Layer3Information initialLayer3Information, + BSSMAP_IE_RerouteRejectCause rerouteRejectCause, + BSSMAP_IE_Layer3Information layer3Information optional, + BSSMAP_IE_SendSequenceNumber sendSequenceNumber optional, + BSSMAP_IE_IMSI iMSI optional +} with { variant "PRESENCE (messageType = '78'O)" } + +// 3.2.1.90 REROUTE COMPLETE +type record PDU_BSSMAP_RerouteComplete +{ + OCT1 messageType, //'79' + BSSMAP_IE_RerouteCompleteOutcome rerouteCompleteOutcome +} with { variant "PRESENCE (messageType = '79'O)" } + +// 3.2.1.91 LCLS CONNECT CONTROL +type record PDU_BSSMAP_LCLS_ConnectControl +{ + OCT1 messageType, //'74' + BSSMAP_IE_LCLS_Configuration lCLS_Configuration optional, + BSSMAP_IE_LCLS_ConnectionStatusControl lCLS_ConnectionStatusControl optional +} with { variant "PRESENCE (messageType = '74'O)" } + +// 3.2.1.92 LCLS CONNECT CONTROL ACK +type record PDU_BSSMAP_LCLS_ConnectControlAck +{ + OCT1 messageType, //'75' + BSSMAP_IE_LCLS_BSS_Status lCLS_BSS_Status +} with { variant "PRESENCE (messageType = '75'O)" } + +// 3.2.1.93 LCLS NOTIFICATION +type record PDU_BSSMAP_LCLS_Notification +{ + OCT1 messageType, //'76' + BSSMAP_IE_LCLS_BSS_Status lCLS_BSS_Status optional, + BSSMAP_IE_LCLS_BreakRequest lCLS_BreakRequest optional +} with { variant "PRESENCE (messageType = '76'O)" } + + +//The container type of all BSSMAP messages +type union PDU_BSSMAP +{ + PDU_BSSMAP_AssignmentRequest assignmentRequest, + PDU_BSSMAP_AssignmentComplete assignmentComplete, + PDU_BSSMAP_AssignmentFailure assignmentFailure, + PDU_BSSMAP_ChannelModifyRequest channelModifyRequest, + PDU_BSSMAP_Block block, + PDU_BSSMAP_BlockingAck blockingAck, + PDU_BSSMAP_BSSInvokeTrace bSSInvokeTrace, + PDU_BSSMAP_ChangeCircuit changeCircuit, + PDU_BSSMAP_ChangeCircuitAck changeCircuitAck, + PDU_BSSMAP_CipherModeCommand cipherModeCommand, + PDU_BSSMAP_CipherModeComplete cipherModeComplete, + PDU_BSSMAP_CipherModeReject cipherModeReject, + PDU_BSSMAP_CircuitGroupBlock circuitGroupBlock, + PDU_BSSMAP_CircuitGroupBlockingAck circuitGroupBlockingAck, + PDU_BSSMAP_CircuitGroupUnblock circuitGroupUnblock, + PDU_BSSMAP_CircuitGroupUnblockAck circuitGroupUnblockAck, + PDU_BSSMAP_ClassmarkRequest classmarkRequest, + PDU_BSSMAP_ClassmarkUpdate classmarkUpdate, + PDU_BSSMAP_ClearCommand clearCommand, + PDU_BSSMAP_ClearComplete clearComplete, + PDU_BSSMAP_ClearRequest clearRequest, + PDU_BSSMAP_CommonID commonID, + PDU_BSSMAP_CompleteLayer3Information completeLayer3Information, + PDU_BSSMAP_Confusion confusion, + PDU_BSSMAP_ConnectionlessInformation connectionlessInformation, + PDU_BSSMAP_HandoverCandidateEnquire handoverCandidateEnquire, + PDU_BSSMAP_HandoverCandidateResponse handoverCandidateResponse, + PDU_BSSMAP_HandoverCommand handoverCommand, + PDU_BSSMAP_HandoverComplete handoverComplete, + PDU_BSSMAP_HandoverDetect handoverDetect, + PDU_BSSMAP_HandoverFailure handoverFailure, + PDU_BSSMAP_HandoverPerformed handoverPerformed, + PDU_BSSMAP_HandoverRequest handoverRequest, + PDU_BSSMAP_HandoverRequestAck handoverRequestAck, + PDU_BSSMAP_HandoverRequired handoverRequired, + PDU_BSSMAP_HandoverRequiredReject handoverRequiredReject, + PDU_BSSMAP_HandoverSucceeded handoverSucceeded, + PDU_BSSMAP_LoadIndication loadIndication, + PDU_BSSMAP_LSAInformation lSAInformation, + PDU_BSSMAP_MSCInvokeTrace mSCInvokeTrace, + PDU_BSSMAP_Overload overload, + PDU_BSSMAP_Paging paging, + PDU_BSSMAP_PerformLocationAbort performLocationAbort, + PDU_BSSMAP_PerformLocationRequest performLocationRequest, + PDU_BSSMAP_PerformLocationResponse performLocationResponse, + PDU_BSSMAP_QueueingIndication queueingIndication, + PDU_BSSMAP_Reset reset, + PDU_BSSMAP_ResetAck resetAck, + PDU_BSSMAP_ResetCircuit resetCircuit, + PDU_BSSMAP_ResetCircuitAck resetCircuitAck, + PDU_BSSMAP_ResourceIndication resourceIndication, + PDU_BSSMAP_ResourceRequest resourceRequest, + PDU_BSSMAP_SAPInReject sAPInReject, + PDU_BSSMAP_Suspend suspend, + PDU_BSSMAP_Resume resume, + PDU_BSSMAP_Unblock unblock, + PDU_BSSMAP_UnblockAck unblockAck, + PDU_BSSMAP_UnequippedCircuit unequippedCircuit, + PDU_BSSMAP_UplinkRequest uplinkRequest, + PDU_BSSMAP_UplinkRequestAck uplinkRequestAck, + PDU_BSSMAP_UplinkRequestConfirmation uplinkRequestConfirmation, + PDU_BSSMAP_UplinkReleaseIndication uplinkReleaseIndication, + PDU_BSSMAP_UplinkRejectCommand uplinkRejectCommand, + PDU_BSSMAP_UplinkReleaseCommand uplinkReleaseCommand, + PDU_BSSMAP_UplinkSeizedCommand uplinkSeizedCommand, + PDU_BSSMAP_VGCS_VBSSetup vGCS_VBSSetup, + PDU_BSSMAP_VGCS_VBSSetupAck vGCS_VBSSetupAck, + PDU_BSSMAP_VGCS_VBSSetupRefuse vGCS_VBSSetupRefuse, + PDU_BSSMAP_VGCS_VBSAssignmentRequest vGCS_VBSAssignmentRequest, + PDU_BSSMAP_VGCS_VBSAssignmentResult vGCS_VBSAssignmentResult, + PDU_BSSMAP_VGCS_VBSAssignmentFailure vGCS_VBSAssignmentFailure, + PDU_BSSMAP_VGCS_VBSQueuingIndication vGCS_VBSQueuingIndication, + // FIXME: these 2 message type codes are not specified in the standard + // PDU_BSSMAP_EmergencyResetIndication emergencyResetIndication, + // PDU_BSSMAP_EmergencyResetCommand emergencyResetCommand, + PDU_BSSMAP_VGCS_AdditionalInformation vGCS_AdditionalInformation, + PDU_BSSMAP_VGCS_VBS_AreaCellInfo vGCS_VBS_AreaCellInfo, + PDU_BSSMAP_VGCS_VBS_AssignmentStatus vGCS_VBS_AssignmentStatus, + PDU_BSSMAP_VGCS_SMS vGCS_SMS, + PDU_BSSMAP_UplinkApplicationData uplinkApplicationData, + PDU_BSSMAP_NotificationData notificationData, + PDU_BSSMAP_InternalHandoverRequired internalHandoverRequired, + PDU_BSSMAP_InternalHandoverRequiredReject internalHandoverRequiredReject, + PDU_BSSMAP_InternalHandoverCommand internalHandoverCommand, + PDU_BSSMAP_InternalHandoverEnquiry internalHandoverEnquiry, + PDU_BSSMAP_ResetIPResource resetIPResource, + PDU_BSSMAP_ResetIPResourceAck resetIPResourceAck, + PDU_BSSMAP_RerouteCommand rerouteCommand, + PDU_BSSMAP_RerouteComplete rerouteComplete, + PDU_BSSMAP_LCLS_ConnectControl lCLS_ConnectControl, + PDU_BSSMAP_LCLS_ConnectControlAck lCLS_connectControlAck, + PDU_BSSMAP_LCLS_Notification lCLS_Notification +} + + + +/////////////////////////////////////////// +// BSSAP message definition +/////////////////////////////////////////// + +type union BSSMAPorDTAP +{ + PDU_BSSMAP bssmap, + octetstring dtap +} + + +type record PDU_BSSAP +{ + BIT1 discriminator, // 0= BSSMAP ; 1 = DTAP + BIT7 spare, // always '0000000'B + OCT1 dlci optional, + LIN1 lengthIndicator, + BSSMAPorDTAP pdu +} with {variant (lengthIndicator)"LENGTHTO (pdu)"; + variant (pdu)"CROSSTAG( bssmap, discriminator='0'B; + dtap, discriminator='1'B)"; + variant (dlci)"PRESENCE(discriminator='1'B)"} + + +} with { encode "RAW"} // End of module BSSMAP_typedefs diff --git a/src/BSSMAP_V11.2.0.grp b/src/BSSMAP_V11.2.0.grp new file mode 100644 index 0000000..863ecb6 --- /dev/null +++ b/src/BSSMAP_V11.2.0.grp @@ -0,0 +1,26 @@ +<!-- +/////////////////////////////////////////////////////////////////////////////// +// +// Copyright (c) 2000-2017 Ericsson Telecom AB +// +// All rights reserved. This program and the accompanying materials +// are made available under the terms of the Eclipse Public License v1.0 +// which accompanies this distribution, and is available at +// http://www.eclipse.org/legal/epl-v10.html +/////////////////////////////////////////////////////////////////////////////// +// +// File: BSSMAP_V11.2.0.grp +// Description: BSSMAP_V11.2.0 Protocol Module group file +// Rev: R2A +// Prodnr: CNL 113 761 +// Updated: 2012-11-06 +// Contact: http://ttcn.ericsson.se +// +--> + +<!DOCTYPE TITAN_GUI_FileGroup_file> +<FileGroup TITAN_version="1.10.pl0" > + <File_Group name="BSSMAP_V11.2.0" > + <File path="BSSAP_Types.ttcn" /> + </File_Group> +</FileGroup> |