diff options
-rw-r--r-- | asn1/x2ap/X2AP-CommonDataTypes.asn | 2 | ||||
-rw-r--r-- | asn1/x2ap/X2AP-Constants.asn | 51 | ||||
-rw-r--r-- | asn1/x2ap/X2AP-Containers.asn | 2 | ||||
-rw-r--r-- | asn1/x2ap/X2AP-IEs.asn | 289 | ||||
-rw-r--r-- | asn1/x2ap/X2AP-PDU-Contents.asn | 192 | ||||
-rw-r--r-- | asn1/x2ap/X2AP-PDU-Descriptions.asn | 7 | ||||
-rw-r--r-- | asn1/x2ap/x2ap.cnf | 32 | ||||
-rw-r--r-- | epan/dissectors/packet-x2ap.c | 1447 |
8 files changed, 1720 insertions, 302 deletions
diff --git a/asn1/x2ap/X2AP-CommonDataTypes.asn b/asn1/x2ap/X2AP-CommonDataTypes.asn index 6feadf6829..cd1c4c7065 100644 --- a/asn1/x2ap/X2AP-CommonDataTypes.asn +++ b/asn1/x2ap/X2AP-CommonDataTypes.asn @@ -1,5 +1,5 @@ -- $Id$ --- 3GPP TS 36.423 V9.2.0 (2010-03) +-- 3GPP TS 36.423 V10.3.0 (2011-09) -- 9.3.6 Common definitions -- ************************************************************** diff --git a/asn1/x2ap/X2AP-Constants.asn b/asn1/x2ap/X2AP-Constants.asn index 69fdd47a86..35e2c91856 100644 --- a/asn1/x2ap/X2AP-Constants.asn +++ b/asn1/x2ap/X2AP-Constants.asn @@ -1,5 +1,5 @@ -- $Id$ --- 3GPP TS 36.423 V9.2.0 (2010-03) +-- 3GPP TS 36.423 V10.3.0 (2011-09) -- 9.3.7 Constant Definitions -- ************************************************************** -- @@ -37,9 +37,9 @@ id-reset ProcedureCode ::= 7 id-eNBConfigurationUpdate ProcedureCode ::= 8 id-resourceStatusReportingInitiation ProcedureCode ::= 9 id-resourceStatusReporting ProcedureCode ::= 10 -id-privateMessage ProcedureCode ::= 11 -id-mobilitySettingsChange ProcedureCode ::= 12 -id-rLFIndication ProcedureCode ::= 13 +id-privateMessage ProcedureCode ::= 11 +id-mobilitySettingsChange ProcedureCode ::= 12 +id-rLFIndication ProcedureCode ::= 13 id-handoverReport ProcedureCode ::= 14 id-cellActivation ProcedureCode ::= 15 @@ -51,24 +51,25 @@ id-cellActivation ProcedureCode ::= 15 -- -- ************************************************************** -maxEARFCN INTEGER ::= 65535 -maxInterfaces INTEGER ::= 16 -maxCellineNB INTEGER ::= 256 -maxnoofBearers INTEGER ::= 256 -maxNrOfErrors INTEGER ::= 256 -maxnoofPDCP-SN INTEGER ::= 16 -- FFS Value to be checked -maxnoofEPLMNs INTEGER ::= 15 -maxnoofEPLMNsPlusOne INTEGER ::= 16 -maxnoofForbLACs INTEGER ::= 4096 -maxnoofForbTACs INTEGER ::= 4096 +maxEARFCN INTEGER ::= 65535 +maxInterfaces INTEGER ::= 16 +maxCellineNB INTEGER ::= 256 +maxnoofBearers INTEGER ::= 256 +maxNrOfErrors INTEGER ::= 256 +maxnoofPDCP-SN INTEGER ::= 16 +maxnoofEPLMNs INTEGER ::= 15 +maxnoofEPLMNsPlusOne INTEGER ::= 16 +maxnoofForbLACs INTEGER ::= 4096 +maxnoofForbTACs INTEGER ::= 4096 maxnoofBPLMNs INTEGER ::= 6 maxnoofNeighbours INTEGER ::= 512 -maxnoofPRBs INTEGER ::= 110 +maxnoofPRBs INTEGER ::= 110 maxPools INTEGER ::= 16 -maxnoofCells INTEGER ::= 16 +maxnoofCells INTEGER ::= 16 maxnoofMBSFN INTEGER ::= 8 - - +maxFailedMeasObjects INTEGER ::= 32 +maxnoofCellIDforMDT INTEGER ::= 32 +maxnoofTAforMDT INTEGER ::= 8 -- ************************************************************** @@ -137,5 +138,19 @@ id-ServedCellsToActivate ProtocolIE-ID ::= 57 id-ActivatedCellList ProtocolIE-ID ::= 58 id-DeactivationIndication ProtocolIE-ID ::= 59 id-UE-RLF-Report-Container ProtocolIE-ID ::= 60 +id-ABSInformation ProtocolIE-ID ::= 61 +id-InvokeIndication ProtocolIE-ID ::= 62 +id-ABS-Status ProtocolIE-ID ::= 63 +id-PartialSuccessIndicator ProtocolIE-ID ::= 64 +id-MeasurementInitiationResult-List ProtocolIE-ID ::= 65 +id-MeasurementInitiationResult-Item ProtocolIE-ID ::= 66 +id-MeasurementFailureCause-Item ProtocolIE-ID ::= 67 +id-CompleteFailureCauseInformation-List ProtocolIE-ID ::= 68 +id-CompleteFailureCauseInformation-Item ProtocolIE-ID ::= 69 +id-CSG-Id ProtocolIE-ID ::= 70 +id-CSGMembershipStatus ProtocolIE-ID ::= 71 +id-MDTConfiguration ProtocolIE-ID ::= 72 +id-ManagementBasedMDTallowed ProtocolIE-ID ::= 74 +id-RRCConnSetupIndicator ProtocolIE-ID ::= 75 END diff --git a/asn1/x2ap/X2AP-Containers.asn b/asn1/x2ap/X2AP-Containers.asn index 7e22bbb52d..b70978d7e3 100644 --- a/asn1/x2ap/X2AP-Containers.asn +++ b/asn1/x2ap/X2AP-Containers.asn @@ -1,5 +1,5 @@ -- $Id$ --- 3GPP TS 36.423 V9.2.0 (2010-03) +-- 3GPP TS 36.423 V10.3.0 (2011-09) -- 9.3.8 Container Definitions -- ************************************************************** -- diff --git a/asn1/x2ap/X2AP-IEs.asn b/asn1/x2ap/X2AP-IEs.asn index a440475008..a2735fc621 100644 --- a/asn1/x2ap/X2AP-IEs.asn +++ b/asn1/x2ap/X2AP-IEs.asn @@ -1,5 +1,5 @@ -- $Id$ --- 3GPP TS 36.423 V9.2.0 (2010-03) +-- 3GPP TS 36.423 V10.3.0 (2011-09) -- 9.3.5 Information Element Definitions -- ************************************************************** -- @@ -18,11 +18,12 @@ BEGIN IMPORTS id-E-RAB-Item, - id-Number-of-Antennaports, + id-Number-of-Antennaports, id-MBSFN-Subframe-Info, id-PRACH-Configuration, - - maxnoofBearers, + id-CSG-Id, + id-MDTConfiguration, + maxnoofBearers, maxCellineNB, maxEARFCN, maxInterfaces, @@ -37,7 +38,9 @@ IMPORTS maxnoofPRBs, maxNrOfErrors, maxPools, - maxnoofMBSFN + maxnoofMBSFN, + maxnoofTAforMDT, + maxnoofCellIDforMDT FROM X2AP-Constants @@ -56,6 +59,50 @@ FROM X2AP-Containers; -- A +ABSInformation ::= CHOICE { + fdd ABSInformationFDD, + tdd ABSInformationTDD, + abs-inactive NULL, + ... +} + +ABSInformationFDD ::= SEQUENCE { + abs-pattern-info BIT STRING (SIZE(40)), + numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, + measurement-subset BIT STRING (SIZE(40)), + iE-Extensions ProtocolExtensionContainer { { ABSInformationFDD-ExtIEs} } OPTIONAL, + ... +} + +ABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ABSInformationTDD ::= SEQUENCE { + abs-pattern-info BIT STRING (SIZE(1..70, ...)), + numberOfCellSpecificAntennaPorts ENUMERATED {one, two, four, ...}, + measurement-subset BIT STRING (SIZE(1..70, ...)), + iE-Extensions ProtocolExtensionContainer { { ABSInformationTDD-ExtIEs} } OPTIONAL, + ... +} + +ABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +ABS-Status ::= SEQUENCE { + dL-ABS-status DL-ABS-status, + usableABSInformation UsableABSInformation, + iE-Extensions ProtocolExtensionContainer { {ABS-Status-ExtIEs} } OPTIONAL, + ... +} + +ABS-Status-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +DL-ABS-status::= INTEGER (0..100) + AS-SecurityInformation ::= SEQUENCE { key-eNodeB-star Key-eNodeB-Star, nextHopChainingCount NextHopChainingCount, @@ -80,6 +127,12 @@ AllocationAndRetentionPriority-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { ... } +AreaScopeOfMDT ::= CHOICE { + cellBased CellBasedMDT, + tABased TABasedMDT, + pLMNWide NULL, + ... +} -- B @@ -150,7 +203,9 @@ CauseRadioNetwork ::= ENUMERATED { handover-optimisation, value-out-of-allowed-range, multiple-E-RAB-ID-instances, - switch-off-ongoing + switch-off-ongoing, + not-supported-QCI-value, + measurement-not-supported-for-the-object } @@ -160,8 +215,19 @@ CauseTransport ::= ENUMERATED { ... } -Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ... } +CellBasedMDT::= SEQUENCE { + cellIdListforMDT CellIdListforMDT, + iE-Extensions ProtocolExtensionContainer { {CellBasedMDT-ExtIEs} } OPTIONAL, + ... +} + +CellBasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} +CellIdListforMDT ::= SEQUENCE (SIZE(1..maxnoofCellIDforMDT)) OF ECGI + +Cell-Size ::= ENUMERATED {verysmall, small, medium, large, ... } CellType ::= SEQUENCE { @@ -237,6 +303,13 @@ CriticalityDiagnostics-IE-List-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { CRNTI ::= BIT STRING (SIZE (16)) +CSGMembershipStatus ::= ENUMERATED { + member, + not-member +} + +CSG-Id ::= BIT STRING (SIZE (27)) + CyclicPrefixDL ::= ENUMERATED { normal, extended, @@ -262,6 +335,12 @@ DL-Forwarding ::= ENUMERATED { ... } +DL-GBR-PRB-usage::= INTEGER (0..100) + +DL-non-GBR-PRB-usage::= INTEGER (0..100) + +DL-Total-PRB-usage::= INTEGER (0..100) + -- E EARFCN ::= INTEGER (0..maxEARFCN) @@ -368,7 +447,10 @@ ForbiddenInterRATs ::= ENUMERATED { geran, utran, cdma2000, - ... + ..., + geranandutran, + cdma2000andutran + } ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item @@ -428,6 +510,7 @@ GlobalENB-ID ::= SEQUENCE { GlobalENB-ID-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { ... } + GTPtunnelEndpoint ::= SEQUENCE { transportLayerAddress TransportLayerAddress, gTP-TEID GTP-TEI, @@ -508,6 +591,11 @@ HWLoadIndicator-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { -- I +InvokeIndication ::= ENUMERATED{ + abs-information, + ... +} + IntegrityProtectionAlgorithms ::= BIT STRING (SIZE (16, ...)) InterfacesToTrace ::= BIT STRING (SIZE (8)) @@ -572,6 +660,36 @@ LocationReportingInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::={ -- M +MDT-Activation ::= ENUMERATED { + immediate-MDT-only, + immediate-MDT-and-Trace, + ... +} + +MDT-Configuration ::= SEQUENCE { + mdt-Activation MDT-Activation, + areaScopeOfMDT AreaScopeOfMDT, + measurementsToActivate MeasurementsToActivate, + reportingTriggerMDT ReportingTriggerMDT, + thresholdeventA2 ThresholdEventA2 OPTIONAL, +-- Included in case of event-triggered reporting for measurement M1 + periodicReportingMDT PeriodicReportingMDT OPTIONAL, +-- Included in case of periodic reporting + iE-Extensions ProtocolExtensionContainer { { MDT-Configuration-ExtIEs} } OPTIONAL, + ... +} + +MDT-Configuration-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +MeasurementsToActivate::= BIT STRING (SIZE (8)) + +MeasurementThresholdA2 ::= CHOICE { + threshold-RSRP Threshold-RSRP, + threshold-RSRQ Threshold-RSRQ, + ... +} MME-Group-ID ::= OCTET STRING (SIZE (2)) @@ -593,6 +711,8 @@ MBSFN-Subframe-Info-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { ... } +ManagementBasedMDTallowed ::= ENUMERATED {allowed, ...} + MobilityParametersModificationRange ::= SEQUENCE { handoverTriggerChangeLowerLimit INTEGER (-20..20), handoverTriggerChangeUpperLimit INTEGER (-20..20), @@ -638,6 +758,16 @@ PDCP-SN ::= INTEGER (0..4095) PCI ::= INTEGER (0..503, ...) +PeriodicReportingMDT ::= SEQUENCE { + reportInterval ReportIntervalMDT, + reportAmount ReportAmountMDT, + iE-Extensions ProtocolExtensionContainer { { PeriodicReportingMDT-ExtIEs} } OPTIONAL, + ... +} + +PeriodicReportingMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} PLMN-Identity ::= OCTET STRING (SIZE(3)) @@ -673,6 +803,33 @@ QCI ::= INTEGER (0..255) -- R +RadioframeAllocationOffset ::= INTEGER (0..7, ...) + +RadioframeAllocationPeriod ::= ENUMERATED{ + n1, + n2, + n4, + n8, + n16, + n32, + ... +} + + +RadioResourceStatus ::= SEQUENCE { + dL-GBR-PRB-usage DL-GBR-PRB-usage, + uL-GBR-PRB-usage UL-GBR-PRB-usage, + dL-non-GBR-PRB-usage DL-non-GBR-PRB-usage, + uL-non-GBR-PRB-usage UL-non-GBR-PRB-usage, + dL-Total-PRB-usage DL-Total-PRB-usage, + uL-Total-PRB-usage UL-Total-PRB-usage, + iE-Extensions ProtocolExtensionContainer { {RadioResourceStatus-ExtIEs} } OPTIONAL, + ... +} + +RadioResourceStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} ReceiveStatusofULPDCPSDUs ::= BIT STRING (SIZE(4096)) @@ -697,13 +854,23 @@ RelativeNarrowbandTxPower-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { ... } +ReportAmountMDT ::= ENUMERATED{r1, r2, r4, r8, r16, r32, r64, rinfinity} + ReportArea ::= ENUMERATED{ ecgi, ... } +ReportIntervalMDT ::= ENUMERATED {ms120, ms240, ms480, ms640, ms1024, ms2048, ms5120, ms10240, min1, min6, min12, min30, min60} + ReportCharacteristics ::= BIT STRING (SIZE (32)) +ReportingTriggerMDT::= ENUMERATED{ + periodic, + a2eventtriggered, + ... +} + RNTP-Threshold ::= ENUMERATED { minusInfinity, minusEleven, @@ -726,46 +893,11 @@ RNTP-Threshold ::= ENUMERATED { RRC-Context ::= OCTET STRING - -RadioResourceStatus ::= SEQUENCE { - dL-GBR-PRB-usage DL-GBR-PRB-usage, - uL-GBR-PRB-usage UL-GBR-PRB-usage, - dL-non-GBR-PRB-usage DL-non-GBR-PRB-usage, - uL-non-GBR-PRB-usage UL-non-GBR-PRB-usage, - dL-Total-PRB-usage DL-Total-PRB-usage, - uL-Total-PRB-usage UL-Total-PRB-usage, - iE-Extensions ProtocolExtensionContainer { {RadioResourceStatus-ExtIEs} } OPTIONAL, - ... -} - -RadioResourceStatus-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +RRCConnSetupIndicator::= ENUMERATED { + rrcConnSetup, ... } -DL-GBR-PRB-usage::= INTEGER (0..100) - -UL-GBR-PRB-usage::= INTEGER (0..100) - -DL-non-GBR-PRB-usage::= INTEGER (0..100) - -UL-non-GBR-PRB-usage::= INTEGER (0..100) - -DL-Total-PRB-usage::= INTEGER (0..100) - -UL-Total-PRB-usage::= INTEGER (0..100) - -RadioframeAllocationPeriod ::= ENUMERATED{ - n1, - n2, - n4, - n8, - n16, - n32, - ... -} - -RadioframeAllocationOffset ::= INTEGER (0..7, ...) - -- S S1TNLLoadIndicator ::= SEQUENCE { @@ -805,8 +937,9 @@ ServedCell-Information ::= SEQUENCE { ServedCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { { ID id-Number-of-Antennaports CRITICALITY ignore EXTENSION Number-of-Antennaports PRESENCE optional }| - { ID id-PRACH-Configuration CRITICALITY ignore EXTENSION PRACH-Configuration PRESENCE optional }, - { ID id-MBSFN-Subframe-Info CRITICALITY ignore EXTENSION MBSFN-Subframe-Infolist PRESENCE optional}, + { ID id-PRACH-Configuration CRITICALITY ignore EXTENSION PRACH-Configuration PRESENCE optional }| + { ID id-MBSFN-Subframe-Info CRITICALITY ignore EXTENSION MBSFN-Subframe-Infolist PRESENCE optional }| + { ID id-CSG-Id CRITICALITY ignore EXTENSION CSG-Id PRESENCE optional }, ... } @@ -866,8 +999,33 @@ SubframeAllocation ::= CHOICE { TAC ::= OCTET STRING (SIZE (2)) +TABasedMDT::= SEQUENCE { + tAListforMDT TAListforMDT, + iE-Extensions ProtocolExtensionContainer { {TABasedMDT-ExtIEs} } OPTIONAL, + ... +} + +TABasedMDT-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +TAListforMDT ::= SEQUENCE (SIZE(1..maxnoofTAforMDT)) OF TAC + +ThresholdEventA2 ::= SEQUENCE { + measurementThreshold MeasurementThresholdA2, + iE-Extensions ProtocolExtensionContainer { { ThresholdEventA2-ExtIEs} } OPTIONAL, + ... +} + +ThresholdEventA2-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + TargeteNBtoSource-eNBTransparentContainer ::= OCTET STRING +Threshold-RSRP ::= INTEGER(0..97) + +Threshold-RSRQ ::= INTEGER(0..34) TimeToWait ::= ENUMERATED { v1s, @@ -892,6 +1050,7 @@ traceCollectionEntityIPAddress TraceCollectionEntityIPAddress, } TraceActivation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + { ID id-MDTConfiguration CRITICALITY ignore EXTENSION MDT-Configuration PRESENCE optional}, ... } @@ -936,7 +1095,7 @@ UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-It UE-S1AP-ID ::= INTEGER (0.. 4294967295) -UE-X2AP-ID ::= INTEGER (0..4095) -- Value FFS +UE-X2AP-ID ::= INTEGER (0..4095) UEAggregateMaximumBitRate ::= SEQUENCE { uEaggregateMaximumBitRateDownlink BitRate, @@ -960,6 +1119,12 @@ UESecurityCapabilities-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { ... } +UL-GBR-PRB-usage::= INTEGER (0..100) + +UL-non-GBR-PRB-usage::= INTEGER (0..100) + +UL-Total-PRB-usage::= INTEGER (0..100) + UL-InterferenceOverloadIndication ::= SEQUENCE (SIZE(1..maxnoofPRBs)) OF UL-InterferenceOverloadIndication-Item UL-InterferenceOverloadIndication-Item ::= ENUMERATED { @@ -985,7 +1150,33 @@ UL-HighInterferenceIndicationInfo-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { UL-HighInterferenceIndication ::= BIT STRING (SIZE(1..110, ...)) UE-RLF-Report-Container::= OCTET STRING --- This IE is a transparent container and shall be encoded as the rlfReport field contained in the UEInformationResponse message as defined in [9] +-- This IE is a transparent container and shall be encoded as the rlfReport field contained in the UEInformationResponse message as defined in TS 36.331 [9] + +UsableABSInformation ::= CHOICE { + fdd UsableABSInformationFDD, + tdd UsableABSInformationTDD, + ... +} + +UsableABSInformationFDD ::= SEQUENCE { + usable-abs-pattern-info BIT STRING (SIZE(40)), + iE-Extensions ProtocolExtensionContainer { { UsableABSInformationFDD-ExtIEs} } OPTIONAL, + ... +} + +UsableABSInformationFDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} + +UsableABSInformationTDD ::= SEQUENCE { + usaable-abs-pattern-info BIT STRING (SIZE(1..70, ...)), + iE-Extensions ProtocolExtensionContainer { { UsableABSInformationTDD-ExtIEs} } OPTIONAL, + ... +} + +UsableABSInformationTDD-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} -- V -- W diff --git a/asn1/x2ap/X2AP-PDU-Contents.asn b/asn1/x2ap/X2AP-PDU-Contents.asn index b3d285d26a..833af8be4a 100644 --- a/asn1/x2ap/X2AP-PDU-Contents.asn +++ b/asn1/x2ap/X2AP-PDU-Contents.asn @@ -1,5 +1,5 @@ -- $Id$ --- 3GPP TS 36.423 V9.2.0 (2010-03) +-- 3GPP TS 36.423 V10.3.0 (2011-09) -- 9.3.4 PDU Definitions -- ************************************************************** -- @@ -22,14 +22,17 @@ BEGIN -- ************************************************************** IMPORTS - - AS-SecurityInformation, + ABSInformation, + ABS-Status, + AS-SecurityInformation, Cause, - CompositeAvailableCapacityGroup, + CompositeAvailableCapacityGroup, COUNTvalue, - CriticalityDiagnostics, + CriticalityDiagnostics, CRNTI, - DeactivationIndication, + CSGMembershipStatus, + CSG-Id, + DeactivationIndication, DL-Forwarding, ECGI, E-RAB-ID, @@ -39,22 +42,26 @@ IMPORTS GlobalENB-ID, GTPtunnelEndpoint, GUGroupIDList, - GUMMEI, + GUMMEI, HandoverReportType, HandoverRestrictionList, + InvokeIndication, LocationReportingInformation, - Neighbour-Information, + MDT-Configuration, + ManagementBasedMDTallowed, + Neighbour-Information, PCI, PDCP-SN, PLMN-Identity, ReceiveStatusofULPDCPSDUs, Registration-Request, RelativeNarrowbandTxPower, - RadioResourceStatus, + RadioResourceStatus, + RRCConnSetupIndicator, UE-RLF-Report-Container, RRC-Context, ServedCell-Information, - ServedCells, + ServedCells, ShortMAC-I, SRVCCOperationPossible, SubscriberProfileIDforRFP, @@ -96,17 +103,17 @@ FROM X2AP-IEs X2AP-PROTOCOL-IES-PAIR FROM X2AP-Containers - + id-ABSInformation, id-ActivatedCellList, id-Cause, id-CellInformation, - id-CellInformation-Item, + id-CellInformation-Item, id-CellMeasurementResult, id-CellMeasurementResult-Item, id-CellToReport, - id-CellToReport-Item, + id-CellToReport-Item, id-CompositeAvailableCapacityGroup, - id-CriticalityDiagnostics, + id-CriticalityDiagnostics, id-DeactivationIndication, id-E-RABs-Admitted-Item, id-E-RABs-Admitted-List, @@ -119,11 +126,12 @@ FROM X2AP-Containers id-GUGroupIDToAddList, id-GUGroupIDToDeleteList, id-GUMMEI-ID, + id-InvokeIndication, id-New-eNB-UE-X2AP-ID, id-Old-eNB-UE-X2AP-ID, id-Registration-Request, id-ReportingPeriodicity, - id-ServedCells, + id-ServedCells, id-ServedCellsToActivate, id-ServedCellsToAdd, id-ServedCellsToModify, @@ -139,26 +147,39 @@ FROM X2AP-Containers id-Measurement-ID, id-ReportCharacteristics, id-ENB1-Measurement-ID, - id-ENB2-Measurement-ID, + id-ENB2-Measurement-ID, id-ENB1-Cell-ID, id-ENB2-Cell-ID, id-ENB2-Proposed-Mobility-Parameters, id-ENB1-Mobility-Parameters, - id-ENB2-Mobility-Parameters-Modification-Range, + id-ENB2-Mobility-Parameters-Modification-Range, id-FailureCellPCI, id-Re-establishmentCellECGI, id-FailureCellCRNTI, - id-ShortMAC-I, + id-ShortMAC-I, id-SourceCellECGI, id-FailureCellECGI, - id-Re-establishmentCellECGI, - id-HandoverReportType, - id-UE-RLF-Report-Container, - - - maxCellineNB, + id-HandoverReportType, + id-UE-RLF-Report-Container, + id-PartialSuccessIndicator, + id-MeasurementInitiationResult-List, + id-MeasurementInitiationResult-Item, + id-MeasurementFailureCause-Item, + id-CompleteFailureCauseInformation-List, + id-CompleteFailureCauseInformation-Item, + id-CSGMembershipStatus, + id-CSG-Id, + id-MDTConfiguration, + id-ManagementBasedMDTallowed, + id-ABS-Status, + id-RRCConnSetupIndicator, + + maxCellineNB, maxnoofBearers, - maxnoofPDCP-SN + maxnoofPDCP-SN, + maxFailedMeasObjects, + maxnoofCellIDforMDT, + maxnoofTAforMDT FROM X2AP-Constants; @@ -174,14 +195,15 @@ HandoverRequest ::= SEQUENCE { } HandoverRequest-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory } | - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } | - { ID id-TargetCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory } | - { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory } | - { ID id-UE-ContextInformation CRITICALITY reject TYPE UE-ContextInformation PRESENCE mandatory } | - { ID id-UE-HistoryInformation CRITICALITY ignore TYPE UE-HistoryInformation PRESENCE mandatory } | - { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional } | - { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional }, + { ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-TargetCell-ID CRITICALITY reject TYPE ECGI PRESENCE mandatory }| + { ID id-GUMMEI-ID CRITICALITY reject TYPE GUMMEI PRESENCE mandatory }| + { ID id-UE-ContextInformation CRITICALITY reject TYPE UE-ContextInformation PRESENCE mandatory }| + { ID id-UE-HistoryInformation CRITICALITY ignore TYPE UE-HistoryInformation PRESENCE mandatory }| + { ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional}| + { ID id-SRVCCOperationPossible CRITICALITY ignore TYPE SRVCCOperationPossible PRESENCE optional}| + { ID id-CSGMembershipStatus CRITICALITY reject TYPE CSGMembershipStatus PRESENCE optional}, ... } @@ -192,7 +214,7 @@ UE-ContextInformation ::= SEQUENCE { uEaggregateMaximumBitRate UEAggregateMaximumBitRate, subscriberProfileIDforRFP SubscriberProfileIDforRFP OPTIONAL, e-RABs-ToBeSetup-List E-RABs-ToBeSetup-List, - rRC-Context RRC-Context, + rRC-Context RRC-Context, handoverRestrictionList HandoverRestrictionList OPTIONAL, locationReportingInformation LocationReportingInformation OPTIONAL, iE-Extensions ProtocolExtensionContainer { {UE-ContextInformation-ExtIEs} } OPTIONAL, @@ -200,6 +222,7 @@ UE-ContextInformation ::= SEQUENCE { } UE-ContextInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-ManagementBasedMDTallowed CRITICALITY ignore EXTENSION ManagementBasedMDTallowed PRESENCE optional }, ... } @@ -528,6 +551,8 @@ CellInformation-Item ::= SEQUENCE { } CellInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { +{ ID id-ABSInformation CRITICALITY ignore EXTENSION ABSInformation PRESENCE optional }| +{ ID id-InvokeIndication CRITICALITY ignore EXTENSION InvokeIndication PRESENCE optional }, ... } @@ -619,10 +644,11 @@ ResourceStatusRequest ::= SEQUENCE { ResourceStatusRequest-IEs X2AP-PROTOCOL-IES ::= { { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| { ID id-ENB2-Measurement-ID CRITICALITY ignore TYPE Measurement-ID PRESENCE conditional}|-- The IE shall be present if the Registration Request IE is set to “Stop”-- - { ID id-Registration-Request CRITICALITY reject TYPE Registration-Request PRESENCE mandatory} | - { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE optional} | - { ID id-CellToReport CRITICALITY ignore TYPE CellToReport-List PRESENCE mandatory} | - { ID id-ReportingPeriodicity CRITICALITY ignore TYPE ReportingPeriodicity PRESENCE optional} , + { ID id-Registration-Request CRITICALITY reject TYPE Registration-Request PRESENCE mandatory}| + { ID id-ReportCharacteristics CRITICALITY reject TYPE ReportCharacteristics PRESENCE optional}| + { ID id-CellToReport CRITICALITY ignore TYPE CellToReport-List PRESENCE mandatory}| + { ID id-ReportingPeriodicity CRITICALITY ignore TYPE ReportingPeriodicity PRESENCE optional}| + { ID id-PartialSuccessIndicator CRITICALITY ignore TYPE PartialSuccessIndicator PRESENCE optional}, ... } @@ -652,6 +678,10 @@ ReportingPeriodicity ::= ENUMERATED { ... } +PartialSuccessIndicator ::= ENUMERATED { + partial-success-allowed, +... +} -- ************************************************************** -- @@ -665,12 +695,47 @@ ResourceStatusResponse ::= SEQUENCE { } ResourceStatusResponse-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-MeasurementInitiationResult-List CRITICALITY ignore TYPE MeasurementInitiationResult-List PRESENCE optional}, + ... +} + + +MeasurementInitiationResult-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { { MeasurementInitiationResult-ItemIEs} } + +MeasurementInitiationResult-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-MeasurementInitiationResult-Item CRITICALITY ignore TYPE MeasurementInitiationResult-Item PRESENCE mandatory} +} + +MeasurementInitiationResult-Item ::= SEQUENCE { + cell-ID ECGI, + measurementFailureCause-List MeasurementFailureCause-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { { MeasurementInitiationResult-Item-ExtIEs} } OPTIONAL, + ... +} + +MeasurementInitiationResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { ... } +MeasurementFailureCause-List ::= SEQUENCE (SIZE (1..maxFailedMeasObjects)) OF ProtocolIE-Single-Container { { MeasurementFailureCause-ItemIEs} } + +MeasurementFailureCause-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-MeasurementFailureCause-Item CRITICALITY ignore TYPE MeasurementFailureCause-Item PRESENCE mandatory} +} + +MeasurementFailureCause-Item ::= SEQUENCE { + measurementFailedReportCharacteristics ReportCharacteristics, + cause Cause, + iE-Extensions ProtocolExtensionContainer { { MeasurementFailureCause-Item-ExtIEs} } OPTIONAL, + ... +} + +MeasurementFailureCause-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} -- ************************************************************** -- @@ -684,13 +749,30 @@ ResourceStatusFailure ::= SEQUENCE { } ResourceStatusFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} | - { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, + { ID id-ENB1-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-ENB2-Measurement-ID CRITICALITY reject TYPE Measurement-ID PRESENCE mandatory}| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory}| + { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional}| + { ID id-CompleteFailureCauseInformation-List CRITICALITY ignore TYPE CompleteFailureCauseInformation-List PRESENCE optional}, + ... +} + +CompleteFailureCauseInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CompleteFailureCauseInformation-ItemIEs} } + +CompleteFailureCauseInformation-ItemIEs X2AP-PROTOCOL-IES ::= { + { ID id-CompleteFailureCauseInformation-Item CRITICALITY ignore TYPE CompleteFailureCauseInformation-Item PRESENCE mandatory} +} + +CompleteFailureCauseInformation-Item ::= SEQUENCE { + cell-ID ECGI, + measurementFailureCause-List MeasurementFailureCause-List, + iE-Extensions ProtocolExtensionContainer { { CompleteFailureCauseInformation-Item-ExtIEs} } OPTIONAL, ... } +CompleteFailureCauseInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { + ... +} -- ************************************************************** -- @@ -718,15 +800,16 @@ CellMeasurementResult-ItemIEs X2AP-PROTOCOL-IES ::= { CellMeasurementResult-Item ::= SEQUENCE { cell-ID ECGI, - hWOverLoadIndicator HWLoadIndicator OPTIONAL, - s1TNLOverLoadIndicator S1TNLLoadIndicator OPTIONAL, + hWLoadIndicator HWLoadIndicator OPTIONAL, + s1TNLLoadIndicator S1TNLLoadIndicator OPTIONAL, radioResourceStatus RadioResourceStatus OPTIONAL, iE-Extensions ProtocolExtensionContainer { {CellMeasurementResult-Item-ExtIEs} } OPTIONAL, ... } CellMeasurementResult-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= { -{ ID id-CompositeAvailableCapacityGroup CRITICALITY ignore EXTENSION CompositeAvailableCapacityGroup PRESENCE optional }, + { ID id-CompositeAvailableCapacityGroup CRITICALITY ignore EXTENSION CompositeAvailableCapacityGroup PRESENCE optional}| + { ID id-ABS-Status CRITICALITY ignore EXTENSION ABS-Status PRESENCE optional}, ... } @@ -817,11 +900,12 @@ RLFIndication ::= SEQUENCE { } RLFIndication-IEs X2AP-PROTOCOL-IES ::= { - { ID id-FailureCellPCI CRITICALITY ignore TYPE PCI PRESENCE mandatory}| - { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| - { ID id-FailureCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE mandatory}| - { ID id-ShortMAC-I CRITICALITY ignore TYPE ShortMAC-I PRESENCE optional}| - { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}, + { ID id-FailureCellPCI CRITICALITY ignore TYPE PCI PRESENCE mandatory}| + { ID id-Re-establishmentCellECGI CRITICALITY ignore TYPE ECGI PRESENCE mandatory}| + { ID id-FailureCellCRNTI CRITICALITY ignore TYPE CRNTI PRESENCE mandatory}| + { ID id-ShortMAC-I CRITICALITY ignore TYPE ShortMAC-I PRESENCE optional}| + { ID id-UE-RLF-Report-Container CRITICALITY ignore TYPE UE-RLF-Report-Container PRESENCE optional}| + { ID id-RRCConnSetupIndicator CRITICALITY reject TYPE RRCConnSetupIndicator PRESENCE optional}, ... } @@ -895,7 +979,7 @@ CellActivationFailure ::= SEQUENCE { } CellActivationFailure-IEs X2AP-PROTOCOL-IES ::= { - { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }| { ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }, ... } diff --git a/asn1/x2ap/X2AP-PDU-Descriptions.asn b/asn1/x2ap/X2AP-PDU-Descriptions.asn index 4f535f6c5b..63756c0c67 100644 --- a/asn1/x2ap/X2AP-PDU-Descriptions.asn +++ b/asn1/x2ap/X2AP-PDU-Descriptions.asn @@ -1,5 +1,5 @@ -- $Id$ --- 3GPP TS 36.423 V9.2.0 (2010-03) +-- 3GPP TS 36.423 V10.3.0 (2011-09) -- 9.3.3 Elementary Procedure Definitions -- ************************************************************** -- @@ -50,11 +50,12 @@ FROM X2AP-CommonDataTypes RLFIndication, SNStatusTransfer, UEContextRelease, - X2SetupFailure, X2SetupRequest, + X2SetupFailure, + X2SetupRequest, X2SetupResponse, MobilityChangeRequest, MobilityChangeAcknowledge, - MobilityChangeFailure + MobilityChangeFailure diff --git a/asn1/x2ap/x2ap.cnf b/asn1/x2ap/x2ap.cnf index 7def384789..2b4b1c2008 100644 --- a/asn1/x2ap/x2ap.cnf +++ b/asn1/x2ap/x2ap.cnf @@ -221,7 +221,21 @@ id-ServedCellsToActivate ProtocolIE-ID id-ActivatedCellList ProtocolIE-ID id-DeactivationIndication ProtocolIE-ID id-UE-RLF-Report-Container ProtocolIE-ID - +id-ABSInformation ProtocolIE-ID +id-InvokeIndication ProtocolIE-ID +id-ABS-Status ProtocolIE-ID +id-PartialSuccessIndicator ProtocolIE-ID +id-MeasurementInitiationResult-List ProtocolIE-ID +id-MeasurementInitiationResult-Item ProtocolIE-ID +id-MeasurementFailureCause-Item ProtocolIE-ID +id-CompleteFailureCauseInformation-List ProtocolIE-ID +id-CompleteFailureCauseInformation-Item ProtocolIE-ID +id-CSG-Id ProtocolIE-ID +id-CSGMembershipStatus ProtocolIE-ID +id-MDTConfiguration ProtocolIE-ID +id-ManagementBasedMDTallowed ProtocolIE-ID +id-RRCConnSetupIndicator ProtocolIE-ID + #.REGISTER_NEW #X2AP-PROTOCOL-IES @@ -280,6 +294,15 @@ HandoverReportType N x2ap.ies id-HandoverReportType UE-RLF-Report-Container N x2ap.ies id-UE-RLF-Report-Container ServedCellsToActivate N x2ap.ies id-ServedCellsToActivate ActivatedCellList N x2ap.ies id-ActivatedCellList +PartialSuccessIndicator N x2ap.ies id-PartialSuccessIndicator +MeasurementInitiationResult-List N x2ap.ies id-MeasurementInitiationResult-List +MeasurementInitiationResult-Item N x2ap.ies id-MeasurementInitiationResult-Item +MeasurementFailureCause-Item N x2ap.ies id-MeasurementFailureCause-Item +CompleteFailureCauseInformation-List N x2ap.ies id-CompleteFailureCauseInformation-List +CompleteFailureCauseInformation-Item N x2ap.ies id-CompleteFailureCauseInformation-Item +CSGMembershipStatus N x2ap.ies id-CSGMembershipStatus +RRCConnSetupIndicator N x2ap.ies id-RRCConnSetupIndicator + #X2AP-PROTOCOL-EXTENSION Number-of-Antennaports N x2ap.extension id-Number-of-Antennaports @@ -288,6 +311,13 @@ PRACH-Configuration N x2ap.extension id-PRACH-Configuration MBSFN-Subframe-Infolist N x2ap.extension id-MBSFN-Subframe-Info DeactivationIndication N x2ap.extension id-DeactivationIndication +ABSInformation N x2ap.extension id-ABSInformation +InvokeIndication N x2ap.extension id-InvokeIndication +ABS-Status N x2ap.extension id-ABS-Status +CSG-Id N x2ap.extension id-CSG-Id +MDT-Configuration N x2ap.extension id-MDTConfiguration +ManagementBasedMDTallowed N x2ap.extension id-ManagementBasedMDTallowed + # X2AP-PDU-Descriptions.asn Interface Elementary Procedures #X2AP-ELEMENTARY-PROCEDURE HandoverRequest N x2ap.proc.imsg id-handoverPreparation diff --git a/epan/dissectors/packet-x2ap.c b/epan/dissectors/packet-x2ap.c index e07f2ebc8b..08ccf2a8de 100644 --- a/epan/dissectors/packet-x2ap.c +++ b/epan/dissectors/packet-x2ap.c @@ -86,6 +86,9 @@ #define maxPools 16 #define maxnoofCells 16 #define maxnoofMBSFN 8 +#define maxFailedMeasObjects 32 +#define maxnoofCellIDforMDT 32 +#define maxnoofTAforMDT 8 typedef enum _ProcedureCode_enum { id_handoverPreparation = 0, @@ -166,7 +169,21 @@ typedef enum _ProtocolIE_ID_enum { id_ServedCellsToActivate = 57, id_ActivatedCellList = 58, id_DeactivationIndication = 59, - id_UE_RLF_Report_Container = 60 + id_UE_RLF_Report_Container = 60, + id_ABSInformation = 61, + id_InvokeIndication = 62, + id_ABS_Status = 63, + id_PartialSuccessIndicator = 64, + id_MeasurementInitiationResult_List = 65, + id_MeasurementInitiationResult_Item = 66, + id_MeasurementFailureCause_Item = 67, + id_CompleteFailureCauseInformation_List = 68, + id_CompleteFailureCauseInformation_Item = 69, + id_CSG_Id = 70, + id_CSGMembershipStatus = 71, + id_MDTConfiguration = 72, + id_ManagementBasedMDTallowed = 74, + id_RRCConnSetupIndicator = 75 } ProtocolIE_ID_enum; /*--- End of included file: packet-x2ap-val.h ---*/ @@ -179,10 +196,14 @@ static int hf_x2ap_transportLayerAddressIPv6 = -1; /*--- Included file: packet-x2ap-hf.c ---*/ #line 1 "../../asn1/x2ap/packet-x2ap-hf.c" +static int hf_x2ap_ABSInformation_PDU = -1; /* ABSInformation */ +static int hf_x2ap_ABS_Status_PDU = -1; /* ABS_Status */ static int hf_x2ap_Cause_PDU = -1; /* Cause */ static int hf_x2ap_CompositeAvailableCapacityGroup_PDU = -1; /* CompositeAvailableCapacityGroup */ static int hf_x2ap_CriticalityDiagnostics_PDU = -1; /* CriticalityDiagnostics */ static int hf_x2ap_CRNTI_PDU = -1; /* CRNTI */ +static int hf_x2ap_CSGMembershipStatus_PDU = -1; /* CSGMembershipStatus */ +static int hf_x2ap_CSG_Id_PDU = -1; /* CSG_Id */ static int hf_x2ap_DeactivationIndication_PDU = -1; /* DeactivationIndication */ static int hf_x2ap_ECGI_PDU = -1; /* ECGI */ static int hf_x2ap_E_RAB_List_PDU = -1; /* E_RAB_List */ @@ -191,8 +212,11 @@ static int hf_x2ap_GlobalENB_ID_PDU = -1; /* GlobalENB_ID */ static int hf_x2ap_GUGroupIDList_PDU = -1; /* GUGroupIDList */ static int hf_x2ap_GUMMEI_PDU = -1; /* GUMMEI */ static int hf_x2ap_HandoverReportType_PDU = -1; /* HandoverReportType */ +static int hf_x2ap_InvokeIndication_PDU = -1; /* InvokeIndication */ +static int hf_x2ap_MDT_Configuration_PDU = -1; /* MDT_Configuration */ static int hf_x2ap_Measurement_ID_PDU = -1; /* Measurement_ID */ static int hf_x2ap_MBSFN_Subframe_Infolist_PDU = -1; /* MBSFN_Subframe_Infolist */ +static int hf_x2ap_ManagementBasedMDTallowed_PDU = -1; /* ManagementBasedMDTallowed */ static int hf_x2ap_MobilityParametersModificationRange_PDU = -1; /* MobilityParametersModificationRange */ static int hf_x2ap_MobilityParametersInformation_PDU = -1; /* MobilityParametersInformation */ static int hf_x2ap_Number_of_Antennaports_PDU = -1; /* Number_of_Antennaports */ @@ -200,6 +224,7 @@ static int hf_x2ap_PCI_PDU = -1; /* PCI */ static int hf_x2ap_PRACH_Configuration_PDU = -1; /* PRACH_Configuration */ static int hf_x2ap_Registration_Request_PDU = -1; /* Registration_Request */ static int hf_x2ap_ReportCharacteristics_PDU = -1; /* ReportCharacteristics */ +static int hf_x2ap_RRCConnSetupIndicator_PDU = -1; /* RRCConnSetupIndicator */ static int hf_x2ap_ServedCells_PDU = -1; /* ServedCells */ static int hf_x2ap_ShortMAC_I_PDU = -1; /* ShortMAC_I */ static int hf_x2ap_SRVCCOperationPossible_PDU = -1; /* SRVCCOperationPossible */ @@ -240,8 +265,14 @@ static int hf_x2ap_ResourceStatusRequest_PDU = -1; /* ResourceStatusRequest */ static int hf_x2ap_CellToReport_List_PDU = -1; /* CellToReport_List */ static int hf_x2ap_CellToReport_Item_PDU = -1; /* CellToReport_Item */ static int hf_x2ap_ReportingPeriodicity_PDU = -1; /* ReportingPeriodicity */ +static int hf_x2ap_PartialSuccessIndicator_PDU = -1; /* PartialSuccessIndicator */ static int hf_x2ap_ResourceStatusResponse_PDU = -1; /* ResourceStatusResponse */ +static int hf_x2ap_MeasurementInitiationResult_List_PDU = -1; /* MeasurementInitiationResult_List */ +static int hf_x2ap_MeasurementInitiationResult_Item_PDU = -1; /* MeasurementInitiationResult_Item */ +static int hf_x2ap_MeasurementFailureCause_Item_PDU = -1; /* MeasurementFailureCause_Item */ static int hf_x2ap_ResourceStatusFailure_PDU = -1; /* ResourceStatusFailure */ +static int hf_x2ap_CompleteFailureCauseInformation_List_PDU = -1; /* CompleteFailureCauseInformation_List */ +static int hf_x2ap_CompleteFailureCauseInformation_Item_PDU = -1; /* CompleteFailureCauseInformation_Item */ static int hf_x2ap_ResourceStatusUpdate_PDU = -1; /* ResourceStatusUpdate */ static int hf_x2ap_CellMeasurementResult_List_PDU = -1; /* CellMeasurementResult_List */ static int hf_x2ap_CellMeasurementResult_Item_PDU = -1; /* CellMeasurementResult_Item */ @@ -268,17 +299,33 @@ static int hf_x2ap_extensionValue = -1; /* T_extensionValue */ static int hf_x2ap_PrivateIE_Container_item = -1; /* PrivateIE_Field */ static int hf_x2ap_private_id = -1; /* PrivateIE_ID */ static int hf_x2ap_privateIE_Field_value = -1; /* PrivateIE_Field_value */ +static int hf_x2ap_fdd = -1; /* ABSInformationFDD */ +static int hf_x2ap_tdd = -1; /* ABSInformationTDD */ +static int hf_x2ap_abs_inactive = -1; /* NULL */ +static int hf_x2ap_abs_pattern_info = -1; /* BIT_STRING_SIZE_40 */ +static int hf_x2ap_numberOfCellSpecificAntennaPorts = -1; /* T_numberOfCellSpecificAntennaPorts */ +static int hf_x2ap_measurement_subset = -1; /* BIT_STRING_SIZE_40 */ +static int hf_x2ap_iE_Extensions = -1; /* ProtocolExtensionContainer */ +static int hf_x2ap_abs_pattern_info_01 = -1; /* BIT_STRING_SIZE_1_70_ */ +static int hf_x2ap_numberOfCellSpecificAntennaPorts_01 = -1; /* T_numberOfCellSpecificAntennaPorts_01 */ +static int hf_x2ap_measurement_subset_01 = -1; /* BIT_STRING_SIZE_1_70_ */ +static int hf_x2ap_dL_ABS_status = -1; /* DL_ABS_status */ +static int hf_x2ap_usableABSInformation = -1; /* UsableABSInformation */ static int hf_x2ap_key_eNodeB_star = -1; /* Key_eNodeB_Star */ static int hf_x2ap_nextHopChainingCount = -1; /* NextHopChainingCount */ -static int hf_x2ap_iE_Extensions = -1; /* ProtocolExtensionContainer */ static int hf_x2ap_priorityLevel = -1; /* PriorityLevel */ static int hf_x2ap_pre_emptionCapability = -1; /* Pre_emptionCapability */ static int hf_x2ap_pre_emptionVulnerability = -1; /* Pre_emptionVulnerability */ +static int hf_x2ap_cellBased = -1; /* CellBasedMDT */ +static int hf_x2ap_tABased = -1; /* TABasedMDT */ +static int hf_x2ap_pLMNWide = -1; /* NULL */ static int hf_x2ap_BroadcastPLMNs_Item_item = -1; /* PLMN_Identity */ static int hf_x2ap_radioNetwork = -1; /* CauseRadioNetwork */ static int hf_x2ap_transport = -1; /* CauseTransport */ static int hf_x2ap_protocol = -1; /* CauseProtocol */ static int hf_x2ap_misc = -1; /* CauseMisc */ +static int hf_x2ap_cellIdListforMDT = -1; /* CellIdListforMDT */ +static int hf_x2ap_CellIdListforMDT_item = -1; /* ECGI */ static int hf_x2ap_cell_Size = -1; /* Cell_Size */ static int hf_x2ap_dL_CompositeAvailableCapacity = -1; /* CompositeAvailableCapacity */ static int hf_x2ap_uL_CompositeAvailableCapacity = -1; /* CompositeAvailableCapacity */ @@ -348,6 +395,14 @@ static int hf_x2ap_time_UE_StayedInCell = -1; /* Time_UE_StayedInCell */ static int hf_x2ap_undefined = -1; /* NULL */ static int hf_x2ap_eventType = -1; /* EventType */ static int hf_x2ap_reportArea = -1; /* ReportArea */ +static int hf_x2ap_mdt_Activation = -1; /* MDT_Activation */ +static int hf_x2ap_areaScopeOfMDT = -1; /* AreaScopeOfMDT */ +static int hf_x2ap_measurementsToActivate = -1; /* MeasurementsToActivate */ +static int hf_x2ap_reportingTriggerMDT = -1; /* ReportingTriggerMDT */ +static int hf_x2ap_thresholdeventA2 = -1; /* ThresholdEventA2 */ +static int hf_x2ap_periodicReportingMDT = -1; /* PeriodicReportingMDT */ +static int hf_x2ap_threshold_RSRP = -1; /* Threshold_RSRP */ +static int hf_x2ap_threshold_RSRQ = -1; /* Threshold_RSRQ */ static int hf_x2ap_MBSFN_Subframe_Infolist_item = -1; /* MBSFN_Subframe_Info */ static int hf_x2ap_radioframeAllocationPeriod = -1; /* RadioframeAllocationPeriod */ static int hf_x2ap_radioframeAllocationOffset = -1; /* RadioframeAllocationOffset */ @@ -358,22 +413,24 @@ static int hf_x2ap_handoverTriggerChange = -1; /* INTEGER_M20_20 */ static int hf_x2ap_Neighbour_Information_item = -1; /* Neighbour_Information_item */ static int hf_x2ap_eCGI = -1; /* ECGI */ static int hf_x2ap_pCI = -1; /* PCI */ +static int hf_x2ap_reportInterval = -1; /* ReportIntervalMDT */ +static int hf_x2ap_reportAmount = -1; /* ReportAmountMDT */ static int hf_x2ap_rootSequenceIndex = -1; /* INTEGER_0_837 */ static int hf_x2ap_zeroCorrelationIndex = -1; /* INTEGER_0_15 */ static int hf_x2ap_highSpeedFlag = -1; /* BOOLEAN */ static int hf_x2ap_prach_FreqOffset = -1; /* INTEGER_0_94 */ static int hf_x2ap_prach_ConfigIndex = -1; /* INTEGER_0_63 */ -static int hf_x2ap_rNTP_PerPRB = -1; /* BIT_STRING_SIZE_6_110_ */ -static int hf_x2ap_rNTP_Threshold = -1; /* RNTP_Threshold */ -static int hf_x2ap_numberOfCellSpecificAntennaPorts = -1; /* T_numberOfCellSpecificAntennaPorts */ -static int hf_x2ap_p_B = -1; /* INTEGER_0_3_ */ -static int hf_x2ap_pDCCH_InterferenceImpact = -1; /* INTEGER_0_4_ */ static int hf_x2ap_dL_GBR_PRB_usage = -1; /* DL_GBR_PRB_usage */ static int hf_x2ap_uL_GBR_PRB_usage = -1; /* UL_GBR_PRB_usage */ static int hf_x2ap_dL_non_GBR_PRB_usage = -1; /* DL_non_GBR_PRB_usage */ static int hf_x2ap_uL_non_GBR_PRB_usage = -1; /* UL_non_GBR_PRB_usage */ static int hf_x2ap_dL_Total_PRB_usage = -1; /* DL_Total_PRB_usage */ static int hf_x2ap_uL_Total_PRB_usage = -1; /* UL_Total_PRB_usage */ +static int hf_x2ap_rNTP_PerPRB = -1; /* BIT_STRING_SIZE_6_110_ */ +static int hf_x2ap_rNTP_Threshold = -1; /* RNTP_Threshold */ +static int hf_x2ap_numberOfCellSpecificAntennaPorts_02 = -1; /* T_numberOfCellSpecificAntennaPorts_02 */ +static int hf_x2ap_p_B = -1; /* INTEGER_0_3_ */ +static int hf_x2ap_pDCCH_InterferenceImpact = -1; /* INTEGER_0_4_ */ static int hf_x2ap_dLS1TNLLoadIndicator = -1; /* LoadIndicator */ static int hf_x2ap_uLS1TNLLoadIndicator = -1; /* LoadIndicator */ static int hf_x2ap_ServedCells_item = -1; /* ServedCells_item */ @@ -388,6 +445,9 @@ static int hf_x2ap_cyclicPrefixDL = -1; /* CyclicPrefixDL */ static int hf_x2ap_cyclicPrefixUL = -1; /* CyclicPrefixUL */ static int hf_x2ap_oneframe = -1; /* Oneframe */ static int hf_x2ap_fourframes = -1; /* Fourframes */ +static int hf_x2ap_tAListforMDT = -1; /* TAListforMDT */ +static int hf_x2ap_TAListforMDT_item = -1; /* TAC */ +static int hf_x2ap_measurementThreshold = -1; /* MeasurementThresholdA2 */ static int hf_x2ap_eUTRANTraceID = -1; /* EUTRANTraceID */ static int hf_x2ap_interfacesToTrace = -1; /* InterfacesToTrace */ static int hf_x2ap_traceDepth = -1; /* TraceDepth */ @@ -401,6 +461,10 @@ static int hf_x2ap_UL_InterferenceOverloadIndication_item = -1; /* UL_Interfere static int hf_x2ap_UL_HighInterferenceIndicationInfo_item = -1; /* UL_HighInterferenceIndicationInfo_Item */ static int hf_x2ap_target_Cell_ID = -1; /* ECGI */ static int hf_x2ap_ul_interferenceindication = -1; /* UL_HighInterferenceIndication */ +static int hf_x2ap_fdd_01 = -1; /* UsableABSInformationFDD */ +static int hf_x2ap_tdd_01 = -1; /* UsableABSInformationTDD */ +static int hf_x2ap_usable_abs_pattern_info = -1; /* BIT_STRING_SIZE_40 */ +static int hf_x2ap_usaable_abs_pattern_info = -1; /* BIT_STRING_SIZE_1_70_ */ static int hf_x2ap_protocolIEs = -1; /* ProtocolIE_Container */ static int hf_x2ap_mME_UE_S1AP_ID = -1; /* UE_S1AP_ID */ static int hf_x2ap_uESecurityCapabilities = -1; /* UESecurityCapabilities */ @@ -431,9 +495,14 @@ static int hf_x2ap_ServedCellsToModify_item = -1; /* ServedCellsToModify_Item * static int hf_x2ap_old_ecgi = -1; /* ECGI */ static int hf_x2ap_Old_ECGIs_item = -1; /* ECGI */ static int hf_x2ap_CellToReport_List_item = -1; /* ProtocolIE_Single_Container */ +static int hf_x2ap_MeasurementInitiationResult_List_item = -1; /* ProtocolIE_Single_Container */ +static int hf_x2ap_measurementFailureCause_List = -1; /* MeasurementFailureCause_List */ +static int hf_x2ap_MeasurementFailureCause_List_item = -1; /* ProtocolIE_Single_Container */ +static int hf_x2ap_measurementFailedReportCharacteristics = -1; /* ReportCharacteristics */ +static int hf_x2ap_CompleteFailureCauseInformation_List_item = -1; /* ProtocolIE_Single_Container */ static int hf_x2ap_CellMeasurementResult_List_item = -1; /* ProtocolIE_Single_Container */ -static int hf_x2ap_hWOverLoadIndicator = -1; /* HWLoadIndicator */ -static int hf_x2ap_s1TNLOverLoadIndicator = -1; /* S1TNLLoadIndicator */ +static int hf_x2ap_hWLoadIndicator = -1; /* HWLoadIndicator */ +static int hf_x2ap_s1TNLLoadIndicator = -1; /* S1TNLLoadIndicator */ static int hf_x2ap_radioResourceStatus = -1; /* RadioResourceStatus */ static int hf_x2ap_privateIEs = -1; /* PrivateIE_Container */ static int hf_x2ap_ServedCellsToActivate_item = -1; /* ServedCellsToActivate_Item */ @@ -462,10 +531,17 @@ static gint ett_x2ap_ProtocolExtensionContainer = -1; static gint ett_x2ap_ProtocolExtensionField = -1; static gint ett_x2ap_PrivateIE_Container = -1; static gint ett_x2ap_PrivateIE_Field = -1; +static gint ett_x2ap_ABSInformation = -1; +static gint ett_x2ap_ABSInformationFDD = -1; +static gint ett_x2ap_ABSInformationTDD = -1; +static gint ett_x2ap_ABS_Status = -1; static gint ett_x2ap_AS_SecurityInformation = -1; static gint ett_x2ap_AllocationAndRetentionPriority = -1; +static gint ett_x2ap_AreaScopeOfMDT = -1; static gint ett_x2ap_BroadcastPLMNs_Item = -1; static gint ett_x2ap_Cause = -1; +static gint ett_x2ap_CellBasedMDT = -1; +static gint ett_x2ap_CellIdListforMDT = -1; static gint ett_x2ap_CellType = -1; static gint ett_x2ap_CompositeAvailableCapacityGroup = -1; static gint ett_x2ap_CompositeAvailableCapacity = -1; @@ -500,21 +576,27 @@ static gint ett_x2ap_LastVisitedCell_Item = -1; static gint ett_x2ap_LastVisitedEUTRANCellInformation = -1; static gint ett_x2ap_LastVisitedGERANCellInformation = -1; static gint ett_x2ap_LocationReportingInformation = -1; +static gint ett_x2ap_MDT_Configuration = -1; +static gint ett_x2ap_MeasurementThresholdA2 = -1; static gint ett_x2ap_MBSFN_Subframe_Infolist = -1; static gint ett_x2ap_MBSFN_Subframe_Info = -1; static gint ett_x2ap_MobilityParametersModificationRange = -1; static gint ett_x2ap_MobilityParametersInformation = -1; static gint ett_x2ap_Neighbour_Information = -1; static gint ett_x2ap_Neighbour_Information_item = -1; +static gint ett_x2ap_PeriodicReportingMDT = -1; static gint ett_x2ap_PRACH_Configuration = -1; -static gint ett_x2ap_RelativeNarrowbandTxPower = -1; static gint ett_x2ap_RadioResourceStatus = -1; +static gint ett_x2ap_RelativeNarrowbandTxPower = -1; static gint ett_x2ap_S1TNLLoadIndicator = -1; static gint ett_x2ap_ServedCells = -1; static gint ett_x2ap_ServedCells_item = -1; static gint ett_x2ap_ServedCell_Information = -1; static gint ett_x2ap_SpecialSubframe_Info = -1; static gint ett_x2ap_SubframeAllocation = -1; +static gint ett_x2ap_TABasedMDT = -1; +static gint ett_x2ap_TAListforMDT = -1; +static gint ett_x2ap_ThresholdEventA2 = -1; static gint ett_x2ap_TraceActivation = -1; static gint ett_x2ap_UE_HistoryInformation = -1; static gint ett_x2ap_UEAggregateMaximumBitRate = -1; @@ -522,6 +604,9 @@ static gint ett_x2ap_UESecurityCapabilities = -1; static gint ett_x2ap_UL_InterferenceOverloadIndication = -1; static gint ett_x2ap_UL_HighInterferenceIndicationInfo = -1; static gint ett_x2ap_UL_HighInterferenceIndicationInfo_Item = -1; +static gint ett_x2ap_UsableABSInformation = -1; +static gint ett_x2ap_UsableABSInformationFDD = -1; +static gint ett_x2ap_UsableABSInformationTDD = -1; static gint ett_x2ap_HandoverRequest = -1; static gint ett_x2ap_UE_ContextInformation = -1; static gint ett_x2ap_E_RABs_ToBeSetup_List = -1; @@ -555,7 +640,13 @@ static gint ett_x2ap_ResourceStatusRequest = -1; static gint ett_x2ap_CellToReport_List = -1; static gint ett_x2ap_CellToReport_Item = -1; static gint ett_x2ap_ResourceStatusResponse = -1; +static gint ett_x2ap_MeasurementInitiationResult_List = -1; +static gint ett_x2ap_MeasurementInitiationResult_Item = -1; +static gint ett_x2ap_MeasurementFailureCause_List = -1; +static gint ett_x2ap_MeasurementFailureCause_Item = -1; static gint ett_x2ap_ResourceStatusFailure = -1; +static gint ett_x2ap_CompleteFailureCauseInformation_List = -1; +static gint ett_x2ap_CompleteFailureCauseInformation_Item = -1; static gint ett_x2ap_ResourceStatusUpdate = -1; static gint ett_x2ap_CellMeasurementResult_List = -1; static gint ett_x2ap_CellMeasurementResult_Item = -1; @@ -759,6 +850,20 @@ static const value_string x2ap_ProtocolIE_ID_vals[] = { { id_ActivatedCellList, "id-ActivatedCellList" }, { id_DeactivationIndication, "id-DeactivationIndication" }, { id_UE_RLF_Report_Container, "id-UE-RLF-Report-Container" }, + { id_ABSInformation, "id-ABSInformation" }, + { id_InvokeIndication, "id-InvokeIndication" }, + { id_ABS_Status, "id-ABS-Status" }, + { id_PartialSuccessIndicator, "id-PartialSuccessIndicator" }, + { id_MeasurementInitiationResult_List, "id-MeasurementInitiationResult-List" }, + { id_MeasurementInitiationResult_Item, "id-MeasurementInitiationResult-Item" }, + { id_MeasurementFailureCause_Item, "id-MeasurementFailureCause-Item" }, + { id_CompleteFailureCauseInformation_List, "id-CompleteFailureCauseInformation-List" }, + { id_CompleteFailureCauseInformation_Item, "id-CompleteFailureCauseInformation-Item" }, + { id_CSG_Id, "id-CSG-Id" }, + { id_CSGMembershipStatus, "id-CSGMembershipStatus" }, + { id_MDTConfiguration, "id-MDTConfiguration" }, + { id_ManagementBasedMDTallowed, "id-ManagementBasedMDTallowed" }, + { id_RRCConnSetupIndicator, "id-RRCConnSetupIndicator" }, { 0, NULL } }; @@ -922,6 +1027,205 @@ dissect_x2ap_PrivateIE_Container(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * static int +dissect_x2ap_BIT_STRING_SIZE_40(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, + 40, 40, FALSE, NULL); + + return offset; +} + + +static const value_string x2ap_T_numberOfCellSpecificAntennaPorts_vals[] = { + { 0, "one" }, + { 1, "two" }, + { 2, "four" }, + { 0, NULL } +}; + + +static int +dissect_x2ap_T_numberOfCellSpecificAntennaPorts(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); + + return offset; +} + + +static const per_sequence_t ABSInformationFDD_sequence[] = { + { &hf_x2ap_abs_pattern_info, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_BIT_STRING_SIZE_40 }, + { &hf_x2ap_numberOfCellSpecificAntennaPorts, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_T_numberOfCellSpecificAntennaPorts }, + { &hf_x2ap_measurement_subset, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_BIT_STRING_SIZE_40 }, + { &hf_x2ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_x2ap_ABSInformationFDD(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_x2ap_ABSInformationFDD, ABSInformationFDD_sequence); + + return offset; +} + + + +static int +dissect_x2ap_BIT_STRING_SIZE_1_70_(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, 70, TRUE, NULL); + + return offset; +} + + +static const value_string x2ap_T_numberOfCellSpecificAntennaPorts_01_vals[] = { + { 0, "one" }, + { 1, "two" }, + { 2, "four" }, + { 0, NULL } +}; + + +static int +dissect_x2ap_T_numberOfCellSpecificAntennaPorts_01(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); + + return offset; +} + + +static const per_sequence_t ABSInformationTDD_sequence[] = { + { &hf_x2ap_abs_pattern_info_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_BIT_STRING_SIZE_1_70_ }, + { &hf_x2ap_numberOfCellSpecificAntennaPorts_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_T_numberOfCellSpecificAntennaPorts_01 }, + { &hf_x2ap_measurement_subset_01, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_BIT_STRING_SIZE_1_70_ }, + { &hf_x2ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_x2ap_ABSInformationTDD(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_x2ap_ABSInformationTDD, ABSInformationTDD_sequence); + + return offset; +} + + + +static int +dissect_x2ap_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 value_string x2ap_ABSInformation_vals[] = { + { 0, "fdd" }, + { 1, "tdd" }, + { 2, "abs-inactive" }, + { 0, NULL } +}; + +static const per_choice_t ABSInformation_choice[] = { + { 0, &hf_x2ap_fdd , ASN1_EXTENSION_ROOT , dissect_x2ap_ABSInformationFDD }, + { 1, &hf_x2ap_tdd , ASN1_EXTENSION_ROOT , dissect_x2ap_ABSInformationTDD }, + { 2, &hf_x2ap_abs_inactive , ASN1_EXTENSION_ROOT , dissect_x2ap_NULL }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_x2ap_ABSInformation(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_x2ap_ABSInformation, ABSInformation_choice, + NULL); + + return offset; +} + + + +static int +dissect_x2ap_DL_ABS_status(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, 100U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t UsableABSInformationFDD_sequence[] = { + { &hf_x2ap_usable_abs_pattern_info, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_BIT_STRING_SIZE_40 }, + { &hf_x2ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_x2ap_UsableABSInformationFDD(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_x2ap_UsableABSInformationFDD, UsableABSInformationFDD_sequence); + + return offset; +} + + +static const per_sequence_t UsableABSInformationTDD_sequence[] = { + { &hf_x2ap_usaable_abs_pattern_info, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_BIT_STRING_SIZE_1_70_ }, + { &hf_x2ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_x2ap_UsableABSInformationTDD(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_x2ap_UsableABSInformationTDD, UsableABSInformationTDD_sequence); + + return offset; +} + + +static const value_string x2ap_UsableABSInformation_vals[] = { + { 0, "fdd" }, + { 1, "tdd" }, + { 0, NULL } +}; + +static const per_choice_t UsableABSInformation_choice[] = { + { 0, &hf_x2ap_fdd_01 , ASN1_EXTENSION_ROOT , dissect_x2ap_UsableABSInformationFDD }, + { 1, &hf_x2ap_tdd_01 , ASN1_EXTENSION_ROOT , dissect_x2ap_UsableABSInformationTDD }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_x2ap_UsableABSInformation(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_x2ap_UsableABSInformation, UsableABSInformation_choice, + NULL); + + return offset; +} + + +static const per_sequence_t ABS_Status_sequence[] = { + { &hf_x2ap_dL_ABS_status , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_DL_ABS_status }, + { &hf_x2ap_usableABSInformation, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_UsableABSInformation }, + { &hf_x2ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_x2ap_ABS_Status(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_x2ap_ABS_Status, ABS_Status_sequence); + + return offset; +} + + + +static int dissect_x2ap_Key_eNodeB_Star(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, 256, 256, FALSE, NULL); @@ -1025,16 +1329,6 @@ dissect_x2ap_AllocationAndRetentionPriority(tvbuff_t *tvb _U_, int offset _U_, a static int -dissect_x2ap_BitRate(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_64b(tvb, offset, actx, tree, hf_index, - 0U, G_GINT64_CONSTANT(10000000000U), NULL, FALSE); - - return offset; -} - - - -static int dissect_x2ap_PLMN_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { #line 78 "../../asn1/x2ap/x2ap.cnf" tvbuff_t *parameter_tvb=NULL; @@ -1055,6 +1349,134 @@ dissect_x2ap_PLMN_Identity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ } + +static int +dissect_x2ap_EUTRANCellIdentifier(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); + + return offset; +} + + +static const per_sequence_t ECGI_sequence[] = { + { &hf_x2ap_pLMN_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_PLMN_Identity }, + { &hf_x2ap_eUTRANcellIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_EUTRANCellIdentifier }, + { &hf_x2ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_x2ap_ECGI(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_x2ap_ECGI, ECGI_sequence); + + return offset; +} + + +static const per_sequence_t CellIdListforMDT_sequence_of[1] = { + { &hf_x2ap_CellIdListforMDT_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_x2ap_ECGI }, +}; + +static int +dissect_x2ap_CellIdListforMDT(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_x2ap_CellIdListforMDT, CellIdListforMDT_sequence_of, + 1, maxnoofCellIDforMDT, FALSE); + + return offset; +} + + +static const per_sequence_t CellBasedMDT_sequence[] = { + { &hf_x2ap_cellIdListforMDT, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_CellIdListforMDT }, + { &hf_x2ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_x2ap_CellBasedMDT(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_x2ap_CellBasedMDT, CellBasedMDT_sequence); + + return offset; +} + + + +static int +dissect_x2ap_TAC(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); + + return offset; +} + + +static const per_sequence_t TAListforMDT_sequence_of[1] = { + { &hf_x2ap_TAListforMDT_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_x2ap_TAC }, +}; + +static int +dissect_x2ap_TAListforMDT(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_x2ap_TAListforMDT, TAListforMDT_sequence_of, + 1, maxnoofTAforMDT, FALSE); + + return offset; +} + + +static const per_sequence_t TABasedMDT_sequence[] = { + { &hf_x2ap_tAListforMDT , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_TAListforMDT }, + { &hf_x2ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_x2ap_TABasedMDT(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_x2ap_TABasedMDT, TABasedMDT_sequence); + + return offset; +} + + +static const value_string x2ap_AreaScopeOfMDT_vals[] = { + { 0, "cellBased" }, + { 1, "tABased" }, + { 2, "pLMNWide" }, + { 0, NULL } +}; + +static const per_choice_t AreaScopeOfMDT_choice[] = { + { 0, &hf_x2ap_cellBased , ASN1_EXTENSION_ROOT , dissect_x2ap_CellBasedMDT }, + { 1, &hf_x2ap_tABased , ASN1_EXTENSION_ROOT , dissect_x2ap_TABasedMDT }, + { 2, &hf_x2ap_pLMNWide , ASN1_EXTENSION_ROOT , dissect_x2ap_NULL }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_x2ap_AreaScopeOfMDT(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_x2ap_AreaScopeOfMDT, AreaScopeOfMDT_choice, + NULL); + + return offset; +} + + + +static int +dissect_x2ap_BitRate(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_64b(tvb, offset, actx, tree, hf_index, + 0U, G_GINT64_CONSTANT(10000000000U), NULL, FALSE); + + return offset; +} + + static const per_sequence_t BroadcastPLMNs_Item_sequence_of[1] = { { &hf_x2ap_BroadcastPLMNs_Item_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_x2ap_PLMN_Identity }, }; @@ -1117,6 +1539,8 @@ static const value_string x2ap_CauseRadioNetwork_vals[] = { { 24, "value-out-of-allowed-range" }, { 25, "multiple-E-RAB-ID-instances" }, { 26, "switch-off-ongoing" }, + { 27, "not-supported-QCI-value" }, + { 28, "measurement-not-supported-for-the-object" }, { 0, NULL } }; @@ -1124,7 +1548,7 @@ static const value_string x2ap_CauseRadioNetwork_vals[] = { static int dissect_x2ap_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, - 22, NULL, TRUE, 5, NULL); + 22, NULL, TRUE, 7, NULL); return offset; } @@ -1388,6 +1812,32 @@ dissect_x2ap_CRNTI(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, prot } +static const value_string x2ap_CSGMembershipStatus_vals[] = { + { 0, "member" }, + { 1, "not-member" }, + { 0, NULL } +}; + + +static int +dissect_x2ap_CSGMembershipStatus(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, + 2, NULL, FALSE, 0, NULL); + + return offset; +} + + + +static int +dissect_x2ap_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, + 27, 27, FALSE, NULL); + + return offset; +} + + static const value_string x2ap_CyclicPrefixDL_vals[] = { { 0, "normal" }, { 1, "extended" }, @@ -1452,6 +1902,36 @@ dissect_x2ap_DL_Forwarding(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _ static int +dissect_x2ap_DL_GBR_PRB_usage(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, 100U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_x2ap_DL_non_GBR_PRB_usage(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, 100U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_x2ap_DL_Total_PRB_usage(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, 100U, NULL, FALSE); + + return offset; +} + + + +static int dissect_x2ap_EARFCN(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, maxEARFCN, NULL, FALSE); @@ -1601,32 +2081,6 @@ dissect_x2ap_EUTRA_Mode_Info(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx static int -dissect_x2ap_EUTRANCellIdentifier(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); - - return offset; -} - - -static const per_sequence_t ECGI_sequence[] = { - { &hf_x2ap_pLMN_Identity , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_PLMN_Identity }, - { &hf_x2ap_eUTRANcellIdentifier, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_EUTRANCellIdentifier }, - { &hf_x2ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_ProtocolExtensionContainer }, - { NULL, 0, 0, NULL } -}; - -static int -dissect_x2ap_ECGI(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_x2ap_ECGI, ECGI_sequence); - - return offset; -} - - - -static int dissect_x2ap_BIT_STRING_SIZE_20(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, 20, 20, FALSE, NULL); @@ -1806,6 +2260,8 @@ static const value_string x2ap_ForbiddenInterRATs_vals[] = { { 1, "geran" }, { 2, "utran" }, { 3, "cdma2000" }, + { 4, "geranandutran" }, + { 5, "cdma2000andutran" }, { 0, NULL } }; @@ -1813,17 +2269,7 @@ static const value_string x2ap_ForbiddenInterRATs_vals[] = { static int dissect_x2ap_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, - 4, NULL, TRUE, 0, NULL); - - return offset; -} - - - -static int -dissect_x2ap_TAC(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); + 4, NULL, TRUE, 2, NULL); return offset; } @@ -2145,6 +2591,21 @@ dissect_x2ap_HWLoadIndicator(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } +static const value_string x2ap_InvokeIndication_vals[] = { + { 0, "abs-information" }, + { 0, NULL } +}; + + +static int +dissect_x2ap_InvokeIndication(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 int dissect_x2ap_IntegrityProtectionAlgorithms(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -2202,15 +2663,6 @@ dissect_x2ap_LastVisitedUTRANCellInformation(tvbuff_t *tvb _U_, int offset _U_, } - -static int -dissect_x2ap_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 value_string x2ap_LastVisitedGERANCellInformation_vals[] = { { 0, "undefined" }, { 0, NULL } @@ -2286,6 +2738,190 @@ dissect_x2ap_LocationReportingInformation(tvbuff_t *tvb _U_, int offset _U_, asn } +static const value_string x2ap_MDT_Activation_vals[] = { + { 0, "immediate-MDT-only" }, + { 1, "immediate-MDT-and-Trace" }, + { 0, NULL } +}; + + +static int +dissect_x2ap_MDT_Activation(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, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + + +static int +dissect_x2ap_MeasurementsToActivate(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 x2ap_ReportingTriggerMDT_vals[] = { + { 0, "periodic" }, + { 1, "a2eventtriggered" }, + { 0, NULL } +}; + + +static int +dissect_x2ap_ReportingTriggerMDT(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, + 2, NULL, TRUE, 0, NULL); + + return offset; +} + + + +static int +dissect_x2ap_Threshold_RSRP(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, 97U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_x2ap_Threshold_RSRQ(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, 34U, NULL, FALSE); + + return offset; +} + + +static const value_string x2ap_MeasurementThresholdA2_vals[] = { + { 0, "threshold-RSRP" }, + { 1, "threshold-RSRQ" }, + { 0, NULL } +}; + +static const per_choice_t MeasurementThresholdA2_choice[] = { + { 0, &hf_x2ap_threshold_RSRP , ASN1_EXTENSION_ROOT , dissect_x2ap_Threshold_RSRP }, + { 1, &hf_x2ap_threshold_RSRQ , ASN1_EXTENSION_ROOT , dissect_x2ap_Threshold_RSRQ }, + { 0, NULL, 0, NULL } +}; + +static int +dissect_x2ap_MeasurementThresholdA2(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_x2ap_MeasurementThresholdA2, MeasurementThresholdA2_choice, + NULL); + + return offset; +} + + +static const per_sequence_t ThresholdEventA2_sequence[] = { + { &hf_x2ap_measurementThreshold, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_MeasurementThresholdA2 }, + { &hf_x2ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_x2ap_ThresholdEventA2(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_x2ap_ThresholdEventA2, ThresholdEventA2_sequence); + + return offset; +} + + +static const value_string x2ap_ReportIntervalMDT_vals[] = { + { 0, "ms120" }, + { 1, "ms240" }, + { 2, "ms480" }, + { 3, "ms640" }, + { 4, "ms1024" }, + { 5, "ms2048" }, + { 6, "ms5120" }, + { 7, "ms10240" }, + { 8, "min1" }, + { 9, "min6" }, + { 10, "min12" }, + { 11, "min30" }, + { 12, "min60" }, + { 0, NULL } +}; + + +static int +dissect_x2ap_ReportIntervalMDT(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, + 13, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const value_string x2ap_ReportAmountMDT_vals[] = { + { 0, "r1" }, + { 1, "r2" }, + { 2, "r4" }, + { 3, "r8" }, + { 4, "r16" }, + { 5, "r32" }, + { 6, "r64" }, + { 7, "rinfinity" }, + { 0, NULL } +}; + + +static int +dissect_x2ap_ReportAmountMDT(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, + 8, NULL, FALSE, 0, NULL); + + return offset; +} + + +static const per_sequence_t PeriodicReportingMDT_sequence[] = { + { &hf_x2ap_reportInterval , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_ReportIntervalMDT }, + { &hf_x2ap_reportAmount , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_ReportAmountMDT }, + { &hf_x2ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_x2ap_PeriodicReportingMDT(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_x2ap_PeriodicReportingMDT, PeriodicReportingMDT_sequence); + + return offset; +} + + +static const per_sequence_t MDT_Configuration_sequence[] = { + { &hf_x2ap_mdt_Activation , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_MDT_Activation }, + { &hf_x2ap_areaScopeOfMDT , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_AreaScopeOfMDT }, + { &hf_x2ap_measurementsToActivate, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_MeasurementsToActivate }, + { &hf_x2ap_reportingTriggerMDT, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_ReportingTriggerMDT }, + { &hf_x2ap_thresholdeventA2, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_ThresholdEventA2 }, + { &hf_x2ap_periodicReportingMDT, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_PeriodicReportingMDT }, + { &hf_x2ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_x2ap_MDT_Configuration(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_x2ap_MDT_Configuration, MDT_Configuration_sequence); + + return offset; +} + + static int dissect_x2ap_Measurement_ID(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -2389,6 +3025,21 @@ dissect_x2ap_MBSFN_Subframe_Infolist(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx } +static const value_string x2ap_ManagementBasedMDTallowed_vals[] = { + { 0, "allowed" }, + { 0, NULL } +}; + + +static int +dissect_x2ap_ManagementBasedMDTallowed(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 int dissect_x2ap_INTEGER_M20_20(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { @@ -2556,6 +3207,56 @@ dissect_x2ap_PRACH_Configuration(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t * static int +dissect_x2ap_UL_GBR_PRB_usage(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, 100U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_x2ap_UL_non_GBR_PRB_usage(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, 100U, NULL, FALSE); + + return offset; +} + + + +static int +dissect_x2ap_UL_Total_PRB_usage(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, 100U, NULL, FALSE); + + return offset; +} + + +static const per_sequence_t RadioResourceStatus_sequence[] = { + { &hf_x2ap_dL_GBR_PRB_usage, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_DL_GBR_PRB_usage }, + { &hf_x2ap_uL_GBR_PRB_usage, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_UL_GBR_PRB_usage }, + { &hf_x2ap_dL_non_GBR_PRB_usage, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_DL_non_GBR_PRB_usage }, + { &hf_x2ap_uL_non_GBR_PRB_usage, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_UL_non_GBR_PRB_usage }, + { &hf_x2ap_dL_Total_PRB_usage, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_DL_Total_PRB_usage }, + { &hf_x2ap_uL_Total_PRB_usage, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_UL_Total_PRB_usage }, + { &hf_x2ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_x2ap_RadioResourceStatus(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_x2ap_RadioResourceStatus, RadioResourceStatus_sequence); + + return offset; +} + + + +static int dissect_x2ap_ReceiveStatusofULPDCPSDUs(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, 4096, 4096, FALSE, NULL); @@ -2620,7 +3321,7 @@ dissect_x2ap_RNTP_Threshold(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx } -static const value_string x2ap_T_numberOfCellSpecificAntennaPorts_vals[] = { +static const value_string x2ap_T_numberOfCellSpecificAntennaPorts_02_vals[] = { { 0, "one" }, { 1, "two" }, { 2, "four" }, @@ -2629,7 +3330,7 @@ static const value_string x2ap_T_numberOfCellSpecificAntennaPorts_vals[] = { static int -dissect_x2ap_T_numberOfCellSpecificAntennaPorts(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, proto_tree *tree _U_, int hf_index _U_) { +dissect_x2ap_T_numberOfCellSpecificAntennaPorts_02(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); @@ -2660,7 +3361,7 @@ dissect_x2ap_INTEGER_0_4_(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U static const per_sequence_t RelativeNarrowbandTxPower_sequence[] = { { &hf_x2ap_rNTP_PerPRB , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_BIT_STRING_SIZE_6_110_ }, { &hf_x2ap_rNTP_Threshold , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_RNTP_Threshold }, - { &hf_x2ap_numberOfCellSpecificAntennaPorts, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_T_numberOfCellSpecificAntennaPorts }, + { &hf_x2ap_numberOfCellSpecificAntennaPorts_02, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_T_numberOfCellSpecificAntennaPorts_02 }, { &hf_x2ap_p_B , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_INTEGER_0_3_ }, { &hf_x2ap_pDCCH_InterferenceImpact, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_INTEGER_0_4_ }, { &hf_x2ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_ProtocolExtensionContainer }, @@ -2705,81 +3406,16 @@ dissect_x2ap_RRC_Context(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_ } - -static int -dissect_x2ap_DL_GBR_PRB_usage(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, 100U, NULL, FALSE); - - return offset; -} - - - -static int -dissect_x2ap_UL_GBR_PRB_usage(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, 100U, NULL, FALSE); - - return offset; -} - - - -static int -dissect_x2ap_DL_non_GBR_PRB_usage(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, 100U, NULL, FALSE); - - return offset; -} - - - -static int -dissect_x2ap_UL_non_GBR_PRB_usage(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, 100U, NULL, FALSE); - - return offset; -} - - - -static int -dissect_x2ap_DL_Total_PRB_usage(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, 100U, NULL, FALSE); - - return offset; -} - - - -static int -dissect_x2ap_UL_Total_PRB_usage(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, 100U, NULL, FALSE); - - return offset; -} - - -static const per_sequence_t RadioResourceStatus_sequence[] = { - { &hf_x2ap_dL_GBR_PRB_usage, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_DL_GBR_PRB_usage }, - { &hf_x2ap_uL_GBR_PRB_usage, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_UL_GBR_PRB_usage }, - { &hf_x2ap_dL_non_GBR_PRB_usage, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_DL_non_GBR_PRB_usage }, - { &hf_x2ap_uL_non_GBR_PRB_usage, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_UL_non_GBR_PRB_usage }, - { &hf_x2ap_dL_Total_PRB_usage, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_DL_Total_PRB_usage }, - { &hf_x2ap_uL_Total_PRB_usage, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_UL_Total_PRB_usage }, - { &hf_x2ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_ProtocolExtensionContainer }, - { NULL, 0, 0, NULL } +static const value_string x2ap_RRCConnSetupIndicator_vals[] = { + { 0, "rrcConnSetup" }, + { 0, NULL } }; + static int -dissect_x2ap_RadioResourceStatus(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_x2ap_RadioResourceStatus, RadioResourceStatus_sequence); +dissect_x2ap_RRCConnSetupIndicator(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; } @@ -3614,6 +4250,21 @@ dissect_x2ap_ReportingPeriodicity(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } +static const value_string x2ap_PartialSuccessIndicator_vals[] = { + { 0, "partial-success-allowed" }, + { 0, NULL } +}; + + +static int +dissect_x2ap_PartialSuccessIndicator(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 ResourceStatusResponse_sequence[] = { { &hf_x2ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container }, { NULL, 0, 0, NULL } @@ -3628,6 +4279,66 @@ dissect_x2ap_ResourceStatusResponse(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_ } +static const per_sequence_t MeasurementInitiationResult_List_sequence_of[1] = { + { &hf_x2ap_MeasurementInitiationResult_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Single_Container }, +}; + +static int +dissect_x2ap_MeasurementInitiationResult_List(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_x2ap_MeasurementInitiationResult_List, MeasurementInitiationResult_List_sequence_of, + 1, maxCellineNB, FALSE); + + return offset; +} + + +static const per_sequence_t MeasurementFailureCause_List_sequence_of[1] = { + { &hf_x2ap_MeasurementFailureCause_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Single_Container }, +}; + +static int +dissect_x2ap_MeasurementFailureCause_List(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_x2ap_MeasurementFailureCause_List, MeasurementFailureCause_List_sequence_of, + 1, maxFailedMeasObjects, FALSE); + + return offset; +} + + +static const per_sequence_t MeasurementInitiationResult_Item_sequence[] = { + { &hf_x2ap_cell_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_ECGI }, + { &hf_x2ap_measurementFailureCause_List, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_MeasurementFailureCause_List }, + { &hf_x2ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_x2ap_MeasurementInitiationResult_Item(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_x2ap_MeasurementInitiationResult_Item, MeasurementInitiationResult_Item_sequence); + + return offset; +} + + +static const per_sequence_t MeasurementFailureCause_Item_sequence[] = { + { &hf_x2ap_measurementFailedReportCharacteristics, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_ReportCharacteristics }, + { &hf_x2ap_cause , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_Cause }, + { &hf_x2ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_x2ap_MeasurementFailureCause_Item(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_x2ap_MeasurementFailureCause_Item, MeasurementFailureCause_Item_sequence); + + return offset; +} + + static const per_sequence_t ResourceStatusFailure_sequence[] = { { &hf_x2ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container }, { NULL, 0, 0, NULL } @@ -3642,6 +4353,36 @@ dissect_x2ap_ResourceStatusFailure(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t } +static const per_sequence_t CompleteFailureCauseInformation_List_sequence_of[1] = { + { &hf_x2ap_CompleteFailureCauseInformation_List_item, ASN1_NO_EXTENSIONS , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Single_Container }, +}; + +static int +dissect_x2ap_CompleteFailureCauseInformation_List(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_x2ap_CompleteFailureCauseInformation_List, CompleteFailureCauseInformation_List_sequence_of, + 1, maxCellineNB, FALSE); + + return offset; +} + + +static const per_sequence_t CompleteFailureCauseInformation_Item_sequence[] = { + { &hf_x2ap_cell_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_ECGI }, + { &hf_x2ap_measurementFailureCause_List, ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_MeasurementFailureCause_List }, + { &hf_x2ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_ProtocolExtensionContainer }, + { NULL, 0, 0, NULL } +}; + +static int +dissect_x2ap_CompleteFailureCauseInformation_Item(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_x2ap_CompleteFailureCauseInformation_Item, CompleteFailureCauseInformation_Item_sequence); + + return offset; +} + + static const per_sequence_t ResourceStatusUpdate_sequence[] = { { &hf_x2ap_protocolIEs , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_ProtocolIE_Container }, { NULL, 0, 0, NULL } @@ -3672,8 +4413,8 @@ dissect_x2ap_CellMeasurementResult_List(tvbuff_t *tvb _U_, int offset _U_, asn1_ static const per_sequence_t CellMeasurementResult_Item_sequence[] = { { &hf_x2ap_cell_ID , ASN1_EXTENSION_ROOT , ASN1_NOT_OPTIONAL, dissect_x2ap_ECGI }, - { &hf_x2ap_hWOverLoadIndicator, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_HWLoadIndicator }, - { &hf_x2ap_s1TNLOverLoadIndicator, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_S1TNLLoadIndicator }, + { &hf_x2ap_hWLoadIndicator, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_HWLoadIndicator }, + { &hf_x2ap_s1TNLLoadIndicator, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_S1TNLLoadIndicator }, { &hf_x2ap_radioResourceStatus, ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_RadioResourceStatus }, { &hf_x2ap_iE_Extensions , ASN1_EXTENSION_ROOT , ASN1_OPTIONAL , dissect_x2ap_ProtocolExtensionContainer }, { NULL, 0, 0, NULL } @@ -3958,6 +4699,22 @@ dissect_x2ap_X2AP_PDU(tvbuff_t *tvb _U_, int offset _U_, asn1_ctx_t *actx _U_, p /*--- PDUs ---*/ +static int dissect_ABSInformation_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_x2ap_ABSInformation(tvb, offset, &asn1_ctx, tree, hf_x2ap_ABSInformation_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_ABS_Status_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_x2ap_ABS_Status(tvb, offset, &asn1_ctx, tree, hf_x2ap_ABS_Status_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_Cause_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -3990,6 +4747,22 @@ static int dissect_CRNTI_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tr offset += 7; offset >>= 3; return offset; } +static int dissect_CSGMembershipStatus_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_x2ap_CSGMembershipStatus(tvb, offset, &asn1_ctx, tree, hf_x2ap_CSGMembershipStatus_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_CSG_Id_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_x2ap_CSG_Id(tvb, offset, &asn1_ctx, tree, hf_x2ap_CSG_Id_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_DeactivationIndication_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -4054,6 +4827,22 @@ static int dissect_HandoverReportType_PDU(tvbuff_t *tvb _U_, packet_info *pinfo offset += 7; offset >>= 3; return offset; } +static int dissect_InvokeIndication_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_x2ap_InvokeIndication(tvb, offset, &asn1_ctx, tree, hf_x2ap_InvokeIndication_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_MDT_Configuration_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_x2ap_MDT_Configuration(tvb, offset, &asn1_ctx, tree, hf_x2ap_MDT_Configuration_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_Measurement_ID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -4070,6 +4859,14 @@ static int dissect_MBSFN_Subframe_Infolist_PDU(tvbuff_t *tvb _U_, packet_info *p offset += 7; offset >>= 3; return offset; } +static int dissect_ManagementBasedMDTallowed_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_x2ap_ManagementBasedMDTallowed(tvb, offset, &asn1_ctx, tree, hf_x2ap_ManagementBasedMDTallowed_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_MobilityParametersModificationRange_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -4126,6 +4923,14 @@ static int dissect_ReportCharacteristics_PDU(tvbuff_t *tvb _U_, packet_info *pin offset += 7; offset >>= 3; return offset; } +static int dissect_RRCConnSetupIndicator_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_x2ap_RRCConnSetupIndicator(tvb, offset, &asn1_ctx, tree, hf_x2ap_RRCConnSetupIndicator_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_ServedCells_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -4446,6 +5251,14 @@ static int dissect_ReportingPeriodicity_PDU(tvbuff_t *tvb _U_, packet_info *pinf offset += 7; offset >>= 3; return offset; } +static int dissect_PartialSuccessIndicator_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_x2ap_PartialSuccessIndicator(tvb, offset, &asn1_ctx, tree, hf_x2ap_PartialSuccessIndicator_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_ResourceStatusResponse_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -4454,6 +5267,30 @@ static int dissect_ResourceStatusResponse_PDU(tvbuff_t *tvb _U_, packet_info *pi offset += 7; offset >>= 3; return offset; } +static int dissect_MeasurementInitiationResult_List_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_x2ap_MeasurementInitiationResult_List(tvb, offset, &asn1_ctx, tree, hf_x2ap_MeasurementInitiationResult_List_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_MeasurementInitiationResult_Item_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_x2ap_MeasurementInitiationResult_Item(tvb, offset, &asn1_ctx, tree, hf_x2ap_MeasurementInitiationResult_Item_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_MeasurementFailureCause_Item_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_x2ap_MeasurementFailureCause_Item(tvb, offset, &asn1_ctx, tree, hf_x2ap_MeasurementFailureCause_Item_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_ResourceStatusFailure_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -4462,6 +5299,22 @@ static int dissect_ResourceStatusFailure_PDU(tvbuff_t *tvb _U_, packet_info *pin offset += 7; offset >>= 3; return offset; } +static int dissect_CompleteFailureCauseInformation_List_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_x2ap_CompleteFailureCauseInformation_List(tvb, offset, &asn1_ctx, tree, hf_x2ap_CompleteFailureCauseInformation_List_PDU); + offset += 7; offset >>= 3; + return offset; +} +static int dissect_CompleteFailureCauseInformation_Item_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_x2ap_CompleteFailureCauseInformation_Item(tvb, offset, &asn1_ctx, tree, hf_x2ap_CompleteFailureCauseInformation_Item_PDU); + offset += 7; offset >>= 3; + return offset; +} static int dissect_ResourceStatusUpdate_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_) { int offset = 0; asn1_ctx_t asn1_ctx; @@ -4635,6 +5488,14 @@ void proto_register_x2ap(void) { /*--- Included file: packet-x2ap-hfarr.c ---*/ #line 1 "../../asn1/x2ap/packet-x2ap-hfarr.c" + { &hf_x2ap_ABSInformation_PDU, + { "ABSInformation", "x2ap.ABSInformation", + FT_UINT32, BASE_DEC, VALS(x2ap_ABSInformation_vals), 0, + NULL, HFILL }}, + { &hf_x2ap_ABS_Status_PDU, + { "ABS-Status", "x2ap.ABS_Status", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_x2ap_Cause_PDU, { "Cause", "x2ap.Cause", FT_UINT32, BASE_DEC, VALS(x2ap_Cause_vals), 0, @@ -4651,6 +5512,14 @@ void proto_register_x2ap(void) { { "CRNTI", "x2ap.CRNTI", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_x2ap_CSGMembershipStatus_PDU, + { "CSGMembershipStatus", "x2ap.CSGMembershipStatus", + FT_UINT32, BASE_DEC, VALS(x2ap_CSGMembershipStatus_vals), 0, + NULL, HFILL }}, + { &hf_x2ap_CSG_Id_PDU, + { "CSG-Id", "x2ap.CSG_Id", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_x2ap_DeactivationIndication_PDU, { "DeactivationIndication", "x2ap.DeactivationIndication", FT_UINT32, BASE_DEC, VALS(x2ap_DeactivationIndication_vals), 0, @@ -4683,6 +5552,14 @@ void proto_register_x2ap(void) { { "HandoverReportType", "x2ap.HandoverReportType", FT_UINT32, BASE_DEC, VALS(x2ap_HandoverReportType_vals), 0, NULL, HFILL }}, + { &hf_x2ap_InvokeIndication_PDU, + { "InvokeIndication", "x2ap.InvokeIndication", + FT_UINT32, BASE_DEC, VALS(x2ap_InvokeIndication_vals), 0, + NULL, HFILL }}, + { &hf_x2ap_MDT_Configuration_PDU, + { "MDT-Configuration", "x2ap.MDT_Configuration", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_x2ap_Measurement_ID_PDU, { "Measurement-ID", "x2ap.Measurement_ID", FT_UINT32, BASE_DEC, NULL, 0, @@ -4691,6 +5568,10 @@ void proto_register_x2ap(void) { { "MBSFN-Subframe-Infolist", "x2ap.MBSFN_Subframe_Infolist", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_x2ap_ManagementBasedMDTallowed_PDU, + { "ManagementBasedMDTallowed", "x2ap.ManagementBasedMDTallowed", + FT_UINT32, BASE_DEC, VALS(x2ap_ManagementBasedMDTallowed_vals), 0, + NULL, HFILL }}, { &hf_x2ap_MobilityParametersModificationRange_PDU, { "MobilityParametersModificationRange", "x2ap.MobilityParametersModificationRange", FT_NONE, BASE_NONE, NULL, 0, @@ -4719,6 +5600,10 @@ void proto_register_x2ap(void) { { "ReportCharacteristics", "x2ap.ReportCharacteristics", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_x2ap_RRCConnSetupIndicator_PDU, + { "RRCConnSetupIndicator", "x2ap.RRCConnSetupIndicator", + FT_UINT32, BASE_DEC, VALS(x2ap_RRCConnSetupIndicator_vals), 0, + NULL, HFILL }}, { &hf_x2ap_ServedCells_PDU, { "ServedCells", "x2ap.ServedCells", FT_UINT32, BASE_DEC, NULL, 0, @@ -4879,14 +5764,38 @@ void proto_register_x2ap(void) { { "ReportingPeriodicity", "x2ap.ReportingPeriodicity", FT_UINT32, BASE_DEC, VALS(x2ap_ReportingPeriodicity_vals), 0, NULL, HFILL }}, + { &hf_x2ap_PartialSuccessIndicator_PDU, + { "PartialSuccessIndicator", "x2ap.PartialSuccessIndicator", + FT_UINT32, BASE_DEC, VALS(x2ap_PartialSuccessIndicator_vals), 0, + NULL, HFILL }}, { &hf_x2ap_ResourceStatusResponse_PDU, { "ResourceStatusResponse", "x2ap.ResourceStatusResponse", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_x2ap_MeasurementInitiationResult_List_PDU, + { "MeasurementInitiationResult-List", "x2ap.MeasurementInitiationResult_List", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_x2ap_MeasurementInitiationResult_Item_PDU, + { "MeasurementInitiationResult-Item", "x2ap.MeasurementInitiationResult_Item", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_x2ap_MeasurementFailureCause_Item_PDU, + { "MeasurementFailureCause-Item", "x2ap.MeasurementFailureCause_Item", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_x2ap_ResourceStatusFailure_PDU, { "ResourceStatusFailure", "x2ap.ResourceStatusFailure", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_x2ap_CompleteFailureCauseInformation_List_PDU, + { "CompleteFailureCauseInformation-List", "x2ap.CompleteFailureCauseInformation_List", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_x2ap_CompleteFailureCauseInformation_Item_PDU, + { "CompleteFailureCauseInformation-Item", "x2ap.CompleteFailureCauseInformation_Item", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_x2ap_ResourceStatusUpdate_PDU, { "ResourceStatusUpdate", "x2ap.ResourceStatusUpdate", FT_NONE, BASE_NONE, NULL, 0, @@ -4991,6 +5900,54 @@ void proto_register_x2ap(void) { { "value", "x2ap.value", FT_NONE, BASE_NONE, NULL, 0, "PrivateIE_Field_value", HFILL }}, + { &hf_x2ap_fdd, + { "fdd", "x2ap.fdd", + FT_NONE, BASE_NONE, NULL, 0, + "ABSInformationFDD", HFILL }}, + { &hf_x2ap_tdd, + { "tdd", "x2ap.tdd", + FT_NONE, BASE_NONE, NULL, 0, + "ABSInformationTDD", HFILL }}, + { &hf_x2ap_abs_inactive, + { "abs-inactive", "x2ap.abs_inactive", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_x2ap_abs_pattern_info, + { "abs-pattern-info", "x2ap.abs_pattern_info", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_40", HFILL }}, + { &hf_x2ap_numberOfCellSpecificAntennaPorts, + { "numberOfCellSpecificAntennaPorts", "x2ap.numberOfCellSpecificAntennaPorts", + FT_UINT32, BASE_DEC, VALS(x2ap_T_numberOfCellSpecificAntennaPorts_vals), 0, + NULL, HFILL }}, + { &hf_x2ap_measurement_subset, + { "measurement-subset", "x2ap.measurement_subset", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_40", HFILL }}, + { &hf_x2ap_iE_Extensions, + { "iE-Extensions", "x2ap.iE_Extensions", + FT_UINT32, BASE_DEC, NULL, 0, + "ProtocolExtensionContainer", HFILL }}, + { &hf_x2ap_abs_pattern_info_01, + { "abs-pattern-info", "x2ap.abs_pattern_info", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_1_70_", HFILL }}, + { &hf_x2ap_numberOfCellSpecificAntennaPorts_01, + { "numberOfCellSpecificAntennaPorts", "x2ap.numberOfCellSpecificAntennaPorts", + FT_UINT32, BASE_DEC, VALS(x2ap_T_numberOfCellSpecificAntennaPorts_01_vals), 0, + "T_numberOfCellSpecificAntennaPorts_01", HFILL }}, + { &hf_x2ap_measurement_subset_01, + { "measurement-subset", "x2ap.measurement_subset", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_1_70_", HFILL }}, + { &hf_x2ap_dL_ABS_status, + { "dL-ABS-status", "x2ap.dL_ABS_status", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_x2ap_usableABSInformation, + { "usableABSInformation", "x2ap.usableABSInformation", + FT_UINT32, BASE_DEC, VALS(x2ap_UsableABSInformation_vals), 0, + NULL, HFILL }}, { &hf_x2ap_key_eNodeB_star, { "key-eNodeB-star", "x2ap.key_eNodeB_star", FT_BYTES, BASE_NONE, NULL, 0, @@ -4999,10 +5956,6 @@ void proto_register_x2ap(void) { { "nextHopChainingCount", "x2ap.nextHopChainingCount", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, - { &hf_x2ap_iE_Extensions, - { "iE-Extensions", "x2ap.iE_Extensions", - FT_UINT32, BASE_DEC, NULL, 0, - "ProtocolExtensionContainer", HFILL }}, { &hf_x2ap_priorityLevel, { "priorityLevel", "x2ap.priorityLevel", FT_UINT32, BASE_DEC, VALS(x2ap_PriorityLevel_vals), 0, @@ -5015,6 +5968,18 @@ void proto_register_x2ap(void) { { "pre-emptionVulnerability", "x2ap.pre_emptionVulnerability", FT_UINT32, BASE_DEC, VALS(x2ap_Pre_emptionVulnerability_vals), 0, NULL, HFILL }}, + { &hf_x2ap_cellBased, + { "cellBased", "x2ap.cellBased", + FT_NONE, BASE_NONE, NULL, 0, + "CellBasedMDT", HFILL }}, + { &hf_x2ap_tABased, + { "tABased", "x2ap.tABased", + FT_NONE, BASE_NONE, NULL, 0, + "TABasedMDT", HFILL }}, + { &hf_x2ap_pLMNWide, + { "pLMNWide", "x2ap.pLMNWide", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_x2ap_BroadcastPLMNs_Item_item, { "PLMN-Identity", "x2ap.PLMN_Identity", FT_BYTES, BASE_NONE, NULL, 0, @@ -5035,6 +6000,14 @@ void proto_register_x2ap(void) { { "misc", "x2ap.misc", FT_UINT32, BASE_DEC, VALS(x2ap_CauseMisc_vals), 0, "CauseMisc", HFILL }}, + { &hf_x2ap_cellIdListforMDT, + { "cellIdListforMDT", "x2ap.cellIdListforMDT", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_x2ap_CellIdListforMDT_item, + { "ECGI", "x2ap.ECGI", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_x2ap_cell_Size, { "cell-Size", "x2ap.cell_Size", FT_UINT32, BASE_DEC, VALS(x2ap_Cell_Size_vals), 0, @@ -5311,6 +6284,38 @@ void proto_register_x2ap(void) { { "reportArea", "x2ap.reportArea", FT_UINT32, BASE_DEC, VALS(x2ap_ReportArea_vals), 0, NULL, HFILL }}, + { &hf_x2ap_mdt_Activation, + { "mdt-Activation", "x2ap.mdt_Activation", + FT_UINT32, BASE_DEC, VALS(x2ap_MDT_Activation_vals), 0, + NULL, HFILL }}, + { &hf_x2ap_areaScopeOfMDT, + { "areaScopeOfMDT", "x2ap.areaScopeOfMDT", + FT_UINT32, BASE_DEC, VALS(x2ap_AreaScopeOfMDT_vals), 0, + NULL, HFILL }}, + { &hf_x2ap_measurementsToActivate, + { "measurementsToActivate", "x2ap.measurementsToActivate", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_x2ap_reportingTriggerMDT, + { "reportingTriggerMDT", "x2ap.reportingTriggerMDT", + FT_UINT32, BASE_DEC, VALS(x2ap_ReportingTriggerMDT_vals), 0, + NULL, HFILL }}, + { &hf_x2ap_thresholdeventA2, + { "thresholdeventA2", "x2ap.thresholdeventA2", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_x2ap_periodicReportingMDT, + { "periodicReportingMDT", "x2ap.periodicReportingMDT", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_x2ap_threshold_RSRP, + { "threshold-RSRP", "x2ap.threshold_RSRP", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_x2ap_threshold_RSRQ, + { "threshold-RSRQ", "x2ap.threshold_RSRQ", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, { &hf_x2ap_MBSFN_Subframe_Infolist_item, { "MBSFN-Subframe-Info", "x2ap.MBSFN_Subframe_Info", FT_NONE, BASE_NONE, NULL, 0, @@ -5351,6 +6356,14 @@ void proto_register_x2ap(void) { { "pCI", "x2ap.pCI", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_x2ap_reportInterval, + { "reportInterval", "x2ap.reportInterval", + FT_UINT32, BASE_DEC, VALS(x2ap_ReportIntervalMDT_vals), 0, + "ReportIntervalMDT", HFILL }}, + { &hf_x2ap_reportAmount, + { "reportAmount", "x2ap.reportAmount", + FT_UINT32, BASE_DEC, VALS(x2ap_ReportAmountMDT_vals), 0, + "ReportAmountMDT", HFILL }}, { &hf_x2ap_rootSequenceIndex, { "rootSequenceIndex", "x2ap.rootSequenceIndex", FT_UINT32, BASE_DEC, NULL, 0, @@ -5371,26 +6384,6 @@ void proto_register_x2ap(void) { { "prach-ConfigIndex", "x2ap.prach_ConfigIndex", FT_UINT32, BASE_DEC, NULL, 0, "INTEGER_0_63", HFILL }}, - { &hf_x2ap_rNTP_PerPRB, - { "rNTP-PerPRB", "x2ap.rNTP_PerPRB", - FT_BYTES, BASE_NONE, NULL, 0, - "BIT_STRING_SIZE_6_110_", HFILL }}, - { &hf_x2ap_rNTP_Threshold, - { "rNTP-Threshold", "x2ap.rNTP_Threshold", - FT_UINT32, BASE_DEC, VALS(x2ap_RNTP_Threshold_vals), 0, - NULL, HFILL }}, - { &hf_x2ap_numberOfCellSpecificAntennaPorts, - { "numberOfCellSpecificAntennaPorts", "x2ap.numberOfCellSpecificAntennaPorts", - FT_UINT32, BASE_DEC, VALS(x2ap_T_numberOfCellSpecificAntennaPorts_vals), 0, - NULL, HFILL }}, - { &hf_x2ap_p_B, - { "p-B", "x2ap.p_B", - FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_3_", HFILL }}, - { &hf_x2ap_pDCCH_InterferenceImpact, - { "pDCCH-InterferenceImpact", "x2ap.pDCCH_InterferenceImpact", - FT_UINT32, BASE_DEC, NULL, 0, - "INTEGER_0_4_", HFILL }}, { &hf_x2ap_dL_GBR_PRB_usage, { "dL-GBR-PRB-usage", "x2ap.dL_GBR_PRB_usage", FT_UINT32, BASE_DEC, NULL, 0, @@ -5415,6 +6408,26 @@ void proto_register_x2ap(void) { { "uL-Total-PRB-usage", "x2ap.uL_Total_PRB_usage", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }}, + { &hf_x2ap_rNTP_PerPRB, + { "rNTP-PerPRB", "x2ap.rNTP_PerPRB", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_6_110_", HFILL }}, + { &hf_x2ap_rNTP_Threshold, + { "rNTP-Threshold", "x2ap.rNTP_Threshold", + FT_UINT32, BASE_DEC, VALS(x2ap_RNTP_Threshold_vals), 0, + NULL, HFILL }}, + { &hf_x2ap_numberOfCellSpecificAntennaPorts_02, + { "numberOfCellSpecificAntennaPorts", "x2ap.numberOfCellSpecificAntennaPorts", + FT_UINT32, BASE_DEC, VALS(x2ap_T_numberOfCellSpecificAntennaPorts_02_vals), 0, + "T_numberOfCellSpecificAntennaPorts_02", HFILL }}, + { &hf_x2ap_p_B, + { "p-B", "x2ap.p_B", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_3_", HFILL }}, + { &hf_x2ap_pDCCH_InterferenceImpact, + { "pDCCH-InterferenceImpact", "x2ap.pDCCH_InterferenceImpact", + FT_UINT32, BASE_DEC, NULL, 0, + "INTEGER_0_4_", HFILL }}, { &hf_x2ap_dLS1TNLLoadIndicator, { "dLS1TNLLoadIndicator", "x2ap.dLS1TNLLoadIndicator", FT_UINT32, BASE_DEC, VALS(x2ap_LoadIndicator_vals), 0, @@ -5471,6 +6484,18 @@ void proto_register_x2ap(void) { { "fourframes", "x2ap.fourframes", FT_BYTES, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_x2ap_tAListforMDT, + { "tAListforMDT", "x2ap.tAListforMDT", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_x2ap_TAListforMDT_item, + { "TAC", "x2ap.TAC", + FT_BYTES, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_x2ap_measurementThreshold, + { "measurementThreshold", "x2ap.measurementThreshold", + FT_UINT32, BASE_DEC, VALS(x2ap_MeasurementThresholdA2_vals), 0, + "MeasurementThresholdA2", HFILL }}, { &hf_x2ap_eUTRANTraceID, { "eUTRANTraceID", "x2ap.eUTRANTraceID", FT_BYTES, BASE_NONE, NULL, 0, @@ -5523,6 +6548,22 @@ void proto_register_x2ap(void) { { "ul-interferenceindication", "x2ap.ul_interferenceindication", FT_BYTES, BASE_NONE, NULL, 0, "UL_HighInterferenceIndication", HFILL }}, + { &hf_x2ap_fdd_01, + { "fdd", "x2ap.fdd", + FT_NONE, BASE_NONE, NULL, 0, + "UsableABSInformationFDD", HFILL }}, + { &hf_x2ap_tdd_01, + { "tdd", "x2ap.tdd", + FT_NONE, BASE_NONE, NULL, 0, + "UsableABSInformationTDD", HFILL }}, + { &hf_x2ap_usable_abs_pattern_info, + { "usable-abs-pattern-info", "x2ap.usable_abs_pattern_info", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_40", HFILL }}, + { &hf_x2ap_usaable_abs_pattern_info, + { "usaable-abs-pattern-info", "x2ap.usaable_abs_pattern_info", + FT_BYTES, BASE_NONE, NULL, 0, + "BIT_STRING_SIZE_1_70_", HFILL }}, { &hf_x2ap_protocolIEs, { "protocolIEs", "x2ap.protocolIEs", FT_UINT32, BASE_DEC, NULL, 0, @@ -5643,18 +6684,38 @@ void proto_register_x2ap(void) { { "ProtocolIE-Single-Container", "x2ap.ProtocolIE_Single_Container", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, + { &hf_x2ap_MeasurementInitiationResult_List_item, + { "ProtocolIE-Single-Container", "x2ap.ProtocolIE_Single_Container", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_x2ap_measurementFailureCause_List, + { "measurementFailureCause-List", "x2ap.measurementFailureCause_List", + FT_UINT32, BASE_DEC, NULL, 0, + NULL, HFILL }}, + { &hf_x2ap_MeasurementFailureCause_List_item, + { "ProtocolIE-Single-Container", "x2ap.ProtocolIE_Single_Container", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, + { &hf_x2ap_measurementFailedReportCharacteristics, + { "measurementFailedReportCharacteristics", "x2ap.measurementFailedReportCharacteristics", + FT_BYTES, BASE_NONE, NULL, 0, + "ReportCharacteristics", HFILL }}, + { &hf_x2ap_CompleteFailureCauseInformation_List_item, + { "ProtocolIE-Single-Container", "x2ap.ProtocolIE_Single_Container", + FT_NONE, BASE_NONE, NULL, 0, + NULL, HFILL }}, { &hf_x2ap_CellMeasurementResult_List_item, { "ProtocolIE-Single-Container", "x2ap.ProtocolIE_Single_Container", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }}, - { &hf_x2ap_hWOverLoadIndicator, - { "hWOverLoadIndicator", "x2ap.hWOverLoadIndicator", + { &hf_x2ap_hWLoadIndicator, + { "hWLoadIndicator", "x2ap.hWLoadIndicator", FT_NONE, BASE_NONE, NULL, 0, - "HWLoadIndicator", HFILL }}, - { &hf_x2ap_s1TNLOverLoadIndicator, - { "s1TNLOverLoadIndicator", "x2ap.s1TNLOverLoadIndicator", + NULL, HFILL }}, + { &hf_x2ap_s1TNLLoadIndicator, + { "s1TNLLoadIndicator", "x2ap.s1TNLLoadIndicator", FT_NONE, BASE_NONE, NULL, 0, - "S1TNLLoadIndicator", HFILL }}, + NULL, HFILL }}, { &hf_x2ap_radioResourceStatus, { "radioResourceStatus", "x2ap.radioResourceStatus", FT_NONE, BASE_NONE, NULL, 0, @@ -5718,10 +6779,17 @@ void proto_register_x2ap(void) { &ett_x2ap_ProtocolExtensionField, &ett_x2ap_PrivateIE_Container, &ett_x2ap_PrivateIE_Field, + &ett_x2ap_ABSInformation, + &ett_x2ap_ABSInformationFDD, + &ett_x2ap_ABSInformationTDD, + &ett_x2ap_ABS_Status, &ett_x2ap_AS_SecurityInformation, &ett_x2ap_AllocationAndRetentionPriority, + &ett_x2ap_AreaScopeOfMDT, &ett_x2ap_BroadcastPLMNs_Item, &ett_x2ap_Cause, + &ett_x2ap_CellBasedMDT, + &ett_x2ap_CellIdListforMDT, &ett_x2ap_CellType, &ett_x2ap_CompositeAvailableCapacityGroup, &ett_x2ap_CompositeAvailableCapacity, @@ -5756,21 +6824,27 @@ void proto_register_x2ap(void) { &ett_x2ap_LastVisitedEUTRANCellInformation, &ett_x2ap_LastVisitedGERANCellInformation, &ett_x2ap_LocationReportingInformation, + &ett_x2ap_MDT_Configuration, + &ett_x2ap_MeasurementThresholdA2, &ett_x2ap_MBSFN_Subframe_Infolist, &ett_x2ap_MBSFN_Subframe_Info, &ett_x2ap_MobilityParametersModificationRange, &ett_x2ap_MobilityParametersInformation, &ett_x2ap_Neighbour_Information, &ett_x2ap_Neighbour_Information_item, + &ett_x2ap_PeriodicReportingMDT, &ett_x2ap_PRACH_Configuration, - &ett_x2ap_RelativeNarrowbandTxPower, &ett_x2ap_RadioResourceStatus, + &ett_x2ap_RelativeNarrowbandTxPower, &ett_x2ap_S1TNLLoadIndicator, &ett_x2ap_ServedCells, &ett_x2ap_ServedCells_item, &ett_x2ap_ServedCell_Information, &ett_x2ap_SpecialSubframe_Info, &ett_x2ap_SubframeAllocation, + &ett_x2ap_TABasedMDT, + &ett_x2ap_TAListforMDT, + &ett_x2ap_ThresholdEventA2, &ett_x2ap_TraceActivation, &ett_x2ap_UE_HistoryInformation, &ett_x2ap_UEAggregateMaximumBitRate, @@ -5778,6 +6852,9 @@ void proto_register_x2ap(void) { &ett_x2ap_UL_InterferenceOverloadIndication, &ett_x2ap_UL_HighInterferenceIndicationInfo, &ett_x2ap_UL_HighInterferenceIndicationInfo_Item, + &ett_x2ap_UsableABSInformation, + &ett_x2ap_UsableABSInformationFDD, + &ett_x2ap_UsableABSInformationTDD, &ett_x2ap_HandoverRequest, &ett_x2ap_UE_ContextInformation, &ett_x2ap_E_RABs_ToBeSetup_List, @@ -5811,7 +6888,13 @@ void proto_register_x2ap(void) { &ett_x2ap_CellToReport_List, &ett_x2ap_CellToReport_Item, &ett_x2ap_ResourceStatusResponse, + &ett_x2ap_MeasurementInitiationResult_List, + &ett_x2ap_MeasurementInitiationResult_Item, + &ett_x2ap_MeasurementFailureCause_List, + &ett_x2ap_MeasurementFailureCause_Item, &ett_x2ap_ResourceStatusFailure, + &ett_x2ap_CompleteFailureCauseInformation_List, + &ett_x2ap_CompleteFailureCauseInformation_Item, &ett_x2ap_ResourceStatusUpdate, &ett_x2ap_CellMeasurementResult_List, &ett_x2ap_CellMeasurementResult_Item, @@ -5936,11 +7019,25 @@ proto_reg_handoff_x2ap(void) dissector_add_uint("x2ap.ies", id_UE_RLF_Report_Container, new_create_dissector_handle(dissect_UE_RLF_Report_Container_PDU, proto_x2ap)); dissector_add_uint("x2ap.ies", id_ServedCellsToActivate, new_create_dissector_handle(dissect_ServedCellsToActivate_PDU, proto_x2ap)); dissector_add_uint("x2ap.ies", id_ActivatedCellList, new_create_dissector_handle(dissect_ActivatedCellList_PDU, proto_x2ap)); + dissector_add_uint("x2ap.ies", id_PartialSuccessIndicator, new_create_dissector_handle(dissect_PartialSuccessIndicator_PDU, proto_x2ap)); + dissector_add_uint("x2ap.ies", id_MeasurementInitiationResult_List, new_create_dissector_handle(dissect_MeasurementInitiationResult_List_PDU, proto_x2ap)); + dissector_add_uint("x2ap.ies", id_MeasurementInitiationResult_Item, new_create_dissector_handle(dissect_MeasurementInitiationResult_Item_PDU, proto_x2ap)); + dissector_add_uint("x2ap.ies", id_MeasurementFailureCause_Item, new_create_dissector_handle(dissect_MeasurementFailureCause_Item_PDU, proto_x2ap)); + dissector_add_uint("x2ap.ies", id_CompleteFailureCauseInformation_List, new_create_dissector_handle(dissect_CompleteFailureCauseInformation_List_PDU, proto_x2ap)); + dissector_add_uint("x2ap.ies", id_CompleteFailureCauseInformation_Item, new_create_dissector_handle(dissect_CompleteFailureCauseInformation_Item_PDU, proto_x2ap)); + dissector_add_uint("x2ap.ies", id_CSGMembershipStatus, new_create_dissector_handle(dissect_CSGMembershipStatus_PDU, proto_x2ap)); + dissector_add_uint("x2ap.ies", id_RRCConnSetupIndicator, new_create_dissector_handle(dissect_RRCConnSetupIndicator_PDU, proto_x2ap)); dissector_add_uint("x2ap.extension", id_Number_of_Antennaports, new_create_dissector_handle(dissect_Number_of_Antennaports_PDU, proto_x2ap)); dissector_add_uint("x2ap.extension", id_CompositeAvailableCapacityGroup, new_create_dissector_handle(dissect_CompositeAvailableCapacityGroup_PDU, proto_x2ap)); dissector_add_uint("x2ap.extension", id_PRACH_Configuration, new_create_dissector_handle(dissect_PRACH_Configuration_PDU, proto_x2ap)); dissector_add_uint("x2ap.extension", id_MBSFN_Subframe_Info, new_create_dissector_handle(dissect_MBSFN_Subframe_Infolist_PDU, proto_x2ap)); dissector_add_uint("x2ap.extension", id_DeactivationIndication, new_create_dissector_handle(dissect_DeactivationIndication_PDU, proto_x2ap)); + dissector_add_uint("x2ap.extension", id_ABSInformation, new_create_dissector_handle(dissect_ABSInformation_PDU, proto_x2ap)); + dissector_add_uint("x2ap.extension", id_InvokeIndication, new_create_dissector_handle(dissect_InvokeIndication_PDU, proto_x2ap)); + dissector_add_uint("x2ap.extension", id_ABS_Status, new_create_dissector_handle(dissect_ABS_Status_PDU, proto_x2ap)); + dissector_add_uint("x2ap.extension", id_CSG_Id, new_create_dissector_handle(dissect_CSG_Id_PDU, proto_x2ap)); + dissector_add_uint("x2ap.extension", id_MDTConfiguration, new_create_dissector_handle(dissect_MDT_Configuration_PDU, proto_x2ap)); + dissector_add_uint("x2ap.extension", id_ManagementBasedMDTallowed, new_create_dissector_handle(dissect_ManagementBasedMDTallowed_PDU, proto_x2ap)); dissector_add_uint("x2ap.proc.imsg", id_handoverPreparation, new_create_dissector_handle(dissect_HandoverRequest_PDU, proto_x2ap)); dissector_add_uint("x2ap.proc.sout", id_handoverPreparation, new_create_dissector_handle(dissect_HandoverRequestAcknowledge_PDU, proto_x2ap)); dissector_add_uint("x2ap.proc.uout", id_handoverPreparation, new_create_dissector_handle(dissect_HandoverPreparationFailure_PDU, proto_x2ap)); |