--- /dev/null
+-- ASN1START
+-- **************************************************************
+-- E2SM-KPM Information Element Definitions
+-- **************************************************************
+
+E2SM-KPM-IEs {
+iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) oran(53148) e2(1) version3(3) e2sm(2) e2sm-KPMMON-IEs (2)}
+
+DEFINITIONS AUTOMATIC TAGS ::=
+
+BEGIN
+
+-- **************************************************************
+-- IEs
+-- **************************************************************
+
+IMPORTS
+ CGI,
+ FiveQI,
+ PLMNIdentity,
+ QCI,
+ QosFlowIdentifier,
+ RANfunction-Name,
+ RIC-Format-Type,
+ RIC-Style-Name,
+ RIC-Style-Type,
+ S-NSSAI,
+ UEID
+FROM E2SM-COMMON-IEs;
+
+TimeStamp ::= OCTET STRING (SIZE(8))
+
+BinIndex ::= INTEGER (1.. 65535, ...)
+
+BinRangeValue ::= CHOICE {
+ valueInt INTEGER,
+ valueReal REAL,
+ ...
+}
+
+GranularityPeriod ::= INTEGER (1.. 4294967295)
+
+LogicalOR ::= ENUMERATED {true, ...}
+
+MeasurementType ::= CHOICE {
+ measName MeasurementTypeName,
+ measID MeasurementTypeID,
+ ...
+}
+
+MeasurementTypeName ::= PrintableString(SIZE(1.. 150, ...))
+
+MeasurementTypeID ::= INTEGER (1.. 65536, ...)
+
+MeasurementLabel ::= SEQUENCE {
+ noLabel ENUMERATED {true, ...} OPTIONAL,
+ plmnID PLMNIdentity OPTIONAL,
+ sliceID S-NSSAI OPTIONAL,
+ fiveQI FiveQI OPTIONAL,
+ qFI QosFlowIdentifier OPTIONAL,
+ qCI QCI OPTIONAL,
+ qCImax QCI OPTIONAL,
+ qCImin QCI OPTIONAL,
+ aRPmax INTEGER (1.. 15, ...) OPTIONAL,
+ aRPmin INTEGER (1.. 15, ...) OPTIONAL,
+ bitrateRange INTEGER (1.. 65535, ...) OPTIONAL,
+ layerMU-MIMO INTEGER (1.. 65535, ...) OPTIONAL,
+ sUM ENUMERATED {true, ...} OPTIONAL,
+ distBinX INTEGER (1.. 65535, ...) OPTIONAL,
+ distBinY INTEGER (1.. 65535, ...) OPTIONAL,
+ distBinZ INTEGER (1.. 65535, ...) OPTIONAL,
+ preLabelOverride ENUMERATED {true, ...} OPTIONAL,
+ startEndInd ENUMERATED {start, end, ...} OPTIONAL,
+ min ENUMERATED {true, ...} OPTIONAL,
+ max ENUMERATED {true, ...} OPTIONAL,
+ avg ENUMERATED {true, ...} OPTIONAL,
+ ...,
+ ssbIndex INTEGER (1.. 65535, ...) OPTIONAL,
+ nonGoB-BFmode-Index INTEGER (1.. 65535, ...) OPTIONAL,
+ mIMO-mode-Index INTEGER (1.. 2, ...) OPTIONAL
+}
+
+TestCondInfo ::= SEQUENCE{
+ testType TestCond-Type,
+ testExpr TestCond-Expression OPTIONAL,
+ testValue TestCond-Value OPTIONAL,
+ ...
+}
+
+TestCond-Type ::= CHOICE{
+ gBR ENUMERATED {true, ...},
+ aMBR ENUMERATED {true, ...},
+ isStat ENUMERATED {true, ...},
+ isCatM ENUMERATED {true, ...},
+ rSRP ENUMERATED {true, ...},
+ rSRQ ENUMERATED {true, ...},
+ ...,
+ ul-rSRP ENUMERATED {true, ...},
+ cQI ENUMERATED {true, ...},
+ fiveQI ENUMERATED {true, ...},
+ qCI ENUMERATED {true, ...},
+ sNSSAI ENUMERATED {true, ...}
+}
+
+TestCond-Expression ::= ENUMERATED {
+equal,
+greaterthan,
+lessthan,
+contains,
+present,
+...
+}
+
+TestCond-Value ::= CHOICE{
+ valueInt INTEGER,
+ valueEnum INTEGER,
+ valueBool BOOLEAN,
+ valueBitS BIT STRING,
+ valueOctS OCTET STRING,
+ valuePrtS PrintableString,
+ ...,
+ valueReal REAL
+}
+
+-- **************************************************************
+-- Lists
+-- **************************************************************
+
+maxnoofCells INTEGER ::= 16384
+maxnoofRICStyles INTEGER ::= 63
+maxnoofMeasurementInfo INTEGER ::= 65535
+maxnoofLabelInfo INTEGER ::= 2147483647
+maxnoofMeasurementRecord INTEGER ::= 65535
+maxnoofMeasurementValue INTEGER ::= 2147483647
+maxnoofConditionInfo INTEGER ::= 32768
+maxnoofUEID INTEGER ::= 65535
+maxnoofConditionInfoPerSub INTEGER ::= 32768
+maxnoofUEIDPerSub INTEGER ::= 65535
+maxnoofUEMeasReport INTEGER ::= 65535
+maxnoofBin INTEGER ::= 65535
+
+BinRangeDefinition ::= SEQUENCE {
+binRangeListX BinRangeList,
+binRangeListY BinRangeList OPTIONAL -- This IE shall not be present for a distribution measurement type that doesn't use Distribution Bin Y --,
+binRangeListZ BinRangeList OPTIONAL -- This IE shall not be present for a distribution measurement type that doesn't use Distribution Bin Z --,
+...
+}
+
+BinRangeList ::= SEQUENCE (SIZE(1..maxnoofBin)) OF BinRangeItem
+
+BinRangeItem ::= SEQUENCE {
+ binIndex BinIndex,
+ startValue BinRangeValue,
+ endValue BinRangeValue,
+ ...
+}
+
+DistMeasurementBinRangeList ::= SEQUENCE (SIZE(1..maxnoofMeasurementInfo)) OF DistMeasurementBinRangeItem
+
+DistMeasurementBinRangeItem ::= SEQUENCE {
+ measType MeasurementType,
+ binRangeDef BinRangeDefinition,
+ ...
+}
+
+MeasurementInfoList ::= SEQUENCE (SIZE(1..maxnoofMeasurementInfo)) OF MeasurementInfoItem
+
+MeasurementInfoItem ::= SEQUENCE {
+ measType MeasurementType,
+ labelInfoList LabelInfoList,
+ ...
+}
+
+LabelInfoList ::= SEQUENCE (SIZE(1..maxnoofLabelInfo)) OF LabelInfoItem
+
+LabelInfoItem ::= SEQUENCE {
+ measLabel MeasurementLabel,
+ ...
+}
+
+MeasurementData ::= SEQUENCE (SIZE(1..maxnoofMeasurementRecord)) OF MeasurementDataItem
+
+MeasurementDataItem ::= SEQUENCE {
+measRecord MeasurementRecord,
+incompleteFlag ENUMERATED {true, ...} OPTIONAL,
+...
+}
+
+MeasurementRecord ::= SEQUENCE (SIZE(1..maxnoofMeasurementValue)) OF MeasurementRecordItem
+
+MeasurementRecordItem ::= CHOICE {
+ integer INTEGER (0.. 4294967295),
+ real REAL,
+ noValue NULL,
+ ...
+}
+
+MeasurementInfo-Action-List ::= SEQUENCE (SIZE(1..maxnoofMeasurementInfo)) OF MeasurementInfo-Action-Item
+
+MeasurementInfo-Action-Item ::= SEQUENCE {
+ measName MeasurementTypeName,
+ measID MeasurementTypeID OPTIONAL,
+ ...,
+ binRangeDef BinRangeDefinition OPTIONAL
+}
+
+MeasurementCondList ::= SEQUENCE (SIZE(1..maxnoofMeasurementInfo)) OF MeasurementCondItem
+
+MeasurementCondItem ::= SEQUENCE {
+ measType MeasurementType,
+ matchingCond MatchingCondList,
+ ...,
+ binRangeDef BinRangeDefinition OPTIONAL
+}
+
+MeasurementCondUEidList ::= SEQUENCE (SIZE(1..maxnoofMeasurementInfo)) OF MeasurementCondUEidItem
+
+MeasurementCondUEidItem ::= SEQUENCE {
+ measType MeasurementType,
+ matchingCond MatchingCondList,
+ matchingUEidList MatchingUEidList OPTIONAL,
+ ...,
+ matchingUEidPerGP MatchingUEidPerGP OPTIONAL
+}
+
+MatchingCondList ::= SEQUENCE (SIZE(1..maxnoofConditionInfo)) OF MatchingCondItem
+
+MatchingCondItem ::= SEQUENCE {
+matchingCondChoice MatchingCondItem-Choice,
+logicalOR LogicalOR OPTIONAL,
+...
+}
+
+MatchingCondItem-Choice ::= CHOICE{
+ measLabel MeasurementLabel,
+ testCondInfo TestCondInfo,
+ ...
+}
+
+MatchingUEidList ::= SEQUENCE (SIZE(1..maxnoofUEID)) OF MatchingUEidItem
+
+MatchingUEidItem ::= SEQUENCE{
+ ueID UEID,
+ ...
+}
+
+MatchingUEidPerGP ::= SEQUENCE (SIZE(1..maxnoofMeasurementRecord)) OF MatchingUEidPerGP-Item
+
+MatchingUEidPerGP-Item ::= SEQUENCE{
+ matchedPerGP CHOICE{
+ noUEmatched ENUMERATED {true, ...},
+ oneOrMoreUEmatched MatchingUEidList-PerGP,
+ ...
+ },
+ ...
+}
+
+MatchingUEidList-PerGP ::= SEQUENCE (SIZE(1..maxnoofUEID)) OF MatchingUEidItem-PerGP
+
+MatchingUEidItem-PerGP ::= SEQUENCE{
+ ueID UEID,
+ ...
+}
+
+
+MatchingUeCondPerSubList ::= SEQUENCE (SIZE(1..maxnoofConditionInfoPerSub)) OF MatchingUeCondPerSubItem
+
+MatchingUeCondPerSubItem ::= SEQUENCE{
+ testCondInfo TestCondInfo,
+ ...,
+ logicalOR LogicalOR OPTIONAL
+}
+
+MatchingUEidPerSubList ::= SEQUENCE (SIZE(2..maxnoofUEIDPerSub)) OF MatchingUEidPerSubItem
+
+MatchingUEidPerSubItem ::= SEQUENCE{
+ ueID UEID,
+ ...
+}
+
+UEMeasurementReportList ::= SEQUENCE (SIZE(1..maxnoofUEMeasReport)) OF UEMeasurementReportItem
+
+UEMeasurementReportItem ::= SEQUENCE{
+ ueID UEID,
+ measReport E2SM-KPM-IndicationMessage-Format1,
+ ...
+}
+
+
+
+-- **************************************************************
+-- E2SM-KPM Service Model IEs
+-- **************************************************************
+
+-- **************************************************************
+-- Event Trigger Definition OCTET STRING contents
+-- **************************************************************
+
+E2SM-KPM-EventTriggerDefinition ::= SEQUENCE{
+ eventDefinition-formats CHOICE{
+ eventDefinition-Format1 E2SM-KPM-EventTriggerDefinition-Format1,
+ ...
+ },
+ ...
+}
+
+E2SM-KPM-EventTriggerDefinition-Format1 ::= SEQUENCE{
+ reportingPeriod INTEGER (1.. 4294967295),
+ ...
+}
+
+-- **************************************************************
+-- Action Definition OCTET STRING contents
+-- **************************************************************
+
+E2SM-KPM-ActionDefinition ::= SEQUENCE{
+ ric-Style-Type RIC-Style-Type,
+ actionDefinition-formats CHOICE{
+ actionDefinition-Format1 E2SM-KPM-ActionDefinition-Format1,
+ actionDefinition-Format2 E2SM-KPM-ActionDefinition-Format2,
+ actionDefinition-Format3 E2SM-KPM-ActionDefinition-Format3,
+ ...,
+ actionDefinition-Format4 E2SM-KPM-ActionDefinition-Format4,
+ actionDefinition-Format5 E2SM-KPM-ActionDefinition-Format5
+ },
+ ...
+}
+
+E2SM-KPM-ActionDefinition-Format1 ::= SEQUENCE {
+ measInfoList MeasurementInfoList,
+ granulPeriod GranularityPeriod,
+ cellGlobalID CGI OPTIONAL,
+ ...,
+ distMeasBinRangeInfo DistMeasurementBinRangeList OPTIONAL
+}
+
+E2SM-KPM-ActionDefinition-Format2 ::= SEQUENCE {
+ ueID UEID,
+ subscriptInfo E2SM-KPM-ActionDefinition-Format1,
+ ...
+}
+
+E2SM-KPM-ActionDefinition-Format3 ::= SEQUENCE {
+ measCondList MeasurementCondList,
+ granulPeriod GranularityPeriod,
+ cellGlobalID CGI OPTIONAL,
+ ...
+}
+
+E2SM-KPM-ActionDefinition-Format4 ::= SEQUENCE {
+ matchingUeCondList MatchingUeCondPerSubList,
+ subscriptionInfo E2SM-KPM-ActionDefinition-Format1,
+ ...
+}
+
+E2SM-KPM-ActionDefinition-Format5 ::= SEQUENCE {
+ matchingUEidList MatchingUEidPerSubList,
+ subscriptionInfo E2SM-KPM-ActionDefinition-Format1,
+ ...
+}
+
+
+-- **************************************************************
+-- Indication Header OCTET STRING contents
+-- **************************************************************
+
+E2SM-KPM-IndicationHeader ::= SEQUENCE{
+ indicationHeader-formats CHOICE{
+ indicationHeader-Format1 E2SM-KPM-IndicationHeader-Format1,
+ ...
+ },
+ ...
+}
+
+E2SM-KPM-IndicationHeader-Format1 ::= SEQUENCE{
+ colletStartTime TimeStamp,
+ fileFormatversion PrintableString (SIZE (0..15), ...) OPTIONAL,
+ senderName PrintableString (SIZE (0..400), ...) OPTIONAL,
+ senderType PrintableString (SIZE (0..8), ...) OPTIONAL,
+ vendorName PrintableString (SIZE (0..32), ...) OPTIONAL,
+ ...
+}
+
+-- **************************************************************
+-- Indication Message OCTET STRING contents
+-- **************************************************************
+
+E2SM-KPM-IndicationMessage ::= SEQUENCE{
+ indicationMessage-formats CHOICE{
+ indicationMessage-Format1 E2SM-KPM-IndicationMessage-Format1,
+ indicationMessage-Format2 E2SM-KPM-IndicationMessage-Format2,
+ ...,
+ indicationMessage-Format3 E2SM-KPM-IndicationMessage-Format3
+ },
+ ...
+}
+
+E2SM-KPM-IndicationMessage-Format1 ::= SEQUENCE {
+ measData MeasurementData,
+ measInfoList MeasurementInfoList OPTIONAL,
+ granulPeriod GranularityPeriod OPTIONAL,
+ ...
+}
+
+E2SM-KPM-IndicationMessage-Format2 ::= SEQUENCE {
+ measData MeasurementData,
+ measCondUEidList MeasurementCondUEidList,
+ granulPeriod GranularityPeriod OPTIONAL,
+ ...
+}
+
+E2SM-KPM-IndicationMessage-Format3 ::= SEQUENCE {
+ ueMeasReportList UEMeasurementReportList,
+ ...
+}
+
+
+-- ***************************************************************
+-- RAN Function Definition OCTET STRING contents
+-- ***************************************************************
+
+E2SM-KPM-RANfunction-Description ::= SEQUENCE{
+ ranFunction-Name RANfunction-Name,
+ ric-EventTriggerStyle-List SEQUENCE (SIZE(1..maxnoofRICStyles)) OF RIC-EventTriggerStyle-Item OPTIONAL,
+ ric-ReportStyle-List SEQUENCE (SIZE(1..maxnoofRICStyles)) OF RIC-ReportStyle-Item OPTIONAL,
+ ...
+}
+
+RIC-EventTriggerStyle-Item ::= SEQUENCE{
+ ric-EventTriggerStyle-Type RIC-Style-Type,
+ ric-EventTriggerStyle-Name RIC-Style-Name,
+ ric-EventTriggerFormat-Type RIC-Format-Type,
+ ...
+}
+
+RIC-ReportStyle-Item ::= SEQUENCE{
+ ric-ReportStyle-Type RIC-Style-Type,
+ ric-ReportStyle-Name RIC-Style-Name,
+ ric-ActionFormat-Type RIC-Format-Type,
+ measInfo-Action-List MeasurementInfo-Action-List,
+ ric-IndicationHeaderFormat-Type RIC-Format-Type,
+ ric-IndicationMessageFormat-Type RIC-Format-Type,
+ ...
+}
+
+END
+
+-- ASN1STOP