blob: cf0ce6e519ed294281268c4df586528f574d323e [file] [log] [blame]
///////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2000-2018 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: GTPv2_Test.ttcn
// Description: GTPv2 15.2.0 protocol module example test
// Rev: <RnXnn>
// Prodnr: CNL 113 870
// Contact: http://ttcn.ericsson.se
///////////////////////////////////////////////////////////////////////////////
module GTPv2_Test
{
import from GTPv2_Types all;
type component ct_GTPv2{}
template PDU_GTPCv2 t_pdu_gtpcv2 (octetstring pl_messageType,GTPCv2_PDUs pl_pdu) :={
spare := '00'B,
mp_Bit_or_Spare := '1'B,
t_Bit := '0'B,
p_Bit := '0'B,
version := '010'B,
messageType := pl_messageType,
lengthf := 0,
tEID := omit,
sequenceNumber := '000000'O,
spare3 := '0000'B, // 0
messagePriorityOrSpare := '0001'B,
gtpcv2_pdu := pl_pdu,
piggybackPDU_GTPCv2 := omit
}
//Echo Request, Echo Response and Version Not Supported Indication messages
template PDU_GTPCv2 t_pdu_gtpcv2_2 (octetstring pl_messageType,GTPCv2_PDUs pl_pdu) modifies t_pdu_gtpcv2:={
mp_Bit_or_Spare := '0'B,
messageType := pl_messageType,
lengthf := 0,
messagePriorityOrSpare := '0000'B,
gtpcv2_pdu := pl_pdu
}
template PDU_GTPCv2 t_m_pdu_gtpcv2 (octetstring pl_messageType,GTPCv2_PDUs pl_pdu) modifies t_pdu_gtpcv2 := {
lengthf := ?
}
template PDU_GTPCv2 t_m_pdu_gtpcv2_2 (octetstring pl_messageType,GTPCv2_PDUs pl_pdu) modifies t_pdu_gtpcv2_2 := {
lengthf := ?
}
template AccessPointName t_accessPointName := {
elementIdentifier := '47'O,
lengthIndicator := 4,
instance := '0000'B,
spare := '0000'B,
aPN_Value := 'AAAAAAAA'O
}
template AggregateMaximumBitRate t_ambr := {
elementIdentifier := '48'O,
lengthIndicator := 8,
instance := '0000'B,
spare := '0000'B,
aPN_AMBR_for_uplink := 'AAAAAAAA'O,
aPN_AMBR_for_downlink := 'BBBBBBBB'O
}
template Cause t_cause := {
elementIdentifier := '02'O,
lengthIndicator := 2,
instance := '0000'B,
spare := '0000'B,
causeValue := '02'O,
cS := '1'B,
bCE := '1'B,
pCE := '1'B,
spare2 := '11111'B,
typeOfOffendingIE := omit,
lengthIndicator2 := omit,
instanceOfOffendingIE := omit,
spare3 := omit
};
template RAN_NASCause t_RAN_NASCause1 := {
elementIdentifier := 'AC'O,
lengthIndicator := 2,
instance := '0000'B,
spare := '0000'B,
causeType := '0001'B,
protocolType := '0001'B,
causeValue := 'AA'O,
additionalOctets := omit
}
template RAN_NASCause t_RAN_NASCause2 modifies t_RAN_NASCause1 := {
causeValue := 'BB'O
}
template BearerContextGrouped t_m_bearerContextGrouped (
template Cause pl_cause := t_cause,
template RAN_NASCause pl_RAN_NASCause1 := t_RAN_NASCause1,
template RAN_NASCause pl_RAN_NASCause2 := t_RAN_NASCause2)
modifies t_bearerContextGrouped:= {
lengthIndicator := 18,
bearerContextIEs :=
{
rAN_NASCause := {pl_RAN_NASCause1,pl_RAN_NASCause2}
}
}
template BearerContextGrouped t_bearerContextGrouped (template Cause pl_cause := t_cause):= {
elementIdentifier := '5D'O,
lengthIndicator := 6,
instance := '0000'B,
spare := '0000'B,
bearerContextIEs :=
{
ePS_Bearer_ID := omit,
cause := pl_cause,
ePS_Bearer_TFT := omit,
fullyQualifiedTEID := omit,
bearerLevel_QoS := omit,
chargingID := omit,
bearerFlags := omit,
transactionIdentifier := omit,
protocolConfigOptions := omit,
rAN_NASCause := omit,
additionalProtocolConfigOptions := omit,
extendedProtocolConfigOptions := omit
}
}
template CNOperatorSelectionEntity t_cNOperatorSelectionEntity := {
elementIdentifier := 'AD'O,
lengthIndicator := 1,
instance := '0000'B,
spare := '0000'B,
selectionEntity := '01'B,
spare2 := '000000'B,
additionalOctets := omit
}
template EPC_Timer t_ePCTimer := {
elementIdentifier := '9C'O,
lengthIndicator := 1,
instance := '1111'B,
spare := '0000'B,
timerValue := 2,
timerUnit := '111'B,
additionalOctets := omit
}
template EPS_BearerID t_ePS_BearerID := {
elementIdentifier := '49'O,
lengthIndicator := 1,
instance := '1111'B,
spare := '0000'B,
ePS_Bearer_ID_Value := 4,
spare2 := '0000'B,
additionalOctets := omit
}
template FullyQualifiedTEID t_fullyQualifiedTEID:= {
elementIdentifier := '57'O,
lengthIndicator := 9,
instance := '0000'B,
spare := '0000'B,
interfaceType := 24,
v6_Flag := '0'B,
v4_Flag := '1'B,
tEID_GRE_Key := '00000003'O,
iPv4_Address := '1F801238'O,
iPv6_Address := omit,
additionalOctets := omit
}
template IMSI t_iMSI := {
elementIdentifier := '01'O,
lengthIndicator := 8,
instance := '0000'B,
spare := '0000'B,
iMSI_Value := '12345678901234F5'H
}
template Indication t_indicationFlags := {
elementIdentifier := '4D'O,
lengthIndicator := 7,
instance := '0000'B,
spare := '0000'B,
sGWCI := '1'B,
iSRAI := '1'B,
iSRSI := '1'B,
oI := '1'B,
dFI := '1'B,
hI := '1'B,
dTF := '1'B,
dAF := '1'B,
mSV := '1'B,
sI := '1'B,
pT := '1'B,
pBit := '1'B,
cRSI := '1'B,
cFSI := '1'B,
uIMSI := '1'B,
sQCI := '1'B,
cCRSI := '1'B,
iSRAU := '1'B,
mBMDT := '1'B,
s4AF := '1'B,
s6AF := '1'B,
sRNI := '1'B,
pBIC := '1'B,
retLoc := '1'B,
cPSR := '1'B,
cLII := '1'B,
cSFBI := '1'B,
pPSI := '1'B,
pPON_PPEI := '1'B,
pPOF := '1'B,
aRRL := '1'B,
cPRAI := '1'B,
aOPI := '1'B,
aOSI := '1'B,
pCRI := '1'B,
pSCI := '1'B,
bDWI := '1'B,
dTCI := '1'B,
uASI := '1'B,
nSI := '1'B,
wPMSI := '1'B,
uNACCSI := '1'B,
pNSI := '1'B,
s11TF := '1'B,
pMTSMI := '1'B,
cPOPCI := '1'B,
ePCOSI := '1'B,
rOAAI := '1'B,
tSPCMI := '0'B,
eNBCRSI := '0'B,
spare_1 := '0'B,
spare_2 := '0'B,
spare_3 := '0'B,
spare_4 := '0'B,
spare_5 := '0'B,
spare_6 := '0'B,
additionalOctets := omit
};
template Indication t_indicationFlags2 := {
elementIdentifier := '4D'O,
lengthIndicator := 2,
instance := '0000'B,
spare := '0000'B,
sGWCI := '1'B,
iSRAI := '1'B,
iSRSI := '1'B,
oI := '1'B,
dFI := '1'B,
hI := '1'B,
dTF := '1'B,
dAF := '1'B,
mSV := '1'B,
sI := '1'B,
pT := '1'B,
pBit := '1'B,
cRSI := '1'B,
cFSI := '1'B,
uIMSI := '1'B,
sQCI := '1'B,
cCRSI := omit,
iSRAU := omit,
mBMDT := omit,
s4AF := omit,
s6AF := omit,
sRNI := omit,
pBIC := omit,
retLoc := omit,
cPSR := omit,
cLII := omit,
cSFBI := omit,
pPSI := omit,
pPON_PPEI := omit,
pPOF := omit,
aRRL := omit,
cPRAI := omit,
aOPI := omit,
aOSI := omit,
pCRI := omit,
pSCI := omit,
bDWI := omit,
dTCI := omit,
uASI := omit,
nSI := omit,
wPMSI := omit,
uNACCSI := omit,
pNSI := omit,
s11TF := omit,
pMTSMI := omit,
cPOPCI := omit,
ePCOSI := omit,
rOAAI := omit,
tSPCMI := omit,
eNBCRSI := omit,
spare_1 := omit,
spare_2 := omit,
spare_3 := omit,
spare_4 := omit,
spare_5 := omit,
spare_6 := omit,
additionalOctets := omit
};
template IP_Address t_IP_Address := {
elementIdentifier := '4A'O,
lengthIndicator := 4,
instance := '1111'B,
spare := '0000'B,
iPv4_IPv6_Address := {
iPv4_Address := '01020304'O
}
}
template IPv4ConfigurationPrameters t_IPv4ConfigurationPrameters := {
elementIdentifier := 'A6'O,
lengthIndicator := 5,
instance := '1111'B,
spare := '0000'B,
subnetPrefixLength := 1,
iPv4DefaultRouterAddress := '01020304'O,
additionalOctets := omit
}
template LoadControlInformationGrouped t_loadControlInformationGrouped (template SequenceNumber pl_sequenceNumber := t_sequenceNumber,template Metric pl_metric := t_metric):= {
elementIdentifier := 'B5'O,
lengthIndicator := 13,
instance := '1111'B,
spare := '0000'B,
loadControlInformationIEs := {
loadControlSequenceNumber := pl_sequenceNumber,
loadMetric := pl_metric,
listOfAPNandRelativeCapacity := omit
}
}
template Metric t_metric := {
elementIdentifier := 'B6'O,
lengthIndicator := 1,
instance := '1111'B,
spare := '0000'B,
metric := 10
}
template NodeIdentifier t_nodeIdentifier := {
elementIdentifier := 'B0'O,
lengthIndicator := 10,
instance := '1111'B,
spare := '0000'B,
lenghOfNodeName := 4,
nodeName := '01020304'O,
lenghOfNodeRealm := 4,
nodeRealm := '01020304'O,
additionalOctets := omit
}
template NodeNumber t_nodeNumber := {
elementIdentifier := 'AF'O,
lengthIndicator := 5,
instance := '1111'B,
spare := '0000'B,
lenghOfNodeNumber := 4,
nodeNumber := '01020304'O,
additionalOctets := omit
}
template OverloadControlInformationGrouped t_overloadControlInformationGrouped (template SequenceNumber pl_sequenceNumber := t_sequenceNumber,template Metric pl_metric := t_metric,template EPC_Timer pl_ePCTimer := t_ePCTimer):= {
elementIdentifier := 'B4'O,
lengthIndicator := 18,
instance := '1111'B,
spare := '0000'B,
overloadControlInformationIEs := {
overloadControlSequenceNumber := pl_sequenceNumber,
overloadReductionMetric := pl_metric,
periodOfValidity := pl_ePCTimer,
listOfAccessPointName := omit
}
}
template PresenceReportingAreaAction t_presenceReportingAreaAction := {
elementIdentifier := 'B1'O,
lengthIndicator := 69,
instance := '1111'B,
spare := '0000'B,
actionField := '111'B,
iNAPRA := '1'B,
spare2 := '0000'B,
presenceReportingAreaIdentifier := '010203'O,
numberOfRAI := 1,
numberOfTAI := 1,
numberOfMacroENodeB := 1,
spare3 := '00'B,
numberOfHomeENodeB := 1,
spare4 := '00'B,
numberOfECGI := 1,
spare5 := '00'B,
numberOfSAI := 1,
spare6 := '00'B,
numberOfCGI := 1,
spare7 := '00'B,
tAIs := {
{
mccDigit1 := '2'H,
mccDigit2 := '4'H,
mccDigit3 := '0'H,
mncDigit3 := 'F'H,
mncDigit1 := '9'H,
mncDigit2 := '9'H,
tAC := '0102'O
}
},
macroENBIDs := {
{
mccDigit1 := '2'H,
mccDigit2 := '4'H,
mccDigit3 := '0'H,
mncDigit3 := 'F'H,
mncDigit1 := '9'H,
mncDigit2 := '9'H,
spare2 := '0000'B,
targetID := '00110011001100110011'B
}
},
homeENBIDs := {
{
mccDigit1 := '2'H,
mccDigit2 := '4'H,
mccDigit3 := '0'H,
mncDigit3 := 'F'H,
mncDigit1 := '9'H,
mncDigit2 := '9'H,
spare2 := '0000'B,
targetID := '0011001100110011001100110011'B
}
},
eCGIs := {
{
mccDigit1 := '2'H,
mccDigit2 := '4'H,
mccDigit3 := '0'H,
mncDigit3 := 'F'H,
mncDigit1 := '9'H,
mncDigit2 := '9'H,
spare := '0'H,
eCI := 123
}
},
rAIs := {
{
mccDigit1 := '2'H,
mccDigit2 := '4'H,
mccDigit3 := '0'H,
mncDigit3 := 'F'H,
mncDigit1 := '9'H,
mncDigit2 := '9'H,
lAC := '0102'O,
rAC := '0304'O
}
},
sAIs := {
{
mccDigit1 := '2'H,
mccDigit2 := '4'H,
mccDigit3 := '0'H,
mncDigit3 := 'F'H,
mncDigit1 := '9'H,
mncDigit2 := '9'H,
lAC := '0102'O,
sAC := '0304'O
}
},
cGIs := {
{
mccDigit1 := '2'H,
mccDigit2 := '4'H,
mccDigit3 := '0'H,
mncDigit3 := 'F'H,
mncDigit1 := '9'H,
mncDigit2 := '9'H,
lAC := '0102'O,
cI := '0304'O
}
},
numberOfExtendedMacroENODEB := 2,
spare8 := '00'B,
extendedMacroENBIDs := {
{
mccDigit1 := '2'H,
mccDigit2 := '4'H,
mccDigit3 := '0'H,
mncDigit3 := 'F'H,
mncDigit1 := '9'H,
mncDigit2 := '9'H,
spare := '00'B,
sMeNB := '0'B,
targetID := '000000000000000000001'B
},
{
mccDigit1 := '2'H,
mccDigit2 := '4'H,
mccDigit3 := '0'H,
mncDigit3 := 'F'H,
mncDigit1 := '9'H,
mncDigit2 := '9'H,
spare := '00'B,
sMeNB := '0'B,
targetID := '000000000000000000011'B
}
},
additionalOctets := omit
}
template PresenceReportingAreaAction t_presenceReportingAreaAction2 := {
elementIdentifier := 'B1'O,
lengthIndicator := 10,
instance := '1111'B,
spare := '0000'B,
actionField := '111'B,
iNAPRA := '1'B,
spare2 := '0000'B,
presenceReportingAreaIdentifier := '010203'O,
numberOfRAI := 0,
numberOfTAI := 0,
numberOfMacroENodeB := 0,
spare3 := '00'B,
numberOfHomeENodeB := 0,
spare4 := '00'B,
numberOfECGI := 0,
spare5 := '00'B,
numberOfSAI := 0,
spare6 := '00'B,
numberOfCGI := 0,
spare7 := '00'B,
tAIs := omit,
macroENBIDs := omit,
homeENBIDs := omit,
eCGIs := omit,
rAIs := omit,
sAIs := omit,
cGIs := omit,
numberOfExtendedMacroENODEB := omit,
spare8 := omit,
extendedMacroENBIDs := omit,
additionalOctets := omit
}
template PresenceReportingAreaInformation t_presenceReportingAreaInformation := {
elementIdentifier := 'B2'O,
lengthIndicator := 12,
instance := '0000'B,
spare := '0000'B,
presenceReportingAreaIdentifier := '010203'O,
iPRA := '1'B,
oPRA := '0'B,
aPRA := '1'B,
iNAPRA := '0'B,
spare2 := '0000'B,
additionalPRA := {
additionalPRA_Identifier := '000001'O,
iPRA := '1'B,
oPRA := '0'B,
aPRA := '1'B,
spare := '00000'B,
additionalPRA :=
{
additionalPRA_Identifier := '000002'O,
iPRA := '1'B,
oPRA := '0'B,
aPRA := '0'B,
spare := '00000'B,
additionalPRA := omit
}
},
additionalOctets := omit
}
template ProcedureTransactionID t_procedureTransactionID := {
elementIdentifier := '64'O,
lengthIndicator := 1,
instance := '1111'B,
spare := '0000'B,
pTI_Value := 5,
additionalOctets := omit
}
template RAN_NASCause t_rAN_NASCause := {
elementIdentifier := 'AC'O,
lengthIndicator := 2,
instance := '1111'B,
spare := '0000'B,
causeType := '1010'B,
protocolType := '1010'B,
causeValue := '01'O,
additionalOctets := omit
}
template RAT_Type t_ratType := {
elementIdentifier := '52'O,
lengthIndicator := 1,
instance := '1111'B,
spare := '0000'B,
rAT_TypeValue := 5,
additionalOctets := omit
}
template SequenceNumber t_sequenceNumber := {
elementIdentifier := 'B7'O,
lengthIndicator := 4,
instance := '1111'B,
spare := '0000'B,
sequenceNumber := 4
}
template TrustedWLANAccessNetworkIdentifier t_trustedWLANAccessNetworkIdentifier := {
elementIdentifier := 'A9'O,
lengthIndicator := 3,
instance := '0000'B,
spare := '0000'B,
bssIdIndicator := '0'B,
cIVAI := '1'B,
pLMNI := '1'B,
oPNAI := '1'B,
lAAI := '1'B,
spare2 := '000'B,
lengthOfSSID := 1,
SSID := 'AA'O,
BSSID := omit,
lengthOfCivicAddress := 1,
civicAddressInformation := '01'O,
tWAN_PLMNID := '01020304'O,
lengthOfTWANOperatorName := 1,
tWANOperatorName := '01'O,
relayIdentityType := 1,
lengthOfRelayIdentity := 4,
relayIdentity := '01020304'O,
lengthOfcircuitID := 1,
circuitID := '01'O,
additionalOctets := omit
}
template TrustedWLANModeIndication t_trustedWLANModeIndication := {
elementIdentifier := 'AE'O,
lengthIndicator := 1,
instance := '0000'B,
spare := '0000'B,
sCM := '0'B,
mCM := '1'B,
spare2 := '000000'B,
additionalOctets := omit
}
template TWANIdentifierTimestamp t_tWANIdentifierTimestamp := {
elementIdentifier := 'B3'O,
lengthIndicator := 4,
instance := '0000'B,
spare := '0000'B,
tWANIdentifierTimestampValue := '01020304'O,
additionalOctets := omit
}
template MDT_Configuration t_mDT_Configuration := {
elementIdentifier := 'A2'O,
lengthIndicator:= 17,
instance:= '0000'B,
spare:= '0000'B,
jobType:= '01'O,
listOfmeasurements:= '01020304'O,
reportingTrigger:= '01'O,
reportInterval:= '02'O,
reportAmount:= '03'O,
eventThresholdforRSRP:= '04'O,
eventThresholdforRSRQ:='05'O ,
lengthOfAreaScope:= 0,
areaScope := omit,
cRRMI:= '0'B,
mPI:= '1'B,
pMI:= '0'B,
pLI:= '1'B,
spare2:= '0000'B,
collectionPeriodforRRMmeasurementsLTE := omit,
measurementPeriodLTE := min1,
positioningMethod := omit,
numberOfMDT_PLMNs := 1,
mDT_PLMN_List := {'010203'O},
additionalOctets := omit
}
template SCEF_PDN_ConnectionGrouped_List t_sCEF_PDN_ConnectionGrouped_List :=
{
{
elementIdentifier := 'C3'O,
lengthIndicator:= 27,
instance:= '0000'B,
spare:= '0000'B,
sCEF_PDN_ConnectionIEs :=
{
accessPointName := valueof(t_accessPointName),
ePS_BearerID := valueof(t_ePS_BearerID),
nodeIdentifier := valueof(t_nodeIdentifier)
}
}
}
template PDN_ConnectionGrouped_List t_pDN_ConnectionGrouped_List :=
{
{
elementIdentifier := '6D'O,
lengthIndicator:= 5,
instance:= '0000'B,
spare:= '0000'B,
pDN_Connection_IEs :=
{
accessPointName := omit,
iP_Address := omit,
linkedEPS_Bearer_ID := omit,
fullyQualifiedTEID := omit,
fullyQualifiedDomainName := omit,
bearerContexts := omit,
apn_ambr := omit,
chargingCharacteristics := omit,
aPN_Restriction := omit,
selectionMode := omit,
changeReportingAction := omit,
cSG_InformationReportingAction := omit,
heNBInformationReporting := omit,
indicationFlags := omit,
signallingPriorityIndication := omit,
changeToReportFlags := omit,
presenceReportingAreaAction := omit,
wLANOffloadabilityIndication :=
{
elementIdentifier := 'B9'O,
lengthIndicator := 1,
instance := '0000'B,
spare := '0000'B,
uTRANIndication := '0'B,
eUTRANIndication := '0'B,
spare2 := '000000'B,
additionalOctets := omit
},
remoteUEContext := omit,
pDN_Type := omit,
headerCompressionConfiguration := omit
}
}
}
template MillisecondTimeStamp t_millisecondTimeStamp :=
{
elementIdentifier := 'BC'O,
lengthIndicator := 6,
instance:= '0000'B,
spare:= '0000'B,
millisecondTimeStampValue := '000000001234'O,
additionalOctets := omit
}
template IntegerNumber t_integerNumber :=
{
elementIdentifier := 'BB'O,
lengthIndicator := 2,
instance:= '0000'B,
spare:= '0000'B,
integerNumberValue := {int2 := 5}
}
template FullyQualifiedContainer t_nBIFOMContainer :=
{
elementIdentifier := '76'O,
lengthIndicator := 5,
instance:= '0000'B,
spare:= '0000'B,
containerType := 4,
spare2:= '0000'B,
f_ContainerField := {nBIFOM_Container := '01020304'O}
}
template RemoteUEContextGrouped_List t_remoteUEContextGrouped :=
{
{
elementIdentifier := 'BF'O,
lengthIndicator := 6,
instance:= '0000'B,
spare:= '0000'B,
remoteUEContextIEs :=
{
remoteUserID := omit,
remoteUEIPInformation :=
{
elementIdentifier := 'C1'O,
lengthIndicator := 2,
instance:= '0000'B,
spare:= '0000'B,
remoteUEIPInformation := 'f001'O
}
}
}
}
template ExtendedProtocolConfigOptions t_extendedProtocolConfigOptions :=
{
elementIdentifier := 'C5'O,
lengthIndicator := 1,
instance:= '0000'B,
spare:= '0000'B,
ePCO := '05'O
}
template ServingPLMNRateControl t_servingPLMNRateControl :=
{
elementIdentifier := 'C6'O,
lengthIndicator := 4,
instance:= '0000'B,
spare:= '0000'B,
uplinkRateLimit := 1000,
downlinkRateLimit := 1000,
additionalOctets := omit
}
template PagingAndServiceInformation t_pagingAndServiceInformation :=
{
elementIdentifier := 'BA'O,
lengthIndicator := 2,
instance:= '0000'B,
spare:= '0000'B,
ePS_Bearer_ID_Value := 4,
spare2 := '0000'B,
pPI := '0'B,
spare3 := '0000000'B,
pagingPolicyIndicationValue := omit,
spare4 := omit,
additionalOctets := omit
}
template CIoT_OptimizationsSupportIndication t_cIoT_OptimizationsSupportIndication :=
{
elementIdentifier := 'C2'O,
lengthIndicator := 1,
instance:= '0000'B,
spare:= '0000'B,
sGNIPDN := '0'B,
sCNIPDN := '0'B,
aWOPDN := '0'B,
iHCSI := '0'B,
spare2 := '0000'B,
additionalOctets := omit
}
template Mapped_UE_UsageType t_mapped_UE_UsageType :=
{
elementIdentifier := 'C8'O,
lengthIndicator := 2,
instance:= '0000'B,
spare := '0000'B,
mapped_UE_UsageType := '0102'O,
additionalOctets := omit
}
template Secondary_RAT_UsageDataReport t_secondary_RAT_UsageDataReport :=
{
elementIdentifier := 'C9'O,
lengthIndicator := 27,
instance := '0000'B,
spare := '0000'B,
iRPGW := '0'B,
iRSGW := '0'B,
spare2 := '000000'B,
secondaryRATType := 1,
eBI := '0000'B,
spare3 := '0000'B,
startTimestamp := '01020304'O,
endTimestamp := '01020305'O,
usageDataDL := '0102030405060708'O,
usageDataUL := '0102030405060708'O,
additionalOctets := omit
}
template UP_FunctionSelectionIndicationFlags t_uP_FunctionSelectionIndicationFlags :=
{
elementIdentifier := 'CA'O,
lengthIndicator := 1,
instance:= '0000'B,
spare:= '0000'B,
dCNR := '0'B,
spare2 := '0000000'B,
additionalOctets := omit
}
testcase tc_createSessionRequest() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
createSessionRequest := {
iMSI := omit,
mSISDN := omit,
mEI := omit,
userLocationInfo := omit,
servingNetwork := omit,
rAT_Type := valueof(t_ratType),
indication := omit,
fullyQualifiedTEID := {valueof(t_fullyQualifiedTEID)},
accessPointName := valueof(t_accessPointName),
selectionMode := omit,
pDN_Type := omit,
pDN_AddressAllocation := omit,
maxAPN_Restriction := omit,
ambr := omit,
linkedEPS_Bearer_ID := omit,
trustedWLANModeIndication := valueof(t_trustedWLANModeIndication),
protocolConfigOptions := omit,
bearerContextGrouped := {valueof(t_bearerContextGrouped)},
traceInformation := omit,
recovery := omit,
csid := omit,
uE_TimeZone := omit,
user_CSG_Information := omit,
chargingCharacteristics := omit,
lDN := omit,
signallingPriorityIndication := omit,
iP_Addr := omit,
portNumber := omit,
aPCO := omit,
trustedWLANAccessNetworkIdentifier := {valueof(t_trustedWLANAccessNetworkIdentifier)},
cNOperatorSelectionEntity := valueof(t_cNOperatorSelectionEntity),
presenceReportingAreaInformation := {valueof(t_presenceReportingAreaInformation)},
overloadControlInformationGrouped := {valueof(t_overloadControlInformationGrouped), valueof(t_overloadControlInformationGrouped)},
originationTimeStamp := valueof(t_millisecondTimeStamp),
maximumWaitTime := valueof(t_integerNumber),
wLANLocationTimestamp := valueof(t_tWANIdentifierTimestamp),
nBIFOMContainer := valueof(t_nBIFOMContainer),
remoteUEContextGrouped := valueof(t_remoteUEContextGrouped),
nodeIdentifier := {valueof(t_nodeIdentifier)},
extendedProtocolConfigOptions := valueof(t_extendedProtocolConfigOptions),
servingPLMNRateControl := valueof(t_servingPLMNRateControl),
counter := omit,
mapped_UE_UsageType := valueof(t_mapped_UE_UsageType),
fullyQualifiedDomainName := omit,
secondary_RAT_UsageDataReport := {valueof(t_secondary_RAT_UsageDataReport)},
uP_FunctionSelectionIndicationFlags := valueof(t_uP_FunctionSelectionIndicationFlags),
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('20'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('20'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_createSessionResponse() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
createSessionResponse := {
cause := valueof(t_cause),
changeReportingAction := omit,
cSG_InformationReportingAction := omit,
heNBInformationReporting := omit,
fullyQualifiedTEID := omit,
pDN_AddressAllocation := omit,
aPN_Restriction := omit,
ambr := omit,
linkedEPS_Bearer_ID := omit,
protocolConfigOptions := omit,
bearerContextGrouped := omit,
recovery := omit,
chargingGatewayName := omit,
chargingGatewayAddress := omit,
csid := omit,
lDN := omit,
pGW_Back_OffTime := omit,
aPCO := omit,
trustedWLANIPv4Parameters := valueof(t_IPv4ConfigurationPrameters),
indicationFlags := valueof(t_indicationFlags),
presenceReportingAreaAction := {valueof(t_presenceReportingAreaAction)},
loadControlInformationGrouped := {valueof(t_loadControlInformationGrouped), valueof(t_loadControlInformationGrouped), valueof(t_loadControlInformationGrouped)},
overloadControlInformationGrouped := {valueof(t_overloadControlInformationGrouped), valueof(t_overloadControlInformationGrouped)},
nBIFOMContainer := valueof(t_nBIFOMContainer),
pDNConnectionChargingID := omit,
extendedProtocolConfigOptions := valueof(t_extendedProtocolConfigOptions),
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('21'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('21'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
v_gtpcv2_pdu.createSessionResponse.indicationFlags := valueof(t_indicationFlags2);
v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('21'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('21'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_createBearerRequest() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
createBearerRequest := {
procedureTransactionID := omit,
linkedEPS_BearerID := valueof(t_ePS_BearerID),
protocolConfigOptions := omit,
bearerContextGrouped := {valueof(t_bearerContextGrouped)},
csid := omit,
changeReportingAction := omit,
cSG_InformationReportingAction := omit,
heNBInformationReporting := omit,
presenceReportingAreaAction := {valueof(t_presenceReportingAreaAction)},
indicationFlags := valueof(t_indicationFlags),
loadControlInformationGrouped := {valueof(t_loadControlInformationGrouped), valueof(t_loadControlInformationGrouped), valueof(t_loadControlInformationGrouped)},
overloadControlInformationGrouped := {valueof(t_overloadControlInformationGrouped), valueof(t_overloadControlInformationGrouped)},
nBIFOMContainer := valueof(t_nBIFOMContainer),
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('5F'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('5F'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_createBearerResponse() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
createBearerResponse := {
cause := valueof(t_cause),
bearerContextGrouped := omit,
recovery := omit,
csid := omit,
protocolConfigOptions := omit,
uE_TimeZone := omit,
uLI := omit,
trustedWLANAccessNetworkIdentifier:= {valueof(t_trustedWLANAccessNetworkIdentifier)},
overloadControlInformationGrouped := {valueof(t_overloadControlInformationGrouped), valueof(t_overloadControlInformationGrouped)},
presenceReportingAreaInformation := {valueof(t_presenceReportingAreaInformation)},
iP_Addr := {valueof(t_IP_Address)},
wLANLocationTimestamp := omit,
portNumber := omit,
nBIFOMContainer := valueof(t_nBIFOMContainer),
extendedProtocolConfigOptions := omit,
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('60'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('60'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_bearerResourceCommand() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
bearerResourceCommand := {
epsBearerIdentity := {valueof(t_ePS_BearerID)},
procedureTransactionID := valueof(t_procedureTransactionID),
flowQoS := omit,
tAD := omit,
rAT_Type := omit,
servingNetwork := omit,
userLocationInfo := omit,
indicationFlags := omit,
fullyQualifiedTEID := omit,
protocolConfigOptions := omit,
signallingPriorityIndication := omit,
overloadControlInformationGrouped := {valueof(t_overloadControlInformationGrouped), valueof(t_overloadControlInformationGrouped)},
nBIFOMContainer := omit,
extendedProtocolConfigOptions := omit,
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('44'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('44'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_bearerResourceFailureIndication() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
bearerResourceFailureIndication := {
cause := valueof(t_cause),
linkedBearerIdentity := valueof(t_ePS_BearerID),
procedureTransactionID := valueof(t_procedureTransactionID),
indicationFlags := valueof(t_indicationFlags),
overloadControlInformationGrouped := {valueof(t_overloadControlInformationGrouped), valueof(t_overloadControlInformationGrouped)},
recovery := omit,
nBIFOMContainer := omit,
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('45'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('45'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_modifyBearerRequest() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
modifyBearerRequest := {
mEI := omit,
userLocationInfo := omit,
servingNetwork := omit,
rAT_Type := omit,
indicationFlags := omit,
fullyQualifiedTEID := omit,
ambr := omit,
delayDownlinkPacketNotificationReq := omit,
bearerContextGrouped := omit,
recovery := omit,
uE_TimeZone := omit,
csid := omit,
user_CSG_Information := omit,
iP_Addr := omit,
portNumber := omit,
lDN := omit,
cNOperatorSelectionEntity:= valueof(t_cNOperatorSelectionEntity),
presenceReportingAreaInformation := {valueof(t_presenceReportingAreaInformation)},
overloadControlInformationGrouped := {valueof(t_overloadControlInformationGrouped), valueof(t_overloadControlInformationGrouped)},
servingPLMNRateControl := omit,
counter := omit,
iMSI := omit,
trustedWLANAccessNetworkIdentifier := omit,
tWANIdentifierTimestamp := omit,
secondary_RAT_UsageDataReport := omit,
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('22'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('22'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_modifyBearerResponse() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
modifyBearerResponse := {
cause := valueof(t_cause),
mSISDN := omit,
linkedEPS_Bearer_ID := omit,
aPN_Restriction := omit,
protocolConfigOptions := omit,
bearerContextGrouped := omit,
changeReportingAction := omit,
cSG_InformationReportingAction := omit,
heNBInformationReporting := omit,
chargingGatewayName := omit,
chargingGatewayAddress := omit,
csid := omit,
recovery := omit,
lDN := omit,
indicationFlags := omit,
presenceReportingAreaAction := {valueof(t_presenceReportingAreaAction)},
loadControlInformationGrouped := {valueof(t_loadControlInformationGrouped), valueof(t_loadControlInformationGrouped), valueof(t_loadControlInformationGrouped)},
overloadControlInformationGrouped := {valueof(t_overloadControlInformationGrouped), valueof(t_overloadControlInformationGrouped)},
pDNConnectionChargingID := omit,
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('23'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('23'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_deleteSessionRequest() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
deleteSessionRequest := {
cause := omit,
linkedEPS_Bearer_ID := omit,
uLI := omit,
indicationFlags := omit,
protocolConfigOptions := omit,
originatingNode := omit,
fullyQualifiedTEID := omit,
uE_TimeZone := omit,
uLITimestamp := omit,
rANNASReleaseCause := valueof(t_rAN_NASCause),
trustedWLANAccessNetworkIdentifier:= {valueof(t_trustedWLANAccessNetworkIdentifier)},
tWANIdentifierTimestamp := {valueof(t_tWANIdentifierTimestamp)},
overloadControlInformationGrouped := {valueof(t_overloadControlInformationGrouped), valueof(t_overloadControlInformationGrouped)},
uELocalIP_Addr := omit,
portNumber := omit,
extendedProtocolConfigOptions := omit,
secondary_RAT_UsageDataReport := omit,
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('24'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('24'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_deleteBearerRequest() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
deleteBearerRequest := {
epsBearerIdentity := omit,
bearerContextGrouped := omit,
procedureTransactionID := omit,
protocolConfigOptions := omit,
csid := omit,
cause := omit,
indicationFlags := valueof(t_indicationFlags),
loadControlInformationGrouped := {valueof(t_loadControlInformationGrouped), valueof(t_loadControlInformationGrouped), valueof(t_loadControlInformationGrouped)},
overloadControlInformationGrouped := {valueof(t_overloadControlInformationGrouped),valueof(t_overloadControlInformationGrouped)},
nBIFOMContainer := valueof(t_nBIFOMContainer),
extendedProtocolConfigOptions := valueof(t_extendedProtocolConfigOptions),
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('63'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('63'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_deleteSessionResponse() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
deleteSessionResponse := {
cause := valueof(t_cause),
recovery := omit,
protocolConfigOptions := omit,
indicationFlags := valueof(t_indicationFlags),
loadControlInformationGrouped := {valueof(t_loadControlInformationGrouped), valueof(t_loadControlInformationGrouped), valueof(t_loadControlInformationGrouped)},
overloadControlInformationGrouped := {valueof(t_overloadControlInformationGrouped), valueof(t_overloadControlInformationGrouped)},
extendedProtocolConfigOptions := valueof(t_extendedProtocolConfigOptions),
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('25'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('25'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_deleteBearerResponse() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
deleteBearerResponse := {
cause := valueof(t_cause),
linkedBearerIdentity := omit,
bearerContextGrouped := omit,
recovery := omit,
csid := omit,
protocolConfigOptions := omit,
uE_TimeZone := omit,
uLI := omit,
uLITimestamp := omit,
trustedWLANAccessNetworkIdentifier := valueof(t_trustedWLANAccessNetworkIdentifier),
tWANIdentifierTimestamp := valueof(t_tWANIdentifierTimestamp),
overloadControlInformationGrouped := {valueof(t_overloadControlInformationGrouped), valueof(t_overloadControlInformationGrouped)},
iP_Addr := {valueof(t_IP_Address)},
portNumber := omit,
nBIFOMContainer:= valueof(t_nBIFOMContainer),
secondary_RAT_UsageDataReport := omit,
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('64'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('64'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_downlinkDataNotification() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
downlinkDataNotification := {
cause := omit,
epsBearerIdentity := omit,
aRP := omit,
iMSI := omit,
fullyQualifiedTEID := omit,
indicationFlags := valueof(t_indicationFlags),
loadControlInformationGrouped := valueof(t_loadControlInformationGrouped),
overloadControlInformationGrouped := valueof(t_overloadControlInformationGrouped),
pagingAndServiceInformation := valueof(t_pagingAndServiceInformation),
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('B0'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('B0'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_modifyBearerCommand() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
modifyBearerCommand := {
ambr := valueof(t_ambr),
bearerContextGrouped := valueof(t_bearerContextGrouped),
overloadControlInformationGrouped := { valueof(t_overloadControlInformationGrouped), valueof(t_overloadControlInformationGrouped)},
fullyQualifiedTEID := omit,
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('40'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('40'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_modifyBearerFailureIndication() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
modifyBearerFailureIndication := {
cause := valueof(t_cause),
recovery := omit,
indicationFlags := valueof(t_indicationFlags),
overloadControlInformationGrouped := { valueof(t_overloadControlInformationGrouped), valueof(t_overloadControlInformationGrouped)},
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('41'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('41'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_deleteBearerFailureIndication2() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
deleteBearerFailureIndication := {
cause := valueof(t_cause),
bearerContextGrouped := {valueof(t_m_bearerContextGrouped)},
recovery := omit,
indicationFlags := valueof(t_indicationFlags),
overloadControlInformationGrouped := { valueof(t_overloadControlInformationGrouped), valueof(t_overloadControlInformationGrouped)},
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('43'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('43'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_updateBearerRequest() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
updateBearerRequest := {
bearerContextGrouped := {valueof(t_bearerContextGrouped)},
procedureTransactionID := omit,
protocolConfigOptions := omit,
apn_ambr := valueof(t_ambr),
changeReportingAction := omit,
cSG_InformationReportingAction := omit,
indicationFlags := omit,
heNBInformationReporting := omit,
csid := omit,
presenceReportingAreaAction := {valueof(t_presenceReportingAreaAction)},
loadControlInformationGrouped := { valueof(t_loadControlInformationGrouped), valueof(t_loadControlInformationGrouped),valueof(t_loadControlInformationGrouped)},
overloadControlInformationGrouped := { valueof(t_overloadControlInformationGrouped), valueof(t_overloadControlInformationGrouped)},
nBIFOMContainer:= valueof(t_nBIFOMContainer),
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('61'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('61'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_updateBearerResponse() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
updateBearerResponse := {
cause := valueof(t_cause),
bearerContextGrouped := {valueof(t_bearerContextGrouped)},
protocolConfigOptions := omit,
recovery := omit,
csid := omit,
indicationFlags := omit,
uE_TimeZone := omit,
uLI := omit,
trustedWLANAccessNetworkIdentifier := valueof(t_trustedWLANAccessNetworkIdentifier),
overloadControlInformationGrouped := { valueof(t_overloadControlInformationGrouped), valueof(t_overloadControlInformationGrouped)},
presenceReportingAreaInformation := {valueof(t_presenceReportingAreaInformation)},
iP_Addr := {valueof(t_IP_Address)},
tWANIdentifierTimestamp := valueof(t_tWANIdentifierTimestamp),
portNumber := omit,
nBIFOMContainer := valueof(t_nBIFOMContainer),
extendedProtocolConfigOptions := valueof(t_extendedProtocolConfigOptions),
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('62'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('62'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_deleteBearerCommand() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
deleteBearerCommand := {
bearerContextGrouped := {valueof(t_bearerContextGrouped)},
uli := omit,
uli_timestamp := omit,
ue_timezone := omit,
overloadControlInformationGrouped := { valueof(t_overloadControlInformationGrouped), valueof(t_overloadControlInformationGrouped)},
fullyQualifiedTEID := omit,
secondary_RAT_UsageDataReport := omit,
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('42'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('42'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_deleteBearerFailureIndication() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
deleteBearerFailureIndication := {
cause := valueof(t_cause),
bearerContextGrouped := {valueof(t_bearerContextGrouped)},
recovery := omit,
indicationFlags := valueof(t_indicationFlags),
overloadControlInformationGrouped := { valueof(t_overloadControlInformationGrouped), valueof(t_overloadControlInformationGrouped)},
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('43'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('43'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_releaseAccessBearersRequest() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
releaseAccessBearersRequest := {
listOfRABs := omit,
originatingNode := omit,
indicationFlags := valueof(t_indicationFlags),
secondary_RAT_UsageDataReport := omit,
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('AA'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('AA'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_releaseAccessBearersResponse() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
releaseAccessBearersResponse := {
cause := valueof(t_cause),
recovery := omit,
indicationFlags := valueof(t_indicationFlags),
loadControlInformationGrouped := valueof(t_loadControlInformationGrouped),
overloadControlInformationGrouped := valueof(t_overloadControlInformationGrouped),
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('AB'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('AB'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_stopPagingIndication() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
stopPagingIndication := {
iMSI := valueof(t_iMSI),
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('49'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('49'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_modifyAccessBearersResponse() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
modifyAccessBearersResponse := {
cause := valueof(t_cause),
bearerContextGrouped := omit,
recovery := omit,
indicationFlags := valueof(t_indicationFlags),
loadControlInformationGrouped := valueof(t_loadControlInformationGrouped),
overloadControlInformationGrouped := valueof(t_overloadControlInformationGrouped),
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('D4'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('D4'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_forwardRelocationResponse() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu:={
forwardRelocationResponse:= {
cause := valueof(t_cause),
fullyQualifiedTEID := omit,
indication := omit,
bearerContextGrouped := omit,
fullyQualifiedCause := omit,
transparentContainer := omit,
lDN := omit,
nodeName := omit,
nodeNumber := {valueof(t_nodeNumber)},
nodeIdentifier := {valueof(t_nodeIdentifier),valueof(t_nodeIdentifier)},
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('86'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('86'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_contextRequest() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu:={
contextRequest:= {
iMSI := omit,
gUTI := omit,
uLI := omit,
pTMSI := omit,
pTMSI_Signature := omit,
complete_TAU_RequestMessage := omit,
address_and_TEID_for_ControlPlane := omit,
portNumber := omit,
rAT_Type := omit,
indication := omit,
hop_Counter := omit,
target_PLMN_ID := omit,
lDN := omit,
nodeName := omit,
sGSNNumber := valueof(t_nodeNumber),
nodeIdentifier := {valueof(t_nodeIdentifier),valueof(t_nodeIdentifier)},
cIoT_OptimizationsSupportIndication := valueof(t_cIoT_OptimizationsSupportIndication),
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('82'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('82'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_changeNotificationRequest() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu:={
changeNotificationRequest:= {
iMSI := omit,
mEI := omit,
indication := omit,
rAT_Type := valueof(t_ratType),
uLI := omit,
user_CSG_Information := omit,
gTPC_IP_Address := omit,
linkedBearerIdentity := omit,
presenceReportingAreaInformation := {valueof(t_presenceReportingAreaInformation)},
counter := omit,
secondary_RAT_UsageDataReport := omit,
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('26'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('26'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_changeNotificationResponse() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu:={
changeNotificationResponse:= {
iMSI := omit,
mEI := omit,
cause := valueof(t_cause),
changeReportingAction := omit,
cSG_InformationReportingAction := omit,
presenceReportingAreaAction := {valueof(t_presenceReportingAreaAction)},
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('27'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('27'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
v_gtpcv2_pdu.changeNotificationResponse.presenceReportingAreaAction := {valueof(t_presenceReportingAreaAction2) }
v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('27'O,v_gtpcv2_pdu));
v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('27'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_contextResponse() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu:={
contextResponse:= {
cause := valueof(t_cause),
iMSI := omit,
mM_Context := omit,
pDN_Connection := valueof(t_pDN_ConnectionGrouped_List),
fullyQualifiedTEID := omit,
nodeName := omit,
indication := omit,
traceInformation := omit,
iP_Addr := omit,
rFSP_Index := omit,
uE_TimeZone := omit,
lDN := omit,
mDT_Configuration := valueof(t_mDT_Configuration),
user_CSG_Information := omit,
monitoringEventInformation := omit,
uEUsageType := omit,
mME_US_SCEF_PDN_Connection := valueof(t_sCEF_PDN_ConnectionGrouped_List),
rAT_Type := omit,
servingPLMNRateControl := omit,
counter := omit,
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('83'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('83'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_remoteUEReportNotification() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
remoteUEReportNotification := {
remoteUEContextGrouped := valueof(t_remoteUEContextGrouped),
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('28'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('28'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
testcase tc_remoteUEReportAcknowledge() runs on ct_GTPv2{
var GTPCv2_PDUs v_gtpcv2_pdu := {
remoteUEReportAcknowledge := {
cause := valueof(t_cause),
privateExtension := omit
}
}
var PDU_GTPCv2 v_pdu_gtpcv2 := valueof(t_pdu_gtpcv2('29'O,v_gtpcv2_pdu));
log("Original: ", v_pdu_gtpcv2);
var octetstring v_gtp_encoded := enc_PDU_GTPCv2(v_pdu_gtpcv2);
log("Encoded value: ", v_gtp_encoded);
var PDU_GTPCv2 v_gtp_decoded := dec_PDU_GTPCv2(v_gtp_encoded);
log("Decoded: ", v_gtp_decoded);
if(not match(v_gtp_decoded,t_m_pdu_gtpcv2('29'O,v_gtpcv2_pdu))) {
setverdict(fail);
}
setverdict(pass);
}
control{
execute(tc_createSessionRequest());
execute(tc_createSessionResponse());
execute(tc_createBearerRequest());
execute(tc_createBearerResponse());
execute(tc_bearerResourceCommand());
execute(tc_bearerResourceFailureIndication());
execute(tc_modifyBearerRequest());
execute(tc_modifyBearerResponse());
execute(tc_deleteSessionRequest());
execute(tc_deleteBearerRequest());
execute(tc_deleteSessionResponse());
execute(tc_deleteBearerResponse());
execute(tc_downlinkDataNotification());
execute(tc_modifyBearerCommand());
execute(tc_modifyBearerFailureIndication());
execute(tc_updateBearerRequest());
execute(tc_updateBearerResponse());
execute(tc_deleteBearerCommand());
execute(tc_deleteBearerFailureIndication2());
execute(tc_deleteBearerFailureIndication());
execute(tc_releaseAccessBearersRequest());
execute(tc_releaseAccessBearersResponse());
execute(tc_stopPagingIndication());
execute(tc_modifyAccessBearersResponse());
execute(tc_forwardRelocationResponse());
execute(tc_contextRequest());
execute(tc_changeNotificationRequest());
execute(tc_changeNotificationResponse());
execute(tc_contextResponse());
execute(tc_remoteUEReportNotification());
execute(tc_remoteUEReportAcknowledge());
};
}