blob: 28f9c61f9eaaec1dd36198bd301a1af47b4b6791 [file] [log] [blame]
///////////////////////////////////////////////////////////////////////////////
//
// Copyright (c) 2000-2019 Ericsson Telecom AB
//
// All rights reserved. This program and the accompanying materials
// are made available under the terms of the Eclipse Public License v2.0
// which accompanies this distribution, and is available at
// https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html
///////////////////////////////////////////////////////////////////////////////
//
// File: GTPC_Types.ttcn
// Rev: R2A
// Prodnr: CNL 113 843
// Contact: http://ttcn.ericsson.se
// Reference: 3GPP TS 29.060 v13.5.0
module GTPC_Types {
import from General_Types all;
// external encoding/decoding functions
external function enc_PDU_GTPC(in PDU_GTPC gtpc_pdu) return octetstring
with { extension "prototype(convert)"
extension "encode(RAW)"
}
external function dec_PDU_GTPC(in octetstring udp_pdu, SystemUnderTest pl_SystemUnderTest := SGSN) return PDU_GTPC
// for SGSN testing pl_SystemUnderTest is SGSN (default value)
// for GGSN testing pl_SystemUnderTest is GGSN
// for CGW testing pl_SystemUnderTest is CGW
// for MME testing pl_SystemUnderTest is MME
// in current implementation the decoder behavior is identical for
// SGSN and MME
// determines SUT, needed for decoding updatePDPContextRequest
// and updatePDPContextResponse messages
type enumerated SystemUnderTest{SGSN(0),GGSN(1),CGW(2),MME(3)};
/////////////////////////////
// Information Elements
/////////////////////////////
//Information Element with an IE Type Extension field - 7.7.0A
//for future use
type record IE_Type_Extension {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf, //16 bits
IE_Extension_UnionType iE_Type_Extension
} with {
variant (lengthf) "LENGTHTO(iE_Type_Extension)";
variant "PRESENCE( type_gtpc = 'EE'O)";
};
type union IE_Extension_UnionType
{
IE_Extension_Type iE_Type_Extension
}
type record IE_Extension_Type
{
OCT2 elementIdentifier,
octetstring valueField
}
//Cause - 7.7.1
type record Cause_gtpc {
OCT1 type_gtpc,
OCT1 causevalue
} with { variant "PRESENCE( type_gtpc = '01'O)"; };
//IMSI - 7.7.2
type record IMSI_gtpc {
OCT1 type_gtpc,
hexstring digits length(15),
HEX1 padding
} with { variant "PRESENCE( type_gtpc = '02'O)"; };
//Routing Area ID - 7.7.3
// Note : the order of MNC digits is
// MNC digit 3, MNC digit 1, MNC digit 2
type record RoutingAreaIdentity {
OCT1 type_gtpc,
hexstring mcc_digits length(3),
hexstring mnc_digits length(3),
OCT2 lac,
OCT1 rac
} with { variant "PRESENCE( type_gtpc = '03'O)"; };
//TLLI - 7.7.4
type record TLLI {
OCT1 type_gtpc,
OCT4 tlli_element
} with { variant "PRESENCE( type_gtpc = '04'O)"; };
//Packet TMSI - 7.7.5
type record PacketTMSI {
OCT1 type_gtpc,
OCT4 p_tmsi
} with { variant "PRESENCE( type_gtpc = '05'O)"; };
//Reordering Required - 7.7.6
type record ReorderingRequired {
OCT1 type_gtpc,
BIT1 reordreq,
BIT7 spare
} with { variant "PRESENCE( type_gtpc = '08'O)"; };
//Authentication Triplet - 7.7.7
type record AuthenticationTriplet_GTPC {
OCT1 type_gtpc,
OCT16 rand,
OCT4 sres,
OCT8 kc
} with { variant "PRESENCE( type_gtpc = '09'O)"; };
type set of AuthenticationTriplet_GTPC AuthenticationTriplet_GTPC_SetOf;
//MAP Cause - 7.7.8
type record MAP_Cause {
OCT1 type_gtpc,
OCT1 mapCauseValue
} with { variant "PRESENCE( type_gtpc = '0B'O)"; };
//PTMSI Signature - 7.7.9
type record PTMSI_Signature {
OCT1 type_gtpc,
OCT3 ptmsi_Signature
} with { variant "PRESENCE( type_gtpc = '0C'O)"; };
//MS Validated - 7.7.10
type record MS_Validated {
OCT1 type_gtpc,
BIT1 msValidated,
BIT7 spare
} with { variant "PRESENCE( type_gtpc = '0D'O)"; };
//Recovery - 7.7.11
type record Recovery_gtpc {
OCT1 type_gtpc,
OCT1 restartCounter
} with { variant "PRESENCE(type_gtpc = '0E'O)";};
//Selection Mode - 7.7.12
type record SelectionMode {
OCT1 type_gtpc,
BIT2 selectModeValue,
BIT6 spare
} with { variant "PRESENCE(type_gtpc = '0F'O)"; };
//TEI Data I - 7.7.13
type record TeidDataI {
OCT1 type_gtpc,
OCT4 teidDataI
} with { variant "PRESENCE(type_gtpc = '10'O)"; };
//TEI Control Plane - 7.7.14
type record TeidControlPlane {
OCT1 type_gtpc,
OCT4 teidControlPlane
} with { variant "PRESENCE(type_gtpc = '11'O)"; };
//TEI Data II - 7.7.15
type record of TeidDataII TeidDataII_List
type record TeidDataII {
OCT1 type_gtpc,
BIT4 nsapi,
BIT4 unused,
OCT4 teidDataII
} with { variant "PRESENCE(type_gtpc = '12'O)"; };
//Teardown Ind -7.7.16
type record TearDownInd {
OCT1 type_gtpc,
BIT1 tdInd,
BIT7 spare
} with { variant "PRESENCE(type_gtpc = '13'O)"; };
//NSAPI - 7.7.17
type record NSAPI_GTPC {
OCT1 type_gtpc,
BIT4 nsapi,
BIT4 unused
} with { variant "PRESENCE(type_gtpc = '14'O)"; };
//RANAP Cause - 7.7.18
type record RANAPCause {
OCT1 type_gtpc,
OCT1 ranapCause
} with { variant "PRESENCE(type_gtpc = '15'O)"; };
//RAB Context - 7.7.19
type record of RABContext RABContext_List;
type record RABContext {
OCT1 type_gtpc,
BIT4 nsapi,
BIT4 spare,
OCT2 dlgtp_u,
OCT2 ulgtp_u,
OCT2 dl_pdcp,
OCT2 ul_pdcp
} with {variant "PRESENCE( type_gtpc = '16'O)";};
//Radio Priority SMS - 7.7.20
type record RadioPrioritySMS {
OCT1 type_gtpc,
BIT3 radioprioritySMS,
BIT5 reserved
} with {variant "PRESENCE( type_gtpc = '17'O)";};
//RadioPriority - 7.7.21
type record of RadioPriority RadioPriority_List;
type record RadioPriority {
OCT1 type_gtpc,
BIT3 radiopriority,
BIT1 reserved,
BIT4 nsapi
} with {variant "PRESENCE( type_gtpc = '18'O)";};
//Packet Flow Id - 7.7.22
type record of PacketFlowID PacketFlowID_List
type record PacketFlowID {
OCT1 type_gtpc,
BIT4 nsapi,
BIT4 reserved,
OCT1 packflowID
} with {variant "PRESENCE( type_gtpc = '19'O)";};
//Charging Characteristics - 7.7.23
type record of ChargingCharacteristics_GTPC
ChargingCharacteristics_List_GTPC;
type record ChargingCharacteristics_GTPC {
OCT1 type_gtpc,
OCT2 chargingChar
} with {variant "PRESENCE( type_gtpc = '1A'O)";};
//Trace Reference - 7.7.24
type record TraceRef {
OCT1 type_gtpc,
OCT2 trace_ref
} with {variant "PRESENCE( type_gtpc = '1B'O)";};
//Trace Type - 7.7.25
type record GTP_TraceType {
OCT1 type_gtpc,
OCT2 trace_type
} with {variant "PRESENCE( type_gtpc = '1C'O)";};
//MS Not Reachable Reason - 7.7.25A
type record MSNotReachableReason {
OCT1 type_gtpc,
OCT1 reason_for_absence
} with {variant "PRESENCE( type_gtpc = '1D'O)";};
//Radio Priority LCS - 7.7.25B
type record RadioPriorityLCS{
OCT1 type_gtpc,
LIN2_BO_LAST lengthf, //16 bits
BIT3 radioPriorityLCS,
BIT5 reserved
} with { variant "PRESENCE( type_gtpc = '96'O)";
variant (lengthf) "LENGTHTO(radioPriorityLCS,reserved)"; };
//Charging ID - 7.7.26
type record ChargingID {
OCT1 type_gtpc,
OCT4 chargingID
} with { variant "PRESENCE( type_gtpc = '7F'O)";};
//End User Address ID - 7.7.27
type record EndUserAddress{
OCT1 type_gtpc,
EndUserAddress_types endUserAddress
} with { variant "PRESENCE( type_gtpc = '80'O)";};
type union EndUserAddress_types {
EndUserAddressIPv4 endUserAddressIPv4,
EndUserAddressIPv6 endUserAddressIPv6,
EndUserAddressPPP endUserAddressPPP,
EndUserAddressIPv4andIPv6 endUserAddressIPv4andIPv6,
EndUserAddressOSPIHOS endUserAddressOSPIHOS
} with { variant "TAG(endUserAddressIPv4, pdp_typenum = '21'O;
endUserAddressIPv6, pdp_typenum = '57'O;
endUserAddressPPP, pdp_typenum = '01'O;
endUserAddressIPv4andIPv6, pdp_typenum = '8D'O;
endUserAddressOSPIHOS, OTHERWISE;)" };
type record EndUserAddressIPv4 {
LIN2_BO_LAST lengthf, //16 bits
BIT4 pdp_typeorg,
BIT4 spare,
OCT1 pdp_typenum,
OCT4 ipv4_address optional
} with { variant (lengthf) "LENGTHTO(pdp_typeorg, spare, pdp_typenum,
ipv4_address)"; };
type record EndUserAddressIPv6 {
LIN2_BO_LAST lengthf, //16 bits
BIT4 pdp_typeorg,
BIT4 spare,
OCT1 pdp_typenum,
OCT16 ipv6_address optional
} with { variant (lengthf) "LENGTHTO(pdp_typeorg, spare, pdp_typenum,
ipv6_address)"; };
type record EndUserAddressPPP {
LIN2_BO_LAST lengthf, //16 bits
BIT4 pdp_typeorg,
BIT4 spare,
OCT1 pdp_typenum
} with { variant (lengthf) "LENGTHTO(pdp_typeorg, spare, pdp_typenum)"; };
type record EndUserAddressIPv4andIPv6 {
LIN2_BO_LAST lengthf, //16 bits
BIT4 pdp_typeorg,
BIT4 spare,
OCT1 pdp_typenum,
OCT4 ipv4_address optional,
OCT16 ipv6_address optional
} with { variant (lengthf) "LENGTHTO(pdp_typeorg, spare, pdp_typenum,ipv4_address,
ipv6_address)";
variant(ipv4_address) "PRESENCE(lengthf = 6,lengthf = 22)"
variant(ipv6_address) "PRESENCE(lengthf = 18,lengthf = 22)"
};
// ETHECS: specification not found in Technical Specification
type record EndUserAddressOSPIHOS {
LIN2_BO_LAST lengthf, //16 bits
BIT4 pdp_typeorg,
BIT4 spare,
OCT1 pdp_typenum
} with { variant (lengthf) "LENGTHTO(pdp_typeorg, spare, pdp_typenum)"; };
//MM Context - 7.7.28
type record MM_Context {
OCT1 type_gtpc,
MM_ContextU context
} with { variant "PRESENCE( type_gtpc = '81'O)";};
type union MM_ContextU {
MM_ContextGSM mmcontGSM,
MM_ContextUMTS mmcontUMTS,
MM_ContextGSMUMTS mmcontGSMUMTS,
MM_ContextUMTSReceive mmcontUMTSReceive
} with { variant "TAG(mmcontGSM, security = '01'B;
mmcontUMTS, security = '10'B;
mmcontGSMUMTS, security = '11'B;
mmcontUMTSReceive, security = '00'B;)"; };
type record MM_ContextGSM {
LIN2_BO_LAST lengthf,//16 bits
BIT3 cksn,
BIT5 spare,
BIT3 usedCipher,
integer noofVectors,
BIT2 security,
OCT8 kc,
octetstring triplet,
OCT2 drx_par,
integer msNetW_cap_length,
octetstring msNetw_cap optional,
LIN2_BO_LAST containerLength,
octetstring container optional
} with { variant (lengthf) "LENGTHTO(cksn, spare, usedCipher, noofVectors,
security, kc, triplet, drx_par,
msNetW_cap_length, msNetw_cap,
containerLength, container
)";
variant (msNetW_cap_length) "LENGTHTO(msNetw_cap)";
variant (containerLength) "LENGTHTO(container)";
variant (noofVectors) "FIELDLENGTH(3)";
variant (noofVectors) "LENGTHTO(triplet)";
variant (noofVectors) "UNIT(224)";
};
type record MM_ContextUMTS {
LIN2_BO_LAST lengthf,
BIT3 ksi,
BIT3 usedGPRSIntegrityAlgorithm,
BIT1 ugipai,
BIT1 gupii,
BIT3 spare1,
integer noofVectors ,
BIT2 security,
OCT16 ck,
OCT16 ik,
LIN2_BO_LAST quintupletlength,
octetstring quintuplet,
OCT2 drx_par,
integer msNetW_cap_length,
octetstring msNetw_cap optional,
LIN2_BO_LAST containerLength,
octetstring container optional
} with { variant (lengthf) "LENGTHTO(ksi, usedGPRSIntegrityAlgorithm, ugipai, gupii, spare1, noofVectors, security,
ck, ik, quintupletlength, quintuplet,
drx_par, msNetW_cap_length, msNetw_cap,
containerLength, container
)";
variant (quintupletlength) "LENGTHTO(quintuplet)";
variant (msNetW_cap_length) "LENGTHTO(msNetw_cap)";
variant (containerLength) "LENGTHTO(container)";
variant (noofVectors) "FIELDLENGTH(3)";
};
type record MM_ContextGSMUMTS {
LIN2_BO_LAST lengthf,
BIT3 cksn,
BIT5 spare,
BIT3 usedCipher,
integer noofVectors,
BIT2 security,
OCT8 kc,
LIN2_BO_LAST quintupletlength,
octetstring quintuplet,
OCT2 drx_par,
integer msNetW_cap_length,
octetstring msNetw_cap optional,
LIN2_BO_LAST containerLength,
octetstring container optional
} with { variant (lengthf) "LENGTHTO(cksn, spare, usedCipher, noofVectors,
security, kc, quintupletlength, quintuplet,
drx_par, msNetW_cap_length, msNetw_cap,
containerLength, container
)";
variant (quintupletlength) "LENGTHTO(quintuplet)";
variant (msNetW_cap_length) "LENGTHTO(msNetw_cap)";
variant (containerLength) "LENGTHTO(container)";
variant (noofVectors) "FIELDLENGTH(3)";
};
type record MM_ContextUMTSReceive {
LIN2_BO_LAST lengthf,
BIT3 ksi,
BIT3 usedGPRSIntegrityAlgorithm,
BIT1 ugipai,
BIT1 gupii,
BIT3 usedCipher,
integer noofVectors,
BIT2 security,
OCT16 ck,
OCT16 ik,
LIN2_BO_LAST quintupletlength,
octetstring quintuplet,
OCT2 drx_par,
integer msNetW_cap_length,
octetstring msNetw_cap optional,
LIN2_BO_LAST containerLength,
octetstring container optional
} with { variant (lengthf) "LENGTHTO(ksi, usedGPRSIntegrityAlgorithm, ugipai, gupii,
usedCipher, noofVectors,
security, ck, ik, quintupletlength,
quintuplet, drx_par,msNetW_cap_length,
msNetw_cap, containerLength, container
)";
variant (quintupletlength) "LENGTHTO(quintuplet)";
variant (msNetW_cap_length) "LENGTHTO(msNetw_cap)";
variant (containerLength) "LENGTHTO(container)";
variant (noofVectors) "FIELDLENGTH(3)";
};
//From 9.9.3.34 of 3GPP 24.301 according to Req. Spec. 4/1056-LPA 107 579/1 Rev D
type record GTPC_UENetworkCapabilityV
{
BIT8 eEA,
BIT7 eIA,
BIT1 spare,
BIT8 uEA optional,
BIT7 uIA optional,
BIT1 uCS2 optional,
BIT1 spare2 optional,
BIT1 vCC optional,
BIT6 spare3 optional,
octetstring spare4 length (0..8) optional
}
//PDP context - 7.7.29
type record of PDP_Context_GTPC PDP_Context_GTPC_List;
type record PDP_Context_GTPC {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT4 nsapi,
BIT1 order,
BIT1 asi,
BIT1 vaa,
BIT1 ea,
BIT4 sapi,
BIT4 spare1,
integer qos_subLength,
QualityOfServiceProfile_Value qos_sub,
integer qos_reqLength,
QualityOfServiceProfile_Value qos_req,
integer qos_negLength,
QualityOfServiceProfile_Value qos_neg,
OCT2 snd,
OCT2 snu,
OCT1 sendNPDUnum,
OCT1 receiveNPDUnum,
OCT4 uteidControlPlane,
OCT4 uteidData1,
OCT1 pdpcontext,
BIT4 pdp_typeorg,
BIT4 spare2,
OCT1 pdp_typenum,
integer pdp_addressLength,
octetstring pdp_address length (0..63),
integer ggsn_addressControlPlaneLength,
octetstring ggsn_addressControlPlane length (4..16),
integer ggsn_addressUserPlaneLength,
octetstring ggsn_addressUserPlane length (4..16),
integer apnLength,
octetstring apn,
BIT4 transactionId ,
BIT4 spare3,
OCT1 transactionID_cont,
OCT1 pdp_typenum2 optional,
LIN1 pdp_addresslength2 optional,
octetstring pdp_Address2 length (0..63) optional
} with {variant "PRESENCE( type_gtpc = '82'O)";
variant (lengthf) "LENGTHTO(nsapi, order, asi, vaa, ea,
sapi, spare1, qos_subLength, qos_sub, qos_reqLength, qos_req,
qos_negLength, qos_neg, snd, snu, sendNPDUnum, receiveNPDUnum,
uteidControlPlane, uteidData1,pdpcontext, pdp_typeorg, spare2,
pdp_typenum, pdp_addressLength, pdp_address,
ggsn_addressControlPlaneLength, ggsn_addressControlPlane,
ggsn_addressUserPlaneLength, ggsn_addressUserPlane, apnLength, apn,
transactionId, spare3, transactionID_cont, pdp_typenum2,pdp_addresslength2,pdp_Address2)";
variant (qos_subLength) "LENGTHTO(qos_sub)";
variant (qos_reqLength) "LENGTHTO(qos_req)";
variant (qos_negLength) "LENGTHTO(qos_neg)";
variant (pdp_addressLength) "LENGTHTO(pdp_address)";
variant (ggsn_addressControlPlaneLength)
"LENGTHTO(ggsn_addressControlPlane)";
variant (ggsn_addressUserPlaneLength) "LENGTHTO(ggsn_addressUserPlane)";
variant (apnLength) "LENGTHTO(apn)";
variant (pdp_typenum2,pdp_addresslength2,pdp_Address2) "PRESENCE( ea = '1'B)";
variant (pdp_addresslength2) "LENGTHTO(pdp_Address2)";
};
//Access Point Name - 7.7.30
type record AccessPointName {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
octetstring apn_value
}with { variant "PRESENCE( type_gtpc = '83'O)";
variant (lengthf) "LENGTHTO(apn_value)"; };
//Protocol Configuration Options - 7.7.31
// 24.008 10.5.6.3
type record ProtConfigOptions {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT3 configProtocol,
BIT4 spare,
BIT1 extension0,
ProtocolIDList protocols
} with { variant "PRESENCE( type_gtpc = '84'O)";
variant (lengthf) "LENGTHTO(configProtocol, spare, extension0,
protocols)"; };
type set of ProtocolElement ProtocolIDList;
type record ProtocolElement {
OCT2 protocolID,
integer lengthProtoID,
octetstring protoIDContents
} with { variant (lengthProtoID) "LENGTHTO(protoIDContents)" };
//GSN Address - 7.7.32
type record GSN_Address_GTPC {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
octetstring addressf
} with { variant "PRESENCE( type_gtpc = '85'O)";
variant (lengthf) "LENGTHTO(addressf)"; };
//MS International PSTN/ISDN Num.(MSISDN) - 7.7.33
type record MSISDN {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
octetstring msisdn
} with { variant "PRESENCE( type_gtpc = '86'O)";
variant (lengthf) "LENGTHTO(msisdn)"; };
type record QoSV_GTPC
{
BIT3 reliabilityClass,
BIT3 delayClass,
BIT2 spare1, // '00'B
BIT3 precedenceClass,
BIT1 spare2, //'0'B
BIT4 peakThroughput,
BIT5 meanThroughput,
BIT3 spare3, //'000'B
BIT3 deliverErroneusSDU optional, //opt because of V97
BIT2 deliveryOrder optional, //opt because of V97
BIT3 trafficClass optional, //opt because of V97
OCT1 maxSDUSize optional, //opt because of V97
OCT1 maxBitrateUplink optional, //opt because of V97
OCT1 maxBitrateDownlink optional, //opt because of V97
BIT4 sduErrorRatio optional, //opt because of V97
BIT4 residualBER optional, //opt because of V97
BIT2 trafficHandlingPriority optional, //opt because of V97
BIT6 transferDelay optional, //opt because of V97
OCT1 guaranteedBitRateUplink optional, //opt because of V97
OCT1 guaranteedBitRateDownlink optional, //opt because of V97
BIT4 sourceStatisticsDescriptor optional, //opt because of V97
BIT1 signallingIndication optional, //opt because of V97
BIT3 spare4 optional, //opt because of V97
// '000'B
OCT1 maxBitrateDownlinkExt optional, //opt because of V97
OCT1 guaranteedBitRateDownlinkExt optional, //opt because of V97
OCT1 maxBitrateUplinkExt optional, //opt because of V97
OCT1 guaranteedBitRateUplinkExt optional //opt because of V97
};
//Quality Of Service Profile - 7.7.34
type record QualityOfServiceProfile {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT1 allocRetensionPrio,
QoSV_GTPC qos_ProfileValue
} with { variant "PRESENCE( type_gtpc = '87'O)";
variant (lengthf) "LENGTHTO(allocRetensionPrio, qos_ProfileValue)";};
type record QualityOfServiceProfile_Value {
OCT1 allocRetensionPrio,
QoSV_GTPC qos_ProfileValue
}
//Authentication Quituplet - 7.7.35
type record AuthenticationQuintuplet_GTPC {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT16 rand,
integer xresLength,
octetstring xres,
OCT16 ck,
OCT16 ik,
integer autnLength,
octetstring autn
} with { variant "PRESENCE( type_gtpc = '88'O)";
variant (lengthf) "LENGTHTO(rand, xresLength, xres, ck, ik,
autnLength, autn)";
variant (xresLength) "LENGTHTO(xres)";
variant (autnLength) "LENGTHTO(autn)"; };
//Traffic Flow Template (TFT) - 7.7.36
// 24.008 10.5.6.12
type record TrafficFlowTemplate {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
TrafficFlowTemplateV_GTPC tft
} with { variant "PRESENCE( type_gtpc = '89'O)";
variant (lengthf) "LENGTHTO(tft)"; };
type union TrafficFlowTemplateV_GTPC
{
TrafficFlowTemplateV_CreateAddReplaceTFT_GTPC
trafficFlowTemplateV_CreateAddReplaceTFT,
TrafficFlowTemplateV_DeletePacketFilter_GTPC
trafficFlowTemplateV_DeletePacketFilter,
TrafficFlowTemplateV_Delete_Existing_TFT_or_No_TFT_Operation_GTPC
trafficFlowTemplateV_Delete_Existing_TFT_or_No_TFT_Operation
};
type record TrafficFlowTemplateV_CreateAddReplaceTFT_GTPC
{
integer numberOfPacketFilters,
BIT1 eBIT,
BIT3 operationCodeTFT, //'001'B or
PacketFilterList_CreateAddReplaceTFT_GTPC packetFilterList_CreateAddReplaceTFT,
ParametersList_GTPC parametersList optional
} with {
variant "PRESENCE (operationCodeTFT = '001'B, // Create New TFT
operationCodeTFT = '011'B, // Add packet filters to existing TFT
operationCodeTFT = '100'B // Replace packet filters in existing TFT
)";
variant(parametersList) "PRESENCE(eBIT = '1'B)";
variant(numberOfPacketFilters)"FIELDLENGTH(4)";
variant(numberOfPacketFilters)"LENGTHTO(packetFilterList_CreateAddReplaceTFT)";
variant(numberOfPacketFilters)"UNIT(elements)";
};
type record TrafficFlowTemplateV_DeletePacketFilter_GTPC
{
integer numberOfPacketFilters,
BIT1 eBIT,
BIT3 operationCodeTFT,
//'101'B or '011'B or '100'B
PacketFilterList_DeletePacketFilter_GTPC packetFilterList_DeletePacketFilter,
ParametersList_GTPC parametersList optional
} with {
variant "PRESENCE (operationCodeTFT = '101'B)" // Delete packet filters from existing TFT
variant(parametersList) "PRESENCE(eBIT = '1'B)";
variant(numberOfPacketFilters)"FIELDLENGTH(4)";
variant(numberOfPacketFilters)"LENGTHTO(packetFilterList_DeletePacketFilter)";
variant (numberOfPacketFilters)"UNIT(elements)";
};
type record TrafficFlowTemplateV_Delete_Existing_TFT_or_No_TFT_Operation_GTPC
{
BIT4 numberOfPacketFilters, //'0000'B
// numberOfPacketFilters is meaningless here since there is no PacketFilterList
BIT1 eBIT,
BIT3 operationCodeTFT, // '010'B or '110'B
ParametersList_GTPC parametersList optional
} with {
variant "PRESENCE (operationCodeTFT = '010'B, // delete existing TFT
operationCodeTFT = '110'B // No TFT Operation
)";
variant (parametersList) "PRESENCE(eBIT = '1'B)"
};
type record of PacketFilter_GTPC PacketFilterList_CreateAddReplaceTFT_GTPC;
type record PacketFilter_GTPC
{
PacketFilterIdentifier_GTPC identifier,
OCT1 evaluationPrecedence,
LIN1 lengthIndicator,
octetstring contents
} with { variant (lengthIndicator) "LENGTHTO (contents)"};
type record of PacketFilterIdentifier_GTPC PacketFilterList_DeletePacketFilter_GTPC;
type OCT1 PacketFilterIdentifier_GTPC;
type record of Parameter_GTPC ParametersList_GTPC;
type record Parameter_GTPC
{
OCT1 parameterIdentifier,
LIN1 lengthIndicator,
octetstring contents
} with { variant (lengthIndicator) "LENGTHTO (contents)"};
//Target Identification - 7.7.37
type record TargetIdentification {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
HEX1 mcc1 optional,
HEX1 mcc2 optional,
HEX1 mcc3 optional,
HEX1 mnc3 optional,
HEX1 mnc1 optional,
HEX1 mnc2 optional,
OCT2 lac optional,
OCT1 rac optional,
OCT2 rnc_id optional,
octetstring extended_rnc_id optional
} with { variant "PRESENCE( type_gtpc = '8A'O)";
variant (lengthf) "LENGTHTO(mcc1, mcc2, mcc3, mnc3, mnc1, mnc2,
lac, rac, rnc_id, extended_rnc_id)"; };
//UTRAN Transparent container - 7.7.38
type record UTRANTransparentContainer {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
octetstring transparentfield
} with { variant "PRESENCE( type_gtpc = '8B'O)";
variant (lengthf) "LENGTHTO(transparentfield)";};
//RAB Setup Information - 7.7.39
type record of RABSetupInformation RABSetupInformation_List
type record RABSetupInformation{
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT4 nsapi,
BIT4 unused,
OCT4 teidData optional,
octetstring rncIpAddress optional
} with { variant "PRESENCE( type_gtpc = '8C'O)";
variant (lengthf) "LENGTHTO(nsapi,unused,teidData,rncIpAddress)";};
//Extension Header Type List - 7.7.40
type record ExtensionHeaderTypeList_gtpc {
OCT1 type_gtpc,
integer lengthf,
octetstring extensionTypesList
} with { variant "PRESENCE( type_gtpc = '8D'O)";
variant (lengthf) "LENGTHTO(extensionTypesList)"; };
//Trigger ID - 7.7.41
type record GTP_TriggerID {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
octetstring triggerID
} with { variant "PRESENCE( type_gtpc = '8E'O)";
variant (lengthf) "LENGTHTO(triggerID)";};
//OMC Identity - 7.7.42
type record OMCIdentity {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
octetstring omcID
} with { variant "PRESENCE( type_gtpc = '8F'O)";
variant (lengthf) "LENGTHTO(omcID)"; };
//BSSGP RAN Information needed for RAN Transparent Container
//From BSSGP specification 48.018 v9.3.0 according to CR 8446
type union LIN2_2a_GTPC
{
integer length1,
integer length2
} with {
variant (length1) "FIELDLENGTH(7)";
variant (length2) "FIELDLENGTH(15)";
variant (length2) "BYTEORDER(last)";
variant (length1,length2) "FIELDORDER(msb)";
}
type record PDU_in_Error_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
octetstring erroneous_BSSGP_PDU
} with {
variant (lengthIndicator) "LENGTHTO (erroneous_BSSGP_PDU)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
};
type record Cell_Identifier_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
HEX1 mccDigit1 ,
HEX1 mccDigit2 ,
HEX1 mccDigit3 ,
HEX1 mncDigit3 ,
HEX1 mncDigit1 ,
HEX1 mncDigit2 ,
OCT2 lac,
OCT1 rac,
OCT2 cI_value
} with {
variant (lengthIndicator)
"LENGTHTO(mccDigit1,mccDigit2,mccDigit3,mncDigit3,mncDigit1,
mncDigit2,lac,rac,cI_value)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
};
type record Cause_BSSGP_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
OCT1 cause_Value
} with {
variant (lengthIndicator) "LENGTHTO (cause_Value)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
};
//48.018 v9.3.0 11.3.61
type record RIM_Application_Identity_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
OCT1 rIMApplicationIdentity
} with {
variant (lengthIndicator) "LENGTHTO (rIMApplicationIdentity)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
};
//48.018 v9.3.0 11.3.62
type record RIM_Sequence_Number_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
OCT4 rIMSequenceNumber
} with {
variant (lengthIndicator) "LENGTHTO (rIMSequenceNumber)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
};
//48.018 v9.3.0 Table 11.3.62a.1
type record RAN_Information_Request_RIM_Container_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
RIM_Application_Identity_GTPC rIM_Application_Identity,
RIM_Sequence_Number_GTPC rIM_Sequence_Number,
RIM_PDU_Indications_GTPC rIM_PDU_Indications,
RIM_Protocol_Version_Number_GTPC rIM_Protocol_Version_Number optional,
RAN_Information_Request_Application_Container_GTPC
application_Container optional,
SON_TransferApplicationIdentity sON_TransferApplicationIdentity optional
} with {
variant (lengthIndicator) "LENGTHTO (rIM_Application_Identity,
rIM_Sequence_Number,rIM_PDU_Indications,rIM_Protocol_Version_Number,
application_Container,sON_TransferApplicationIdentity)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
variant "TAG (rIM_Protocol_Version_Number, iEI = '55'O)";
variant (application_Container) "PRESENCE (rIM_Application_Identity.rIMApplicationIdentity = '01'O;)";
variant (application_Container) "PRESENCE (rIM_Application_Identity.rIMApplicationIdentity = '02'O;)";
variant (application_Container) "PRESENCE (rIM_Application_Identity.rIMApplicationIdentity = '03'O;)";
variant (application_Container) "PRESENCE (rIM_Application_Identity.rIMApplicationIdentity = '04'O;)";
variant (application_Container) "PRESENCE (rIM_Application_Identity.rIMApplicationIdentity = '05'O;)";
variant (application_Container)
"CROSSTAG
(nacc,rIM_Application_Identity.rIMApplicationIdentity = '01'O;
si3 ,rIM_Application_Identity.rIMApplicationIdentity = '02'O;
mBMS,rIM_Application_Identity.rIMApplicationIdentity = '03'O;
sON, rIM_Application_Identity.rIMApplicationIdentity = '04'O;
uTRA_SI,rIM_Application_Identity.rIMApplicationIdentity = '05'O;
)"
variant (sON_TransferApplicationIdentity)
"PRESENCE
(rIM_Application_Identity.rIMApplicationIdentity = '04'O;)";
};
//48.018 v9.3.0 Table 11.3.62a.2
type record RAN_Information_RIM_Container_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
RIM_Application_Identity_GTPC rIM_Application_Identity,
RIM_Sequence_Number_GTPC rIM_Sequence_Number,
RIM_PDU_Indications_GTPC rIM_PDU_Indications,
RIM_Protocol_Version_Number_GTPC rIM_Protocol_Version_Number optional,
ApplContainer_or_ApplErrContainer_GTPC
applContainer_or_ApplErrContainer optional,
SON_TransferApplicationIdentity sON_TransferApplicationIdentity optional
} with {
variant (lengthIndicator) "LENGTHTO (rIM_Application_Identity,
rIM_Sequence_Number,rIM_PDU_Indications,rIM_Protocol_Version_Number,
applContainer_or_ApplErrContainer,sON_TransferApplicationIdentity)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
variant
"TAG (rIM_Protocol_Version_Number, iEI = '55'O;)";
variant (applContainer_or_ApplErrContainer) "PRESENCE(rIM_Application_Identity.rIMApplicationIdentity = '01'O;)";
variant (applContainer_or_ApplErrContainer) "PRESENCE(rIM_Application_Identity.rIMApplicationIdentity = '02'O;)";
variant (applContainer_or_ApplErrContainer) "PRESENCE(rIM_Application_Identity.rIMApplicationIdentity = '03'O;)";
variant (applContainer_or_ApplErrContainer) "PRESENCE(rIM_Application_Identity.rIMApplicationIdentity = '04'O;)";
variant (applContainer_or_ApplErrContainer) "PRESENCE(rIM_Application_Identity.rIMApplicationIdentity = '05'O;)";
variant (applContainer_or_ApplErrContainer)
"CROSSTAG(nacc,rIM_Application_Identity.rIMApplicationIdentity = '01'O;
si3,rIM_Application_Identity.rIMApplicationIdentity = '02'O;
mBMS,rIM_Application_Identity.rIMApplicationIdentity = '03'O;
sON,rIM_Application_Identity.rIMApplicationIdentity = '04'O;
uTRA_SI,rIM_Application_Identity.rIMApplicationIdentity = '05'O)";
variant (sON_TransferApplicationIdentity)
"PRESENCE
(rIM_Application_Identity.rIMApplicationIdentity = '04'O;)";
};
type union ApplContainer_or_ApplErrContainer_GTPC
{
ApplContainer_or_ApplErrContainer_NACC_GTPC nacc,
ApplContainer_or_ApplErrContainer_SI3_GTPC si3,
ApplContainer_or_ApplErrContainer_MBMS_GTPC mBMS,
ApplContainer_or_ApplErrContainer_SON_GTPC sON,
ApplContainer_or_ApplErrContainer_UTRA_SI_GTPC uTRA_SI
}
type union ApplContainer_or_ApplErrContainer_NACC_GTPC
{
RAN_Information_Application_Container_NACC_GTPC application_Container,
Application_Error_Container_NACC_GTPC application_Error_Container
} with {
variant "TAG (
application_Container, iEI = '4E'O;
application_Error_Container, iEI = '56'O;)";
}
type union ApplContainer_or_ApplErrContainer_SI3_GTPC
{
RAN_Information_Application_Container_SI3_GTPC application_Container,
Application_Error_Container_SI3_GTPC application_Error_Container
} with {
variant "TAG (
application_Container, iEI = '4E'O;
application_Error_Container, iEI = '56'O;)";
}
type union ApplContainer_or_ApplErrContainer_MBMS_GTPC
{
RAN_Information_Application_Container_MBMS_GTPC application_Container,
Application_Error_Container_MBMS_GTPC application_Error_Container
} with {
variant "TAG (
application_Container, iEI = '4E'O;
application_Error_Container, iEI = '56'O;)";
}
type union ApplContainer_or_ApplErrContainer_SON_GTPC
{
RAN_Information_Application_Container_SON_GTPC application_Container,
Application_Error_Container_SON_GTPC application_Error_Container
} with {
variant "TAG (
application_Container, iEI = '4E'O;
application_Error_Container, iEI = '56'O;)";
}
type union ApplContainer_or_ApplErrContainer_UTRA_SI_GTPC
{
RAN_Information_Application_Container_UTRA_SI_GTPC application_Container,
Application_Error_Container_UTRA_SI_GTPC application_Error_Container
} with {
variant "TAG (
application_Container, iEI = '4E'O;
application_Error_Container, iEI = '56'O;)";
}
//48.018 v9.3.0 Table 11.3.62a.3
type record RAN_Information_Ack_RIM_Container_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
RIM_Application_Identity_GTPC rIM_Application_Identity,
RIM_Sequence_Number_GTPC rIM_Sequence_Number,
RIM_Protocol_Version_Number_GTPC rIM_Protocol_Version_Number optional,
SON_TransferApplicationIdentity sON_TransferApplicationIdentity optional
} with {
variant (lengthIndicator) "LENGTHTO (rIM_Application_Identity,
rIM_Sequence_Number,rIM_Protocol_Version_Number)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
variant "TAG (rIM_Protocol_Version_Number, iEI = '55'O;)";
variant (sON_TransferApplicationIdentity)
"PRESENCE
(rIM_Application_Identity.rIMApplicationIdentity = '04'O;)";
};
//48.018 v9.3.0 Table 11.3.62a.4
type record RAN_Information_Error_RIM_Container_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
RIM_Application_Identity_GTPC rIM_Application_Identity,
Cause_BSSGP_GTPC rIM_cause,
RIM_Protocol_Version_Number_GTPC rIM_Protocol_Version_Number optional,
PDU_in_Error_GTPC pDU_in_Error,
SON_TransferApplicationIdentity sON_TransferApplicationIdentity optional
} with {
variant (lengthIndicator) "LENGTHTO (rIM_Application_Identity,
rIM_cause,rIM_Protocol_Version_Number,pDU_in_Error)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
variant "TAG (rIM_Protocol_Version_Number, iEI = '55'O)";
variant (sON_TransferApplicationIdentity)
"PRESENCE
(rIM_Application_Identity.rIMApplicationIdentity = '04'O;)";
};
//48.018 v9.3.0 Table 11.3.62a.5
type record RAN_Information_Application_Error_RIM_Container_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
RIM_Application_Identity_GTPC rIM_Application_Identity,
RIM_Sequence_Number_GTPC rIM_Sequence_Number,
RIM_PDU_Indications_GTPC rIM_PDU_Indications,
RIM_Protocol_Version_Number_GTPC rIM_Protocol_Version_Number optional,
Application_Error_Container_GTPC application_Error_Container,
SON_TransferApplicationIdentity sON_TransferApplicationIdentity optional
} with {
variant (lengthIndicator) "LENGTHTO (rIM_Application_Identity,
rIM_Sequence_Number,rIM_PDU_Indications,rIM_Protocol_Version_Number,
application_Error_Container)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
variant "TAG (rIM_Protocol_Version_Number, iEI = '55'O)";
variant (application_Error_Container)
"CROSSTAG (nacc,rIM_Application_Identity.rIMApplicationIdentity = '01'O;
si3,rIM_Application_Identity.rIMApplicationIdentity = '02'O;
mBMS,rIM_Application_Identity.rIMApplicationIdentity = '03'O;
sON,rIM_Application_Identity.rIMApplicationIdentity = '04'O;
uTRA_SI,rIM_Application_Identity.rIMApplicationIdentity = '05'O)";
variant (sON_TransferApplicationIdentity)
"PRESENCE
(rIM_Application_Identity.rIMApplicationIdentity = '04'O;)";
};
//48.018 v9.3.0 Table 11.3.64
type union Application_Error_Container_GTPC
{
Application_Error_Container_NACC_GTPC nacc,
Application_Error_Container_SI3_GTPC si3,
Application_Error_Container_MBMS_GTPC mBMS,
Application_Error_Container_SON_GTPC sON,
Application_Error_Container_UTRA_SI_GTPC uTRA_SI
}
//48.018 v9.3.0 Table 11.3.63.1
type union RAN_Information_Request_Application_Container_GTPC
{
RAN_Information_Request_Application_Container_NACC_GTPC nacc,
RAN_Information_Request_Application_Container_SI3_GTPC si3,
RAN_Information_Request_Application_Container_MBMS_GTPC mBMS,
RAN_Information_Request_Application_Container_SON_GTPC sON,
RAN_Information_Request_Application_Container_UTRA_SI_GTPC uTRA_SI
}
//48.018 v9.3.0 Table 11.3.63.1.1
type record RAN_Information_Request_Application_Container_NACC_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
Cell_Identifier_GTPC reporting_Cell_Identifier
} with {
variant (lengthIndicator) "LENGTHTO (reporting_Cell_Identifier)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
};
//48.018 v9.3.0 Table 11.3.63.1.2
type record RAN_Information_Request_Application_Container_SI3_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
Cell_Identifier_GTPC reporting_Cell_Identifier
} with {
variant (lengthIndicator) "LENGTHTO (reporting_Cell_Identifier)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
}
//48.018 v9.3.0 Table 11.3.63.1.3
type record RAN_Information_Request_Application_Container_MBMS_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
Cell_Identifier_GTPC reporting_Cell_Identifier
} with {
variant (lengthIndicator) "LENGTHTO (reporting_Cell_Identifier)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
}
//48.018 v9.3.0 Table 11.3.63.1.4
type record RAN_Information_Request_Application_Container_SON_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
Cell_Identifier_GTPC reporting_Cell_Identifier,
octetstring sON_TransferRequestContainer // 3GPP TS 36.413
} with {
variant (lengthIndicator) "LENGTHTO (reporting_Cell_Identifier,sON_TransferRequestContainer)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
}
//48.018 v9.3.0 Table 11.3.63.1.5
type record RAN_Information_Request_Application_Container_UTRA_SI_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
Cell_Identifier_GTPC reporting_Cell_Identifier
} with {
variant (lengthIndicator) "LENGTHTO (reporting_Cell_Identifier)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
}
//48.018 v9.3.0 Table 11.3.108
type record SON_TransferApplicationIdentity
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
octetstring sON_TransferApplicationIdentityValue
}
//48.018 v9.3.0 Table 11.3.63.2.1
type record RAN_Information_Application_Container_NACC_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
Cell_Identifier_GTPC reporting_Cell_Identifier,
BIT1 typeBit,
BIT7 number_of_SI_PSI,
octetstring sI_PSI // 3GPP TS 44.018, 44.060
} with {
variant (lengthIndicator)
"LENGTHTO (reporting_Cell_Identifier,typeBit,number_of_SI_PSI,sI_PSI)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
};
//48.018 v9.3.0 Table 11.3.63.2.2
type record RAN_Information_Application_Container_SI3_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
Cell_Identifier_GTPC reporting_Cell_Identifier,
octetstring sI3 length (21) // 3GPP TS 44.018
} with {
variant (lengthIndicator)
"LENGTHTO (reporting_Cell_Identifier,sI3)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
variant (sI3)"FIELDLENGTH(21)" ;
};
//48.018 v9.3.0 Table 11.3.63.2.3
type record RAN_Information_Application_Container_MBMS_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
Cell_Identifier_GTPC reporting_Cell_Identifier,
octetstring mBMS_ChannelReport
} with {
variant (lengthIndicator)
"LENGTHTO (reporting_Cell_Identifier,mBMS_ChannelReport)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
};
//48.018 v9.3.0 Table 11.3.63.2.4
type record RAN_Information_Application_Container_SON_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
Cell_Identifier_GTPC reporting_Cell_Identifier,
octetstring sON_TransferResponseContainer // 3GPP TS 36.413
} with {
variant (lengthIndicator)
"LENGTHTO (reporting_Cell_Identifier,sON_TransferResponseContainer)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
};
//48.018 v9.3.0 Table 11.3.63.2.5
type record RAN_Information_Application_Container_UTRA_SI_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
Cell_Identifier_GTPC reporting_Cell_Identifier,
octetstring uTRA_SI_Container // 3GPP TS25.331
} with {
variant (lengthIndicator)
"LENGTHTO (reporting_Cell_Identifier,uTRA_SI_Container)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
};
//48.018 v9.3.0 11.3.64.1
type record Application_Error_Container_NACC_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
OCT1 nACC_cause,
Application_Container_IE_NACC_GTPC erroneousApplicationContainer
} with {
variant (lengthIndicator)
"LENGTHTO (nACC_cause,erroneousApplicationContainer)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
};
type union Application_Container_IE_NACC_GTPC
{
RAN_Information_Request_Application_Container_NACC_GTPC
rAN_Information_Request_Application_Container,
RAN_Information_Application_Container_NACC_GTPC
rAN_Information_Application_Container
}
with {
variant "TAG (
rAN_Information_Request_Application_Container, iEI = '4D'O;
rAN_Information_Application_Container, iEI = '4E'O)";
}
//48.018 v9.3.0 11.3.64.2
type record Application_Error_Container_SI3_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
OCT1 sI3_cause,
Application_Container_IE_SI3_GTPC erroneousApplicationContainer
} with {
variant (lengthIndicator)
"LENGTHTO (sI3_cause,erroneousApplicationContainer)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
};
type union Application_Container_IE_SI3_GTPC
{
RAN_Information_Request_Application_Container_SI3_GTPC
rAN_Information_Request_Application_Container,
RAN_Information_Application_Container_SI3_GTPC
rAN_Information_Application_Container
}
with {
variant "TAG (
rAN_Information_Request_Application_Container, iEI = '4D'O;
rAN_Information_Application_Container, iEI = '4E'O)";
}
//48.018 v9.3.0 11.3.64.3
type record Application_Error_Container_MBMS_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
OCT1 mBMS_cause,
Application_Container_IE_MBMS_GTPC erroneousApplicationContainer
} with {
variant (lengthIndicator)
"LENGTHTO (mBMS_cause,erroneousApplicationContainer)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
};
type union Application_Container_IE_MBMS_GTPC
{
RAN_Information_Request_Application_Container_MBMS_GTPC
rAN_Information_Request_Application_Container,
RAN_Information_Application_Container_MBMS_GTPC
rAN_Information_Application_Container
}
with {
variant "TAG (
rAN_Information_Request_Application_Container, iEI = '4D'O;
rAN_Information_Application_Container, iEI = '4E'O)";
}
//48.018 v9.3.0 11.3.64.4
type record Application_Error_Container_SON_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
OCT1 sON_cause,
Application_Container_IE_SON_GTPC erroneousApplicationContainer
} with {
variant (lengthIndicator)
"LENGTHTO (sON_cause,erroneousApplicationContainer)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
};
type union Application_Container_IE_SON_GTPC
{
RAN_Information_Request_Application_Container_SON_GTPC
rAN_Information_Request_Application_Container,
RAN_Information_Application_Container_SON_GTPC
rAN_Information_Application_Container
}
with {
variant "TAG (
rAN_Information_Request_Application_Container, iEI = '4D'O;
rAN_Information_Application_Container, iEI = '4E'O)";
}
//48.018 v9.3.0 11.3.64.5
type record Application_Error_Container_UTRA_SI_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
OCT1 uTRA_SI_cause,
Application_Container_IE_SON_GTPC erroneousApplicationContainer
} with {
variant (lengthIndicator)
"LENGTHTO (uTRA_SI_cause,erroneousApplicationContainer)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
};
type union Application_Container_IE_UTRA_SI_GTPC
{
RAN_Information_Request_Application_Container_UTRA_SI_GTPC
rAN_Information_Request_Application_Container,
RAN_Information_Application_Container_UTRA_SI_GTPC
rAN_Information_Application_Container
}
with {
variant "TAG (
rAN_Information_Request_Application_Container, iEI = '4D'O;
rAN_Information_Application_Container, iEI = '4E'O)";
}
//48.018 v9.3.0 11.3.65
type record RIM_PDU_Indications_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
BIT1 ack,
BIT3 pDU_Type_Extension,
BIT4 reserved
} with {
variant (lengthIndicator) "LENGTHTO (ack,pDU_Type_Extension,reserved)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
};
//48.018 v9.3.0 11.3.67
type record RIM_Protocol_Version_Number_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
OCT1 rIMProtocolVersionNumber
} with {
variant (lengthIndicator) "LENGTHTO (rIMProtocolVersionNumber)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
};
//48.018 v9.3.0 11.3.70
type record RIM_Routing_Information_GTPC
{
OCT1 iEI,
BIT1 ext,
LIN2_2a_GTPC lengthIndicator,
HEX1 rIMRoutingAddressDiscriminator,
HEX1 spare,
RIM_Routing_Address_GTPC rIM_Routing_Address
} with {
variant (lengthIndicator)
"LENGTHTO (rIMRoutingAddressDiscriminator,spare,rIM_Routing_Address)";
variant (lengthIndicator) "CROSSTAG( length1, ext = '1'B;
length2, ext = '0'B;)";
variant (ext,lengthIndicator) "FIELDORDER(msb)";
variant (rIM_Routing_Address)
"CROSSTAG (cell_Identifier,rIMRoutingAddressDiscriminator = '0'H;
rNCID, rIMRoutingAddressDiscriminator = '1'H;
eNB_Identifier, rIMRoutingAddressDiscriminator = '2'H;)"
};
type record Cell_Identifier_V_GTPC
{
HEX1 mccDigit1,
HEX1 mccDigit2,
HEX1 mccDigit3,
HEX1 mncDigit3,
HEX1 mncDigit1,
HEX1 mncDigit2,
OCT2 lac,
OCT1 rac,
OCT2 cI_value
};
type union RIM_Routing_Address_GTPC
{
Cell_Identifier_V_GTPC cell_Identifier,
RNC_ID_BSSGP_GTPC rNCID,
ENB_Identifier eNB_Identifier
}
type record RNC_ID_BSSGP_GTPC
{
HEX1 mccDigit1,
HEX1 mccDigit2,
HEX1 mccDigit3,
HEX1 mncDigit3,
HEX1 mncDigit1,
HEX1 mncDigit2,
OCT2 lAC,
OCT1 rAC,
HEX1 spare,
integer rNC_ID
} with {
variant (spare,rNC_ID) "FIELDORDER(msb)";
variant (rNC_ID) "BYTEORDER(last)";
variant (rNC_ID) "FIELDLENGTH(12)";
}
type record ENB_Identifier
{
HEX1 mccDigit1,
HEX1 mccDigit2,
HEX1 mccDigit3,
HEX1 mncDigit3,
HEX1 mncDigit1,
HEX1 mncDigit2,
OCT2 tAC,
octetstring globalENB_ID
}
//Note: the following structure is outdated
/*
type record GlobalRNC_ID_BSSGP_GTPC
{
HEX1 mccDigit1,
HEX1 mccDigit2,
HEX1 mccDigit3,
HEX1 mncDigit3,
HEX1 mncDigit1,
HEX1 mncDigit2,
integer rNC_ID
} with {
variant (spare,rNC_ID) "FIELDORDER(msb)";
variant (rNC_ID) "BYTEORDER(last)";
variant (rNC_ID) "FIELDLENGTH(12)";
}
*/
//48.018 v9.3.0 10.6.1
type record PDU_BSSGP_RAN_INFORMATION_REQUEST_GTPC
{
OCT1 bssgpPduType,
RIM_Routing_Information_GTPC destination_Cell_Identifier,
RIM_Routing_Information_GTPC source_Cell_Identifier,
RAN_Information_Request_RIM_Container_GTPC rIM_Container
};
//48.018 v9.3.0 10.6.2
type record PDU_BSSGP_RAN_INFORMATION_GTPC
{
OCT1 bssgpPduType,
RIM_Routing_Information_GTPC destination_Cell_Identifier,
RIM_Routing_Information_GTPC source_Cell_Identifier,
RAN_Information_RIM_Container_GTPC rIM_Container
};
//48.018 v9.3.0 10.6.3
type record PDU_BSSGP_RAN_INFORMATION_ACK_GTPC
{
OCT1 bssgpPduType,
RIM_Routing_Information_GTPC destination_Cell_Identifier,
RIM_Routing_Information_GTPC source_Cell_Identifier,
RAN_Information_Ack_RIM_Container_GTPC rIM_Container
};
//48.018 v9.3.0 10.6.4
type record PDU_BSSGP_RAN_INFORMATION_ERROR_GTPC
{
OCT1 bssgpPduType,
RIM_Routing_Information_GTPC destination_Cell_Identifier,
RIM_Routing_Information_GTPC source_Cell_Identifier,
RAN_Information_Error_RIM_Container_GTPC rIM_Container
};
//48.018 v9.3.0 10.6.5
type record PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR_GTPC
{
OCT1 bssgpPduType,
RIM_Routing_Information_GTPC destination_Cell_Identifier,
RIM_Routing_Information_GTPC source_Cell_Identifier,
RAN_Information_Application_Error_RIM_Container_GTPC rIM_Container
};
type union RANTransparentContainerField
{
PDU_BSSGP_RAN_INFORMATION_REQUEST_GTPC pDU_BSSGP_RAN_INFORMATION_REQUEST,
PDU_BSSGP_RAN_INFORMATION_GTPC pDU_BSSGP_RAN_INFORMATION,
PDU_BSSGP_RAN_INFORMATION_ACK_GTPC pDU_BSSGP_RAN_INFORMATION_ACK,
PDU_BSSGP_RAN_INFORMATION_ERROR_GTPC pDU_BSSGP_RAN_INFORMATION_ERROR,
PDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR_GTPC
pDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR
} with { variant "TAG (
pDU_BSSGP_RAN_INFORMATION_REQUEST, bssgpPduType ='71'O;
pDU_BSSGP_RAN_INFORMATION, bssgpPduType ='70'O;
pDU_BSSGP_RAN_INFORMATION_ACK, bssgpPduType ='72'O;
pDU_BSSGP_RAN_INFORMATION_ERROR, bssgpPduType ='73'O;
pDU_BSSGP_RAN_INFORMATION_APPLICATION_ERROR, bssgpPduType ='74'O
)"
};
//RAN Transparent Container 7.7.43
type record RANTransparentContainer{
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
RANTransparentContainerField rANTransparentContainerField
} with { variant "PRESENCE( type_gtpc = '90'O)";
variant (lengthf) "LENGTHTO(rANTransparentContainerField)"; };
//Charging Gateway Address - 7.7.44
type record ChargingGatewayAddress {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
iPv4_iPv6_Address ipv_address
} with { variant "PRESENCE( type_gtpc = 'FB'O)";
variant (lengthf) "LENGTHTO(ipv_address)";};
type union iPv4_iPv6_Address{
OCT4 iPv4_Address,
OCT16 iPv6_Address
}
//PDP Context Priorization - 7.7.45
type record PDPContextPriorization {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf
} with { variant "PRESENCE( type_gtpc = '91'O)";};
//Addititonal RAB Setup Information - 7.7.45A
type record of AdditionalRABSetupInformation AdditionalRABSetupInformation_List
type record AdditionalRABSetupInformation {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT4 nsapi,
BIT4 unused,
OCT4 teidData optional,
octetstring rncIpAddress optional
} with {variant "PRESENCE( type_gtpc = '92'O)";
variant (lengthf) "LENGTHTO(nsapi,unused,teidData,rncIpAddress)"; };
//Private Extension - 7.7.46
type record of PrivateExtension_gtpc PrivateExtension_gtpc_List;
type record PrivateExtension_gtpc {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT2 extensionID,
octetstring extensionValue
} with {variant "PRESENCE( type_gtpc = 'FF'O)";
variant (lengthf) "LENGTHTO(extensionID, extensionValue)"; };
//SGSN Number - 7.7.47
type record SGSN_Number {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
octetstring sGSN_NumberValue
} with { variant "PRESENCE( type_gtpc = '93'O)";
variant (lengthf) "LENGTHTO(sGSN_NumberValue)"; };
//Common Flags - 7.7.48
type record CommonFlags {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT1 prohibitPayloadCompression,
BIT1 mBMS_ServiceType,
BIT1 rAN_ProceduresReady,
BIT1 mBMS_CountingInformation,
BIT1 nO_QoS_Negotiation,
BIT1 nRSN,
BIT1 upgradeQoS_Supported,
BIT1 dualAddressBearerFlag
} with { variant "PRESENCE( type_gtpc = '94'O)";
variant (lengthf) "LENGTHTO(prohibitPayloadCompression,mBMS_ServiceType,
rAN_ProceduresReady,mBMS_CountingInformation,
nO_QoS_Negotiation,nRSN,upgradeQoS_Supported,dualAddressBearerFlag)"; };
//APN Restriction - 7.7.49
type record APN_Restriction {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT1 restrictionTypeValue
} with { variant "PRESENCE( type_gtpc = '95'O)";
variant (lengthf) "LENGTHTO(restrictionTypeValue)"; };
// RAT Type - 7.7.50
type record RATType {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT1 ratTypeValue
} with { variant "PRESENCE( type_gtpc = '97'O)";
variant (lengthf) "LENGTHTO(ratTypeValue)"; };
// User Location Information - 7.7.51
type record UserLocationInformation {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT1 geographicLocationType,
GeographicLocation_gtpc geographicLocation
} with { variant "PRESENCE( type_gtpc = '98'O)";
variant (lengthf) "LENGTHTO(geographicLocationType, geographicLocation)";
variant (geographicLocation) "CROSSTAG(geographicLocationCGI, geographicLocationType='00'O;
geographicLocationSAI, geographicLocationType='01'O;
geographicLocationRAI, geographicLocationType='02'O)";};
type union GeographicLocation_gtpc {
GeographicLocationCGI geographicLocationCGI,
GeographicLocationSAI geographicLocationSAI,
GeographicLocationRAI geographicLocationRAI
}
// Figure 7.7.51.2: Geographic Location field for CGI
type record GeographicLocationCGI {
HEX1 mccDigit1,
HEX1 mccDigit2,
HEX1 mccDigit3,
HEX1 mncDigit3,
HEX1 mncDigit1,
HEX1 mncDigit2,
OCT2 lac,
OCT2 cI_value
}
// Figure 7.7.51.3: Geographic Location field for SAI
type record GeographicLocationSAI {
HEX1 mccDigit1,
HEX1 mccDigit2,
HEX1 mccDigit3,
HEX1 mncDigit3,
HEX1 mncDigit1,
HEX1 mncDigit2,
OCT2 lac,
OCT2 sac
}
// Figure 7.7.51.4: Geographic Location field for RAI
type record GeographicLocationRAI {
HEX1 mccDigit1,
HEX1 mccDigit2,
HEX1 mccDigit3,
HEX1 mncDigit3,
HEX1 mncDigit1,
HEX1 mncDigit2,
OCT2 lac,
OCT2 rac
}
// MS Time Zone - 7.7.52
type record MS_TimeZone {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT1 timeZone,
BIT2 daylightSavingTime,
BIT3 spare1,
// This bit is proprietary, compared to the 3GPP definition of
// the Time Zone information element.
// The new field "SGSN Attempts to Update MS" is described in
// the following CPI documentation: GSN CDR Format,
// 1/190 83-AXB 250 05/6 Uen A.
// Web link to CPI: http://cpi2.al.sw.ericsson.se/alex?pr=PDU+PCN
BIT1 sgsnAttempsToUpdateMS,
BIT2 spare2
} with { variant "PRESENCE( type_gtpc = '99'O)";
variant (lengthf) "LENGTHTO(timeZone, daylightSavingTime, spare1,
sgsnAttempsToUpdateMS, spare2)"; };
// IMEISV - 7.7.53
type record IMEISV_gtpc {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT8 imeisv
} with { variant "PRESENCE( type_gtpc = '9A'O)";
variant (lengthf) "LENGTHTO(imeisv)"; };
// Camel Charging Information Container - 7.7.54
type record CamelChargingInformationContainer {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
octetstring camelInformationPDP_IE
} with { variant "PRESENCE( type_gtpc = '9B'O)";
variant (lengthf) "LENGTHTO(camelInformationPDP_IE)"; };
// MBMS UE Context Container - 7.7.55
type record of MBMS_UE_ContextContainer MBMS_UE_Context_List;
type record MBMS_UE_ContextContainer {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT4 spare1,
BIT4 linkedNSAPI,
OCT4 uteidControlPlane,
OCT1 enhancedNSAPI,
BIT4 pdp_typeorg,
BIT4 spare2,
OCT1 pdp_typenum,
integer pdp_addressLength,
octetstring pdp_address length (0..63),
integer ggsn_addressControlPlaneLength,
octetstring ggsn_addressControlPlane length (4..16),
integer apnLength,
octetstring apn,
BIT4 transactionId,
BIT4 spare3,
OCT1 transactionID
} with {variant "PRESENCE( type_gtpc = '9C'O)";
variant (lengthf) "LENGTHTO(spare1, linkedNSAPI,
uteidControlPlane, enhancedNSAPI, pdp_typeorg, spare2,
pdp_typenum, pdp_addressLength, pdp_address,
ggsn_addressControlPlaneLength, ggsn_addressControlPlane,
apnLength, apn, transactionId, spare3, transactionID)";
variant (pdp_addressLength) "LENGTHTO(pdp_address)";
variant (ggsn_addressControlPlaneLength)
"LENGTHTO(ggsn_addressControlPlane)";
variant (apnLength) "LENGTHTO(apn)";
};
// Temporary Mobile Group Identity - 7.7.56
type record TMGI_gtpc {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT6 tMGIValue
} with { variant "PRESENCE( type_gtpc = '9D'O)";
variant (lengthf) "LENGTHTO(tMGIValue)"; };
// RIM Routing Address - 7.7.57
type record RIM_RoutingAddress {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
octetstring rIM_RoutingAddressValue
//Left as octetstring because GTP spec does not include the RIM Routing
// Address Discriminator and therefore decoding is not possible as in 48.018
//CR 544 states that "The RIM Routing Address contains the destination RNC
// Identity from the RAN INFORMATION message when the source is GERAN and
// the target is UTRAN.
//The RIM Routing Address contains the destination Cell Identifier from the
// RAN INFORMATION message when the source is GERAN and the target ir GERAN.
} with { variant "PRESENCE( type_gtpc = '9E'O)";
variant (lengthf) "LENGTHTO(rIM_RoutingAddressValue)"; };
//MBMS Protocol Configuration Options - 7.7.58
type record MBMS_ProtocolConfigurationOptions {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
octetstring mBMS_ProtocolConfigurationOptions
} with { variant "PRESENCE( type_gtpc = '9F'O)";
variant (lengthf) "LENGTHTO(mBMS_ProtocolConfigurationOptions)"; };
// MBMS Session Duration - 7.7.59
type record MBMS_SessionDuration {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT3 mBMS_SessionDurationValue
} with { variant "PRESENCE( type_gtpc = 'A8'O)";
variant (lengthf) "LENGTHTO(mBMS_SessionDurationValue)"; };
// MBMS Service Area - 7.7.60
type record MBMS_ServiceArea {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
octetstring mBMS_ServiceAreaValue
} with { variant "PRESENCE( type_gtpc = 'A0'O)";
variant (lengthf) "LENGTHTO(mBMS_ServiceAreaValue)"; };
// Source RNC PDCP context info - 7.7.61
type record SourceRNC_PDCP_ContextInfo {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
octetstring rRC_Container
} with { variant "PRESENCE( type_gtpc = 'A1'O)";
variant (lengthf) "LENGTHTO(rRC_Container)"; };
// Additional Trace Info - 7.7.62
type record AdditionalTraceInfo {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT3 traceReference2,
OCT2 traceRecordingSessionReference,
OCT1 triggeringEvents_GGSN,
OCT1 traceDepth,
OCT1 listOfInterfaces_GGSN,
OCT1 traceActivityControl
} with { variant "PRESENCE( type_gtpc = 'A2'O)";
variant (lengthf) "LENGTHTO(traceReference2,
traceRecordingSessionReference, triggeringEvents_GGSN,
traceDepth, listOfInterfaces_GGSN, traceActivityControl)";
};
// Hop Counter - 7.7.63
type record HopCounter_gtpc {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
integer hopCounter
} with { variant "PRESENCE( type_gtpc = 'A3'O)";
variant (lengthf) "LENGTHTO(hopCounter)"; };
// Selected PLMN ID - 7.7.64
type record Selected_PLMN_ID {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT3 selected_PLMN_Identity
} with { variant "PRESENCE( type_gtpc = 'A4'O)";
variant (lengthf) "LENGTHTO(selected_PLMN_Identity)"; };
// MBMS Session Identifier - 7.7.65
type record MBMS_SessionIdentifier {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT1 mBMS_SessionIdentifier
} with { variant "PRESENCE( type_gtpc = 'A5'O)";
variant (lengthf) "LENGTHTO(mBMS_SessionIdentifier)"; };
// MBMS 2G/3G Indicator - 7.7.66
type record MBMS_2G_3G_Indicator {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT1 mBMS_2G_3G_Indicator
} with { variant "PRESENCE( type_gtpc = 'A6'O)";
variant (lengthf) "LENGTHTO(mBMS_2G_3G_Indicator)"; };
// Enhanced NSAPI - 7.7.67
type record Enhanced_NSAPI {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT1 enhanced_NSAPI
} with { variant "PRESENCE( type_gtpc = 'A7'O)";
variant (lengthf) "LENGTHTO(enhanced_NSAPI)"; };
// Additional MBMS Trace Info - 7.7.68
type record AdditionalMBMSTraceInfo {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT3 traceReference2,
OCT2 traceRecordingSessionReference,
OCT2 triggeringEvents_BM_SC,
OCT1 traceDepth_BM_SC,
OCT1 listOfInterfaces_BM_SC,
OCT1 traceActivityControl_BM_SC
} with { variant "PRESENCE( type_gtpc = 'A9'O)";
variant (lengthf) "LENGTHTO(traceReference2, traceRecordingSessionReference,
triggeringEvents_BM_SC, traceDepth_BM_SC,
listOfInterfaces_BM_SC, traceActivityControl_BM_SC)";
};
// MBMS Session Repetition Number - 7.7.69
type record MBMS_SessionRepetitionNumber {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT1 mBMS_SessionRepetitionNumber
} with { variant "PRESENCE( type_gtpc = 'AA'O)";
variant (lengthf) "LENGTHTO(mBMS_SessionRepetitionNumber)"; };
// MBMS Time To Data Transfer - 7.7.70
type record MBMS_TimeToDataTransfer {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT1 mBMS_TimeToDataTransfer
} with { variant "PRESENCE( type_gtpc = 'AB'O)";
variant (lengthf) "LENGTHTO(mBMS_TimeToDataTransfer)"; };
// BSS Container - 7.7.72
type record BSS_Container {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
octetstring bSS_Container // TODO FIXME: which Container is the BSS Container?
} with { variant "PRESENCE( type_gtpc = 'AD'O)";
variant (lengthf) "LENGTHTO(bSS_Container)"; };
// Cell Identification - 7.7.73
// Routing Area identification - from 24.008 10.5.5.15
type record RoutingAreaIdentificationV_gtpc
{
HEX1 mccDigit1,
HEX1 mccDigit2,
HEX1 mccDigit3,
HEX1 mncDigit3,
HEX1 mncDigit1,
HEX1 mncDigit2,
OCT2 lac,
OCT1 rac
};
type record RNC_Identifier_gtpc {
RoutingAreaIdentificationV_gtpc routingAreaIdentificationV_gtpc,
integer rNC_ID,
HEX1 spare
} with {
variant (spare,rNC_ID) "FIELDORDER(msb)";
variant (rNC_ID) "BYTEORDER(last)";
variant (rNC_ID) "FIELDLENGTH(12)";
}
type union Cell_ID_or_RNC_ID {
Cell_Identifier_V_GTPC cell_Identifier,
RNC_Identifier_gtpc rNC_Identifier
}
type record Cell_Identification_gtpc {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
Cell_Identifier_V_GTPC targetCell_ID,
OCT1 sourceType, //0 - Source Cell ID / 1- Source RNC ID in next field
Cell_ID_or_RNC_ID source_Cell_ID_or_RNC_ID
} with {variant "PRESENCE( type_gtpc = 'AE'O)";
variant (lengthf) "LENGTHTO(targetCell_ID,sourceType,source_Cell_ID_or_RNC_ID)";
variant (source_Cell_ID_or_RNC_ID) "CROSSTAG ( cell_Identifier, sourceType = '00'O;
rNC_Identifier, sourceType = '01'O)"; };
// PDU Numbers - 7.7.74
type record of PDU_Numbers PDU_Numbers_List;
type record PDU_Numbers {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT4 nsapi,
BIT4 spare,
OCT2 dL_GTPU_SequenceNumber,
OCT2 uL_GTPU_SequenceNumber,
OCT2 sendNPDUnum,
OCT2 receiveNPDUnum
} with {variant "PRESENCE( type_gtpc = 'AF'O)";
variant (lengthf) "LENGTHTO(nsapi, spare, dL_GTPU_SequenceNumber, uL_GTPU_SequenceNumber,
sendNPDUnum, receiveNPDUnum)"; };
// BSSGP Cause - 7.7.75
type record BSSGP_Cause_gtpc {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT1 bSSGP_Cause
} with { variant "PRESENCE( type_gtpc = 'B0'O)";
variant (lengthf) "LENGTHTO(bSSGP_Cause)"; };
// Required MBMS Bearer Capabilities - 7.7.76
type record RequiredMBMS_BearerCapabilities {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
octetstring reqMBMS_BearerCapValue
} with { variant "PRESENCE( type_gtpc = 'B1'O)";
variant (lengthf) "LENGTHTO(reqMBMS_BearerCapValue)"; };
// RIM Routing Address Discriminator 7.7.77
type record RIM_RoutingAddress_Discriminator {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT4 rra_discriminator,
BIT4 spare
} with { variant "PRESENCE( type_gtpc = 'B2'O)";
variant (lengthf) "LENGTHTO(rra_discriminator,spare)"; };
// ListOfSetupPFCs - 7.7.78
// PFC/PFI as defined in BSSGP (48.018 - 11.3.83) which refers to L3 (24.008 - 10.5.6.11)
type record Single_PFI_gtpc
{
BIT7 pFI_Value,
BIT1 spare
}
type record length (0..11) of Single_PFI_gtpc Multiple_PFIs_gtpc;
type record ListOfSetupPFCsValue_gtpc
{
integer number_of_PFCs (0..11), // note: 12 .. 255 are reserved!!!
Multiple_PFIs_gtpc pFIs
} with
{
variant (number_of_PFCs) "UNIT(elements),LENGTHTO(pFIs),FIELDLENGTH(8)";
}
type record ListOfSetupPFCs_gtpc {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
ListOfSetupPFCsValue_gtpc listOfSetupPFCs
} with { variant "PRESENCE( type_gtpc = 'B3'O)";
variant (lengthf) "LENGTHTO(listOfSetupPFCs)"; };
// PS Handover XID Parameters 7.7.79
type record of PS_HandoverXIDParameters PS_HandoverXIDParameters_List;
type record PS_HandoverXIDParameters {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT4 sapi,
BIT4 spare,
LIN1 xID_ParametersLength,
XID_Information_GTPC xID_Parameters optional
} with {
variant (lengthf) "LENGTHTO(sapi,spare,xID_ParametersLength,xID_Parameters)";
variant (xID_ParametersLength) "LENGTHTO(xID_Parameters)";
variant "PRESENCE(type_gtpc = 'B4'O)"
};
//The following types are based on types in LLC_Types.ttcn
type record of XID_GTPC XID_Information_GTPC;
type record XID_GTPC
{
BIT1 xl,
BIT5 typefield,
XID_length_GTPC xID_length,
//Header_XID header_XID,
XID_Data_GTPC xID_Data
} with {
variant (xID_Data) "CROSSTAG( version, typefield = '00000'B;
iOV_UI, typefield = '00001'B;
iOV_I, typefield = '00010'B;
t200, typefield = '00011'B;
n200, typefield = '00100'B;
n201_U, typefield = '00101'B;
n201_I, typefield = '00110'B;
mD, typefield = '00111'B;
mU, typefield = '01000'B;
kD, typefield = '01001'B;
kU, typefield = '01010'B;
l3param, typefield = '01011'B;
reset, typefield = '01100'B;
)";
variant "FIELDORDER(msb)";
variant (xID_length) "CROSSTAG( short_len, xl = '0'B;
long_len, xl = '1'B;)";
variant (xID_length) "LENGTHTO (xID_Data)"
variant (xID_length) "PADDING(yes)"
};
type union XID_length_GTPC
{
integer short_len,
integer long_len
}with {
variant (short_len) "FIELDLENGTH(2)";
variant (long_len) "FIELDLENGTH(8)";
variant (long_len) "BYTEORDER(last)";
variant (short_len) "FIELDORDER(msb)";
variant (long_len) "FIELDORDER(msb)";
}
type union XID_Data_GTPC
{
Version_GTPC version,
IOV_UI_GTPC iOV_UI,
IOV_I_GTPC iOV_I,
T200_GTPC t200,
N200_GTPC n200,
N201_U_GTPC n201_U,
N201_I_GTPC n201_I,
MD_GTPC mD,
MU_GTPC mU,
KD_GTPC kD,
KU_GTPC kU,
L3param_GTPC l3param,
Reset_LLC_GTPC reset
}
type record Version_GTPC
{
integer version_value (0..15),
BIT4 spare
} with {
variant (version_value) "FIELDLENGTH(4)";
}
type octetstring IOV_UI_GTPC length(4)
type octetstring IOV_I_GTPC length(4)
type record T200_GTPC
{
BIT4 spare,
integer t200Value
} with {
variant (t200Value) "FIELDLENGTH(12)";
variant (t200Value) "BYTEORDER(last)";
variant "FIELDORDER(msb)";
};
type record N200_GTPC
{
integer retransmissions (0..15),
BIT4 spare
} with {
variant (retransmissions) "FIELDLENGTH(4)";
}
type record N201_U_GTPC
{
BIT5 spare,
integer n201UValue
} with {
variant (n201UValue) "FIELDLENGTH(11)";
variant (n201UValue) "BYTEORDER(last)";
variant "FIELDORDER(msb)";
};
type record N201_I_GTPC
{
BIT5 spare,
integer n201IValue
}
with {
variant (n201IValue) "FIELDLENGTH(11)";
variant (n201IValue) "BYTEORDER(last)";
variant "FIELDORDER(msb)";
};
type record MD_GTPC
{
BIT1 spare,
integer mDValue
} with {
variant (mDValue) "FIELDLENGTH(15)";
variant (mDValue) "BYTEORDER(last)";
variant "FIELDORDER(msb)";
};
type record MU_GTPC
{
BIT1 spare,
integer mUValue
} with {
variant (mUValue) "FIELDLENGTH(15)";
variant (mUValue) "BYTEORDER(last)";
variant "FIELDORDER(msb)";
};
type integer KD_GTPC with {variant "FIELDLENGTH(8)";};
type integer KU_GTPC with {variant "FIELDLENGTH(8)";};
type octetstring L3param_GTPC;
type octetstring Reset_LLC_GTPC length(0);
// end of types copied from LLC_Types.ttcn
// MS Info Change reporting Action 7.7.80
type record MS_InfoChangeReportingAction {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT1 actionfield
} with { variant "PRESENCE( type_gtpc = 'B5'O)";
variant (lengthf) "LENGTHTO(actionfield)"; };
// Direct Tunnel Flags - 7.7.81
type record DirectTunnelFlags {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT1 dTI,
BIT1 gCSI,
BIT1 eI,
BIT5 spare
} with { variant "PRESENCE( type_gtpc = 'B6'O)";
variant (lengthf) "LENGTHTO(dTI,gCSI,eI,spare)";};
// Correlation ID - 7.7.82
type record CorrelationID {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT1 correlationIDValue
} with { variant "PRESENCE( type_gtpc = 'B7'O)";
variant (lengthf) "LENGTHTO(correlationIDValue)"; };
// BearerControlMode - 7.7.83
type record BearerControlMode {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT1 bearerControlModeValue
} with { variant "PRESENCE( type_gtpc = 'B8'O)";
variant (lengthf) "LENGTHTO(bearerControlModeValue)"; };
// MBMS Flow ID - 7.7.84
type record MBMS_FlowID {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
octetstring mBMS_FlowIDValue
} with { variant "PRESENCE( type_gtpc = 'B9'O)";
variant (lengthf) "LENGTHTO(mBMS_FlowIDValue)"; };
// MBMS IP Multicast Distribution - 7.7.85
type record MBMS_IPMulticastDistribution {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT4 commonTEID,
GSNAddress iPmulticastDistributionAddress,
GSNAddress iPmulticastSourceAddress,
OCT1 mBMS_HCIndicator
} with { variant "PRESENCE( type_gtpc = 'BA'O)";
variant (lengthf) "LENGTHTO(commonTEID,iPmulticastDistributionAddress,
iPmulticastSourceAddress,mBMS_HCIndicator)"; };
// GSNAddress
type record GSNAddress {
INT6b lengthf,
BIT2 address_type,
iPv4_iPv6_Address ipv_address
} with { variant (lengthf) "LENGTHTO(ipv_address)";};
// MBMS Distribution Acknowledgement - 7.7.86
type record MBMS_DistributionAcknowledgement {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT2 distributionIndication,
BIT6 spare
} with { variant "PRESENCE( type_gtpc = 'BB'O)";
variant (lengthf) "LENGTHTO(distributionIndication,spare)"; };
// ReliableInterRATHandoverInfo - 7.7.87 - from 48.018 11.3.107
type record ReliableInterRATHandoverInfo
{
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT1 reliableInterRATHandoverInfoIndicator,
BIT7 spare
} with { variant "PRESENCE( type_gtpc = 'BC'O)";
variant (lengthf) "LENGTHTO(reliableInterRATHandoverInfoIndicator,spare)"; };
//7.7.88
type record RFSP_Index
{
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
LIN2_BO_LAST rFSPIndexValue (1..256)
} with { variant "PRESENCE( type_gtpc = 'BD'O)";
variant (lengthf) "LENGTHTO(rFSPIndexValue)"; };
//7.7.90
type record of FullyQualifiedDomainName FullyQualifiedDomainName_List;
type record FullyQualifiedDomainName
{
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
octetstring fQDN_Value
} with { variant "PRESENCE( type_gtpc = 'BE'O)";
variant (lengthf) "LENGTHTO(fQDN_Value)"; };
//7.7.91
type record EvolvedAllocationRetentionPriorityI
{
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT1 pVI,
BIT1 spare1,
integer pL,
BIT1 pCI,
BIT1 spare2
} with { variant "PRESENCE( type_gtpc = 'BF'O)";
variant (lengthf) "LENGTHTO(pVI,spare1,pL,pCI,spare2)";
variant (pL) "FIELDLENGTH(4)";};
//7.7.92
type record of EvolvedAllocationRetentionPriorityII EvolvedAllocationRetentionPriorityII_List
type record EvolvedAllocationRetentionPriorityII
{
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT4 nsapi,
BIT4 unused,
BIT1 pVI,
BIT1 spare1,
integer pL,
BIT1 pCI,
BIT1 spare2
} with { variant "PRESENCE( type_gtpc = 'C0'O)";
variant (lengthf) "LENGTHTO(nsapi,unused,pVI,spare1,pL,pCI,spare2)";
variant (pL) "FIELDLENGTH(4)";};
//7.7.93
type record ExtendedCommonFlags
{
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT1 unauthenticatedIMSI,
BIT1 cCRSI,
BIT1 cPSR,
BIT1 retLoc,
BIT1 vB,
BIT1 pCRI,
BIT1 bDWI,
BIT1 uASI
} with { variant "PRESENCE(type_gtpc = 'C1'O)";
variant (lengthf) "LENGTHTO(unauthenticatedIMSI,cCRSI,cPSR,retLoc,vB,pCRI,bDWI,uASI)";};
//7.7.94
type record UserCSGInformation
{
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
HEX1 mccDigit1,
HEX1 mccDigit2,
HEX1 mccDigit3,
HEX1 mncDigit3,
HEX1 mncDigit1,
HEX1 mncDigit2,
BIT5 spare1,
bitstring cSG_ID length(27), // "The coding ... is the responsibility of the operator..."
BIT1 cMI,
BIT5 spare2,
integer accessMode (0..3)
} with { variant "PRESENCE( type_gtpc = 'C2'O)";
variant (lengthf) "LENGTHTO(mccDigit1,mccDigit2,mccDigit3,mncDigit3,
mncDigit1,mncDigit2,spare1,cSG_ID,
cMI,spare2,accessMode)";
variant (spare1,cSG_ID) "FIELDORDER(msb)";
variant (cSG_ID) "FIELDLENGTH(27)";
variant (accessMode) "FIELDLENGTH(2)";
};
//7.7.95
type record CSGInfoReportingAction
{
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT1 uCCSG,
BIT1 uCSHC,
BIT1 uCUHC,
BIT5 spare
} with { variant "PRESENCE( type_gtpc = 'C3'O)";
variant (lengthf) "LENGTHTO(uCCSG,uCSHC,uCUHC,spare)";
};
//7.7.96
type record CSG_Id
{
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT5 spare,
bitstring cSG_ID length(27) // "The coding ... is the responsibility of the operator..."
} with { variant "PRESENCE(type_gtpc = 'C4'O)";
variant (lengthf) "LENGTHTO(spare,cSG_ID)";
variant (spare,cSG_ID) "FIELDORDER(msb)";
variant (cSG_ID) "FIELDLENGTH(27)";
};
//7.7.97
type record CSG_MembershipIndication
{
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT1 cMI_Value,
BIT7 spare
} with { variant "PRESENCE(type_gtpc = 'C5'O)";
variant (lengthf) "LENGTHTO(cMI_Value,spare)";
}
//7.7.98
type record APN_AMBR
{
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
LIN4_BO_LAST aPN_AMBR_Uplink,
LIN4_BO_LAST aPN_AMBR_Downlink
} with { variant "PRESENCE(type_gtpc = 'C6'O)";
variant (lengthf) "LENGTHTO(aPN_AMBR_Uplink,aPN_AMBR_Downlink)";
}
//7.7.99
type record UE_Network_Capability {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
octetstring ue_network_capability
} with {
variant "PRESENCE(type_gtpc = 'C7'O)";
variant (lengthf) "LENGTHTO(ue_network_capability)";
}
//7.7.100
type record UE_AMBR {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
LIN4_BO_LAST subscribed_ue_ambr_uplink,
LIN4_BO_LAST subscribed_ue_ambr_downlink,
LIN4_BO_LAST authorized_ue_ambr_uplink optional,
LIN4_BO_LAST authorized_ue_ambr_downlink optional
} with {
variant "PRESENCE(type_gtpc = 'C8'O)";
variant (lengthf) "LENGTHTO(subscribed_ue_ambr_uplink,subscribed_ue_ambr_downlink,authorized_ue_ambr_uplink,authorized_ue_ambr_downlink)";
}
//7.7.101
type record APN_AMBR_NSAPI {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf (9),
HEX1 nsapi,
HEX1 spare,
LIN4_BO_LAST authorized_apn_ambr_uplink,
LIN4_BO_LAST authorized_apn_ambr_downlink
} with {
variant "PRESENCE(type_gtpc = 'C9'O)";
variant (lengthf) "LENGTHTO(spare, nsapi,authorized_apn_ambr_uplink,authorized_apn_ambr_downlink)";
}
//7.7.102
type record GGSN_BackOffTime {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT5 timerValue,
BIT3 timerUnit,
octetstring explicitly_specified optional
} with {
variant "PRESENCE(type_gtpc = 'CA'O)";
variant (lengthf) "LENGTHTO(timerValue, timerUnit, explicitly_specified)";
}
//7.7.103
type record SignallingPriorityIndication {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT1 lapi,
BIT7 spare,
octetstring explicitly_specified optional
} with {
variant "PRESENCE(type_gtpc = 'CB'O)";
variant (lengthf) "LENGTHTO(lapi, spare, explicitly_specified)";
}
//7.7.104
type record SignallingPriorityIndication_NSAPI {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT1 nsapi,
BIT7 spare1,
BIT1 lapi,
BIT7 spare2,
octetstring explicitly_specified optional
} with {
variant "PRESENCE(type_gtpc = 'CC'O)";
variant (lengthf) "LENGTHTO(nsapi, spare1, lapi, spare2, explicitly_specified)";
}
//7.7.105
type record Higher_Bitrates_Than_16Mbps_Flag {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf (1),
LIN1 flag
} with {
variant "PRESENCE(type_gtpc = 'CD'O)";
variant (lengthf) "LENGTHTO(flag)";
}
//7.7.106
// (void)
//7.7.107
type record SRVCC_MM_Context {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
LIN1 mobile_station_classmark2_len,
octetstring mobile_station_classmark2,
LIN1 mobile_station_classmark3_len,
octetstring mobile_station_classmark3,
LIN1 supported_codec_list_len,
octetstring supported_codec_list,
octetstring explicitly_specified optional
} with {
variant "PRESENCE(type_gtpc = 'CF'O)";
variant (lengthf) "LENGTHTO(mobile_station_classmark2_len, mobile_station_classmark2,
mobile_station_classmark3_len, mobile_station_classmark3,
supported_codec_list_len, supported_codec_list,
explicitly_specified)";
variant (mobile_station_classmark2_len) "LENGTHTO(mobile_station_classmark2)";
variant (mobile_station_classmark3_len) "LENGTHTO(mobile_station_classmark3)";
variant (supported_codec_list_len) "LENGTHTO(supported_codec_list)";
}
//7.7.108
type record SRVCC_Flags {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT1 ics,
BIT7 spare,
octetstring explicitly_specified optional
} with {
variant "PRESENCE(type_gtpc = 'D0'O)";
variant (lengthf) "LENGTHTO(ics, spare, explicitly_specified)";
}
//7.7.109
type record STN_SR {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT1 nanpi,
Digits digits
} with {
variant "PRESENCE(type_gtpc = 'D1'O)";
variant (lengthf) "LENGTHTO(nanpi, digits)";
}
type record of HEX1 Digits;
//7.7.110
type record C_MSISDN {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
octetstring msisdn
} with {
variant "PRESENCE(type_gtpc = 'D2'O)";
variant (lengthf) "LENGTHTO(msisdn)";
}
//7.7.111
type record Extended_RANAP_Cause {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
integer extended_ranap_cause (1..512),
octetstring explicitly_specified optional
} with {
variant "PRESENCE(type_gtpc = 'D3'O)";
variant (lengthf) "LENGTHTO(extended_ranap_cause, explicitly_specified)";
variant (extended_ranap_cause) "FIELDLENGTH(16), COMP(nosign), BYTEORDER(last)"
}
//7.7.112
type record ENodeB_ID {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT1 eNodeB_type,
ENodeB_IDs eNodeB_ID
} with {
variant "PRESENCE(type_gtpc = 'D4'O)";
variant (lengthf) "LENGTHTO(eNodeB_type, eNodeB_ID)";
variant "CROSSTAG(macroENodeB_ID, eNodeB_type = '00'O;
homeENodeB_ID, eNodeB_type = '01'O;)"
}
type union ENodeB_IDs
{
HomeENodeB_ID homeENodeB_ID,
MacroENodeB_ID macroENodeB_ID
}
type record MacroENodeB_ID
{
HEX1 mcc1,
HEX1 mcc2,
HEX1 mcc3,
HEX1 mnc3,
HEX1 mnc1,
HEX1 mnc2,
BIT4 spare,
bitstring macroENodeB_ID length(20),
OCT2 tac
} with {
variant (spare,macroENodeB_ID) "FIELDORDER(msb)";
variant (macroENodeB_ID) "FIELDLENGTH(20)";
}
type record HomeENodeB_ID
{
HEX1 mcc1,
HEX1 mcc2,
HEX1 mcc3,
HEX1 mnc3,
HEX1 mnc1,
HEX1 mnc2,
BIT4 spare,
bitstring homeENodeB_ID length(28),
OCT2 tac
} with {
variant (spare,homeENodeB_ID) "FIELDORDER(msb)";
variant (homeENodeB_ID) "FIELDLENGTH(28)";
}
//7.7.113
type record SelectionMode_NSAPI {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT4 nsapi,
BIT4 spare1,
BIT2 selectionMode,
BIT6 spare2
} with {
variant "PRESENCE(type_gtpc = 'D5'O)";
variant (lengthf) "LENGTHTO(nsapi, spare1, selectionMode, spare2)";
}
//7.7.114
type record ULI_Timestamp {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
OCT4 uliTimestampValue,
octetstring explicitly_specified optional
} with {
variant "PRESENCE(type_gtpc = 'D6'O)";
variant (lengthf) "LENGTHTO(uliTimestampValue, explicitly_specified)";
}
//7.7.115
type record LHN_ID_NSAPI {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT4 nsapi,
BIT4 spare,
octetstring lHN_ID optional
} with {
variant "PRESENCE(type_gtpc = 'D7'O)";
variant (lengthf) "LENGTHTO(nsapi, spare, lHN_ID)";
}
//7.7.116
type record CN_OperatorSelectionEntity {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT2 selectionEntity,
BIT6 spare,
octetstring explicitly_specified optional
} with {
variant "PRESENCE(type_gtpc = 'D8'O)";
variant (lengthf) "LENGTHTO(selectionEntity, spare, explicitly_specified)";
}
//7.7.117
type record UE_UsageType {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
LIN4_BO_LAST uE_UsageTypeValue
} with {
variant "PRESENCE(type_gtpc = 'D9'O)";
variant (lengthf) "LENGTHTO(uE_UsageTypeValue)";
}
//7.7.118
type record ExtendedCommonFlagsII {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
BIT1 pnsi,
BIT1 dtci,
BIT6 spare,
octetstring explicitly_specified optional
} with {
variant "PRESENCE(type_gtpc = 'DA'O)";
variant (lengthf) "LENGTHTO(pnsi, dtci, spare, explicitly_specified)";
}
//7.7.119
type record NodeIdentifier {
OCT1 type_gtpc,
LIN2_BO_LAST lengthf,
octetstring nodeIdentifier
} with {
variant "PRESENCE(type_gtpc = 'DB'O)";
variant (lengthf) "LENGTHTO( nodeIdentifier)";
}
/////////////////////////////
// Message Type Values
// 7.1 Table 1
/////////////////////////////
type OCT1 MessageType_gtpc;
// 0 For future use. Shall not be sent. If received, shall be treated as an
// Unknown message
const MessageType_gtpc echoRequest := '01'O;
const MessageType_gtpc echoResponse := '02'O;
const MessageType_gtpc versionNotSupported := '03'O;
// 4 - 7: For GTP'
// 8 - 15 for future use. Shall not be sent.
// If received, shall be treated as an Unknown message
const MessageType_gtpc createPDPContextRequest := '10'O;
const MessageType_gtpc createPDPContextResponse := '11'O;
const MessageType_gtpc updatePDPContextRequest := '12'O;
const MessageType_gtpc updatePDPContextResponse := '13'O;
const MessageType_gtpc deletePDPContextRequest := '14'O;
const MessageType_gtpc deletePDPContextResponse := '15'O;
const MessageType_gtpc initiatePDPContextActivationRequest := '16'O;
const MessageType_gtpc initiatePDPContextActivationResponse := '17'O;
// 24 - 25 for future use.
// Shall not be sent. If received, shall be treated as an Unknown message
// 26 for GTP-U only
const MessageType_gtpc pduNotificationRequest := '1B'O;
const MessageType_gtpc pduNotificationResponse := '1C'O;
const MessageType_gtpc pduNotificationRejectRequest := '1D'O;
const MessageType_gtpc pduNotificationRejectResponse := '1E'O;
const MessageType_gtpc supportedExtHeadersNotification := '1F'O;
const MessageType_gtpc sendRoutingInfoForGPRSRequest := '20'O;
const MessageType_gtpc sendRoutingInfoForGPRSResponse := '21'O;
const MessageType_gtpc failureReportRequest := '22'O;
const MessageType_gtpc failureReportResponse := '23'O;
const MessageType_gtpc noteMS_GPRSPresentRequest := '24'O;
const MessageType_gtpc noteMS_GPRSPresentResponse := '25'O;
// 38 - 47 for future use. Shall not be sent.
// If received, shall be treated as an Unknown message
const MessageType_gtpc identificationRequest := '30'O;
const MessageType_gtpc identificationResponse := '31'O;
const MessageType_gtpc sgsnContextRequest := '32'O;
const MessageType_gtpc sgsnContextResponse := '33'O;
const MessageType_gtpc sgsnContextAcknowledge := '34'O;
const MessageType_gtpc forwardRelocationRequest := '35'O;
const MessageType_gtpc forwardRelocationResponse := '36'O;
const MessageType_gtpc forwardRelocationComplete := '37'O;
const MessageType_gtpc relocationCancelRequest := '38'O;
const MessageType_gtpc relocationCancelResponse := '39'O;
const MessageType_gtpc forwardSRNSContext := '3A'O;
const MessageType_gtpc forwardRelocationCompleteAcknowledge := '3B'O;
const MessageType_gtpc forwardSRNSContextAcknowledge := '3C'O;
const MessageType_gtpc ueRegistrationQueryRequest := '3D'O;
const MessageType_gtpc ueRegistrationQueryResponse := '3E'O;
// 63 - 69 for future use. Shall not be sent. If received, shall be treated as
// an Unknown message
const MessageType_gtpc rANInformationRelay := '46'O;
// 71 -95 for future use. Shall not be sent. If received, shall be treated as
// an Unknown message
const MessageType_gtpc mBMSNotificationRequest := '60'O;
const MessageType_gtpc mBMSNotificationResponse := '61'O;
const MessageType_gtpc mBMSNotificationRejectRequest := '62'O;
const MessageType_gtpc mBMSNotificationRejectResponse := '63'O;
const MessageType_gtpc createMBMSContextRequest := '64'O;
const MessageType_gtpc createMBMSContextResponse := '65'O;
const MessageType_gtpc updateMBMSContextRequest := '66'O;
const MessageType_gtpc updateMBMSContextResponse := '67'O;
const MessageType_gtpc deleteMBMSContextRequest := '68'O;
const MessageType_gtpc deleteMBMSContextResponse := '69'O;
// 106-111 for future use. Shall not be sent. If received, shall be treated as
// an Unknown message
const MessageType_gtpc mBMSRegistrationRequest := '70'O;
const MessageType_gtpc mBMSRegistrationResponse := '71'O;
const MessageType_gtpc mBMSDeRegistrationRequest := '72'O;
const MessageType_gtpc mBMSDeRegistrationResponse := '73'O;
const MessageType_gtpc mBMSSessionStartRequest := '74'O;
const MessageType_gtpc mBMSSessionStartResponse := '75'O;
const MessageType_gtpc mBMSSessionStopRequest := '76'O;
const MessageType_gtpc mBMSSessionStopResponse := '77'O;
const MessageType_gtpc mBMSSessionUpdateRequest := '78'O;
const MessageType_gtpc mBMSSessionUpdateResponse := '79'O;
// 122 - 127 for future use. Shall not be sent.
// If received, shall be treated as an Unknown message
const MessageType_gtpc mS_InfoChangeNotificationRequest := '80'O;
const MessageType_gtpc mS_InfoChangeNotificationResponse := '81'O
// 130 - 239 for future use. Shall not be sent.
// If received, shall be treated as an Unknown message
// 240 - 241 not used in GTP-C
// 242 - 254 for future use. Shall not be sent.
// If received, shall be treated as an Unknown message
// 255 not used in GTP-C
const MessageType_gtpc g_PDU := 'FF'O;
/////////////////////////////
// GTP-C messages
/////////////////////////////
// Echo Request - 7.2.1
type record EchoRequest {
PrivateExtension_gtpc_List private_extension_gtpc optional
}
// Echo Response - 7.2.2
type record EchoResponse {
Recovery_gtpc recovery,
PrivateExtension_gtpc_List private_extension_gtpc optional
}
// Version Not Supported - 7.2.3
type record VersionNotSupported {
};
// Supported Extension Headers Notification - 7.2.4
type record SupportedExtensionHeadersNotification {
ExtensionHeaderTypeList_gtpc extensionHeaderTypeList
} with {variant ""};
// Create PDP Context Request - 7.3.1
type record CreatePDPContextRequest {
IMSI_gtpc imsi optional,
RoutingAreaIdentity rai optional,
Recovery_gtpc recovery optional,
SelectionMode selectionMode optional,
TeidDataI teidDataI,
TeidControlPlane teidControlPlane optional,
NSAPI_GTPC nsapi,
NSAPI_GTPC linked_nsapi optional,
ChargingCharacteristics_GTPC charging_char optional,
TraceRef trace_ref optional,
GTP_TraceType trace_type optional,
EndUserAddress endUserAddress optional,
AccessPointName accessPointName optional,
ProtConfigOptions protConfigOptions optional,
GSN_Address_GTPC sgsn_addr_signalling,
GSN_Address_GTPC sgsn_addr_traffic,
MSISDN msisdn optional,
QualityOfServiceProfile qualityOfServiceProfile,
TrafficFlowTemplate tft optional,
GTP_TriggerID triggerId optional,
OMCIdentity omcId optional,
CommonFlags commonFlags optional,
APN_Restriction aPN_Restriction optional,
RATType ratType optional,
UserLocationInformation userLocationInformation optional,
MS_TimeZone mS_TimeZone optional,
IMEISV_gtpc imeisv optional,
CamelChargingInformationContainer camelChargingInformationContainer optional,
AdditionalTraceInfo additionalTraceInfo optional,
CorrelationID correlationID optional,
EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional,
ExtendedCommonFlags extendedCommonFlags optional,
UserCSGInformation userCSGInformation optional,
APN_AMBR aPN_AMBR optional,
SignallingPriorityIndication signallingPriorityIndication optional,
CN_OperatorSelectionEntity cN_OperatorSelectionEntity optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
// Create PDP Context Response - 7.3.2
type record CreatePDPContextResponse {
Cause_gtpc cause,
ReorderingRequired reorderingRequired optional,
Recovery_gtpc recovery optional,
TeidDataI teidDataI optional,
TeidControlPlane teidControlPlane optional,
NSAPI_GTPC nsapi optional,
ChargingID chargingID optional,
EndUserAddress endUserAddress optional,
ProtConfigOptions protConfigOptions optional,
GSN_Address_GTPC ggsn_addr_controlPlane optional,
GSN_Address_GTPC ggsn_addr_traffic optional,
GSN_Address_GTPC alt_ggsn_addr_controlPane optional,
GSN_Address_GTPC alt_ggsn_addr_traffic optional,
QualityOfServiceProfile qualityOfServiceProfile optional,
CommonFlags commonFlags optional,
APN_Restriction aPN_Restriction optional,
MS_InfoChangeReportingAction mS_InfoChangeReportingAction optional,
BearerControlMode bearerControlMode optional,
EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional,
ExtendedCommonFlags extendedCommonFlag optional,
CSGInfoReportingAction csg_information_reporting_action optional,
APN_AMBR aPN_AMBR optional,
GGSN_BackOffTime gGSN_BackOffTime optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
// Update PDP Context Request - 7.3.3
type union UpdatePDPContextRequest {
UpdatePDPContextRequestSGSN updatePDPContextRequestSGSN,
UpdatePDPContextRequestGGSN updatePDPContextRequestGGSN,
UpdatePDPContextRequestCGW updatePDPContextRequestCGW
};
//from SGSN
type record UpdatePDPContextRequestSGSN {
IMSI_gtpc imsi optional,
RoutingAreaIdentity rai optional,
Recovery_gtpc recovery optional,
TeidDataI teidDataI,
TeidControlPlane teidControlPlane optional,
NSAPI_GTPC nsapi,
TraceRef trace_ref optional,
GTP_TraceType trace_type optional,
ProtConfigOptions protConfigOptions optional,
GSN_Address_GTPC sgsn_addr_controlPlane,
GSN_Address_GTPC sgsn_addr_traffic,
GSN_Address_GTPC alt_ggsn_addr_controlPane optional,
GSN_Address_GTPC alt_ggsn_addr_traffic optional,
QualityOfServiceProfile qualityOfServiceProfile,
TrafficFlowTemplate tft optional,
GTP_TriggerID triggerId optional,
OMCIdentity omcId optional,
CommonFlags commonFlags optional,
RATType ratType optional,
UserLocationInformation userLocationInformation optional,
MS_TimeZone mS_TimeZone optional,
AdditionalTraceInfo additionalTraceInfo optional,
DirectTunnelFlags directTunnelFlags optional,
EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional,
ExtendedCommonFlags extendedCommonFlags optional,
UserCSGInformation userCSGInformation optional,
APN_AMBR aPN_AMBR optional,
SignallingPriorityIndication signallingPriorityIndication optional,
CN_OperatorSelectionEntity cN_OperatorSelectionEntity optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
//from GGSN
type record UpdatePDPContextRequestGGSN {
IMSI_gtpc imsi optional,
Recovery_gtpc recovery optional,
NSAPI_GTPC nsapi,
EndUserAddress endUserAddress optional,
ProtConfigOptions protConfigOptions optional,
QualityOfServiceProfile qualityOfServiceProfile optional,
TrafficFlowTemplate tft optional,
CommonFlags commonFlags optional,
APN_Restriction aPN_Restriction optional,
MS_InfoChangeReportingAction mS_InfoChangeReportingAction optional,
DirectTunnelFlags directTunnelFlags optional,
BearerControlMode bearerControlMode optional,
EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional,
ExtendedCommonFlags extendedCommonFlags optional,
CSGInfoReportingAction cSGInfoReportingAction optional,
APN_AMBR aPN_AMBR optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
//from CGW
type record UpdatePDPContextRequestCGW {
IMSI_gtpc imsi optional,
Recovery_gtpc recovery optional,
NSAPI_GTPC nsapi,
EndUserAddress endUserAddress optional,
ProtConfigOptions protConfigOptions optional,
QualityOfServiceProfile qualityOfServiceProfile optional,
TrafficFlowTemplate tft optional,
CommonFlags commonFlags optional,
APN_Restriction aPN_Restriction optional,
MS_InfoChangeReportingAction mS_InfoChangeReportingAction optional,
DirectTunnelFlags directTunnelFlags optional,
BearerControlMode bearerControlMode optional,
EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional,
CSGInfoReportingAction cSGInfoReportingAction optional,
APN_AMBR aPN_AMBR optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
// Update PDP Context Response - 7.3.4
type union UpdatePDPContextResponse {
UpdatePDPContextResponseSGSN updatePDPContextResponseSGSN,
UpdatePDPContextResponseGGSN updatePDPContextResponseGGSN,
UpdatePDPContextResponseCGW updatePDPContextResponseCGW
};
//from GGSN
type record UpdatePDPContextResponseGGSN {
Cause_gtpc cause,
Recovery_gtpc recovery optional,
TeidDataI teidDataI optional,
TeidControlPlane teidControlPlane optional,
ChargingID chargingID optional,
ProtConfigOptions protConfigOptions optional,
GSN_Address_GTPC ggsn_addr_controlPlane optional,
GSN_Address_GTPC ggsn_addr_traffic optional,
GSN_Address_GTPC alt_ggsn_addr_controlPane optional,
GSN_Address_GTPC alt_ggsn_addr_traffic optional,
QualityOfServiceProfile qualityOfServiceProfile optional,
CommonFlags commonFlags optional,
APN_Restriction aPN_Restriction optional,
MS_InfoChangeReportingAction mS_InfoChangeReportingAction optional,
BearerControlMode bearerControlMode optional,
EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional,
CSGInfoReportingAction csg_information_reporting_action optional,
APN_AMBR aPN_AMBR optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
//from CGW
type record UpdatePDPContextResponseCGW {
Cause_gtpc cause,
Recovery_gtpc recovery optional,
TeidDataI teidDataI optional,
TeidControlPlane teidControlPlane optional,
ChargingID chargingID optional,
ProtConfigOptions protConfigOptions optional,
GSN_Address_GTPC ggsn_addr_controlPlane optional,
GSN_Address_GTPC ggsn_addr_traffic optional,
GSN_Address_GTPC alt_ggsn_addr_controlPane optional,
GSN_Address_GTPC alt_ggsn_addr_traffic optional,
QualityOfServiceProfile qualityOfServiceProfile optional,
CommonFlags commonFlags optional,
APN_Restriction aPN_Restriction optional,
MS_InfoChangeReportingAction mS_InfoChangeReportingAction optional,
BearerControlMode bearerControlMode optional,
EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional,
APN_AMBR aPN_AMBR optional,
ChargingGatewayAddress chargingGatewayAddress optional,
ChargingGatewayAddress alt_chargingGatewayAddress optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
//from SGSN
type record UpdatePDPContextResponseSGSN {
Cause_gtpc cause,
Recovery_gtpc recovery optional,
TeidDataI teidDataI optional,
ProtConfigOptions protConfigOptions optional,
GSN_Address_GTPC sgsn_addr_traffic optional,
QualityOfServiceProfile qualityOfServiceProfile optional,
UserLocationInformation userLocationInformation optional,
MS_TimeZone mS_TimeZone optional,
DirectTunnelFlags directTunnelFlags optional,
EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional,
APN_AMBR aPN_AMBR optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
// Delete PDP Context Request - 7.3.5
type record DeletePDPContextRequest {
Cause_gtpc cause optional,
TearDownInd tearDownIndicator optional,
NSAPI_GTPC nsapi,
ProtConfigOptions protConfigOptions optional,
UserLocationInformation userLocationInformation optional,
MS_TimeZone mS_TimeZone optional,
ExtendedCommonFlags extendedCommonFlags optional,
ULI_Timestamp uLI_Timestamp optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
// Delete PDP Context Response - 7.3.6
type record DeletePDPContextResponse {
Cause_gtpc cause,
ProtConfigOptions protConfigOptions optional,
UserLocationInformation userLocationInformation optional,
MS_TimeZone mS_TimeZone optional,
ULI_Timestamp uLI_Timestamp optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
// PDU Notification Request - 7.3.8
type record PDU_NotificationRequest {
IMSI_gtpc imsi,
TeidControlPlane teidControlPlane,
EndUserAddress endUserAddress,
AccessPointName accessPointName,
ProtConfigOptions protConfigOptions optional,
GSN_Address_GTPC ggsn_addr_controlPlane,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
// PDU Notification Response - 7.3.9
type record PDU_NotificationResponse {
Cause_gtpc cause,
PrivateExtension_gtpc_List private_extension_gtpc optional
}
// PDU Notification Reject Request - 7.3.10
type record PDU_NotificationRejectRequest {
Cause_gtpc cause,
TeidControlPlane teidControlPlane,
EndUserAddress endUserAddress,
AccessPointName accessPointName,
ProtConfigOptions protConfigOptions optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
// PDU Notification Reject Response - 7.3.11
type record PDU_NotificationRejectResponse {
Cause_gtpc cause,
PrivateExtension_gtpc_List private_extension_gtpc optional
}
// Initiate PDP Context Activation Request 7.3.12
type record InitiatePDPContextActivationRequest
{
NSAPI_GTPC linkedNSAPI,
ProtConfigOptions protConfigOptions optional,
QualityOfServiceProfile qualityOfServiceProfile,
TrafficFlowTemplate tft optional,
CorrelationID correlationID,
EvolvedAllocationRetentionPriorityI evolvedAllocationRetentionPriorityI optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
// Initiate PDP Context Activation Response 7.3.13
type record InitiatePDPContextActivationResponse
{
Cause_gtpc cause,
ProtConfigOptions protConfigOptions optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
// Send Routeing Information for GPRS Request - 7.4.1
type record SendRouteingInformationForGPRSRequest {
IMSI_gtpc imsi,
PrivateExtension_gtpc_List private_extension_gtpc optional
}
// Send Routeing Information for GPRS Response - 7.4.2
type record SendRouteingInformationForGPRSResponse {
Cause_gtpc cause,
IMSI_gtpc imsi,
MAP_Cause map_Cause optional,
MSNotReachableReason mS_not_ReachableReason optional,
GSN_Address_GTPC gsn_Address optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
// Failure Report Request - 7.4.3
type record FailureReportRequest {
IMSI_gtpc imsi,
PrivateExtension_gtpc_List private_extension_gtpc optional
}
// Failure Report Response - 7.4.4
type record FailureReportResponse {
Cause_gtpc cause,
MAP_Cause map_Cause optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
// Note MS GPRS Present Request - 7.4.5
type record NoteMS_GPRSPresentRequest {
IMSI_gtpc imsi,
GSN_Address_GTPC gsn_Address,
PrivateExtension_gtpc_List private_extension_gtpc optional
}
// Note MS GPRS Present Response - 7.4.6
type record NoteMS_GPRSPresentResponse {
Cause_gtpc cause,
PrivateExtension_gtpc_List private_extension_gtpc optional
}
// Identification Request - 7.5.1
type record IdentificationRequest {
RoutingAreaIdentity routingAreaIdentity,
PacketTMSI packetTMSI,
PTMSI_Signature ptmsi_Signature optional,
GSN_Address_GTPC sgsn_addr_controlPlane optional,
HopCounter_gtpc hopCounter optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
// Identification Response - 7.5.2
type record IdentificationResponse {
Cause_gtpc cause,
IMSI_gtpc imsi optional,
AuthenticationTriplet_GTPC_SetOf authenticationTriplet optional,
AuthenticationQuintuplet_GTPC authenticationQuintuplet optional,
AuthenticationQuintuplet_GTPC authenticationQuintuplet2 optional,
AuthenticationQuintuplet_GTPC authenticationQuintuplet3 optional,
AuthenticationQuintuplet_GTPC authenticationQuintuplet4 optional,
AuthenticationQuintuplet_GTPC authenticationQuintuplet5 optional,
UE_UsageType uE_UsageType optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
// SGSN Context Request - 7.5.3
type record SGSN_ContextRequest {
IMSI_gtpc imsi optional,
RoutingAreaIdentity routingAreaIdentity ,
TLLI tlli optional,
PacketTMSI packetTMSI optional,
PTMSI_Signature ptmsi_Signature optional,
MS_Validated ms_Validated optional,
TeidControlPlane teidControlPlane,
GSN_Address_GTPC sgsn_addr_controlPlane,
GSN_Address_GTPC alternative_sgsn_addr_controlPlane optional,
SGSN_Number sGSN_Number optional,
RATType ratType optional,
HopCounter_gtpc hopCounter optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
// SGSN Context Response - 7.5.4
type record SGSN_ContextResponse
{
Cause_gtpc cause,
IMSI_gtpc imsi optional,
TeidControlPlane teidControlPlane optional,
RABContext_List rabContext optional,
RadioPrioritySMS radioPrioritySMS optional,
RadioPriority_List radioPriority optional,
PacketFlowID_List packetFlowID optional,
ChargingCharacteristics_List_GTPC charging_char optional,
MM_Context mm_Context optional,
PDP_Context_GTPC_List pdp_Context optional,
GSN_Address_GTPC sgsn_addr_controlPlane optional,
PDPContextPriorization pdpContextPriorization optional,
RadioPriorityLCS radioPriority_LCS optional,
MBMS_UE_Context_List mBMS_UE_Context optional,
RFSP_Index subscribedRFSP_Index optional,
RFSP_Index rFSP_IndexInUse optional,
FullyQualifiedDomainName_List colocatedGGSN_PGW_FQDN optional,
EvolvedAllocationRetentionPriorityII_List evolvedAllocationRetentionPriorityII optional,
ExtendedCommonFlags extendedCommonFlags optional,
UE_Network_Capability ue_network_capability optional,
UE_AMBR ue_ambr optional,
APN_AMBR_NSAPI apn_ambr_nsapi optional,
SignallingPriorityIndication_NSAPI signallingPriorityIndication_nsapi optional,
Higher_Bitrates_Than_16Mbps_Flag higher_bitrates_than_16mbps_flag optional,
SelectionMode_NSAPI selectionMode_nsapi optional,
LHN_ID_NSAPI localHomeNetworkID_nsapi optional,
UE_UsageType uE_UsageType optional,
ExtendedCommonFlagsII extendedCommonFlagsII optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
// SGSN Context Acknowledge - 7.5.5
type record SGSN_ContextAcknowledge {
Cause_gtpc cause,
TeidDataII_List teidDataII optional,
GSN_Address_GTPC sgsn_AddressForUserTraffic optional,
SGSN_Number sgsn_Number optional,
NodeIdentifier nodeIdentifier optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
// Forward Relocation Request - 7.5.6
type record ForwardRelocationRequest {
IMSI_gtpc imsi optional,
TeidControlPlane teidControlPlane,
RANAPCause ranapCause,
PacketFlowID_List packetFlowID optional,
ChargingCharacteristics_List_GTPC charging_char optional,
MM_Context mmContext,
PDP_Context_GTPC_List pdpContext optional,
GSN_Address_GTPC sgsn_addr_controlPlane,
TargetIdentification targetId,
UTRANTransparentContainer transpContainer,
PDPContextPriorization pdpContextPriorization optional,
MBMS_UE_Context_List mBMS_UE_Context optional,
Selected_PLMN_ID selected_PLMN_ID optional,
BSS_Container bSS_Container optional,
Cell_Identification_gtpc cell_Identification optional,
BSSGP_Cause_gtpc bSSGP_Cause_gtpc optional,
PS_HandoverXIDParameters_List pS_HandoverXIDParameters optional,
DirectTunnelFlags directTunnelFlags optional,
ReliableInterRATHandoverInfo reliableInterRATHandoverInfo optional,
RFSP_Index subscribedRFSP_Index optional,
RFSP_Index rFSP_IndexInUse optional,
FullyQualifiedDomainName_List colocatedGGSN_PGW_FQDN optional,
EvolvedAllocationRetentionPriorityII_List evolvedAllocationRetentionPriorityII optional,
ExtendedCommonFlags extendedCommonFlags optional,
CSG_Id cSG_Id optional,
CSG_MembershipIndication cSG_MembershipIndication optional,
UE_Network_Capability ue_network_capability optional,
UE_AMBR ue_ambr optional,
APN_AMBR_NSAPI apn_ambr_nsapi optional,
SignallingPriorityIndication_NSAPI signallingPriorityIndication_nsapi optional,
Higher_Bitrates_Than_16Mbps_Flag higher_bitrates_than_16mbps_flag optional,
SRVCC_MM_Context srvcc_mm_context optional,
SRVCC_Flags srvcc_flags optional,
STN_SR stn_sr optional,
C_MSISDN c_msisdn optional,
Extended_RANAP_Cause extended_ranap_cause optional,
ENodeB_ID eNodeB_ID optional,
SelectionMode_NSAPI selectionMode_nsapi optional,
UE_UsageType uE_UsageType optional,
ExtendedCommonFlagsII extendedCommonFlagsII optional,
PrivateExtension_gtpc_List private_extension_gtpc optional //to be compatible with GTP 9.11.0
};
// Forward Relocation Response - 7.5.7
type record ForwardRelocationResponse {
Cause_gtpc cause,
TeidControlPlane teidControlPlane optional,
TeidDataII_List teidDataII optional,
RANAPCause ranapCause optional,
GSN_Address_GTPC sgsn_addr_controlPlane optional,
GSN_Address_GTPC sgsn_addr_traffic optional,
UTRANTransparentContainer transpContainer optional,
RABSetupInformation_List rabSetupInfo optional,
AdditionalRABSetupInformation_List additionalRABSetupInfo optional,
SGSN_Number sGSN_Number optional,
BSS_Container bSS_Container optional,
BSSGP_Cause_gtpc bSSGP_Cause_gtpc optional,
ListOfSetupPFCs_gtpc listOfSetupPFCs_gtpc optional,
Extended_RANAP_Cause extended_ranap_cause optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
// Forward Relocation Complete - 7.5.8
type record ForwardRelocationComplete {
PrivateExtension_gtpc_List private_extension_gtpc optional
}
// Relocation Cancel Request - 7.5.9
type record RelocationCancelRequest {
IMSI_gtpc imsi optional,
IMEISV_gtpc imeisv_gtpc optional,
ExtendedCommonFlags extended_common_flags optional,
Extended_RANAP_Cause extended_ranap_cause optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
}
// Relocation Cancel Response - 7.5.10
type record RelocationCancelResponse {
Cause_gtpc cause,
PrivateExtension_gtpc_List private_extension_gtpc optional
}
// Forward Relocation Complete Acknowledge - 7.5.11
type record ForwardRelocationCompleteAcknowledge {
Cause_gtpc cause,
PrivateExtension_gtpc_List private_extension_gtpc optional
}
// 60 Forward SRNS Context Acknowledge - 7.5.12
type record ForwardSRNSContextAcknowledge {
Cause_gtpc cause,
PrivateExtension_gtpc_List private_extension_gtpc optional
}
// Forward SRNS Context - 7.5.13
type record ForwardSRNSContext {
RABContext_List rabContext,
SourceRNC_PDCP_ContextInfo sourceRNC_PDCP_ContextInfo optional,
PDU_Numbers_List pDU_Numbers optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
// RAN InformationRelay - 7.5.14.1
type record RANInformationRelay{
RANTransparentContainer transparentContainer,
RIM_RoutingAddress rIM_RoutingAddress optional,
RIM_RoutingAddress_Discriminator rIM_RoutingAddress_Discriminator optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
// UE Registration Query Request - 7.5.15
type record UERegistrationQueryRequest {
IMSI_gtpc imsi,
PrivateExtension_gtpc_List private_extension_gtpc optional
}
// UE Registration Query Response - 7.5.16
type record UERegistrationQueryResponse {
Cause_gtpc cause,
IMSI_gtpc imsi,
Selected_PLMN_ID selected_PLMN_ID optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
}
// MBMS Notification Request - 7.5A.1.1
type record MBMSNotificationRequest
{
IMSI_gtpc imsi,
TeidControlPlane teidControlPlane,
NSAPI_GTPC nsapi,
EndUserAddress endUserAddress,
AccessPointName accessPointName,
GSN_Address_GTPC ggsn_addr_controlPlane,
MBMS_ProtocolConfigurationOptions mBMS_ProtocolConfigurationOptions optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
// MBMS Notification Response - 7.5A.1.2
type record MBMSNotificationResponse
{
Cause_gtpc cause,
PrivateExtension_gtpc_List private_extension_gtpc optional
}
// MBMS Notification Reject Request - 7.5A.1.3
type record MBMSNotificationRejectRequest
{
Cause_gtpc cause,
TeidControlPlane teidControlPlane,
NSAPI_GTPC nsapi,
EndUserAddress endUserAddress,
AccessPointName accessPointName,
GSN_Address_GTPC sgsn_addr_controlPlane optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
// MBMS Notification Reject Response - 7.5A.1.4
type record MBMSNotificationRejectResponse
{
Cause_gtpc cause,
PrivateExtension_gtpc_List private_extension_gtpc optional
}
// Create MBMS Context Request - 7.5A.1.5
type record CreateMBMSContextRequest
{
IMSI_gtpc imsi optional,
RoutingAreaIdentity rai,
Recovery_gtpc recovery optional,
SelectionMode selectionMode optional,
TeidControlPlane teidControlPlane optional,
TraceRef trace_ref optional,
GTP_TraceType trace_type optional,
EndUserAddress endUserAddress,
AccessPointName accessPointName,
GSN_Address_GTPC sGSNAddressForSignalling,
MSISDN msisdn optional,
GTP_TriggerID triggerId optional,
OMCIdentity omcId optional,
RATType ratType optional,
UserLocationInformation userLocationInformation optional,
MS_TimeZone mS_TimeZone optional,
IMEISV_gtpc imeisv optional,
MBMS_ProtocolConfigurationOptions mBMS_ProtocolConfigurationOptions optional,
AdditionalTraceInfo additionalTraceInfo optional,
Enhanced_NSAPI enhanced_NSAPI,
AdditionalMBMSTraceInfo additionalMBMSTraceInfo optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
// Create MBMS Context Response - 7.5A.1.6
type record CreateMBMSContextResponse
{
Cause_gtpc cause,
Recovery_gtpc recovery optional,
TeidControlPlane teidControlPlane optional,
ChargingID chargingID optional,
GSN_Address_GTPC ggsn_addr_controlPlane optional,
GSN_Address_GTPC alternative_ggsn_addr_controlPlane optional,
MBMS_ProtocolConfigurationOptions mBMS_ProtocolConfigurationOptions optional,
ChargingGatewayAddress chargingGatewayAddress optional,
ChargingGatewayAddress alt_chargingGatewayAddress optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
// Update MBMS Context Request - 7.5A.1.7
type record UpdateMBMSContextRequest
{
RoutingAreaIdentity rai,
Recovery_gtpc recovery optional,
TeidControlPlane teidControlPlane optional,
TraceRef trace_ref optional,
GTP_TraceType trace_type optional,
GSN_Address_GTPC sgsn_addr_controlPlane,
GSN_Address_GTPC alternative_sgsn_addr_controlPlane optional,
GTP_TriggerID triggerId optional,
OMCIdentity omcId optional,
RATType ratType optional,
UserLocationInformation userLocationInformation optional,
MS_TimeZone mS_TimeZone optional,
AdditionalTraceInfo additionalTraceInfo optional,
Enhanced_NSAPI enhanced_NSAPI,
AdditionalMBMSTraceInfo additionalMBMSTraceInfo optional,
PrivateExtension_gtpc_List private_extension_gtpc optional
};
// Update MBMS Context Response - 7.5A.1.8
type record UpdateMBMSContextResponse
{
Cause_gtpc cause,
Recovery_gtpc recovery optional,
TeidControlPlane teidControlPlane optional,
ChargingID chargingID optional,