diff options
-rw-r--r-- | asn1/s1ap/S1AP-CommonDataTypes.asn | 3 | ||||
-rw-r--r-- | asn1/s1ap/S1AP-Constants.asn | 35 | ||||
-rw-r--r-- | asn1/s1ap/S1AP-Containers.asn | 3 | ||||
-rw-r--r-- | asn1/s1ap/S1AP-IEs.asn | 318 | ||||
-rw-r--r-- | asn1/s1ap/S1AP-PDU-Contents.asn | 360 | ||||
-rw-r--r-- | asn1/s1ap/S1AP-PDU-Descriptions.asn | 58 | ||||
-rw-r--r-- | asn1/s1ap/packet-s1ap-template.c | 12 | ||||
-rw-r--r-- | asn1/s1ap/s1ap.cnf | 60 | ||||
-rw-r--r-- | epan/dissectors/packet-s1ap.c | 1156 |
9 files changed, 1492 insertions, 513 deletions
diff --git a/asn1/s1ap/S1AP-CommonDataTypes.asn b/asn1/s1ap/S1AP-CommonDataTypes.asn index 72ddceea17..ce9b6d7cce 100644 --- a/asn1/s1ap/S1AP-CommonDataTypes.asn +++ b/asn1/s1ap/S1AP-CommonDataTypes.asn @@ -1,5 +1,5 @@ -- $Id$ --- 3GPP TS 36.413 V8.3.0 (2008-09 +-- 3GPP TS 36.413 V8.5.0 (2009-03) -- 9.3.5 Common Definitions -- ************************************************************** -- @@ -33,3 +33,4 @@ ProtocolIE-ID ::= INTEGER (0..65535) TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome } END + diff --git a/asn1/s1ap/S1AP-Constants.asn b/asn1/s1ap/S1AP-Constants.asn index e6df898143..0866cbd19b 100644 --- a/asn1/s1ap/S1AP-Constants.asn +++ b/asn1/s1ap/S1AP-Constants.asn @@ -1,5 +1,5 @@ -- $Id$ --- 3GPP TS 36.413 V8.4.0 (2008-12) +-- 3GPP TS 36.413 V8.5.0 (2009-03) -- 9.3.6 Constant Definitions -- ************************************************************** -- @@ -74,7 +74,9 @@ 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 -- ************************************************************** -- @@ -94,7 +96,7 @@ maxProtocolIEs INTEGER ::= 65535 maxNrOfCSGs INTEGER ::= 256 maxNrOfE-RABs INTEGER ::= 256 maxNrOfInterfaces INTEGER ::= 3 --FFS -maxnoofTAI INTEGER ::= 256 +maxnoofTAIs INTEGER ::= 256 maxnoofTACs INTEGER ::= 256 maxNrOfErrors INTEGER ::= 256 maxnoofBPLMNs INTEGER ::= 6 @@ -106,12 +108,16 @@ maxnoofForbTACs INTEGER ::= 4096 maxNrOfIndividualS1ConnectionsToReset INTEGER ::= 256 maxnoofGUMMEIs INTEGER ::= 256 -- FFS maxnoofCells INTEGER ::= 16 -maxnoofTAIforWarning INTEGER ::= 65535 -- FFS -maxnoofCellID INTEGER ::= 65535 -- FFS -maxnoofEmergencyAreaID INTEGER ::= 65535 -- FFS -maxnoofCellinTAI INTEGER ::= 65535 -- FFS -maxnoofCellinEAI INTEGER ::= 65535 -- FFS +maxnoofTAIforWarning INTEGER ::= 65535 +maxnoofCellID INTEGER ::= 65535 +maxnoofEmergencyAreaID INTEGER ::= 65535 +maxnoofCellinTAI INTEGER ::= 65535 +maxnoofCellinEAI INTEGER ::= 65535 maxnoofeNBX2TLAs INTEGER ::= 2 +maxnoofRATs INTEGER ::= 8 +maxnoofGroupIDs INTEGER ::= 65535 +maxnoofMMECs INTEGER ::= 256 + @@ -190,7 +196,7 @@ id-Direct-Forwarding-Path-Availability ProtocolIE-ID ::= 79 id-UEIdentityIndexValue ProtocolIE-ID ::= 80 id-cdma2000HOStatus ProtocolIE-ID ::= 83 id-cdma2000HORequiredIndication ProtocolIE-ID ::= 84 -id-TraceReference ProtocolIE-ID ::= 86 +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 @@ -233,5 +239,14 @@ 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 END + diff --git a/asn1/s1ap/S1AP-Containers.asn b/asn1/s1ap/S1AP-Containers.asn index b6ebf173b9..40b57d079b 100644 --- a/asn1/s1ap/S1AP-Containers.asn +++ b/asn1/s1ap/S1AP-Containers.asn @@ -1,5 +1,5 @@ -- $Id$ --- 3GPP TS 36.413 V8.4.0 (2008-12) +-- 3GPP TS 36.413 V8.5.0 (2009-03) -- 9.3.7 Container Definitions -- ************************************************************** -- @@ -202,3 +202,4 @@ END + diff --git a/asn1/s1ap/S1AP-IEs.asn b/asn1/s1ap/S1AP-IEs.asn index 8411e45722..d6a5b9b11c 100644 --- a/asn1/s1ap/S1AP-IEs.asn +++ b/asn1/s1ap/S1AP-IEs.asn @@ -1,5 +1,5 @@ -- $Id$ --- 3GPP TS 36.413 V8.4.0 (2008-12) +-- 3GPP TS 36.413 V8.5.0 (2009-03) -- 9.3.4 Information Element Definitions -- ************************************************************** -- @@ -37,7 +37,11 @@ IMPORTS maxnoofEmergencyAreaID, maxnoofTAIforWarning, maxnoofCellinTAI, - maxnoofCellinEAI + maxnoofCellinEAI, + maxnoofeNBX2TLAs, + maxnoofRATs, + maxnoofGroupIDs, + maxnoofMMECs @@ -102,9 +106,15 @@ BroadcastCompletedAreaList ::= SEQUENCE { cellID-Broadcast CellID-Broadcast, tAI-Broadcast TAI-Broadcast, emergencyAreaID-Broadcast EmergencyAreaID-Broadcast, + iE-Extensions ProtocolExtensionContainer { {BroadcastCompletedAreaList-ExtIEs} } OPTIONAL, ... } +BroadcastCompletedAreaList-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + -- C Cause ::= CHOICE { @@ -139,7 +149,6 @@ CauseProtocol ::= ENUMERATED { CauseRadioNetwork ::= ENUMERATED { unspecified, - handover-triggered, tx2relocoverall-expiry, successful-handover, release-due-to-eutran-generated-reason, @@ -166,6 +175,15 @@ CauseRadioNetwork ::= ENUMERATED { ue-not-available-for-ps-service, radio-resources-not-available, failure-in-radio-interface-procedure, + invalid-qos-combination, + interrat-redirection, + interaction-with-other-procedure, + unknown-E-RAB-ID, + multiple-E-RAB-ID-instances, + encryption-and-or-integrity-protection-algorithms-not-supported, + s1-intra-system-handover-triggered, + s1-inter-system-handover-triggered, + x2-handover-triggered, ... } @@ -190,9 +208,15 @@ CellID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Broadcast-Item CellID-Broadcast-Item ::= SEQUENCE { eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CellID-Broadcast-Item-ExtIEs} } OPTIONAL, ... } +CellID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + Cdma2000PDU ::= OCTET STRING Cdma2000RATType ::= ENUMERATED { @@ -234,21 +258,37 @@ Cdma2000OneXPilot ::= OCTET STRING Cdma2000OneXRAND ::= OCTET STRING -CellType ::= ENUMERATED {ffs,...} -- FFS: The definition of CellType + +Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ...} + +CellType ::= SEQUENCE { + cell-Size Cell-Size, + iE-Extensions ProtocolExtensionContainer { { CellType-ExtIEs}} OPTIONAL, + ... +} + +CellType-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} CGI ::= SEQUENCE { pLMNidentity PLMNidentity, lAC LAC, cI CI, - rAC RAC OPTIONAL + rAC RAC OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL, + ... } +CGI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} CI ::= OCTET STRING (SIZE (2)) CNDomain ::= ENUMERATED { - cs, - ps + ps, + cs } CSFallbackIndicator ::= ENUMERATED { @@ -256,21 +296,28 @@ CSFallbackIndicator ::= ENUMERATED { ... } -CSG-Id ::= BIT STRING (SIZE (28)) +CSG-Id ::= BIT STRING (SIZE (27)) CSG-IdList ::= SEQUENCE (SIZE (1..maxNrOfCSGs)) OF CSG-IdList-Item CSG-IdList-Item ::= SEQUENCE { cSG-Id CSG-Id, + iE-Extensions ProtocolExtensionContainer { {CSG-IdList-Item-ExtIEs} } OPTIONAL, ... } - +CSG-IdList-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} COUNTvalue ::= SEQUENCE { pDCP-SN PDCP-SN, hFN HFN, + iE-Extensions ProtocolExtensionContainer { {COUNTvalue-ExtIEs} } OPTIONAL, + ... +} +COUNTvalue-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { ... } @@ -322,19 +369,31 @@ ECGIList ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF EUTRAN-CGI EmergencyAreaIDList ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID -EmergencyAreaID ::= OCTET STRING (SIZE (2)) +EmergencyAreaID ::= OCTET STRING (SIZE (3)) EmergencyAreaID-Broadcast ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Broadcast-Item EmergencyAreaID-Broadcast-Item ::= SEQUENCE { emergencyAreaID EmergencyAreaID, - completedCellinEAI CompletedCellinEAI + completedCellinEAI CompletedCellinEAI, + iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Broadcast-Item-ExtIEs} } OPTIONAL, + ... } +EmergencyAreaID-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + CompletedCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CompletedCellinEAI-Item CompletedCellinEAI-Item ::= SEQUENCE { eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CompletedCellinEAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CompletedCellinEAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { ... } @@ -369,7 +428,7 @@ GlobalENB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { ENB-StatusTransfer-TransparentContainer ::= SEQUENCE { - bearers-SubjectToStatusTransferList Bearers-SubjectToStatusTransferList OPTIONAL, + bearers-SubjectToStatusTransferList Bearers-SubjectToStatusTransferList, iE-Extensions ProtocolExtensionContainer { {ENB-StatusTransfer-TransparentContainer-ExtIEs} } OPTIONAL, ... } @@ -380,8 +439,9 @@ ENB-StatusTransfer-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { ENB-UE-S1AP-ID ::= INTEGER (0..16777215) -ENBname ::= OCTET STRING +ENBname ::= PrintableString (SIZE (1..150,...)) +ENBX2TLAs ::= SEQUENCE (SIZE(1.. maxnoofeNBX2TLAs)) OF TransportLayerAddress EncryptionAlgorithms ::= BIT STRING (SIZE (16,...)) @@ -412,6 +472,7 @@ ForbiddenInterRATs ::= ENUMERATED { all, geran, utran, + cdma2000, ... } @@ -419,7 +480,13 @@ ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item ForbiddenTAs-Item ::= SEQUENCE { pLMN-Identity PLMNidentity, - forbiddenTACs ForbiddenTACs + forbiddenTACs ForbiddenTACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... } ForbiddenTACs ::= SEQUENCE (SIZE(1..maxnoofForbTACs)) OF TAC @@ -428,7 +495,13 @@ ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item ForbiddenLAs-Item ::= SEQUENCE { pLMN-Identity PLMNidentity, - forbiddenLACs ForbiddenLACs + forbiddenLACs ForbiddenLACs, + iE-Extensions ProtocolExtensionContainer { {ForbiddenLAs-Item-ExtIEs} } OPTIONAL, + ... +} + +ForbiddenLAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... } ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC @@ -471,7 +544,7 @@ HandoverRestrictionList ::= SEQUENCE { forbiddenTAs ForbiddenTAs OPTIONAL, forbiddenLAs ForbiddenLAs OPTIONAL, forbiddenInterRATs ForbiddenInterRATs OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL, ... } @@ -496,25 +569,9 @@ IMSI ::= OCTET STRING (SIZE (3..8)) IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16,...)) -InterfacesToTraceList ::= SEQUENCE (SIZE (1..maxNrOfInterfaces)) OF InterfacesToTraceItem +InterfacesToTrace ::= BIT STRING (SIZE (8)) -InterfacesToTraceItem ::= SEQUENCE { - interfaceType InterfaceType, - traceDepth TraceDepth, - iE-Extensions ProtocolExtensionContainer { {InterfacesToTraceItem-ExtIEs} } OPTIONAL, - ... -} - -InterfacesToTraceItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { - ... -} -InterfaceType ::= ENUMERATED { - s1, - x2, - uu, -... -} -- J -- K @@ -526,7 +583,8 @@ LAC ::= OCTET STRING (SIZE (2)) LAI ::= SEQUENCE { pLMNidentity PLMNidentity, lAC LAC, - iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL + iE-Extensions ProtocolExtensionContainer { {LAI-ExtIEs} } OPTIONAL, + ... } LAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { @@ -536,6 +594,7 @@ LAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { LastVisitedCell-Item ::= CHOICE { e-UTRAN-Cell LastVisitedEUTRANCellInformation, uTRAN-Cell LastVisitedUTRANCellInformation, + gERAN-Cell LastVisitedGERANCellInformation, ... } LastVisitedEUTRANCellInformation ::= SEQUENCE { @@ -550,13 +609,19 @@ LastVisitedEUTRANCellInformation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { } LastVisitedUTRANCellInformation ::= OCTET STRING +LastVisitedGERANCellInformation ::= CHOICE { + undefined NULL, + ... +} + +L3-Information ::= OCTET STRING -- M -MessageIdentifier ::= OCTET STRING (SIZE (16)) +MessageIdentifier ::= BIT STRING (SIZE (16)) -MMEname ::= OCTET STRING +MMEname ::= PrintableString (SIZE (1..150,...)) MME-Group-ID ::= OCTET STRING (SIZE (2)) @@ -565,16 +630,24 @@ MME-Code ::= OCTET STRING (SIZE (1)) MME-UE-S1AP-ID ::= INTEGER (0..4294967295) M-TMSI ::= OCTET STRING (SIZE (4)) +MSClassmark2 ::= OCTET STRING +MSClassmark3 ::= OCTET STRING -- N NAS-PDU ::= OCTET STRING +NASSecurityParametersfromE-UTRAN ::= OCTET STRING + +NASSecurityParameterstoE-UTRAN ::= OCTET STRING + NumberofBroadcastRequest ::= INTEGER (0..65535) NumberofBroadcast ::= INTEGER (0..65535) -- O +OldBSS-ToNewBSS-Information ::= OCTET STRING + OverloadAction ::= ENUMERATED { reject-non-emergency-mo-dt, reject-all-rrc-cr-signalling, @@ -617,7 +690,7 @@ PriorityLevel ::= INTEGER { spare (0), highest (1), lowest (14), no-priority -- Q -QCI ::= INTEGER (1..256) +QCI ::= INTEGER (0..255) -- R @@ -658,7 +731,10 @@ RIMRoutingAddress ::= CHOICE { ... } -ReportArea ::= OCTET STRING +ReportArea ::= ENUMERATED { + ecgi, + ... +} RepetitionPeriod ::= INTEGER (1..4096) @@ -667,6 +743,15 @@ RNC-ID ::= INTEGER (0..4095) RRC-Container ::= OCTET STRING +RRC-Establishment-Cause ::= ENUMERATED { + emergency, + highPriorityAccess, + mt-Access, + mo-Signalling, + mo-Data, + ... +} + -- S E-RAB-ID ::= INTEGER (0..15, ...) @@ -731,8 +816,8 @@ SecurityKey ::= BIT STRING (SIZE(256)) SecurityContext ::= SEQUENCE { - nexthopchainingcount SecurityKey, - nexthopparameter BIT STRING (SIZE(3)), + nextHopParameter INTEGER (0..7), + nextHopChainingCount SecurityKey, iE-Extensions ProtocolExtensionContainer { { SecurityContext-ExtIEs} } OPTIONAL, ... } @@ -744,9 +829,54 @@ SecurityContext-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { SerialNumber ::= BIT STRING (SIZE (16)) +SONInformation ::= CHOICE{ + sONInformationRequest SONInformationRequest, + sONInformationReply SONInformationReply, + ... +} + +SONInformationRequest ::= ENUMERATED { + x2TNL-Configuration-Info, + ... +} + +SONInformationReply ::= SEQUENCE { + x2TNLConfigurationInfo X2TNLConfigurationInfo OPTIONAL, + iE-Extensions ProtocolExtensionContainer {{SONInformationReply-ExtIEs}} OPTIONAL, + ... +} + +SONInformationReply-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +SONConfigurationTransfer ::= SEQUENCE { + targeteNB-ID TargeteNB-ID, + sourceeNB-ID SourceeNB-ID, + sONInformation SONInformation, + iE-Extensions ProtocolExtensionContainer { { SONConfigurationTransfer-ExtIEs} } OPTIONAL, +... +} + +SONConfigurationTransfer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + + Source-ToTarget-TransparentContainer ::= OCTET STRING SourceBSS-ToTargetBSS-TransparentContainer ::= OCTET STRING +SourceeNB-ID ::= SEQUENCE { + global-ENB-ID Global-ENB-ID, + selected-TAI TAI, + iE-Extensions ProtocolExtensionContainer { {SourceeNB-ID-ExtIEs} } OPTIONAL +} + +SourceeNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} SRVCCOperationPossible ::= ENUMERATED { possible, @@ -759,24 +889,40 @@ SRVCCHOIndication ::= ENUMERATED { ... } -SourceeNodeB-ToTargeteNodeB-TransparentContainer ::= SEQUENCE { +SourceeNB-ToTargeteNB-TransparentContainer ::= SEQUENCE { rRC-Container RRC-Container, e-RABInformationList E-RABInformationList OPTIONAL, targetCell-ID EUTRAN-CGI, subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, uE-HistoryInformation UE-HistoryInformation, - iE-Extensions ProtocolExtensionContainer { {SourceeNodeB-ToTargeteNodeB-TransparentContainer-ExtIEs} } OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs} } OPTIONAL, ... } -SourceeNodeB-ToTargeteNodeB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +SourceeNB-ToTargeteNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { ... } SourceRNC-ToTargetRNC-TransparentContainer ::= OCTET STRING -ServedGUMMEIs ::= SEQUENCE (SIZE(1.. maxnoofGUMMEIs)) OF GUMMEI + +ServedGUMMEIs ::= SEQUENCE (SIZE (1.. maxnoofRATs)) OF ServedGUMMEIsItem + +ServedGUMMEIsItem ::= SEQUENCE { + servedPLMNs ServedPLMNs, + servedGroupIDs ServedGroupIDs, + servedMMECs ServedMMECs, + iE-Extensions ProtocolExtensionContainer { {ServedGUMMEIsItem-ExtIEs} } OPTIONAL, + ... +} + +ServedGUMMEIsItem-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + +ServedGroupIDs ::= SEQUENCE (SIZE(1.. maxnoofGroupIDs)) OF MME-Group-ID +ServedMMECs ::= SEQUENCE (SIZE(1.. maxnoofMMECs)) OF MME-Code ServedPLMNs ::= SEQUENCE (SIZE(1.. maxnoofPLMNsPerMME)) OF PLMNidentity @@ -787,15 +933,23 @@ SupportedTAs ::= SEQUENCE (SIZE(1.. maxnoofTACs)) OF SupportedTAs-Item SupportedTAs-Item ::= SEQUENCE { tAC TAC, broadcastPLMNs BPLMNs, + iE-Extensions ProtocolExtensionContainer { {SupportedTAs-Item-ExtIEs} } OPTIONAL, + ... +} + +SupportedTAs-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { ... } S-TMSI ::= SEQUENCE { mMEC MME-Code, - m-TMSI M-TMSI, + iE-Extensions ProtocolExtensionContainer { {S-TMSI-ExtIEs} } OPTIONAL, ... } +S-TMSI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} -- T @@ -806,7 +960,8 @@ TAIListforWarning ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI TAI ::= SEQUENCE { pLMNidentity PLMNidentity, tAC TAC, - iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL + iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL, + ... } TAI-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { @@ -817,13 +972,24 @@ TAI-Broadcast ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Broadcast-Item TAI-Broadcast-Item ::= SEQUENCE { tAI TAI, - completedCellinTAI CompletedCellinTAI + completedCellinTAI CompletedCellinTAI, + iE-Extensions ProtocolExtensionContainer { {TAI-Broadcast-Item-ExtIEs} } OPTIONAL, + ... +} + +TAI-Broadcast-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... } -CompletedCellinTAI ::= SEQUENCE (SIZE(0..maxnoofCellinTAI)) OF CompletedCellinTAI-Item +CompletedCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CompletedCellinTAI-Item CompletedCellinTAI-Item ::= SEQUENCE{ eCGI EUTRAN-CGI, + iE-Extensions ProtocolExtensionContainer { {CompletedCellinTAI-Item-ExtIEs} } OPTIONAL, + ... +} + +CompletedCellinTAI-Item-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { ... } @@ -839,7 +1005,8 @@ TargetID ::= CHOICE { TargeteNB-ID ::= SEQUENCE { global-ENB-ID Global-ENB-ID, selected-TAI TAI, - iE-Extensions ProtocolExtensionContainer { {TargeteNB-ID-ExtIEs} } OPTIONAL + iE-Extensions ProtocolExtensionContainer { {TargeteNB-ID-ExtIEs} } OPTIONAL, + ... } TargeteNB-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { @@ -850,17 +1017,24 @@ TargetRNC-ID ::= SEQUENCE { lAI LAI, rAC RAC OPTIONAL, rNC-ID RNC-ID, - extendedRNC-ID ExtendedRNC-ID OPTIONAL + extendedRNC-ID ExtendedRNC-ID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {TargetRNC-ID-ExtIEs} } OPTIONAL, + ... } -TargeteNodeB-ToSourceeNodeB-TransparentContainer ::= SEQUENCE { +TargetRNC-ID-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + + +TargeteNB-ToSourceeNB-TransparentContainer ::= SEQUENCE { rRC-Container RRC-Container, - iE-Extensions ProtocolExtensionContainer { {TargeteNodeB-ToSourceeNodeB-TransparentContainer-ExtIEs} } OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs} } OPTIONAL, ... } -TargeteNodeB-ToSourceeNodeB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { +TargeteNB-ToSourceeNB-TransparentContainer-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { ... } @@ -875,9 +1049,12 @@ Time-UE-StayedInCell ::= INTEGER (0..4095) TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...)) TraceActivation ::= SEQUENCE { - traceReference TraceReference, - interfacesToTraceList InterfacesToTraceList, - iE-Extensions ProtocolExtensionContainer { { TraceActivation-ExtIEs} } OPTIONAL + e-UTRAN-Trace-ID E-UTRAN-Trace-ID, + interfacesToTrace InterfacesToTrace, +traceDepth TraceDepth, +traceCollectionEntityIPAddress TransportLayerAddress, + iE-Extensions ProtocolExtensionContainer { { TraceActivation-ExtIEs} } OPTIONAL, + ... } TraceActivation-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { @@ -888,13 +1065,13 @@ TraceDepth ::= ENUMERATED { minimum, medium, maximum, - vendorMinimum, - vendorMedium, - vendorMaximum, + minimumWithoutVendorSpecificExtension, + mediumWithoutVendorSpecificExtension, + maximumWithoutVendorSpecificExtension, ... } -TraceReference ::= OCTET STRING (SIZE (8)) +E-UTRAN-Trace-ID ::= OCTET STRING (SIZE (8)) TypeOfError ::= ENUMERATED { not-understood, @@ -925,9 +1102,15 @@ UE-S1AP-IDs ::= CHOICE{ UE-S1AP-ID-pair ::= SEQUENCE{ mME-UE-S1AP-ID MME-UE-S1AP-ID, - eNB-UE-S1AP-ID ENB-UE-S1AP-ID + eNB-UE-S1AP-ID ENB-UE-S1AP-ID, + iE-Extensions ProtocolExtensionContainer { {UE-S1AP-ID-pair-ExtIEs} } OPTIONAL, + ... +} +UE-S1AP-ID-pair-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... } + UE-associatedLogicalS1-ConnectionItem ::= SEQUENCE { mME-UE-S1AP-ID MME-UE-S1AP-ID OPTIONAL, eNB-UE-S1AP-ID ENB-UE-S1AP-ID OPTIONAL, @@ -979,14 +1162,25 @@ WarningType ::= OCTET STRING (SIZE (2)) WarningSecurityInfo ::= OCTET STRING (SIZE (50)) -WarningMessageContents ::= OCTET STRING +WarningMessageContents ::= OCTET STRING (SIZE(1..9600)) -- X +X2TNLConfigurationInfo ::= SEQUENCE { + eNBX2TransportLayerAddresses ENBX2TLAs, + iE-Extensions ProtocolExtensionContainer { { X2TNLConfigurationInfo-ExtIEs} } OPTIONAL, + ... +} + +X2TNLConfigurationInfo-ExtIEs S1AP-PROTOCOL-EXTENSION ::= { + ... +} + -- Y -- Z END + diff --git a/asn1/s1ap/S1AP-PDU-Contents.asn b/asn1/s1ap/S1AP-PDU-Contents.asn index 82a929f225..dc38a382c3 100644 --- a/asn1/s1ap/S1AP-PDU-Contents.asn +++ b/asn1/s1ap/S1AP-PDU-Contents.asn @@ -1,5 +1,5 @@ -- $Id$ --- 3GPP TS 36.413 V8.4.0 (2008-12) +-- 3GPP TS 36.413 V8.5.0 (2009-03) -- 9.3.3 PDU Definitions -- ************************************************************** -- @@ -49,7 +49,11 @@ IMPORTS HandoverType, MMEname, MME-UE-S1AP-ID, + MSClassmark2, + MSClassmark3, NAS-PDU, + NASSecurityParametersfromE-UTRAN, + NASSecurityParameterstoE-UTRAN, OverloadResponse, PagingDRX, PLMNidentity, @@ -62,10 +66,10 @@ IMPORTS SecurityKey, SecurityContext, ServedGUMMEIs, - ServedPLMNs, + SONConfigurationTransfer, Source-ToTarget-TransparentContainer, SourceBSS-ToTargetBSS-TransparentContainer, - SourceeNodeB-ToTargeteNodeB-TransparentContainer, + SourceeNB-ToTargeteNB-TransparentContainer, SourceRNC-ToTargetRNC-TransparentContainer, SubscriberProfileIDforRFP, SRVCCOperationPossible, @@ -74,12 +78,12 @@ IMPORTS TAI, Target-ToSource-TransparentContainer, TargetBSS-ToSourceBSS-TransparentContainer, - TargeteNodeB-ToSourceeNodeB-TransparentContainer, + TargeteNB-ToSourceeNB-TransparentContainer, TargetID, TargetRNC-ToSourceRNC-TransparentContainer, TimeToWait, TraceActivation, - TraceReference, + E-UTRAN-Trace-ID, TransportLayerAddress, UEIdentityIndexValue, UEPagingID, @@ -97,7 +101,8 @@ IMPORTS WarningSecurityInfo, DataCodingScheme, WarningMessageContents, - BroadcastCompletedAreaList + BroadcastCompletedAreaList, + RRC-Establishment-Cause FROM S1AP-IEs @@ -129,6 +134,7 @@ FROM S1AP-Containers id-CSFallbackIndicator, id-CSG-Id, id-CSG-IdList, + id-DefaultPagingDRX, id-Direct-Forwarding-Path-Availability, id-Global-ENB-ID, id-EUTRAN-CGI, @@ -144,7 +150,11 @@ FROM S1AP-Containers id-NAS-DownlinkCount, id-MMEname, id-MME-UE-S1AP-ID, +id-MSClassmark2, +id-MSClassmark3, id-NAS-PDU, + id-NASSecurityParametersfromE-UTRAN, + id-NASSecurityParameterstoE-UTRAN, id-OverloadResponse, id-pagingDRX, id-RelativeMMECapacity, @@ -191,7 +201,8 @@ FROM S1AP-Containers id-SecurityKey, id-SecurityContext, id-ServedGUMMEIs, - id-ServedPLMNs, + id-SONConfigurationTransferECT, + id-SONConfigurationTransferMCT, id-Source-ToTarget-TransparentContainer, id-SourceMME-UE-S1AP-ID, id-SRVCCOperationPossible, @@ -206,7 +217,7 @@ FROM S1AP-Containers id-TargetID, id-TimeToWait, id-TraceActivation, - id-TraceReference, + id-E-UTRAN-Trace-ID, id-UEIdentityIndexValue, id-UEPagingID, id-UERadioCapability, @@ -226,7 +237,9 @@ FROM S1AP-Containers id-DataCodingScheme, id-WarningMessageContents, id-BroadcastCompletedAreaList, - maxnoofTAI, + id-RRC-Establishment-Cause, + id-TraceCollectionEntityIPAddress, + maxnoofTAIs, maxNrOfErrors, maxNrOfE-RABs, maxNrOfIndividualS1ConnectionsToReset, @@ -245,13 +258,13 @@ FROM S1AP-Constants; -- -- ************************************************************** -E-RAB-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfE-RABs, {IEsSetParam} } -E-RAB-IE-ContainerPairList { S1AP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxNrOfE-RABs, {IEsSetParam} } -ProtocolError-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfE-RABs, {IEsSetParam} } +E-RAB-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfE-RABs, {IEsSetParam} } +E-RAB-IE-ContainerPairList { S1AP-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxNrOfE-RABs, {IEsSetParam} } +ProtocolError-IE-ContainerList { S1AP-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxNrOfE-RABs, {IEsSetParam} } -- ************************************************************** -- --- HANDOVER PREPARATION ELEMTARY PROCEDURE +-- HANDOVER PREPARATION ELEMENTARY PROCEDURE -- -- ************************************************************** @@ -267,14 +280,17 @@ HandoverRequired ::= SEQUENCE { } HandoverRequiredIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory } | - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } | - { ID id-TargetID CRITICALITY reject TYPE TargetID PRESENCE mandatory } | - { ID id-Direct-Forwarding-Path-Availability CRITICALITY ignore TYPE Direct-Forwarding-Path-Availability PRESENCE optional } | - { ID id-SRVCCHOIndication CRITICALITY reject TYPE SRVCCHOIndication PRESENCE optional }| - { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory }, + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory } | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } | + { ID id-TargetID CRITICALITY reject TYPE TargetID PRESENCE mandatory } | + { ID id-Direct-Forwarding-Path-Availability CRITICALITY ignore TYPE Direct-Forwarding-Path-Availability PRESENCE optional } | + { ID id-SRVCCHOIndication CRITICALITY reject TYPE SRVCCHOIndication PRESENCE optional }| + { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory }| + { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE optional }| + { ID id-MSClassmark2 CRITICALITY reject TYPE MSClassmark2 PRESENCE conditional }| + { ID id-MSClassmark3 CRITICALITY ignore TYPE MSClassmark3 PRESENCE conditional }, ... } @@ -292,20 +308,19 @@ HandoverCommand ::= SEQUENCE { } HandoverCommandIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory } | - { ID id-NAS-DownlinkCount CRITICALITY reject TYPE NAS-DownlinkCount PRESENCE conditional - -- This IE shall be present if Handover Type IE is not set to value "IntraLTE" -- }| - { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional } | - { ID id-E-RABtoReleaseListHOCmd CRITICALITY ignore TYPE E-RABList PRESENCE optional } | - { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory } | + { ID id-NASSecurityParametersfromE-UTRAN CRITICALITY reject TYPE NASSecurityParametersfromE-UTRAN PRESENCE conditional + -- This IE shall be present if HandoverType IE is set to value "LTEtoUTRAN" or "LTEtoGERAN" -- }| + { ID id-E-RABSubjecttoDataForwardingList CRITICALITY ignore TYPE E-RABSubjecttoDataForwardingList PRESENCE optional } | + { ID id-E-RABtoReleaseListHOCmd CRITICALITY ignore TYPE E-RABList PRESENCE optional } | + { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory }| + { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE optional }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, ... } -NAS-DownlinkCount ::= BIT STRING (SIZE (4)) - E-RABSubjecttoDataForwardingList ::= E-RAB-IE-ContainerList { {E-RABDataForwardingItemIEs} } E-RABDataForwardingItemIEs S1AP-PROTOCOL-IES ::= { @@ -314,12 +329,12 @@ E-RABDataForwardingItemIEs S1AP-PROTOCOL-IES ::= { } E-RABDataForwardingItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - dL-transportLayerAddress TransportLayerAddress OPTIONAL, - dL-gTP-TEID GTP-TEID OPTIONAL, - uL-TransportLayerAddress TransportLayerAddress OPTIONAL, - uL-GTP-TEID GTP-TEID OPTIONAL, - iE-Extensions ProtocolExtensionContainer { { E-RABDataForwardingItem-ExtIEs} } OPTIONAL, + e-RAB-ID E-RAB-ID, + dL-transportLayerAddress TransportLayerAddress OPTIONAL, + dL-gTP-TEID GTP-TEID OPTIONAL, + uL-TransportLayerAddress TransportLayerAddress OPTIONAL, + uL-GTP-TEID GTP-TEID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { E-RABDataForwardingItem-ExtIEs} } OPTIONAL, ... } @@ -343,8 +358,8 @@ HandoverPreparationFailure ::= SEQUENCE { HandoverPreparationFailureIEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, ... } @@ -366,18 +381,20 @@ HandoverRequest ::= SEQUENCE { } HandoverRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory } | - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } | - { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory }| - { ID id-E-RABToBeSetupListHOReq CRITICALITY reject TYPE E-RABToBeSetupListHOReq PRESENCE mandatory } | - { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory } | - { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory }| - { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional }| - { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional }| - { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE optional }| - { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional }| - { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}, + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-HandoverType CRITICALITY reject TYPE HandoverType PRESENCE mandatory } | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } | + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE mandatory }| + { ID id-E-RABToBeSetupListHOReq CRITICALITY reject TYPE E-RABToBeSetupListHOReq PRESENCE mandatory } | + { ID id-Source-ToTarget-TransparentContainer CRITICALITY reject TYPE Source-ToTarget-TransparentContainer PRESENCE mandatory } | + { ID id-UESecurityCapabilities CRITICALITY reject TYPE UESecurityCapabilities PRESENCE mandatory }| + { ID id-HandoverRestrictionList CRITICALITY ignore TYPE HandoverRestrictionList PRESENCE optional }| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional }| + { ID id-RequestType CRITICALITY ignore TYPE RequestType PRESENCE optional }| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional }| + { ID id-SecurityContext CRITICALITY reject TYPE SecurityContext PRESENCE mandatory}| + { ID id-NASSecurityParameterstoE-UTRAN CRITICALITY reject TYPE NASSecurityParameterstoE-UTRAN PRESENCE conditional + -- This IE shall be present if the Handover Type IE is set to the value "UTRANtoLTE" or "GERANtoLTE" -- }, ... } @@ -389,11 +406,11 @@ E-RABToBeSetupItemHOReqIEs S1AP-PROTOCOL-IES ::= { } E-RABToBeSetupItemHOReq ::= SEQUENCE { - e-RAB-ID E-RAB-ID, + e-RAB-ID E-RAB-ID, transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEID, + gTP-TEID GTP-TEID, e-RABlevelQosParameters E-RABLevelQoSParameters, - iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemHOReq-ExtIEs} } OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemHOReq-ExtIEs} } OPTIONAL, ... } @@ -413,13 +430,12 @@ HandoverRequestAcknowledge ::= SEQUENCE { } HandoverRequestAcknowledgeIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-HandoverType CRITICALITY ignore TYPE HandoverType PRESENCE mandatory } | - { ID id-E-RABAdmittedList CRITICALITY ignore TYPE E-RABAdmittedList PRESENCE mandatory } | - { ID id-E-RABFailedToSetupListHOReqAck CRITICALITY ignore TYPE E-RABFailedtoSetupListHOReqAck PRESENCE optional } | - { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY ignore TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-E-RABAdmittedList CRITICALITY ignore TYPE E-RABAdmittedList PRESENCE mandatory } | + { ID id-E-RABFailedToSetupListHOReqAck CRITICALITY ignore TYPE E-RABFailedtoSetupListHOReqAck PRESENCE optional } | + { ID id-Target-ToSource-TransparentContainer CRITICALITY reject TYPE Target-ToSource-TransparentContainer PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, ... } @@ -432,13 +448,13 @@ E-RABAdmittedItemIEs S1AP-PROTOCOL-IES ::= { E-RABAdmittedItem ::= SEQUENCE { e-RAB-ID E-RAB-ID, - transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEID, - dL-transportLayerAddress TransportLayerAddress OPTIONAL, - dL-gTP-TEID GTP-TEID OPTIONAL, - uL-TransportLayerAddress TransportLayerAddress OPTIONAL, - uL-GTP-TEID GTP-TEID OPTIONAL, - iE-Extensions ProtocolExtensionContainer { {E-RABAdmittedItem-ExtIEs} } OPTIONAL, + transportLayerAddress TransportLayerAddress, + gTP-TEID GTP-TEID, + dL-transportLayerAddress TransportLayerAddress OPTIONAL, + dL-gTP-TEID GTP-TEID OPTIONAL, + uL-TransportLayerAddress TransportLayerAddress OPTIONAL, + uL-GTP-TEID GTP-TEID OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABAdmittedItem-ExtIEs} } OPTIONAL, ... } @@ -477,9 +493,9 @@ HandoverFailure ::= SEQUENCE { } HandoverFailureIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + { ID id-MME-UE-S1AP-ID CRITICALITY ignore TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, ... } @@ -501,11 +517,10 @@ HandoverNotify ::= SEQUENCE { } HandoverNotifyIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | - { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| - { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| - { ID id-UESecurityCapabilities CRITICALITY ignore TYPE UESecurityCapabilities PRESENCE mandatory }, + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory } | + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory } | + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| ... } @@ -528,11 +543,11 @@ PathSwitchRequest ::= SEQUENCE { PathSwitchRequestIEs S1AP-PROTOCOL-IES ::= { { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-E-RABToBeSwitchedDLList CRITICALITY reject TYPE E-RABToBeSwitchedDLList PRESENCE mandatory }| - { ID id-SourceMME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| - { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| - { ID id-UESecurityCapabilities CRITICALITY ignore TYPE UESecurityCapabilities PRESENCE mandatory }, + { ID id-E-RABToBeSwitchedDLList CRITICALITY reject TYPE E-RABToBeSwitchedDLList PRESENCE mandatory }| + { ID id-SourceMME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + { ID id-TAI CRITICALITY ignore TYPE TAI PRESENCE mandatory}| + { ID id-UESecurityCapabilities CRITICALITY ignore TYPE UESecurityCapabilities PRESENCE mandatory }, ... } @@ -585,7 +600,7 @@ E-RABToBeSwitchedULItemIEs S1AP-PROTOCOL-IES ::= { } E-RABToBeSwitchedULItem ::= SEQUENCE { - e-RAB-ID E-RAB-ID, + e-RAB-ID E-RAB-ID, transportLayerAddress TransportLayerAddress, gTP-TEID GTP-TEID, iE-Extensions ProtocolExtensionContainer { { E-RABToBeSwitchedULItem-ExtIEs} } OPTIONAL, @@ -676,10 +691,10 @@ E-RABSetupRequest ::= SEQUENCE { } E-RABSetupRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| - { ID id-E-RABToBeSetupListBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupListBearerSUReq PRESENCE mandatory }, + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeSetupListBearerSUReq CRITICALITY reject TYPE E-RABToBeSetupListBearerSUReq PRESENCE mandatory }, ... } @@ -691,10 +706,10 @@ E-RABToBeSetupItemBearerSUReqIEs S1AP-PROTOCOL-IES ::= { } E-RABToBeSetupItemBearerSUReq ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RABlevelQoSParameters E-RABLevelQoSParameters, + e-RAB-ID E-RAB-ID, + e-RABlevelQoSParameters E-RABLevelQoSParameters, transportLayerAddress TransportLayerAddress, - gTP-TEID GTP-TEID, + gTP-TEID GTP-TEID, nAS-PDU NAS-PDU, iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemBearerSUReqExtIEs} } OPTIONAL, ... @@ -736,9 +751,9 @@ E-RABSetupItemBearerSUResIEs S1AP-PROTOCOL-IES ::= { E-RABSetupItemBearerSURes ::= SEQUENCE { e-RAB-ID E-RAB-ID, - transportLayerAddress TransportLayerAddress, + transportLayerAddress TransportLayerAddress, gTP-TEID GTP-TEID, - iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemBearerSUResExtIEs} } OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {E-RABSetupItemBearerSUResExtIEs} } OPTIONAL, ... } @@ -767,10 +782,10 @@ E-RABModifyRequest ::= SEQUENCE { } E-RABModifyRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| - { ID id-E-RABToBeModifiedListBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedListBearerModReq PRESENCE mandatory }, + { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| + { ID id-uEaggregateMaximumBitrate CRITICALITY reject TYPE UEAggregateMaximumBitrate PRESENCE optional }| + { ID id-E-RABToBeModifiedListBearerModReq CRITICALITY reject TYPE E-RABToBeModifiedListBearerModReq PRESENCE mandatory }, ... } @@ -782,8 +797,8 @@ E-RABToBeModifiedItemBearerModReqIEs S1AP-PROTOCOL-IES ::= { } E-RABToBeModifiedItemBearerModReq ::= SEQUENCE { - e-RAB-ID E-RAB-ID, - e-RABLevelQoSParameters E-RABLevelQoSParameters, + e-RAB-ID E-RAB-ID, + e-RABLevelQoSParameters E-RABLevelQoSParameters, nAS-PDU NAS-PDU, iE-Extensions ProtocolExtensionContainer { {E-RABToBeModifyItemBearerModReqExtIEs} } OPTIONAL, ... @@ -851,7 +866,7 @@ E-RABModifyItemBearerModResExtIEs S1AP-PROTOCOL-EXTENSION ::= { -- ************************************************************** E-RABReleaseCommand ::= SEQUENCE { - protocolIEs ProtocolIE-Container { {E-RABReleaseCommandIEs} }, + protocolIEs ProtocolIE-Container { {E-RABReleaseCommandIEs} }, ... } @@ -908,7 +923,7 @@ E-RABReleaseItemBearerRelCompExtIEs S1AP-PROTOCOL-EXTENSION ::= { -- ************************************************************** -- --- E-RAB RELEASE REQUEST ELEMENTARY PROCEDURE +-- E-RAB RELEASE INDICATION ELEMENTARY PROCEDURE -- -- ************************************************************** @@ -926,7 +941,7 @@ E-RABReleaseIndication ::= SEQUENCE { E-RABReleaseIndicationIEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory }| { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory }| - { ID id-E-RABReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }, + { ID id-E-RABReleasedList CRITICALITY ignore TYPE E-RABList PRESENCE mandatory }, ... } -- ************************************************************** @@ -977,7 +992,7 @@ E-RABToBeSetupItemCtxtSUReq ::= SEQUENCE { e-RABlevelQoSParameters E-RABLevelQoSParameters, transportLayerAddress TransportLayerAddress, gTP-TEID GTP-TEID, - nAS-PDU NAS-PDU, + nAS-PDU NAS-PDU OPTIONAL, iE-Extensions ProtocolExtensionContainer { {E-RABToBeSetupItemCtxtSUReqExtIEs} } OPTIONAL, ... } @@ -1065,11 +1080,12 @@ PagingIEs S1AP-PROTOCOL-IES ::= { { ID id-UEPagingID CRITICALITY ignore TYPE UEPagingID PRESENCE mandatory } | { ID id-pagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional } | { ID id-CNDomain CRITICALITY ignore TYPE CNDomain PRESENCE mandatory } | - { ID id-TAIList CRITICALITY ignore TYPE TAIList PRESENCE mandatory }, + { ID id-TAIList CRITICALITY ignore TYPE TAIList PRESENCE mandatory }| + { ID id-CSG-Id-List CRITICALITY ignore TYPE CSG-Id-List PRESENCE optional }, ... } -TAIList::= SEQUENCE (SIZE(1.. maxnoofTAI)) OF ProtocolIE-SingleContainer {{TAIItemIEs}} +TAIList::= SEQUENCE (SIZE(1.. maxnoofTAIs)) OF ProtocolIE-SingleContainer {{TAIItemIEs}} TAIItemIEs S1AP-PROTOCOL-IES ::= { { ID id-TAIItem CRITICALITY ignore TYPE TAIItem PRESENCE mandatory }, @@ -1150,7 +1166,7 @@ UEContextReleaseComplete-IEs S1AP-PROTOCOL-IES ::= { -- ************************************************************** -- --- UE Context Modification +-- UE CONTEXT MODIFICATION ELEMENTARY PROCEDURE -- -- ************************************************************** @@ -1211,6 +1227,12 @@ UEContextModificationFailureIEs S1AP-PROTOCOL-IES ::= { -- ************************************************************** -- +-- NAS TRANSPORT ELEMENTARY PROCEDURES +-- +-- ************************************************************** + +-- ************************************************************** +-- -- DOWNLINK NAS TRANSPORT -- -- ************************************************************** @@ -1241,12 +1263,13 @@ InitialUEMessage ::= SEQUENCE { } InitialUEMessage-IEs S1AP-PROTOCOL-IES ::= { - { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory} | - { ID id-TAI CRITICALITY reject TYPE TAI PRESENCE mandatory}| - { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory} | - { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE optional}| - { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}, + { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + { ID id-NAS-PDU CRITICALITY reject TYPE NAS-PDU PRESENCE mandatory} | + { ID id-TAI CRITICALITY reject TYPE TAI PRESENCE mandatory} | + { ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory} | + { ID id-RRC-Establishment-Cause CRITICALITY ignore TYPE RRC-Establishment-Cause PRESENCE mandatory} | + { ID id-S-TMSI CRITICALITY reject TYPE S-TMSI PRESENCE optional} | + { ID id-CSG-Id CRITICALITY reject TYPE CSG-Id PRESENCE optional}. ... } @@ -1400,10 +1423,11 @@ S1SetupRequest ::= SEQUENCE { } S1SetupRequestIEs S1AP-PROTOCOL-IES ::= { - { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory }| - { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE mandatory }| - { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE mandatory }| - { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}, + { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory}| + { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional}| + { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE mandatory}| + { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE mandatory}| + { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}, ... } @@ -1420,9 +1444,8 @@ S1SetupResponse ::= SEQUENCE { S1SetupResponseIEs S1AP-PROTOCOL-IES ::= { - { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE mandatory }| - { ID id-ServedPLMNs CRITICALITY ignore TYPE ServedPLMNs PRESENCE mandatory }| - { ID id-ServedGUMMEIs CRITICALITY ignore TYPE ServedGUMMEIs PRESENCE mandatory }| + { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }| + { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE mandatory }| { ID id-RelativeMMECapacity CRITICALITY ignore TYPE RelativeMMECapacity PRESENCE mandatory }| { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, ... @@ -1466,7 +1489,8 @@ ENBConfigurationUpdate ::= SEQUENCE { ENBConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= { { ID id-eNBname CRITICALITY ignore TYPE ENBname PRESENCE optional }| { ID id-SupportedTAs CRITICALITY reject TYPE SupportedTAs PRESENCE optional }| - { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}, + { ID id-CSG-IdList CRITICALITY reject TYPE CSG-IdList PRESENCE optional}| + { ID id-DefaultPagingDRX CRITICALITY ignore TYPE PagingDRX PRESENCE optional }, ... } @@ -1525,7 +1549,6 @@ MMEConfigurationUpdate ::= SEQUENCE { MMEConfigurationUpdateIEs S1AP-PROTOCOL-IES ::= { { ID id-MMEname CRITICALITY ignore TYPE MMEname PRESENCE optional }| - { ID id-ServedPLMNs CRITICALITY reject TYPE ServedPLMNs PRESENCE optional }| { ID id-ServedGUMMEIs CRITICALITY reject TYPE ServedGUMMEIs PRESENCE optional }| { ID id-RelativeMMECapacity CRITICALITY reject TYPE RelativeMMECapacity PRESENCE optional}, ... @@ -1616,8 +1639,8 @@ UplinkS1cdma2000tunnelingIEs S1AP-PROTOCOL-IES ::= { { ID id-cdma2000RATType CRITICALITY reject TYPE Cdma2000RATType PRESENCE mandatory } | { ID id-cdma2000SectorID CRITICALITY reject TYPE Cdma2000SectorID PRESENCE mandatory } | { ID id-cdma2000HORequiredIndication CRITICALITY ignore TYPE Cdma2000HORequiredIndication PRESENCE optional } | - { ID id-cdma2000OneXSRVCCInfo CRITICALITY ignore TYPE Cdma2000OneXSRVCCInfo PRESENCE optional } | - { ID id-cdma2000OneXRAND CRITICALITY ignore TYPE Cdma2000OneXRAND PRESENCE optional } | + { ID id-cdma2000OneXSRVCCInfo CRITICALITY reject TYPE Cdma2000OneXSRVCCInfo PRESENCE optional } | + { ID id-cdma2000OneXRAND CRITICALITY reject TYPE Cdma2000OneXRAND PRESENCE optional } | { ID id-cdma2000PDU CRITICALITY reject TYPE Cdma2000PDU PRESENCE mandatory }, ... } @@ -1733,7 +1756,7 @@ TraceFailureIndication ::= SEQUENCE { TraceFailureIndicationIEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-TraceReference CRITICALITY ignore TYPE TraceReference PRESENCE mandatory} | + { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory} | { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} , ... } @@ -1758,12 +1781,44 @@ DeactivateTrace ::= SEQUENCE { DeactivateTraceIEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-TraceReference CRITICALITY ignore TYPE TraceReference PRESENCE mandatory }, + { ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory }, ... } -- ************************************************************** -- +-- CELL TRAFFIC TRACE PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- CELL TRAFFIC TRACE +-- +-- ************************************************************** + +CellTrafficTrace ::= SEQUENCE { +protocolIEs ProtocolIE-Container { { CellTrafficTraceIEs } }, +... +} + +CellTrafficTraceIEs S1AP-PROTOCOL-IES ::= { + {ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | + {ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | + {ID id-E-UTRAN-Trace-ID CRITICALITY ignore TYPE E-UTRAN-Trace-ID PRESENCE mandatory}| + {ID id-EUTRAN-CGI CRITICALITY ignore TYPE EUTRAN-CGI PRESENCE mandatory}| + {ID id-TraceCollectionEntityIPAddress CRITICALITY ignore TYPE TransportLayerAddress PRESENCE mandatory }, + ... +} + +-- ************************************************************** +-- +-- LOCATION ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- -- Location Reporting Control -- -- ************************************************************** @@ -1794,7 +1849,7 @@ LocationReportingFailureIndication ::= SEQUENCE { LocationReportingFailureIndicationIEs S1AP-PROTOCOL-IES ::= { { ID id-MME-UE-S1AP-ID CRITICALITY reject TYPE MME-UE-S1AP-ID PRESENCE mandatory} | { ID id-eNB-UE-S1AP-ID CRITICALITY reject TYPE ENB-UE-S1AP-ID PRESENCE mandatory} | - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } , + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}, ... } @@ -1820,6 +1875,12 @@ LocationReportIEs S1AP-PROTOCOL-IES ::= { -- ************************************************************** -- +-- OVERLOAD ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- -- Overload Start -- -- ************************************************************** @@ -1849,7 +1910,7 @@ OverloadStopIEs S1AP-PROTOCOL-IES ::= { } -- ************************************************************** -- --- WRITE-REPLACE WARNING PROCEDURE +-- WRITE-REPLACE WARNING ELEMENTARY PROCEDURE -- -- ************************************************************** @@ -1873,8 +1934,8 @@ WriteReplaceWarningRequestIEs S1AP-PROTOCOL-IES ::= { { ID id-NumberofBroadcastRequest CRITICALITY reject TYPE NumberofBroadcastRequest PRESENCE mandatory }| { ID id-WarningType CRITICALITY ignore TYPE WarningType PRESENCE optional }| { ID id-WarningSecurityInfo CRITICALITY ignore TYPE WarningSecurityInfo PRESENCE optional }| - { ID id-DataCodingScheme CRITICALITY reject TYPE DataCodingScheme PRESENCE mandatory }| - { ID id-WarningMessageContents CRITICALITY reject TYPE WarningMessageContents PRESENCE mandatory }, + { ID id-DataCodingScheme CRITICALITY ignore TYPE DataCodingScheme PRESENCE optional }| + { ID id-WarningMessageContents CRITICALITY ignore TYPE WarningMessageContents PRESENCE optional }, ... } -- ************************************************************** @@ -1944,7 +2005,49 @@ MMEDirectInformationTransferIEs S1AP-PROTOCOL-IES ::= { { ID id-Inter-SystemInformationTransferTypeMDT CRITICALITY reject TYPE Inter-SystemInformationTransferType PRESENCE mandatory} , ... } +-- ************************************************************** +-- +-- eNB CONFIGURATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** +-- ************************************************************** +-- +-- eNB Configuration Transfer +-- +-- ************************************************************** + +ENBConfigurationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ ENBConfigurationTransferIEs}}, + ... +} + +ENBConfigurationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-SONConfigurationTransferECT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional} , + ... +} + +-- ************************************************************** +-- +-- MME CONFIGURATION TRANSFER ELEMENTARY PROCEDURE +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- MME Configuration Transfer +-- +-- ************************************************************** + +MMEConfigurationTransfer ::= SEQUENCE { + protocolIEs ProtocolIE-Container {{ MMEConfigurationTransferIEs}}, + ... +} + +MMEConfigurationTransferIEs S1AP-PROTOCOL-IES ::= { + { ID id-SONConfigurationTransferMCT CRITICALITY ignore TYPE SONConfigurationTransfer PRESENCE optional} , + ... +} -- ************************************************************** -- @@ -1968,3 +2071,4 @@ PrivateMessageIEs S1AP-PRIVATE-IES ::= { } END + diff --git a/asn1/s1ap/S1AP-PDU-Descriptions.asn b/asn1/s1ap/S1AP-PDU-Descriptions.asn index 897fc9c1ba..2429fc6237 100644 --- a/asn1/s1ap/S1AP-PDU-Descriptions.asn +++ b/asn1/s1ap/S1AP-PDU-Descriptions.asn @@ -1,5 +1,5 @@ -- $Id$ --- 3GPP TS 36.413 V8.4.0 (2008-12) +-- 3GPP TS 36.413 V8.5.0 (2009-03) -- 9.3.2 Elementary Procedure Definitions -- ************************************************************** -- @@ -26,6 +26,7 @@ IMPORTS ProcedureCode FROM S1AP-CommonDataTypes + CellTrafficTrace, DeactivateTrace, DownlinkNASTransport, DownlinkS1cdma2000tunneling, @@ -88,11 +89,14 @@ FROM S1AP-CommonDataTypes UplinkNASTransport, UplinkS1cdma2000tunneling, WriteReplaceWarningRequest, - WriteReplaceWarningResponse + WriteReplaceWarningResponse, + ENBConfigurationTransfer, + MMEConfigurationTransfer FROM S1AP-PDU-Contents + id-CellTrafficTrace, id-DeactivateTrace, id-downlinkNASTransport, id-DownlinkS1cdma2000tunneling, @@ -132,7 +136,9 @@ FROM S1AP-PDU-Contents id-UEContextReleaseRequest, id-uplinkNASTransport, id-UplinkS1cdma2000tunneling, - id-WriteReplaceWarning + id-WriteReplaceWarning, + id-eNBConfigurationTransfer, + id-MMEConfigurationTransfer FROM S1AP-Constants; @@ -150,11 +156,11 @@ S1AP-ELEMENTARY-PROCEDURE ::= CLASS { &criticality Criticality DEFAULT ignore } WITH SYNTAX { - INITIATING MESSAGE &InitiatingMessage - [SUCCESSFUL OUTCOME &SuccessfulOutcome] + INITIATING MESSAGE &InitiatingMessage + [SUCCESSFUL OUTCOME &SuccessfulOutcome] [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] PROCEDURE CODE &procedureCode - [CRITICALITY &criticality] + [CRITICALITY &criticality] } -- ************************************************************** @@ -172,19 +178,19 @@ S1AP-PDU ::= CHOICE { InitiatingMessage ::= SEQUENCE { procedureCode S1AP-ELEMENTARY-PROCEDURE.&procedureCode ({S1AP-ELEMENTARY-PROCEDURES}), - criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + 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}), + 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}), + criticality S1AP-ELEMENTARY-PROCEDURE.&criticality ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}), value S1AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({S1AP-ELEMENTARY-PROCEDURES}{@procedureCode}) } @@ -205,9 +211,9 @@ S1AP-ELEMENTARY-PROCEDURES-CLASS-1 S1AP-ELEMENTARY-PROCEDURE ::= { handoverPreparation | handoverResourceAllocation | pathSwitchRequest | - e-RABSetup | - e-RABModify | - e-RABRelease | + e-RABSetup | + e-RABModify | + e-RABRelease | initialContextSetup | handoverCancel | reset | @@ -224,8 +230,8 @@ S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= { handoverNotification | e-RABReleaseIndication | paging | - downlinkNASTransport | - initialUEMessage | + downlinkNASTransport | + initialUEMessage | uplinkNASTransport | errorIndication | nASNonDeliveryIndication | @@ -238,13 +244,16 @@ S1AP-ELEMENTARY-PROCEDURES-CLASS-2 S1AP-ELEMENTARY-PROCEDURE ::= { deactivateTrace | traceStart | traceFailureIndication | + CellTrafficTrace | locationReportingControl | - locationReportingFailureIndication | + locationReportingFailureIndication | locationReport | overloadStart | overloadStop | eNBDirectInformationTransfer | mMEDirectInformationTransfer | + eNBConfigurationTransfer | + mMEConfigurationTransfer | privateMessage , ... } @@ -462,6 +471,11 @@ traceFailureIndication S1AP-ELEMENTARY-PROCEDURE ::= { PROCEDURE CODE id-TraceFailureIndication CRITICALITY ignore } +cellTrafficTrace S1AP-ELEMENTARY-PROCEDURE ::={ +INITIATING MESSAGE CellTrafficTrace +PROCEDURE CODE id-CellTrafficTrace +CRITICALITY ignore +} locationReportingControl S1AP-ELEMENTARY-PROCEDURE ::= { INITIATING MESSAGE LocationReportingControl @@ -512,6 +526,19 @@ mMEDirectInformationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { CRITICALITY ignore } +eNBConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE ENBConfigurationTransfer + PROCEDURE CODE id-eNBConfigurationTransfer + CRITICALITY ignore +} + +mMEConfigurationTransfer S1AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE MMEConfigurationTransfer + PROCEDURE CODE id-MMEConfigurationTransfer + CRITICALITY ignore +} + + privateMessage S1AP-ELEMENTARY-PROCEDURE ::= { INITIATING MESSAGE PrivateMessage PROCEDURE CODE id-PrivateMessage @@ -521,3 +548,4 @@ privateMessage S1AP-ELEMENTARY-PROCEDURE ::= { END + diff --git a/asn1/s1ap/packet-s1ap-template.c b/asn1/s1ap/packet-s1ap-template.c index d5f2a05c14..52b5e2a7da 100644 --- a/asn1/s1ap/packet-s1ap-template.c +++ b/asn1/s1ap/packet-s1ap-template.c @@ -66,10 +66,13 @@ static dissector_handle_t nas_eps_handle; /* Initialize the protocol and registered fields */ static int proto_s1ap = -1; +static int hf_s1ap_transportLayerAddressIPv4 = -1; +static int hf_s1ap_transportLayerAddressIPv6 = -1; #include "packet-s1ap-hf.c" /* Initialize the subtree pointers */ static int ett_s1ap = -1; +static int ett_s1ap_TransportLayerAddress = -1; #include "packet-s1ap-ett.c" @@ -187,6 +190,14 @@ void proto_register_s1ap(void) { /* List of fields */ static hf_register_info hf[] = { + { &hf_s1ap_transportLayerAddressIPv4, + { "transportLayerAddress(IPv4)", "s1ap.transportLayerAddressIPv4", + FT_IPv4, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_transportLayerAddressIPv6, + { "transportLayerAddress(IPv6)", "s1ap.transportLayerAddressIPv6", + FT_IPv4, BASE_HEX, NULL, 0, + NULL, HFILL }}, #include "packet-s1ap-hfarr.c" }; @@ -194,6 +205,7 @@ void proto_register_s1ap(void) { /* List of subtrees */ static gint *ett[] = { &ett_s1ap, + &ett_s1ap_TransportLayerAddress, #include "packet-s1ap-ettarr.c" }; diff --git a/asn1/s1ap/s1ap.cnf b/asn1/s1ap/s1ap.cnf index aae81b4374..98e1fa1fe7 100644 --- a/asn1/s1ap/s1ap.cnf +++ b/asn1/s1ap/s1ap.cnf @@ -43,7 +43,7 @@ UnsuccessfulOutcome/value unsuccessfulOutcome_value SuccessfulOutcome/value successfulOutcome_value -#PrivateIE-Field/id private_id +PrivateIE-Field/id private_id ProtocolExtensionField/id ext_id #PrivateIE-Field/value private_value @@ -199,6 +199,30 @@ MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound") if ((tvb_length(parameter_tvb)>0)&&(nas_eps_handle)) call_dissector(nas_eps_handle,parameter_tvb,%(ACTX)s->pinfo, tree); +#.FN_BODY TransportLayerAddress VAL_PTR = ¶meter_tvb + tvbuff_t *parameter_tvb=NULL; + proto_tree *subtree; + gint tvb_len; + +%(DEFAULT_BODY)s + if (!parameter_tvb) + return offset; + +# The Transport Layer Address signalled in S1-AP messages is a bit string of +# a) 32 bits in case of IPv4 address according to [6]; and +# b) 128 bits in case of IPv6 address according to [5]. + /* Get the length */ + tvb_len = tvb_length(tvb); + subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_TransportLayerAddress); + if (tvb_len==4){ + /* IPv4 */ + proto_tree_add_item(subtree, hf_s1ap_transportLayerAddressIPv4, tvb, 0, tvb_len, FALSE); + } + if (tvb_len==16){ + /* IPv6 */ + proto_tree_add_item(subtree, hf_s1ap_transportLayerAddressIPv6, tvb, 0, tvb_len, FALSE); + } + #.TYPE_ATTR ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(s1ap_ProtocolIE_ID_vals) @@ -245,7 +269,9 @@ id-WriteReplaceWarning ProcedureCode id-eNBDirectInformationTransfer ProcedureCode id-MMEDirectInformationTransfer ProcedureCode id-PrivateMessage ProcedureCode - +id-eNBConfigurationTransfer ProcedureCode +id-MMEConfigurationTransfer ProcedureCode +id-CellTrafficTrace ProcedureCode # ProtocolIE-ID id-MME-UE-S1AP-ID ProtocolIE-ID @@ -315,7 +341,7 @@ id-Direct-Forwarding-Path-Availability ProtocolIE-ID id-UEIdentityIndexValue ProtocolIE-ID id-cdma2000HOStatus ProtocolIE-ID id-cdma2000HORequiredIndication ProtocolIE-ID -id-TraceReference ProtocolIE-ID +id-E-UTRAN-Trace-ID ProtocolIE-ID id-RelativeMMECapacity ProtocolIE-ID id-SourceMME-UE-S1AP-ID ProtocolIE-ID id-Bearers-SubjectToStatusTransfer-Item ProtocolIE-ID @@ -359,7 +385,15 @@ id-SRVCCHOIndication ProtocolIE-ID id-NAS-DownlinkCount ProtocolIE-ID id-CSG-Id ProtocolIE-ID id-CSG-IdList ProtocolIE-ID - +id-SONConfigurationTransferECT ProtocolIE-ID +id-SONConfigurationTransferMCT ProtocolIE-ID +id-TraceCollectionEntityIPAddress ProtocolIE-ID +id-MSClassmark2 ProtocolIE-ID +id-MSClassmark3 ProtocolIE-ID +id-RRC-Establishment-Cause ProtocolIE-ID +id-NASSecurityParametersfromE-UTRAN ProtocolIE-ID +id-NASSecurityParameterstoE-UTRAN ProtocolIE-ID +id-DefaultPagingDRX ProtocolIE-ID #.END #.REGISTER_NEW @@ -431,7 +465,6 @@ Direct-Forwarding-Path-Availability N s1ap.ies id-Direct-Forwarding-Path-Availa UEIdentityIndexValue N s1ap.ies id-UEIdentityIndexValue Cdma2000HOStatus N s1ap.ies id-cdma2000HOStatus Cdma2000HORequiredIndication N s1ap.ies id-cdma2000HORequiredIndication -TraceReference N s1ap.ies id-TraceReference RelativeMMECapacity N s1ap.ies id-RelativeMMECapacity MME-UE-S1AP-ID N s1ap.ies id-SourceMME-UE-S1AP-ID Bearers-SubjectToStatusTransfer-Item N s1ap.ies id-Bearers-SubjectToStatusTransfer-Item @@ -471,9 +504,17 @@ Inter-SystemInformationTransferType N s1ap.ies id-Inter-SystemInformationTransf Target-ToSource-TransparentContainer N s1ap.ies id-Target-ToSource-TransparentContainer SRVCCOperationPossible N s1ap.ies id-SRVCCOperationPossible SRVCCHOIndication N s1ap.ies id-SRVCCHOIndication -NAS-DownlinkCount N s1ap.ies id-NAS-DownlinkCount CSG-Id N s1ap.ies id-CSG-Id CSG-IdList N s1ap.ies id-CSG-IdList +SONConfigurationTransfer N s1ap.ies id-SONConfigurationTransferECT +SONConfigurationTransfer N s1ap.ies id-SONConfigurationTransferMCT +TransportLayerAddress N s1ap.ies id-TraceCollectionEntityIPAddress +MSClassmark2 N s1ap.ies id-MSClassmark2 +MSClassmark3 N s1ap.ies id-MSClassmark3 +RRC-Establishment-Cause N s1ap.ies id-RRC-Establishment-Cause +NASSecurityParametersfromE-UTRAN N s1ap.ies id-NASSecurityParametersfromE-UTRAN +NASSecurityParameterstoE-UTRAN N s1ap.ies id-NASSecurityParameterstoE-UTRAN +PagingDRX N s1ap.ies id-DefaultPagingDRX #S1AP-PROTOCOL-IES-PAIR #RAB-SetupOrModifyItemFirst N s1ap.ies.pair.first id-RAB-SetupOrModifyItem @@ -587,6 +628,13 @@ MMEDirectInformationTransfer N s1ap.proc.imsg id-MMEDirectInformationTransfer PrivateMessage N s1ap.proc.imsg id-PrivateMessage +ENBConfigurationTransfer N s1ap.proc.imsg id-eNBConfigurationTransfer + +MMEConfigurationTransfer N s1ap.proc.imsg id-MMEConfigurationTransfer + +CellTrafficTrace N s1ap.proc.imsg id-CellTrafficTrace + + #.TYPE_ATTR BitRate TYPE = FT_UINT64 DISPLAY = BASE_DEC STRINGS = NULL #.END diff --git a/epan/dissectors/packet-s1ap.c b/epan/dissectors/packet-s1ap.c index cf17d56d72..5daa0c97c5 100644 --- a/epan/dissectors/packet-s1ap.c +++ b/epan/dissectors/packet-s1ap.c @@ -78,7 +78,7 @@ static dissector_handle_t nas_eps_handle; #define maxNrOfCSGs 256 #define maxNrOfE_RABs 256 #define maxNrOfInterfaces 3 -#define maxnoofTAI 256 +#define maxnoofTAIs 256 #define maxnoofTACs 256 #define maxNrOfErrors 256 #define maxnoofBPLMNs 6 @@ -96,6 +96,9 @@ static dissector_handle_t nas_eps_handle; #define maxnoofCellinTAI 65535 #define maxnoofCellinEAI 65535 #define maxnoofeNBX2TLAs 2 +#define maxnoofRATs 8 +#define maxnoofGroupIDs 65535 +#define maxnoofMMECs 256 typedef enum _ProcedureCode_enum { id_HandoverPreparation = 0, @@ -137,7 +140,10 @@ typedef enum _ProcedureCode_enum { id_WriteReplaceWarning = 36, id_eNBDirectInformationTransfer = 37, id_MMEDirectInformationTransfer = 38, - id_PrivateMessage = 39 + id_PrivateMessage = 39, + id_eNBConfigurationTransfer = 40, + id_MMEConfigurationTransfer = 41, + id_CellTrafficTrace = 42 } ProcedureCode_enum; typedef enum _ProtocolIE_ID_enum { @@ -210,7 +216,7 @@ typedef enum _ProtocolIE_ID_enum { id_UEIdentityIndexValue = 80, id_cdma2000HOStatus = 83, id_cdma2000HORequiredIndication = 84, - id_TraceReference = 86, + id_E_UTRAN_Trace_ID = 86, id_RelativeMMECapacity = 87, id_SourceMME_UE_S1AP_ID = 88, id_Bearers_SubjectToStatusTransfer_Item = 89, @@ -252,7 +258,16 @@ typedef enum _ProtocolIE_ID_enum { id_SRVCCHOIndication = 125, id_NAS_DownlinkCount = 126, id_CSG_Id = 127, - id_CSG_IdList = 128 + id_CSG_IdList = 128, + id_SONConfigurationTransferECT = 129, + id_SONConfigurationTransferMCT = 130, + id_TraceCollectionEntityIPAddress = 131, + id_MSClassmark2 = 132, + id_MSClassmark3 = 133, + id_RRC_Establishment_Cause = 134, + id_NASSecurityParametersfromE_UTRAN = 135, + id_NASSecurityParameterstoE_UTRAN = 136, + id_DefaultPagingDRX = 137 } ProtocolIE_ID_enum; /*--- End of included file: packet-s1ap-val.h ---*/ @@ -261,6 +276,8 @@ typedef enum _ProtocolIE_ID_enum { /* Initialize the protocol and registered fields */ static int proto_s1ap = -1; +static int hf_s1ap_transportLayerAddressIPv4 = -1; +static int hf_s1ap_transportLayerAddressIPv6 = -1; /*--- Included file: packet-s1ap-hf.c ---*/ #line 1 "packet-s1ap-hf.c" @@ -292,19 +309,25 @@ static int hf_s1ap_HandoverType_PDU = -1; /* HandoverType */ static int hf_s1ap_MessageIdentifier_PDU = -1; /* MessageIdentifier */ static int hf_s1ap_MMEname_PDU = -1; /* MMEname */ static int hf_s1ap_MME_UE_S1AP_ID_PDU = -1; /* MME_UE_S1AP_ID */ +static int hf_s1ap_MSClassmark2_PDU = -1; /* MSClassmark2 */ +static int hf_s1ap_MSClassmark3_PDU = -1; /* MSClassmark3 */ static int hf_s1ap_NAS_PDU_PDU = -1; /* NAS_PDU */ +static int hf_s1ap_NASSecurityParametersfromE_UTRAN_PDU = -1; /* NASSecurityParametersfromE_UTRAN */ +static int hf_s1ap_NASSecurityParameterstoE_UTRAN_PDU = -1; /* NASSecurityParameterstoE_UTRAN */ static int hf_s1ap_NumberofBroadcastRequest_PDU = -1; /* NumberofBroadcastRequest */ static int hf_s1ap_OverloadResponse_PDU = -1; /* OverloadResponse */ static int hf_s1ap_PagingDRX_PDU = -1; /* PagingDRX */ static int hf_s1ap_RelativeMMECapacity_PDU = -1; /* RelativeMMECapacity */ static int hf_s1ap_RequestType_PDU = -1; /* RequestType */ static int hf_s1ap_RepetitionPeriod_PDU = -1; /* RepetitionPeriod */ +static int hf_s1ap_RRC_Establishment_Cause_PDU = -1; /* RRC_Establishment_Cause */ static int hf_s1ap_E_RABInformationListItem_PDU = -1; /* E_RABInformationListItem */ static int hf_s1ap_E_RABList_PDU = -1; /* E_RABList */ static int hf_s1ap_E_RABItem_PDU = -1; /* E_RABItem */ static int hf_s1ap_SecurityKey_PDU = -1; /* SecurityKey */ static int hf_s1ap_SecurityContext_PDU = -1; /* SecurityContext */ static int hf_s1ap_SerialNumber_PDU = -1; /* SerialNumber */ +static int hf_s1ap_SONConfigurationTransfer_PDU = -1; /* SONConfigurationTransfer */ static int hf_s1ap_Source_ToTarget_TransparentContainer_PDU = -1; /* Source_ToTarget_TransparentContainer */ static int hf_s1ap_SRVCCOperationPossible_PDU = -1; /* SRVCCOperationPossible */ static int hf_s1ap_SRVCCHOIndication_PDU = -1; /* SRVCCHOIndication */ @@ -317,8 +340,8 @@ static int hf_s1ap_TAI_PDU = -1; /* TAI */ static int hf_s1ap_TargetID_PDU = -1; /* TargetID */ static int hf_s1ap_Target_ToSource_TransparentContainer_PDU = -1; /* Target_ToSource_TransparentContainer */ static int hf_s1ap_TimeToWait_PDU = -1; /* TimeToWait */ +static int hf_s1ap_TransportLayerAddress_PDU = -1; /* TransportLayerAddress */ static int hf_s1ap_TraceActivation_PDU = -1; /* TraceActivation */ -static int hf_s1ap_TraceReference_PDU = -1; /* TraceReference */ static int hf_s1ap_UEAggregateMaximumBitrate_PDU = -1; /* UEAggregateMaximumBitrate */ static int hf_s1ap_UE_S1AP_IDs_PDU = -1; /* UE_S1AP_IDs */ static int hf_s1ap_UE_associatedLogicalS1_ConnectionItem_PDU = -1; /* UE_associatedLogicalS1_ConnectionItem */ @@ -331,7 +354,6 @@ static int hf_s1ap_WarningSecurityInfo_PDU = -1; /* WarningSecurityInfo */ static int hf_s1ap_WarningMessageContents_PDU = -1; /* WarningMessageContents */ static int hf_s1ap_HandoverRequired_PDU = -1; /* HandoverRequired */ static int hf_s1ap_HandoverCommand_PDU = -1; /* HandoverCommand */ -static int hf_s1ap_NAS_DownlinkCount_PDU = -1; /* NAS_DownlinkCount */ static int hf_s1ap_E_RABSubjecttoDataForwardingList_PDU = -1; /* E_RABSubjecttoDataForwardingList */ static int hf_s1ap_E_RABDataForwardingItem_PDU = -1; /* E_RABDataForwardingItem */ static int hf_s1ap_HandoverPreparationFailure_PDU = -1; /* HandoverPreparationFailure */ @@ -411,6 +433,7 @@ static int hf_s1ap_MMEStatusTransfer_PDU = -1; /* MMEStatusTransfer */ static int hf_s1ap_TraceStart_PDU = -1; /* TraceStart */ static int hf_s1ap_TraceFailureIndication_PDU = -1; /* TraceFailureIndication */ static int hf_s1ap_DeactivateTrace_PDU = -1; /* DeactivateTrace */ +static int hf_s1ap_CellTrafficTrace_PDU = -1; /* CellTrafficTrace */ static int hf_s1ap_LocationReportingControl_PDU = -1; /* LocationReportingControl */ static int hf_s1ap_LocationReportingFailureIndication_PDU = -1; /* LocationReportingFailureIndication */ static int hf_s1ap_LocationReport_PDU = -1; /* LocationReport */ @@ -421,6 +444,8 @@ static int hf_s1ap_WriteReplaceWarningResponse_PDU = -1; /* WriteReplaceWarning static int hf_s1ap_ENBDirectInformationTransfer_PDU = -1; /* ENBDirectInformationTransfer */ static int hf_s1ap_Inter_SystemInformationTransferType_PDU = -1; /* Inter_SystemInformationTransferType */ static int hf_s1ap_MMEDirectInformationTransfer_PDU = -1; /* MMEDirectInformationTransfer */ +static int hf_s1ap_ENBConfigurationTransfer_PDU = -1; /* ENBConfigurationTransfer */ +static int hf_s1ap_MMEConfigurationTransfer_PDU = -1; /* MMEConfigurationTransfer */ static int hf_s1ap_PrivateMessage_PDU = -1; /* PrivateMessage */ static int hf_s1ap_S1AP_PDU_PDU = -1; /* S1AP_PDU */ static int hf_s1ap_local = -1; /* INTEGER_0_65535 */ @@ -434,7 +459,7 @@ static int hf_s1ap_ProtocolExtensionContainer_item = -1; /* ProtocolExtensionFi static int hf_s1ap_ext_id = -1; /* ProtocolExtensionID */ static int hf_s1ap_extensionValue = -1; /* T_extensionValue */ static int hf_s1ap_PrivateIE_Container_item = -1; /* PrivateIE_Field */ -static int hf_s1ap_id_01 = -1; /* PrivateIE_ID */ +static int hf_s1ap_private_id = -1; /* PrivateIE_ID */ static int hf_s1ap_value = -1; /* T_value */ static int hf_s1ap_priorityLevel = -1; /* PriorityLevel */ static int hf_s1ap_pre_emptionCapability = -1; /* Pre_emptionCapability */ @@ -459,6 +484,7 @@ static int hf_s1ap_eCGI = -1; /* EUTRAN_CGI */ static int hf_s1ap_cdma2000OneXMEID = -1; /* Cdma2000OneXMEID */ static int hf_s1ap_cdma2000OneXMSI = -1; /* Cdma2000OneXMSI */ static int hf_s1ap_cdma2000OneXPilot = -1; /* Cdma2000OneXPilot */ +static int hf_s1ap_cell_Size = -1; /* Cell_Size */ static int hf_s1ap_pLMNidentity = -1; /* PLMNidentity */ static int hf_s1ap_lAC = -1; /* LAC */ static int hf_s1ap_cI = -1; /* CI */ @@ -486,6 +512,7 @@ static int hf_s1ap_homeENB_ID = -1; /* BIT_STRING_SIZE_28 */ static int hf_s1ap_lAI = -1; /* LAI */ static int hf_s1ap_eNB_ID = -1; /* ENB_ID */ static int hf_s1ap_bearers_SubjectToStatusTransferList = -1; /* Bearers_SubjectToStatusTransferList */ +static int hf_s1ap_ENBX2TLAs_item = -1; /* TransportLayerAddress */ static int hf_s1ap_EPLMNs_item = -1; /* PLMNidentity */ static int hf_s1ap_cell_ID = -1; /* CellIdentity */ static int hf_s1ap_ForbiddenTAs_item = -1; /* ForbiddenTAs_Item */ @@ -506,14 +533,13 @@ static int hf_s1ap_equivalentPLMNs = -1; /* EPLMNs */ static int hf_s1ap_forbiddenTAs = -1; /* ForbiddenTAs */ static int hf_s1ap_forbiddenLAs = -1; /* ForbiddenLAs */ static int hf_s1ap_forbiddenInterRATs = -1; /* ForbiddenInterRATs */ -static int hf_s1ap_InterfacesToTraceList_item = -1; /* InterfacesToTraceItem */ -static int hf_s1ap_interfaceType = -1; /* InterfaceType */ -static int hf_s1ap_traceDepth = -1; /* TraceDepth */ static int hf_s1ap_e_UTRAN_Cell = -1; /* LastVisitedEUTRANCellInformation */ static int hf_s1ap_uTRAN_Cell = -1; /* LastVisitedUTRANCellInformation */ +static int hf_s1ap_gERAN_Cell = -1; /* LastVisitedGERANCellInformation */ static int hf_s1ap_global_Cell_ID = -1; /* EUTRAN_CGI */ static int hf_s1ap_cellType = -1; /* CellType */ static int hf_s1ap_time_UE_StayedInCell = -1; /* Time_UE_StayedInCell */ +static int hf_s1ap_undefined = -1; /* NULL */ static int hf_s1ap_overloadAction = -1; /* OverloadAction */ static int hf_s1ap_eventType = -1; /* EventType */ static int hf_s1ap_reportArea = -1; /* ReportArea */ @@ -527,34 +553,45 @@ static int hf_s1ap_cause = -1; /* Cause */ static int hf_s1ap_qCI = -1; /* QCI */ static int hf_s1ap_allocationRetentionPriority = -1; /* AllocationAndRetentionPriority */ static int hf_s1ap_gbrQosInformation = -1; /* GBR_QosInformation */ -static int hf_s1ap_nexthopchainingcount = -1; /* SecurityKey */ -static int hf_s1ap_nexthopparameter = -1; /* BIT_STRING_SIZE_3 */ +static int hf_s1ap_nextHopParameter = -1; /* INTEGER_0_7 */ +static int hf_s1ap_nextHopChainingCount = -1; /* SecurityKey */ +static int hf_s1ap_sONInformationRequest = -1; /* SONInformationRequest */ +static int hf_s1ap_sONInformationReply = -1; /* SONInformationReply */ +static int hf_s1ap_x2TNLConfigurationInfo = -1; /* X2TNLConfigurationInfo */ +static int hf_s1ap_targeteNB_ID = -1; /* TargeteNB_ID */ +static int hf_s1ap_sourceeNB_ID = -1; /* SourceeNB_ID */ +static int hf_s1ap_sONInformation = -1; /* SONInformation */ +static int hf_s1ap_global_ENB_ID = -1; /* Global_ENB_ID */ +static int hf_s1ap_selected_TAI = -1; /* TAI */ static int hf_s1ap_rRC_Container = -1; /* RRC_Container */ static int hf_s1ap_e_RABInformationList = -1; /* E_RABInformationList */ static int hf_s1ap_targetCell_ID = -1; /* EUTRAN_CGI */ static int hf_s1ap_subscriberProfileIDforRFP = -1; /* SubscriberProfileIDforRFP */ static int hf_s1ap_uE_HistoryInformation = -1; /* UE_HistoryInformation */ -static int hf_s1ap_ServedGUMMEIs_item = -1; /* GUMMEI */ +static int hf_s1ap_ServedGUMMEIs_item = -1; /* ServedGUMMEIsItem */ +static int hf_s1ap_servedPLMNs = -1; /* ServedPLMNs */ +static int hf_s1ap_servedGroupIDs = -1; /* ServedGroupIDs */ +static int hf_s1ap_servedMMECs = -1; /* ServedMMECs */ +static int hf_s1ap_ServedGroupIDs_item = -1; /* MME_Group_ID */ +static int hf_s1ap_ServedMMECs_item = -1; /* MME_Code */ static int hf_s1ap_ServedPLMNs_item = -1; /* PLMNidentity */ static int hf_s1ap_SupportedTAs_item = -1; /* SupportedTAs_Item */ static int hf_s1ap_tAC = -1; /* TAC */ static int hf_s1ap_broadcastPLMNs = -1; /* BPLMNs */ static int hf_s1ap_mMEC = -1; /* MME_Code */ -static int hf_s1ap_m_TMSI = -1; /* M_TMSI */ static int hf_s1ap_TAIListforWarning_item = -1; /* TAI */ static int hf_s1ap_TAI_Broadcast_item = -1; /* TAI_Broadcast_Item */ static int hf_s1ap_tAI = -1; /* TAI */ static int hf_s1ap_completedCellinTAI = -1; /* CompletedCellinTAI */ static int hf_s1ap_CompletedCellinTAI_item = -1; /* CompletedCellinTAI_Item */ -static int hf_s1ap_targeteNB_ID = -1; /* TargeteNB_ID */ static int hf_s1ap_targetRNC_ID = -1; /* TargetRNC_ID */ static int hf_s1ap_cGI = -1; /* CGI */ -static int hf_s1ap_global_ENB_ID = -1; /* Global_ENB_ID */ -static int hf_s1ap_selected_TAI = -1; /* TAI */ static int hf_s1ap_rNC_ID = -1; /* RNC_ID */ static int hf_s1ap_extendedRNC_ID = -1; /* ExtendedRNC_ID */ -static int hf_s1ap_traceReference = -1; /* TraceReference */ -static int hf_s1ap_interfacesToTraceList = -1; /* InterfacesToTraceList */ +static int hf_s1ap_e_UTRAN_Trace_ID = -1; /* E_UTRAN_Trace_ID */ +static int hf_s1ap_interfacesToTrace = -1; /* InterfacesToTrace */ +static int hf_s1ap_traceDepth = -1; /* TraceDepth */ +static int hf_s1ap_traceCollectionEntityIPAddress = -1; /* TransportLayerAddress */ static int hf_s1ap_uEaggregateMaximumBitRateDL = -1; /* BitRate */ static int hf_s1ap_uEaggregateMaximumBitRateUL = -1; /* BitRate */ static int hf_s1ap_uE_S1AP_ID_pair = -1; /* UE_S1AP_ID_pair */ @@ -568,6 +605,7 @@ static int hf_s1ap_integrityProtectionAlgorithms = -1; /* IntegrityProtectionAl static int hf_s1ap_cellIDList = -1; /* ECGIList */ static int hf_s1ap_trackingAreaListforWarning = -1; /* TAIListforWarning */ static int hf_s1ap_emergencyAreaIDList = -1; /* EmergencyAreaIDList */ +static int hf_s1ap_eNBX2TransportLayerAddresses = -1; /* ENBX2TLAs */ static int hf_s1ap_protocolIEs = -1; /* ProtocolIE_Container */ static int hf_s1ap_dL_transportLayerAddress = -1; /* TransportLayerAddress */ static int hf_s1ap_dL_gTP_TEID = -1; /* GTP_TEID */ @@ -601,10 +639,11 @@ static int hf_s1ap_successfulOutcome_value = -1; /* SuccessfulOutcome_value */ static int hf_s1ap_unsuccessfulOutcome_value = -1; /* UnsuccessfulOutcome_value */ /*--- End of included file: packet-s1ap-hf.c ---*/ -#line 70 "packet-s1ap-template.c" +#line 72 "packet-s1ap-template.c" /* Initialize the subtree pointers */ static int ett_s1ap = -1; +static int ett_s1ap_TransportLayerAddress = -1; /*--- Included file: packet-s1ap-ett.c ---*/ @@ -626,6 +665,7 @@ static gint ett_s1ap_Cause = -1; static gint ett_s1ap_CellID_Broadcast = -1; static gint ett_s1ap_CellID_Broadcast_Item = -1; static gint ett_s1ap_Cdma2000OneXSRVCCInfo = -1; +static gint ett_s1ap_CellType = -1; static gint ett_s1ap_CGI = -1; static gint ett_s1ap_CSG_IdList = -1; static gint ett_s1ap_CSG_IdList_Item = -1; @@ -643,6 +683,7 @@ static gint ett_s1ap_ENB_ID = -1; static gint ett_s1ap_GERAN_Cell_ID = -1; static gint ett_s1ap_Global_ENB_ID = -1; static gint ett_s1ap_ENB_StatusTransfer_TransparentContainer = -1; +static gint ett_s1ap_ENBX2TLAs = -1; static gint ett_s1ap_EPLMNs = -1; static gint ett_s1ap_EUTRAN_CGI = -1; static gint ett_s1ap_ForbiddenTAs = -1; @@ -654,11 +695,10 @@ static gint ett_s1ap_ForbiddenLACs = -1; static gint ett_s1ap_GBR_QosInformation = -1; static gint ett_s1ap_GUMMEI = -1; static gint ett_s1ap_HandoverRestrictionList = -1; -static gint ett_s1ap_InterfacesToTraceList = -1; -static gint ett_s1ap_InterfacesToTraceItem = -1; static gint ett_s1ap_LAI = -1; static gint ett_s1ap_LastVisitedCell_Item = -1; static gint ett_s1ap_LastVisitedEUTRANCellInformation = -1; +static gint ett_s1ap_LastVisitedGERANCellInformation = -1; static gint ett_s1ap_OverloadResponse = -1; static gint ett_s1ap_RequestType = -1; static gint ett_s1ap_RIMTransfer = -1; @@ -669,8 +709,15 @@ static gint ett_s1ap_E_RABList = -1; static gint ett_s1ap_E_RABItem = -1; static gint ett_s1ap_E_RABLevelQoSParameters = -1; static gint ett_s1ap_SecurityContext = -1; -static gint ett_s1ap_SourceeNodeB_ToTargeteNodeB_TransparentContainer = -1; +static gint ett_s1ap_SONInformation = -1; +static gint ett_s1ap_SONInformationReply = -1; +static gint ett_s1ap_SONConfigurationTransfer = -1; +static gint ett_s1ap_SourceeNB_ID = -1; +static gint ett_s1ap_SourceeNB_ToTargeteNB_TransparentContainer = -1; static gint ett_s1ap_ServedGUMMEIs = -1; +static gint ett_s1ap_ServedGUMMEIsItem = -1; +static gint ett_s1ap_ServedGroupIDs = -1; +static gint ett_s1ap_ServedMMECs = -1; static gint ett_s1ap_ServedPLMNs = -1; static gint ett_s1ap_SupportedTAs = -1; static gint ett_s1ap_SupportedTAs_Item = -1; @@ -684,7 +731,7 @@ static gint ett_s1ap_CompletedCellinTAI_Item = -1; static gint ett_s1ap_TargetID = -1; static gint ett_s1ap_TargeteNB_ID = -1; static gint ett_s1ap_TargetRNC_ID = -1; -static gint ett_s1ap_TargeteNodeB_ToSourceeNodeB_TransparentContainer = -1; +static gint ett_s1ap_TargeteNB_ToSourceeNB_TransparentContainer = -1; static gint ett_s1ap_TraceActivation = -1; static gint ett_s1ap_UEAggregateMaximumBitrate = -1; static gint ett_s1ap_UE_S1AP_IDs = -1; @@ -694,6 +741,7 @@ static gint ett_s1ap_UE_HistoryInformation = -1; static gint ett_s1ap_UEPagingID = -1; static gint ett_s1ap_UESecurityCapabilities = -1; static gint ett_s1ap_WarningAreaList = -1; +static gint ett_s1ap_X2TNLConfigurationInfo = -1; static gint ett_s1ap_HandoverRequired = -1; static gint ett_s1ap_HandoverCommand = -1; static gint ett_s1ap_E_RABDataForwardingItem = -1; @@ -772,6 +820,7 @@ static gint ett_s1ap_MMEStatusTransfer = -1; static gint ett_s1ap_TraceStart = -1; static gint ett_s1ap_TraceFailureIndication = -1; static gint ett_s1ap_DeactivateTrace = -1; +static gint ett_s1ap_CellTrafficTrace = -1; static gint ett_s1ap_LocationReportingControl = -1; static gint ett_s1ap_LocationReportingFailureIndication = -1; static gint ett_s1ap_LocationReport = -1; @@ -782,6 +831,8 @@ static gint ett_s1ap_WriteReplaceWarningResponse = -1; static gint ett_s1ap_ENBDirectInformationTransfer = -1; static gint ett_s1ap_Inter_SystemInformationTransferType = -1; static gint ett_s1ap_MMEDirectInformationTransfer = -1; +static gint ett_s1ap_ENBConfigurationTransfer = -1; +static gint ett_s1ap_MMEConfigurationTransfer = -1; static gint ett_s1ap_PrivateMessage = -1; static gint ett_s1ap_S1AP_PDU = -1; static gint ett_s1ap_InitiatingMessage = -1; @@ -789,7 +840,7 @@ static gint ett_s1ap_SuccessfulOutcome = -1; static gint ett_s1ap_UnsuccessfulOutcome = -1; /*--- End of included file: packet-s1ap-ett.c ---*/ -#line 75 "packet-s1ap-template.c" +#line 78 "packet-s1ap-template.c" /* Global variables */ static guint32 ProcedureCode; @@ -936,6 +987,9 @@ static const value_string s1ap_ProcedureCode_vals[] = { { id_eNBDirectInformationTransfer, "id-eNBDirectInformationTransfer" }, { id_MMEDirectInformationTransfer, "id-MMEDirectInformationTransfer" }, { id_PrivateMessage, "id-PrivateMessage" }, + { id_eNBConfigurationTransfer, "id-eNBConfigurationTransfer" }, + { id_MMEConfigurationTransfer, "id-MMEConfigurationTransfer" }, + { id_CellTrafficTrace, "id-CellTrafficTrace" }, { 0, NULL } }; @@ -1035,7 +1089,7 @@ static const value_string s1ap_ProtocolIE_ID_vals[] = { { id_UEIdentityIndexValue, "id-UEIdentityIndexValue" }, { id_cdma2000HOStatus, "id-cdma2000HOStatus" }, { id_cdma2000HORequiredIndication, "id-cdma2000HORequiredIndication" }, - { id_TraceReference, "id-TraceReference" }, + { id_E_UTRAN_Trace_ID, "id-E-UTRAN-Trace-ID" }, { id_RelativeMMECapacity, "id-RelativeMMECapacity" }, { id_SourceMME_UE_S1AP_ID, "id-SourceMME-UE-S1AP-ID" }, { id_Bearers_SubjectToStatusTransfer_Item, "id-Bearers-SubjectToStatusTransfer-Item" }, @@ -1078,6 +1132,15 @@ static const value_string s1ap_ProtocolIE_ID_vals[] = { { id_NAS_DownlinkCount, "id-NAS-DownlinkCount" }, { id_CSG_Id, "id-CSG-Id" }, { id_CSG_IdList, "id-CSG-IdList" }, + { id_SONConfigurationTransferECT, "id-SONConfigurationTransferECT" }, + { id_SONConfigurationTransferMCT, "id-SONConfigurationTransferMCT" }, + { id_TraceCollectionEntityIPAddress, "id-TraceCollectionEntityIPAddress" }, + { id_MSClassmark2, "id-MSClassmark2" }, + { id_MSClassmark3, "id-MSClassmark3" }, + { id_RRC_Establishment_Cause, "id-RRC-Establishment-Cause" }, + { id_NASSecurityParametersfromE_UTRAN, "id-NASSecurityParametersfromE-UTRAN" }, + { id_NASSecurityParameterstoE_UTRAN, "id-NASSecurityParameterstoE-UTRAN" }, + { id_DefaultPagingDRX, "id-DefaultPagingDRX" }, { 0, NULL } }; @@ -1232,7 +1295,7 @@ dissect_s1ap_T_value(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr static const per_sequence_t PrivateIE_Field_sequence[] = { - { &hf_s1ap_id_01 , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_PrivateIE_ID }, + { &hf_s1ap_private_id , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_PrivateIE_ID }, { &hf_s1ap_criticality , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_Criticality }, { &hf_s1ap_value , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_T_value }, { NULL, 0, 0, NULL } @@ -1375,6 +1438,7 @@ dissect_s1ap_HFN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_ static const per_sequence_t COUNTvalue_sequence[] = { { &hf_s1ap_pDCP_SN , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_PDCP_SN }, { &hf_s1ap_hFN , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_HFN }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, { NULL, 0, 0, NULL } }; @@ -1488,6 +1552,7 @@ dissect_s1ap_EUTRAN_CGI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, static const per_sequence_t CellID_Broadcast_Item_sequence[] = { { &hf_s1ap_eCGI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_EUTRAN_CGI }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, { NULL, 0, 0, NULL } }; @@ -1525,9 +1590,9 @@ dissect_s1ap_TAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_ static const per_sequence_t TAI_sequence[] = { - { &hf_s1ap_pLMNidentity , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_PLMNidentity }, - { &hf_s1ap_tAC , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_TAC }, - { &hf_s1ap_iE_Extensions , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { &hf_s1ap_pLMNidentity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_PLMNidentity }, + { &hf_s1ap_tAC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_TAC }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, { NULL, 0, 0, NULL } }; @@ -1542,6 +1607,7 @@ dissect_s1ap_TAI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_ static const per_sequence_t CompletedCellinTAI_Item_sequence[] = { { &hf_s1ap_eCGI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_EUTRAN_CGI }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, { NULL, 0, 0, NULL } }; @@ -1562,15 +1628,16 @@ static int dissect_s1ap_CompletedCellinTAI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, ett_s1ap_CompletedCellinTAI, CompletedCellinTAI_sequence_of, - 0, maxnoofCellinTAI); + 1, maxnoofCellinTAI); return offset; } static const per_sequence_t TAI_Broadcast_Item_sequence[] = { - { &hf_s1ap_tAI , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_TAI }, - { &hf_s1ap_completedCellinTAI, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_CompletedCellinTAI }, + { &hf_s1ap_tAI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_TAI }, + { &hf_s1ap_completedCellinTAI, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_CompletedCellinTAI }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, { NULL, 0, 0, NULL } }; @@ -1601,7 +1668,7 @@ dissect_s1ap_TAI_Broadcast(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ static int dissect_s1ap_EmergencyAreaID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, - 2, 2, FALSE, NULL); + 3, 3, FALSE, NULL); return offset; } @@ -1609,6 +1676,7 @@ dissect_s1ap_EmergencyAreaID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static const per_sequence_t CompletedCellinEAI_Item_sequence[] = { { &hf_s1ap_eCGI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_EUTRAN_CGI }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, { NULL, 0, 0, NULL } }; @@ -1636,8 +1704,9 @@ dissect_s1ap_CompletedCellinEAI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *a static const per_sequence_t EmergencyAreaID_Broadcast_Item_sequence[] = { - { &hf_s1ap_emergencyAreaID, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_EmergencyAreaID }, - { &hf_s1ap_completedCellinEAI, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_CompletedCellinEAI }, + { &hf_s1ap_emergencyAreaID, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_EmergencyAreaID }, + { &hf_s1ap_completedCellinEAI, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_CompletedCellinEAI }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, { NULL, 0, 0, NULL } }; @@ -1668,6 +1737,7 @@ static const per_sequence_t BroadcastCompletedAreaList_sequence[] = { { &hf_s1ap_cellID_Broadcast, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_CellID_Broadcast }, { &hf_s1ap_tAI_Broadcast , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_TAI_Broadcast }, { &hf_s1ap_emergencyAreaID_Broadcast, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_EmergencyAreaID_Broadcast }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, { NULL, 0, 0, NULL } }; @@ -1682,33 +1752,41 @@ dissect_s1ap_BroadcastCompletedAreaList(tvbuff_t *tvb _U_, int offset _U_, asn1_ static const value_string s1ap_CauseRadioNetwork_vals[] = { { 0, "unspecified" }, - { 1, "handover-triggered" }, - { 2, "tx2relocoverall-expiry" }, - { 3, "successful-handover" }, - { 4, "release-due-to-eutran-generated-reason" }, - { 5, "handover-cancelled" }, - { 6, "partial-handover" }, - { 7, "ho-failure-in-target-EPC-eNB-or-target-system" }, - { 8, "ho-target-not-allowed" }, - { 9, "tS1relocoverall-expiry" }, - { 10, "tS1relocprep-expiry" }, - { 11, "cell-not-available" }, - { 12, "unknown-targetID" }, - { 13, "no-radio-resources-available-in-target-cell" }, - { 14, "unknown-mme-ue-s1ap-id" }, - { 15, "unknown-enb-ue-s1ap-id" }, - { 16, "unknown-pair-ue-s1ap-id" }, - { 17, "handover-desirable-for-radio-reason" }, - { 18, "time-critical-handover" }, - { 19, "resource-optimisation-handover" }, - { 20, "reduce-load-in-serving-cell" }, - { 21, "user-inactivity" }, - { 22, "radio-connection-with-ue-lost" }, - { 23, "load-balancing-tau-required" }, - { 24, "cs-fallback-triggered" }, - { 25, "ue-not-available-for-ps-service" }, - { 26, "radio-resources-not-available" }, - { 27, "failure-in-radio-interface-procedure" }, + { 1, "tx2relocoverall-expiry" }, + { 2, "successful-handover" }, + { 3, "release-due-to-eutran-generated-reason" }, + { 4, "handover-cancelled" }, + { 5, "partial-handover" }, + { 6, "ho-failure-in-target-EPC-eNB-or-target-system" }, + { 7, "ho-target-not-allowed" }, + { 8, "tS1relocoverall-expiry" }, + { 9, "tS1relocprep-expiry" }, + { 10, "cell-not-available" }, + { 11, "unknown-targetID" }, + { 12, "no-radio-resources-available-in-target-cell" }, + { 13, "unknown-mme-ue-s1ap-id" }, + { 14, "unknown-enb-ue-s1ap-id" }, + { 15, "unknown-pair-ue-s1ap-id" }, + { 16, "handover-desirable-for-radio-reason" }, + { 17, "time-critical-handover" }, + { 18, "resource-optimisation-handover" }, + { 19, "reduce-load-in-serving-cell" }, + { 20, "user-inactivity" }, + { 21, "radio-connection-with-ue-lost" }, + { 22, "load-balancing-tau-required" }, + { 23, "cs-fallback-triggered" }, + { 24, "ue-not-available-for-ps-service" }, + { 25, "radio-resources-not-available" }, + { 26, "failure-in-radio-interface-procedure" }, + { 27, "invalid-qos-combination" }, + { 28, "interrat-redirection" }, + { 29, "interaction-with-other-procedure" }, + { 30, "unknown-E-RAB-ID" }, + { 31, "multiple-E-RAB-ID-instances" }, + { 32, "encryption-and-or-integrity-protection-algorithms-not-supported" }, + { 33, "s1-intra-system-handover-triggered" }, + { 34, "s1-inter-system-handover-triggered" }, + { 35, "x2-handover-triggered" }, { 0, NULL } }; @@ -1716,7 +1794,7 @@ static const value_string s1ap_CauseRadioNetwork_vals[] = { static int dissect_s1ap_CauseRadioNetwork(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 28, NULL, TRUE, 0, NULL); + 36, NULL, TRUE, 0, NULL); return offset; } @@ -1949,16 +2027,34 @@ dissect_s1ap_Cdma2000OneXRAND(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *act } -static const value_string s1ap_CellType_vals[] = { - { 0, "ffs" }, +static const value_string s1ap_Cell_Size_vals[] = { + { 0, "verysmall" }, + { 1, "small" }, + { 2, "medium" }, + { 3, "large" }, { 0, NULL } }; static int -dissect_s1ap_CellType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_s1ap_Cell_Size(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 1, NULL, TRUE, 0, NULL); + 4, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t CellType_sequence[] = { + { &hf_s1ap_cell_Size , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_Cell_Size }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_CellType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_CellType, CellType_sequence); return offset; } @@ -1995,10 +2091,11 @@ dissect_s1ap_RAC(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_ static const per_sequence_t CGI_sequence[] = { - { &hf_s1ap_pLMNidentity , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_PLMNidentity }, - { &hf_s1ap_lAC , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_LAC }, - { &hf_s1ap_cI , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_CI }, - { &hf_s1ap_rAC , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_s1ap_RAC }, + { &hf_s1ap_pLMNidentity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_PLMNidentity }, + { &hf_s1ap_lAC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_LAC }, + { &hf_s1ap_cI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_CI }, + { &hf_s1ap_rAC , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_RAC }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, { NULL, 0, 0, NULL } }; @@ -2012,8 +2109,8 @@ dissect_s1ap_CGI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_ static const value_string s1ap_CNDomain_vals[] = { - { 0, "cs" }, - { 1, "ps" }, + { 0, "ps" }, + { 1, "cs" }, { 0, NULL } }; @@ -2046,7 +2143,7 @@ dissect_s1ap_CSFallbackIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * static int dissect_s1ap_CSG_Id(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, - 28, 28, FALSE, NULL); + 27, 27, FALSE, NULL); return offset; } @@ -2054,6 +2151,7 @@ dissect_s1ap_CSG_Id(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro static const per_sequence_t CSG_IdList_Item_sequence[] = { { &hf_s1ap_cSG_Id , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_CSG_Id }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, { NULL, 0, 0, NULL } }; @@ -2256,9 +2354,9 @@ dissect_s1ap_ENB_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro static const per_sequence_t LAI_sequence[] = { - { &hf_s1ap_pLMNidentity , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_PLMNidentity }, - { &hf_s1ap_lAC , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_LAC }, - { &hf_s1ap_iE_Extensions , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { &hf_s1ap_pLMNidentity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_PLMNidentity }, + { &hf_s1ap_lAC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_LAC }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, { NULL, 0, 0, NULL } }; @@ -2305,7 +2403,7 @@ dissect_s1ap_Global_ENB_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ static const per_sequence_t ENB_StatusTransfer_TransparentContainer_sequence[] = { - { &hf_s1ap_bearers_SubjectToStatusTransferList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_Bearers_SubjectToStatusTransferList }, + { &hf_s1ap_bearers_SubjectToStatusTransferList, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_Bearers_SubjectToStatusTransferList }, { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, { NULL, 0, 0, NULL } }; @@ -2364,6 +2462,52 @@ dissect_s1ap_ENBname(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr static int +dissect_s1ap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +#line 203 "s1ap.cnf" + tvbuff_t *parameter_tvb=NULL; + proto_tree *subtree; + gint tvb_len; + + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 1, 160, TRUE, ¶meter_tvb); + + if (!parameter_tvb) + return offset; + + /* Get the length */ + tvb_len = tvb_length(tvb); + subtree = proto_item_add_subtree(actx->created_item, ett_s1ap_TransportLayerAddress); + if (tvb_len==4){ + /* IPv4 */ + proto_tree_add_item(subtree, hf_s1ap_transportLayerAddressIPv4, tvb, 0, tvb_len, FALSE); + } + if (tvb_len==16){ + /* IPv6 */ + proto_tree_add_item(subtree, hf_s1ap_transportLayerAddressIPv6, tvb, 0, tvb_len, FALSE); + } + + + + return offset; +} + + +static const per_sequence_t ENBX2TLAs_sequence_of[1] = { + { &hf_s1ap_ENBX2TLAs_item , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_TransportLayerAddress }, +}; + +static int +dissect_s1ap_ENBX2TLAs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_s1ap_ENBX2TLAs, ENBX2TLAs_sequence_of, + 1, maxnoofeNBX2TLAs); + + return offset; +} + + + +static int dissect_s1ap_EncryptionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, 16, 16, TRUE, NULL); @@ -2417,6 +2561,7 @@ static const value_string s1ap_ForbiddenInterRATs_vals[] = { { 0, "all" }, { 1, "geran" }, { 2, "utran" }, + { 3, "cdma2000" }, { 0, NULL } }; @@ -2424,7 +2569,7 @@ static const value_string s1ap_ForbiddenInterRATs_vals[] = { static int dissect_s1ap_ForbiddenInterRATs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 3, NULL, TRUE, 0, NULL); + 4, NULL, TRUE, 0, NULL); return offset; } @@ -2445,8 +2590,9 @@ dissect_s1ap_ForbiddenTACs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ static const per_sequence_t ForbiddenTAs_Item_sequence[] = { - { &hf_s1ap_pLMN_Identity , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_PLMNidentity }, - { &hf_s1ap_forbiddenTACs , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_ForbiddenTACs }, + { &hf_s1ap_pLMN_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_PLMNidentity }, + { &hf_s1ap_forbiddenTACs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ForbiddenTACs }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, { NULL, 0, 0, NULL } }; @@ -2488,8 +2634,9 @@ dissect_s1ap_ForbiddenLACs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ static const per_sequence_t ForbiddenLAs_Item_sequence[] = { - { &hf_s1ap_pLMN_Identity , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_PLMNidentity }, - { &hf_s1ap_forbiddenLACs , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_ForbiddenLACs }, + { &hf_s1ap_pLMN_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_PLMNidentity }, + { &hf_s1ap_forbiddenLACs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ForbiddenLACs }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, { NULL, 0, 0, NULL } }; @@ -2639,68 +2786,48 @@ dissect_s1ap_IntegrityProtectionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, as } -static const value_string s1ap_InterfaceType_vals[] = { - { 0, "s1" }, - { 1, "x2" }, - { 2, "uu" }, - { 0, NULL } -}; - static int -dissect_s1ap_InterfaceType(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 3, NULL, TRUE, 0, NULL); +dissect_s1ap_InterfacesToTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 8, 8, FALSE, NULL); return offset; } -static const value_string s1ap_TraceDepth_vals[] = { - { 0, "minimum" }, - { 1, "medium" }, - { 2, "maximum" }, - { 3, "vendorMinimum" }, - { 4, "vendorMedium" }, - { 5, "vendorMaximum" }, - { 0, NULL } -}; - static int -dissect_s1ap_TraceDepth(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, - 6, NULL, TRUE, 0, NULL); +dissect_s1ap_Time_UE_StayedInCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 4095U, NULL, FALSE); return offset; } -static const per_sequence_t InterfacesToTraceItem_sequence[] = { - { &hf_s1ap_interfaceType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_InterfaceType }, - { &hf_s1ap_traceDepth , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_TraceDepth }, +static const per_sequence_t LastVisitedEUTRANCellInformation_sequence[] = { + { &hf_s1ap_global_Cell_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_EUTRAN_CGI }, + { &hf_s1ap_cellType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_CellType }, + { &hf_s1ap_time_UE_StayedInCell, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_Time_UE_StayedInCell }, { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, { NULL, 0, 0, NULL } }; static int -dissect_s1ap_InterfacesToTraceItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_s1ap_LastVisitedEUTRANCellInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_s1ap_InterfacesToTraceItem, InterfacesToTraceItem_sequence); + ett_s1ap_LastVisitedEUTRANCellInformation, LastVisitedEUTRANCellInformation_sequence); return offset; } -static const per_sequence_t InterfacesToTraceList_sequence_of[1] = { - { &hf_s1ap_InterfacesToTraceList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_InterfacesToTraceItem }, -}; static int -dissect_s1ap_InterfacesToTraceList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, - ett_s1ap_InterfacesToTraceList, InterfacesToTraceList_sequence_of, - 1, maxNrOfInterfaces); +dissect_s1ap_LastVisitedUTRANCellInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, NULL); return offset; } @@ -2708,36 +2835,28 @@ dissect_s1ap_InterfacesToTraceList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static int -dissect_s1ap_Time_UE_StayedInCell(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, - 0U, 4095U, NULL, FALSE); +dissect_s1ap_NULL(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_null(tvb, offset, actx, tree, hf_index); return offset; } -static const per_sequence_t LastVisitedEUTRANCellInformation_sequence[] = { - { &hf_s1ap_global_Cell_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_EUTRAN_CGI }, - { &hf_s1ap_cellType , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_CellType }, - { &hf_s1ap_time_UE_StayedInCell, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_Time_UE_StayedInCell }, - { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, - { NULL, 0, 0, NULL } +static const value_string s1ap_LastVisitedGERANCellInformation_vals[] = { + { 0, "undefined" }, + { 0, NULL } }; -static int -dissect_s1ap_LastVisitedEUTRANCellInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_s1ap_LastVisitedEUTRANCellInformation, LastVisitedEUTRANCellInformation_sequence); - - return offset; -} - - +static const per_choice_t LastVisitedGERANCellInformation_choice[] = { + { 0, &hf_s1ap_undefined , ASN1_EXTENSION_ROOT , dissect_s1ap_NULL }, + { 0, NULL, 0, NULL } +}; static int -dissect_s1ap_LastVisitedUTRANCellInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, - NO_BOUND, NO_BOUND, FALSE, NULL); +dissect_s1ap_LastVisitedGERANCellInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_s1ap_LastVisitedGERANCellInformation, LastVisitedGERANCellInformation_choice, + NULL); return offset; } @@ -2746,12 +2865,14 @@ dissect_s1ap_LastVisitedUTRANCellInformation(tvbuff_t *tvb _U_, int offset _U_, static const value_string s1ap_LastVisitedCell_Item_vals[] = { { 0, "e-UTRAN-Cell" }, { 1, "uTRAN-Cell" }, + { 2, "gERAN-Cell" }, { 0, NULL } }; static const per_choice_t LastVisitedCell_Item_choice[] = { { 0, &hf_s1ap_e_UTRAN_Cell , ASN1_EXTENSION_ROOT , dissect_s1ap_LastVisitedEUTRANCellInformation }, { 1, &hf_s1ap_uTRAN_Cell , ASN1_EXTENSION_ROOT , dissect_s1ap_LastVisitedUTRANCellInformation }, + { 2, &hf_s1ap_gERAN_Cell , ASN1_EXTENSION_ROOT , dissect_s1ap_LastVisitedGERANCellInformation }, { 0, NULL, 0, NULL } }; @@ -2767,9 +2888,19 @@ dissect_s1ap_LastVisitedCell_Item(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t static int -dissect_s1ap_MessageIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_s1ap_L3_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, - 16, 16, FALSE, NULL); + NO_BOUND, NO_BOUND, FALSE, NULL); + + return offset; +} + + + +static int +dissect_s1ap_MessageIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, + 16, 16, FALSE, NULL); return offset; } @@ -2778,8 +2909,8 @@ dissect_s1ap_MessageIdentifier(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac static int dissect_s1ap_MMEname(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, - NO_BOUND, NO_BOUND, FALSE, NULL); + offset = dissect_per_PrintableString(tvb, offset, actx, tree, hf_index, + 1, 150); return offset; } @@ -2807,6 +2938,26 @@ dissect_s1ap_M_TMSI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pro static int +dissect_s1ap_MSClassmark2(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, NULL); + + return offset; +} + + + +static int +dissect_s1ap_MSClassmark3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, NULL); + + return offset; +} + + + +static int dissect_s1ap_NAS_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { #line 194 "s1ap.cnf" @@ -2827,6 +2978,26 @@ dissect_s1ap_NAS_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, pr static int +dissect_s1ap_NASSecurityParametersfromE_UTRAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, NULL); + + return offset; +} + + + +static int +dissect_s1ap_NASSecurityParameterstoE_UTRAN(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, NULL); + + return offset; +} + + + +static int dissect_s1ap_NumberofBroadcastRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, 0U, 65535U, NULL, FALSE); @@ -2845,6 +3016,16 @@ dissect_s1ap_NumberofBroadcast(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac } + +static int +dissect_s1ap_OldBSS_ToNewBSS_Information(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + NO_BOUND, NO_BOUND, FALSE, NULL); + + return offset; +} + + static const value_string s1ap_OverloadAction_vals[] = { { 0, "reject-non-emergency-mo-dt" }, { 1, "reject-all-rrc-cr-signalling" }, @@ -2904,7 +3085,7 @@ dissect_s1ap_PagingDRX(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, static int dissect_s1ap_QCI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, - 1U, 256U, NULL, FALSE); + 0U, 255U, NULL, FALSE); return offset; } @@ -2920,11 +3101,16 @@ dissect_s1ap_RelativeMMECapacity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * } +static const value_string s1ap_ReportArea_vals[] = { + { 0, "ecgi" }, + { 0, NULL } +}; + static int dissect_s1ap_ReportArea(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, - NO_BOUND, NO_BOUND, FALSE, NULL); + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, TRUE, 0, NULL); return offset; } @@ -3022,6 +3208,25 @@ dissect_s1ap_RRC_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ } +static const value_string s1ap_RRC_Establishment_Cause_vals[] = { + { 0, "emergency" }, + { 1, "highPriorityAccess" }, + { 2, "mt-Access" }, + { 3, "mo-Signalling" }, + { 4, "mo-Data" }, + { 0, NULL } +}; + + +static int +dissect_s1ap_RRC_Establishment_Cause(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 5, NULL, TRUE, 0, NULL); + + return offset; +} + + static const per_sequence_t E_RABInformationList_sequence_of[1] = { { &hf_s1ap_E_RABInformationList_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_ProtocolIE_SingleContainer }, }; @@ -3111,17 +3316,17 @@ dissect_s1ap_SecurityKey(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ static int -dissect_s1ap_BIT_STRING_SIZE_3(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, - 3, 3, FALSE, NULL); +dissect_s1ap_INTEGER_0_7(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_integer(tvb, offset, actx, tree, hf_index, + 0U, 7U, NULL, FALSE); return offset; } static const per_sequence_t SecurityContext_sequence[] = { - { &hf_s1ap_nexthopchainingcount, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_SecurityKey }, - { &hf_s1ap_nexthopparameter, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_BIT_STRING_SIZE_3 }, + { &hf_s1ap_nextHopParameter, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_INTEGER_0_7 }, + { &hf_s1ap_nextHopChainingCount, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_SecurityKey }, { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, { NULL, 0, 0, NULL } }; @@ -3145,6 +3350,122 @@ dissect_s1ap_SerialNumber(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U } +static const value_string s1ap_SONInformationRequest_vals[] = { + { 0, "x2TNL-Configuration-Info" }, + { 0, NULL } +}; + + +static int +dissect_s1ap_SONInformationRequest(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 1, NULL, TRUE, 0, NULL); + + return offset; +} + + +static const per_sequence_t X2TNLConfigurationInfo_sequence[] = { + { &hf_s1ap_eNBX2TransportLayerAddresses, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ENBX2TLAs }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_X2TNLConfigurationInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_X2TNLConfigurationInfo, X2TNLConfigurationInfo_sequence); + + return offset; +} + + +static const per_sequence_t SONInformationReply_sequence[] = { + { &hf_s1ap_x2TNLConfigurationInfo, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_X2TNLConfigurationInfo }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_SONInformationReply(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_SONInformationReply, SONInformationReply_sequence); + + return offset; +} + + +static const value_string s1ap_SONInformation_vals[] = { + { 0, "sONInformationRequest" }, + { 1, "sONInformationReply" }, + { 0, NULL } +}; + +static const per_choice_t SONInformation_choice[] = { + { 0, &hf_s1ap_sONInformationRequest, ASN1_EXTENSION_ROOT , dissect_s1ap_SONInformationRequest }, + { 1, &hf_s1ap_sONInformationReply, ASN1_EXTENSION_ROOT , dissect_s1ap_SONInformationReply }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_s1ap_SONInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_choice(tvb, offset, actx, tree, hf_index, + ett_s1ap_SONInformation, SONInformation_choice, + NULL); + + return offset; +} + + +static const per_sequence_t TargeteNB_ID_sequence[] = { + { &hf_s1ap_global_ENB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_Global_ENB_ID }, + { &hf_s1ap_selected_TAI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_TAI }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_TargeteNB_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_TargeteNB_ID, TargeteNB_ID_sequence); + + return offset; +} + + +static const per_sequence_t SourceeNB_ID_sequence[] = { + { &hf_s1ap_global_ENB_ID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_Global_ENB_ID }, + { &hf_s1ap_selected_TAI , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_TAI }, + { &hf_s1ap_iE_Extensions , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_SourceeNB_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_SourceeNB_ID, SourceeNB_ID_sequence); + + return offset; +} + + +static const per_sequence_t SONConfigurationTransfer_sequence[] = { + { &hf_s1ap_targeteNB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_TargeteNB_ID }, + { &hf_s1ap_sourceeNB_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_SourceeNB_ID }, + { &hf_s1ap_sONInformation , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_SONInformation }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_SONConfigurationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_SONConfigurationTransfer, SONConfigurationTransfer_sequence); + + return offset; +} + + static int dissect_s1ap_Source_ToTarget_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -3220,7 +3541,7 @@ dissect_s1ap_UE_HistoryInformation(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } -static const per_sequence_t SourceeNodeB_ToTargeteNodeB_TransparentContainer_sequence[] = { +static const per_sequence_t SourceeNB_ToTargeteNB_TransparentContainer_sequence[] = { { &hf_s1ap_rRC_Container , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_RRC_Container }, { &hf_s1ap_e_RABInformationList, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_E_RABInformationList }, { &hf_s1ap_targetCell_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_EUTRAN_CGI }, @@ -3231,9 +3552,9 @@ static const per_sequence_t SourceeNodeB_ToTargeteNodeB_TransparentContainer_seq }; static int -dissect_s1ap_SourceeNodeB_ToTargeteNodeB_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_s1ap_SourceeNB_ToTargeteNB_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_s1ap_SourceeNodeB_ToTargeteNodeB_TransparentContainer, SourceeNodeB_ToTargeteNodeB_TransparentContainer_sequence); + ett_s1ap_SourceeNB_ToTargeteNB_TransparentContainer, SourceeNB_ToTargeteNB_TransparentContainer_sequence); return offset; } @@ -3249,29 +3570,74 @@ dissect_s1ap_SourceRNC_ToTargetRNC_TransparentContainer(tvbuff_t *tvb _U_, int o } -static const per_sequence_t ServedGUMMEIs_sequence_of[1] = { - { &hf_s1ap_ServedGUMMEIs_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_GUMMEI }, +static const per_sequence_t ServedPLMNs_sequence_of[1] = { + { &hf_s1ap_ServedPLMNs_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_PLMNidentity }, }; static int -dissect_s1ap_ServedGUMMEIs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_s1ap_ServedPLMNs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, - ett_s1ap_ServedGUMMEIs, ServedGUMMEIs_sequence_of, - 1, maxnoofGUMMEIs); + ett_s1ap_ServedPLMNs, ServedPLMNs_sequence_of, + 1, maxnoofPLMNsPerMME); return offset; } -static const per_sequence_t ServedPLMNs_sequence_of[1] = { - { &hf_s1ap_ServedPLMNs_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_PLMNidentity }, +static const per_sequence_t ServedGroupIDs_sequence_of[1] = { + { &hf_s1ap_ServedGroupIDs_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_MME_Group_ID }, }; static int -dissect_s1ap_ServedPLMNs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_s1ap_ServedGroupIDs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, - ett_s1ap_ServedPLMNs, ServedPLMNs_sequence_of, - 1, maxnoofPLMNsPerMME); + ett_s1ap_ServedGroupIDs, ServedGroupIDs_sequence_of, + 1, maxnoofGroupIDs); + + return offset; +} + + +static const per_sequence_t ServedMMECs_sequence_of[1] = { + { &hf_s1ap_ServedMMECs_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_MME_Code }, +}; + +static int +dissect_s1ap_ServedMMECs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_s1ap_ServedMMECs, ServedMMECs_sequence_of, + 1, maxnoofMMECs); + + return offset; +} + + +static const per_sequence_t ServedGUMMEIsItem_sequence[] = { + { &hf_s1ap_servedPLMNs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ServedPLMNs }, + { &hf_s1ap_servedGroupIDs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ServedGroupIDs }, + { &hf_s1ap_servedMMECs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ServedMMECs }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_ServedGUMMEIsItem(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_ServedGUMMEIsItem, ServedGUMMEIsItem_sequence); + + return offset; +} + + +static const per_sequence_t ServedGUMMEIs_sequence_of[1] = { + { &hf_s1ap_ServedGUMMEIs_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_ServedGUMMEIsItem }, +}; + +static int +dissect_s1ap_ServedGUMMEIs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, + ett_s1ap_ServedGUMMEIs, ServedGUMMEIs_sequence_of, + 1, maxnoofRATs); return offset; } @@ -3280,6 +3646,7 @@ dissect_s1ap_ServedPLMNs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ static const per_sequence_t SupportedTAs_Item_sequence[] = { { &hf_s1ap_tAC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_TAC }, { &hf_s1ap_broadcastPLMNs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_BPLMNs }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, { NULL, 0, 0, NULL } }; @@ -3308,7 +3675,7 @@ dissect_s1ap_SupportedTAs(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U static const per_sequence_t S_TMSI_sequence[] = { { &hf_s1ap_mMEC , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_MME_Code }, - { &hf_s1ap_m_TMSI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_M_TMSI }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, { NULL, 0, 0, NULL } }; @@ -3335,27 +3702,12 @@ dissect_s1ap_TAIListforWarning(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *ac } -static const per_sequence_t TargeteNB_ID_sequence[] = { - { &hf_s1ap_global_ENB_ID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_Global_ENB_ID }, - { &hf_s1ap_selected_TAI , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_TAI }, - { &hf_s1ap_iE_Extensions , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, - { NULL, 0, 0, NULL } -}; - -static int -dissect_s1ap_TargeteNB_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_s1ap_TargeteNB_ID, TargeteNB_ID_sequence); - - return offset; -} - - static const per_sequence_t TargetRNC_ID_sequence[] = { - { &hf_s1ap_lAI , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_LAI }, - { &hf_s1ap_rAC , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_s1ap_RAC }, - { &hf_s1ap_rNC_ID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_RNC_ID }, - { &hf_s1ap_extendedRNC_ID , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_s1ap_ExtendedRNC_ID }, + { &hf_s1ap_lAI , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_LAI }, + { &hf_s1ap_rAC , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_RAC }, + { &hf_s1ap_rNC_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_RNC_ID }, + { &hf_s1ap_extendedRNC_ID , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ExtendedRNC_ID }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, { NULL, 0, 0, NULL } }; @@ -3392,16 +3744,16 @@ dissect_s1ap_TargetID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p } -static const per_sequence_t TargeteNodeB_ToSourceeNodeB_TransparentContainer_sequence[] = { +static const per_sequence_t TargeteNB_ToSourceeNB_TransparentContainer_sequence[] = { { &hf_s1ap_rRC_Container , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_RRC_Container }, { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, { NULL, 0, 0, NULL } }; static int -dissect_s1ap_TargeteNodeB_ToSourceeNodeB_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_s1ap_TargeteNB_ToSourceeNB_TransparentContainer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, - ett_s1ap_TargeteNodeB_ToSourceeNodeB_TransparentContainer, TargeteNodeB_ToSourceeNodeB_TransparentContainer_sequence); + ett_s1ap_TargeteNB_ToSourceeNB_TransparentContainer, TargeteNB_ToSourceeNB_TransparentContainer_sequence); return offset; } @@ -3459,28 +3811,40 @@ dissect_s1ap_TimeToWait(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, static int -dissect_s1ap_TransportLayerAddress(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, - 1, 160, TRUE, NULL); +dissect_s1ap_E_UTRAN_Trace_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 8, 8, FALSE, NULL); return offset; } +static const value_string s1ap_TraceDepth_vals[] = { + { 0, "minimum" }, + { 1, "medium" }, + { 2, "maximum" }, + { 3, "minimumWithoutVendorSpecificExtension" }, + { 4, "mediumWithoutVendorSpecificExtension" }, + { 5, "maximumWithoutVendorSpecificExtension" }, + { 0, NULL } +}; + static int -dissect_s1ap_TraceReference(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, - 8, 8, FALSE, NULL); +dissect_s1ap_TraceDepth(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_enumerated(tvb, offset, actx, tree, hf_index, + 6, NULL, TRUE, 0, NULL); return offset; } static const per_sequence_t TraceActivation_sequence[] = { - { &hf_s1ap_traceReference , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_TraceReference }, - { &hf_s1ap_interfacesToTraceList, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_InterfacesToTraceList }, - { &hf_s1ap_iE_Extensions , ASN1_NO_EXTENSIONS , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, + { &hf_s1ap_e_UTRAN_Trace_ID, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_E_UTRAN_Trace_ID }, + { &hf_s1ap_interfacesToTrace, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_InterfacesToTrace }, + { &hf_s1ap_traceDepth , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_TraceDepth }, + { &hf_s1ap_traceCollectionEntityIPAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_TransportLayerAddress }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, { NULL, 0, 0, NULL } }; @@ -3510,8 +3874,9 @@ dissect_s1ap_UEAggregateMaximumBitrate(tvbuff_t *tvb _U_, int offset _U_, asn1_c static const per_sequence_t UE_S1AP_ID_pair_sequence[] = { - { &hf_s1ap_mME_UE_S1AP_ID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_MME_UE_S1AP_ID }, - { &hf_s1ap_eNB_UE_S1AP_ID , ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_s1ap_ENB_UE_S1AP_ID }, + { &hf_s1ap_mME_UE_S1AP_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_MME_UE_S1AP_ID }, + { &hf_s1ap_eNB_UE_S1AP_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ENB_UE_S1AP_ID }, + { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, { NULL, 0, 0, NULL } }; @@ -3668,7 +4033,7 @@ dissect_s1ap_WarningSecurityInfo(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * static int dissect_s1ap_WarningMessageContents(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, - NO_BOUND, NO_BOUND, FALSE, NULL); + 1, 9600, FALSE, NULL); return offset; } @@ -3720,16 +4085,6 @@ dissect_s1ap_HandoverCommand(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int -dissect_s1ap_NAS_DownlinkCount(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { - offset = dissect_per_bit_string(tvb, offset, actx, tree, hf_index, - 4, 4, FALSE, NULL); - - return offset; -} - - - -static int dissect_s1ap_E_RABSubjecttoDataForwardingList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_s1ap_E_RAB_IE_ContainerList(tvb, offset, actx, tree, hf_index); @@ -4314,7 +4669,7 @@ static const per_sequence_t E_RABToBeSetupItemCtxtSUReq_sequence[] = { { &hf_s1ap_e_RABlevelQoSParameters, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_E_RABLevelQoSParameters }, { &hf_s1ap_transportLayerAddress, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_TransportLayerAddress }, { &hf_s1ap_gTP_TEID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_GTP_TEID }, - { &hf_s1ap_nAS_PDU , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_NAS_PDU }, + { &hf_s1ap_nAS_PDU , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_NAS_PDU }, { &hf_s1ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_s1ap_ProtocolExtensionContainer }, { NULL, 0, 0, NULL } }; @@ -4409,7 +4764,7 @@ static int dissect_s1ap_TAIList(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { offset = dissect_per_constrained_sequence_of(tvb, offset, actx, tree, hf_index, ett_s1ap_TAIList, TAIList_sequence_of, - 1, maxnoofTAI); + 1, maxnoofTAIs); return offset; } @@ -4915,6 +5270,20 @@ dissect_s1ap_DeactivateTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } +static const per_sequence_t CellTrafficTrace_sequence[] = { + { &hf_s1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_CellTrafficTrace(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_CellTrafficTrace, CellTrafficTrace_sequence); + + return offset; +} + + static const per_sequence_t LocationReportingControl_sequence[] = { { &hf_s1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ProtocolIE_Container }, { NULL, 0, 0, NULL } @@ -5061,6 +5430,34 @@ dissect_s1ap_MMEDirectInformationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn } +static const per_sequence_t ENBConfigurationTransfer_sequence[] = { + { &hf_s1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_ENBConfigurationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_ENBConfigurationTransfer, ENBConfigurationTransfer_sequence); + + return offset; +} + + +static const per_sequence_t MMEConfigurationTransfer_sequence[] = { + { &hf_s1ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_ProtocolIE_Container }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_s1ap_MMEConfigurationTransfer(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { + offset = dissect_per_sequence(tvb, offset, actx, tree, hf_index, + ett_s1ap_MMEConfigurationTransfer, MMEConfigurationTransfer_sequence); + + return offset; +} + + static const per_sequence_t PrivateMessage_sequence[] = { { &hf_s1ap_privateIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_s1ap_PrivateIE_Container }, { NULL, 0, 0, NULL } @@ -5399,6 +5796,22 @@ static int dissect_MME_UE_S1AP_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, offset += 7; offset >>= 3; return offset; } +static int dissect_MSClassmark2_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_MSClassmark2(tvb, offset, &asn1_ctx, tree, hf_s1ap_MSClassmark2_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_MSClassmark3_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_MSClassmark3(tvb, offset, &asn1_ctx, tree, hf_s1ap_MSClassmark3_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_NAS_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -5407,6 +5820,22 @@ static int dissect_NAS_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_ offset += 7; offset >>= 3; return offset; } +static int dissect_NASSecurityParametersfromE_UTRAN_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_NASSecurityParametersfromE_UTRAN(tvb, offset, &asn1_ctx, tree, hf_s1ap_NASSecurityParametersfromE_UTRAN_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_NASSecurityParameterstoE_UTRAN_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_NASSecurityParameterstoE_UTRAN(tvb, offset, &asn1_ctx, tree, hf_s1ap_NASSecurityParameterstoE_UTRAN_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_NumberofBroadcastRequest_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -5455,6 +5884,14 @@ static int dissect_RepetitionPeriod_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U offset += 7; offset >>= 3; return offset; } +static int dissect_RRC_Establishment_Cause_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_RRC_Establishment_Cause(tvb, offset, &asn1_ctx, tree, hf_s1ap_RRC_Establishment_Cause_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_E_RABInformationListItem_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -5503,6 +5940,14 @@ static int dissect_SerialNumber_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, p offset += 7; offset >>= 3; return offset; } +static int dissect_SONConfigurationTransfer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_SONConfigurationTransfer(tvb, offset, &asn1_ctx, tree, hf_s1ap_SONConfigurationTransfer_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_Source_ToTarget_TransparentContainer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -5599,19 +6044,19 @@ static int dissect_TimeToWait_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, pro offset += 7; offset >>= 3; return offset; } -static int dissect_TraceActivation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { +static int dissect_TransportLayerAddress_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { int offset = 0; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); - offset = dissect_s1ap_TraceActivation(tvb, offset, &asn1_ctx, tree, hf_s1ap_TraceActivation_PDU); + offset = dissect_s1ap_TransportLayerAddress(tvb, offset, &asn1_ctx, tree, hf_s1ap_TransportLayerAddress_PDU); offset += 7; offset >>= 3; return offset; } -static int dissect_TraceReference_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { +static int dissect_TraceActivation_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { int offset = 0; asn1_ctx_t asn1_ctx; asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); - offset = dissect_s1ap_TraceReference(tvb, offset, &asn1_ctx, tree, hf_s1ap_TraceReference_PDU); + offset = dissect_s1ap_TraceActivation(tvb, offset, &asn1_ctx, tree, hf_s1ap_TraceActivation_PDU); offset += 7; offset >>= 3; return offset; } @@ -5711,14 +6156,6 @@ static int dissect_HandoverCommand_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_ offset += 7; offset >>= 3; return offset; } -static int dissect_NAS_DownlinkCount_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { - int offset = 0; - asn1_ctx_t asn1_ctx; - asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); - offset = dissect_s1ap_NAS_DownlinkCount(tvb, offset, &asn1_ctx, tree, hf_s1ap_NAS_DownlinkCount_PDU); - offset += 7; offset >>= 3; - return offset; -} static int dissect_E_RABSubjecttoDataForwardingList_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -6351,6 +6788,14 @@ static int dissect_DeactivateTrace_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_ offset += 7; offset >>= 3; return offset; } +static int dissect_CellTrafficTrace_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_CellTrafficTrace(tvb, offset, &asn1_ctx, tree, hf_s1ap_CellTrafficTrace_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_LocationReportingControl_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -6431,6 +6876,22 @@ static int dissect_MMEDirectInformationTransfer_PDU(tvbuff_t *tvb _U_, packet_in offset += 7; offset >>= 3; return offset; } +static int dissect_ENBConfigurationTransfer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_ENBConfigurationTransfer(tvb, offset, &asn1_ctx, tree, hf_s1ap_ENBConfigurationTransfer_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_MMEConfigurationTransfer_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { + int offset = 0; + asn1_ctx_t asn1_ctx; + asn1_ctx_init(&asn1_ctx, ASN1_ENC_PER, TRUE, pinfo); + offset = dissect_s1ap_MMEConfigurationTransfer(tvb, offset, &asn1_ctx, tree, hf_s1ap_MMEConfigurationTransfer_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_PrivateMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -6450,7 +6911,7 @@ static int dissect_S1AP_PDU_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto /*--- End of included file: packet-s1ap-fn.c ---*/ -#line 102 "packet-s1ap-template.c" +#line 105 "packet-s1ap-template.c" static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) { @@ -6585,7 +7046,6 @@ proto_reg_handoff_s1ap(void) dissector_add("s1ap.ies", id_UEIdentityIndexValue, new_create_dissector_handle(dissect_UEIdentityIndexValue_PDU, proto_s1ap)); dissector_add("s1ap.ies", id_cdma2000HOStatus, new_create_dissector_handle(dissect_Cdma2000HOStatus_PDU, proto_s1ap)); dissector_add("s1ap.ies", id_cdma2000HORequiredIndication, new_create_dissector_handle(dissect_Cdma2000HORequiredIndication_PDU, proto_s1ap)); - dissector_add("s1ap.ies", id_TraceReference, new_create_dissector_handle(dissect_TraceReference_PDU, proto_s1ap)); dissector_add("s1ap.ies", id_RelativeMMECapacity, new_create_dissector_handle(dissect_RelativeMMECapacity_PDU, proto_s1ap)); dissector_add("s1ap.ies", id_SourceMME_UE_S1AP_ID, new_create_dissector_handle(dissect_MME_UE_S1AP_ID_PDU, proto_s1ap)); dissector_add("s1ap.ies", id_Bearers_SubjectToStatusTransfer_Item, new_create_dissector_handle(dissect_Bearers_SubjectToStatusTransfer_Item_PDU, proto_s1ap)); @@ -6624,9 +7084,17 @@ proto_reg_handoff_s1ap(void) dissector_add("s1ap.ies", id_Target_ToSource_TransparentContainer, new_create_dissector_handle(dissect_Target_ToSource_TransparentContainer_PDU, proto_s1ap)); dissector_add("s1ap.ies", id_SRVCCOperationPossible, new_create_dissector_handle(dissect_SRVCCOperationPossible_PDU, proto_s1ap)); dissector_add("s1ap.ies", id_SRVCCHOIndication, new_create_dissector_handle(dissect_SRVCCHOIndication_PDU, proto_s1ap)); - dissector_add("s1ap.ies", id_NAS_DownlinkCount, new_create_dissector_handle(dissect_NAS_DownlinkCount_PDU, proto_s1ap)); dissector_add("s1ap.ies", id_CSG_Id, new_create_dissector_handle(dissect_CSG_Id_PDU, proto_s1ap)); dissector_add("s1ap.ies", id_CSG_IdList, new_create_dissector_handle(dissect_CSG_IdList_PDU, proto_s1ap)); + dissector_add("s1ap.ies", id_SONConfigurationTransferECT, new_create_dissector_handle(dissect_SONConfigurationTransfer_PDU, proto_s1ap)); + dissector_add("s1ap.ies", id_SONConfigurationTransferMCT, new_create_dissector_handle(dissect_SONConfigurationTransfer_PDU, proto_s1ap)); + dissector_add("s1ap.ies", id_TraceCollectionEntityIPAddress, new_create_dissector_handle(dissect_TransportLayerAddress_PDU, proto_s1ap)); + dissector_add("s1ap.ies", id_MSClassmark2, new_create_dissector_handle(dissect_MSClassmark2_PDU, proto_s1ap)); + dissector_add("s1ap.ies", id_MSClassmark3, new_create_dissector_handle(dissect_MSClassmark3_PDU, proto_s1ap)); + dissector_add("s1ap.ies", id_RRC_Establishment_Cause, new_create_dissector_handle(dissect_RRC_Establishment_Cause_PDU, proto_s1ap)); + dissector_add("s1ap.ies", id_NASSecurityParametersfromE_UTRAN, new_create_dissector_handle(dissect_NASSecurityParametersfromE_UTRAN_PDU, proto_s1ap)); + dissector_add("s1ap.ies", id_NASSecurityParameterstoE_UTRAN, new_create_dissector_handle(dissect_NASSecurityParameterstoE_UTRAN_PDU, proto_s1ap)); + dissector_add("s1ap.ies", id_DefaultPagingDRX, new_create_dissector_handle(dissect_PagingDRX_PDU, proto_s1ap)); dissector_add("s1ap.proc.imsg", id_HandoverPreparation, new_create_dissector_handle(dissect_HandoverRequired_PDU, proto_s1ap)); dissector_add("s1ap.proc.sout", id_HandoverPreparation, new_create_dissector_handle(dissect_HandoverCommand_PDU, proto_s1ap)); dissector_add("s1ap.proc.uout", id_HandoverPreparation, new_create_dissector_handle(dissect_HandoverPreparationFailure_PDU, proto_s1ap)); @@ -6690,10 +7158,13 @@ proto_reg_handoff_s1ap(void) dissector_add("s1ap.proc.imsg", id_eNBDirectInformationTransfer, new_create_dissector_handle(dissect_ENBDirectInformationTransfer_PDU, proto_s1ap)); dissector_add("s1ap.proc.imsg", id_MMEDirectInformationTransfer, new_create_dissector_handle(dissect_MMEDirectInformationTransfer_PDU, proto_s1ap)); dissector_add("s1ap.proc.imsg", id_PrivateMessage, new_create_dissector_handle(dissect_PrivateMessage_PDU, proto_s1ap)); + dissector_add("s1ap.proc.imsg", id_eNBConfigurationTransfer, new_create_dissector_handle(dissect_ENBConfigurationTransfer_PDU, proto_s1ap)); + dissector_add("s1ap.proc.imsg", id_MMEConfigurationTransfer, new_create_dissector_handle(dissect_MMEConfigurationTransfer_PDU, proto_s1ap)); + dissector_add("s1ap.proc.imsg", id_CellTrafficTrace, new_create_dissector_handle(dissect_CellTrafficTrace_PDU, proto_s1ap)); /*--- End of included file: packet-s1ap-dis-tab.c ---*/ -#line 172 "packet-s1ap-template.c" +#line 175 "packet-s1ap-template.c" } else { if (SctpPort != 0) { dissector_delete("sctp.port", SctpPort, s1ap_handle); @@ -6712,6 +7183,14 @@ void proto_register_s1ap(void) { /* List of fields */ static hf_register_info hf[] = { + { &hf_s1ap_transportLayerAddressIPv4, + { "transportLayerAddress(IPv4)", "s1ap.transportLayerAddressIPv4", + FT_IPv4, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_s1ap_transportLayerAddressIPv6, + { "transportLayerAddress(IPv6)", "s1ap.transportLayerAddressIPv6", + FT_IPv4, BASE_HEX, NULL, 0, + NULL, HFILL }}, /*--- Included file: packet-s1ap-hfarr.c ---*/ @@ -6798,7 +7277,7 @@ void proto_register_s1ap(void) { "s1ap.ENB_UE_S1AP_ID", HFILL }}, { &hf_s1ap_ENBname_PDU, { "ENBname", "s1ap.ENBname", - FT_BYTES, BASE_HEX, NULL, 0, + FT_STRING, BASE_NONE, NULL, 0, "s1ap.ENBname", HFILL }}, { &hf_s1ap_EUTRAN_CGI_PDU, { "EUTRAN-CGI", "s1ap.EUTRAN_CGI", @@ -6822,16 +7301,32 @@ void proto_register_s1ap(void) { "s1ap.MessageIdentifier", HFILL }}, { &hf_s1ap_MMEname_PDU, { "MMEname", "s1ap.MMEname", - FT_BYTES, BASE_HEX, NULL, 0, + FT_STRING, BASE_NONE, NULL, 0, "s1ap.MMEname", HFILL }}, { &hf_s1ap_MME_UE_S1AP_ID_PDU, { "MME-UE-S1AP-ID", "s1ap.MME_UE_S1AP_ID", FT_UINT32, BASE_DEC, NULL, 0, "s1ap.MME_UE_S1AP_ID", HFILL }}, + { &hf_s1ap_MSClassmark2_PDU, + { "MSClassmark2", "s1ap.MSClassmark2", + FT_BYTES, BASE_HEX, NULL, 0, + "s1ap.MSClassmark2", HFILL }}, + { &hf_s1ap_MSClassmark3_PDU, + { "MSClassmark3", "s1ap.MSClassmark3", + FT_BYTES, BASE_HEX, NULL, 0, + "s1ap.MSClassmark3", HFILL }}, { &hf_s1ap_NAS_PDU_PDU, { "NAS-PDU", "s1ap.NAS_PDU", FT_BYTES, BASE_HEX, NULL, 0, "s1ap.NAS_PDU", HFILL }}, + { &hf_s1ap_NASSecurityParametersfromE_UTRAN_PDU, + { "NASSecurityParametersfromE-UTRAN", "s1ap.NASSecurityParametersfromE_UTRAN", + FT_BYTES, BASE_HEX, NULL, 0, + "s1ap.NASSecurityParametersfromE_UTRAN", HFILL }}, + { &hf_s1ap_NASSecurityParameterstoE_UTRAN_PDU, + { "NASSecurityParameterstoE-UTRAN", "s1ap.NASSecurityParameterstoE_UTRAN", + FT_BYTES, BASE_HEX, NULL, 0, + "s1ap.NASSecurityParameterstoE_UTRAN", HFILL }}, { &hf_s1ap_NumberofBroadcastRequest_PDU, { "NumberofBroadcastRequest", "s1ap.NumberofBroadcastRequest", FT_UINT32, BASE_DEC, NULL, 0, @@ -6856,6 +7351,10 @@ void proto_register_s1ap(void) { { "RepetitionPeriod", "s1ap.RepetitionPeriod", FT_UINT32, BASE_DEC, NULL, 0, "s1ap.RepetitionPeriod", HFILL }}, + { &hf_s1ap_RRC_Establishment_Cause_PDU, + { "RRC-Establishment-Cause", "s1ap.RRC_Establishment_Cause", + FT_UINT32, BASE_DEC, VALS(s1ap_RRC_Establishment_Cause_vals), 0, + "s1ap.RRC_Establishment_Cause", HFILL }}, { &hf_s1ap_E_RABInformationListItem_PDU, { "E-RABInformationListItem", "s1ap.E_RABInformationListItem", FT_NONE, BASE_NONE, NULL, 0, @@ -6880,6 +7379,10 @@ void proto_register_s1ap(void) { { "SerialNumber", "s1ap.SerialNumber", FT_BYTES, BASE_HEX, NULL, 0, "s1ap.SerialNumber", HFILL }}, + { &hf_s1ap_SONConfigurationTransfer_PDU, + { "SONConfigurationTransfer", "s1ap.SONConfigurationTransfer", + FT_NONE, BASE_NONE, NULL, 0, + "s1ap.SONConfigurationTransfer", HFILL }}, { &hf_s1ap_Source_ToTarget_TransparentContainer_PDU, { "Source-ToTarget-TransparentContainer", "s1ap.Source_ToTarget_TransparentContainer", FT_BYTES, BASE_HEX, NULL, 0, @@ -6928,14 +7431,14 @@ void proto_register_s1ap(void) { { "TimeToWait", "s1ap.TimeToWait", FT_UINT32, BASE_DEC, VALS(s1ap_TimeToWait_vals), 0, "s1ap.TimeToWait", HFILL }}, + { &hf_s1ap_TransportLayerAddress_PDU, + { "TransportLayerAddress", "s1ap.TransportLayerAddress", + FT_BYTES, BASE_HEX, NULL, 0, + "s1ap.TransportLayerAddress", HFILL }}, { &hf_s1ap_TraceActivation_PDU, { "TraceActivation", "s1ap.TraceActivation", FT_NONE, BASE_NONE, NULL, 0, "s1ap.TraceActivation", HFILL }}, - { &hf_s1ap_TraceReference_PDU, - { "TraceReference", "s1ap.TraceReference", - FT_BYTES, BASE_HEX, NULL, 0, - "s1ap.TraceReference", HFILL }}, { &hf_s1ap_UEAggregateMaximumBitrate_PDU, { "UEAggregateMaximumBitrate", "s1ap.UEAggregateMaximumBitrate", FT_NONE, BASE_NONE, NULL, 0, @@ -6984,10 +7487,6 @@ void proto_register_s1ap(void) { { "HandoverCommand", "s1ap.HandoverCommand", FT_NONE, BASE_NONE, NULL, 0, "s1ap.HandoverCommand", HFILL }}, - { &hf_s1ap_NAS_DownlinkCount_PDU, - { "NAS-DownlinkCount", "s1ap.NAS_DownlinkCount", - FT_BYTES, BASE_HEX, NULL, 0, - "s1ap.NAS_DownlinkCount", HFILL }}, { &hf_s1ap_E_RABSubjecttoDataForwardingList_PDU, { "E-RABSubjecttoDataForwardingList", "s1ap.E_RABSubjecttoDataForwardingList", FT_UINT32, BASE_DEC, NULL, 0, @@ -7304,6 +7803,10 @@ void proto_register_s1ap(void) { { "DeactivateTrace", "s1ap.DeactivateTrace", FT_NONE, BASE_NONE, NULL, 0, "s1ap.DeactivateTrace", HFILL }}, + { &hf_s1ap_CellTrafficTrace_PDU, + { "CellTrafficTrace", "s1ap.CellTrafficTrace", + FT_NONE, BASE_NONE, NULL, 0, + "s1ap.CellTrafficTrace", HFILL }}, { &hf_s1ap_LocationReportingControl_PDU, { "LocationReportingControl", "s1ap.LocationReportingControl", FT_NONE, BASE_NONE, NULL, 0, @@ -7344,6 +7847,14 @@ void proto_register_s1ap(void) { { "MMEDirectInformationTransfer", "s1ap.MMEDirectInformationTransfer", FT_NONE, BASE_NONE, NULL, 0, "s1ap.MMEDirectInformationTransfer", HFILL }}, + { &hf_s1ap_ENBConfigurationTransfer_PDU, + { "ENBConfigurationTransfer", "s1ap.ENBConfigurationTransfer", + FT_NONE, BASE_NONE, NULL, 0, + "s1ap.ENBConfigurationTransfer", HFILL }}, + { &hf_s1ap_MMEConfigurationTransfer_PDU, + { "MMEConfigurationTransfer", "s1ap.MMEConfigurationTransfer", + FT_NONE, BASE_NONE, NULL, 0, + "s1ap.MMEConfigurationTransfer", HFILL }}, { &hf_s1ap_PrivateMessage_PDU, { "PrivateMessage", "s1ap.PrivateMessage", FT_NONE, BASE_NONE, NULL, 0, @@ -7396,7 +7907,7 @@ void proto_register_s1ap(void) { { "PrivateIE-Container", "s1ap.PrivateIE_Container_item", FT_NONE, BASE_NONE, NULL, 0, "s1ap.PrivateIE_Field", HFILL }}, - { &hf_s1ap_id_01, + { &hf_s1ap_private_id, { "id", "s1ap.id", FT_UINT32, BASE_DEC, VALS(s1ap_PrivateIE_ID_vals), 0, "s1ap.PrivateIE_ID", HFILL }}, @@ -7496,6 +8007,10 @@ void proto_register_s1ap(void) { { "cdma2000OneXPilot", "s1ap.cdma2000OneXPilot", FT_BYTES, BASE_HEX, NULL, 0, "s1ap.Cdma2000OneXPilot", HFILL }}, + { &hf_s1ap_cell_Size, + { "cell-Size", "s1ap.cell_Size", + FT_UINT32, BASE_DEC, VALS(s1ap_Cell_Size_vals), 0, + "s1ap.Cell_Size", HFILL }}, { &hf_s1ap_pLMNidentity, { "pLMNidentity", "s1ap.pLMNidentity", FT_BYTES, BASE_HEX, NULL, 0, @@ -7604,6 +8119,10 @@ void proto_register_s1ap(void) { { "bearers-SubjectToStatusTransferList", "s1ap.bearers_SubjectToStatusTransferList", FT_UINT32, BASE_DEC, NULL, 0, "s1ap.Bearers_SubjectToStatusTransferList", HFILL }}, + { &hf_s1ap_ENBX2TLAs_item, + { "ENBX2TLAs", "s1ap.ENBX2TLAs_item", + FT_BYTES, BASE_HEX, NULL, 0, + "s1ap.TransportLayerAddress", HFILL }}, { &hf_s1ap_EPLMNs_item, { "EPLMNs", "s1ap.EPLMNs_item", FT_BYTES, BASE_HEX, NULL, 0, @@ -7684,18 +8203,6 @@ void proto_register_s1ap(void) { { "forbiddenInterRATs", "s1ap.forbiddenInterRATs", FT_UINT32, BASE_DEC, VALS(s1ap_ForbiddenInterRATs_vals), 0, "s1ap.ForbiddenInterRATs", HFILL }}, - { &hf_s1ap_InterfacesToTraceList_item, - { "InterfacesToTraceList", "s1ap.InterfacesToTraceList_item", - FT_NONE, BASE_NONE, NULL, 0, - "s1ap.InterfacesToTraceItem", HFILL }}, - { &hf_s1ap_interfaceType, - { "interfaceType", "s1ap.interfaceType", - FT_UINT32, BASE_DEC, VALS(s1ap_InterfaceType_vals), 0, - "s1ap.InterfaceType", HFILL }}, - { &hf_s1ap_traceDepth, - { "traceDepth", "s1ap.traceDepth", - FT_UINT32, BASE_DEC, VALS(s1ap_TraceDepth_vals), 0, - "s1ap.TraceDepth", HFILL }}, { &hf_s1ap_e_UTRAN_Cell, { "e-UTRAN-Cell", "s1ap.e_UTRAN_Cell", FT_NONE, BASE_NONE, NULL, 0, @@ -7704,18 +8211,26 @@ void proto_register_s1ap(void) { { "uTRAN-Cell", "s1ap.uTRAN_Cell", FT_BYTES, BASE_HEX, NULL, 0, "s1ap.LastVisitedUTRANCellInformation", HFILL }}, + { &hf_s1ap_gERAN_Cell, + { "gERAN-Cell", "s1ap.gERAN_Cell", + FT_UINT32, BASE_DEC, VALS(s1ap_LastVisitedGERANCellInformation_vals), 0, + "s1ap.LastVisitedGERANCellInformation", HFILL }}, { &hf_s1ap_global_Cell_ID, { "global-Cell-ID", "s1ap.global_Cell_ID", FT_NONE, BASE_NONE, NULL, 0, "s1ap.EUTRAN_CGI", HFILL }}, { &hf_s1ap_cellType, { "cellType", "s1ap.cellType", - FT_UINT32, BASE_DEC, VALS(s1ap_CellType_vals), 0, + FT_NONE, BASE_NONE, NULL, 0, "s1ap.CellType", HFILL }}, { &hf_s1ap_time_UE_StayedInCell, { "time-UE-StayedInCell", "s1ap.time_UE_StayedInCell", FT_UINT32, BASE_DEC, NULL, 0, "s1ap.Time_UE_StayedInCell", HFILL }}, + { &hf_s1ap_undefined, + { "undefined", "s1ap.undefined", + FT_NONE, BASE_NONE, NULL, 0, + "s1ap.NULL", HFILL }}, { &hf_s1ap_overloadAction, { "overloadAction", "s1ap.overloadAction", FT_UINT32, BASE_DEC, VALS(s1ap_OverloadAction_vals), 0, @@ -7726,7 +8241,7 @@ void proto_register_s1ap(void) { "s1ap.EventType", HFILL }}, { &hf_s1ap_reportArea, { "reportArea", "s1ap.reportArea", - FT_BYTES, BASE_HEX, NULL, 0, + FT_UINT32, BASE_DEC, VALS(s1ap_ReportArea_vals), 0, "s1ap.ReportArea", HFILL }}, { &hf_s1ap_rIMInformation, { "rIMInformation", "s1ap.rIMInformation", @@ -7768,14 +8283,46 @@ void proto_register_s1ap(void) { { "gbrQosInformation", "s1ap.gbrQosInformation", FT_NONE, BASE_NONE, NULL, 0, "s1ap.GBR_QosInformation", HFILL }}, - { &hf_s1ap_nexthopchainingcount, - { "nexthopchainingcount", "s1ap.nexthopchainingcount", + { &hf_s1ap_nextHopParameter, + { "nextHopParameter", "s1ap.nextHopParameter", + FT_UINT32, BASE_DEC, NULL, 0, + "s1ap.INTEGER_0_7", HFILL }}, + { &hf_s1ap_nextHopChainingCount, + { "nextHopChainingCount", "s1ap.nextHopChainingCount", FT_BYTES, BASE_HEX, NULL, 0, "s1ap.SecurityKey", HFILL }}, - { &hf_s1ap_nexthopparameter, - { "nexthopparameter", "s1ap.nexthopparameter", - FT_BYTES, BASE_HEX, NULL, 0, - "s1ap.BIT_STRING_SIZE_3", HFILL }}, + { &hf_s1ap_sONInformationRequest, + { "sONInformationRequest", "s1ap.sONInformationRequest", + FT_UINT32, BASE_DEC, VALS(s1ap_SONInformationRequest_vals), 0, + "s1ap.SONInformationRequest", HFILL }}, + { &hf_s1ap_sONInformationReply, + { "sONInformationReply", "s1ap.sONInformationReply", + FT_NONE, BASE_NONE, NULL, 0, + "s1ap.SONInformationReply", HFILL }}, + { &hf_s1ap_x2TNLConfigurationInfo, + { "x2TNLConfigurationInfo", "s1ap.x2TNLConfigurationInfo", + FT_NONE, BASE_NONE, NULL, 0, + "s1ap.X2TNLConfigurationInfo", HFILL }}, + { &hf_s1ap_targeteNB_ID, + { "targeteNB-ID", "s1ap.targeteNB_ID", + FT_NONE, BASE_NONE, NULL, 0, + "s1ap.TargeteNB_ID", HFILL }}, + { &hf_s1ap_sourceeNB_ID, + { "sourceeNB-ID", "s1ap.sourceeNB_ID", + FT_NONE, BASE_NONE, NULL, 0, + "s1ap.SourceeNB_ID", HFILL }}, + { &hf_s1ap_sONInformation, + { "sONInformation", "s1ap.sONInformation", + FT_UINT32, BASE_DEC, VALS(s1ap_SONInformation_vals), 0, + "s1ap.SONInformation", HFILL }}, + { &hf_s1ap_global_ENB_ID, + { "global-ENB-ID", "s1ap.global_ENB_ID", + FT_NONE, BASE_NONE, NULL, 0, + "s1ap.Global_ENB_ID", HFILL }}, + { &hf_s1ap_selected_TAI, + { "selected-TAI", "s1ap.selected_TAI", + FT_NONE, BASE_NONE, NULL, 0, + "s1ap.TAI", HFILL }}, { &hf_s1ap_rRC_Container, { "rRC-Container", "s1ap.rRC_Container", FT_BYTES, BASE_HEX, NULL, 0, @@ -7799,7 +8346,27 @@ void proto_register_s1ap(void) { { &hf_s1ap_ServedGUMMEIs_item, { "ServedGUMMEIs", "s1ap.ServedGUMMEIs_item", FT_NONE, BASE_NONE, NULL, 0, - "s1ap.GUMMEI", HFILL }}, + "s1ap.ServedGUMMEIsItem", HFILL }}, + { &hf_s1ap_servedPLMNs, + { "servedPLMNs", "s1ap.servedPLMNs", + FT_UINT32, BASE_DEC, NULL, 0, + "s1ap.ServedPLMNs", HFILL }}, + { &hf_s1ap_servedGroupIDs, + { "servedGroupIDs", "s1ap.servedGroupIDs", + FT_UINT32, BASE_DEC, NULL, 0, + "s1ap.ServedGroupIDs", HFILL }}, + { &hf_s1ap_servedMMECs, + { "servedMMECs", "s1ap.servedMMECs", + FT_UINT32, BASE_DEC, NULL, 0, + "s1ap.ServedMMECs", HFILL }}, + { &hf_s1ap_ServedGroupIDs_item, + { "ServedGroupIDs", "s1ap.ServedGroupIDs_item", + FT_BYTES, BASE_HEX, NULL, 0, + "s1ap.MME_Group_ID", HFILL }}, + { &hf_s1ap_ServedMMECs_item, + { "ServedMMECs", "s1ap.ServedMMECs_item", + FT_BYTES, BASE_HEX, NULL, 0, + "s1ap.MME_Code", HFILL }}, { &hf_s1ap_ServedPLMNs_item, { "ServedPLMNs", "s1ap.ServedPLMNs_item", FT_BYTES, BASE_HEX, NULL, 0, @@ -7820,10 +8387,6 @@ void proto_register_s1ap(void) { { "mMEC", "s1ap.mMEC", FT_BYTES, BASE_HEX, NULL, 0, "s1ap.MME_Code", HFILL }}, - { &hf_s1ap_m_TMSI, - { "m-TMSI", "s1ap.m_TMSI", - FT_BYTES, BASE_HEX, NULL, 0, - "s1ap.M_TMSI", HFILL }}, { &hf_s1ap_TAIListforWarning_item, { "TAIListforWarning", "s1ap.TAIListforWarning_item", FT_NONE, BASE_NONE, NULL, 0, @@ -7844,10 +8407,6 @@ void proto_register_s1ap(void) { { "CompletedCellinTAI", "s1ap.CompletedCellinTAI_item", FT_NONE, BASE_NONE, NULL, 0, "s1ap.CompletedCellinTAI_Item", HFILL }}, - { &hf_s1ap_targeteNB_ID, - { "targeteNB-ID", "s1ap.targeteNB_ID", - FT_NONE, BASE_NONE, NULL, 0, - "s1ap.TargeteNB_ID", HFILL }}, { &hf_s1ap_targetRNC_ID, { "targetRNC-ID", "s1ap.targetRNC_ID", FT_NONE, BASE_NONE, NULL, 0, @@ -7856,14 +8415,6 @@ void proto_register_s1ap(void) { { "cGI", "s1ap.cGI", FT_NONE, BASE_NONE, NULL, 0, "s1ap.CGI", HFILL }}, - { &hf_s1ap_global_ENB_ID, - { "global-ENB-ID", "s1ap.global_ENB_ID", - FT_NONE, BASE_NONE, NULL, 0, - "s1ap.Global_ENB_ID", HFILL }}, - { &hf_s1ap_selected_TAI, - { "selected-TAI", "s1ap.selected_TAI", - FT_NONE, BASE_NONE, NULL, 0, - "s1ap.TAI", HFILL }}, { &hf_s1ap_rNC_ID, { "rNC-ID", "s1ap.rNC_ID", FT_UINT32, BASE_DEC, NULL, 0, @@ -7872,14 +8423,22 @@ void proto_register_s1ap(void) { { "extendedRNC-ID", "s1ap.extendedRNC_ID", FT_UINT32, BASE_DEC, NULL, 0, "s1ap.ExtendedRNC_ID", HFILL }}, - { &hf_s1ap_traceReference, - { "traceReference", "s1ap.traceReference", + { &hf_s1ap_e_UTRAN_Trace_ID, + { "e-UTRAN-Trace-ID", "s1ap.e_UTRAN_Trace_ID", FT_BYTES, BASE_HEX, NULL, 0, - "s1ap.TraceReference", HFILL }}, - { &hf_s1ap_interfacesToTraceList, - { "interfacesToTraceList", "s1ap.interfacesToTraceList", - FT_UINT32, BASE_DEC, NULL, 0, - "s1ap.InterfacesToTraceList", HFILL }}, + "s1ap.E_UTRAN_Trace_ID", HFILL }}, + { &hf_s1ap_interfacesToTrace, + { "interfacesToTrace", "s1ap.interfacesToTrace", + FT_BYTES, BASE_HEX, NULL, 0, + "s1ap.InterfacesToTrace", HFILL }}, + { &hf_s1ap_traceDepth, + { "traceDepth", "s1ap.traceDepth", + FT_UINT32, BASE_DEC, VALS(s1ap_TraceDepth_vals), 0, + "s1ap.TraceDepth", HFILL }}, + { &hf_s1ap_traceCollectionEntityIPAddress, + { "traceCollectionEntityIPAddress", "s1ap.traceCollectionEntityIPAddress", + FT_BYTES, BASE_HEX, NULL, 0, + "s1ap.TransportLayerAddress", HFILL }}, { &hf_s1ap_uEaggregateMaximumBitRateDL, { "uEaggregateMaximumBitRateDL", "s1ap.uEaggregateMaximumBitRateDL", FT_UINT64, BASE_DEC, NULL, 0, @@ -7932,6 +8491,10 @@ void proto_register_s1ap(void) { { "emergencyAreaIDList", "s1ap.emergencyAreaIDList", FT_UINT32, BASE_DEC, NULL, 0, "s1ap.EmergencyAreaIDList", HFILL }}, + { &hf_s1ap_eNBX2TransportLayerAddresses, + { "eNBX2TransportLayerAddresses", "s1ap.eNBX2TransportLayerAddresses", + FT_UINT32, BASE_DEC, NULL, 0, + "s1ap.ENBX2TLAs", HFILL }}, { &hf_s1ap_protocolIEs, { "protocolIEs", "s1ap.protocolIEs", FT_UINT32, BASE_DEC, NULL, 0, @@ -8058,12 +8621,13 @@ void proto_register_s1ap(void) { "s1ap.UnsuccessfulOutcome_value", HFILL }}, /*--- End of included file: packet-s1ap-hfarr.c ---*/ -#line 192 "packet-s1ap-template.c" +#line 203 "packet-s1ap-template.c" }; /* List of subtrees */ static gint *ett[] = { &ett_s1ap, + &ett_s1ap_TransportLayerAddress, /*--- Included file: packet-s1ap-ettarr.c ---*/ #line 1 "packet-s1ap-ettarr.c" @@ -8084,6 +8648,7 @@ void proto_register_s1ap(void) { &ett_s1ap_CellID_Broadcast, &ett_s1ap_CellID_Broadcast_Item, &ett_s1ap_Cdma2000OneXSRVCCInfo, + &ett_s1ap_CellType, &ett_s1ap_CGI, &ett_s1ap_CSG_IdList, &ett_s1ap_CSG_IdList_Item, @@ -8101,6 +8666,7 @@ void proto_register_s1ap(void) { &ett_s1ap_GERAN_Cell_ID, &ett_s1ap_Global_ENB_ID, &ett_s1ap_ENB_StatusTransfer_TransparentContainer, + &ett_s1ap_ENBX2TLAs, &ett_s1ap_EPLMNs, &ett_s1ap_EUTRAN_CGI, &ett_s1ap_ForbiddenTAs, @@ -8112,11 +8678,10 @@ void proto_register_s1ap(void) { &ett_s1ap_GBR_QosInformation, &ett_s1ap_GUMMEI, &ett_s1ap_HandoverRestrictionList, - &ett_s1ap_InterfacesToTraceList, - &ett_s1ap_InterfacesToTraceItem, &ett_s1ap_LAI, &ett_s1ap_LastVisitedCell_Item, &ett_s1ap_LastVisitedEUTRANCellInformation, + &ett_s1ap_LastVisitedGERANCellInformation, &ett_s1ap_OverloadResponse, &ett_s1ap_RequestType, &ett_s1ap_RIMTransfer, @@ -8127,8 +8692,15 @@ void proto_register_s1ap(void) { &ett_s1ap_E_RABItem, &ett_s1ap_E_RABLevelQoSParameters, &ett_s1ap_SecurityContext, - &ett_s1ap_SourceeNodeB_ToTargeteNodeB_TransparentContainer, + &ett_s1ap_SONInformation, + &ett_s1ap_SONInformationReply, + &ett_s1ap_SONConfigurationTransfer, + &ett_s1ap_SourceeNB_ID, + &ett_s1ap_SourceeNB_ToTargeteNB_TransparentContainer, &ett_s1ap_ServedGUMMEIs, + &ett_s1ap_ServedGUMMEIsItem, + &ett_s1ap_ServedGroupIDs, + &ett_s1ap_ServedMMECs, &ett_s1ap_ServedPLMNs, &ett_s1ap_SupportedTAs, &ett_s1ap_SupportedTAs_Item, @@ -8142,7 +8714,7 @@ void proto_register_s1ap(void) { &ett_s1ap_TargetID, &ett_s1ap_TargeteNB_ID, &ett_s1ap_TargetRNC_ID, - &ett_s1ap_TargeteNodeB_ToSourceeNodeB_TransparentContainer, + &ett_s1ap_TargeteNB_ToSourceeNB_TransparentContainer, &ett_s1ap_TraceActivation, &ett_s1ap_UEAggregateMaximumBitrate, &ett_s1ap_UE_S1AP_IDs, @@ -8152,6 +8724,7 @@ void proto_register_s1ap(void) { &ett_s1ap_UEPagingID, &ett_s1ap_UESecurityCapabilities, &ett_s1ap_WarningAreaList, + &ett_s1ap_X2TNLConfigurationInfo, &ett_s1ap_HandoverRequired, &ett_s1ap_HandoverCommand, &ett_s1ap_E_RABDataForwardingItem, @@ -8230,6 +8803,7 @@ void proto_register_s1ap(void) { &ett_s1ap_TraceStart, &ett_s1ap_TraceFailureIndication, &ett_s1ap_DeactivateTrace, + &ett_s1ap_CellTrafficTrace, &ett_s1ap_LocationReportingControl, &ett_s1ap_LocationReportingFailureIndication, &ett_s1ap_LocationReport, @@ -8240,6 +8814,8 @@ void proto_register_s1ap(void) { &ett_s1ap_ENBDirectInformationTransfer, &ett_s1ap_Inter_SystemInformationTransferType, &ett_s1ap_MMEDirectInformationTransfer, + &ett_s1ap_ENBConfigurationTransfer, + &ett_s1ap_MMEConfigurationTransfer, &ett_s1ap_PrivateMessage, &ett_s1ap_S1AP_PDU, &ett_s1ap_InitiatingMessage, @@ -8247,7 +8823,7 @@ void proto_register_s1ap(void) { &ett_s1ap_UnsuccessfulOutcome, /*--- End of included file: packet-s1ap-ettarr.c ---*/ -#line 198 "packet-s1ap-template.c" +#line 210 "packet-s1ap-template.c" }; module_t *s1ap_module; |