- Prefix-ed Informations Elements for S1AP to avoid types redefinitions with RRC
EPC/eNB builds OK git-svn-id: http://svn.eurecom.fr/openair4G/trunk@4373 818b1a75-f10b-46b9-bf7c-635c3b92a50f
This commit is contained in:
@@ -12,16 +12,16 @@ DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
Criticality ::= ENUMERATED { reject, ignore, notify }
|
||||
S1ap-Criticality ::= ENUMERATED { reject, ignore, notify }
|
||||
|
||||
Presence ::= ENUMERATED { optional, conditional, mandatory }
|
||||
S1ap-Presence ::= ENUMERATED { optional, conditional, mandatory }
|
||||
|
||||
PrivateIE-ID ::= CHOICE {
|
||||
S1ap-PrivateIE-ID ::= CHOICE {
|
||||
local INTEGER (0..65535),
|
||||
global OBJECT IDENTIFIER
|
||||
}
|
||||
|
||||
ProcedureCode ::= INTEGER {
|
||||
S1ap-ProcedureCode ::= INTEGER {
|
||||
id-HandoverPreparation(0),
|
||||
id-HandoverResourceAllocation(1),
|
||||
id-HandoverNotification(2),
|
||||
@@ -72,9 +72,9 @@ ProcedureCode ::= INTEGER {
|
||||
id-uplinkNonUEAssociatedLPPaTransport(47)
|
||||
} (0..255)
|
||||
|
||||
ProtocolExtensionID ::= INTEGER (0..65535)
|
||||
S1ap-ProtocolExtensionID ::= INTEGER (0..65535)
|
||||
|
||||
ProtocolIE-ID ::= INTEGER {
|
||||
S1ap-ProtocolIE-ID ::= INTEGER {
|
||||
id-MME-UE-S1AP-ID (0),
|
||||
id-HandoverType (1),
|
||||
id-Cause (2),
|
||||
@@ -227,6 +227,6 @@ ProtocolIE-ID ::= INTEGER {
|
||||
id-PrivacyIndicator (166)
|
||||
} (0..65535)
|
||||
|
||||
TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome }
|
||||
S1ap-TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome }
|
||||
|
||||
END
|
||||
|
||||
@@ -19,8 +19,8 @@ BEGIN
|
||||
-- **************************************************************
|
||||
|
||||
IMPORTS
|
||||
ProcedureCode,
|
||||
ProtocolIE-ID
|
||||
S1ap-ProcedureCode,
|
||||
S1ap-ProtocolIE-ID
|
||||
|
||||
FROM S1AP-CommonDataTypes;
|
||||
|
||||
@@ -31,54 +31,54 @@ FROM S1AP-CommonDataTypes;
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
id-HandoverPreparation ProcedureCode ::= 0
|
||||
id-HandoverResourceAllocation ProcedureCode ::= 1
|
||||
id-HandoverNotification ProcedureCode ::= 2
|
||||
id-PathSwitchRequest ProcedureCode ::= 3
|
||||
id-HandoverCancel ProcedureCode ::= 4
|
||||
id-E-RABSetup ProcedureCode ::= 5
|
||||
id-E-RABModify ProcedureCode ::= 6
|
||||
id-E-RABRelease ProcedureCode ::= 7
|
||||
id-E-RABReleaseIndication ProcedureCode ::= 8
|
||||
id-InitialContextSetup ProcedureCode ::= 9
|
||||
id-Paging ProcedureCode ::= 10
|
||||
id-downlinkNASTransport ProcedureCode ::= 11
|
||||
id-initialUEMessage ProcedureCode ::= 12
|
||||
id-uplinkNASTransport ProcedureCode ::= 13
|
||||
id-Reset ProcedureCode::= 14
|
||||
id-ErrorIndication ProcedureCode ::= 15
|
||||
id-NASNonDeliveryIndication ProcedureCode ::= 16
|
||||
id-S1Setup ProcedureCode ::= 17
|
||||
id-UEContextReleaseRequest ProcedureCode ::= 18
|
||||
id-DownlinkS1cdma2000tunneling ProcedureCode ::= 19
|
||||
id-UplinkS1cdma2000tunneling ProcedureCode ::= 20
|
||||
id-UEContextModification ProcedureCode ::= 21
|
||||
id-UECapabilityInfoIndication ProcedureCode ::= 22
|
||||
id-UEContextRelease ProcedureCode ::= 23
|
||||
id-eNBStatusTransfer ProcedureCode ::= 24
|
||||
id-MMEStatusTransfer ProcedureCode ::= 25
|
||||
id-DeactivateTrace ProcedureCode ::= 26
|
||||
id-TraceStart ProcedureCode ::= 27
|
||||
id-TraceFailureIndication ProcedureCode ::= 28
|
||||
id-ENBConfigurationUpdate ProcedureCode ::= 29
|
||||
id-MMEConfigurationUpdate ProcedureCode ::= 30
|
||||
id-LocationReportingControl ProcedureCode ::= 31
|
||||
id-LocationReportingFailureIndication ProcedureCode ::= 32
|
||||
id-LocationReport ProcedureCode ::= 33
|
||||
id-OverloadStart ProcedureCode ::= 34
|
||||
id-OverloadStop ProcedureCode ::= 35
|
||||
id-WriteReplaceWarning ProcedureCode ::= 36
|
||||
id-eNBDirectInformationTransfer ProcedureCode ::= 37
|
||||
id-MMEDirectInformationTransfer ProcedureCode ::= 38
|
||||
id-PrivateMessage ProcedureCode ::= 39
|
||||
id-eNBConfigurationTransfer ProcedureCode ::= 40
|
||||
id-MMEConfigurationTransfer ProcedureCode ::= 41
|
||||
id-CellTrafficTrace ProcedureCode ::= 42
|
||||
id-Kill ProcedureCode ::= 43
|
||||
id-downlinkUEAssociatedLPPaTransport ProcedureCode ::= 44
|
||||
id-uplinkUEAssociatedLPPaTransport ProcedureCode ::= 45
|
||||
id-downlinkNonUEAssociatedLPPaTransport ProcedureCode ::= 46
|
||||
id-uplinkNonUEAssociatedLPPaTransport ProcedureCode ::= 47
|
||||
id-HandoverPreparation S1ap-ProcedureCode ::= 0
|
||||
id-HandoverResourceAllocation S1ap-ProcedureCode ::= 1
|
||||
id-HandoverNotification S1ap-ProcedureCode ::= 2
|
||||
id-PathSwitchRequest S1ap-ProcedureCode ::= 3
|
||||
id-HandoverCancel S1ap-ProcedureCode ::= 4
|
||||
id-E-RABSetup S1ap-ProcedureCode ::= 5
|
||||
id-E-RABModify S1ap-ProcedureCode ::= 6
|
||||
id-E-RABRelease S1ap-ProcedureCode ::= 7
|
||||
id-E-RABReleaseIndication S1ap-ProcedureCode ::= 8
|
||||
id-InitialContextSetup S1ap-ProcedureCode ::= 9
|
||||
id-Paging S1ap-ProcedureCode ::= 10
|
||||
id-downlinkNASTransport S1ap-ProcedureCode ::= 11
|
||||
id-initialUEMessage S1ap-ProcedureCode ::= 12
|
||||
id-uplinkNASTransport S1ap-ProcedureCode ::= 13
|
||||
id-Reset S1ap-ProcedureCode::= 14
|
||||
id-ErrorIndication S1ap-ProcedureCode ::= 15
|
||||
id-NASNonDeliveryIndication S1ap-ProcedureCode ::= 16
|
||||
id-S1Setup S1ap-ProcedureCode ::= 17
|
||||
id-UEContextReleaseRequest S1ap-ProcedureCode ::= 18
|
||||
id-DownlinkS1cdma2000tunneling S1ap-ProcedureCode ::= 19
|
||||
id-UplinkS1cdma2000tunneling S1ap-ProcedureCode ::= 20
|
||||
id-UEContextModification S1ap-ProcedureCode ::= 21
|
||||
id-UECapabilityInfoIndication S1ap-ProcedureCode ::= 22
|
||||
id-UEContextRelease S1ap-ProcedureCode ::= 23
|
||||
id-eNBStatusTransfer S1ap-ProcedureCode ::= 24
|
||||
id-MMEStatusTransfer S1ap-ProcedureCode ::= 25
|
||||
id-DeactivateTrace S1ap-ProcedureCode ::= 26
|
||||
id-TraceStart S1ap-ProcedureCode ::= 27
|
||||
id-TraceFailureIndication S1ap-ProcedureCode ::= 28
|
||||
id-ENBConfigurationUpdate S1ap-ProcedureCode ::= 29
|
||||
id-MMEConfigurationUpdate S1ap-ProcedureCode ::= 30
|
||||
id-LocationReportingControl S1ap-ProcedureCode ::= 31
|
||||
id-LocationReportingFailureIndication S1ap-ProcedureCode ::= 32
|
||||
id-LocationReport S1ap-ProcedureCode ::= 33
|
||||
id-OverloadStart S1ap-ProcedureCode ::= 34
|
||||
id-OverloadStop S1ap-ProcedureCode ::= 35
|
||||
id-WriteReplaceWarning S1ap-ProcedureCode ::= 36
|
||||
id-eNBDirectInformationTransfer S1ap-ProcedureCode ::= 37
|
||||
id-MMEDirectInformationTransfer S1ap-ProcedureCode ::= 38
|
||||
id-PrivateMessage S1ap-ProcedureCode ::= 39
|
||||
id-eNBConfigurationTransfer S1ap-ProcedureCode ::= 40
|
||||
id-MMEConfigurationTransfer S1ap-ProcedureCode ::= 41
|
||||
id-CellTrafficTrace S1ap-ProcedureCode ::= 42
|
||||
id-Kill S1ap-ProcedureCode ::= 43
|
||||
id-downlinkUEAssociatedLPPaTransport S1ap-ProcedureCode ::= 44
|
||||
id-uplinkUEAssociatedLPPaTransport S1ap-ProcedureCode ::= 45
|
||||
id-downlinkNonUEAssociatedLPPaTransport S1ap-ProcedureCode ::= 46
|
||||
id-uplinkNonUEAssociatedLPPaTransport S1ap-ProcedureCode ::= 47
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
@@ -86,41 +86,41 @@ id-uplinkNonUEAssociatedLPPaTransport ProcedureCode ::= 47
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
maxPrivateIEs INTEGER ::= 65535
|
||||
maxProtocolExtensions INTEGER ::= 65535
|
||||
maxProtocolIEs INTEGER ::= 65535
|
||||
s1ap-maxPrivateIEs INTEGER ::= 65535
|
||||
s1ap-maxProtocolExtensions INTEGER ::= 65535
|
||||
s1ap-maxProtocolIEs INTEGER ::= 65535
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Lists
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
maxNrOfCSGs INTEGER ::= 256
|
||||
maxNrOfE-RABs INTEGER ::= 256
|
||||
maxnoofTAIs INTEGER ::= 256
|
||||
maxnoofTACs INTEGER ::= 256
|
||||
maxNrOfErrors INTEGER ::= 256
|
||||
maxnoofBPLMNs INTEGER ::= 6
|
||||
maxnoofPLMNsPerMME INTEGER ::= 32
|
||||
maxnoofEPLMNs INTEGER ::= 15
|
||||
maxnoofEPLMNsPlusOne INTEGER ::= 16
|
||||
maxnoofForbLACs INTEGER ::= 4096
|
||||
maxnoofForbTACs INTEGER ::= 4096
|
||||
maxNrOfIndividualS1ConnectionsToReset INTEGER ::= 256
|
||||
maxnoofCells INTEGER ::= 16
|
||||
maxnoofTAIforWarning INTEGER ::= 65535
|
||||
maxnoofCellID INTEGER ::= 65535
|
||||
maxnoofEmergencyAreaID INTEGER ::= 65535
|
||||
maxnoofCellinTAI INTEGER ::= 65535
|
||||
maxnoofCellinEAI INTEGER ::= 65535
|
||||
maxnoofeNBX2TLAs INTEGER ::= 2
|
||||
maxnoofeNBX2ExtTLAs INTEGER ::= 16
|
||||
maxnoofeNBX2GTPTLAs INTEGER ::= 16
|
||||
maxnoofRATs INTEGER ::= 8
|
||||
maxnoofGroupIDs INTEGER ::= 65535
|
||||
maxnoofMMECs INTEGER ::= 256
|
||||
maxnoofCellIDforMDT INTEGER ::= 32
|
||||
maxnoofTAforMDT INTEGER ::= 8
|
||||
s1ap-maxNrOfCSGs INTEGER ::= 256
|
||||
s1ap-maxNrOfE-RABs INTEGER ::= 256
|
||||
s1ap-maxnoofTAIs INTEGER ::= 256
|
||||
s1ap-maxnoofTACs INTEGER ::= 256
|
||||
s1ap-maxNrOfErrors INTEGER ::= 256
|
||||
s1ap-maxnoofBPLMNs INTEGER ::= 6
|
||||
s1ap-maxnoofPLMNsPerMME INTEGER ::= 32
|
||||
s1ap-maxnoofEPLMNs INTEGER ::= 15
|
||||
s1ap-maxnoofEPLMNsPlusOne INTEGER ::= 16
|
||||
s1ap-maxnoofForbLACs INTEGER ::= 4096
|
||||
s1ap-maxnoofForbTACs INTEGER ::= 4096
|
||||
s1ap-maxNrOfIndividualS1ConnectionsToReset INTEGER ::= 256
|
||||
s1ap-maxnoofCells INTEGER ::= 16
|
||||
s1ap-maxnoofTAIforWarning INTEGER ::= 65535
|
||||
s1ap-maxnoofCellID INTEGER ::= 65535
|
||||
s1ap-maxnoofEmergencyAreaID INTEGER ::= 65535
|
||||
s1ap-maxnoofCellinTAI INTEGER ::= 65535
|
||||
s1ap-maxnoofCellinEAI INTEGER ::= 65535
|
||||
s1ap-maxnoofeNBX2TLAs INTEGER ::= 2
|
||||
s1ap-maxnoofeNBX2ExtTLAs INTEGER ::= 16
|
||||
s1ap-maxnoofeNBX2GTPTLAs INTEGER ::= 16
|
||||
s1ap-maxnoofRATs INTEGER ::= 8
|
||||
s1ap-maxnoofGroupIDs INTEGER ::= 65535
|
||||
s1ap-maxnoofMMECs INTEGER ::= 256
|
||||
s1ap-maxnoofCellIDforMDT INTEGER ::= 32
|
||||
s1ap-maxnoofTAforMDT INTEGER ::= 8
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
@@ -129,155 +129,155 @@ maxnoofTAforMDT INTEGER ::= 8
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
id-MME-UE-S1AP-ID ProtocolIE-ID ::= 0
|
||||
id-HandoverType ProtocolIE-ID ::= 1
|
||||
id-Cause ProtocolIE-ID ::= 2
|
||||
id-SourceID ProtocolIE-ID ::= 3
|
||||
id-TargetID ProtocolIE-ID ::= 4
|
||||
id-eNB-UE-S1AP-ID ProtocolIE-ID ::= 8
|
||||
id-E-RABSubjecttoDataForwardingList ProtocolIE-ID ::= 12
|
||||
id-E-RABtoReleaseListHOCmd ProtocolIE-ID ::= 13
|
||||
id-E-RABDataForwardingItem ProtocolIE-ID ::= 14
|
||||
id-E-RABReleaseItemBearerRelComp ProtocolIE-ID ::= 15
|
||||
id-E-RABToBeSetupListBearerSUReq ProtocolIE-ID ::= 16
|
||||
id-E-RABToBeSetupItemBearerSUReq ProtocolIE-ID ::= 17
|
||||
id-E-RABAdmittedList ProtocolIE-ID ::= 18
|
||||
id-E-RABFailedToSetupListHOReqAck ProtocolIE-ID ::= 19
|
||||
id-E-RABAdmittedItem ProtocolIE-ID ::= 20
|
||||
id-E-RABFailedtoSetupItemHOReqAck ProtocolIE-ID ::= 21
|
||||
id-E-RABToBeSwitchedDLList ProtocolIE-ID ::= 22
|
||||
id-E-RABToBeSwitchedDLItem ProtocolIE-ID ::= 23
|
||||
id-E-RABToBeSetupListCtxtSUReq ProtocolIE-ID ::= 24
|
||||
id-TraceActivation ProtocolIE-ID ::= 25
|
||||
id-NAS-PDU ProtocolIE-ID ::= 26
|
||||
id-E-RABToBeSetupItemHOReq ProtocolIE-ID ::= 27
|
||||
id-E-RABSetupListBearerSURes ProtocolIE-ID ::= 28
|
||||
id-E-RABFailedToSetupListBearerSURes ProtocolIE-ID ::= 29
|
||||
id-E-RABToBeModifiedListBearerModReq ProtocolIE-ID ::= 30
|
||||
id-E-RABModifyListBearerModRes ProtocolIE-ID ::= 31
|
||||
id-E-RABFailedToModifyList ProtocolIE-ID ::= 32
|
||||
id-E-RABToBeReleasedList ProtocolIE-ID ::= 33
|
||||
id-E-RABFailedToReleaseList ProtocolIE-ID ::= 34
|
||||
id-E-RABItem ProtocolIE-ID ::= 35
|
||||
id-E-RABToBeModifiedItemBearerModReq ProtocolIE-ID ::= 36
|
||||
id-E-RABModifyItemBearerModRes ProtocolIE-ID ::= 37
|
||||
id-E-RABReleaseItem ProtocolIE-ID ::= 38
|
||||
id-E-RABSetupItemBearerSURes ProtocolIE-ID ::= 39
|
||||
id-SecurityContext ProtocolIE-ID ::= 40
|
||||
id-HandoverRestrictionList ProtocolIE-ID ::= 41
|
||||
id-UEPagingID ProtocolIE-ID ::= 43
|
||||
id-pagingDRX ProtocolIE-ID ::= 44
|
||||
id-TAIList ProtocolIE-ID ::= 46
|
||||
id-TAIItem ProtocolIE-ID ::= 47
|
||||
id-E-RABFailedToSetupListCtxtSURes ProtocolIE-ID ::= 48
|
||||
id-E-RABReleaseItemHOCmd ProtocolIE-ID ::= 49
|
||||
id-E-RABSetupItemCtxtSURes ProtocolIE-ID ::= 50
|
||||
id-E-RABSetupListCtxtSURes ProtocolIE-ID ::= 51
|
||||
id-E-RABToBeSetupItemCtxtSUReq ProtocolIE-ID ::= 52
|
||||
id-E-RABToBeSetupListHOReq ProtocolIE-ID ::= 53
|
||||
id-GERANtoLTEHOInformationRes ProtocolIE-ID ::= 55
|
||||
id-UTRANtoLTEHOInformationRes ProtocolIE-ID ::= 57
|
||||
id-CriticalityDiagnostics ProtocolIE-ID ::= 58
|
||||
id-Global-ENB-ID ProtocolIE-ID ::= 59
|
||||
id-eNBname ProtocolIE-ID ::= 60
|
||||
id-MMEname ProtocolIE-ID ::= 61
|
||||
id-ServedPLMNs ProtocolIE-ID ::= 63
|
||||
id-SupportedTAs ProtocolIE-ID ::= 64
|
||||
id-TimeToWait ProtocolIE-ID ::= 65
|
||||
id-uEaggregateMaximumBitrate ProtocolIE-ID ::= 66
|
||||
id-TAI ProtocolIE-ID ::= 67
|
||||
id-E-RABReleaseListBearerRelComp ProtocolIE-ID ::= 69
|
||||
id-cdma2000PDU ProtocolIE-ID ::= 70
|
||||
id-cdma2000RATType ProtocolIE-ID ::= 71
|
||||
id-cdma2000SectorID ProtocolIE-ID ::= 72
|
||||
id-SecurityKey ProtocolIE-ID ::= 73
|
||||
id-UERadioCapability ProtocolIE-ID ::= 74
|
||||
id-GUMMEI-ID ProtocolIE-ID ::= 75
|
||||
id-E-RABInformationListItem ProtocolIE-ID ::= 78
|
||||
id-Direct-Forwarding-Path-Availability ProtocolIE-ID ::= 79
|
||||
id-UEIdentityIndexValue ProtocolIE-ID ::= 80
|
||||
id-cdma2000HOStatus ProtocolIE-ID ::= 83
|
||||
id-cdma2000HORequiredIndication ProtocolIE-ID ::= 84
|
||||
id-E-UTRAN-Trace-ID ProtocolIE-ID ::= 86
|
||||
id-RelativeMMECapacity ProtocolIE-ID ::= 87
|
||||
id-SourceMME-UE-S1AP-ID ProtocolIE-ID ::= 88
|
||||
id-Bearers-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 89
|
||||
id-eNB-StatusTransfer-TransparentContainer ProtocolIE-ID ::= 90
|
||||
id-UE-associatedLogicalS1-ConnectionItem ProtocolIE-ID ::= 91
|
||||
id-ResetType ProtocolIE-ID ::= 92
|
||||
id-UE-associatedLogicalS1-ConnectionListResAck ProtocolIE-ID ::= 93
|
||||
id-E-RABToBeSwitchedULItem ProtocolIE-ID ::= 94
|
||||
id-E-RABToBeSwitchedULList ProtocolIE-ID ::= 95
|
||||
id-S-TMSI ProtocolIE-ID ::= 96
|
||||
id-cdma2000OneXRAND ProtocolIE-ID ::= 97
|
||||
id-RequestType ProtocolIE-ID ::= 98
|
||||
id-UE-S1AP-IDs ProtocolIE-ID ::= 99
|
||||
id-EUTRAN-CGI ProtocolIE-ID ::= 100
|
||||
id-OverloadResponse ProtocolIE-ID ::= 101
|
||||
id-cdma2000OneXSRVCCInfo ProtocolIE-ID ::= 102
|
||||
id-E-RABFailedToBeReleasedList ProtocolIE-ID ::= 103
|
||||
id-Source-ToTarget-TransparentContainer ProtocolIE-ID ::= 104
|
||||
id-ServedGUMMEIs ProtocolIE-ID ::= 105
|
||||
id-SubscriberProfileIDforRFP ProtocolIE-ID ::= 106
|
||||
id-UESecurityCapabilities ProtocolIE-ID ::= 107
|
||||
id-CSFallbackIndicator ProtocolIE-ID ::= 108
|
||||
id-CNDomain ProtocolIE-ID ::= 109
|
||||
id-E-RABReleasedList ProtocolIE-ID ::= 110
|
||||
id-MessageIdentifier ProtocolIE-ID ::= 111
|
||||
id-SerialNumber ProtocolIE-ID ::= 112
|
||||
id-WarningAreaList ProtocolIE-ID ::= 113
|
||||
id-RepetitionPeriod ProtocolIE-ID ::= 114
|
||||
id-NumberofBroadcastRequest ProtocolIE-ID ::= 115
|
||||
id-WarningType ProtocolIE-ID ::= 116
|
||||
id-WarningSecurityInfo ProtocolIE-ID ::= 117
|
||||
id-DataCodingScheme ProtocolIE-ID ::= 118
|
||||
id-WarningMessageContents ProtocolIE-ID ::= 119
|
||||
id-BroadcastCompletedAreaList ProtocolIE-ID ::= 120
|
||||
id-Inter-SystemInformationTransferTypeEDT ProtocolIE-ID ::= 121
|
||||
id-Inter-SystemInformationTransferTypeMDT ProtocolIE-ID ::= 122
|
||||
id-Target-ToSource-TransparentContainer ProtocolIE-ID ::= 123
|
||||
id-SRVCCOperationPossible ProtocolIE-ID ::= 124
|
||||
id-SRVCCHOIndication ProtocolIE-ID ::= 125
|
||||
id-NAS-DownlinkCount ProtocolIE-ID ::= 126
|
||||
id-CSG-Id ProtocolIE-ID ::= 127
|
||||
id-CSG-IdList ProtocolIE-ID ::= 128
|
||||
id-SONConfigurationTransferECT ProtocolIE-ID ::= 129
|
||||
id-SONConfigurationTransferMCT ProtocolIE-ID ::= 130
|
||||
id-TraceCollectionEntityIPAddress ProtocolIE-ID ::= 131
|
||||
id-MSClassmark2 ProtocolIE-ID ::= 132
|
||||
id-MSClassmark3 ProtocolIE-ID ::= 133
|
||||
id-RRC-Establishment-Cause ProtocolIE-ID ::= 134
|
||||
id-NASSecurityParametersfromE-UTRAN ProtocolIE-ID ::= 135
|
||||
id-NASSecurityParameterstoE-UTRAN ProtocolIE-ID ::= 136
|
||||
id-DefaultPagingDRX ProtocolIE-ID ::= 137
|
||||
id-Source-ToTarget-TransparentContainer-Secondary ProtocolIE-ID ::= 138
|
||||
id-Target-ToSource-TransparentContainer-Secondary ProtocolIE-ID ::= 139
|
||||
id-EUTRANRoundTripDelayEstimationInfo ProtocolIE-ID ::= 140
|
||||
id-BroadcastCancelledAreaList ProtocolIE-ID ::= 141
|
||||
id-ConcurrentWarningMessageIndicator ProtocolIE-ID ::= 142
|
||||
id-Data-Forwarding-Not-Possible ProtocolIE-ID ::= 143
|
||||
id-ExtendedRepetitionPeriod ProtocolIE-ID ::= 144
|
||||
id-CellAccessMode ProtocolIE-ID ::= 145
|
||||
id-CSGMembershipStatus ProtocolIE-ID ::= 146
|
||||
id-LPPa-PDU ProtocolIE-ID ::= 147
|
||||
id-Routing-ID ProtocolIE-ID ::= 148
|
||||
id-Time-Synchronization-Info ProtocolIE-ID ::= 149
|
||||
id-PS-ServiceNotAvailable ProtocolIE-ID ::= 150
|
||||
id-PagingPriority ProtocolIE-ID ::= 151
|
||||
id-x2TNLConfigurationInfo ProtocolIE-ID ::= 152
|
||||
id-eNBX2ExtendedTransportLayerAddresses ProtocolIE-ID ::= 153
|
||||
id-GUMMEIList ProtocolIE-ID ::= 154
|
||||
id-GW-TransportLayerAddress ProtocolIE-ID ::= 155
|
||||
id-Correlation-ID ProtocolIE-ID ::= 156
|
||||
id-SourceMME-GUMMEI ProtocolIE-ID ::= 157
|
||||
id-MME-UE-S1AP-ID-2 ProtocolIE-ID ::= 158
|
||||
id-RegisteredLAI ProtocolIE-ID ::= 159
|
||||
id-RelayNode-Indicator ProtocolIE-ID ::= 160
|
||||
id-TrafficLoadReductionIndication ProtocolIE-ID ::= 161
|
||||
id-MDTConfiguration ProtocolIE-ID ::= 162
|
||||
id-MMERelaySupportIndicator ProtocolIE-ID ::= 163
|
||||
id-GWContextReleaseIndication ProtocolIE-ID ::= 164
|
||||
id-ManagementBasedMDTAllowed ProtocolIE-ID ::= 165
|
||||
id-PrivacyIndicator ProtocolIE-ID ::= 166
|
||||
id-MME-UE-S1AP-ID S1ap-ProtocolIE-ID ::= 0
|
||||
id-HandoverType S1ap-ProtocolIE-ID ::= 1
|
||||
id-Cause S1ap-ProtocolIE-ID ::= 2
|
||||
id-SourceID S1ap-ProtocolIE-ID ::= 3
|
||||
id-TargetID S1ap-ProtocolIE-ID ::= 4
|
||||
id-eNB-UE-S1AP-ID S1ap-ProtocolIE-ID ::= 8
|
||||
id-E-RABSubjecttoDataForwardingList S1ap-ProtocolIE-ID ::= 12
|
||||
id-E-RABtoReleaseListHOCmd S1ap-ProtocolIE-ID ::= 13
|
||||
id-E-RABDataForwardingItem S1ap-ProtocolIE-ID ::= 14
|
||||
id-E-RABReleaseItemBearerRelComp S1ap-ProtocolIE-ID ::= 15
|
||||
id-E-RABToBeSetupListBearerSUReq S1ap-ProtocolIE-ID ::= 16
|
||||
id-E-RABToBeSetupItemBearerSUReq S1ap-ProtocolIE-ID ::= 17
|
||||
id-E-RABAdmittedList S1ap-ProtocolIE-ID ::= 18
|
||||
id-E-RABFailedToSetupListHOReqAck S1ap-ProtocolIE-ID ::= 19
|
||||
id-E-RABAdmittedItem S1ap-ProtocolIE-ID ::= 20
|
||||
id-E-RABFailedtoSetupItemHOReqAck S1ap-ProtocolIE-ID ::= 21
|
||||
id-E-RABToBeSwitchedDLList S1ap-ProtocolIE-ID ::= 22
|
||||
id-E-RABToBeSwitchedDLItem S1ap-ProtocolIE-ID ::= 23
|
||||
id-E-RABToBeSetupListCtxtSUReq S1ap-ProtocolIE-ID ::= 24
|
||||
id-TraceActivation S1ap-ProtocolIE-ID ::= 25
|
||||
id-NAS-PDU S1ap-ProtocolIE-ID ::= 26
|
||||
id-E-RABToBeSetupItemHOReq S1ap-ProtocolIE-ID ::= 27
|
||||
id-E-RABSetupListBearerSURes S1ap-ProtocolIE-ID ::= 28
|
||||
id-E-RABFailedToSetupListBearerSURes S1ap-ProtocolIE-ID ::= 29
|
||||
id-E-RABToBeModifiedListBearerModReq S1ap-ProtocolIE-ID ::= 30
|
||||
id-E-RABModifyListBearerModRes S1ap-ProtocolIE-ID ::= 31
|
||||
id-E-RABFailedToModifyList S1ap-ProtocolIE-ID ::= 32
|
||||
id-E-RABToBeReleasedList S1ap-ProtocolIE-ID ::= 33
|
||||
id-E-RABFailedToReleaseList S1ap-ProtocolIE-ID ::= 34
|
||||
id-E-RABItem S1ap-ProtocolIE-ID ::= 35
|
||||
id-E-RABToBeModifiedItemBearerModReq S1ap-ProtocolIE-ID ::= 36
|
||||
id-E-RABModifyItemBearerModRes S1ap-ProtocolIE-ID ::= 37
|
||||
id-E-RABReleaseItem S1ap-ProtocolIE-ID ::= 38
|
||||
id-E-RABSetupItemBearerSURes S1ap-ProtocolIE-ID ::= 39
|
||||
id-SecurityContext S1ap-ProtocolIE-ID ::= 40
|
||||
id-HandoverRestrictionList S1ap-ProtocolIE-ID ::= 41
|
||||
id-UEPagingID S1ap-ProtocolIE-ID ::= 43
|
||||
id-pagingDRX S1ap-ProtocolIE-ID ::= 44
|
||||
id-TAIList S1ap-ProtocolIE-ID ::= 46
|
||||
id-TAIItem S1ap-ProtocolIE-ID ::= 47
|
||||
id-E-RABFailedToSetupListCtxtSURes S1ap-ProtocolIE-ID ::= 48
|
||||
id-E-RABReleaseItemHOCmd S1ap-ProtocolIE-ID ::= 49
|
||||
id-E-RABSetupItemCtxtSURes S1ap-ProtocolIE-ID ::= 50
|
||||
id-E-RABSetupListCtxtSURes S1ap-ProtocolIE-ID ::= 51
|
||||
id-E-RABToBeSetupItemCtxtSUReq S1ap-ProtocolIE-ID ::= 52
|
||||
id-E-RABToBeSetupListHOReq S1ap-ProtocolIE-ID ::= 53
|
||||
id-GERANtoLTEHOInformationRes S1ap-ProtocolIE-ID ::= 55
|
||||
id-UTRANtoLTEHOInformationRes S1ap-ProtocolIE-ID ::= 57
|
||||
id-CriticalityDiagnostics S1ap-ProtocolIE-ID ::= 58
|
||||
id-Global-ENB-ID S1ap-ProtocolIE-ID ::= 59
|
||||
id-eNBname S1ap-ProtocolIE-ID ::= 60
|
||||
id-MMEname S1ap-ProtocolIE-ID ::= 61
|
||||
id-ServedPLMNs S1ap-ProtocolIE-ID ::= 63
|
||||
id-SupportedTAs S1ap-ProtocolIE-ID ::= 64
|
||||
id-TimeToWait S1ap-ProtocolIE-ID ::= 65
|
||||
id-uEaggregateMaximumBitrate S1ap-ProtocolIE-ID ::= 66
|
||||
id-TAI S1ap-ProtocolIE-ID ::= 67
|
||||
id-E-RABReleaseListBearerRelComp S1ap-ProtocolIE-ID ::= 69
|
||||
id-cdma2000PDU S1ap-ProtocolIE-ID ::= 70
|
||||
id-cdma2000RATType S1ap-ProtocolIE-ID ::= 71
|
||||
id-cdma2000SectorID S1ap-ProtocolIE-ID ::= 72
|
||||
id-SecurityKey S1ap-ProtocolIE-ID ::= 73
|
||||
id-UERadioCapability S1ap-ProtocolIE-ID ::= 74
|
||||
id-GUMMEI-ID S1ap-ProtocolIE-ID ::= 75
|
||||
id-E-RABInformationListItem S1ap-ProtocolIE-ID ::= 78
|
||||
id-Direct-Forwarding-Path-Availability S1ap-ProtocolIE-ID ::= 79
|
||||
id-UEIdentityIndexValue S1ap-ProtocolIE-ID ::= 80
|
||||
id-cdma2000HOStatus S1ap-ProtocolIE-ID ::= 83
|
||||
id-cdma2000HORequiredIndication S1ap-ProtocolIE-ID ::= 84
|
||||
id-E-UTRAN-Trace-ID S1ap-ProtocolIE-ID ::= 86
|
||||
id-RelativeMMECapacity S1ap-ProtocolIE-ID ::= 87
|
||||
id-SourceMME-UE-S1AP-ID S1ap-ProtocolIE-ID ::= 88
|
||||
id-Bearers-SubjectToStatusTransfer-Item S1ap-ProtocolIE-ID ::= 89
|
||||
id-eNB-StatusTransfer-TransparentContainer S1ap-ProtocolIE-ID ::= 90
|
||||
id-UE-associatedLogicalS1-ConnectionItem S1ap-ProtocolIE-ID ::= 91
|
||||
id-ResetType S1ap-ProtocolIE-ID ::= 92
|
||||
id-UE-associatedLogicalS1-ConnectionListResAck S1ap-ProtocolIE-ID ::= 93
|
||||
id-E-RABToBeSwitchedULItem S1ap-ProtocolIE-ID ::= 94
|
||||
id-E-RABToBeSwitchedULList S1ap-ProtocolIE-ID ::= 95
|
||||
id-S-TMSI S1ap-ProtocolIE-ID ::= 96
|
||||
id-cdma2000OneXRAND S1ap-ProtocolIE-ID ::= 97
|
||||
id-RequestType S1ap-ProtocolIE-ID ::= 98
|
||||
id-UE-S1AP-IDs S1ap-ProtocolIE-ID ::= 99
|
||||
id-EUTRAN-CGI S1ap-ProtocolIE-ID ::= 100
|
||||
id-OverloadResponse S1ap-ProtocolIE-ID ::= 101
|
||||
id-cdma2000OneXSRVCCInfo S1ap-ProtocolIE-ID ::= 102
|
||||
id-E-RABFailedToBeReleasedList S1ap-ProtocolIE-ID ::= 103
|
||||
id-Source-ToTarget-TransparentContainer S1ap-ProtocolIE-ID ::= 104
|
||||
id-ServedGUMMEIs S1ap-ProtocolIE-ID ::= 105
|
||||
id-SubscriberProfileIDforRFP S1ap-ProtocolIE-ID ::= 106
|
||||
id-UESecurityCapabilities S1ap-ProtocolIE-ID ::= 107
|
||||
id-CSFallbackIndicator S1ap-ProtocolIE-ID ::= 108
|
||||
id-CNDomain S1ap-ProtocolIE-ID ::= 109
|
||||
id-E-RABReleasedList S1ap-ProtocolIE-ID ::= 110
|
||||
id-MessageIdentifier S1ap-ProtocolIE-ID ::= 111
|
||||
id-SerialNumber S1ap-ProtocolIE-ID ::= 112
|
||||
id-WarningAreaList S1ap-ProtocolIE-ID ::= 113
|
||||
id-RepetitionPeriod S1ap-ProtocolIE-ID ::= 114
|
||||
id-NumberofBroadcastRequest S1ap-ProtocolIE-ID ::= 115
|
||||
id-WarningType S1ap-ProtocolIE-ID ::= 116
|
||||
id-WarningSecurityInfo S1ap-ProtocolIE-ID ::= 117
|
||||
id-DataCodingScheme S1ap-ProtocolIE-ID ::= 118
|
||||
id-WarningMessageContents S1ap-ProtocolIE-ID ::= 119
|
||||
id-BroadcastCompletedAreaList S1ap-ProtocolIE-ID ::= 120
|
||||
id-Inter-SystemInformationTransferTypeEDT S1ap-ProtocolIE-ID ::= 121
|
||||
id-Inter-SystemInformationTransferTypeMDT S1ap-ProtocolIE-ID ::= 122
|
||||
id-Target-ToSource-TransparentContainer S1ap-ProtocolIE-ID ::= 123
|
||||
id-SRVCCOperationPossible S1ap-ProtocolIE-ID ::= 124
|
||||
id-SRVCCHOIndication S1ap-ProtocolIE-ID ::= 125
|
||||
id-NAS-DownlinkCount S1ap-ProtocolIE-ID ::= 126
|
||||
id-CSG-Id S1ap-ProtocolIE-ID ::= 127
|
||||
id-CSG-IdList S1ap-ProtocolIE-ID ::= 128
|
||||
id-SONConfigurationTransferECT S1ap-ProtocolIE-ID ::= 129
|
||||
id-SONConfigurationTransferMCT S1ap-ProtocolIE-ID ::= 130
|
||||
id-TraceCollectionEntityIPAddress S1ap-ProtocolIE-ID ::= 131
|
||||
id-MSClassmark2 S1ap-ProtocolIE-ID ::= 132
|
||||
id-MSClassmark3 S1ap-ProtocolIE-ID ::= 133
|
||||
id-RRC-Establishment-Cause S1ap-ProtocolIE-ID ::= 134
|
||||
id-NASSecurityParametersfromE-UTRAN S1ap-ProtocolIE-ID ::= 135
|
||||
id-NASSecurityParameterstoE-UTRAN S1ap-ProtocolIE-ID ::= 136
|
||||
id-DefaultPagingDRX S1ap-ProtocolIE-ID ::= 137
|
||||
id-Source-ToTarget-TransparentContainer-Secondary S1ap-ProtocolIE-ID ::= 138
|
||||
id-Target-ToSource-TransparentContainer-Secondary S1ap-ProtocolIE-ID ::= 139
|
||||
id-EUTRANRoundTripDelayEstimationInfo S1ap-ProtocolIE-ID ::= 140
|
||||
id-BroadcastCancelledAreaList S1ap-ProtocolIE-ID ::= 141
|
||||
id-ConcurrentWarningMessageIndicator S1ap-ProtocolIE-ID ::= 142
|
||||
id-Data-Forwarding-Not-Possible S1ap-ProtocolIE-ID ::= 143
|
||||
id-ExtendedRepetitionPeriod S1ap-ProtocolIE-ID ::= 144
|
||||
id-CellAccessMode S1ap-ProtocolIE-ID ::= 145
|
||||
id-CSGMembershipStatus S1ap-ProtocolIE-ID ::= 146
|
||||
id-LPPa-PDU S1ap-ProtocolIE-ID ::= 147
|
||||
id-Routing-ID S1ap-ProtocolIE-ID ::= 148
|
||||
id-Time-Synchronization-Info S1ap-ProtocolIE-ID ::= 149
|
||||
id-PS-ServiceNotAvailable S1ap-ProtocolIE-ID ::= 150
|
||||
id-PagingPriority S1ap-ProtocolIE-ID ::= 151
|
||||
id-x2TNLConfigurationInfo S1ap-ProtocolIE-ID ::= 152
|
||||
id-eNBX2ExtendedTransportLayerAddresses S1ap-ProtocolIE-ID ::= 153
|
||||
id-GUMMEIList S1ap-ProtocolIE-ID ::= 154
|
||||
id-GW-TransportLayerAddress S1ap-ProtocolIE-ID ::= 155
|
||||
id-Correlation-ID S1ap-ProtocolIE-ID ::= 156
|
||||
id-SourceMME-GUMMEI S1ap-ProtocolIE-ID ::= 157
|
||||
id-MME-UE-S1AP-ID-2 S1ap-ProtocolIE-ID ::= 158
|
||||
id-RegisteredLAI S1ap-ProtocolIE-ID ::= 159
|
||||
id-RelayNode-Indicator S1ap-ProtocolIE-ID ::= 160
|
||||
id-TrafficLoadReductionIndication S1ap-ProtocolIE-ID ::= 161
|
||||
id-MDTConfiguration S1ap-ProtocolIE-ID ::= 162
|
||||
id-MMERelaySupportIndicator S1ap-ProtocolIE-ID ::= 163
|
||||
id-GWContextReleaseIndication S1ap-ProtocolIE-ID ::= 164
|
||||
id-ManagementBasedMDTAllowed S1ap-ProtocolIE-ID ::= 165
|
||||
id-PrivacyIndicator S1ap-ProtocolIE-ID ::= 166
|
||||
|
||||
END
|
||||
|
||||
@@ -19,16 +19,16 @@ BEGIN
|
||||
-- **************************************************************
|
||||
|
||||
IMPORTS
|
||||
Criticality,
|
||||
Presence,
|
||||
PrivateIE-ID,
|
||||
ProtocolExtensionID,
|
||||
ProtocolIE-ID
|
||||
S1ap-Criticality,
|
||||
S1ap-Presence,
|
||||
S1ap-PrivateIE-ID,
|
||||
S1ap-ProtocolExtensionID,
|
||||
S1ap-ProtocolIE-ID
|
||||
FROM S1AP-CommonDataTypes
|
||||
|
||||
maxPrivateIEs,
|
||||
maxProtocolExtensions,
|
||||
maxProtocolIEs
|
||||
s1ap-maxPrivateIEs,
|
||||
s1ap-maxProtocolExtensions,
|
||||
s1ap-maxProtocolIEs
|
||||
FROM S1AP-Constants;
|
||||
|
||||
-- **************************************************************
|
||||
@@ -38,10 +38,10 @@ FROM S1AP-Constants;
|
||||
-- **************************************************************
|
||||
|
||||
S1AP-PROTOCOL-IES ::= CLASS {
|
||||
&id ProtocolIE-ID UNIQUE,
|
||||
&criticality Criticality,
|
||||
&Value,
|
||||
&presence Presence
|
||||
&id S1ap-ProtocolIE-ID UNIQUE,
|
||||
&criticality S1ap-Criticality,
|
||||
&Value,
|
||||
&presence S1ap-Presence
|
||||
}
|
||||
WITH SYNTAX {
|
||||
ID &id
|
||||
@@ -57,20 +57,20 @@ WITH SYNTAX {
|
||||
-- **************************************************************
|
||||
|
||||
S1AP-PROTOCOL-IES-PAIR ::= CLASS {
|
||||
&id ProtocolIE-ID UNIQUE,
|
||||
&firstCriticality Criticality,
|
||||
&FirstValue,
|
||||
&secondCriticality Criticality,
|
||||
&SecondValue,
|
||||
&presence Presence
|
||||
&id S1ap-ProtocolIE-ID UNIQUE,
|
||||
&firstCriticality S1ap-Criticality,
|
||||
&FirstValue,
|
||||
&secondCriticality S1ap-Criticality,
|
||||
&SecondValue,
|
||||
&presence S1ap-Presence
|
||||
}
|
||||
WITH SYNTAX {
|
||||
ID &id
|
||||
FIRST CRITICALITY &firstCriticality
|
||||
FIRST TYPE &FirstValue
|
||||
SECOND CRITICALITY &secondCriticality
|
||||
SECOND TYPE &SecondValue
|
||||
PRESENCE &presence
|
||||
ID &id
|
||||
FIRST CRITICALITY &firstCriticality
|
||||
FIRST TYPE &FirstValue
|
||||
SECOND CRITICALITY &secondCriticality
|
||||
SECOND TYPE &SecondValue
|
||||
PRESENCE &presence
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
@@ -80,16 +80,16 @@ WITH SYNTAX {
|
||||
-- **************************************************************
|
||||
|
||||
S1AP-PROTOCOL-EXTENSION ::= CLASS {
|
||||
&id ProtocolExtensionID UNIQUE,
|
||||
&criticality Criticality,
|
||||
&Extension,
|
||||
&presence Presence
|
||||
&id S1ap-ProtocolExtensionID UNIQUE,
|
||||
&criticality S1ap-Criticality,
|
||||
&Extension,
|
||||
&presence S1ap-Presence
|
||||
}
|
||||
WITH SYNTAX {
|
||||
ID &id
|
||||
CRITICALITY &criticality
|
||||
EXTENSION &Extension
|
||||
PRESENCE &presence
|
||||
ID &id
|
||||
CRITICALITY &criticality
|
||||
EXTENSION &Extension
|
||||
PRESENCE &presence
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
@@ -99,16 +99,16 @@ WITH SYNTAX {
|
||||
-- **************************************************************
|
||||
|
||||
S1AP-PRIVATE-IES ::= CLASS {
|
||||
&id PrivateIE-ID,
|
||||
&criticality Criticality,
|
||||
&Value,
|
||||
&presence Presence
|
||||
&id S1ap-PrivateIE-ID,
|
||||
&criticality S1ap-Criticality,
|
||||
&Value,
|
||||
&presence S1ap-Presence
|
||||
}
|
||||
WITH SYNTAX {
|
||||
ID &id
|
||||
CRITICALITY &criticality
|
||||
TYPE &Value
|
||||
PRESENCE &presence
|
||||
ID &id
|
||||
CRITICALITY &criticality
|
||||
TYPE &Value
|
||||
PRESENCE &presence
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -19,134 +19,133 @@ BEGIN
|
||||
-- **************************************************************
|
||||
|
||||
IMPORTS
|
||||
Criticality,
|
||||
ProcedureCode
|
||||
S1ap-Criticality,
|
||||
S1ap-ProcedureCode
|
||||
FROM S1AP-CommonDataTypes
|
||||
|
||||
CellTrafficTrace,
|
||||
DeactivateTrace,
|
||||
DownlinkUEAssociatedLPPaTransport,
|
||||
DownlinkNASTransport,
|
||||
DownlinkNonUEAssociatedLPPaTransport,
|
||||
DownlinkS1cdma2000tunneling,
|
||||
ENBDirectInformationTransfer,
|
||||
ENBStatusTransfer,
|
||||
ENBConfigurationUpdate,
|
||||
ENBConfigurationUpdateAcknowledge,
|
||||
ENBConfigurationUpdateFailure,
|
||||
ErrorIndication,
|
||||
HandoverCancel,
|
||||
HandoverCancelAcknowledge,
|
||||
HandoverCommand,
|
||||
HandoverFailure,
|
||||
HandoverNotify,
|
||||
HandoverPreparationFailure,
|
||||
HandoverRequest,
|
||||
HandoverRequestAcknowledge,
|
||||
HandoverRequired,
|
||||
InitialContextSetupFailure,
|
||||
InitialContextSetupRequest,
|
||||
InitialContextSetupResponse,
|
||||
InitialUEMessage,
|
||||
KillRequest,
|
||||
KillResponse,
|
||||
LocationReportingControl,
|
||||
LocationReportingFailureIndication,
|
||||
LocationReport,
|
||||
MMEConfigurationUpdate,
|
||||
MMEConfigurationUpdateAcknowledge,
|
||||
MMEConfigurationUpdateFailure,
|
||||
MMEDirectInformationTransfer,
|
||||
MMEStatusTransfer,
|
||||
NASNonDeliveryIndication,
|
||||
OverloadStart,
|
||||
OverloadStop,
|
||||
Paging,
|
||||
PathSwitchRequest,
|
||||
PathSwitchRequestAcknowledge,
|
||||
PathSwitchRequestFailure,
|
||||
PrivateMessage,
|
||||
Reset,
|
||||
ResetAcknowledge,
|
||||
S1SetupFailure,
|
||||
S1SetupRequest,
|
||||
S1SetupResponse,
|
||||
E-RABModifyRequest,
|
||||
E-RABModifyResponse,
|
||||
E-RABReleaseCommand,
|
||||
E-RABReleaseResponse,
|
||||
E-RABReleaseIndication,
|
||||
E-RABSetupRequest,
|
||||
E-RABSetupResponse,
|
||||
TraceFailureIndication,
|
||||
TraceStart,
|
||||
UECapabilityInfoIndication,
|
||||
UEContextModificationFailure,
|
||||
UEContextModificationRequest,
|
||||
UEContextModificationResponse,
|
||||
UEContextReleaseCommand,
|
||||
UEContextReleaseComplete,
|
||||
UEContextReleaseRequest,
|
||||
UplinkUEAssociatedLPPaTransport,
|
||||
UplinkNASTransport,
|
||||
UplinkNonUEAssociatedLPPaTransport,
|
||||
UplinkS1cdma2000tunneling,
|
||||
WriteReplaceWarningRequest,
|
||||
WriteReplaceWarningResponse,
|
||||
ENBConfigurationTransfer,
|
||||
MMEConfigurationTransfer
|
||||
|
||||
S1ap-CellTrafficTrace,
|
||||
S1ap-DeactivateTrace,
|
||||
S1ap-DownlinkUEAssociatedLPPaTransport,
|
||||
S1ap-DownlinkNASTransport,
|
||||
S1ap-DownlinkNonUEAssociatedLPPaTransport,
|
||||
S1ap-DownlinkS1cdma2000tunneling,
|
||||
S1ap-ENBDirectInformationTransfer,
|
||||
S1ap-ENBStatusTransfer,
|
||||
S1ap-ENBConfigurationUpdate,
|
||||
S1ap-ENBConfigurationUpdateAcknowledge,
|
||||
S1ap-ENBConfigurationUpdateFailure,
|
||||
S1ap-ErrorIndication,
|
||||
S1ap-HandoverCancel,
|
||||
S1ap-HandoverCancelAcknowledge,
|
||||
S1ap-HandoverCommand,
|
||||
S1ap-HandoverFailure,
|
||||
S1ap-HandoverNotify,
|
||||
S1ap-HandoverPreparationFailure,
|
||||
S1ap-HandoverRequest,
|
||||
S1ap-HandoverRequestAcknowledge,
|
||||
S1ap-HandoverRequired,
|
||||
S1ap-InitialContextSetupFailure,
|
||||
S1ap-InitialContextSetupRequest,
|
||||
S1ap-InitialContextSetupResponse,
|
||||
S1ap-InitialUEMessage,
|
||||
S1ap-KillRequest,
|
||||
S1ap-KillResponse,
|
||||
S1ap-LocationReportingControl,
|
||||
S1ap-LocationReportingFailureIndication,
|
||||
S1ap-LocationReport,
|
||||
S1ap-MMEConfigurationUpdate,
|
||||
S1ap-MMEConfigurationUpdateAcknowledge,
|
||||
S1ap-MMEConfigurationUpdateFailure,
|
||||
S1ap-MMEDirectInformationTransfer,
|
||||
S1ap-MMEStatusTransfer,
|
||||
S1ap-NASNonDeliveryIndication,
|
||||
S1ap-OverloadStart,
|
||||
S1ap-OverloadStop,
|
||||
S1ap-Paging,
|
||||
S1ap-PathSwitchRequest,
|
||||
S1ap-PathSwitchRequestAcknowledge,
|
||||
S1ap-PathSwitchRequestFailure,
|
||||
S1ap-PrivateMessage,
|
||||
S1ap-Reset,
|
||||
S1ap-ResetAcknowledge,
|
||||
S1ap-S1SetupFailure,
|
||||
S1ap-S1SetupRequest,
|
||||
S1ap-S1SetupResponse,
|
||||
E-S1ap-RABModifyRequest,
|
||||
E-S1ap-RABModifyResponse,
|
||||
E-S1ap-RABReleaseCommand,
|
||||
E-S1ap-RABReleaseResponse,
|
||||
E-S1ap-RABReleaseIndication,
|
||||
E-S1ap-RABSetupRequest,
|
||||
E-S1ap-RABSetupResponse,
|
||||
S1ap-TraceFailureIndication,
|
||||
S1ap-TraceStart,
|
||||
S1ap-UECapabilityInfoIndication,
|
||||
S1ap-UEContextModificationFailure,
|
||||
S1ap-UEContextModificationRequest,
|
||||
S1ap-UEContextModificationResponse,
|
||||
S1ap-UEContextReleaseCommand,
|
||||
S1ap-UEContextReleaseComplete,
|
||||
S1ap-UEContextReleaseRequest,
|
||||
S1ap-UplinkUEAssociatedLPPaTransport,
|
||||
S1ap-UplinkNASTransport,
|
||||
S1ap-UplinkNonUEAssociatedLPPaTransport,
|
||||
S1ap-UplinkS1cdma2000tunneling,
|
||||
S1ap-WriteReplaceWarningRequest,
|
||||
S1ap-WriteReplaceWarningResponse,
|
||||
S1ap-ENBConfigurationTransfer,
|
||||
S1ap-MMEConfigurationTransfer
|
||||
|
||||
FROM S1AP-PDU-Contents
|
||||
|
||||
id-CellTrafficTrace,
|
||||
id-DeactivateTrace,
|
||||
id-downlinkUEAssociatedLPPaTransport,
|
||||
id-downlinkNASTransport,
|
||||
id-downlinkNonUEAssociatedLPPaTransport,
|
||||
id-DownlinkS1cdma2000tunneling,
|
||||
id-eNBStatusTransfer,
|
||||
id-ErrorIndication,
|
||||
id-HandoverCancel,
|
||||
id-HandoverNotification,
|
||||
id-HandoverPreparation,
|
||||
id-HandoverResourceAllocation,
|
||||
id-InitialContextSetup,
|
||||
id-initialUEMessage,
|
||||
id-ENBConfigurationUpdate,
|
||||
id-Kill,
|
||||
id-LocationReportingControl,
|
||||
id-LocationReportingFailureIndication,
|
||||
id-LocationReport,
|
||||
id-eNBDirectInformationTransfer,
|
||||
id-MMEConfigurationUpdate,
|
||||
id-MMEDirectInformationTransfer,
|
||||
id-MMEStatusTransfer,
|
||||
id-NASNonDeliveryIndication,
|
||||
id-OverloadStart,
|
||||
id-OverloadStop,
|
||||
id-Paging,
|
||||
id-PathSwitchRequest,
|
||||
id-PrivateMessage,
|
||||
id-Reset,
|
||||
id-S1Setup,
|
||||
id-E-RABModify,
|
||||
id-E-RABRelease,
|
||||
id-E-RABReleaseIndication,
|
||||
id-E-RABSetup,
|
||||
id-TraceFailureIndication,
|
||||
id-TraceStart,
|
||||
id-UECapabilityInfoIndication,
|
||||
id-UEContextModification,
|
||||
id-UEContextRelease,
|
||||
id-UEContextReleaseRequest,
|
||||
id-uplinkUEAssociatedLPPaTransport,
|
||||
id-uplinkNASTransport,
|
||||
id-uplinkNonUEAssociatedLPPaTransport,
|
||||
id-UplinkS1cdma2000tunneling,
|
||||
id-WriteReplaceWarning,
|
||||
id-eNBConfigurationTransfer,
|
||||
id-MMEConfigurationTransfer
|
||||
|
||||
id-CellTrafficTrace,
|
||||
id-DeactivateTrace,
|
||||
id-downlinkUEAssociatedLPPaTransport,
|
||||
id-downlinkNASTransport,
|
||||
id-downlinkNonUEAssociatedLPPaTransport,
|
||||
id-DownlinkS1cdma2000tunneling,
|
||||
id-eNBStatusTransfer,
|
||||
id-ErrorIndication,
|
||||
id-HandoverCancel,
|
||||
id-HandoverNotification,
|
||||
id-HandoverPreparation,
|
||||
id-HandoverResourceAllocation,
|
||||
id-InitialContextSetup,
|
||||
id-initialUEMessage,
|
||||
id-ENBConfigurationUpdate,
|
||||
id-Kill,
|
||||
id-LocationReportingControl,
|
||||
id-LocationReportingFailureIndication,
|
||||
id-LocationReport,
|
||||
id-eNBDirectInformationTransfer,
|
||||
id-MMEConfigurationUpdate,
|
||||
id-MMEDirectInformationTransfer,
|
||||
id-MMEStatusTransfer,
|
||||
id-NASNonDeliveryIndication,
|
||||
id-OverloadStart,
|
||||
id-OverloadStop,
|
||||
id-Paging,
|
||||
id-PathSwitchRequest,
|
||||
id-PrivateMessage,
|
||||
id-Reset,
|
||||
id-S1Setup,
|
||||
id-E-RABModify,
|
||||
id-E-RABRelease,
|
||||
id-E-RABReleaseIndication,
|
||||
id-E-RABSetup,
|
||||
id-TraceFailureIndication,
|
||||
id-TraceStart,
|
||||
id-UECapabilityInfoIndication,
|
||||
id-UEContextModification,
|
||||
id-UEContextRelease,
|
||||
id-UEContextReleaseRequest,
|
||||
id-uplinkUEAssociatedLPPaTransport,
|
||||
id-uplinkNASTransport,
|
||||
id-uplinkNonUEAssociatedLPPaTransport,
|
||||
id-UplinkS1cdma2000tunneling,
|
||||
id-WriteReplaceWarning,
|
||||
id-eNBConfigurationTransfer,
|
||||
id-MMEConfigurationTransfer
|
||||
FROM S1AP-Constants;
|
||||
|
||||
|
||||
@@ -157,18 +156,18 @@ FROM S1AP-Constants;
|
||||
-- **************************************************************
|
||||
|
||||
S1AP-ELEMENTARY-PROCEDURE ::= CLASS {
|
||||
&InitiatingMessage ,
|
||||
&SuccessfulOutcome OPTIONAL,
|
||||
&UnsuccessfulOutcome OPTIONAL,
|
||||
&procedureCode ProcedureCode UNIQUE,
|
||||
&criticality Criticality DEFAULT ignore
|
||||
&InitiatingMessage ,
|
||||
&SuccessfulOutcome OPTIONAL,
|
||||
&UnsuccessfulOutcome OPTIONAL,
|
||||
&procedureCode ProcedureCode UNIQUE,
|
||||
&criticality Criticality DEFAULT ignore
|
||||
}
|
||||
WITH SYNTAX {
|
||||
INITIATING MESSAGE &InitiatingMessage
|
||||
[SUCCESSFUL OUTCOME &SuccessfulOutcome]
|
||||
[UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
|
||||
PROCEDURE CODE &procedureCode
|
||||
[CRITICALITY &criticality]
|
||||
INITIATING MESSAGE &InitiatingMessage
|
||||
[SUCCESSFUL OUTCOME &SuccessfulOutcome]
|
||||
[UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
|
||||
PROCEDURE CODE &procedureCode
|
||||
[CRITICALITY &criticality]
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
@@ -178,28 +177,28 @@ WITH SYNTAX {
|
||||
-- **************************************************************
|
||||
|
||||
S1AP-PDU ::= CHOICE {
|
||||
initiatingMessage InitiatingMessage,
|
||||
successfulOutcome SuccessfulOutcome,
|
||||
unsuccessfulOutcome UnsuccessfulOutcome,
|
||||
...
|
||||
initiatingMessage InitiatingMessage,
|
||||
successfulOutcome SuccessfulOutcome,
|
||||
unsuccessfulOutcome UnsuccessfulOutcome,
|
||||
...
|
||||
}
|
||||
|
||||
InitiatingMessage ::= SEQUENCE {
|
||||
procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}),
|
||||
criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value S1AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}),
|
||||
criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value S1AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
|
||||
SuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}),
|
||||
criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value S1AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}),
|
||||
criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value S1AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
|
||||
UnsuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}),
|
||||
criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value S1AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}),
|
||||
criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value S1AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
@@ -209,66 +208,66 @@ UnsuccessfulOutcome ::= SEQUENCE {
|
||||
-- **************************************************************
|
||||
|
||||
S1AP-ELEMENTARY-PROCEDURES S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
S1AP-ELEMENTARY-PROCEDURES-CLASS-1 |
|
||||
S1AP-ELEMENTARY-PROCEDURES-CLASS-2,
|
||||
...
|
||||
S1AP-ELEMENTARY-PROCEDURES-CLASS-1 |
|
||||
S1AP-ELEMENTARY-PROCEDURES-CLASS-2,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
S1AP-ELEMENTARY-PROCEDURES-CLASS-1 S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
handoverPreparation |
|
||||
handoverResourceAllocation |
|
||||
pathSwitchRequest |
|
||||
e-RABSetup |
|
||||
e-RABModify |
|
||||
e-RABRelease |
|
||||
initialContextSetup |
|
||||
handoverCancel |
|
||||
kill |
|
||||
reset |
|
||||
s1Setup |
|
||||
uEContextModification |
|
||||
uEContextRelease |
|
||||
eNBConfigurationUpdate |
|
||||
mMEConfigurationUpdate |
|
||||
writeReplaceWarning ,
|
||||
...
|
||||
handoverPreparation |
|
||||
handoverResourceAllocation |
|
||||
pathSwitchRequest |
|
||||
e-RABSetup |
|
||||
e-RABModify |
|
||||
e-RABRelease |
|
||||
initialContextSetup |
|
||||
handoverCancel |
|
||||
kill |
|
||||
reset |
|
||||
s1Setup |
|
||||
uEContextModification |
|
||||
uEContextRelease |
|
||||
eNBConfigurationUpdate |
|
||||
mMEConfigurationUpdate |
|
||||
writeReplaceWarning ,
|
||||
...
|
||||
}
|
||||
|
||||
S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
handoverNotification |
|
||||
e-RABReleaseIndication |
|
||||
paging |
|
||||
downlinkNASTransport |
|
||||
initialUEMessage |
|
||||
uplinkNASTransport |
|
||||
errorIndication |
|
||||
nASNonDeliveryIndication |
|
||||
uEContextReleaseRequest |
|
||||
downlinkS1cdma2000tunneling |
|
||||
uplinkS1cdma2000tunneling |
|
||||
uECapabilityInfoIndication |
|
||||
eNBStatusTransfer |
|
||||
mMEStatusTransfer |
|
||||
deactivateTrace |
|
||||
traceStart |
|
||||
traceFailureIndication |
|
||||
cellTrafficTrace |
|
||||
locationReportingControl |
|
||||
locationReportingFailureIndication |
|
||||
locationReport |
|
||||
overloadStart |
|
||||
overloadStop |
|
||||
eNBDirectInformationTransfer |
|
||||
mMEDirectInformationTransfer |
|
||||
eNBConfigurationTransfer |
|
||||
mMEConfigurationTransfer |
|
||||
privateMessage ,
|
||||
...,
|
||||
downlinkUEAssociatedLPPaTransport |
|
||||
uplinkUEAssociatedLPPaTransport |
|
||||
downlinkNonUEAssociatedLPPaTransport |
|
||||
uplinkNonUEAssociatedLPPaTransport
|
||||
S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
handoverNotification |
|
||||
e-RABReleaseIndication |
|
||||
paging |
|
||||
downlinkNASTransport |
|
||||
initialUEMessage |
|
||||
uplinkNASTransport |
|
||||
errorIndication |
|
||||
nASNonDeliveryIndication |
|
||||
uEContextReleaseRequest |
|
||||
downlinkS1cdma2000tunneling |
|
||||
uplinkS1cdma2000tunneling |
|
||||
uECapabilityInfoIndication |
|
||||
eNBStatusTransfer |
|
||||
mMEStatusTransfer |
|
||||
deactivateTrace |
|
||||
traceStart |
|
||||
traceFailureIndication |
|
||||
cellTrafficTrace |
|
||||
locationReportingControl |
|
||||
locationReportingFailureIndication |
|
||||
locationReport |
|
||||
overloadStart |
|
||||
overloadStop |
|
||||
eNBDirectInformationTransfer |
|
||||
mMEDirectInformationTransfer |
|
||||
eNBConfigurationTransfer |
|
||||
mMEConfigurationTransfer |
|
||||
privateMessage ,
|
||||
...,
|
||||
downlinkUEAssociatedLPPaTransport |
|
||||
uplinkUEAssociatedLPPaTransport |
|
||||
downlinkNonUEAssociatedLPPaTransport |
|
||||
uplinkNonUEAssociatedLPPaTransport
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
@@ -278,211 +277,211 @@ S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
-- **************************************************************
|
||||
|
||||
handoverPreparation S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE HandoverRequired
|
||||
SUCCESSFUL OUTCOME HandoverCommand
|
||||
UNSUCCESSFUL OUTCOME HandoverPreparationFailure
|
||||
PROCEDURE CODE id-HandoverPreparation
|
||||
CRITICALITY reject
|
||||
INITIATING MESSAGE HandoverRequired
|
||||
SUCCESSFUL OUTCOME HandoverCommand
|
||||
UNSUCCESSFUL OUTCOME HandoverPreparationFailure
|
||||
PROCEDURE CODE id-HandoverPreparation
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
handoverResourceAllocation S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE HandoverRequest
|
||||
SUCCESSFUL OUTCOME HandoverRequestAcknowledge
|
||||
UNSUCCESSFUL OUTCOME HandoverFailure
|
||||
PROCEDURE CODE id-HandoverResourceAllocation
|
||||
CRITICALITY reject
|
||||
INITIATING MESSAGE HandoverRequest
|
||||
SUCCESSFUL OUTCOME HandoverRequestAcknowledge
|
||||
UNSUCCESSFUL OUTCOME HandoverFailure
|
||||
PROCEDURE CODE id-HandoverResourceAllocation
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
handoverNotification S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE HandoverNotify
|
||||
PROCEDURE CODE id-HandoverNotification
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE HandoverNotify
|
||||
PROCEDURE CODE id-HandoverNotification
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
pathSwitchRequest S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE PathSwitchRequest
|
||||
SUCCESSFUL OUTCOME PathSwitchRequestAcknowledge
|
||||
UNSUCCESSFUL OUTCOME PathSwitchRequestFailure
|
||||
PROCEDURE CODE id-PathSwitchRequest
|
||||
CRITICALITY reject
|
||||
INITIATING MESSAGE PathSwitchRequest
|
||||
SUCCESSFUL OUTCOME PathSwitchRequestAcknowledge
|
||||
UNSUCCESSFUL OUTCOME PathSwitchRequestFailure
|
||||
PROCEDURE CODE id-PathSwitchRequest
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
e-RABSetup S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE E-RABSetupRequest
|
||||
SUCCESSFUL OUTCOME E-RABSetupResponse
|
||||
PROCEDURE CODE id-E-RABSetup
|
||||
CRITICALITY reject
|
||||
INITIATING MESSAGE E-RABSetupRequest
|
||||
SUCCESSFUL OUTCOME E-RABSetupResponse
|
||||
PROCEDURE CODE id-E-RABSetup
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
e-RABModify S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE E-RABModifyRequest
|
||||
SUCCESSFUL OUTCOME E-RABModifyResponse
|
||||
PROCEDURE CODE id-E-RABModify
|
||||
CRITICALITY reject
|
||||
INITIATING MESSAGE E-RABModifyRequest
|
||||
SUCCESSFUL OUTCOME E-RABModifyResponse
|
||||
PROCEDURE CODE id-E-RABModify
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
e-RABRelease S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE E-RABReleaseCommand
|
||||
SUCCESSFUL OUTCOME E-RABReleaseResponse
|
||||
PROCEDURE CODE id-E-RABRelease
|
||||
CRITICALITY reject
|
||||
INITIATING MESSAGE E-RABReleaseCommand
|
||||
SUCCESSFUL OUTCOME E-RABReleaseResponse
|
||||
PROCEDURE CODE id-E-RABRelease
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
e-RABReleaseIndication S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE E-RABReleaseIndication
|
||||
PROCEDURE CODE id-E-RABReleaseIndication
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE E-RABReleaseIndication
|
||||
PROCEDURE CODE id-E-RABReleaseIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
initialContextSetup S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE InitialContextSetupRequest
|
||||
SUCCESSFUL OUTCOME InitialContextSetupResponse
|
||||
UNSUCCESSFUL OUTCOME InitialContextSetupFailure
|
||||
PROCEDURE CODE id-InitialContextSetup
|
||||
CRITICALITY reject
|
||||
INITIATING MESSAGE InitialContextSetupRequest
|
||||
SUCCESSFUL OUTCOME InitialContextSetupResponse
|
||||
UNSUCCESSFUL OUTCOME InitialContextSetupFailure
|
||||
PROCEDURE CODE id-InitialContextSetup
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
uEContextReleaseRequest S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE UEContextReleaseRequest
|
||||
PROCEDURE CODE id-UEContextReleaseRequest
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE UEContextReleaseRequest
|
||||
PROCEDURE CODE id-UEContextReleaseRequest
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
paging S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE Paging
|
||||
PROCEDURE CODE id-Paging
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE Paging
|
||||
PROCEDURE CODE id-Paging
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
downlinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE DownlinkNASTransport
|
||||
PROCEDURE CODE id-downlinkNASTransport
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE DownlinkNASTransport
|
||||
PROCEDURE CODE id-downlinkNASTransport
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
initialUEMessage S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE InitialUEMessage
|
||||
PROCEDURE CODE id-initialUEMessage
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE InitialUEMessage
|
||||
PROCEDURE CODE id-initialUEMessage
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
uplinkNASTransport S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE UplinkNASTransport
|
||||
PROCEDURE CODE id-uplinkNASTransport
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE UplinkNASTransport
|
||||
PROCEDURE CODE id-uplinkNASTransport
|
||||
CRITICALITY ignore
|
||||
}
|
||||
nASNonDeliveryIndication S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE NASNonDeliveryIndication
|
||||
PROCEDURE CODE id-NASNonDeliveryIndication
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE NASNonDeliveryIndication
|
||||
PROCEDURE CODE id-NASNonDeliveryIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
handoverCancel S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE HandoverCancel
|
||||
SUCCESSFUL OUTCOME HandoverCancelAcknowledge
|
||||
PROCEDURE CODE id-HandoverCancel
|
||||
CRITICALITY reject
|
||||
INITIATING MESSAGE HandoverCancel
|
||||
SUCCESSFUL OUTCOME HandoverCancelAcknowledge
|
||||
PROCEDURE CODE id-HandoverCancel
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
reset S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE Reset
|
||||
SUCCESSFUL OUTCOME ResetAcknowledge
|
||||
PROCEDURE CODE id-Reset
|
||||
CRITICALITY reject
|
||||
INITIATING MESSAGE Reset
|
||||
SUCCESSFUL OUTCOME ResetAcknowledge
|
||||
PROCEDURE CODE id-Reset
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
errorIndication S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ErrorIndication
|
||||
PROCEDURE CODE id-ErrorIndication
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE ErrorIndication
|
||||
PROCEDURE CODE id-ErrorIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
s1Setup S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE S1SetupRequest
|
||||
SUCCESSFUL OUTCOME S1SetupResponse
|
||||
UNSUCCESSFUL OUTCOME S1SetupFailure
|
||||
PROCEDURE CODE id-S1Setup
|
||||
CRITICALITY reject
|
||||
INITIATING MESSAGE S1SetupRequest
|
||||
SUCCESSFUL OUTCOME S1SetupResponse
|
||||
UNSUCCESSFUL OUTCOME S1SetupFailure
|
||||
PROCEDURE CODE id-S1Setup
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
eNBConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ENBConfigurationUpdate
|
||||
SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge
|
||||
UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure
|
||||
PROCEDURE CODE id-ENBConfigurationUpdate
|
||||
CRITICALITY reject
|
||||
INITIATING MESSAGE ENBConfigurationUpdate
|
||||
SUCCESSFUL OUTCOME ENBConfigurationUpdateAcknowledge
|
||||
UNSUCCESSFUL OUTCOME ENBConfigurationUpdateFailure
|
||||
PROCEDURE CODE id-ENBConfigurationUpdate
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
mMEConfigurationUpdate S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE MMEConfigurationUpdate
|
||||
SUCCESSFUL OUTCOME MMEConfigurationUpdateAcknowledge
|
||||
UNSUCCESSFUL OUTCOME MMEConfigurationUpdateFailure
|
||||
PROCEDURE CODE id-MMEConfigurationUpdate
|
||||
CRITICALITY reject
|
||||
INITIATING MESSAGE MMEConfigurationUpdate
|
||||
SUCCESSFUL OUTCOME MMEConfigurationUpdateAcknowledge
|
||||
UNSUCCESSFUL OUTCOME MMEConfigurationUpdateFailure
|
||||
PROCEDURE CODE id-MMEConfigurationUpdate
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
downlinkS1cdma2000tunneling S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE DownlinkS1cdma2000tunneling
|
||||
PROCEDURE CODE id-DownlinkS1cdma2000tunneling
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE DownlinkS1cdma2000tunneling
|
||||
PROCEDURE CODE id-DownlinkS1cdma2000tunneling
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
uplinkS1cdma2000tunneling S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE UplinkS1cdma2000tunneling
|
||||
PROCEDURE CODE id-UplinkS1cdma2000tunneling
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE UplinkS1cdma2000tunneling
|
||||
PROCEDURE CODE id-UplinkS1cdma2000tunneling
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
uEContextModification S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE UEContextModificationRequest
|
||||
SUCCESSFUL OUTCOME UEContextModificationResponse
|
||||
UNSUCCESSFUL OUTCOME UEContextModificationFailure
|
||||
INITIATING MESSAGE UEContextModificationRequest
|
||||
SUCCESSFUL OUTCOME UEContextModificationResponse
|
||||
UNSUCCESSFUL OUTCOME UEContextModificationFailure
|
||||
|
||||
PROCEDURE CODE id-UEContextModification
|
||||
CRITICALITY reject
|
||||
PROCEDURE CODE id-UEContextModification
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
uECapabilityInfoIndication S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE UECapabilityInfoIndication
|
||||
PROCEDURE CODE id-UECapabilityInfoIndication
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE UECapabilityInfoIndication
|
||||
PROCEDURE CODE id-UECapabilityInfoIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
uEContextRelease S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE UEContextReleaseCommand
|
||||
SUCCESSFUL OUTCOME UEContextReleaseComplete
|
||||
PROCEDURE CODE id-UEContextRelease
|
||||
CRITICALITY reject
|
||||
INITIATING MESSAGE UEContextReleaseCommand
|
||||
SUCCESSFUL OUTCOME UEContextReleaseComplete
|
||||
PROCEDURE CODE id-UEContextRelease
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
eNBStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ENBStatusTransfer
|
||||
PROCEDURE CODE id-eNBStatusTransfer
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE ENBStatusTransfer
|
||||
PROCEDURE CODE id-eNBStatusTransfer
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
mMEStatusTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE MMEStatusTransfer
|
||||
PROCEDURE CODE id-MMEStatusTransfer
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE MMEStatusTransfer
|
||||
PROCEDURE CODE id-MMEStatusTransfer
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
deactivateTrace S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE DeactivateTrace
|
||||
PROCEDURE CODE id-DeactivateTrace
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE DeactivateTrace
|
||||
PROCEDURE CODE id-DeactivateTrace
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
traceStart S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE TraceStart
|
||||
PROCEDURE CODE id-TraceStart
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE TraceStart
|
||||
PROCEDURE CODE id-TraceStart
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
traceFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE TraceFailureIndication
|
||||
PROCEDURE CODE id-TraceFailureIndication
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE TraceFailureIndication
|
||||
PROCEDURE CODE id-TraceFailureIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
cellTrafficTrace S1AP-ELEMENTARY-PROCEDURE ::={
|
||||
INITIATING MESSAGE CellTrafficTrace
|
||||
@@ -491,101 +490,101 @@ CRITICALITY ignore
|
||||
}
|
||||
|
||||
locationReportingControl S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE LocationReportingControl
|
||||
PROCEDURE CODE id-LocationReportingControl
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE LocationReportingControl
|
||||
PROCEDURE CODE id-LocationReportingControl
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
locationReportingFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE LocationReportingFailureIndication
|
||||
PROCEDURE CODE id-LocationReportingFailureIndication
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE LocationReportingFailureIndication
|
||||
PROCEDURE CODE id-LocationReportingFailureIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
locationReport S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE LocationReport
|
||||
PROCEDURE CODE id-LocationReport
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE LocationReport
|
||||
PROCEDURE CODE id-LocationReport
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
overloadStart S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE OverloadStart
|
||||
PROCEDURE CODE id-OverloadStart
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE OverloadStart
|
||||
PROCEDURE CODE id-OverloadStart
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
overloadStop S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE OverloadStop
|
||||
PROCEDURE CODE id-OverloadStop
|
||||
CRITICALITY reject
|
||||
INITIATING MESSAGE OverloadStop
|
||||
PROCEDURE CODE id-OverloadStop
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
writeReplaceWarning S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE WriteReplaceWarningRequest
|
||||
SUCCESSFUL OUTCOME WriteReplaceWarningResponse
|
||||
PROCEDURE CODE id-WriteReplaceWarning
|
||||
CRITICALITY reject
|
||||
INITIATING MESSAGE WriteReplaceWarningRequest
|
||||
SUCCESSFUL OUTCOME WriteReplaceWarningResponse
|
||||
PROCEDURE CODE id-WriteReplaceWarning
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
eNBDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ENBDirectInformationTransfer
|
||||
PROCEDURE CODE id-eNBDirectInformationTransfer
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE ENBDirectInformationTransfer
|
||||
PROCEDURE CODE id-eNBDirectInformationTransfer
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
mMEDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE MMEDirectInformationTransfer
|
||||
PROCEDURE CODE id-MMEDirectInformationTransfer
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE MMEDirectInformationTransfer
|
||||
PROCEDURE CODE id-MMEDirectInformationTransfer
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
eNBConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ENBConfigurationTransfer
|
||||
PROCEDURE CODE id-eNBConfigurationTransfer
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE ENBConfigurationTransfer
|
||||
PROCEDURE CODE id-eNBConfigurationTransfer
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
mMEConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE MMEConfigurationTransfer
|
||||
PROCEDURE CODE id-MMEConfigurationTransfer
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE MMEConfigurationTransfer
|
||||
PROCEDURE CODE id-MMEConfigurationTransfer
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
|
||||
privateMessage S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE PrivateMessage
|
||||
PROCEDURE CODE id-PrivateMessage
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE PrivateMessage
|
||||
PROCEDURE CODE id-PrivateMessage
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
kill S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE KillRequest
|
||||
SUCCESSFUL OUTCOME KillResponse
|
||||
PROCEDURE CODE id-Kill
|
||||
CRITICALITY reject
|
||||
INITIATING MESSAGE KillRequest
|
||||
SUCCESSFUL OUTCOME KillResponse
|
||||
PROCEDURE CODE id-Kill
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
downlinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE DownlinkUEAssociatedLPPaTransport
|
||||
PROCEDURE CODE id-downlinkUEAssociatedLPPaTransport
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE DownlinkUEAssociatedLPPaTransport
|
||||
PROCEDURE CODE id-downlinkUEAssociatedLPPaTransport
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
uplinkUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE UplinkUEAssociatedLPPaTransport
|
||||
PROCEDURE CODE id-uplinkUEAssociatedLPPaTransport
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE UplinkUEAssociatedLPPaTransport
|
||||
PROCEDURE CODE id-uplinkUEAssociatedLPPaTransport
|
||||
CRITICALITY ignore
|
||||
}
|
||||
downlinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE DownlinkNonUEAssociatedLPPaTransport
|
||||
PROCEDURE CODE id-downlinkNonUEAssociatedLPPaTransport
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE DownlinkNonUEAssociatedLPPaTransport
|
||||
PROCEDURE CODE id-downlinkNonUEAssociatedLPPaTransport
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
uplinkNonUEAssociatedLPPaTransport S1AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE UplinkNonUEAssociatedLPPaTransport
|
||||
PROCEDURE CODE id-uplinkNonUEAssociatedLPPaTransport
|
||||
CRITICALITY ignore
|
||||
INITIATING MESSAGE UplinkNonUEAssociatedLPPaTransport
|
||||
PROCEDURE CODE id-uplinkNonUEAssociatedLPPaTransport
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
END
|
||||
|
||||
@@ -8,406 +8,405 @@ DEFINITIONS AUTOMATIC TAGS ::=
|
||||
BEGIN
|
||||
|
||||
IMPORTS
|
||||
Criticality,
|
||||
ProcedureCode,
|
||||
ProtocolIE-ID
|
||||
S1ap-Criticality,
|
||||
S1ap-ProcedureCode,
|
||||
S1ap-ProtocolIE-ID
|
||||
|
||||
FROM S1AP-CommonDataTypes
|
||||
|
||||
maxProtocolIEs
|
||||
s1ap-maxProtocolIEs
|
||||
|
||||
FROM S1AP-Constants;
|
||||
|
||||
S1AP-PDU ::= CHOICE {
|
||||
initiatingMessage InitiatingMessage,
|
||||
successfulOutcome SuccessfulOutcome,
|
||||
unsuccessfulOutcome UnsuccessfulOutcome,
|
||||
initiatingMessage S1ap-InitiatingMessage,
|
||||
successfulOutcome S1ap-SuccessfulOutcome,
|
||||
unsuccessfulOutcome S1ap-UnsuccessfulOutcome,
|
||||
...
|
||||
}
|
||||
|
||||
InitiatingMessage ::= SEQUENCE {
|
||||
procedureCode ProcedureCode,
|
||||
criticality Criticality,
|
||||
S1ap-InitiatingMessage ::= SEQUENCE {
|
||||
procedureCode S1ap-ProcedureCode,
|
||||
criticality S1ap-Criticality,
|
||||
value ANY
|
||||
}
|
||||
|
||||
SuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode ProcedureCode,
|
||||
criticality Criticality,
|
||||
S1ap-SuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode S1ap-ProcedureCode,
|
||||
criticality S1ap-Criticality,
|
||||
value ANY
|
||||
}
|
||||
|
||||
UnsuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode ProcedureCode,
|
||||
criticality Criticality,
|
||||
S1ap-UnsuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode S1ap-ProcedureCode,
|
||||
criticality S1ap-Criticality,
|
||||
value ANY
|
||||
}
|
||||
|
||||
HandoverRequired ::= SEQUENCE {
|
||||
handoverRequired-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-HandoverRequired ::= SEQUENCE {
|
||||
s1ap-HandoverRequired-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
HandoverCommand ::= SEQUENCE {
|
||||
handoverCommand-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-HandoverCommand ::= SEQUENCE {
|
||||
s1ap-HandoverCommand-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
HandoverPreparationFailure ::= SEQUENCE {
|
||||
handoverPreparationFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-HandoverPreparationFailure ::= SEQUENCE {
|
||||
s1ap-HandoverPreparationFailure-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
HandoverRequest ::= SEQUENCE {
|
||||
handoverRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-HandoverRequest ::= SEQUENCE {
|
||||
s1ap-HandoverRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
HandoverRequestAcknowledge ::= SEQUENCE {
|
||||
handoverRequestAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-HandoverRequestAcknowledge ::= SEQUENCE {
|
||||
s1ap-HandoverRequestAcknowledge-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
HandoverFailure ::= SEQUENCE {
|
||||
handoverFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-HandoverFailure ::= SEQUENCE {
|
||||
s1ap-HandoverFailure-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
HandoverNotify ::= SEQUENCE {
|
||||
handoverNotify-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-HandoverNotify ::= SEQUENCE {
|
||||
s1ap-HandoverNotify-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
PathSwitchRequest ::= SEQUENCE {
|
||||
pathSwitchRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-PathSwitchRequest ::= SEQUENCE {
|
||||
s1ap-PathSwitchRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
PathSwitchRequestAcknowledge ::= SEQUENCE {
|
||||
pathSwitchRequestAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-PathSwitchRequestAcknowledge ::= SEQUENCE {
|
||||
s1ap-PathSwitchRequestAcknowledge-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
PathSwitchRequestFailure ::= SEQUENCE {
|
||||
pathSwitchRequestFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-PathSwitchRequestFailure ::= SEQUENCE {
|
||||
s1ap-PathSwitchRequestFailure-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
E-RABSetupRequest ::= SEQUENCE {
|
||||
e-RABSetupRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-E-RABSetupRequest ::= SEQUENCE {
|
||||
s1ap-E-RABSetupRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
E-RABSetupResponse ::= SEQUENCE {
|
||||
e-RABSetupResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-E-RABSetupResponse ::= SEQUENCE {
|
||||
s1ap-E-RABSetupResponse-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
E-RABModifyRequest ::= SEQUENCE {
|
||||
e-RABModifyRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-E-RABModifyRequest ::= SEQUENCE {
|
||||
s1ap-E-RABModifyRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
E-RABModifyResponse ::= SEQUENCE {
|
||||
e-RABModifyResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-E-RABModifyResponse ::= SEQUENCE {
|
||||
s1ap-E-RABModifyResponse-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
E-RABReleaseIndication ::= SEQUENCE {
|
||||
e-RABReleaseIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-E-RABReleaseIndication ::= SEQUENCE {
|
||||
s1ap-E-RABReleaseIndication-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
E-RABReleaseCommand ::= SEQUENCE {
|
||||
e-RABReleaseCommand-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-E-RABReleaseCommand ::= SEQUENCE {
|
||||
s1ap-E-RABReleaseCommand-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
E-RABReleaseResponse ::= SEQUENCE {
|
||||
e-RABReleaseResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-E-RABReleaseResponse ::= SEQUENCE {
|
||||
s1ap-E-RABReleaseResponse-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
InitialContextSetupRequest ::= SEQUENCE {
|
||||
initialContextSetupRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-InitialContextSetupRequest ::= SEQUENCE {
|
||||
s1ap-InitialContextSetupRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
InitialContextSetupResponse ::= SEQUENCE {
|
||||
initialContextSetupResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-InitialContextSetupResponse ::= SEQUENCE {
|
||||
s1ap-InitialContextSetupResponse-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
InitialContextSetupFailure ::= SEQUENCE {
|
||||
initialContextSetupFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-InitialContextSetupFailure ::= SEQUENCE {
|
||||
s1ap-InitialContextSetupFailure-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
UEContextReleaseRequest ::= SEQUENCE {
|
||||
ueContextReleaseRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-UEContextReleaseRequest ::= SEQUENCE {
|
||||
s1ap-UEContextReleaseRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
Paging ::= SEQUENCE {
|
||||
paging-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-Paging ::= SEQUENCE {
|
||||
s1ap-Paging-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
DownlinkNASTransport ::= SEQUENCE {
|
||||
downlinkNASTransport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-DownlinkNASTransport ::= SEQUENCE {
|
||||
s1ap-DownlinkNASTransport-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
InitialUEMessage ::= SEQUENCE {
|
||||
initialUEMessage-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-InitialUEMessage ::= SEQUENCE {
|
||||
s1ap-InitialUEMessage-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
UplinkNASTransport ::= SEQUENCE {
|
||||
uplinkNASTransport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-UplinkNASTransport ::= SEQUENCE {
|
||||
s1ap-UplinkNASTransport-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
NASNonDeliveryIndication ::= SEQUENCE {
|
||||
nasNonDeliveryIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-NASNonDeliveryIndication ::= SEQUENCE {
|
||||
s1ap-NASNonDeliveryIndication-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
HandoverCancel ::= SEQUENCE {
|
||||
handoverCancel-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-HandoverCancel ::= SEQUENCE {
|
||||
s1ap-HandoverCancel-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
HandoverCancelAcknowledge ::= SEQUENCE {
|
||||
handoverCancelAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-HandoverCancelAcknowledge ::= SEQUENCE {
|
||||
s1ap-HandoverCancelAcknowledge-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
Reset ::= SEQUENCE {
|
||||
reset-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-Reset ::= SEQUENCE {
|
||||
s1ap-Reset-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
ResetAcknowledge ::= SEQUENCE {
|
||||
resetAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-ResetAcknowledge ::= SEQUENCE {
|
||||
s1ap-ResetAcknowledge-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
S1SetupResponse ::= SEQUENCE {
|
||||
s1SetupResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-S1SetupResponse ::= SEQUENCE {
|
||||
s1ap-S1SetupResponse-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
S1SetupRequest ::= SEQUENCE {
|
||||
s1SetupRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-S1SetupRequest ::= SEQUENCE {
|
||||
s1ap-S1SetupRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
S1SetupFailure ::= SEQUENCE
|
||||
{
|
||||
s1SetupFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-S1SetupFailure ::= SEQUENCE {
|
||||
s1ap-S1SetupFailure-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
ErrorIndication ::= SEQUENCE {
|
||||
errorIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-ErrorIndication ::= SEQUENCE {
|
||||
s1ap-ErrorIndication-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
ENBConfigurationUpdate ::= SEQUENCE {
|
||||
eNBConfigurationUpdate-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-ENBConfigurationUpdate ::= SEQUENCE {
|
||||
s1ap-ENBConfigurationUpdate-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
ENBConfigurationUpdateAcknowledge ::= SEQUENCE {
|
||||
eNBConfigurationUpdateAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-ENBConfigurationUpdateAcknowledge ::= SEQUENCE {
|
||||
s1ap-ENBConfigurationUpdateAcknowledge-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
ENBConfigurationUpdateFailure ::= SEQUENCE {
|
||||
eNBConfigurationUpdateFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-ENBConfigurationUpdateFailure ::= SEQUENCE {
|
||||
s1ap-ENBConfigurationUpdateFailure-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
MMEConfigurationUpdate ::= SEQUENCE {
|
||||
mmeConfigurationUpdate-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-MMEConfigurationUpdate ::= SEQUENCE {
|
||||
s1ap-MMEConfigurationUpdate-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
MMEConfigurationUpdateAcknowledge ::= SEQUENCE {
|
||||
mmeConfigurationUpdateAcknowledge-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-MMEConfigurationUpdateAcknowledge ::= SEQUENCE {
|
||||
s1ap-MMEConfigurationUpdateAcknowledge-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
MMEConfigurationUpdateFailure ::= SEQUENCE {
|
||||
mmeConfigurationUpdateFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-MMEConfigurationUpdateFailure ::= SEQUENCE {
|
||||
s1ap-MMEConfigurationUpdateFailure-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
DownlinkS1cdma2000tunneling ::= SEQUENCE {
|
||||
downlinkS1cdma2000tunneling-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-DownlinkS1cdma2000tunneling ::= SEQUENCE {
|
||||
s1ap-DownlinkS1cdma2000tunneling-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
UplinkS1cdma2000tunneling ::= SEQUENCE {
|
||||
uplinkS1cdma2000tunneling-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-UplinkS1cdma2000tunneling ::= SEQUENCE {
|
||||
s1ap-UplinkS1cdma2000tunneling-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
UEContextModificationRequest ::= SEQUENCE {
|
||||
ueContextModificationRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-UEContextModificationRequest ::= SEQUENCE {
|
||||
s1ap-UEContextModificationRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
UEContextModificationResponse ::= SEQUENCE {
|
||||
ueContextModificationResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-UEContextModificationResponse ::= SEQUENCE {
|
||||
s1ap-UEContextModificationResponse-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
UEContextModificationFailure ::= SEQUENCE {
|
||||
ueContextModificationFailure-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-UEContextModificationFailure ::= SEQUENCE {
|
||||
s1ap-UEContextModificationFailure-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
UECapabilityInfoIndication ::= SEQUENCE {
|
||||
ueCapabilityInfoIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-UECapabilityInfoIndication ::= SEQUENCE {
|
||||
s1ap-UECapabilityInfoIndication-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
UEContextReleaseCommand ::= SEQUENCE {
|
||||
ueContextReleaseCommand-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-UEContextReleaseCommand ::= SEQUENCE {
|
||||
s1ap-UEContextReleaseCommand-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
UEContextReleaseComplete ::= SEQUENCE {
|
||||
ueContextReleaseComplete-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-UEContextReleaseComplete ::= SEQUENCE {
|
||||
s1ap-UEContextReleaseComplete-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
ENBStatusTransfer ::= SEQUENCE {
|
||||
eNBStatusTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-ENBStatusTransfer ::= SEQUENCE {
|
||||
s1ap-ENBStatusTransfer-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
MMEStatusTransfer ::= SEQUENCE {
|
||||
mmeStatusTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-MMEStatusTransfer ::= SEQUENCE {
|
||||
s1ap-MMEStatusTransfer-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
DeactivateTrace ::= SEQUENCE {
|
||||
deactivateTrace-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-DeactivateTrace ::= SEQUENCE {
|
||||
s1ap-DeactivateTrace-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
TraceStart ::= SEQUENCE {
|
||||
traceStart-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-TraceStart ::= SEQUENCE {
|
||||
s1ap-TraceStart-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
TraceFailureIndication ::= SEQUENCE {
|
||||
traceFailureIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-TraceFailureIndication ::= SEQUENCE {
|
||||
s1ap-TraceFailureIndication-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
CellTrafficTrace ::= SEQUENCE {
|
||||
cellTrafficTrace-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-CellTrafficTrace ::= SEQUENCE {
|
||||
s1ap-CellTrafficTrace-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
LocationReportingControl ::= SEQUENCE {
|
||||
locationReportingControl-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-LocationReportingControl ::= SEQUENCE {
|
||||
s1ap-LocationReportingControl-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
LocationReportingFailureIndication ::= SEQUENCE {
|
||||
locationReportingFailureIndication-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-LocationReportingFailureIndication ::= SEQUENCE {
|
||||
s1ap-LocationReportingFailureIndication-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
LocationReport ::= SEQUENCE {
|
||||
locationReport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-LocationReport ::= SEQUENCE {
|
||||
s1ap-LocationReport-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
OverloadStart ::= SEQUENCE {
|
||||
overloadStart-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-OverloadStart ::= SEQUENCE {
|
||||
s1ap-OverloadStart-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
OverloadStop ::= SEQUENCE {
|
||||
overloadStop-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-OverloadStop ::= SEQUENCE {
|
||||
s1ap-OverloadStop-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
WriteReplaceWarningRequest ::= SEQUENCE {
|
||||
writeReplaceWarningRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-WriteReplaceWarningRequest ::= SEQUENCE {
|
||||
s1ap-WriteReplaceWarningRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
WriteReplaceWarningResponse ::= SEQUENCE {
|
||||
writeReplaceWarningResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-WriteReplaceWarningResponse ::= SEQUENCE {
|
||||
s1ap-WriteReplaceWarningResponse-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
ENBDirectInformationTransfer ::= SEQUENCE {
|
||||
eNBDirectInformationTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-ENBDirectInformationTransfer ::= SEQUENCE {
|
||||
s1ap-ENBDirectInformationTransfer-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
MMEDirectInformationTransfer ::= SEQUENCE {
|
||||
mmeDirectInformationTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-MMEDirectInformationTransfer ::= SEQUENCE {
|
||||
s1ap-MMEDirectInformationTransfer-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
ENBConfigurationTransfer ::= SEQUENCE {
|
||||
eNBConfigurationTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-ENBConfigurationTransfer ::= SEQUENCE {
|
||||
s1ap-ENBConfigurationTransfer-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
MMEConfigurationTransfer ::= SEQUENCE {
|
||||
mmeConfigurationTransfer-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-MMEConfigurationTransfer ::= SEQUENCE {
|
||||
s1ap-MMEConfigurationTransfer-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
PrivateMessage ::= SEQUENCE {
|
||||
privateMessage-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-PrivateMessage ::= SEQUENCE {
|
||||
s1ap-PrivateMessage-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
KillRequest ::= SEQUENCE {
|
||||
killRequest-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-KillRequest ::= SEQUENCE {
|
||||
s1ap-KillRequest-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
KillResponse ::= SEQUENCE {
|
||||
killResponse-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-KillResponse ::= SEQUENCE {
|
||||
s1ap-KillResponse-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
DownlinkUEAssociatedLPPaTransport ::= SEQUENCE {
|
||||
downlinkUEAssociatedLPPaTransport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-DownlinkUEAssociatedLPPaTransport ::= SEQUENCE {
|
||||
s1ap-DownlinkUEAssociatedLPPaTransport-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
UplinkUEAssociatedLPPaTransport ::= SEQUENCE {
|
||||
uplinkUEAssociatedLPPaTransport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-UplinkUEAssociatedLPPaTransport ::= SEQUENCE {
|
||||
s1ap-UplinkUEAssociatedLPPaTransport-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
DownlinkNonUEAssociatedLPPaTransport ::= SEQUENCE {
|
||||
downlinkNonUEAssociatedLPPaTransport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-DownlinkNonUEAssociatedLPPaTransport ::= SEQUENCE {
|
||||
s1ap-DownlinkNonUEAssociatedLPPaTransport-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
UplinkNonUEAssociatedLPPaTransport ::= SEQUENCE {
|
||||
uplinkNonUEAssociatedLPPaTransport-ies SEQUENCE (SIZE (0..maxProtocolIEs)) OF IE,
|
||||
S1ap-UplinkNonUEAssociatedLPPaTransport ::= SEQUENCE {
|
||||
s1ap-UplinkNonUEAssociatedLPPaTransport-ies SEQUENCE (SIZE (0..s1ap-maxProtocolIEs)) OF S1ap-IE,
|
||||
...
|
||||
}
|
||||
|
||||
IE ::= SEQUENCE {
|
||||
id ProtocolIE-ID,
|
||||
criticality Criticality,
|
||||
value ANY
|
||||
S1ap-IE ::= SEQUENCE {
|
||||
id S1ap-ProtocolIE-ID,
|
||||
criticality S1ap-Criticality,
|
||||
value ANY
|
||||
}
|
||||
|
||||
END
|
||||
@@ -3,7 +3,7 @@ import datetime
|
||||
import getopt
|
||||
import getpass
|
||||
|
||||
version = "1.0.0"
|
||||
version = "1.0.1"
|
||||
|
||||
lines = ""
|
||||
iesDefs = {}
|
||||
@@ -19,6 +19,7 @@ WARN = '\033[93m'
|
||||
ENDC = '\033[0m'
|
||||
|
||||
fileprefix = ""
|
||||
fileprefix_first_upper = ""
|
||||
|
||||
def printFail(string):
|
||||
sys.stderr.write(FAIL + string + ENDC + "\n")
|
||||
@@ -87,7 +88,7 @@ def lowerFirstCamelWord(word):
|
||||
for c in swapped:
|
||||
if c in string.lowercase:
|
||||
newstr += c
|
||||
idx += 1
|
||||
idx += 1
|
||||
else:
|
||||
break
|
||||
if idx < 2:
|
||||
@@ -164,6 +165,8 @@ if len(iesDefs) == 0:
|
||||
printFail("No Information Element parsed, exiting")
|
||||
sys.exit(0)
|
||||
|
||||
fileprefix_first_upper = fileprefix[0].upper() + fileprefix[1:]
|
||||
|
||||
f = open(outdir + fileprefix + '_ies_defs.h', 'w')
|
||||
outputHeaderToFile(f, filename)
|
||||
f.write("#include \"%s_common.h\"\n\n" % (fileprefix))
|
||||
@@ -223,9 +226,9 @@ for key in iesDefs:
|
||||
f.write("} %s_t;\n\n" % (re.sub('-', '_', key)))
|
||||
|
||||
f.write("typedef struct %s_message_s {\n" % (fileprefix))
|
||||
f.write(" ProcedureCode_t procedureCode;\n")
|
||||
f.write(" Criticality_t criticality;\n")
|
||||
f.write(" uint8_t direction;\n")
|
||||
f.write(" %s_ProcedureCode_t procedureCode;\n" % (fileprefix_first_upper))
|
||||
f.write(" %s_Criticality_t criticality;\n" % (fileprefix_first_upper))
|
||||
f.write(" uint8_t direction;\n")
|
||||
f.write(" union {\n")
|
||||
|
||||
messageList = iesDefs.keys()
|
||||
@@ -353,7 +356,7 @@ for key in iesDefs:
|
||||
f.write(" %s_DEBUG(\"Decoding message %s (%%s:%%d)\\n\", __FILE__, __LINE__);\n\n" % (fileprefix.upper(), re.sub('-', '_', keyName)))
|
||||
f.write(" ANY_to_type_aper(any_p, &asn_DEF_%s, (void**)&%s_p);\n\n" % (asn1cStruct, asn1cStructfirstlower))
|
||||
f.write(" for (i = 0; i < %s_p->%slist.count; i++) {\n" % (asn1cStructfirstlower, iesaccess))
|
||||
f.write(" IE_t *ie_p;\n")
|
||||
f.write(" %s_IE_t *ie_p;\n" % (fileprefix[0].upper() + fileprefix[1:]))
|
||||
f.write(" ie_p = %s_p->%slist.array[i];\n" % (asn1cStructfirstlower, iesaccess))
|
||||
f.write(" switch(ie_p->id) {\n")
|
||||
for ie in iesDefs[key]["ies"]:
|
||||
@@ -368,7 +371,7 @@ for key in iesDefs:
|
||||
f.write(" /* Optional field */\n")
|
||||
elif ie[3] == "conditional":
|
||||
f.write(" /* Conditional field */\n")
|
||||
f.write(" case ProtocolIE_ID_%s:\n" % (re.sub('-', '_', ie[0])))
|
||||
f.write(" case %s_ProtocolIE_ID_%s:\n" % (fileprefix_first_upper, re.sub('-', '_', ie[0])))
|
||||
f.write(" {\n")
|
||||
f.write(" %s_t *%s_p = NULL;\n" % (ietypeunderscore, lowerFirstCamelWord(ietypesubst)))
|
||||
if ie[3] != "mandatory":
|
||||
@@ -416,12 +419,12 @@ for key in iesDefs:
|
||||
f.write(" assert(%sIEs != NULL);\n\n" % (lowerFirstCamelWord(re.sub('-', '_', keyname))));
|
||||
|
||||
f.write(" for (i = 0; i < %s->list.count; i++) {\n" % (lowerFirstCamelWord(re.sub('-', '_', keyname))))
|
||||
f.write(" IE_t *ie_p = %s->list.array[i];\n" % (lowerFirstCamelWord(re.sub('-', '_', keyname))))
|
||||
f.write(" %s_IE_t *ie_p = %s->list.array[i];\n" % (fileprefix[0].upper() + fileprefix[1:], lowerFirstCamelWord(re.sub('-', '_', keyname))))
|
||||
f.write(" switch (ie_p->id) {\n")
|
||||
for ie in iesDefs[key]["ies"]:
|
||||
iename = re.sub('id-', '', ie[0])
|
||||
ienameunderscore = lowerFirstCamelWord(re.sub('-', '_', iename))
|
||||
f.write(" case ProtocolIE_ID_%s:\n" % (re.sub('-', '_', ie[0])))
|
||||
f.write(" case %s_ProtocolIE_ID_%s:\n" % (fileprefix_first_upper, re.sub('-', '_', ie[0])))
|
||||
f.write(" {\n")
|
||||
f.write(" %s_t *%s_p = NULL;\n" % (re.sub('-', '_', ie[2]), lowerFirstCamelWord(re.sub('-', '', ie[2]))))
|
||||
f.write(" tempDecoded = ANY_to_type_aper(&ie_p->value, &asn_DEF_%s, (void**)&%s_p);\n" % (re.sub('-', '_', ie[2]), lowerFirstCamelWord(re.sub('-', '', ie[2]))))
|
||||
@@ -478,7 +481,7 @@ for key in iesDefs:
|
||||
f.write(" %s_t *%s,\n" % (asn1cStruct, firstwordlower))
|
||||
f.write(" %s_t *%s) {\n\n" % (re.sub('-', '_', key), lowerFirstCamelWord(re.sub('-', '_', key))))
|
||||
|
||||
f.write(" IE_t *ie;\n\n")
|
||||
f.write(" %s_IE_t *ie;\n\n" % (fileprefix_first_upper))
|
||||
|
||||
f.write(" assert(%s != NULL);\n" % (firstwordlower));
|
||||
f.write(" assert(%s != NULL);\n\n" % (lowerFirstCamelWord(re.sub('-', '_', key))));
|
||||
@@ -497,10 +500,10 @@ for key in iesDefs:
|
||||
f.write(" /* Conditional field */\n")
|
||||
f.write(" if (%s->presenceMask & %s_%s_PRESENT) {\n" % (lowerFirstCamelWord(re.sub('-', '_', key)), keyupperunderscore, ieupperunderscore))
|
||||
#f.write(" == %s_%s_PRESENT) {\n" % (keyupperunderscore, ieupperunderscore))
|
||||
f.write(" if ((ie = %s_new_ie(ProtocolIE_ID_%s,\n" % (fileprefix, re.sub('-', '_', ie[0])))
|
||||
f.write(" Criticality_%s,\n" % (ie[1]))
|
||||
f.write(" &asn_DEF_%s,\n" % (ietypeunderscore))
|
||||
f.write(" &%s->%s)) == NULL) {\n" % (lowerFirstCamelWord(re.sub('-', '_', key)), ienamefirstwordlower))
|
||||
f.write(" if ((ie = %s_new_ie(%s_ProtocolIE_ID_%s,\n" % (fileprefix, fileprefix_first_upper, re.sub('-', '_', ie[0])))
|
||||
f.write(" %s_Criticality_%s,\n" % (fileprefix_first_upper, ie[1]))
|
||||
f.write(" &asn_DEF_%s,\n" % (ietypeunderscore))
|
||||
f.write(" &%s->%s)) == NULL) {\n" % (lowerFirstCamelWord(re.sub('-', '_', key)), ienamefirstwordlower))
|
||||
f.write(" return -1;\n")
|
||||
f.write(" }\n")
|
||||
f.write(" ASN_SEQUENCE_ADD(&%s->%slist, ie);\n" % (firstwordlower, iesaccess))
|
||||
@@ -511,9 +514,9 @@ for key in iesDefs:
|
||||
f.write(" memset(&%s, 0, sizeof(%s_t));\n" % (ienamefirstwordlower, ietypeunderscore))
|
||||
f.write("\n")
|
||||
f.write(" if (%s_encode_%s(&%s, &%s->%s) < 0) return -1;\n" % (fileprefix, ietypeunderscore.lower(), ienamefirstwordlower, lowerFirstCamelWord(re.sub('-', '_', key)), ienamefirstwordlower))
|
||||
f.write(" if ((ie = %s_new_ie(ProtocolIE_ID_%s,\n" % (fileprefix, re.sub('-', '_', ie[0])))
|
||||
f.write(" Criticality_%s,\n" % (ie[1]))
|
||||
f.write(" &asn_DEF_%s,\n" % (ietypeunderscore))
|
||||
f.write(" if ((ie = %s_new_ie(%s_ProtocolIE_ID_%s,\n" % (fileprefix, fileprefix_first_upper, re.sub('-', '_', ie[0])))
|
||||
f.write(" %s_Criticality_%s,\n" % (fileprefix_first_upper, ie[1]))
|
||||
f.write(" &asn_DEF_%s,\n" % (ietypeunderscore))
|
||||
if ie[2] in ieofielist.keys():
|
||||
f.write(" &%s)) == NULL) {\n" % (ienamefirstwordlower))
|
||||
else:
|
||||
@@ -546,14 +549,14 @@ for (key, value) in iesDefs.items():
|
||||
f.write(" %sIEs_t *%sIEs) {\n\n" % (re.sub('-', '_', i), lowerFirstCamelWord(re.sub('-', '_', i))))
|
||||
f.write(" int i;\n")
|
||||
|
||||
f.write(" IE_t *ie;\n\n")
|
||||
f.write(" %s_IE_t *ie;\n\n" % (fileprefix_first_upper))
|
||||
|
||||
f.write(" assert(%s != NULL);\n" % (firstwordlower));
|
||||
f.write(" assert(%sIEs != NULL);\n\n" % (lowerFirstCamelWord(re.sub('-', '_', i))));
|
||||
|
||||
f.write(" for (i = 0; i < %sIEs->%s.count; i++) {\n" % (firstwordlower, re.sub('IEs', '', lowerFirstCamelWord(re.sub('-', '_', key)))))
|
||||
f.write(" if ((ie = %s_new_ie(ProtocolIE_ID_%s,\n" % (fileprefix, re.sub('-', '_', ie[0])))
|
||||
f.write(" Criticality_%s,\n" % (ie[1]))
|
||||
f.write(" if ((ie = %s_new_ie(%s_ProtocolIE_ID_%s,\n" % (fileprefix, fileprefix_first_upper, re.sub('-', '_', ie[0])))
|
||||
f.write(" %s_Criticality_%s,\n" % (fileprefix_first_upper, ie[1]))
|
||||
f.write(" &asn_DEF_%s,\n" % (ietypeunderscore))
|
||||
f.write(" %sIEs->%s.array[i])) == NULL) {\n" % (firstwordlower, re.sub('IEs', '', lowerFirstCamelWord(re.sub('-', '_', key)))))
|
||||
f.write(" return -1;\n")
|
||||
@@ -644,8 +647,8 @@ for (key, value) in iesDefs.items():
|
||||
f.write(" }\n")
|
||||
else:
|
||||
f.write(" fprintf(file, \"<%s-PDU>\\n\");\n" % (fileprefix.upper()))
|
||||
f.write(" xer_encode_local(&asn_DEF_Criticality, &message_p->criticality, cb, app_key, 1);\n")
|
||||
f.write(" xer_encode_local(&asn_DEF_ProcedureCode, &message_p->procedureCode, cb, app_key, 1);\n")
|
||||
f.write(" xer_encode_local(&asn_DEF_%s_Criticality, &message_p->criticality, cb, app_key, 1);\n" % fileprefix_first_upper)
|
||||
f.write(" xer_encode_local(&asn_DEF_%s_ProcedureCode, &message_p->procedureCode, cb, app_key, 1);\n" % fileprefix_first_upper)
|
||||
f.write(" fprintf(file, \" <%s>\\n\");\n" % (key))
|
||||
|
||||
for ie in iesDefs[key]["ies"]:
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -73,6 +73,8 @@ $(S1AP_OBJDIR)/s1ap_asn1regen.stamp: $(ASN1DIR)/$(ASN1RELDIR)/S1AP-CommonDataTyp
|
||||
(cd $(ASN1MESSAGESDIR) && asn1c -fhave_native64 -gen-PER $^)
|
||||
echo Timestamp > $@
|
||||
|
||||
.INTERMEDIATE = $(S1AP_OBJDIR)/s1ap_ieregen.stamp $(S1AP_OBJDIR)/s1ap_asn1regen.stamp
|
||||
|
||||
libs1ap.a: $(S1AP_OBJDIR)/s1ap_ieregen.stamp $(S1AP_OBJDIR)/s1ap_asn1regen.stamp $(libs1ap_OBJECTS)
|
||||
@echo Creating S1AP archive
|
||||
@$(AR) rcs $@ $(libs1ap_OBJECTS)
|
||||
|
||||
@@ -62,8 +62,8 @@ inline void ASN_DEBUG(const char *fmt, ...)
|
||||
ssize_t s1ap_generate_initiating_message(
|
||||
uint8_t **buffer,
|
||||
uint32_t *length,
|
||||
e_ProcedureCode procedureCode,
|
||||
Criticality_t criticality,
|
||||
e_S1ap_ProcedureCode procedureCode,
|
||||
S1ap_Criticality_t criticality,
|
||||
asn_TYPE_descriptor_t *td,
|
||||
void *sptr)
|
||||
{
|
||||
@@ -96,8 +96,8 @@ ssize_t s1ap_generate_initiating_message(
|
||||
ssize_t s1ap_generate_successfull_outcome(
|
||||
uint8_t **buffer,
|
||||
uint32_t *length,
|
||||
e_ProcedureCode procedureCode,
|
||||
Criticality_t criticality,
|
||||
e_S1ap_ProcedureCode procedureCode,
|
||||
S1ap_Criticality_t criticality,
|
||||
asn_TYPE_descriptor_t *td,
|
||||
void *sptr)
|
||||
{
|
||||
@@ -131,8 +131,8 @@ ssize_t s1ap_generate_successfull_outcome(
|
||||
ssize_t s1ap_generate_unsuccessfull_outcome(
|
||||
uint8_t **buffer,
|
||||
uint32_t *length,
|
||||
e_ProcedureCode procedureCode,
|
||||
Criticality_t criticality,
|
||||
e_S1ap_ProcedureCode procedureCode,
|
||||
S1ap_Criticality_t criticality,
|
||||
asn_TYPE_descriptor_t *td,
|
||||
void *sptr)
|
||||
{
|
||||
@@ -163,19 +163,19 @@ ssize_t s1ap_generate_unsuccessfull_outcome(
|
||||
return encoded;
|
||||
}
|
||||
|
||||
IE_t *s1ap_new_ie(
|
||||
ProtocolIE_ID_t id,
|
||||
Criticality_t criticality,
|
||||
S1ap_IE_t *s1ap_new_ie(
|
||||
S1ap_ProtocolIE_ID_t id,
|
||||
S1ap_Criticality_t criticality,
|
||||
asn_TYPE_descriptor_t *type,
|
||||
void *sptr)
|
||||
{
|
||||
IE_t *buff;
|
||||
S1ap_IE_t *buff;
|
||||
|
||||
if ((buff = malloc(sizeof(IE_t))) == NULL) {
|
||||
if ((buff = malloc(sizeof(S1ap_IE_t))) == NULL) {
|
||||
// Possible error on malloc
|
||||
return NULL;
|
||||
}
|
||||
memset((void *)buff, 0, sizeof(IE_t));
|
||||
memset((void *)buff, 0, sizeof(S1ap_IE_t));
|
||||
|
||||
buff->id = id;
|
||||
buff->criticality = criticality;
|
||||
@@ -187,7 +187,7 @@ IE_t *s1ap_new_ie(
|
||||
}
|
||||
|
||||
if (asn1_xer_print)
|
||||
if (xer_fprint(stdout, &asn_DEF_IE, buff) < 0) {
|
||||
if (xer_fprint(stdout, &asn_DEF_S1ap_IE, buff) < 0) {
|
||||
free(buff);
|
||||
return NULL;
|
||||
}
|
||||
@@ -195,7 +195,7 @@ IE_t *s1ap_new_ie(
|
||||
return buff;
|
||||
}
|
||||
|
||||
void s1ap_handle_criticality(e_Criticality criticality)
|
||||
void s1ap_handle_criticality(S1ap_Criticality_t criticality)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
+341
-341
@@ -48,342 +48,342 @@ extern int asn_debug;
|
||||
inline void ASN_DEBUG(const char *fmt, ...);
|
||||
#endif
|
||||
|
||||
#include "Criticality.h"
|
||||
#include "Presence.h"
|
||||
#include "PrivateIE-ID.h"
|
||||
#include "ProcedureCode.h"
|
||||
#include "ProtocolExtensionID.h"
|
||||
#include "ProtocolIE-ID.h"
|
||||
#include "TriggeringMessage.h"
|
||||
#include "AllocationAndRetentionPriority.h"
|
||||
#include "Bearers-SubjectToStatusTransfer-List.h"
|
||||
#include "Bearers-SubjectToStatusTransfer-Item.h"
|
||||
#include "BitRate.h"
|
||||
#include "BPLMNs.h"
|
||||
#include "BroadcastCompletedAreaList.h"
|
||||
#include "Cause.h"
|
||||
#include "CauseMisc.h"
|
||||
#include "CauseProtocol.h"
|
||||
#include "CauseRadioNetwork.h"
|
||||
#include "CauseTransport.h"
|
||||
#include "CauseNas.h"
|
||||
#include "CellIdentity.h"
|
||||
#include "CellID-Broadcast.h"
|
||||
#include "CellID-Broadcast-Item.h"
|
||||
#include "Cdma2000PDU.h"
|
||||
#include "Cdma2000RATType.h"
|
||||
#include "Cdma2000SectorID.h"
|
||||
#include "Cdma2000HOStatus.h"
|
||||
#include "Cdma2000HORequiredIndication.h"
|
||||
#include "Cdma2000OneXSRVCCInfo.h"
|
||||
#include "Cdma2000OneXMEID.h"
|
||||
#include "Cdma2000OneXMSI.h"
|
||||
#include "Cdma2000OneXPilot.h"
|
||||
#include "Cdma2000OneXRAND.h"
|
||||
#include "Cell-Size.h"
|
||||
#include "CellType.h"
|
||||
#include "CGI.h"
|
||||
#include "CI.h"
|
||||
#include "CNDomain.h"
|
||||
#include "CSFallbackIndicator.h"
|
||||
#include "CSG-Id.h"
|
||||
#include "CSG-IdList.h"
|
||||
#include "CSG-IdList-Item.h"
|
||||
#include "COUNTvalue.h"
|
||||
#include "CriticalityDiagnostics.h"
|
||||
#include "CriticalityDiagnostics-IE-List.h"
|
||||
#include "CriticalityDiagnostics-IE-Item.h"
|
||||
#include "DataCodingScheme.h"
|
||||
#include "DL-Forwarding.h"
|
||||
#include "Direct-Forwarding-Path-Availability.h"
|
||||
#include "ECGIList.h"
|
||||
#include "EmergencyAreaIDList.h"
|
||||
#include "EmergencyAreaID.h"
|
||||
#include "EmergencyAreaID-Broadcast.h"
|
||||
#include "EmergencyAreaID-Broadcast-Item.h"
|
||||
#include "CompletedCellinEAI.h"
|
||||
#include "CompletedCellinEAI-Item.h"
|
||||
#include "ENB-ID.h"
|
||||
#include "GERAN-Cell-ID.h"
|
||||
#include "Global-ENB-ID.h"
|
||||
#include "ENB-StatusTransfer-TransparentContainer.h"
|
||||
#include "ENB-UE-S1AP-ID.h"
|
||||
#include "ENBname.h"
|
||||
#include "ENBX2TLAs.h"
|
||||
#include "EncryptionAlgorithms.h"
|
||||
#include "EPLMNs.h"
|
||||
#include "EventType.h"
|
||||
#include "E-RAB-ID.h"
|
||||
#include "E-RABInformationList.h"
|
||||
#include "E-RABInformationListItem.h"
|
||||
#include "E-RABList.h"
|
||||
#include "E-RABItem.h"
|
||||
#include "E-RABLevelQoSParameters.h"
|
||||
#include "EUTRAN-CGI.h"
|
||||
#include "ExtendedRNC-ID.h"
|
||||
#include "ForbiddenInterRATs.h"
|
||||
#include "ForbiddenTAs.h"
|
||||
#include "ForbiddenTAs-Item.h"
|
||||
#include "ForbiddenTACs.h"
|
||||
#include "ForbiddenLAs.h"
|
||||
#include "ForbiddenLAs-Item.h"
|
||||
#include "ForbiddenLACs.h"
|
||||
#include "GBR-QosInformation.h"
|
||||
#include "GTP-TEID.h"
|
||||
#include "GUMMEI.h"
|
||||
#include "HandoverRestrictionList.h"
|
||||
#include "HandoverType.h"
|
||||
#include "HFN.h"
|
||||
#include "IMSI.h"
|
||||
#include "IntegrityProtectionAlgorithms.h"
|
||||
#include "InterfacesToTrace.h"
|
||||
#include "LAC.h"
|
||||
#include "LAI.h"
|
||||
#include "LastVisitedCell-Item.h"
|
||||
#include "LastVisitedEUTRANCellInformation.h"
|
||||
#include "LastVisitedUTRANCellInformation.h"
|
||||
#include "LastVisitedGERANCellInformation.h"
|
||||
#include "L3-Information.h"
|
||||
#include "MessageIdentifier.h"
|
||||
#include "MMEname.h"
|
||||
#include "MME-Group-ID.h"
|
||||
#include "MME-Code.h"
|
||||
#include "MME-UE-S1AP-ID.h"
|
||||
#include "M-TMSI.h"
|
||||
#include "MSClassmark2.h"
|
||||
#include "MSClassmark3.h"
|
||||
#include "NAS-PDU.h"
|
||||
#include "NASSecurityParametersfromE-UTRAN.h"
|
||||
#include "NASSecurityParameterstoE-UTRAN.h"
|
||||
#include "NumberofBroadcastRequest.h"
|
||||
#include "NumberOfBroadcasts.h"
|
||||
#include "OldBSS-ToNewBSS-Information.h"
|
||||
#include "OverloadAction.h"
|
||||
#include "OverloadResponse.h"
|
||||
#include "PagingDRX.h"
|
||||
#include "PDCP-SN.h"
|
||||
#include "PLMNidentity.h"
|
||||
#include "Pre-emptionCapability.h"
|
||||
#include "Pre-emptionVulnerability.h"
|
||||
#include "PriorityLevel.h"
|
||||
#include "QCI.h"
|
||||
#include "ReceiveStatusofULPDCPSDUs.h"
|
||||
#include "RelativeMMECapacity.h"
|
||||
#include "RAC.h"
|
||||
#include "RequestType.h"
|
||||
#include "RIMTransfer.h"
|
||||
#include "RIMInformation.h"
|
||||
#include "RIMRoutingAddress.h"
|
||||
#include "ReportArea.h"
|
||||
#include "RepetitionPeriod.h"
|
||||
#include "RNC-ID.h"
|
||||
#include "RRC-Container.h"
|
||||
#include "RRC-Establishment-Cause.h"
|
||||
#include "SecurityKey.h"
|
||||
#include "SecurityContext.h"
|
||||
#include "SerialNumber.h"
|
||||
#include "SONInformation.h"
|
||||
#include "SONInformationRequest.h"
|
||||
#include "SONInformationReply.h"
|
||||
#include "SONConfigurationTransfer.h"
|
||||
#include "Source-ToTarget-TransparentContainer.h"
|
||||
#include "SourceBSS-ToTargetBSS-TransparentContainer.h"
|
||||
#include "SourceeNB-ID.h"
|
||||
#include "SRVCCOperationPossible.h"
|
||||
#include "SRVCCHOIndication.h"
|
||||
#include "SourceeNB-ToTargeteNB-TransparentContainer.h"
|
||||
#include "SourceRNC-ToTargetRNC-TransparentContainer.h"
|
||||
#include "ServedGUMMEIs.h"
|
||||
#include "ServedGUMMEIsItem.h"
|
||||
#include "ServedGroupIDs.h"
|
||||
#include "ServedMMECs.h"
|
||||
#include "ServedPLMNs.h"
|
||||
#include "SubscriberProfileIDforRFP.h"
|
||||
#include "SupportedTAs.h"
|
||||
#include "SupportedTAs-Item.h"
|
||||
#include "S-TMSI.h"
|
||||
#include "TAC.h"
|
||||
#include "TAIItem.h"
|
||||
#include "TAIList.h"
|
||||
#include "TAIListforWarning.h"
|
||||
#include "TAI.h"
|
||||
#include "TAI-Broadcast.h"
|
||||
#include "TAI-Broadcast-Item.h"
|
||||
#include "CompletedCellinTAI.h"
|
||||
#include "CompletedCellinTAI-Item.h"
|
||||
#include "TBCD-STRING.h"
|
||||
#include "TargetID.h"
|
||||
#include "TargeteNB-ID.h"
|
||||
#include "TargetRNC-ID.h"
|
||||
#include "TargeteNB-ToSourceeNB-TransparentContainer.h"
|
||||
#include "Target-ToSource-TransparentContainer.h"
|
||||
#include "TargetRNC-ToSourceRNC-TransparentContainer.h"
|
||||
#include "TargetBSS-ToSourceBSS-TransparentContainer.h"
|
||||
#include "TimeToWait.h"
|
||||
#include "Time-UE-StayedInCell.h"
|
||||
#include "TransportLayerAddress.h"
|
||||
#include "TraceActivation.h"
|
||||
#include "TraceDepth.h"
|
||||
#include "E-UTRAN-Trace-ID.h"
|
||||
#include "TypeOfError.h"
|
||||
#include "UEAggregateMaximumBitrate.h"
|
||||
#include "UE-S1AP-IDs.h"
|
||||
#include "UE-S1AP-ID-pair.h"
|
||||
#include "UE-associatedLogicalS1-ConnectionItem.h"
|
||||
#include "UEIdentityIndexValue.h"
|
||||
#include "UE-HistoryInformation.h"
|
||||
#include "UEPagingID.h"
|
||||
#include "UERadioCapability.h"
|
||||
#include "UESecurityCapabilities.h"
|
||||
#include "WarningAreaList.h"
|
||||
#include "WarningType.h"
|
||||
#include "WarningSecurityInfo.h"
|
||||
#include "WarningMessageContents.h"
|
||||
#include "X2TNLConfigurationInfo.h"
|
||||
#include "S1ap-Criticality.h"
|
||||
#include "S1ap-Presence.h"
|
||||
#include "S1ap-PrivateIE-ID.h"
|
||||
#include "S1ap-ProcedureCode.h"
|
||||
#include "S1ap-ProtocolExtensionID.h"
|
||||
#include "S1ap-ProtocolIE-ID.h"
|
||||
#include "S1ap-TriggeringMessage.h"
|
||||
#include "S1ap-AllocationAndRetentionPriority.h"
|
||||
#include "S1ap-Bearers-SubjectToStatusTransfer-List.h"
|
||||
#include "S1ap-Bearers-SubjectToStatusTransfer-Item.h"
|
||||
#include "S1ap-BitRate.h"
|
||||
#include "S1ap-BPLMNs.h"
|
||||
#include "S1ap-BroadcastCompletedAreaList.h"
|
||||
#include "S1ap-Cause.h"
|
||||
#include "S1ap-CauseMisc.h"
|
||||
#include "S1ap-CauseProtocol.h"
|
||||
#include "S1ap-CauseRadioNetwork.h"
|
||||
#include "S1ap-CauseTransport.h"
|
||||
#include "S1ap-CauseNas.h"
|
||||
#include "S1ap-CellIdentity.h"
|
||||
#include "S1ap-CellID-Broadcast.h"
|
||||
#include "S1ap-CellID-Broadcast-Item.h"
|
||||
#include "S1ap-Cdma2000PDU.h"
|
||||
#include "S1ap-Cdma2000RATType.h"
|
||||
#include "S1ap-Cdma2000SectorID.h"
|
||||
#include "S1ap-Cdma2000HOStatus.h"
|
||||
#include "S1ap-Cdma2000HORequiredIndication.h"
|
||||
#include "S1ap-Cdma2000OneXSRVCCInfo.h"
|
||||
#include "S1ap-Cdma2000OneXMEID.h"
|
||||
#include "S1ap-Cdma2000OneXMSI.h"
|
||||
#include "S1ap-Cdma2000OneXPilot.h"
|
||||
#include "S1ap-Cdma2000OneXRAND.h"
|
||||
#include "S1ap-Cell-Size.h"
|
||||
#include "S1ap-CellType.h"
|
||||
#include "S1ap-CGI.h"
|
||||
#include "S1ap-CI.h"
|
||||
#include "S1ap-CNDomain.h"
|
||||
#include "S1ap-CSFallbackIndicator.h"
|
||||
#include "S1ap-CSG-Id.h"
|
||||
#include "S1ap-CSG-IdList.h"
|
||||
#include "S1ap-CSG-IdList-Item.h"
|
||||
#include "S1ap-COUNTvalue.h"
|
||||
#include "S1ap-DataCodingScheme.h"
|
||||
#include "S1ap-DL-Forwarding.h"
|
||||
#include "S1ap-Direct-Forwarding-Path-Availability.h"
|
||||
#include "S1ap-ECGIList.h"
|
||||
#include "S1ap-EmergencyAreaIDList.h"
|
||||
#include "S1ap-EmergencyAreaID.h"
|
||||
#include "S1ap-EmergencyAreaID-Broadcast.h"
|
||||
#include "S1ap-EmergencyAreaID-Broadcast-Item.h"
|
||||
#include "S1ap-CompletedCellinEAI.h"
|
||||
#include "S1ap-CompletedCellinEAI-Item.h"
|
||||
#include "S1ap-ENB-ID.h"
|
||||
#include "S1ap-GERAN-Cell-ID.h"
|
||||
#include "S1ap-Global-ENB-ID.h"
|
||||
#include "S1ap-ENB-StatusTransfer-TransparentContainer.h"
|
||||
#include "S1ap-ENBname.h"
|
||||
#include "S1ap-ENBX2TLAs.h"
|
||||
#include "S1ap-EncryptionAlgorithms.h"
|
||||
#include "S1ap-EPLMNs.h"
|
||||
#include "S1ap-EventType.h"
|
||||
#include "S1ap-E-RAB-ID.h"
|
||||
#include "S1ap-E-RABInformationList.h"
|
||||
#include "S1ap-E-RABInformationListItem.h"
|
||||
#include "S1ap-E-RABList.h"
|
||||
#include "S1ap-E-RABItem.h"
|
||||
#include "S1ap-E-RABLevelQoSParameters.h"
|
||||
#include "S1ap-EUTRAN-CGI.h"
|
||||
#include "S1ap-ExtendedRNC-ID.h"
|
||||
#include "S1ap-ForbiddenInterRATs.h"
|
||||
#include "S1ap-ForbiddenTAs.h"
|
||||
#include "S1ap-ForbiddenTAs-Item.h"
|
||||
#include "S1ap-ForbiddenTACs.h"
|
||||
#include "S1ap-ForbiddenLAs.h"
|
||||
#include "S1ap-ForbiddenLAs-Item.h"
|
||||
#include "S1ap-ForbiddenLACs.h"
|
||||
#include "S1ap-GBR-QosInformation.h"
|
||||
#include "S1ap-GTP-TEID.h"
|
||||
#include "S1ap-GUMMEI.h"
|
||||
#include "S1ap-HandoverRestrictionList.h"
|
||||
#include "S1ap-HandoverType.h"
|
||||
#include "S1ap-HFN.h"
|
||||
#include "S1ap-IMSI.h"
|
||||
#include "S1ap-IntegrityProtectionAlgorithms.h"
|
||||
#include "S1ap-InterfacesToTrace.h"
|
||||
#include "S1ap-LAC.h"
|
||||
#include "S1ap-LAI.h"
|
||||
#include "S1ap-LastVisitedCell-Item.h"
|
||||
#include "S1ap-LastVisitedEUTRANCellInformation.h"
|
||||
#include "S1ap-LastVisitedUTRANCellInformation.h"
|
||||
#include "S1ap-LastVisitedGERANCellInformation.h"
|
||||
#include "S1ap-L3-Information.h"
|
||||
#include "S1ap-MessageIdentifier.h"
|
||||
#include "S1ap-MMEname.h"
|
||||
#include "S1ap-MME-Group-ID.h"
|
||||
#include "S1ap-MME-Code.h"
|
||||
#include "S1ap-M-TMSI.h"
|
||||
#include "S1ap-MSClassmark2.h"
|
||||
#include "S1ap-MSClassmark3.h"
|
||||
#include "S1ap-NAS-PDU.h"
|
||||
#include "S1ap-NASSecurityParametersfromE-UTRAN.h"
|
||||
#include "S1ap-NASSecurityParameterstoE-UTRAN.h"
|
||||
#include "S1ap-NumberofBroadcastRequest.h"
|
||||
#include "S1ap-NumberOfBroadcasts.h"
|
||||
#include "S1ap-OldBSS-ToNewBSS-Information.h"
|
||||
#include "S1ap-OverloadAction.h"
|
||||
#include "S1ap-OverloadResponse.h"
|
||||
#include "S1ap-PagingDRX.h"
|
||||
#include "S1ap-PDCP-SN.h"
|
||||
#include "S1ap-PLMNidentity.h"
|
||||
#include "S1ap-Pre-emptionCapability.h"
|
||||
#include "S1ap-Pre-emptionVulnerability.h"
|
||||
#include "S1ap-PriorityLevel.h"
|
||||
#include "S1ap-QCI.h"
|
||||
#include "S1ap-ReceiveStatusofULPDCPSDUs.h"
|
||||
#include "S1ap-RelativeMMECapacity.h"
|
||||
#include "S1ap-RAC.h"
|
||||
#include "S1ap-RequestType.h"
|
||||
#include "S1ap-RIMTransfer.h"
|
||||
#include "S1ap-RIMInformation.h"
|
||||
#include "S1ap-RIMRoutingAddress.h"
|
||||
#include "S1ap-ReportArea.h"
|
||||
#include "S1ap-RepetitionPeriod.h"
|
||||
#include "S1ap-RNC-ID.h"
|
||||
#include "S1ap-RRC-Container.h"
|
||||
#include "S1ap-RRC-Establishment-Cause.h"
|
||||
#include "S1ap-SecurityKey.h"
|
||||
#include "S1ap-SecurityContext.h"
|
||||
#include "S1ap-SerialNumber.h"
|
||||
#include "S1ap-SONInformation.h"
|
||||
#include "S1ap-SONInformationRequest.h"
|
||||
#include "S1ap-SONInformationReply.h"
|
||||
#include "S1ap-SONConfigurationTransfer.h"
|
||||
#include "S1ap-Source-ToTarget-TransparentContainer.h"
|
||||
#include "S1ap-SourceBSS-ToTargetBSS-TransparentContainer.h"
|
||||
#include "S1ap-SourceeNB-ID.h"
|
||||
#include "S1ap-SRVCCOperationPossible.h"
|
||||
#include "S1ap-SRVCCHOIndication.h"
|
||||
#include "S1ap-SourceeNB-ToTargeteNB-TransparentContainer.h"
|
||||
#include "S1ap-SourceRNC-ToTargetRNC-TransparentContainer.h"
|
||||
#include "S1ap-ServedGUMMEIs.h"
|
||||
#include "S1ap-ServedGUMMEIsItem.h"
|
||||
#include "S1ap-ServedGroupIDs.h"
|
||||
#include "S1ap-ServedMMECs.h"
|
||||
#include "S1ap-ServedPLMNs.h"
|
||||
#include "S1ap-SubscriberProfileIDforRFP.h"
|
||||
#include "S1ap-SupportedTAs.h"
|
||||
#include "S1ap-SupportedTAs-Item.h"
|
||||
#include "S1ap-S-TMSI.h"
|
||||
#include "S1ap-TAC.h"
|
||||
#include "S1ap-TAIItem.h"
|
||||
#include "S1ap-TAIList.h"
|
||||
#include "S1ap-TAIListforWarning.h"
|
||||
#include "S1ap-TAI.h"
|
||||
#include "S1ap-TAI-Broadcast.h"
|
||||
#include "S1ap-TAI-Broadcast-Item.h"
|
||||
#include "S1ap-CompletedCellinTAI.h"
|
||||
#include "S1ap-CompletedCellinTAI-Item.h"
|
||||
#include "S1ap-TargetID.h"
|
||||
#include "S1ap-TargeteNB-ID.h"
|
||||
#include "S1ap-TargetRNC-ID.h"
|
||||
#include "S1ap-TargeteNB-ToSourceeNB-TransparentContainer.h"
|
||||
#include "S1ap-Target-ToSource-TransparentContainer.h"
|
||||
#include "S1ap-TargetRNC-ToSourceRNC-TransparentContainer.h"
|
||||
#include "S1ap-TargetBSS-ToSourceBSS-TransparentContainer.h"
|
||||
#include "S1ap-TimeToWait.h"
|
||||
#include "S1ap-Time-UE-StayedInCell.h"
|
||||
#include "S1ap-TransportLayerAddress.h"
|
||||
#include "S1ap-TraceActivation.h"
|
||||
#include "S1ap-TraceDepth.h"
|
||||
#include "S1ap-E-UTRAN-Trace-ID.h"
|
||||
#include "S1ap-TypeOfError.h"
|
||||
#include "S1ap-UEAggregateMaximumBitrate.h"
|
||||
#include "S1ap-UE-associatedLogicalS1-ConnectionItem.h"
|
||||
#include "S1ap-UEIdentityIndexValue.h"
|
||||
#include "S1ap-UE-HistoryInformation.h"
|
||||
#include "S1ap-UEPagingID.h"
|
||||
#include "S1ap-UERadioCapability.h"
|
||||
#include "S1ap-UESecurityCapabilities.h"
|
||||
#include "S1ap-WarningAreaList.h"
|
||||
#include "S1ap-WarningType.h"
|
||||
#include "S1ap-WarningSecurityInfo.h"
|
||||
#include "S1ap-WarningMessageContents.h"
|
||||
#include "S1ap-X2TNLConfigurationInfo.h"
|
||||
#include "S1ap-CriticalityDiagnostics.h"
|
||||
#include "S1ap-CriticalityDiagnostics-IE-List.h"
|
||||
#include "S1ap-CriticalityDiagnostics-IE-Item.h"
|
||||
#include "S1ap-ResetType.h"
|
||||
#include "S1ap-Inter-SystemInformationTransferType.h"
|
||||
#include "S1ap-UE-S1AP-IDs.h"
|
||||
#include "S1ap-UE-S1AP-ID-pair.h"
|
||||
#include "S1ap-MME-UE-S1AP-ID.h"
|
||||
#include "S1ap-ENB-UE-S1AP-ID.h"
|
||||
#include "S1ap-TBCD-STRING.h"
|
||||
#include "S1ap-InitiatingMessage.h"
|
||||
#include "S1ap-SuccessfulOutcome.h"
|
||||
#include "S1ap-UnsuccessfulOutcome.h"
|
||||
#include "S1ap-HandoverRequired.h"
|
||||
#include "S1ap-HandoverCommand.h"
|
||||
#include "S1ap-HandoverNotify.h"
|
||||
#include "S1ap-HandoverPreparationFailure.h"
|
||||
#include "S1ap-HandoverRequest.h"
|
||||
#include "S1ap-HandoverRequestAcknowledge.h"
|
||||
#include "S1ap-HandoverFailure.h"
|
||||
#include "S1ap-PathSwitchRequest.h"
|
||||
#include "S1ap-PathSwitchRequestAcknowledge.h"
|
||||
#include "S1ap-PathSwitchRequestFailure.h"
|
||||
#include "S1ap-E-RABSetupRequest.h"
|
||||
#include "S1ap-E-RABSetupResponse.h"
|
||||
#include "S1ap-E-RABModifyRequest.h"
|
||||
#include "S1ap-E-RABModifyResponse.h"
|
||||
#include "S1ap-E-RABReleaseIndication.h"
|
||||
#include "S1ap-E-RABReleaseCommand.h"
|
||||
#include "S1ap-E-RABReleaseResponse.h"
|
||||
#include "S1ap-InitialContextSetupRequest.h"
|
||||
#include "S1ap-InitialContextSetupResponse.h"
|
||||
#include "S1ap-InitialContextSetupFailure.h"
|
||||
#include "S1ap-UEContextReleaseRequest.h"
|
||||
#include "S1ap-Paging.h"
|
||||
#include "S1ap-DownlinkNASTransport.h"
|
||||
#include "S1ap-InitialUEMessage.h"
|
||||
#include "S1ap-UplinkNASTransport.h"
|
||||
#include "S1ap-NASNonDeliveryIndication.h"
|
||||
#include "S1ap-HandoverCancel.h"
|
||||
#include "S1ap-HandoverCancelAcknowledge.h"
|
||||
#include "S1ap-Reset.h"
|
||||
#include "S1ap-ResetAcknowledge.h"
|
||||
#include "S1ap-S1SetupResponse.h"
|
||||
#include "S1ap-S1SetupRequest.h"
|
||||
#include "S1ap-S1SetupFailure.h"
|
||||
#include "S1ap-ErrorIndication.h"
|
||||
#include "S1ap-ENBConfigurationUpdate.h"
|
||||
#include "S1ap-ENBConfigurationUpdateAcknowledge.h"
|
||||
#include "S1ap-ENBConfigurationUpdateFailure.h"
|
||||
#include "S1ap-MMEConfigurationUpdate.h"
|
||||
#include "S1ap-MMEConfigurationUpdateAcknowledge.h"
|
||||
#include "S1ap-MMEConfigurationUpdateFailure.h"
|
||||
#include "S1ap-DownlinkS1cdma2000tunneling.h"
|
||||
#include "S1ap-UplinkS1cdma2000tunneling.h"
|
||||
#include "S1ap-UEContextModificationRequest.h"
|
||||
#include "S1ap-UEContextModificationResponse.h"
|
||||
#include "S1ap-UEContextModificationFailure.h"
|
||||
#include "S1ap-UECapabilityInfoIndication.h"
|
||||
#include "S1ap-UEContextReleaseCommand.h"
|
||||
#include "S1ap-UEContextReleaseComplete.h"
|
||||
#include "S1ap-ENBStatusTransfer.h"
|
||||
#include "S1ap-MMEStatusTransfer.h"
|
||||
#include "S1ap-DeactivateTrace.h"
|
||||
#include "S1ap-TraceStart.h"
|
||||
#include "S1ap-TraceFailureIndication.h"
|
||||
#include "S1ap-CellTrafficTrace.h"
|
||||
#include "S1ap-LocationReportingControl.h"
|
||||
#include "S1ap-LocationReportingFailureIndication.h"
|
||||
#include "S1ap-LocationReport.h"
|
||||
#include "S1ap-OverloadStart.h"
|
||||
#include "S1ap-OverloadStop.h"
|
||||
#include "S1ap-WriteReplaceWarningRequest.h"
|
||||
#include "S1ap-WriteReplaceWarningResponse.h"
|
||||
#include "S1ap-ENBDirectInformationTransfer.h"
|
||||
#include "S1ap-MMEDirectInformationTransfer.h"
|
||||
#include "S1ap-ENBConfigurationTransfer.h"
|
||||
#include "S1ap-MMEConfigurationTransfer.h"
|
||||
#include "S1ap-PrivateMessage.h"
|
||||
#include "S1ap-E-RABReleaseItemBearerRelComp.h"
|
||||
#include "S1ap-E-RABToBeSwitchedDLList.h"
|
||||
#include "S1ap-E-RABToBeSwitchedDLItem.h"
|
||||
#include "S1ap-E-RABToBeSwitchedULList.h"
|
||||
#include "S1ap-E-RABToBeSwitchedULItem.h"
|
||||
#include "S1ap-E-RABToBeSetupListBearerSUReq.h"
|
||||
#include "S1ap-E-RABToBeSetupItemBearerSUReq.h"
|
||||
#include "S1ap-E-RABDataForwardingList.h"
|
||||
#include "S1ap-E-RABDataForwardingItem.h"
|
||||
#include "S1ap-E-RABToBeSetupListHOReq.h"
|
||||
#include "S1ap-E-RABToBeSetupItemHOReq.h"
|
||||
#include "S1ap-E-RABAdmittedList.h"
|
||||
#include "S1ap-E-RABAdmittedItem.h"
|
||||
#include "S1ap-E-RABFailedToSetupListHOReqAck.h"
|
||||
#include "S1ap-E-RABToBeSetupItemCtxtSUReq.h"
|
||||
#include "S1ap-E-RABToBeSetupListCtxtSUReq.h"
|
||||
#include "S1ap-E-RABSetupItemBearerSURes.h"
|
||||
#include "S1ap-E-RABSetupListBearerSURes.h"
|
||||
#include "S1ap-E-RABSetupItemCtxtSURes.h"
|
||||
#include "S1ap-E-RABSetupListCtxtSURes.h"
|
||||
#include "S1ap-E-RABReleaseListBearerRelComp.h"
|
||||
#include "S1ap-E-RABModifyItemBearerModRes.h"
|
||||
#include "S1ap-E-RABModifyListBearerModRes.h"
|
||||
#include "S1ap-E-RABFailedToSetupItemHOReqAck.h"
|
||||
#include "S1ap-E-RABFailedToSetupListHOReqAck.h"
|
||||
#include "S1ap-E-RABToBeModifiedItemBearerModReq.h"
|
||||
#include "S1ap-E-RABToBeModifiedListBearerModReq.h"
|
||||
#include "S1ap-UE-associatedLogicalS1-ConnectionListResAck.h"
|
||||
#include "S1ap-IE.h"
|
||||
#include "S1AP-PDU.h"
|
||||
#include "InitiatingMessage.h"
|
||||
#include "SuccessfulOutcome.h"
|
||||
#include "UnsuccessfulOutcome.h"
|
||||
#include "HandoverRequired.h"
|
||||
#include "HandoverCommand.h"
|
||||
#include "HandoverNotify.h"
|
||||
#include "HandoverPreparationFailure.h"
|
||||
#include "HandoverRequest.h"
|
||||
#include "HandoverRequestAcknowledge.h"
|
||||
#include "HandoverFailure.h"
|
||||
#include "PathSwitchRequest.h"
|
||||
#include "PathSwitchRequestAcknowledge.h"
|
||||
#include "PathSwitchRequestFailure.h"
|
||||
#include "E-RABSetupRequest.h"
|
||||
#include "E-RABSetupResponse.h"
|
||||
#include "E-RABModifyRequest.h"
|
||||
#include "E-RABModifyResponse.h"
|
||||
#include "E-RABReleaseIndication.h"
|
||||
#include "E-RABReleaseCommand.h"
|
||||
#include "E-RABReleaseResponse.h"
|
||||
#include "InitialContextSetupRequest.h"
|
||||
#include "InitialContextSetupResponse.h"
|
||||
#include "InitialContextSetupFailure.h"
|
||||
#include "UEContextReleaseRequest.h"
|
||||
#include "Paging.h"
|
||||
#include "DownlinkNASTransport.h"
|
||||
#include "InitialUEMessage.h"
|
||||
#include "UplinkNASTransport.h"
|
||||
#include "NASNonDeliveryIndication.h"
|
||||
#include "HandoverCancel.h"
|
||||
#include "HandoverCancelAcknowledge.h"
|
||||
#include "Reset.h"
|
||||
#include "ResetType.h"
|
||||
#include "ResetAcknowledge.h"
|
||||
#include "S1SetupResponse.h"
|
||||
#include "S1SetupRequest.h"
|
||||
#include "S1SetupFailure.h"
|
||||
#include "ErrorIndication.h"
|
||||
#include "ENBConfigurationUpdate.h"
|
||||
#include "ENBConfigurationUpdateAcknowledge.h"
|
||||
#include "ENBConfigurationUpdateFailure.h"
|
||||
#include "MMEConfigurationUpdate.h"
|
||||
#include "MMEConfigurationUpdateAcknowledge.h"
|
||||
#include "MMEConfigurationUpdateFailure.h"
|
||||
#include "DownlinkS1cdma2000tunneling.h"
|
||||
#include "UplinkS1cdma2000tunneling.h"
|
||||
#include "UEContextModificationRequest.h"
|
||||
#include "UEContextModificationResponse.h"
|
||||
#include "UEContextModificationFailure.h"
|
||||
#include "UECapabilityInfoIndication.h"
|
||||
#include "UEContextReleaseCommand.h"
|
||||
#include "UEContextReleaseComplete.h"
|
||||
#include "ENBStatusTransfer.h"
|
||||
#include "MMEStatusTransfer.h"
|
||||
#include "DeactivateTrace.h"
|
||||
#include "TraceStart.h"
|
||||
#include "TraceFailureIndication.h"
|
||||
#include "CellTrafficTrace.h"
|
||||
#include "LocationReportingControl.h"
|
||||
#include "LocationReportingFailureIndication.h"
|
||||
#include "LocationReport.h"
|
||||
#include "OverloadStart.h"
|
||||
#include "OverloadStop.h"
|
||||
#include "WriteReplaceWarningRequest.h"
|
||||
#include "WriteReplaceWarningResponse.h"
|
||||
#include "ENBDirectInformationTransfer.h"
|
||||
#include "MMEDirectInformationTransfer.h"
|
||||
#include "ENBConfigurationTransfer.h"
|
||||
#include "MMEConfigurationTransfer.h"
|
||||
#include "PrivateMessage.h"
|
||||
#include "Inter-SystemInformationTransferType.h"
|
||||
#include "E-RABReleaseItemBearerRelComp.h"
|
||||
#include "E-RABToBeSwitchedDLList.h"
|
||||
#include "E-RABToBeSwitchedDLItem.h"
|
||||
#include "E-RABToBeSwitchedULList.h"
|
||||
#include "E-RABToBeSwitchedULItem.h"
|
||||
#include "E-RABToBeSetupListBearerSUReq.h"
|
||||
#include "E-RABToBeSetupItemBearerSUReq.h"
|
||||
#include "E-RABDataForwardingList.h"
|
||||
#include "E-RABDataForwardingItem.h"
|
||||
#include "E-RABToBeSetupListHOReq.h"
|
||||
#include "E-RABToBeSetupItemHOReq.h"
|
||||
#include "E-RABAdmittedList.h"
|
||||
#include "E-RABAdmittedItem.h"
|
||||
#include "E-RABFailedToSetupListHOReqAck.h"
|
||||
#include "E-RABToBeSetupItemCtxtSUReq.h"
|
||||
#include "E-RABToBeSetupListCtxtSUReq.h"
|
||||
#include "E-RABSetupItemBearerSURes.h"
|
||||
#include "E-RABSetupListBearerSURes.h"
|
||||
#include "E-RABSetupItemCtxtSURes.h"
|
||||
#include "E-RABSetupListCtxtSURes.h"
|
||||
#include "E-RABReleaseListBearerRelComp.h"
|
||||
#include "E-RABModifyItemBearerModRes.h"
|
||||
#include "E-RABModifyListBearerModRes.h"
|
||||
#include "E-RABFailedToSetupItemHOReqAck.h"
|
||||
#include "E-RABFailedToSetupListHOReqAck.h"
|
||||
#include "E-RABToBeModifiedItemBearerModReq.h"
|
||||
#include "E-RABToBeModifiedListBearerModReq.h"
|
||||
#include "UE-associatedLogicalS1-ConnectionListResAck.h"
|
||||
#include "IE.h"
|
||||
|
||||
#if defined (UPDATE_RELEASE_9)
|
||||
# include "BroadcastCancelledAreaList.h"
|
||||
# include "CancelledCellinEAI.h"
|
||||
# include "CancelledCellinEAI-Item.h"
|
||||
# include "CancelledCellinTAI.h"
|
||||
# include "CancelledCellinTAI-Item.h"
|
||||
# include "CellAccessMode.h"
|
||||
# include "CellID-Cancelled.h"
|
||||
# include "CellID-Cancelled-Item.h"
|
||||
# include "ConcurrentWarningMessageIndicator.h"
|
||||
# include "CSGMembershipStatus.h"
|
||||
# include "Data-Forwarding-Not-Possible.h"
|
||||
# include "EmergencyAreaID-Cancelled.h"
|
||||
# include "EmergencyAreaID-Cancelled-Item.h"
|
||||
# include "E-RABList.h"
|
||||
# include "EUTRANRoundTripDelayEstimationInfo.h"
|
||||
# include "ExtendedRepetitionPeriod.h"
|
||||
# include "LPPa-PDU.h"
|
||||
# include "PS-ServiceNotAvailable.h"
|
||||
# include "Routing-ID.h"
|
||||
# include "StratumLevel.h"
|
||||
# include "SynchronizationStatus.h"
|
||||
# include "TimeSynchronizationInfo.h"
|
||||
# include "TAI-Cancelled.h"
|
||||
# include "TAI-Cancelled-Item.h"
|
||||
# include "KillRequest.h"
|
||||
# include "KillResponse.h"
|
||||
# include "DownlinkUEAssociatedLPPaTransport.h"
|
||||
# include "UplinkUEAssociatedLPPaTransport.h"
|
||||
# include "DownlinkNonUEAssociatedLPPaTransport.h"
|
||||
# include "UplinkNonUEAssociatedLPPaTransport.h"
|
||||
# include "S1ap-BroadcastCancelledAreaList.h"
|
||||
# include "S1ap-CancelledCellinEAI.h"
|
||||
# include "S1ap-CancelledCellinEAI-Item.h"
|
||||
# include "S1ap-CancelledCellinTAI.h"
|
||||
# include "S1ap-CancelledCellinTAI-Item.h"
|
||||
# include "S1ap-CellAccessMode.h"
|
||||
# include "S1ap-CellID-Cancelled.h"
|
||||
# include "S1ap-CellID-Cancelled-Item.h"
|
||||
# include "S1ap-ConcurrentWarningMessageIndicator.h"
|
||||
# include "S1ap-CSGMembershipStatus.h"
|
||||
# include "S1ap-Data-Forwarding-Not-Possible.h"
|
||||
# include "S1ap-EmergencyAreaID-Cancelled.h"
|
||||
# include "S1ap-EmergencyAreaID-Cancelled-Item.h"
|
||||
# include "S1ap-E-RABList.h"
|
||||
# include "S1ap-EUTRANRoundTripDelayEstimationInfo.h"
|
||||
# include "S1ap-ExtendedRepetitionPeriod.h"
|
||||
# include "S1ap-LPPa-PDU.h"
|
||||
# include "S1ap-PS-ServiceNotAvailable.h"
|
||||
# include "S1ap-Routing-ID.h"
|
||||
# include "S1ap-StratumLevel.h"
|
||||
# include "S1ap-SynchronizationStatus.h"
|
||||
# include "S1ap-TimeSynchronizationInfo.h"
|
||||
# include "S1ap-TAI-Cancelled.h"
|
||||
# include "S1ap-TAI-Cancelled-Item.h"
|
||||
# include "S1ap-KillRequest.h"
|
||||
# include "S1ap-KillResponse.h"
|
||||
# include "S1ap-DownlinkUEAssociatedLPPaTransport.h"
|
||||
# include "S1ap-UplinkUEAssociatedLPPaTransport.h"
|
||||
# include "S1ap-DownlinkNonUEAssociatedLPPaTransport.h"
|
||||
# include "S1ap-UplinkNonUEAssociatedLPPaTransport.h"
|
||||
#endif /* (UPDATE_RELEASE_9) */
|
||||
|
||||
#if defined(UPDATE_RELEASE_10)
|
||||
# include "PagingPriority.h"
|
||||
# include "RelayNode-Indicator.h"
|
||||
# include "GWContextReleaseIndication.h"
|
||||
# include "MMERelaySupportIndicator.h"
|
||||
# include "ManagementBasedMDTAllowed.h"
|
||||
# include "PrivacyIndicator.h"
|
||||
# include "TrafficLoadReductionIndication.h"
|
||||
# include "GUMMEIList.h"
|
||||
# include "S1ap-PagingPriority.h"
|
||||
# include "S1ap-RelayNode-Indicator.h"
|
||||
# include "S1ap-GWContextReleaseIndication.h"
|
||||
# include "S1ap-MMERelaySupportIndicator.h"
|
||||
# include "S1ap-ManagementBasedMDTAllowed.h"
|
||||
# include "S1ap-PrivacyIndicator.h"
|
||||
# include "S1ap-TrafficLoadReductionIndication.h"
|
||||
# include "S1ap-GUMMEIList.h"
|
||||
#endif /* (UPDATE_RELEASE_10) */
|
||||
|
||||
/* Checking version of ASN1C compiler */
|
||||
@@ -439,8 +439,8 @@ typedef int (*s1ap_message_decoded_callback)(
|
||||
ssize_t s1ap_generate_successfull_outcome(
|
||||
uint8_t **buffer,
|
||||
uint32_t *length,
|
||||
e_ProcedureCode procedureCode,
|
||||
Criticality_t criticality,
|
||||
e_S1ap_ProcedureCode procedureCode,
|
||||
S1ap_Criticality_t criticality,
|
||||
asn_TYPE_descriptor_t *td,
|
||||
void *sptr);
|
||||
|
||||
@@ -456,8 +456,8 @@ ssize_t s1ap_generate_successfull_outcome(
|
||||
ssize_t s1ap_generate_initiating_message(
|
||||
uint8_t **buffer,
|
||||
uint32_t *length,
|
||||
e_ProcedureCode procedureCode,
|
||||
Criticality_t criticality,
|
||||
e_S1ap_ProcedureCode procedureCode,
|
||||
S1ap_Criticality_t criticality,
|
||||
asn_TYPE_descriptor_t *td,
|
||||
void *sptr);
|
||||
|
||||
@@ -473,8 +473,8 @@ ssize_t s1ap_generate_initiating_message(
|
||||
ssize_t s1ap_generate_unsuccessfull_outcome(
|
||||
uint8_t **buffer,
|
||||
uint32_t *length,
|
||||
e_ProcedureCode procedureCode,
|
||||
Criticality_t criticality,
|
||||
e_S1ap_ProcedureCode procedureCode,
|
||||
S1ap_Criticality_t criticality,
|
||||
asn_TYPE_descriptor_t *td,
|
||||
void *sptr);
|
||||
|
||||
@@ -485,15 +485,15 @@ ssize_t s1ap_generate_unsuccessfull_outcome(
|
||||
\param sptr Structure to be encoded in the value field
|
||||
@returns a pointer to the newly created IE structure or NULL in case of failure
|
||||
**/
|
||||
IE_t *s1ap_new_ie(ProtocolIE_ID_t id,
|
||||
Criticality_t criticality,
|
||||
asn_TYPE_descriptor_t *type,
|
||||
void *sptr);
|
||||
S1ap_IE_t *s1ap_new_ie(S1ap_ProtocolIE_ID_t id,
|
||||
S1ap_Criticality_t criticality,
|
||||
asn_TYPE_descriptor_t *type,
|
||||
void *sptr);
|
||||
|
||||
/** \brief Handle criticality
|
||||
\param criticality Criticality of the IE
|
||||
@returns void
|
||||
**/
|
||||
void s1ap_handle_criticality(e_Criticality criticality);
|
||||
void s1ap_handle_criticality(S1ap_Criticality_t criticality);
|
||||
|
||||
#endif /* S1AP_COMMON_H_ */
|
||||
|
||||
+16
-14
@@ -259,13 +259,15 @@ void *s1ap_eNB_task(void *arg)
|
||||
static int s1ap_eNB_generate_s1_setup_request(
|
||||
s1ap_eNB_instance_t *instance_p, s1ap_eNB_mme_data_t *s1ap_mme_data_p)
|
||||
{
|
||||
s1ap_message message;
|
||||
S1SetupRequestIEs_t *s1SetupRequest_p;
|
||||
PLMNidentity_t plmnIdentity;
|
||||
SupportedTAs_Item_t ta;
|
||||
uint8_t *buffer;
|
||||
uint32_t len;
|
||||
int ret = 0;
|
||||
s1ap_message message;
|
||||
|
||||
S1ap_S1SetupRequestIEs_t *s1SetupRequest_p;
|
||||
S1ap_PLMNidentity_t plmnIdentity;
|
||||
S1ap_SupportedTAs_Item_t ta;
|
||||
|
||||
uint8_t *buffer;
|
||||
uint32_t len;
|
||||
int ret = 0;
|
||||
|
||||
DevAssert(instance_p != NULL);
|
||||
DevAssert(s1ap_mme_data_p != NULL);
|
||||
@@ -273,17 +275,17 @@ static int s1ap_eNB_generate_s1_setup_request(
|
||||
memset(&message, 0, sizeof(s1ap_message));
|
||||
|
||||
message.direction = S1AP_PDU_PR_initiatingMessage;
|
||||
message.procedureCode = ProcedureCode_id_S1Setup;
|
||||
message.criticality = Criticality_reject;
|
||||
message.procedureCode = S1ap_ProcedureCode_id_S1Setup;
|
||||
message.criticality = S1ap_Criticality_reject;
|
||||
|
||||
s1SetupRequest_p = &message.msg.s1SetupRequestIEs;
|
||||
memset((void *)&plmnIdentity, 0, sizeof(PLMNidentity_t));
|
||||
s1SetupRequest_p = &message.msg.s1ap_S1SetupRequestIEs;
|
||||
memset((void *)&plmnIdentity, 0, sizeof(S1ap_PLMNidentity_t));
|
||||
|
||||
memset((void *)&ta, 0, sizeof(SupportedTAs_Item_t));
|
||||
memset((void *)&ta, 0, sizeof(S1ap_SupportedTAs_Item_t));
|
||||
|
||||
s1ap_mme_data_p->state = S1AP_ENB_STATE_WAITING;
|
||||
|
||||
s1SetupRequest_p->global_ENB_ID.eNB_ID.present = ENB_ID_PR_macroENB_ID;
|
||||
s1SetupRequest_p->global_ENB_ID.eNB_ID.present = S1ap_ENB_ID_PR_macroENB_ID;
|
||||
MACRO_ENB_ID_TO_BIT_STRING(instance_p->eNB_id,
|
||||
&s1SetupRequest_p->global_ENB_ID.eNB_ID.choice.macroENB_ID);
|
||||
MCC_MNC_TO_PLMNID(instance_p->mcc, instance_p->mnc,
|
||||
@@ -298,7 +300,7 @@ static int s1ap_eNB_generate_s1_setup_request(
|
||||
s1SetupRequest_p->defaultPagingDRX = instance_p->default_drx;
|
||||
|
||||
if (instance_p->eNB_name != NULL) {
|
||||
s1SetupRequest_p->presenceMask |= S1SETUPREQUESTIES_ENBNAME_PRESENT;
|
||||
s1SetupRequest_p->presenceMask |= S1AP_S1SETUPREQUESTIES_ENBNAME_PRESENT;
|
||||
OCTET_STRING_fromBuf(&s1SetupRequest_p->eNBname, instance_p->eNB_name,
|
||||
strlen(instance_p->eNB_name));
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
#include "s1ap_eNB_decoder.h"
|
||||
|
||||
static int s1ap_eNB_decode_initiating_message(s1ap_message *message,
|
||||
InitiatingMessage_t *initiating_p)
|
||||
S1ap_InitiatingMessage_t *initiating_p)
|
||||
{
|
||||
DevAssert(initiating_p != NULL);
|
||||
|
||||
@@ -52,12 +52,14 @@ static int s1ap_eNB_decode_initiating_message(s1ap_message *message,
|
||||
message->criticality = initiating_p->criticality;
|
||||
|
||||
switch(initiating_p->procedureCode) {
|
||||
case ProcedureCode_id_downlinkNASTransport:
|
||||
return s1ap_decode_downlinknastransporties(&message->msg.downlinkNASTransportIEs,
|
||||
&initiating_p->value);
|
||||
case ProcedureCode_id_InitialContextSetup:
|
||||
return s1ap_decode_initialcontextsetuprequesties(
|
||||
&message->msg.initialContextSetupRequestIEs, &initiating_p->value);
|
||||
case S1ap_ProcedureCode_id_downlinkNASTransport:
|
||||
return s1ap_decode_s1ap_downlinknastransporties(
|
||||
&message->msg.s1ap_DownlinkNASTransportIEs, &initiating_p->value);
|
||||
|
||||
case S1ap_ProcedureCode_id_InitialContextSetup:
|
||||
return s1ap_decode_s1ap_initialcontextsetuprequesties(
|
||||
&message->msg.s1ap_InitialContextSetupRequestIEs, &initiating_p->value);
|
||||
|
||||
default:
|
||||
S1AP_DEBUG("Unknown procedure ID (%d) for initiating message\n",
|
||||
(int)initiating_p->procedureCode);
|
||||
@@ -67,7 +69,7 @@ static int s1ap_eNB_decode_initiating_message(s1ap_message *message,
|
||||
}
|
||||
|
||||
static int s1ap_eNB_decode_successful_outcome(s1ap_message *message,
|
||||
SuccessfulOutcome_t *successfullOutcome_p)
|
||||
S1ap_SuccessfulOutcome_t *successfullOutcome_p)
|
||||
{
|
||||
DevAssert(successfullOutcome_p != NULL);
|
||||
|
||||
@@ -75,9 +77,10 @@ static int s1ap_eNB_decode_successful_outcome(s1ap_message *message,
|
||||
message->criticality = successfullOutcome_p->criticality;
|
||||
|
||||
switch(successfullOutcome_p->procedureCode) {
|
||||
case ProcedureCode_id_S1Setup:
|
||||
return s1ap_decode_s1setupresponseies(&message->msg.s1SetupResponseIEs,
|
||||
&successfullOutcome_p->value);
|
||||
case S1ap_ProcedureCode_id_S1Setup:
|
||||
return s1ap_decode_s1ap_s1setupresponseies(
|
||||
&message->msg.s1ap_S1SetupResponseIEs, &successfullOutcome_p->value);
|
||||
|
||||
default:
|
||||
S1AP_DEBUG("Unknown procedure ID (%d) for successfull outcome message\n",
|
||||
(int)successfullOutcome_p->procedureCode);
|
||||
@@ -87,7 +90,7 @@ static int s1ap_eNB_decode_successful_outcome(s1ap_message *message,
|
||||
}
|
||||
|
||||
static int s1ap_eNB_decode_unsuccessful_outcome(s1ap_message *message,
|
||||
UnsuccessfulOutcome_t *unSuccessfullOutcome_p)
|
||||
S1ap_UnsuccessfulOutcome_t *unSuccessfullOutcome_p)
|
||||
{
|
||||
DevAssert(unSuccessfullOutcome_p != NULL);
|
||||
|
||||
@@ -95,9 +98,10 @@ static int s1ap_eNB_decode_unsuccessful_outcome(s1ap_message *message,
|
||||
message->criticality = unSuccessfullOutcome_p->criticality;
|
||||
|
||||
switch(unSuccessfullOutcome_p->procedureCode) {
|
||||
case ProcedureCode_id_S1Setup:
|
||||
return s1ap_decode_s1setupfailureies(&message->msg.s1SetupFailureIEs,
|
||||
&unSuccessfullOutcome_p->value);
|
||||
case S1ap_ProcedureCode_id_S1Setup:
|
||||
return s1ap_decode_s1ap_s1setupfailureies(
|
||||
&message->msg.s1ap_S1SetupFailureIEs, &unSuccessfullOutcome_p->value);
|
||||
|
||||
default:
|
||||
S1AP_DEBUG("Unknown procedure ID (%d) for unsuccessfull outcome message\n",
|
||||
(int)unSuccessfullOutcome_p->procedureCode);
|
||||
|
||||
@@ -200,7 +200,7 @@ typedef struct s1ap_eNB_mme_data_s {
|
||||
uint16_t in_streams;
|
||||
uint16_t out_streams;
|
||||
|
||||
/* Connexion id used when SCTP association is not established yet */
|
||||
/* Connexion id used between SCTP/S1AP */
|
||||
uint16_t cnx_id;
|
||||
|
||||
/* SCTP association id */
|
||||
@@ -270,10 +270,6 @@ inline int s1ap_eNB_compare_assoc_id(
|
||||
RB_PROTOTYPE(s1ap_mme_map, s1ap_eNB_mme_data_s, entry,
|
||||
s1ap_eNB_compare_assoc_id);
|
||||
|
||||
inline struct s1ap_eNB_mme_data_s *s1ap_eNB_get_MME(
|
||||
s1ap_eNB_instance_t *instance_p,
|
||||
int32_t assoc_id, uint16_t cnx_id);
|
||||
|
||||
int s1ap_eNB_init(s1ap_eNB_instance_t *eNB_desc_p,
|
||||
char *local_ip_addr[], int nb_local_ip,
|
||||
char *remote_ip_addr[], int nb_remote_ip);
|
||||
|
||||
@@ -48,28 +48,36 @@
|
||||
static inline int s1ap_eNB_encode_initiating(s1ap_message *message,
|
||||
uint8_t **buffer,
|
||||
uint32_t *len);
|
||||
|
||||
static inline int s1ap_eNB_encode_successfull_outcome(s1ap_message *message,
|
||||
uint8_t **buffer, uint32_t *len);
|
||||
|
||||
static inline int s1ap_eNB_encode_unsuccessfull_outcome(s1ap_message *message,
|
||||
uint8_t **buffer, uint32_t *len);
|
||||
static inline int s1ap_eNB_encode_s1_setup_request(S1SetupRequestIEs_t
|
||||
*s1SetupRequestIEs, uint8_t **buffer, uint32_t *length);
|
||||
static inline int s1ap_eNB_encode_trace_failure(TraceFailureIndicationIEs_t
|
||||
|
||||
static inline int s1ap_eNB_encode_s1_setup_request(
|
||||
S1ap_S1SetupRequestIEs_t *s1SetupRequestIEs, uint8_t **buffer, uint32_t *length);
|
||||
|
||||
static inline int s1ap_eNB_encode_trace_failure(S1ap_TraceFailureIndicationIEs_t
|
||||
*trace_failure_ies_p, uint8_t **buffer,
|
||||
uint32_t *length);
|
||||
static inline int s1ap_eNB_encode_initial_ue_message(InitialUEMessageIEs_t
|
||||
|
||||
static inline int s1ap_eNB_encode_initial_ue_message(S1ap_InitialUEMessageIEs_t
|
||||
*initialUEmessageIEs_p, uint8_t **buffer,
|
||||
uint32_t *length);
|
||||
static inline int s1ap_eNB_encode_uplink_nas_transport(UplinkNASTransportIEs_t
|
||||
|
||||
static inline int s1ap_eNB_encode_uplink_nas_transport(S1ap_UplinkNASTransportIEs_t
|
||||
*uplinkNASTransportIEs,
|
||||
uint8_t **buffer,
|
||||
uint32_t *length);
|
||||
|
||||
static inline int s1ap_eNB_encode_ue_capability_info_indication(
|
||||
UECapabilityInfoIndicationIEs_t *ueCapabilityInfoIndicationIEs,
|
||||
S1ap_UECapabilityInfoIndicationIEs_t *ueCapabilityInfoIndicationIEs,
|
||||
uint8_t **buffer,
|
||||
uint32_t *length);
|
||||
|
||||
static inline int s1ap_eNB_encode_initial_context_setup_response(
|
||||
InitialContextSetupResponseIEs_t *initialContextSetupResponseIEs,
|
||||
S1ap_InitialContextSetupResponseIEs_t *initialContextSetupResponseIEs,
|
||||
uint8_t **buffer,
|
||||
uint32_t *length);
|
||||
|
||||
@@ -96,24 +104,25 @@ int s1ap_eNB_encode_pdu(s1ap_message *message, uint8_t **buffer, uint32_t *len)
|
||||
|
||||
static inline
|
||||
int s1ap_eNB_encode_initiating(s1ap_message *message,
|
||||
uint8_t **buffer,
|
||||
uint32_t *len)
|
||||
uint8_t **buffer, uint32_t *len)
|
||||
{
|
||||
switch(message->procedureCode) {
|
||||
case ProcedureCode_id_S1Setup:
|
||||
return s1ap_eNB_encode_s1_setup_request(&message->msg.s1SetupRequestIEs,
|
||||
buffer, len);
|
||||
case ProcedureCode_id_uplinkNASTransport:
|
||||
return s1ap_eNB_encode_uplink_nas_transport(&message->msg.uplinkNASTransportIEs,
|
||||
buffer, len);
|
||||
case ProcedureCode_id_UECapabilityInfoIndication:
|
||||
case S1ap_ProcedureCode_id_S1Setup:
|
||||
return s1ap_eNB_encode_s1_setup_request(
|
||||
&message->msg.s1ap_S1SetupRequestIEs, buffer, len);
|
||||
|
||||
case S1ap_ProcedureCode_id_uplinkNASTransport:
|
||||
return s1ap_eNB_encode_uplink_nas_transport(
|
||||
&message->msg.s1ap_UplinkNASTransportIEs, buffer, len);
|
||||
|
||||
case S1ap_ProcedureCode_id_UECapabilityInfoIndication:
|
||||
return s1ap_eNB_encode_ue_capability_info_indication(
|
||||
&message->msg.ueCapabilityInfoIndicationIEs,
|
||||
buffer, len);
|
||||
case ProcedureCode_id_initialUEMessage:
|
||||
&message->msg.s1ap_UECapabilityInfoIndicationIEs, buffer, len);
|
||||
|
||||
case S1ap_ProcedureCode_id_initialUEMessage:
|
||||
return s1ap_eNB_encode_initial_ue_message(
|
||||
&message->msg.initialUEMessageIEs,
|
||||
buffer, len);
|
||||
&message->msg.s1ap_InitialUEMessageIEs, buffer, len);
|
||||
|
||||
default:
|
||||
S1AP_DEBUG("Unknown procedure ID (%d) for initiating message\n",
|
||||
(int)message->procedureCode);
|
||||
@@ -127,10 +136,9 @@ int s1ap_eNB_encode_successfull_outcome(s1ap_message *message,
|
||||
uint8_t **buffer, uint32_t *len)
|
||||
{
|
||||
switch(message->procedureCode) {
|
||||
case ProcedureCode_id_InitialContextSetup:
|
||||
case S1ap_ProcedureCode_id_InitialContextSetup:
|
||||
return s1ap_eNB_encode_initial_context_setup_response(
|
||||
&message->msg.initialContextSetupResponseIEs,
|
||||
buffer, len);
|
||||
&message->msg.s1ap_InitialContextSetupResponseIEs, buffer, len);
|
||||
default:
|
||||
S1AP_DEBUG("Unknown procedure ID (%d) for successfull outcome message\n",
|
||||
(int)message->procedureCode);
|
||||
@@ -154,147 +162,151 @@ int s1ap_eNB_encode_unsuccessfull_outcome(s1ap_message *message,
|
||||
|
||||
static inline
|
||||
int s1ap_eNB_encode_ue_capability_info_indication(
|
||||
UECapabilityInfoIndicationIEs_t *ueCapabilityInfoIndicationIEs,
|
||||
uint8_t **buffer,
|
||||
uint32_t *length)
|
||||
S1ap_UECapabilityInfoIndicationIEs_t *ueCapabilityInfoIndicationIEs,
|
||||
uint8_t **buffer,
|
||||
uint32_t *length)
|
||||
{
|
||||
UECapabilityInfoIndication_t ueCapabilityInfoIndication;
|
||||
UECapabilityInfoIndication_t *ueCapabilityInfoIndication_p =
|
||||
S1ap_UECapabilityInfoIndication_t ueCapabilityInfoIndication;
|
||||
S1ap_UECapabilityInfoIndication_t *ueCapabilityInfoIndication_p =
|
||||
&ueCapabilityInfoIndication;
|
||||
|
||||
memset((void *)ueCapabilityInfoIndication_p, 0,
|
||||
sizeof(UECapabilityInfoIndication_t));
|
||||
memset((void *)ueCapabilityInfoIndication_p, 0, sizeof(ueCapabilityInfoIndication));
|
||||
|
||||
if (s1ap_encode_uecapabilityinfoindicationies(ueCapabilityInfoIndication_p,
|
||||
ueCapabilityInfoIndicationIEs) < 0) {
|
||||
if (s1ap_encode_s1ap_uecapabilityinfoindicationies(
|
||||
ueCapabilityInfoIndication_p, ueCapabilityInfoIndicationIEs) < 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
return s1ap_generate_initiating_message(buffer,
|
||||
length,
|
||||
ProcedureCode_id_UECapabilityInfoIndication,
|
||||
Criticality_ignore,
|
||||
&asn_DEF_UECapabilityInfoIndication,
|
||||
S1ap_ProcedureCode_id_UECapabilityInfoIndication,
|
||||
S1ap_Criticality_ignore,
|
||||
&asn_DEF_S1ap_UECapabilityInfoIndication,
|
||||
ueCapabilityInfoIndication_p);
|
||||
}
|
||||
|
||||
static inline
|
||||
int s1ap_eNB_encode_uplink_nas_transport(UplinkNASTransportIEs_t
|
||||
*uplinkNASTransportIEs,
|
||||
uint8_t **buffer,
|
||||
uint32_t *length)
|
||||
int s1ap_eNB_encode_uplink_nas_transport(
|
||||
S1ap_UplinkNASTransportIEs_t *uplinkNASTransportIEs,
|
||||
uint8_t **buffer,
|
||||
uint32_t *length)
|
||||
{
|
||||
UplinkNASTransport_t uplinkNASTransport;
|
||||
UplinkNASTransport_t *uplinkNASTransport_p = &uplinkNASTransport;
|
||||
S1ap_UplinkNASTransport_t uplinkNASTransport;
|
||||
S1ap_UplinkNASTransport_t *uplinkNASTransport_p = &uplinkNASTransport;
|
||||
|
||||
memset((void *)uplinkNASTransport_p, 0, sizeof(UplinkNASTransport_t));
|
||||
memset((void *)uplinkNASTransport_p, 0, sizeof(uplinkNASTransport));
|
||||
|
||||
if (s1ap_encode_uplinknastransporties(uplinkNASTransport_p,
|
||||
uplinkNASTransportIEs) < 0) {
|
||||
if (s1ap_encode_s1ap_uplinknastransporties(
|
||||
uplinkNASTransport_p, uplinkNASTransportIEs) < 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
return s1ap_generate_initiating_message(buffer,
|
||||
length,
|
||||
ProcedureCode_id_uplinkNASTransport,
|
||||
Criticality_ignore,
|
||||
&asn_DEF_UplinkNASTransport,
|
||||
S1ap_ProcedureCode_id_uplinkNASTransport,
|
||||
S1ap_Criticality_ignore,
|
||||
&asn_DEF_S1ap_UplinkNASTransport,
|
||||
uplinkNASTransport_p);
|
||||
}
|
||||
|
||||
static inline
|
||||
int s1ap_eNB_encode_s1_setup_request(S1SetupRequestIEs_t
|
||||
*s1SetupRequestIEs,
|
||||
uint8_t **buffer,
|
||||
uint32_t *length)
|
||||
int s1ap_eNB_encode_s1_setup_request(
|
||||
S1ap_S1SetupRequestIEs_t *s1SetupRequestIEs,
|
||||
uint8_t **buffer,
|
||||
uint32_t *length)
|
||||
{
|
||||
S1SetupRequest_t s1SetupRequest;
|
||||
S1SetupRequest_t *s1SetupRequest_p = &s1SetupRequest;
|
||||
S1ap_S1SetupRequest_t s1SetupRequest;
|
||||
S1ap_S1SetupRequest_t *s1SetupRequest_p = &s1SetupRequest;
|
||||
|
||||
memset((void *)s1SetupRequest_p, 0, sizeof(S1SetupRequest_t));
|
||||
memset((void *)s1SetupRequest_p, 0, sizeof(s1SetupRequest));
|
||||
|
||||
if (s1ap_encode_s1setuprequesties(s1SetupRequest_p, s1SetupRequestIEs) < 0) {
|
||||
if (s1ap_encode_s1ap_s1setuprequesties(s1SetupRequest_p, s1SetupRequestIEs) < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
return s1ap_generate_initiating_message(buffer,
|
||||
length,
|
||||
ProcedureCode_id_S1Setup,
|
||||
Criticality_reject,
|
||||
&asn_DEF_S1SetupRequest,
|
||||
S1ap_ProcedureCode_id_S1Setup,
|
||||
S1ap_Criticality_reject,
|
||||
&asn_DEF_S1ap_S1SetupRequest,
|
||||
s1SetupRequest_p);
|
||||
}
|
||||
|
||||
static inline
|
||||
int s1ap_eNB_encode_initial_ue_message(InitialUEMessageIEs_t
|
||||
*initialUEmessageIEs_p,
|
||||
uint8_t **buffer,
|
||||
uint32_t *length)
|
||||
int s1ap_eNB_encode_initial_ue_message(
|
||||
S1ap_InitialUEMessageIEs_t *initialUEmessageIEs_p,
|
||||
uint8_t **buffer,
|
||||
uint32_t *length)
|
||||
{
|
||||
InitialUEMessage_t initialUEMessage;
|
||||
InitialUEMessage_t *initialUEMessage_p = &initialUEMessage;
|
||||
S1ap_InitialUEMessage_t initialUEMessage;
|
||||
S1ap_InitialUEMessage_t *initialUEMessage_p = &initialUEMessage;
|
||||
|
||||
memset((void *)initialUEMessage_p, 0, sizeof(InitialUEMessage_t));
|
||||
memset((void *)initialUEMessage_p, 0, sizeof(initialUEMessage));
|
||||
|
||||
if (s1ap_encode_initialuemessageies(initialUEMessage_p,
|
||||
initialUEmessageIEs_p) < 0) {
|
||||
if (s1ap_encode_s1ap_initialuemessageies(
|
||||
initialUEMessage_p, initialUEmessageIEs_p) < 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
return s1ap_generate_initiating_message(buffer,
|
||||
length,
|
||||
ProcedureCode_id_initialUEMessage,
|
||||
Criticality_reject,
|
||||
&asn_DEF_InitialUEMessage,
|
||||
S1ap_ProcedureCode_id_initialUEMessage,
|
||||
S1ap_Criticality_reject,
|
||||
&asn_DEF_S1ap_InitialUEMessage,
|
||||
initialUEMessage_p);
|
||||
}
|
||||
|
||||
static inline
|
||||
int s1ap_eNB_encode_trace_failure(TraceFailureIndicationIEs_t
|
||||
*trace_failure_ies_p,
|
||||
uint8_t **buffer,
|
||||
uint32_t *length)
|
||||
int s1ap_eNB_encode_trace_failure(
|
||||
S1ap_TraceFailureIndicationIEs_t *trace_failure_ies_p,
|
||||
uint8_t **buffer,
|
||||
uint32_t *length)
|
||||
{
|
||||
TraceFailureIndication_t trace_failure;
|
||||
TraceFailureIndication_t *trace_failure_p = &trace_failure;
|
||||
S1ap_TraceFailureIndication_t trace_failure;
|
||||
S1ap_TraceFailureIndication_t *trace_failure_p = &trace_failure;
|
||||
|
||||
memset((void *)trace_failure_p, 0, sizeof(TraceFailureIndication_t));
|
||||
memset((void *)trace_failure_p, 0, sizeof(trace_failure));
|
||||
|
||||
if (s1ap_encode_tracefailureindicationies(trace_failure_p,
|
||||
trace_failure_ies_p) < 0) {
|
||||
if (s1ap_encode_s1ap_tracefailureindicationies(
|
||||
trace_failure_p, trace_failure_ies_p) < 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
return s1ap_generate_initiating_message(buffer,
|
||||
length,
|
||||
ProcedureCode_id_TraceFailureIndication,
|
||||
Criticality_reject,
|
||||
&asn_DEF_TraceFailureIndication,
|
||||
S1ap_ProcedureCode_id_TraceFailureIndication,
|
||||
S1ap_Criticality_reject,
|
||||
&asn_DEF_S1ap_TraceFailureIndication,
|
||||
trace_failure_p);
|
||||
}
|
||||
|
||||
static inline
|
||||
int s1ap_eNB_encode_initial_context_setup_response(
|
||||
InitialContextSetupResponseIEs_t *initialContextSetupResponseIEs,
|
||||
uint8_t **buffer,
|
||||
uint32_t *length)
|
||||
S1ap_InitialContextSetupResponseIEs_t *initialContextSetupResponseIEs,
|
||||
uint8_t **buffer,
|
||||
uint32_t *length)
|
||||
{
|
||||
InitialContextSetupResponse_t initial_context_setup_response;
|
||||
InitialContextSetupResponse_t *initial_context_setup_response_p =
|
||||
S1ap_InitialContextSetupResponse_t initial_context_setup_response;
|
||||
S1ap_InitialContextSetupResponse_t *initial_context_setup_response_p =
|
||||
&initial_context_setup_response;
|
||||
|
||||
memset((void *)initial_context_setup_response_p, 0,
|
||||
sizeof(InitialContextSetupResponse_t));
|
||||
sizeof(initial_context_setup_response));
|
||||
|
||||
if (s1ap_encode_initialcontextsetupresponseies(initial_context_setup_response_p,
|
||||
initialContextSetupResponseIEs) < 0) {
|
||||
if (s1ap_encode_s1ap_initialcontextsetupresponseies(
|
||||
initial_context_setup_response_p, initialContextSetupResponseIEs) < 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
return s1ap_generate_successfull_outcome(buffer,
|
||||
length,
|
||||
ProcedureCode_id_InitialContextSetup,
|
||||
Criticality_reject,
|
||||
&asn_DEF_InitialContextSetupResponse,
|
||||
S1ap_ProcedureCode_id_InitialContextSetup,
|
||||
S1ap_Criticality_reject,
|
||||
&asn_DEF_S1ap_InitialContextSetupResponse,
|
||||
initial_context_setup_response_p);
|
||||
}
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
#include "s1ap_eNB_ue_context.h"
|
||||
#include "s1ap_eNB_trace.h"
|
||||
#include "s1ap_eNB_nas_procedures.h"
|
||||
#include "s1ap_eNB_management_procedures.h"
|
||||
|
||||
#include "s1ap_eNB_default_values.h"
|
||||
|
||||
@@ -185,13 +186,13 @@ int s1ap_eNB_handle_s1_setup_response(uint32_t assoc_id,
|
||||
uint32_t stream,
|
||||
struct s1ap_message_s *message_p)
|
||||
{
|
||||
S1SetupResponseIEs_t *s1SetupResponse_p;
|
||||
s1ap_eNB_mme_data_t *mme_desc_p;
|
||||
S1ap_S1SetupResponseIEs_t *s1SetupResponse_p;
|
||||
s1ap_eNB_mme_data_t *mme_desc_p;
|
||||
int i;
|
||||
|
||||
DevAssert(message_p != NULL);
|
||||
|
||||
s1SetupResponse_p = &message_p->msg.s1SetupResponseIEs;
|
||||
s1SetupResponse_p = &message_p->msg.s1ap_S1SetupResponseIEs;
|
||||
|
||||
/* S1 Setup Response == Non UE-related procedure -> stream 0 */
|
||||
if (stream != 0) {
|
||||
@@ -212,11 +213,11 @@ int s1ap_eNB_handle_s1_setup_response(uint32_t assoc_id,
|
||||
DevAssert(s1SetupResponse_p->servedGUMMEIs.list.count == 1);
|
||||
|
||||
for (i = 0; i < s1SetupResponse_p->servedGUMMEIs.list.count; i++) {
|
||||
struct ServedGUMMEIsItem *gummei_item_p;
|
||||
struct served_gummei_s *new_gummei_p;
|
||||
struct S1ap_ServedGUMMEIsItem *gummei_item_p;
|
||||
struct served_gummei_s *new_gummei_p;
|
||||
int j;
|
||||
|
||||
gummei_item_p = (struct ServedGUMMEIsItem *)
|
||||
gummei_item_p = (struct S1ap_ServedGUMMEIsItem *)
|
||||
s1SetupResponse_p->servedGUMMEIs.list.array[i];
|
||||
new_gummei_p = calloc(1, sizeof(struct served_gummei_s));
|
||||
|
||||
@@ -225,7 +226,7 @@ int s1ap_eNB_handle_s1_setup_response(uint32_t assoc_id,
|
||||
STAILQ_INIT(&new_gummei_p->mme_codes);
|
||||
|
||||
for (j = 0; j < gummei_item_p->servedPLMNs.list.count; j++) {
|
||||
PLMNidentity_t *plmn_identity_p;
|
||||
S1ap_PLMNidentity_t *plmn_identity_p;
|
||||
struct plmn_identity_s *new_plmn_identity_p;
|
||||
|
||||
plmn_identity_p = gummei_item_p->servedPLMNs.list.array[i];
|
||||
@@ -236,7 +237,7 @@ int s1ap_eNB_handle_s1_setup_response(uint32_t assoc_id,
|
||||
new_gummei_p->nb_served_plmns++;
|
||||
}
|
||||
for (j = 0; j < gummei_item_p->servedGroupIDs.list.count; j++) {
|
||||
MME_Group_ID_t *mme_group_id_p;
|
||||
S1ap_MME_Group_ID_t *mme_group_id_p;
|
||||
struct served_group_id_s *new_group_id_p;
|
||||
|
||||
mme_group_id_p = gummei_item_p->servedGroupIDs.list.array[i];
|
||||
@@ -246,7 +247,7 @@ int s1ap_eNB_handle_s1_setup_response(uint32_t assoc_id,
|
||||
new_gummei_p->nb_group_id++;
|
||||
}
|
||||
for (j = 0; j < gummei_item_p->servedMMECs.list.count; j++) {
|
||||
MME_Code_t *mme_code_p;
|
||||
S1ap_MME_Code_t *mme_code_p;
|
||||
struct mme_code_s *new_mme_code_p;
|
||||
|
||||
mme_code_p = gummei_item_p->servedMMECs.list.array[i];
|
||||
@@ -259,12 +260,12 @@ int s1ap_eNB_handle_s1_setup_response(uint32_t assoc_id,
|
||||
STAILQ_INSERT_TAIL(&mme_desc_p->served_gummei, new_gummei_p, next);
|
||||
}
|
||||
/* Free contents of the list */
|
||||
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_ServedGUMMEIs,
|
||||
ASN_STRUCT_FREE_CONTENTS_ONLY(asn_DEF_S1ap_ServedGUMMEIs,
|
||||
(void *)&s1SetupResponse_p->servedGUMMEIs);
|
||||
/* Set the capacity of this MME */
|
||||
mme_desc_p->relative_mme_capacity = s1SetupResponse_p->relativeMMECapacity;
|
||||
/* Optionaly set the mme name */
|
||||
if (s1SetupResponse_p->presenceMask & S1SETUPRESPONSEIES_MMENAME_PRESENT) {
|
||||
if (s1SetupResponse_p->presenceMask & S1AP_S1SETUPRESPONSEIES_MMENAME_PRESENT) {
|
||||
mme_desc_p->mme_name = calloc(s1SetupResponse_p->mmEname.size + 1, sizeof(char));
|
||||
memcpy(mme_desc_p->mme_name, s1SetupResponse_p->mmEname.buf,
|
||||
s1SetupResponse_p->mmEname.size);
|
||||
@@ -340,10 +341,10 @@ int s1ap_eNB_handle_initial_context_request(uint32_t assoc_id,
|
||||
s1ap_eNB_mme_data_t *mme_desc_p;
|
||||
s1ap_eNB_ue_context_t *ue_desc_p;
|
||||
|
||||
InitialContextSetupRequestIEs_t *initialContextSetupRequest_p;
|
||||
S1ap_InitialContextSetupRequestIEs_t *initialContextSetupRequest_p;
|
||||
DevAssert(message_p != NULL);
|
||||
|
||||
initialContextSetupRequest_p = &message_p->msg.initialContextSetupRequestIEs;
|
||||
initialContextSetupRequest_p = &message_p->msg.s1ap_InitialContextSetupRequestIEs;
|
||||
|
||||
if ((mme_desc_p = s1ap_eNB_get_MME(NULL, assoc_id, 0)) == NULL) {
|
||||
S1AP_ERROR("[SCTP %d] Received initial context setup request for non "
|
||||
|
||||
@@ -55,8 +55,9 @@ int s1ap_eNB_handle_nas_first_req(s1ap_nas_first_req_t *s1ap_nas_first_req_p)
|
||||
struct s1ap_eNB_mme_data_s *mme_desc_p;
|
||||
struct s1ap_eNB_ue_context_s *ue_desc_p;
|
||||
|
||||
s1ap_message message;
|
||||
InitialUEMessageIEs_t *initial_ue_message_p;
|
||||
s1ap_message message;
|
||||
|
||||
S1ap_InitialUEMessageIEs_t *initial_ue_message_p;
|
||||
|
||||
uint8_t *buffer;
|
||||
uint32_t length;
|
||||
@@ -69,10 +70,10 @@ int s1ap_eNB_handle_nas_first_req(s1ap_nas_first_req_t *s1ap_nas_first_req_p)
|
||||
|
||||
memset(&message, 0, sizeof(s1ap_message));
|
||||
|
||||
message.direction = S1AP_PDU_PR_initiatingMessage;
|
||||
message.procedureCode = ProcedureCode_id_initialUEMessage;
|
||||
message.direction = S1AP_PDU_PR_initiatingMessage;
|
||||
message.procedureCode = S1ap_ProcedureCode_id_initialUEMessage;
|
||||
|
||||
initial_ue_message_p = &message.msg.initialUEMessageIEs;
|
||||
initial_ue_message_p = &message.msg.s1ap_InitialUEMessageIEs;
|
||||
|
||||
/* Select the MME corresponding to the provided GUMMEI.
|
||||
* If no MME corresponds to the GUMMEI, the function selects the MME with the
|
||||
@@ -132,14 +133,14 @@ int s1ap_eNB_handle_nas_first_req(s1ap_nas_first_req_t *s1ap_nas_first_req_p)
|
||||
initial_ue_message_p->rrC_Establishment_Cause = s1ap_nas_first_req_p->establishment_cause;
|
||||
|
||||
if (s1ap_nas_first_req_p->ue_identity.present == S_TMSI_PROVIDED) {
|
||||
initial_ue_message_p->presenceMask |= INITIALUEMESSAGEIES_S_TMSI_PRESENT;
|
||||
initial_ue_message_p->presenceMask |= S1AP_INITIALUEMESSAGEIES_S_TMSI_PRESENT;
|
||||
|
||||
MME_CODE_TO_OCTET_STRING(s1ap_nas_first_req_p->ue_identity.identity.s_tmsi.mme_code,
|
||||
&initial_ue_message_p->s_tmsi.mMEC);
|
||||
M_TMSI_TO_OCTET_STRING(s1ap_nas_first_req_p->ue_identity.identity.s_tmsi.m_tmsi,
|
||||
&initial_ue_message_p->s_tmsi.m_TMSI);
|
||||
} else {
|
||||
initial_ue_message_p->presenceMask |= INITIALUEMESSAGEIES_GUMMEI_ID_PRESENT;
|
||||
initial_ue_message_p->presenceMask |= S1AP_INITIALUEMESSAGEIES_GUMMEI_ID_PRESENT;
|
||||
|
||||
MCC_MNC_TO_PLMNID(s1ap_nas_first_req_p->ue_identity.identity.gummei.mcc,
|
||||
s1ap_nas_first_req_p->ue_identity.identity.gummei.mnc,
|
||||
@@ -186,14 +187,15 @@ int s1ap_eNB_handle_nas_downlink(uint32_t assoc_id,
|
||||
uint32_t stream,
|
||||
struct s1ap_message_s *message_p)
|
||||
{
|
||||
DownlinkNASTransportIEs_t *downlink_NAS_transport_p;
|
||||
s1ap_eNB_mme_data_t *mme_desc_p;
|
||||
s1ap_eNB_ue_context_t *ue_desc_p;
|
||||
s1ap_eNB_instance_t *s1ap_eNB_instance;
|
||||
S1ap_DownlinkNASTransportIEs_t *downlink_NAS_transport_p;
|
||||
|
||||
s1ap_eNB_mme_data_t *mme_desc_p;
|
||||
s1ap_eNB_ue_context_t *ue_desc_p;
|
||||
s1ap_eNB_instance_t *s1ap_eNB_instance;
|
||||
|
||||
DevAssert(message_p != NULL);
|
||||
|
||||
downlink_NAS_transport_p = &message_p->msg.downlinkNASTransportIEs;
|
||||
downlink_NAS_transport_p = &message_p->msg.s1ap_DownlinkNASTransportIEs;
|
||||
|
||||
/* UE-related procedure -> stream != 0 */
|
||||
if (stream == 0) {
|
||||
@@ -244,8 +246,8 @@ int s1ap_eNB_handle_nas_downlink(uint32_t assoc_id,
|
||||
int s1ap_eNB_nas_uplink(s1ap_uplink_nas_t *s1ap_uplink_nas_p)
|
||||
{
|
||||
struct s1ap_eNB_ue_context_s *ue_context_p;
|
||||
UplinkNASTransportIEs_t *uplink_NAS_transport_p;
|
||||
s1ap_eNB_instance_t *s1ap_eNB_instance_p;
|
||||
S1ap_UplinkNASTransportIEs_t *uplink_NAS_transport_p;
|
||||
|
||||
s1ap_message message;
|
||||
|
||||
@@ -281,10 +283,10 @@ int s1ap_eNB_nas_uplink(s1ap_uplink_nas_t *s1ap_uplink_nas_p)
|
||||
/* Prepare the S1AP message to encode */
|
||||
memset(&message, 0, sizeof(s1ap_message));
|
||||
|
||||
message.direction = S1AP_PDU_PR_initiatingMessage;
|
||||
message.procedureCode = ProcedureCode_id_uplinkNASTransport;
|
||||
message.direction = S1AP_PDU_PR_initiatingMessage;
|
||||
message.procedureCode = S1ap_ProcedureCode_id_uplinkNASTransport;
|
||||
|
||||
uplink_NAS_transport_p = &message.msg.uplinkNASTransportIEs;
|
||||
uplink_NAS_transport_p = &message.msg.s1ap_UplinkNASTransportIEs;
|
||||
|
||||
uplink_NAS_transport_p->mme_ue_s1ap_id = ue_context_p->mme_ue_s1ap_id;
|
||||
uplink_NAS_transport_p->eNB_UE_S1AP_ID = ue_context_p->eNB_ue_s1ap_id;
|
||||
|
||||
@@ -49,8 +49,7 @@
|
||||
#include "s1ap_eNB_ue_context.h"
|
||||
#include "s1ap_eNB_encoder.h"
|
||||
#include "s1ap_eNB_overload.h"
|
||||
|
||||
#include "sctp_primitives_client.h"
|
||||
#include "s1ap_eNB_management_procedures.h"
|
||||
|
||||
#include "assertions.h"
|
||||
|
||||
@@ -58,16 +57,16 @@ int s1ap_eNB_handle_overload_start(uint32_t assoc_id,
|
||||
uint32_t stream,
|
||||
struct s1ap_message_s *message_p)
|
||||
{
|
||||
OverloadStartIEs_t *overload_start_p;
|
||||
s1ap_eNB_mme_data_t *mme_desc_p;
|
||||
S1ap_OverloadStartIEs_t *overload_start_p;
|
||||
s1ap_eNB_mme_data_t *mme_desc_p;
|
||||
|
||||
DevAssert(message_p != NULL);
|
||||
|
||||
overload_start_p = &message_p->msg.overloadStartIEs;
|
||||
overload_start_p = &message_p->msg.s1ap_OverloadStartIEs;
|
||||
|
||||
DevCheck(overload_start_p->overloadResponse.present ==
|
||||
OverloadResponse_PR_overloadAction,
|
||||
OverloadResponse_PR_overloadAction, 0, 0);
|
||||
S1ap_OverloadResponse_PR_overloadAction,
|
||||
S1ap_OverloadResponse_PR_overloadAction, 0, 0);
|
||||
|
||||
/* Non UE-associated signalling -> stream 0 */
|
||||
DevCheck(stream == 0, stream, 0, 0);
|
||||
|
||||
@@ -45,14 +45,15 @@
|
||||
#include "s1ap_eNB_encoder.h"
|
||||
#include "s1ap_eNB_trace.h"
|
||||
#include "s1ap_eNB_itti_messaging.h"
|
||||
#include "s1ap_eNB_management_procedures.h"
|
||||
|
||||
static
|
||||
void s1ap_eNB_generate_trace_failure(struct s1ap_eNB_ue_context_s *ue_desc_p,
|
||||
E_UTRAN_Trace_ID_t *trace_id,
|
||||
Cause_t *cause_p)
|
||||
S1ap_E_UTRAN_Trace_ID_t *trace_id,
|
||||
S1ap_Cause_t *cause_p)
|
||||
{
|
||||
s1ap_message message;
|
||||
TraceFailureIndicationIEs_t *trace_failure_p;
|
||||
S1ap_TraceFailureIndicationIEs_t *trace_failure_p;
|
||||
uint8_t *buffer;
|
||||
uint32_t length;
|
||||
|
||||
@@ -62,13 +63,13 @@ void s1ap_eNB_generate_trace_failure(struct s1ap_eNB_ue_context_s *ue_desc_p,
|
||||
|
||||
memset(&message, 0, sizeof(s1ap_message));
|
||||
|
||||
trace_failure_p = &message.msg.traceFailureIndicationIEs;
|
||||
trace_failure_p = &message.msg.s1ap_TraceFailureIndicationIEs;
|
||||
|
||||
trace_failure_p->mme_ue_s1ap_id = ue_desc_p->mme_ue_s1ap_id;
|
||||
trace_failure_p->eNB_UE_S1AP_ID = ue_desc_p->eNB_ue_s1ap_id;
|
||||
|
||||
memcpy(&trace_failure_p->e_UTRAN_Trace_ID, trace_id, sizeof(E_UTRAN_Trace_ID_t));
|
||||
memcpy(&trace_failure_p->cause, cause_p, sizeof(Cause_t));
|
||||
memcpy(&trace_failure_p->e_UTRAN_Trace_ID, trace_id, sizeof(S1ap_E_UTRAN_Trace_ID_t));
|
||||
memcpy(&trace_failure_p->cause, cause_p, sizeof(S1ap_Cause_t));
|
||||
|
||||
if (s1ap_eNB_encode_pdu(&message, &buffer, &length) < 0) {
|
||||
return;
|
||||
@@ -82,30 +83,31 @@ int s1ap_eNB_handle_trace_start(uint32_t assoc_id,
|
||||
uint32_t stream,
|
||||
struct s1ap_message_s *message_p)
|
||||
{
|
||||
TraceStartIEs_t *trace_start_p;
|
||||
S1ap_TraceStartIEs_t *trace_start_p;
|
||||
struct s1ap_eNB_ue_context_s *ue_desc_p;
|
||||
struct s1ap_eNB_mme_data_s *mme_ref_p;
|
||||
|
||||
DevAssert(message_p != NULL);
|
||||
|
||||
trace_start_p = &message_p->msg.traceStartIEs;
|
||||
trace_start_p = &message_p->msg.s1ap_TraceStartIEs;
|
||||
|
||||
mme_ref_p = s1ap_eNB_get_MME(NULL, assoc_id, 0);
|
||||
DevAssert(mme_ref_p != NULL);
|
||||
|
||||
if ((ue_desc_p = s1ap_eNB_get_ue_context(mme_ref_p->s1ap_eNB_instance,
|
||||
trace_start_p->eNB_UE_S1AP_ID)) == NULL) {
|
||||
trace_start_p->eNB_UE_S1AP_ID)) == NULL)
|
||||
{
|
||||
/* Could not find context associated with this eNB_ue_s1ap_id -> generate
|
||||
* trace failure indication.
|
||||
*/
|
||||
E_UTRAN_Trace_ID_t trace_id;
|
||||
Cause_t cause;
|
||||
S1ap_E_UTRAN_Trace_ID_t trace_id;
|
||||
S1ap_Cause_t cause;
|
||||
|
||||
memset(&trace_id, 0, sizeof(E_UTRAN_Trace_ID_t));
|
||||
memset(&cause, 0, sizeof(Cause_t));
|
||||
memset(&trace_id, 0, sizeof(S1ap_E_UTRAN_Trace_ID_t));
|
||||
memset(&cause, 0, sizeof(S1ap_Cause_t));
|
||||
|
||||
cause.present = Cause_PR_radioNetwork;
|
||||
cause.choice.radioNetwork = CauseRadioNetwork_unknown_pair_ue_s1ap_id;
|
||||
cause.present = S1ap_Cause_PR_radioNetwork;
|
||||
cause.choice.radioNetwork = S1ap_CauseRadioNetwork_unknown_pair_ue_s1ap_id;
|
||||
|
||||
s1ap_eNB_generate_trace_failure(ue_desc_p, &trace_id, &cause);
|
||||
}
|
||||
@@ -116,7 +118,7 @@ int s1ap_eNB_handle_deactivate_trace(uint32_t assoc_id,
|
||||
uint32_t stream,
|
||||
struct s1ap_message_s *message_p)
|
||||
{
|
||||
// DeactivateTraceIEs_t *deactivate_trace_p;
|
||||
// S1ap_DeactivateTraceIEs_t *deactivate_trace_p;
|
||||
//
|
||||
// deactivate_trace_p = &message_p->msg.deactivateTraceIEs;
|
||||
|
||||
|
||||
@@ -50,8 +50,8 @@
|
||||
|
||||
#include "assertions.h"
|
||||
|
||||
static int s1ap_mme_decode_initiating(s1ap_message *message,
|
||||
InitiatingMessage_t *initiating_p)
|
||||
static int s1ap_mme_decode_initiating(
|
||||
s1ap_message *message, S1ap_InitiatingMessage_t *initiating_p)
|
||||
{
|
||||
int ret = -1;
|
||||
|
||||
@@ -61,32 +61,33 @@ static int s1ap_mme_decode_initiating(s1ap_message *message,
|
||||
message->criticality = initiating_p->criticality;
|
||||
|
||||
switch(initiating_p->procedureCode) {
|
||||
// case ProcedureCode_id_downlinkNASTransport:
|
||||
// case S1ap_ProcedureCode_id_downlinkNASTransport:
|
||||
// return s1ap_decode_downlinknastransporties(&message->msg.downlinkNASTransportIEs, &initiating_p->value);
|
||||
case ProcedureCode_id_uplinkNASTransport:
|
||||
ret = s1ap_decode_uplinknastransporties(&message->msg.uplinkNASTransportIEs,
|
||||
&initiating_p->value);
|
||||
case ProcedureCode_id_S1Setup: {
|
||||
ret = s1ap_decode_s1setuprequesties(&message->msg.s1SetupRequestIEs,
|
||||
case S1ap_ProcedureCode_id_uplinkNASTransport: {
|
||||
ret = s1ap_decode_s1ap_uplinknastransporties(
|
||||
&message->msg.s1ap_UplinkNASTransportIEs, &initiating_p->value);
|
||||
} break;
|
||||
case S1ap_ProcedureCode_id_S1Setup: {
|
||||
ret = s1ap_decode_s1ap_s1setuprequesties(&message->msg.s1ap_S1SetupRequestIEs,
|
||||
&initiating_p->value);
|
||||
s1ap_xer_print_s1setuprequest(stdout, message);
|
||||
s1ap_xer_print_s1ap_s1setuprequest(stdout, message);
|
||||
} break;
|
||||
case ProcedureCode_id_initialUEMessage: {
|
||||
ret = s1ap_decode_initialuemessageies(&message->msg.initialUEMessageIEs,
|
||||
case S1ap_ProcedureCode_id_initialUEMessage: {
|
||||
ret = s1ap_decode_s1ap_initialuemessageies(&message->msg.s1ap_InitialUEMessageIEs,
|
||||
&initiating_p->value);
|
||||
s1ap_xer_print_initialuemessage(stdout, message);
|
||||
s1ap_xer_print_s1ap_initialuemessage(stdout, message);
|
||||
} break;
|
||||
case ProcedureCode_id_UEContextReleaseRequest: {
|
||||
ret = s1ap_decode_uecontextreleaserequesties(
|
||||
&message->msg.ueContextReleaseRequestIEs, &initiating_p->value);
|
||||
s1ap_xer_print_uecontextreleaserequest(stdout, message);
|
||||
case S1ap_ProcedureCode_id_UEContextReleaseRequest: {
|
||||
ret = s1ap_decode_s1ap_uecontextreleaserequesties(
|
||||
&message->msg.s1ap_UEContextReleaseRequestIEs, &initiating_p->value);
|
||||
s1ap_xer_print_s1ap_uecontextreleaserequest(stdout, message);
|
||||
} break;
|
||||
case ProcedureCode_id_UECapabilityInfoIndication: {
|
||||
ret = s1ap_decode_uecapabilityinfoindicationies(
|
||||
&message->msg.ueCapabilityInfoIndicationIEs, &initiating_p->value);
|
||||
s1ap_xer_print_uecapabilityinfoindication(stdout, message);
|
||||
case S1ap_ProcedureCode_id_UECapabilityInfoIndication: {
|
||||
ret = s1ap_decode_s1ap_uecapabilityinfoindicationies(
|
||||
&message->msg.s1ap_UECapabilityInfoIndicationIEs, &initiating_p->value);
|
||||
s1ap_xer_print_s1ap_uecapabilityinfoindication(stdout, message);
|
||||
} break;
|
||||
// case ProcedureCode_id_InitialContextSetup:
|
||||
// case S1ap_ProcedureCode_id_InitialContextSetup:
|
||||
// return s1ap_decode_initialcontextsetuprequesties(&message->msg.initialContextSetupRequestIEs, &initiating_p->value);
|
||||
default:
|
||||
S1AP_ERROR("Unknown procedure ID (%d) for initiating message\n",
|
||||
@@ -96,8 +97,8 @@ static int s1ap_mme_decode_initiating(s1ap_message *message,
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int s1ap_mme_decode_successfull_outcome(s1ap_message *message,
|
||||
SuccessfulOutcome_t *successfullOutcome_p)
|
||||
static int s1ap_mme_decode_successfull_outcome(
|
||||
s1ap_message *message, S1ap_SuccessfulOutcome_t *successfullOutcome_p)
|
||||
{
|
||||
DevAssert(successfullOutcome_p != NULL);
|
||||
|
||||
@@ -105,12 +106,12 @@ static int s1ap_mme_decode_successfull_outcome(s1ap_message *message,
|
||||
message->criticality = successfullOutcome_p->criticality;
|
||||
|
||||
switch(successfullOutcome_p->procedureCode) {
|
||||
case ProcedureCode_id_InitialContextSetup:
|
||||
return s1ap_decode_initialcontextsetupresponseies(
|
||||
&message->msg.initialContextSetupResponseIEs, &successfullOutcome_p->value);
|
||||
case ProcedureCode_id_UEContextRelease:
|
||||
return s1ap_decode_uecontextreleasecompleteies(
|
||||
&message->msg.ueContextReleaseCompleteIEs, &successfullOutcome_p->value);
|
||||
case S1ap_ProcedureCode_id_InitialContextSetup:
|
||||
return s1ap_decode_s1ap_initialcontextsetupresponseies(
|
||||
&message->msg.s1ap_InitialContextSetupResponseIEs, &successfullOutcome_p->value);
|
||||
case S1ap_ProcedureCode_id_UEContextRelease:
|
||||
return s1ap_decode_s1ap_uecontextreleasecompleteies(
|
||||
&message->msg.s1ap_UEContextReleaseCompleteIEs, &successfullOutcome_p->value);
|
||||
default:
|
||||
S1AP_ERROR("Unknown procedure ID (%d) for successfull outcome message\n",
|
||||
(int)successfullOutcome_p->procedureCode);
|
||||
@@ -119,8 +120,8 @@ static int s1ap_mme_decode_successfull_outcome(s1ap_message *message,
|
||||
return -1;
|
||||
}
|
||||
|
||||
static int s1ap_mme_decode_unsuccessfull_outcome(s1ap_message *message,
|
||||
UnsuccessfulOutcome_t *unSuccessfulOutcome_p)
|
||||
static int s1ap_mme_decode_unsuccessfull_outcome(
|
||||
s1ap_message *message, S1ap_UnsuccessfulOutcome_t *unSuccessfulOutcome_p)
|
||||
{
|
||||
DevAssert(unSuccessfulOutcome_p != NULL);
|
||||
|
||||
@@ -128,9 +129,9 @@ static int s1ap_mme_decode_unsuccessfull_outcome(s1ap_message *message,
|
||||
message->criticality = unSuccessfulOutcome_p->criticality;
|
||||
|
||||
switch(unSuccessfulOutcome_p->procedureCode) {
|
||||
case ProcedureCode_id_InitialContextSetup:
|
||||
return s1ap_decode_initialcontextsetupfailureies(
|
||||
&message->msg.initialContextSetupFailureIEs, &unSuccessfulOutcome_p->value);
|
||||
case S1ap_ProcedureCode_id_InitialContextSetup:
|
||||
return s1ap_decode_s1ap_initialcontextsetupfailureies(
|
||||
&message->msg.s1ap_InitialContextSetupFailureIEs, &unSuccessfulOutcome_p->value);
|
||||
default:
|
||||
S1AP_ERROR("Unknown procedure ID (%d) for unsuccessfull outcome message\n",
|
||||
(int)unSuccessfulOutcome_p->procedureCode);
|
||||
|
||||
@@ -75,22 +75,22 @@ static inline
|
||||
int s1ap_mme_encode_initial_context_setup_request(s1ap_message *message_p,
|
||||
uint8_t **buffer, uint32_t *length)
|
||||
{
|
||||
InitialContextSetupRequest_t initialContextSetupRequest;
|
||||
InitialContextSetupRequest_t *initialContextSetupRequest_p =
|
||||
S1ap_InitialContextSetupRequest_t initialContextSetupRequest;
|
||||
S1ap_InitialContextSetupRequest_t *initialContextSetupRequest_p =
|
||||
&initialContextSetupRequest;
|
||||
|
||||
memset(initialContextSetupRequest_p, 0, sizeof(InitialContextSetupRequest_t));
|
||||
memset(initialContextSetupRequest_p, 0, sizeof(S1ap_InitialContextSetupRequest_t));
|
||||
|
||||
if (s1ap_encode_initialcontextsetuprequesties(initialContextSetupRequest_p,
|
||||
&message_p->msg.initialContextSetupRequestIEs) < 0) {
|
||||
if (s1ap_encode_s1ap_initialcontextsetuprequesties(initialContextSetupRequest_p,
|
||||
&message_p->msg.s1ap_InitialContextSetupRequestIEs) < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
return s1ap_generate_initiating_message(buffer,
|
||||
length,
|
||||
ProcedureCode_id_InitialContextSetup,
|
||||
Criticality_reject,
|
||||
&asn_DEF_InitialContextSetupRequest,
|
||||
S1ap_ProcedureCode_id_InitialContextSetup,
|
||||
S1ap_Criticality_reject,
|
||||
&asn_DEF_S1ap_InitialContextSetupRequest,
|
||||
initialContextSetupRequest_p);
|
||||
}
|
||||
|
||||
@@ -121,11 +121,11 @@ int s1ap_mme_encode_initiating(s1ap_message *message_p,
|
||||
uint32_t *length)
|
||||
{
|
||||
switch(message_p->procedureCode) {
|
||||
case ProcedureCode_id_downlinkNASTransport:
|
||||
case S1ap_ProcedureCode_id_downlinkNASTransport:
|
||||
return s1ap_mme_encode_downlink_nas_transport(message_p, buffer, length);
|
||||
case ProcedureCode_id_InitialContextSetup:
|
||||
case S1ap_ProcedureCode_id_InitialContextSetup:
|
||||
return s1ap_mme_encode_initial_context_setup_request(message_p, buffer, length);
|
||||
case ProcedureCode_id_UEContextRelease:
|
||||
case S1ap_ProcedureCode_id_UEContextRelease:
|
||||
return s1ap_mme_encode_ue_context_release_command(message_p, buffer, length);
|
||||
default:
|
||||
S1AP_DEBUG("Unknown procedure ID (%d) for initiating message_p\n",
|
||||
@@ -140,7 +140,7 @@ int s1ap_mme_encode_successfull_outcome(s1ap_message *message_p,
|
||||
uint8_t **buffer, uint32_t *length)
|
||||
{
|
||||
switch(message_p->procedureCode) {
|
||||
case ProcedureCode_id_S1Setup:
|
||||
case S1ap_ProcedureCode_id_S1Setup:
|
||||
return s1ap_mme_encode_s1setupresponse(message_p, buffer, length);
|
||||
default:
|
||||
S1AP_DEBUG("Unknown procedure ID (%d) for successfull outcome message_p\n",
|
||||
@@ -155,7 +155,7 @@ int s1ap_mme_encode_unsuccessfull_outcome(s1ap_message *message_p,
|
||||
uint8_t **buffer, uint32_t *length)
|
||||
{
|
||||
switch(message_p->procedureCode) {
|
||||
case ProcedureCode_id_S1Setup:
|
||||
case S1ap_ProcedureCode_id_S1Setup:
|
||||
return s1ap_mme_encode_s1setupfailure(message_p, buffer, length);
|
||||
default:
|
||||
S1AP_DEBUG("Unknown procedure ID (%d) for unsuccessfull outcome message_p\n",
|
||||
@@ -169,20 +169,21 @@ static inline
|
||||
int s1ap_mme_encode_s1setupresponse(s1ap_message *message_p,
|
||||
uint8_t **buffer, uint32_t *length)
|
||||
{
|
||||
S1SetupResponse_t s1SetupResponse;
|
||||
S1SetupResponse_t *s1SetupResponse_p = &s1SetupResponse;
|
||||
S1ap_S1SetupResponse_t s1SetupResponse;
|
||||
S1ap_S1SetupResponse_t *s1SetupResponse_p = &s1SetupResponse;
|
||||
|
||||
memset(s1SetupResponse_p, 0, sizeof(S1SetupResponse_t));
|
||||
memset(s1SetupResponse_p, 0, sizeof(S1ap_S1SetupResponse_t));
|
||||
|
||||
if (s1ap_encode_s1setupresponseies(s1SetupResponse_p, &message_p->msg.s1SetupResponseIEs) < 0) {
|
||||
if (s1ap_encode_s1ap_s1setupresponseies(s1SetupResponse_p, &message_p->msg.s1ap_S1SetupResponseIEs) < 0)
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
return s1ap_generate_successfull_outcome(buffer,
|
||||
length,
|
||||
ProcedureCode_id_S1Setup,
|
||||
S1ap_ProcedureCode_id_S1Setup,
|
||||
message_p->criticality,
|
||||
&asn_DEF_S1SetupResponse,
|
||||
&asn_DEF_S1ap_S1SetupResponse,
|
||||
s1SetupResponse_p);
|
||||
}
|
||||
|
||||
@@ -190,20 +191,20 @@ static inline
|
||||
int s1ap_mme_encode_s1setupfailure(s1ap_message *message_p,
|
||||
uint8_t **buffer, uint32_t *length)
|
||||
{
|
||||
S1SetupFailure_t s1SetupFailure;
|
||||
S1SetupFailure_t *s1SetupFailure_p = &s1SetupFailure;
|
||||
S1ap_S1SetupFailure_t s1SetupFailure;
|
||||
S1ap_S1SetupFailure_t *s1SetupFailure_p = &s1SetupFailure;
|
||||
|
||||
memset(s1SetupFailure_p, 0, sizeof(S1SetupFailure_t));
|
||||
memset(s1SetupFailure_p, 0, sizeof(S1ap_S1SetupFailure_t));
|
||||
|
||||
if (s1ap_encode_s1setupfailureies(s1SetupFailure_p, &message_p->msg.s1SetupFailureIEs) < 0) {
|
||||
if (s1ap_encode_s1ap_s1setupfailureies(s1SetupFailure_p, &message_p->msg.s1ap_S1SetupFailureIEs) < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
return s1ap_generate_unsuccessfull_outcome(buffer,
|
||||
length,
|
||||
ProcedureCode_id_S1Setup,
|
||||
S1ap_ProcedureCode_id_S1Setup,
|
||||
message_p->criticality,
|
||||
&asn_DEF_S1SetupFailure,
|
||||
&asn_DEF_S1ap_S1SetupFailure,
|
||||
s1SetupFailure_p);
|
||||
}
|
||||
|
||||
@@ -211,23 +212,23 @@ static inline
|
||||
int s1ap_mme_encode_downlink_nas_transport(
|
||||
s1ap_message *message_p, uint8_t **buffer, uint32_t *length)
|
||||
{
|
||||
DownlinkNASTransport_t downlinkNasTransport;
|
||||
DownlinkNASTransport_t *downlinkNasTransport_p = &downlinkNasTransport;
|
||||
S1ap_DownlinkNASTransport_t downlinkNasTransport;
|
||||
S1ap_DownlinkNASTransport_t *downlinkNasTransport_p = &downlinkNasTransport;
|
||||
|
||||
memset(downlinkNasTransport_p, 0, sizeof(DownlinkNASTransport_t));
|
||||
memset(downlinkNasTransport_p, 0, sizeof(S1ap_DownlinkNASTransport_t));
|
||||
|
||||
/* Convert IE structure into asn1 message_p */
|
||||
if (s1ap_encode_downlinknastransporties(downlinkNasTransport_p,
|
||||
&message_p->msg.downlinkNASTransportIEs) < 0) {
|
||||
if (s1ap_encode_s1ap_downlinknastransporties(downlinkNasTransport_p,
|
||||
&message_p->msg.s1ap_DownlinkNASTransportIEs) < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Generate Initiating message_p for the list of IEs */
|
||||
return s1ap_generate_initiating_message(buffer,
|
||||
length,
|
||||
ProcedureCode_id_downlinkNASTransport,
|
||||
S1ap_ProcedureCode_id_downlinkNASTransport,
|
||||
message_p->criticality,
|
||||
&asn_DEF_DownlinkNASTransport,
|
||||
&asn_DEF_S1ap_DownlinkNASTransport,
|
||||
downlinkNasTransport_p);
|
||||
}
|
||||
|
||||
@@ -235,21 +236,21 @@ static inline
|
||||
int s1ap_mme_encode_ue_context_release_command(s1ap_message *message_p,
|
||||
uint8_t **buffer, uint32_t *length)
|
||||
{
|
||||
UEContextReleaseCommand_t ueContextReleaseCommand;
|
||||
UEContextReleaseCommand_t *ueContextReleaseCommand_p = &ueContextReleaseCommand;
|
||||
S1ap_UEContextReleaseCommand_t ueContextReleaseCommand;
|
||||
S1ap_UEContextReleaseCommand_t *ueContextReleaseCommand_p = &ueContextReleaseCommand;
|
||||
|
||||
memset(ueContextReleaseCommand_p, 0, sizeof(UEContextReleaseCommand_t));
|
||||
memset(ueContextReleaseCommand_p, 0, sizeof(S1ap_UEContextReleaseCommand_t));
|
||||
|
||||
/* Convert IE structure into asn1 message_p */
|
||||
if (s1ap_encode_uecontextreleasecommandies(ueContextReleaseCommand_p,
|
||||
&message_p->msg.ueContextReleaseCommandIEs) < 0) {
|
||||
if (s1ap_encode_s1ap_uecontextreleasecommandies(ueContextReleaseCommand_p,
|
||||
&message_p->msg.s1ap_UEContextReleaseCommandIEs) < 0) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
return s1ap_generate_initiating_message(buffer,
|
||||
length,
|
||||
ProcedureCode_id_UEContextRelease,
|
||||
S1ap_ProcedureCode_id_UEContextRelease,
|
||||
message_p->criticality,
|
||||
&asn_DEF_UEContextReleaseCommand,
|
||||
&asn_DEF_S1ap_UEContextReleaseCommand,
|
||||
ueContextReleaseCommand_p);
|
||||
}
|
||||
|
||||
@@ -149,7 +149,7 @@ int s1ap_mme_handle_message(uint32_t assoc_id, uint32_t stream,
|
||||
assoc_id, stream, message);
|
||||
}
|
||||
|
||||
int s1ap_mme_set_cause(Cause_t *cause_p, Cause_PR cause_type, long cause_value)
|
||||
int s1ap_mme_set_cause(S1ap_Cause_t *cause_p, S1ap_Cause_PR cause_type, long cause_value)
|
||||
{
|
||||
DevAssert(cause_p != NULL);
|
||||
|
||||
@@ -157,19 +157,19 @@ int s1ap_mme_set_cause(Cause_t *cause_p, Cause_PR cause_type, long cause_value)
|
||||
|
||||
switch(cause_type)
|
||||
{
|
||||
case Cause_PR_radioNetwork:
|
||||
case S1ap_Cause_PR_radioNetwork:
|
||||
cause_p->choice.misc = cause_value;
|
||||
break;
|
||||
case Cause_PR_transport:
|
||||
case S1ap_Cause_PR_transport:
|
||||
cause_p->choice.transport = cause_value;
|
||||
break;
|
||||
case Cause_PR_nas:
|
||||
case S1ap_Cause_PR_nas:
|
||||
cause_p->choice.nas = cause_value;
|
||||
break;
|
||||
case Cause_PR_protocol:
|
||||
case S1ap_Cause_PR_protocol:
|
||||
cause_p->choice.protocol = cause_value;
|
||||
break;
|
||||
case Cause_PR_misc:
|
||||
case S1ap_Cause_PR_misc:
|
||||
cause_p->choice.misc = cause_value;
|
||||
break;
|
||||
default:
|
||||
@@ -179,26 +179,26 @@ int s1ap_mme_set_cause(Cause_t *cause_p, Cause_PR cause_type, long cause_value)
|
||||
}
|
||||
|
||||
int s1ap_mme_generate_s1_setup_failure(
|
||||
uint32_t assoc_id, Cause_PR cause_type, long cause_value,
|
||||
uint32_t assoc_id, S1ap_Cause_PR cause_type, long cause_value,
|
||||
long time_to_wait)
|
||||
{
|
||||
uint8_t *buffer_p;
|
||||
uint32_t length;
|
||||
s1ap_message message;
|
||||
S1SetupFailureIEs_t *s1_setup_failure_p;
|
||||
S1ap_S1SetupFailureIEs_t *s1_setup_failure_p;
|
||||
|
||||
memset(&message, 0, sizeof(s1ap_message));
|
||||
|
||||
s1_setup_failure_p = &message.msg.s1SetupFailureIEs;
|
||||
s1_setup_failure_p = &message.msg.s1ap_S1SetupFailureIEs;
|
||||
|
||||
message.procedureCode = ProcedureCode_id_S1Setup;
|
||||
message.procedureCode = S1ap_ProcedureCode_id_S1Setup;
|
||||
message.direction = S1AP_PDU_PR_unsuccessfulOutcome;
|
||||
|
||||
s1ap_mme_set_cause(&s1_setup_failure_p->cause, cause_type, cause_value);
|
||||
|
||||
/* Include the optional field time to wait only if the value is > -1 */
|
||||
if (time_to_wait > -1) {
|
||||
s1_setup_failure_p->presenceMask |= S1SETUPFAILUREIES_TIMETOWAIT_PRESENT;
|
||||
s1_setup_failure_p->presenceMask |= S1AP_S1SETUPFAILUREIES_TIMETOWAIT_PRESENT;
|
||||
s1_setup_failure_p->timeToWait = time_to_wait;
|
||||
}
|
||||
|
||||
@@ -217,7 +217,7 @@ int s1ap_mme_generate_s1_setup_failure(
|
||||
int s1ap_mme_handle_s1_setup_request(uint32_t assoc_id, uint32_t stream,
|
||||
struct s1ap_message_s *message)
|
||||
{
|
||||
S1SetupRequestIEs_t *s1SetupRequest_p;
|
||||
S1ap_S1SetupRequestIEs_t *s1SetupRequest_p;
|
||||
eNB_description_t *eNB_association;
|
||||
uint32_t eNB_id = 0;
|
||||
char *eNB_name = NULL;
|
||||
@@ -226,7 +226,7 @@ int s1ap_mme_handle_s1_setup_request(uint32_t assoc_id, uint32_t stream,
|
||||
|
||||
DevAssert(message != NULL);
|
||||
|
||||
s1SetupRequest_p = &message->msg.s1SetupRequestIEs;
|
||||
s1SetupRequest_p = &message->msg.s1ap_S1SetupRequestIEs;
|
||||
|
||||
/* We received a new valid S1 Setup Request on a stream != 0.
|
||||
* This should not happen -> reject eNB s1 setup request.
|
||||
@@ -234,17 +234,17 @@ int s1ap_mme_handle_s1_setup_request(uint32_t assoc_id, uint32_t stream,
|
||||
if (stream != 0) {
|
||||
S1AP_DEBUG("Received new s1 setup request on stream != 0\n");
|
||||
/* Send a s1 setup failure with protocol cause unspecified */
|
||||
return s1ap_mme_generate_s1_setup_failure(assoc_id, Cause_PR_protocol,
|
||||
CauseProtocol_unspecified, -1);
|
||||
return s1ap_mme_generate_s1_setup_failure(assoc_id, S1ap_Cause_PR_protocol,
|
||||
S1ap_CauseProtocol_unspecified, -1);
|
||||
}
|
||||
|
||||
S1AP_DEBUG("New s1 setup request incoming from ");
|
||||
if ((s1SetupRequest_p->presenceMask & S1SETUPREQUESTIES_ENBNAME_PRESENT) ==
|
||||
S1SETUPREQUESTIES_ENBNAME_PRESENT) {
|
||||
if (s1SetupRequest_p->presenceMask & S1AP_S1SETUPREQUESTIES_ENBNAME_PRESENT)
|
||||
{
|
||||
S1AP_DEBUG("%*s ", s1SetupRequest_p->eNBname.size, s1SetupRequest_p->eNBname.buf);
|
||||
eNB_name = (char *)s1SetupRequest_p->eNBname.buf;
|
||||
}
|
||||
if (s1SetupRequest_p->global_ENB_ID.eNB_ID.present == ENB_ID_PR_homeENB_ID) {
|
||||
if (s1SetupRequest_p->global_ENB_ID.eNB_ID.present == S1ap_ENB_ID_PR_homeENB_ID) {
|
||||
// Home eNB ID = 28 bits
|
||||
uint8_t *eNB_id_buf =
|
||||
s1SetupRequest_p->global_ENB_ID.eNB_ID.choice.homeENB_ID.buf;
|
||||
@@ -276,9 +276,9 @@ int s1ap_mme_handle_s1_setup_request(uint32_t assoc_id, uint32_t stream,
|
||||
max_enb_connected);
|
||||
|
||||
/* Send an overload cause... */
|
||||
return s1ap_mme_generate_s1_setup_failure(assoc_id, Cause_PR_misc,
|
||||
CauseMisc_control_processing_overload,
|
||||
TimeToWait_v20s);
|
||||
return s1ap_mme_generate_s1_setup_failure(assoc_id, S1ap_Cause_PR_misc,
|
||||
S1ap_CauseMisc_control_processing_overload,
|
||||
S1ap_TimeToWait_v20s);
|
||||
}
|
||||
|
||||
/* If none of the provided PLMNs/TAC match the one configured in MME,
|
||||
@@ -288,9 +288,9 @@ int s1ap_mme_handle_s1_setup_request(uint32_t assoc_id, uint32_t stream,
|
||||
|
||||
/* eNB and MME have no common PLMN */
|
||||
if (ta_ret != TA_LIST_RET_OK) {
|
||||
return s1ap_mme_generate_s1_setup_failure(assoc_id, Cause_PR_misc,
|
||||
CauseMisc_unknown_PLMN,
|
||||
TimeToWait_v20s);
|
||||
return s1ap_mme_generate_s1_setup_failure(assoc_id, S1ap_Cause_PR_misc,
|
||||
S1ap_CauseMisc_unknown_PLMN,
|
||||
S1ap_TimeToWait_v20s);
|
||||
}
|
||||
|
||||
S1AP_DEBUG("Adding eNB to the list of served eNBs\n");
|
||||
@@ -317,12 +317,13 @@ int s1ap_mme_handle_s1_setup_request(uint32_t assoc_id, uint32_t stream,
|
||||
/* eNB has been fount in list, consider the s1 setup request as a reset connection,
|
||||
* reseting any previous UE state if sctp association is != than the previous one */
|
||||
if (eNB_association->sctp_assoc_id != assoc_id) {
|
||||
S1SetupFailureIEs_t s1SetupFailure;
|
||||
memset(&s1SetupFailure, 0, sizeof(S1SetupFailureIEs_t));
|
||||
S1ap_S1SetupFailureIEs_t s1SetupFailure;
|
||||
|
||||
memset(&s1SetupFailure, 0, sizeof(s1SetupFailure));
|
||||
|
||||
/* Send an overload cause... */
|
||||
s1SetupFailure.cause.present = Cause_PR_misc; //TODO: send the right cause
|
||||
s1SetupFailure.cause.choice.misc = CauseMisc_control_processing_overload;
|
||||
s1SetupFailure.cause.present = S1ap_Cause_PR_misc; //TODO: send the right cause
|
||||
s1SetupFailure.cause.choice.misc = S1ap_CauseMisc_control_processing_overload;
|
||||
S1AP_DEBUG("Rejeting s1 setup request as eNB id %d is already associated to an active sctp association"
|
||||
"Previous known: %d, new one: %d\n",
|
||||
eNB_id, eNB_association->sctp_assoc_id, assoc_id);
|
||||
@@ -341,8 +342,8 @@ int s1ap_generate_s1_setup_response(eNB_description_t *eNB_association)
|
||||
{
|
||||
int i;
|
||||
int enc_rval = 0;
|
||||
S1SetupResponseIEs_t *s1_setup_response_p;
|
||||
ServedGUMMEIsItem_t servedGUMMEI;
|
||||
S1ap_S1SetupResponseIEs_t *s1_setup_response_p;
|
||||
S1ap_ServedGUMMEIsItem_t servedGUMMEI;
|
||||
s1ap_message message;
|
||||
uint8_t *buffer;
|
||||
uint32_t length;
|
||||
@@ -351,9 +352,9 @@ int s1ap_generate_s1_setup_response(eNB_description_t *eNB_association)
|
||||
|
||||
// Generating response
|
||||
memset(&message, 0, sizeof(s1ap_message));
|
||||
memset(&servedGUMMEI, 0, sizeof(ServedGUMMEIsItem_t));
|
||||
memset(&servedGUMMEI, 0, sizeof(servedGUMMEI));
|
||||
|
||||
s1_setup_response_p = &message.msg.s1SetupResponseIEs;
|
||||
s1_setup_response_p = &message.msg.s1ap_S1SetupResponseIEs;
|
||||
|
||||
config_read_lock(&mme_config);
|
||||
|
||||
@@ -361,28 +362,28 @@ int s1ap_generate_s1_setup_response(eNB_description_t *eNB_association)
|
||||
|
||||
/* Use the gummei parameters provided by configuration */
|
||||
for (i = 0; i < mme_config.gummei.nb_plmns; i++) {
|
||||
PLMNidentity_t *plmn;
|
||||
S1ap_PLMNidentity_t *plmn;
|
||||
|
||||
/* FIXME: free object from list once encoded */
|
||||
plmn = calloc(1, sizeof(PLMNidentity_t));
|
||||
plmn = calloc(1, sizeof(*plmn));
|
||||
MCC_MNC_TO_PLMNID(mme_config.gummei.plmn_mcc[i],
|
||||
mme_config.gummei.plmn_mnc[i],
|
||||
plmn);
|
||||
ASN_SEQUENCE_ADD(&servedGUMMEI.servedPLMNs.list, plmn);
|
||||
}
|
||||
for (i = 0; i < mme_config.gummei.nb_mme_gid; i++) {
|
||||
MME_Group_ID_t *mme_gid;
|
||||
S1ap_MME_Group_ID_t *mme_gid;
|
||||
|
||||
/* FIXME: free object from list once encoded */
|
||||
mme_gid = calloc(1, sizeof(MME_Group_ID_t));
|
||||
mme_gid = calloc(1, sizeof(*mme_gid));
|
||||
INT16_TO_OCTET_STRING(mme_config.gummei.mme_gid[i], mme_gid);
|
||||
ASN_SEQUENCE_ADD(&servedGUMMEI.servedGroupIDs.list, mme_gid);
|
||||
}
|
||||
for (i = 0; i < mme_config.gummei.nb_mmec; i++) {
|
||||
MME_Code_t *mmec;
|
||||
S1ap_MME_Code_t *mmec;
|
||||
|
||||
/* FIXME: free object from list once encoded */
|
||||
mmec = calloc(1, sizeof(MME_Code_t));
|
||||
mmec = calloc(1, sizeof(*mmec));
|
||||
INT8_TO_OCTET_STRING(mme_config.gummei.mmec[i], mmec);
|
||||
ASN_SEQUENCE_ADD(&servedGUMMEI.servedMMECs.list, mmec);
|
||||
}
|
||||
@@ -392,7 +393,7 @@ int s1ap_generate_s1_setup_response(eNB_description_t *eNB_association)
|
||||
/* The MME is only serving E-UTRAN RAT, so the list contains only one element */
|
||||
ASN_SEQUENCE_ADD(&s1_setup_response_p->servedGUMMEIs, &servedGUMMEI);
|
||||
|
||||
message.procedureCode = ProcedureCode_id_S1Setup;
|
||||
message.procedureCode = S1ap_ProcedureCode_id_S1Setup;
|
||||
message.direction = S1AP_PDU_PR_successfulOutcome;
|
||||
|
||||
enc_rval = s1ap_mme_encode_pdu(&message, &buffer, &length);
|
||||
@@ -414,11 +415,11 @@ int s1ap_mme_handle_ue_cap_indication(uint32_t assoc_id, uint32_t stream,
|
||||
struct s1ap_message_s *message)
|
||||
{
|
||||
ue_description_t *ue_ref;
|
||||
UECapabilityInfoIndicationIEs_t *ue_cap_p;
|
||||
S1ap_UECapabilityInfoIndicationIEs_t *ue_cap_p;
|
||||
|
||||
DevAssert(message != NULL);
|
||||
|
||||
ue_cap_p = &message->msg.ueCapabilityInfoIndicationIEs;
|
||||
ue_cap_p = &message->msg.s1ap_UECapabilityInfoIndicationIEs;
|
||||
|
||||
if ((ue_ref = s1ap_is_ue_mme_id_in_list(ue_cap_p->mme_ue_s1ap_id)) == NULL) {
|
||||
S1AP_DEBUG("No UE is attached to this mme UE s1ap id: 0x%08x\n",
|
||||
@@ -476,13 +477,14 @@ int s1ap_mme_handle_initial_context_setup_response(
|
||||
struct s1ap_message_s *message)
|
||||
{
|
||||
|
||||
InitialContextSetupResponseIEs_t *initialContextSetupResponseIEs_p;
|
||||
ue_description_t *ue_ref;
|
||||
SgwModifyBearerRequest *modify_request_p;
|
||||
MessageDef *message_p;
|
||||
E_RABSetupItemCtxtSURes_t *eRABSetupItemCtxtSURes_p;
|
||||
S1ap_InitialContextSetupResponseIEs_t *initialContextSetupResponseIEs_p;
|
||||
S1ap_E_RABSetupItemCtxtSURes_t *eRABSetupItemCtxtSURes_p;
|
||||
|
||||
initialContextSetupResponseIEs_p = &message->msg.initialContextSetupResponseIEs;
|
||||
ue_description_t *ue_ref;
|
||||
SgwModifyBearerRequest *modify_request_p;
|
||||
MessageDef *message_p;
|
||||
|
||||
initialContextSetupResponseIEs_p = &message->msg.s1ap_InitialContextSetupResponseIEs;
|
||||
|
||||
if ((ue_ref = s1ap_is_ue_mme_id_in_list(
|
||||
(uint32_t)initialContextSetupResponseIEs_p->mme_ue_s1ap_id)) == NULL) {
|
||||
@@ -498,7 +500,7 @@ int s1ap_mme_handle_initial_context_setup_response(
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (initialContextSetupResponseIEs_p->e_RABSetupListCtxtSURes.e_RABSetupItemCtxtSURes.count
|
||||
if (initialContextSetupResponseIEs_p->e_RABSetupListCtxtSURes.s1ap_E_RABSetupItemCtxtSURes.count
|
||||
!= 1) {
|
||||
S1AP_DEBUG("E-RAB creation has failed\n");
|
||||
return -1;
|
||||
@@ -512,12 +514,13 @@ int s1ap_mme_handle_initial_context_setup_response(
|
||||
return -1;
|
||||
}
|
||||
|
||||
eRABSetupItemCtxtSURes_p = (E_RABSetupItemCtxtSURes_t *)
|
||||
initialContextSetupResponseIEs_p->e_RABSetupListCtxtSURes.e_RABSetupItemCtxtSURes.array[0];
|
||||
/* Bad, very bad cast... */
|
||||
eRABSetupItemCtxtSURes_p = (S1ap_E_RABSetupItemCtxtSURes_t *)
|
||||
initialContextSetupResponseIEs_p->e_RABSetupListCtxtSURes.s1ap_E_RABSetupItemCtxtSURes.array[0];
|
||||
|
||||
modify_request_p = &message_p->msg.sgwModifyBearerRequest;
|
||||
// modify_request_p->teid = ue_ref->teid;
|
||||
modify_request_p->bearer_context_to_modify.eps_bearer_id =
|
||||
modify_request_p->bearer_context_to_modify.eps_bearer_id =
|
||||
eRABSetupItemCtxtSURes_p->e_RAB_ID;
|
||||
modify_request_p->bearer_context_to_modify.s1_eNB_fteid.teid = *((
|
||||
uint32_t *)eRABSetupItemCtxtSURes_p->gTP_TEID.buf);
|
||||
@@ -531,17 +534,17 @@ int s1ap_mme_handle_initial_context_setup_response(
|
||||
int s1ap_mme_handle_ue_context_release_request(uint32_t assoc_id,
|
||||
uint32_t stream, struct s1ap_message_s *message)
|
||||
{
|
||||
UEContextReleaseRequestIEs_t *ueContextReleaseRequest_p;
|
||||
S1ap_UEContextReleaseRequestIEs_t *ueContextReleaseRequest_p;
|
||||
ue_description_t *ue_ref = NULL;
|
||||
|
||||
ueContextReleaseRequest_p = &message->msg.ueContextReleaseRequestIEs;
|
||||
ueContextReleaseRequest_p = &message->msg.s1ap_UEContextReleaseRequestIEs;
|
||||
|
||||
/* The UE context release procedure is initiated if the cause is != than user inactivity.
|
||||
* TS36.413 #8.3.2.2.
|
||||
*/
|
||||
if (ueContextReleaseRequest_p->cause.present == Cause_PR_radioNetwork) {
|
||||
if (ueContextReleaseRequest_p->cause.present == S1ap_Cause_PR_radioNetwork) {
|
||||
if (ueContextReleaseRequest_p->cause.choice.radioNetwork ==
|
||||
CauseRadioNetwork_user_inactivity) {
|
||||
S1ap_CauseRadioNetwork_user_inactivity) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
@@ -573,20 +576,20 @@ static int s1ap_mme_generate_ue_context_release_command(
|
||||
uint32_t length;
|
||||
|
||||
s1ap_message message;
|
||||
UEContextReleaseCommandIEs_t *ueContextReleaseCommandIEs_p;
|
||||
S1ap_UEContextReleaseCommandIEs_t *ueContextReleaseCommandIEs_p;
|
||||
|
||||
if (ue_ref == NULL) {
|
||||
return -1;
|
||||
}
|
||||
memset(&message, 0, sizeof(s1ap_message));
|
||||
|
||||
message.procedureCode = ProcedureCode_id_UEContextRelease;
|
||||
message.procedureCode = S1ap_ProcedureCode_id_UEContextRelease;
|
||||
message.direction = S1AP_PDU_PR_successfulOutcome;
|
||||
|
||||
ueContextReleaseCommandIEs_p = &message.msg.ueContextReleaseCommandIEs;
|
||||
ueContextReleaseCommandIEs_p = &message.msg.s1ap_UEContextReleaseCommandIEs;
|
||||
|
||||
/* Fill in ID pair */
|
||||
ueContextReleaseCommandIEs_p->uE_S1AP_IDs.present = UE_S1AP_IDs_PR_uE_S1AP_ID_pair;
|
||||
ueContextReleaseCommandIEs_p->uE_S1AP_IDs.present = S1ap_UE_S1AP_IDs_PR_uE_S1AP_ID_pair;
|
||||
ueContextReleaseCommandIEs_p->uE_S1AP_IDs.choice.uE_S1AP_ID_pair.mME_UE_S1AP_ID =
|
||||
ue_ref->mme_ue_s1ap_id;
|
||||
ueContextReleaseCommandIEs_p->uE_S1AP_IDs.choice.uE_S1AP_ID_pair.eNB_UE_S1AP_ID =
|
||||
@@ -594,9 +597,9 @@ static int s1ap_mme_generate_ue_context_release_command(
|
||||
ueContextReleaseCommandIEs_p->uE_S1AP_IDs.choice.uE_S1AP_ID_pair.iE_Extensions =
|
||||
NULL;
|
||||
|
||||
ueContextReleaseCommandIEs_p->cause.present = Cause_PR_radioNetwork;
|
||||
ueContextReleaseCommandIEs_p->cause.present = S1ap_Cause_PR_radioNetwork;
|
||||
ueContextReleaseCommandIEs_p->cause.choice.radioNetwork =
|
||||
CauseRadioNetwork_release_due_to_eutran_generated_reason;
|
||||
S1ap_CauseRadioNetwork_release_due_to_eutran_generated_reason;
|
||||
|
||||
if (s1ap_mme_encode_pdu(&message, &buffer, &length) < 0) {
|
||||
return -1;
|
||||
@@ -608,10 +611,10 @@ static int s1ap_mme_generate_ue_context_release_command(
|
||||
int s1ap_mme_handle_ue_context_release_complete(uint32_t assoc_id,
|
||||
uint32_t stream, struct s1ap_message_s *message)
|
||||
{
|
||||
UEContextReleaseCompleteIEs_t *ueContextReleaseComplete_p;
|
||||
S1ap_UEContextReleaseCompleteIEs_t *ueContextReleaseComplete_p;
|
||||
ue_description_t *ue_ref = NULL;
|
||||
|
||||
ueContextReleaseComplete_p = &message->msg.ueContextReleaseCompleteIEs;
|
||||
ueContextReleaseComplete_p = &message->msg.s1ap_UEContextReleaseCompleteIEs;
|
||||
|
||||
if ((ue_ref = s1ap_is_ue_mme_id_in_list(
|
||||
ueContextReleaseComplete_p->mme_ue_s1ap_id)) == NULL) {
|
||||
@@ -632,13 +635,15 @@ int s1ap_mme_handle_ue_context_release_complete(uint32_t assoc_id,
|
||||
int s1ap_mme_handle_initial_context_setup_failure(uint32_t assoc_id,
|
||||
uint32_t stream, struct s1ap_message_s *message)
|
||||
{
|
||||
InitialContextSetupFailureIEs_t *initialContextSetupFailureIEs_p;
|
||||
ue_description_t *ue_ref = NULL;
|
||||
S1ap_InitialContextSetupFailureIEs_t *initialContextSetupFailureIEs_p;
|
||||
|
||||
initialContextSetupFailureIEs_p = &message->msg.initialContextSetupFailureIEs;
|
||||
ue_description_t *ue_ref = NULL;
|
||||
|
||||
initialContextSetupFailureIEs_p = &message->msg.s1ap_InitialContextSetupFailureIEs;
|
||||
|
||||
if ((ue_ref = s1ap_is_ue_mme_id_in_list(
|
||||
initialContextSetupFailureIEs_p->mme_ue_s1ap_id)) == NULL) {
|
||||
initialContextSetupFailureIEs_p->mme_ue_s1ap_id)) == NULL)
|
||||
{
|
||||
/* MME doesn't know the MME UE S1AP ID provided. */
|
||||
return -1;
|
||||
}
|
||||
@@ -659,11 +664,11 @@ int s1ap_mme_handle_initial_context_setup_failure(uint32_t assoc_id,
|
||||
int s1ap_mme_handle_path_switch_request(uint32_t assoc_id, uint32_t stream,
|
||||
struct s1ap_message_s *message)
|
||||
{
|
||||
PathSwitchRequestIEs_t *pathSwitchRequest_p;
|
||||
ue_description_t *ue_ref;
|
||||
uint32_t eNB_ue_s1ap_id;
|
||||
S1ap_PathSwitchRequestIEs_t *pathSwitchRequest_p;
|
||||
ue_description_t *ue_ref;
|
||||
uint32_t eNB_ue_s1ap_id;
|
||||
|
||||
pathSwitchRequest_p = &message->msg.pathSwitchRequestIEs;
|
||||
pathSwitchRequest_p = &message->msg.s1ap_PathSwitchRequestIEs;
|
||||
|
||||
// eNB UE S1AP ID is limited to 24 bits
|
||||
eNB_ue_s1ap_id = (uint32_t)(pathSwitchRequest_p->eNB_UE_S1AP_ID & 0x00ffffff);
|
||||
@@ -672,7 +677,8 @@ int s1ap_mme_handle_path_switch_request(uint32_t assoc_id, uint32_t stream,
|
||||
(int)eNB_ue_s1ap_id);
|
||||
|
||||
if ((ue_ref = s1ap_is_ue_mme_id_in_list(
|
||||
pathSwitchRequest_p->sourceMME_UE_S1AP_ID)) == NULL) {
|
||||
pathSwitchRequest_p->sourceMME_UE_S1AP_ID)) == NULL)
|
||||
{
|
||||
/* The MME UE S1AP ID provided by eNB doesn't point to any valid UE.
|
||||
* MME replies with a PATH SWITCH REQUEST FAILURE message and start operation
|
||||
* as described in TS 36.413 [11].
|
||||
@@ -766,11 +772,12 @@ int s1ap_handle_create_session_response(SgwCreateSessionResponse
|
||||
|
||||
ue_description_t *ue_ref = NULL;
|
||||
s1ap_message message;
|
||||
InitialContextSetupRequestIEs_t *initialContextSetupRequest_p;
|
||||
E_RABToBeSetupItemCtxtSUReq_t e_RABToBeSetup;
|
||||
uint8_t *buffer_p;
|
||||
uint32_t length;
|
||||
|
||||
S1ap_InitialContextSetupRequestIEs_t *initialContextSetupRequest_p;
|
||||
S1ap_E_RABToBeSetupItemCtxtSUReq_t e_RABToBeSetup;
|
||||
|
||||
DevAssert(session_response_p != NULL);
|
||||
|
||||
DevCheck(session_response_p->bearer_context_created.cause == REQUEST_ACCEPTED,
|
||||
@@ -792,12 +799,12 @@ int s1ap_handle_create_session_response(SgwCreateSessionResponse
|
||||
}
|
||||
|
||||
memset(&message, 0, sizeof(s1ap_message));
|
||||
memset(&e_RABToBeSetup, 0, sizeof(E_RABToBeSetupItemCtxtSUReq_t));
|
||||
memset(&e_RABToBeSetup, 0, sizeof(S1ap_E_RABToBeSetupItemCtxtSUReq_t));
|
||||
|
||||
message.procedureCode = ProcedureCode_id_InitialContextSetup;
|
||||
message.procedureCode = S1ap_ProcedureCode_id_InitialContextSetup;
|
||||
message.direction = S1AP_PDU_PR_initiatingMessage;
|
||||
|
||||
initialContextSetupRequest_p = &message.msg.initialContextSetupRequestIEs;
|
||||
initialContextSetupRequest_p = &message.msg.s1ap_InitialContextSetupRequestIEs;
|
||||
|
||||
initialContextSetupRequest_p->mme_ue_s1ap_id = ue_ref->mme_ue_s1ap_id;
|
||||
initialContextSetupRequest_p->eNB_UE_S1AP_ID = ue_ref->eNB_ue_s1ap_id;
|
||||
@@ -819,9 +826,9 @@ int s1ap_handle_create_session_response(SgwCreateSessionResponse
|
||||
e_RABToBeSetup.e_RABlevelQoSParameters.allocationRetentionPriority.priorityLevel
|
||||
= 15; //No priority
|
||||
e_RABToBeSetup.e_RABlevelQoSParameters.allocationRetentionPriority.pre_emptionCapability
|
||||
= Pre_emptionCapability_shall_not_trigger_pre_emption;
|
||||
= S1ap_Pre_emptionCapability_shall_not_trigger_pre_emption;
|
||||
e_RABToBeSetup.e_RABlevelQoSParameters.allocationRetentionPriority.pre_emptionVulnerability
|
||||
= Pre_emptionVulnerability_not_pre_emptable;
|
||||
= S1ap_Pre_emptionVulnerability_not_pre_emptable;
|
||||
|
||||
// e_RABToBeSetup.gTP_TEID.buf = calloc(4, sizeof(uint8_t));
|
||||
// INT32_TO_BUFFER(session_response_p->bearer_context_created.s1u_sgw_fteid.teid,
|
||||
|
||||
@@ -82,10 +82,10 @@ int s1ap_handle_new_association(sctp_new_peer_t *sctp_new_peer_p);
|
||||
int s1ap_handle_create_session_response(SgwCreateSessionResponse
|
||||
*session_response_p);
|
||||
|
||||
int s1ap_mme_set_cause(Cause_t *cause_p, Cause_PR cause_type, long cause_value);
|
||||
int s1ap_mme_set_cause(S1ap_Cause_t *cause_p, S1ap_Cause_PR cause_type, long cause_value);
|
||||
|
||||
int s1ap_mme_generate_s1_setup_failure(
|
||||
uint32_t assoc_id, Cause_PR cause_type, long cause_value,
|
||||
uint32_t assoc_id, S1ap_Cause_PR cause_type, long cause_value,
|
||||
long time_to_wait);
|
||||
|
||||
#endif /* S1AP_MME_HANDLERS_H_ */
|
||||
|
||||
@@ -57,12 +57,12 @@ static uint8_t mme_ue_s1ap_id_has_wrapped = 0;
|
||||
int s1ap_mme_handle_initial_ue_message(uint32_t assoc_id, uint32_t stream,
|
||||
struct s1ap_message_s *message)
|
||||
{
|
||||
InitialUEMessageIEs_t *initialUEMessage_p;
|
||||
S1ap_InitialUEMessageIEs_t *initialUEMessage_p;
|
||||
ue_description_t *ue_ref;
|
||||
eNB_description_t *eNB_ref;
|
||||
uint32_t eNB_ue_s1ap_id;
|
||||
|
||||
initialUEMessage_p = &message->msg.initialUEMessageIEs;
|
||||
initialUEMessage_p = &message->msg.s1ap_InitialUEMessageIEs;
|
||||
|
||||
if ((eNB_ref = s1ap_is_eNB_assoc_id_in_list(assoc_id)) == NULL) {
|
||||
S1AP_DEBUG("Unkwnon eNB on assoc_id %d\n", assoc_id);
|
||||
@@ -173,10 +173,10 @@ int s1ap_mme_handle_initial_ue_message(uint32_t assoc_id, uint32_t stream,
|
||||
int s1ap_mme_handle_uplink_nas_transport(uint32_t assoc_id, uint32_t stream,
|
||||
struct s1ap_message_s *message)
|
||||
{
|
||||
UplinkNASTransportIEs_t *uplinkNASTransport_p;
|
||||
S1ap_UplinkNASTransportIEs_t *uplinkNASTransport_p;
|
||||
ue_description_t *ue_ref;
|
||||
|
||||
uplinkNASTransport_p = &message->msg.uplinkNASTransportIEs;
|
||||
uplinkNASTransport_p = &message->msg.s1ap_UplinkNASTransportIEs;
|
||||
|
||||
if ((ue_ref = s1ap_is_ue_mme_id_in_list(uplinkNASTransport_p->mme_ue_s1ap_id))
|
||||
== NULL) {
|
||||
@@ -224,15 +224,16 @@ int s1ap_generate_downlink_nas_transport(nas_dl_data_ind_t *nas_dl_data_ind)
|
||||
/* We have fount the UE in the list.
|
||||
* Create new IE list message and encode it.
|
||||
*/
|
||||
DownlinkNASTransportIEs_t *downlinkNasTransport;
|
||||
s1ap_message message;
|
||||
S1ap_DownlinkNASTransportIEs_t *downlinkNasTransport;
|
||||
|
||||
s1ap_message message;
|
||||
|
||||
memset(&message, 0, sizeof(s1ap_message));
|
||||
|
||||
message.procedureCode = ProcedureCode_id_downlinkNASTransport;
|
||||
message.procedureCode = S1ap_ProcedureCode_id_downlinkNASTransport;
|
||||
message.direction = S1AP_PDU_PR_initiatingMessage;
|
||||
|
||||
downlinkNasTransport = &message.msg.downlinkNASTransportIEs;
|
||||
downlinkNasTransport = &message.msg.s1ap_DownlinkNASTransportIEs;
|
||||
|
||||
/* Setting UE informations with the ones fount in ue_ref */
|
||||
downlinkNasTransport->mme_ue_s1ap_id = ue_ref->mme_ue_s1ap_id;
|
||||
@@ -264,11 +265,12 @@ int s1ap_handle_attach_accepted(nas_attach_accept_t *attach_accept_p)
|
||||
uint32_t length;
|
||||
|
||||
ue_description_t *ue_ref = NULL;
|
||||
InitialContextSetupRequestIEs_t *initialContextSetupRequest_p;
|
||||
s1ap_message message;
|
||||
E_RABToBeSetupItemCtxtSUReq_t e_RABToBeSetup;
|
||||
s1ap_initial_ctxt_setup_req_t *initial_p;
|
||||
|
||||
S1ap_InitialContextSetupRequestIEs_t *initialContextSetupRequest_p;
|
||||
S1ap_E_RABToBeSetupItemCtxtSUReq_t e_RABToBeSetup;
|
||||
|
||||
DevAssert(attach_accept_p != NULL);
|
||||
|
||||
initial_p = &attach_accept_p->transparent;
|
||||
@@ -290,12 +292,12 @@ int s1ap_handle_attach_accepted(nas_attach_accept_t *attach_accept_p)
|
||||
// s1ap_timer_insert(ue_ref->mme_ue_s1ap_id, ue_ref->outcome_response_timer_id);
|
||||
|
||||
memset(&message, 0, sizeof(s1ap_message));
|
||||
memset(&e_RABToBeSetup, 0, sizeof(E_RABToBeSetupItemCtxtSUReq_t));
|
||||
memset(&e_RABToBeSetup, 0, sizeof(S1ap_E_RABToBeSetupItemCtxtSUReq_t));
|
||||
|
||||
message.procedureCode = ProcedureCode_id_InitialContextSetup;
|
||||
message.procedureCode = S1ap_ProcedureCode_id_InitialContextSetup;
|
||||
message.direction = S1AP_PDU_PR_initiatingMessage;
|
||||
|
||||
initialContextSetupRequest_p = &message.msg.initialContextSetupRequestIEs;
|
||||
initialContextSetupRequest_p = &message.msg.s1ap_InitialContextSetupRequestIEs;
|
||||
|
||||
initialContextSetupRequest_p->mme_ue_s1ap_id = (unsigned long)ue_ref->mme_ue_s1ap_id;
|
||||
initialContextSetupRequest_p->eNB_UE_S1AP_ID = (unsigned long)ue_ref->eNB_ue_s1ap_id;
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
#include "s1ap_mme_ta.h"
|
||||
|
||||
static
|
||||
int s1ap_mme_compare_plmn(PLMNidentity_t *plmn)
|
||||
int s1ap_mme_compare_plmn(S1ap_PLMNidentity_t *plmn)
|
||||
{
|
||||
int i;
|
||||
uint16_t mcc;
|
||||
@@ -69,7 +69,7 @@ int s1ap_mme_compare_plmn(PLMNidentity_t *plmn)
|
||||
/* @brief compare a list of broadcasted plmns against the MME configured.
|
||||
*/
|
||||
static
|
||||
int s1ap_mme_compare_plmns(BPLMNs_t *b_plmns)
|
||||
int s1ap_mme_compare_plmns(S1ap_BPLMNs_t *b_plmns)
|
||||
{
|
||||
int i;
|
||||
int matching_occurence = 0;
|
||||
@@ -93,7 +93,7 @@ int s1ap_mme_compare_plmns(BPLMNs_t *b_plmns)
|
||||
/* @brief compare a TAC
|
||||
*/
|
||||
static
|
||||
int s1ap_mme_compare_tac(TAC_t *tac)
|
||||
int s1ap_mme_compare_tac(S1ap_TAC_t *tac)
|
||||
{
|
||||
int i;
|
||||
uint16_t tac_value;
|
||||
@@ -120,7 +120,7 @@ int s1ap_mme_compare_tac(TAC_t *tac)
|
||||
* - TA_LIST_UNKNOWN_TAC if at least one PLMN match and no TAC match
|
||||
* - TA_LIST_RET_OK if both tac and plmn match at least one element
|
||||
*/
|
||||
int s1ap_mme_compare_ta_lists(SupportedTAs_t *ta_list)
|
||||
int s1ap_mme_compare_ta_lists(S1ap_SupportedTAs_t *ta_list)
|
||||
{
|
||||
int i;
|
||||
int tac_ret, bplmn_ret;
|
||||
@@ -129,7 +129,7 @@ int s1ap_mme_compare_ta_lists(SupportedTAs_t *ta_list)
|
||||
|
||||
/* Parse every item in the list and try to find matching parameters */
|
||||
for (i = 0; i < ta_list->list.count; i++) {
|
||||
SupportedTAs_Item_t *ta;
|
||||
S1ap_SupportedTAs_Item_t *ta;
|
||||
|
||||
ta = ta_list->list.array[i];
|
||||
DevAssert(ta != NULL);
|
||||
|
||||
@@ -40,6 +40,6 @@ enum {
|
||||
TA_LIST_COMPLETE_MATCH = 0x3,
|
||||
};
|
||||
|
||||
int s1ap_mme_compare_ta_lists(SupportedTAs_t *ta_list);
|
||||
int s1ap_mme_compare_ta_lists(S1ap_SupportedTAs_t *ta_list);
|
||||
|
||||
#endif /* S1AP_MME_TA_H_ */
|
||||
|
||||
Reference in New Issue
Block a user