diff --git a/doc/BSSAPP_v7.3.0_CNL113580_FS.pdf b/doc/BSSAPP_v7.3.0_CNL113580_FS.pdf
new file mode 100644
index 0000000..7aa4856
--- /dev/null
+++ b/doc/BSSAPP_v7.3.0_CNL113580_FS.pdf
Binary files differ
diff --git a/doc/BSSAPP_v7.3.0_CNL113580_UG.pdf b/doc/BSSAPP_v7.3.0_CNL113580_UG.pdf
new file mode 100644
index 0000000..e5d658d
--- /dev/null
+++ b/doc/BSSAPP_v7.3.0_CNL113580_UG.pdf
Binary files differ
diff --git a/doc/BSSAPP_v7.3_PRI.pdf b/doc/BSSAPP_v7.3_PRI.pdf
new file mode 100644
index 0000000..80974a8
--- /dev/null
+++ b/doc/BSSAPP_v7.3_PRI.pdf
Binary files differ
diff --git a/src/BSSAPp_Types.ttcn b/src/BSSAPp_Types.ttcn
new file mode 100644
index 0000000..f66be1b
--- /dev/null
+++ b/src/BSSAPp_Types.ttcn
@@ -0,0 +1,921 @@
+///////////////////////////////////////////////////////////////////////////////
+//
+// 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:               BSSAPp_Types.ttcn
+//  Rev:                R2A
+//  Prodnr:             CNL 113 580
+//  Updated:            2008-01-24
+//  Contact:            http://ttcn.ericsson.se
+//  Reference:          BSSAP+, 3GPP TS 29.018 v7.3.0 (2006-12)
+
+module  BSSAPp_Types { // beginning of module
+
+// This module contains the BSSAP+ type definitions based on
+// 29.018 v7.3.0 (2006-12)
+// with attributes for RAW encoding/decoding.
+
+import from General_Types all;
+
+external function enc_PDU_BSSAPp(in PDU_BSSAPp pdu) return octetstring
+with { extension "prototype(convert)"
+       extension "encode(RAW)"
+     }         
+
+external function dec_PDU_BSSAPp(in octetstring stream) return PDU_BSSAPp
+with { extension "prototype(convert)"
+       extension "decode(RAW)"
+     }
+
+//====================================================================
+// Message type
+// Reference: 29.018 18.2
+//====================================================================
+
+type BIT8 ST_BSSAPp_Msg_type  with { variant "" };
+
+//====================================================================
+// IMSI
+// Reference: 29.018 18.4.10
+//====================================================================
+
+type hexstring IMSIDigits length(1..15)  with { variant "HEXORDER(low)" };
+
+type record STR_BSSAPp_IMSI {
+  BIT8        iEI,
+  LIN1        lengthIndicator,
+  BIT3        first_3_BIT,  //this is always '001'B
+  BIT1        parity,       // 0 - Even, 1 - Odd
+  IMSIDigits  iMSIdigits,
+  BIT4        fillerDigit  optional   // B'1111, fillerDigit is present 
+  // if oddevenIndicator=0
+}
+with { 
+  variant (lengthIndicator) 
+  "LENGTHTO (first_3_BIT, parity, iMSIdigits, fillerDigit)";
+  variant (fillerDigit) "PRESENCE (parity   = '0'B) ";
+};
+
+
+//====================================================================
+// Gs Cause
+// Reference: 29.018 18.4.7
+//====================================================================
+
+type record STR_BSSAPp_Gs_Cause {
+  BIT8  iEI,
+  LIN1  lengthIndicator,
+  OCT1  gsCauseValue
+}
+with { 
+  variant (lengthIndicator) "LENGTHTO (gsCauseValue)";
+};
+
+//====================================================================
+// VLR Number
+// Reference: 29.018 18.4.26
+//====================================================================
+
+type record STR_BSSAPp_VLR_Number {
+  BIT8        iEI,
+  LIN1        lengthIndicator,
+  BIT8        first_8_BIT, //this is always '10010001'B
+  IMSIDigits  vLRdigits
+}
+with { 
+  variant (lengthIndicator) "LENGTHTO (first_8_BIT, vLRdigits)";
+};
+
+//====================================================================
+// Downlink Tunnel Payload Control and Info
+// Reference: 29.018 18.4.3
+//====================================================================
+
+
+type record STR_BSSAPp_Downlink_Tunnel_Payload_Control_And_Info {
+  BIT8  iEI,
+  LIN1  lengthIndicator,
+  BIT2  tunnelPriority,
+  BIT1  e,
+  BIT4  protocolDiscriminator,
+  BIT1  spare,
+  octetstring tunnelPayload
+}
+with { 
+  variant (lengthIndicator) 
+  "LENGTHTO (tunnelPriority, e, protocolDiscriminator, spare, tunnelPayload)";
+};
+
+//====================================================================
+// SGSN Number 
+// Reference: 29.018 18.4.22
+//====================================================================
+
+type STR_BSSAPp_VLR_Number STR_BSSAPp_SGSN_Number with { variant "" };
+
+//====================================================================
+// IMSI Detach from GPRS Service Type
+// Reference: 29.018 18.4.11
+//====================================================================
+
+type record STR_BSSAPp_IMSI_Detach_from_GPRS_service_type {
+  BIT8  iEI,
+  LIN1  lengthIndicator,
+  BIT8  iMSIDetachFromGPRSServiceTypeValue
+}
+with { 
+  variant (lengthIndicator) "LENGTHTO (iMSIDetachFromGPRSServiceTypeValue)";
+};
+
+//====================================================================
+// Cell Global Identity
+// Reference: 29.018 18.4.1
+//====================================================================
+
+type record STR_BSSAPp_Cell_Global_Identity {
+  BIT8         iEI,
+  LIN1         lengthIndicator,
+  octetstring  cellGlobalIdentityValue length(8)
+}
+with { 
+  variant (lengthIndicator) "LENGTHTO (cellGlobalIdentityValue)";
+};
+
+//====================================================================
+// Service Area Identification
+// Reference: 29.018 18.4.21b
+//====================================================================
+
+type record STR_BSSAPp_Service_Area_Identification {
+  BIT8        iEI,
+  LIN1        lengthIndicator,
+  octetstring serviceAreaIdentificationValue length(7)
+}
+with { 
+  variant (lengthIndicator) "LENGTHTO (serviceAreaIdentificationValue)";
+};
+
+//====================================================================
+// IMSI Detach from Non-GPRS Service Type
+// Reference: 29.018 18.4.12
+//====================================================================
+
+type record STR_BSSAPp_IMSI_detach_from_non_GPRS_service_type {
+  BIT8 iEI,
+  LIN1 lengthIndicator,
+  BIT8 iMSIDetachFromNonGPRSServiceTypeValue
+}
+with { 
+  variant (lengthIndicator) "LENGTHTO (iMSIDetachFromNonGPRSServiceTypeValue)";
+};
+
+//====================================================================
+// Location Information Age
+// Reference: 29.018 18.4.15
+//====================================================================
+
+type record STR_BSSAPp_Location_Information_Age {
+  BIT8 iEI,
+  LIN1 lengthIndicator,
+  OCT2 locationInformationAge
+}
+with { 
+  variant (lengthIndicator) "LENGTHTO (locationInformationAge)";
+};
+
+//====================================================================
+// Location Area Identifier
+// Reference: 29.018 18.4.14
+//====================================================================
+
+type record STR_BSSAPp_Location_Area_Identifier {
+  BIT8 iEI,
+  LIN1 lengthIndicator,
+  OCT5 locationAreaIdentifierValue
+}
+with { 
+  variant (lengthIndicator) "LENGTHTO (locationAreaIdentifierValue)";
+};
+
+//====================================================================
+// Mobile Identity
+// Reference: 29.018 18.4.17
+//====================================================================
+
+type record STR_BSSAPp_Mobile_Identity {
+  BIT8        iEI,
+  LIN1        lengthIndicator,
+  octetstring mobileIdentityValue
+}
+with { 
+  variant (lengthIndicator) "LENGTHTO (mobileIdentityValue)";
+};
+
+//====================================================================
+// Reject Cause
+// Reference: 29.018 18.4.21
+//====================================================================
+
+type record STR_BSSAPp_Reject_Cause {
+  BIT8 iEI,
+  LIN1 lengthIndicator,
+  OCT1 rejectCauseValue
+}
+with { 
+  variant (lengthIndicator) "LENGTHTO (rejectCauseValue)";
+};
+
+//====================================================================
+// GPRS Location Update Type
+// Reference: 29.018 18.4.6
+//====================================================================
+
+type record STR_BSSAPp_GPRS_Location_Update_Type {
+  BIT8 iEI,
+  LIN1 lengthIndicator,
+  BIT8 gPRSLocationUpdateTypeValue
+}
+with { 
+  variant (lengthIndicator) "LENGTHTO (gPRSLocationUpdateTypeValue)";
+};
+
+//====================================================================
+// Mobile Station Classmark 1
+// Reference: 29.018 18.4.18
+//====================================================================
+
+type record STR_BSSAPp_Mobile_Station_Classmark1 {
+  BIT8 iEI,
+  LIN1 lengthIndicator,
+  OCT1 mobileStationClassmarkValue
+}
+with { 
+  variant (lengthIndicator) "LENGTHTO (mobileStationClassmarkValue)";
+};
+
+//====================================================================
+// TMSI Status
+// Reference: 29.018 18.4.24
+//====================================================================
+
+type record STR_BSSAPp_TMSI_Status {
+  BIT8 iEI,
+  LIN1 lengthIndicator,
+  BIT1 tIMSIFlag,
+  BIT7 spare
+}
+with { 
+  variant (lengthIndicator) "LENGTHTO (tIMSIFlag, spare)";
+};
+
+//====================================================================
+// IMEISV
+// Reference: 29.018 18.4.9
+//====================================================================
+
+type record STR_BSSAPp_IMEISV {
+  BIT8      iEI,
+  LIN1      lengthIndicator,
+  hexstring digits length (16)
+}
+with { 
+  variant (lengthIndicator) "LENGTHTO (digits)";
+};
+
+
+//====================================================================
+// MM Information
+// Reference: 29.018 18.4.16
+//====================================================================
+
+type record STR_BSSAPp_MM_Information {
+  BIT8        iEI,
+  LIN1        lengthIndicator,
+  octetstring mMInformationValue
+}
+with { 
+  variant (lengthIndicator) "LENGTHTO (mMInformationValue)";
+};
+
+//====================================================================
+// Erroneous Message
+// Reference: 29.018 18.4.5
+//====================================================================
+
+type record STR_BSSAPp_Erroneous_Message {
+  BIT8        iEI,
+  LIN1        lengthIndicator,
+  octetstring erroneousMessageValue
+}
+with { 
+  variant (lengthIndicator) "LENGTHTO (erroneousMessageValue)";
+};
+
+//====================================================================
+// Information Requested
+// Reference: 29.018 18.4.13
+//====================================================================
+
+type record STR_BSSAPp_Information_Requested {
+  BIT8 iEI,
+  LIN1 lengthIndicator,
+  BIT8 informationRequestedValue
+}
+with { 
+  variant (lengthIndicator) "LENGTHTO (informationRequestedValue)";
+};
+
+//====================================================================
+// TMSI
+// Reference: 29.018 18.4.23
+//====================================================================
+
+type record STR_BSSAPp_TMSI {
+  BIT8  iEI,
+  LIN1  lengthIndicator,
+  OCT4 tMSIoctets
+}
+with { 
+  variant (lengthIndicator) "LENGTHTO (tMSIoctets)";
+};
+
+//====================================================================
+// PTMSI
+// Reference: 29.018 18.4.20
+//====================================================================
+
+type STR_BSSAPp_TMSI STR_BSSAPp_PTMSI with { variant "" };
+
+//====================================================================
+// IMEI
+// Reference: 29.018 18.4.8
+//====================================================================
+
+type record STR_BSSAPp_IMEI {
+  BIT8  iEI,
+  LIN1  lengthIndicator,
+  hexstring digits length (14),
+  OCT1 lastOctet //should be 'F0'O
+} 
+with { 
+  variant (lengthIndicator) "LENGTHTO (digits, lastOctet)";
+};
+
+//====================================================================
+// Mobile Station State
+// Reference: 29.018 18.4.19
+//====================================================================
+
+type record STR_BSSAPp_Mobile_Station_State {
+  BIT8 iEI,
+  LIN1 lengthIndicator,
+  BIT8 mobileStationStateValue
+}
+with { 
+  variant (lengthIndicator) "LENGTHTO (mobileStationStateValue)";
+};
+
+//====================================================================
+// Channel Needed
+// Reference: 29.018 18.4.2
+//====================================================================
+
+type record STR_BSSAPp_Channel_Needed {
+  BIT8 iEI,
+  LIN1 lengthIndicator,
+  OCT1 channelNeededValue
+}
+with { 
+  variant (lengthIndicator) "LENGTHTO (channelNeededValue)";
+};
+
+//====================================================================
+// eMLPP Priority
+// Reference: 29.018 18.4.4
+//====================================================================
+
+type record STR_BSSAPp_eMLPP_Priority {
+  BIT8 iEI,
+  LIN1 lengthIndicator,
+  OCT1 eMLPPPriorityValue
+}
+with { 
+  variant (lengthIndicator) "LENGTHTO (eMLPPPriorityValue)";
+};
+
+//====================================================================
+// Global CN-Id
+// Reference: 29.018 18.4.27
+//====================================================================
+
+type record STR_BSSAPp_Global_CN_Id {
+  BIT8  iEI,
+  LIN1  lengthIndicator,
+  HEX6n pLMN_Id,
+  OCT2  CN_Id
+}
+with { 
+  variant (lengthIndicator) "LENGTHTO (pLMN_Id, CN_Id)";
+};
+
+//====================================================================
+// Downlink Tunnel Payload Control and Info
+// Reference: 29.018 18.4.25
+//====================================================================
+
+type STR_BSSAPp_Downlink_Tunnel_Payload_Control_And_Info
+  STR_BSSAPp_Uplink_Tunnel_Payload_Control_And_Info with { variant "" };
+
+//====================================================================
+// BSSAPp REJECT (Used for several IEs)
+// Reference: 29.018
+//====================================================================
+
+type record BSSAPp_REJECT {
+  ST_BSSAPp_Msg_type  messageType,
+  STR_BSSAPp_IMSI     iMSI,
+  STR_BSSAPp_Gs_Cause gsCause
+}
+with { 
+  variant "TAG (
+    iMSI,    iEI = '00000001'B;
+    gsCause, iEI = '00001000'B;
+  )" 
+};
+
+
+//--------------  PDUs  ----------------//
+
+
+//====================================================================
+// BSSAP+-ALERT-ACK
+// Reference: 29.018 17.1.1
+//====================================================================
+
+
+type record PDU_BSSAPp_ALERT_ACK {
+  ST_BSSAPp_Msg_type messageType,
+  STR_BSSAPp_IMSI    iMSI
+} 
+with {
+  variant "TAG (
+    iMSI, iEI = '00000001'B;
+  )" 
+};
+
+//====================================================================
+// BSSAP+-ALERT-REJECT
+// Reference: 29.018 17.1.2
+//====================================================================
+
+type BSSAPp_REJECT PDU_BSSAPp_ALERT_REJECT;
+
+//====================================================================
+// BSSAP+-ALERT-REQUEST
+// Reference: 29.018 17.1.3
+//====================================================================
+
+type record PDU_BSSAPp_ALERT_REQUEST {
+  ST_BSSAPp_Msg_type messageType,
+  STR_BSSAPp_IMSI    iMSI
+} 
+with {
+  variant "TAG(
+    iMSI, iEI = '00000001'B;
+  )"
+};
+
+//====================================================================
+// BSSAP+-DOWNLINK-TUNNEL-REQUEST
+// Reference: 29.018 17.1.4
+//====================================================================
+
+type record PDU_BSSAPp_DOWNLINK_TUNNEL_REQUEST {
+  ST_BSSAPp_Msg_type    messageType,
+  STR_BSSAPp_IMSI       iMSI,
+  STR_BSSAPp_VLR_Number vLRnumber,
+  STR_BSSAPp_Downlink_Tunnel_Payload_Control_And_Info
+  downlinkTunnelPayloadControlAndInfo
+} 
+with {
+  variant "TAG (
+    iMSI,                                iEI = '00000001'B;
+    vLRnumber,                           iEI = '00000010'B;
+    downlinkTunnelPayloadControlAndInfo, iEI = '00011100'B;
+  )"
+};
+
+//====================================================================
+// BSSAP+-GPRS-DETACH-ACK
+// Reference: 29.018 17.1.5
+//====================================================================
+
+type record PDU_BSSAPp_GPRS_DETACH_ACK {
+  ST_BSSAPp_Msg_type messageType,
+  STR_BSSAPp_IMSI iMSI
+} with { variant "TAG(
+    iMSI, iEI = '00000001'B;
+  )" 
+};
+
+//====================================================================
+// BSSAP+-GPRS-DETACH-INDICATION
+// Reference: 29.018 17.1.6
+//====================================================================
+
+type record PDU_BSSAPp_GPRS_DETACH_INDICATION {
+  ST_BSSAPp_Msg_type                            messageType,
+  STR_BSSAPp_IMSI                               iMSI,
+  STR_BSSAPp_SGSN_Number                        sGSNnumber,
+  STR_BSSAPp_IMSI_Detach_from_GPRS_service_type iMSIdetachFromGPRSserviceType,
+  STR_BSSAPp_Cell_Global_Identity               cellGlobalIdentity optional,
+  STR_BSSAPp_Service_Area_Identification  serviceAreaIdentification optional
+} 
+with { 
+  variant "TAG (
+    iMSI,                          iEI = '00000001'B;
+    sGSNnumber,                    iEI = '00001001'B;
+    iMSIdetachFromGPRSserviceType, iEI = '00010000'B;
+    cellGlobalIdentity,            iEI = '00011000'B;
+    serviceAreaIdentification,     iEI = '00011110'B;
+  )"
+};
+
+//====================================================================
+// BSSAP+-GPRS-DETACH-ACK
+// Reference: 29.018 17.1.7
+//====================================================================
+
+type record PDU_BSSAPp_IMSI_DETACH_ACK {
+  ST_BSSAPp_Msg_type messageType,
+  STR_BSSAPp_IMSI    iMSI
+} 
+with {
+  variant "TAG(
+    iMSI, iEI = '00000001'B;
+  )"
+};
+
+//====================================================================
+// BSSAP+-IMSI-DETACH-INDICATION
+// Reference: 29.018 17.1.8
+//====================================================================
+type record PDU_BSSAPp_IMSI_DETACH_INDICATION {
+  ST_BSSAPp_Msg_type messageType,
+
+  STR_BSSAPp_IMSI                     iMSI,
+  STR_BSSAPp_SGSN_Number              sGSNnumber,
+  STR_BSSAPp_IMSI_detach_from_non_GPRS_service_type detachType,
+  STR_BSSAPp_Cell_Global_Identity     cellGlobalIdentity optional,
+  STR_BSSAPp_Location_Information_Age locationInformationAge optional,
+  STR_BSSAPp_Service_Area_Identification serviceAreaIdentification optional
+} with { 
+  variant "TAG (
+    iMSI,                      iEI = '00000001'B;
+    sGSNnumber,                iEI = '00001001'B;
+    detachType,                iEI = '00010001'B;
+    cellGlobalIdentity,        iEI = '00011000'B;
+    locationInformationAge,    iEI = '00011001'B;
+    serviceAreaIdentification, iEI = '00011110'B;
+  )"
+};
+
+//====================================================================
+// BSSAP+-LOCATION-UPDATE-ACCEPT
+// Reference: 29.018 17.1.9
+//====================================================================
+
+type record PDU_BSSAPp_LOCATION_UPDATE_ACCEPT {
+  ST_BSSAPp_Msg_type                  messageType,
+  STR_BSSAPp_IMSI                     iMSI,
+  STR_BSSAPp_Location_Area_Identifier locationAreaIdentifier,
+  STR_BSSAPp_Mobile_Identity          newTMSIorIMSI optional
+} with { 
+  variant "TAG (
+    iMSI,                   iEI = '00000001'B;
+    locationAreaIdentifier, iEI = '00000100'B;
+    newTMSIorIMSI,          iEI = '00001110'B;
+  )"
+};
+
+//====================================================================
+// BSSAP+-LOCATION-UPDATE-REJECT
+// Reference: 29.018 17.1.10
+//====================================================================
+
+type record PDU_BSSAPp_LOCATION_UPDATE_REJECT {
+  ST_BSSAPp_Msg_type      messageType,
+  STR_BSSAPp_IMSI         iMSI,
+  STR_BSSAPp_Reject_Cause rejectCause
+} with {
+  variant "TAG(
+    iMSI,        iEI = '00000001'B;
+    rejectCause, iEI = '00001111'B
+  )" 
+};
+
+//====================================================================
+// BSSAP+-LOCATION-UPDATE-REQUEST
+// Reference: 29.018 17.1.11
+//====================================================================
+
+type record PDU_BSSAPp_LOCATION_UPDATE_REQUEST {
+  ST_BSSAPp_Msg_type                     messageType,
+  STR_BSSAPp_IMSI                        iMSI,
+  STR_BSSAPp_SGSN_Number                 sGSNnumber,
+  STR_BSSAPp_GPRS_Location_Update_Type   updateType,
+  STR_BSSAPp_Cell_Global_Identity        cellGlobalIdentity,
+  STR_BSSAPp_Mobile_Station_Classmark1   mobileStationClassmark,
+  STR_BSSAPp_Location_Area_Identifier    oldLocationAreaIdentifier optional,
+  STR_BSSAPp_TMSI_Status                 tMSIstatus optional,
+  STR_BSSAPp_Service_Area_Identification serviceAreaIdentification optional,
+  STR_BSSAPp_IMEISV                      iMEISV optional
+} with { 
+  variant "TAG (
+    iMSI,                      iEI = '00000001'B;
+    sGSNnumber,                iEI = '00001001'B;
+    updateType,                iEI = '00001010'B;
+    cellGlobalIdentity,        iEI = '00011000'B;
+    mobileStationClassmark,    iEI = '00001101'B;
+    oldLocationAreaIdentifier, iEI = '00000100'B;
+    tMSIstatus,                iEI = '00000111'B;
+    serviceAreaIdentification, iEI = '00011110'B;
+    iMEISV,                    iEI = '00010101'B;
+  )"
+};
+
+//====================================================================
+// BSSAP+-MM-INFORMATION-REQUEST
+// Reference: 29.018 17.1.12
+//====================================================================
+
+type record PDU_BSSAPp_MM_INFORMATION_REQUEST {
+  ST_BSSAPp_Msg_type        messageType,
+  STR_BSSAPp_IMSI           iMSI,
+  STR_BSSAPp_MM_Information mMinformation optional
+} with {
+  variant "TAG (
+    iMSI,          iEI = '00000001'B;
+    mMinformation, iEI = '00010111'B;
+  )"
+};
+
+//====================================================================
+// BSSAP+-MOBILE-STATUS
+// Reference: 29.018 17.1.13
+//====================================================================
+
+type record PDU_BSSAPp_MOBILE_STATUS {
+  ST_BSSAPp_Msg_type           messageType,
+  STR_BSSAPp_IMSI              iMSI optional,
+  STR_BSSAPp_Gs_Cause          gsCause,
+  STR_BSSAPp_Erroneous_Message erroneousMessage
+} with {
+  variant "TAG (
+    iMSI,             iEI = '00000001'B;
+    gsCause,          iEI = '00001000'B;
+    erroneousMessage, iEI = '00011011'B;
+  )"
+};
+
+//====================================================================
+// BSSAP+-MS-ACTIVITY-INDICATION
+// Reference: 29.018 17.1.14
+//====================================================================
+
+type record PDU_BSSAPp_MS_ACTIVITY_INDICATION {
+  ST_BSSAPp_Msg_type                     messageType,
+  STR_BSSAPp_IMSI                        iMSI,
+  STR_BSSAPp_Cell_Global_Identity        cellGlobalIdentity optional,
+  STR_BSSAPp_Service_Area_Identification serviceAreaIdentification optional
+} with  { 
+  variant "TAG (
+    iMSI,                      iEI = '00000001'B;
+    cellGlobalIdentity,        iEI = '00011000'B;
+    serviceAreaIdentification, iEI = '00011110'B;
+  )"
+};
+
+//====================================================================
+// BSSAP+-MS-INFORMATION-REQUEST
+// Reference: 29.018 17.1.15
+//====================================================================
+
+type record PDU_BSSAPp_MS_INFORMATION_REQUEST {
+  ST_BSSAPp_Msg_type               messageType,
+  STR_BSSAPp_IMSI                  iMSI,
+  STR_BSSAPp_Information_Requested informationRequested
+} with {
+  variant "TAG(
+    iMSI,                 iEI = '00000001'B;
+    informationRequested, iEI = '00010010'B;
+  )" 
+};
+
+//====================================================================
+// BSSAP+-MS-INFORMATION-RESPONSE
+// Reference: 29.018 17.1.16
+//====================================================================
+
+type record PDU_BSSAPp_MS_INFORMATION_RESPONSE {
+  ST_BSSAPp_Msg_type                     messageType,
+  STR_BSSAPp_IMSI                        iMSI,
+  STR_BSSAPp_TMSI                        tMSI optional,
+  STR_BSSAPp_PTMSI                       pTMSI optional,
+  STR_BSSAPp_IMEI                        iMEI optional,
+  STR_BSSAPp_IMEISV                      iMEISV optional,
+  STR_BSSAPp_Cell_Global_Identity        cellGlobalIdentity optional,
+  STR_BSSAPp_Location_Information_Age    locationInformationAge optional,
+  STR_BSSAPp_Mobile_Station_State        mobileStationState optional,
+  STR_BSSAPp_Service_Area_Identification serviceAreaIdentification optional
+} with { 
+  variant "TAG (
+    iMSI,                      iEI = '00000001'B;
+    tMSI,                      iEI = '00000011'B;
+    pTMSI,                     iEI = '00010011'B;
+    iMEI,                      iEI = '00010100'B;
+    iMEISV,                    iEI = '00010101'B;
+    cellGlobalIdentity,        iEI = '00011000'B;
+    locationInformationAge,    iEI = '00011001'B;
+    mobileStationState,        iEI = '00011010'B;
+    serviceAreaIdentification, iEI = '00011110'B;
+  )"
+};
+
+//====================================================================
+// BSSAP+-MS-UNREACHABLE
+// Reference: 29.018 17.1.17
+//====================================================================
+
+
+type BSSAPp_REJECT PDU_BSSAPp_MS_UNREACHABLE;
+
+//====================================================================
+// BSSAP+-PAGING-REJECT
+// Reference: 29.018 17.1.18
+//====================================================================
+
+type BSSAPp_REJECT PDU_BSSAPp_PAGING_REJECT;
+
+//====================================================================
+// BSSAP+-PAGING-REQUEST
+// Reference: 29.018 17.1.19
+//====================================================================
+
+
+type record PDU_BSSAPp_PAGING_REQUEST {
+  ST_BSSAPp_Msg_type                  messageType,
+  STR_BSSAPp_IMSI                     iMSI,
+  STR_BSSAPp_VLR_Number               vLRnumber,
+  STR_BSSAPp_TMSI                     tMSI optional,
+  STR_BSSAPp_Location_Area_Identifier locationAreaIdentifier optional,
+  STR_BSSAPp_Channel_Needed           channelNeeded optional,
+  STR_BSSAPp_eMLPP_Priority           eMLPPpriority optional,
+  STR_BSSAPp_Global_CN_Id             global_CN_Id optional
+} with { 
+  variant "TAG (
+    iMSI,                   iEI = '00000001'B; 
+    vLRnumber,              iEI = '00000010'B;
+    tMSI,                   iEI = '00000011'B;
+    locationAreaIdentifier, iEI = '00000100'B;
+    channelNeeded,          iEI = '00000101'B;
+    eMLPPpriority,          iEI = '00000110'B;
+    global_CN_Id,           iEI = '00001011'B;
+  )"
+};
+
+//====================================================================
+// BSSAP+-RESET-ACK
+// Reference: 29.018 17.1.20
+//====================================================================
+
+type record PDU_BSSAPp_RESET_ACK {
+  ST_BSSAPp_Msg_type     messageType,
+  STR_BSSAPp_SGSN_Number sGSNnumber optional,
+  STR_BSSAPp_VLR_Number  vLRnumber optional
+} with { 
+  variant "TAG (
+    sGSNnumber, iEI = '00001001'B;
+    vLRnumber,  iEI = '00000010'B;
+  )"
+};
+
+//====================================================================
+// BSSAP+-RESET-INDICATION
+// Reference: 29.018 17.1.21
+//====================================================================
+
+type record PDU_BSSAPp_RESET_INDICATION {
+  ST_BSSAPp_Msg_type     messageType,
+  STR_BSSAPp_SGSN_Number sGSNnumber optional,
+  STR_BSSAPp_VLR_Number  vLRnumber optional
+} with { 
+  variant "TAG (
+    sGSNnumber, iEI = '00001001'B;
+    vLRnumber,  iEI = '00000010'B;
+  )"
+};
+
+//====================================================================
+// BSSAP+-TMSI-REALLOCATION-COMPLETE
+// Reference: 29.018 17.1.22
+//====================================================================
+
+type record PDU_BSSAPp_TMSI_REALLOCATION_COMPLETE {
+  ST_BSSAPp_Msg_type                     messageType,
+  STR_BSSAPp_IMSI                        iMSI,
+  STR_BSSAPp_Cell_Global_Identity        cellGlobalIdentity optional,
+  STR_BSSAPp_Service_Area_Identification serviceAreaIdentification optional
+} with { 
+  variant "TAG (
+    iMSI,                      iEI = '00000001'B;
+    cellGlobalIdentity,        iEI = '00011000'B;
+    serviceAreaIdentification, iEI = '00011110'B;
+  )"
+};
+
+//====================================================================
+// BSSAP+-UPLINK-TUNNEL-REQUEST
+// Reference: 29.018 17.1.23
+//====================================================================
+
+
+type record PDU_BSSAPp_UPLINK_TUNNEL_REQUEST {
+  ST_BSSAPp_Msg_type     messageType,
+  STR_BSSAPp_IMSI        iMSI,
+  STR_BSSAPp_SGSN_Number sGSNnumber,
+  STR_BSSAPp_Uplink_Tunnel_Payload_Control_And_Info
+  uplinkTunnelPayloadControlAndInfo
+} with {  
+  variant "TAG(
+    iMSI,                              iEI = '00000001'B;
+    sGSNnumber,                        iEI = '00001001'B;
+    uplinkTunnelPayloadControlAndInfo, iEI = '00011101'B;
+  )" 
+};
+
+
+
+// ------------------ // ----PDU_BSSAPp---- // ------------------
+
+
+type union PDU_BSSAPp {
+  PDU_BSSAPp_PAGING_REJECT              pDU_BSSAPp_PAGING_REJECT,
+  PDU_BSSAPp_PAGING_REQUEST             pDU_BSSAPp_PAGING_REQUEST,
+  PDU_BSSAPp_DOWNLINK_TUNNEL_REQUEST    pDU_BSSAPp_DOWNLINK_TUNNEL_REQUEST,
+  PDU_BSSAPp_UPLINK_TUNNEL_REQUEST      pDU_BSSAPp_UPLINK_TUNNEL_REQUEST,
+  PDU_BSSAPp_LOCATION_UPDATE_REQUEST    pDU_BSSAPp_LOCATION_UPDATE_REQUEST,
+  PDU_BSSAPp_LOCATION_UPDATE_ACCEPT     pDU_BSSAPp_LOCATION_UPDATE_ACCEPT,
+  PDU_BSSAPp_LOCATION_UPDATE_REJECT     pDU_BSSAPp_LOCATION_UPDATE_REJECT,
+  PDU_BSSAPp_TMSI_REALLOCATION_COMPLETE pDU_BSSAPp_TMSI_REALLOCATION_COMPLETE,
+  PDU_BSSAPp_ALERT_REQUEST              pDU_BSSAPp_ALERT_REQUEST,
+  PDU_BSSAPp_ALERT_ACK                  pDU_BSSAPp_ALERT_ACK,
+  PDU_BSSAPp_ALERT_REJECT               pDU_BSSAPp_ALERT_REJECT,
+  PDU_BSSAPp_MS_ACTIVITY_INDICATION     pDU_BSSAPp_MS_ACTIVITY_INDICATION,
+  PDU_BSSAPp_GPRS_DETACH_INDICATION     pDU_BSSAPp_GPRS_DETACH_INDICATION,
+  PDU_BSSAPp_GPRS_DETACH_ACK            pDU_BSSAPp_GPRS_DETACH_ACK,
+  PDU_BSSAPp_IMSI_DETACH_INDICATION     pDU_BSSAPp_IMSI_DETACH_INDICATION,
+  PDU_BSSAPp_IMSI_DETACH_ACK            pDU_BSSAPp_IMSI_DETACH_ACK,
+  PDU_BSSAPp_RESET_INDICATION           pDU_BSSAPp_RESET_INDICATION,
+  PDU_BSSAPp_RESET_ACK                  pDU_BSSAPp_RESET_ACK,
+  PDU_BSSAPp_MS_INFORMATION_REQUEST     pDU_BSSAPp_MS_INFORMATION_REQUEST,
+  PDU_BSSAPp_MS_INFORMATION_RESPONSE    pDU_BSSAPp_MS_INFORMATION_RESPONSE,
+  PDU_BSSAPp_MM_INFORMATION_REQUEST     pDU_BSSAPp_MM_INFORMATION_REQUEST,
+  PDU_BSSAPp_MOBILE_STATUS              pDU_BSSAPp_MOBILE_STATUS,
+  PDU_BSSAPp_MS_UNREACHABLE             pDU_BSSAPp_MS_UNREACHABLE
+
+} with {
+  variant "TAG (
+    pDU_BSSAPp_PAGING_REQUEST,              messageType ='00000001'B;
+    pDU_BSSAPp_PAGING_REJECT,               messageType ='00000010'B;
+    pDU_BSSAPp_DOWNLINK_TUNNEL_REQUEST,     messageType ='00000111'B;
+    pDU_BSSAPp_UPLINK_TUNNEL_REQUEST,       messageType ='00001000'B;
+    pDU_BSSAPp_LOCATION_UPDATE_REQUEST,     messageType ='00001001'B;
+    pDU_BSSAPp_LOCATION_UPDATE_ACCEPT,      messageType ='00001010'B;
+    pDU_BSSAPp_LOCATION_UPDATE_REJECT,      messageType ='00001011'B;
+    pDU_BSSAPp_TMSI_REALLOCATION_COMPLETE,  messageType ='00001100'B;
+    pDU_BSSAPp_ALERT_REQUEST,               messageType ='00001101'B;
+    pDU_BSSAPp_ALERT_ACK,                   messageType ='00001110'B;
+    pDU_BSSAPp_ALERT_REJECT,                messageType ='00001111'B;
+    pDU_BSSAPp_MS_ACTIVITY_INDICATION,      messageType ='00010000'B;
+    pDU_BSSAPp_GPRS_DETACH_INDICATION,      messageType ='00010001'B;
+    pDU_BSSAPp_GPRS_DETACH_ACK,             messageType ='00010010'B;
+    pDU_BSSAPp_IMSI_DETACH_INDICATION,      messageType ='00010011'B;
+    pDU_BSSAPp_IMSI_DETACH_ACK,             messageType ='00010100'B;
+    pDU_BSSAPp_RESET_INDICATION,            messageType ='00010101'B;
+    pDU_BSSAPp_RESET_ACK,                   messageType ='00010110'B;
+    pDU_BSSAPp_MS_INFORMATION_REQUEST,      messageType ='00010111'B;
+    pDU_BSSAPp_MS_INFORMATION_RESPONSE,     messageType ='00011000'B;
+    pDU_BSSAPp_MM_INFORMATION_REQUEST,      messageType ='00011010'B;
+    pDU_BSSAPp_MOBILE_STATUS,               messageType ='00011101'B;
+    pDU_BSSAPp_MS_UNREACHABLE,              messageType ='00011111'B;
+  )"
+};
+
+} with{ encode "RAW"}//end of module  BSSAPp_Types
