E2AP 2.01

This commit is contained in:
Martin Mathieson 2022-10-27 12:45:17 +01:00 committed by Martin Mathieson
parent c8cf2f544c
commit d46e7f90f2
15 changed files with 14079 additions and 2703 deletions

View File

@ -25,7 +25,9 @@ set( ASN_FILE_LIST
E2AP-IEs.asn
E2AP-PDU-Contents.asn
E2AP-PDU-Descriptions.asn
e2sm-kpm-v1.asn
e2sm-v2.01.asn
e2sm-ric-v1.02.asn
e2sm-kpm-v2.02.asn
)
set( EXTRA_DIST

View File

@ -2,12 +2,12 @@
-- **************************************************************
--
-- Common definitions
-- Derived from 3GPP 38.413 v15.4.0
-- Derived from 3GPP 38.413 (NGAP)
--
-- **************************************************************
E2AP-CommonDataTypes {
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version1 (1) e2ap(1) e2ap-CommonDataTypes (3) }
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version2 (2) e2ap(1) e2ap-CommonDataTypes (3) }
DEFINITIONS AUTOMATIC TAGS ::=

View File

@ -6,7 +6,7 @@
-- **************************************************************
E2AP-Constants {
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version1 (1) e2ap(1) e2ap-Constants (4) }
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version2 (2) e2ap(1) e2ap-Constants (4) }
DEFINITIONS AUTOMATIC TAGS ::=
@ -31,6 +31,10 @@ id-RICserviceQuery ProcedureCode ::= 6
id-RICserviceUpdate ProcedureCode ::= 7
id-RICsubscription ProcedureCode ::= 8
id-RICsubscriptionDelete ProcedureCode ::= 9
id-E2nodeConfigurationUpdate ProcedureCode ::= 10
id-E2connectionUpdate ProcedureCode ::= 11
id-RICsubscriptionDeleteRequired ProcedureCode ::= 12
id-E2removal ProcedureCode ::= 13
-- **************************************************************
--
@ -47,8 +51,12 @@ maxProtocolIEs INTEGER ::= 65535
--
-- **************************************************************
maxnoofErrors INTEGER ::= 256
maxofE2nodeComponents INTEGER ::= 1024
maxofRANfunctionID INTEGER ::= 256
maxofRICactionID INTEGER ::= 16
maxofTNLA INTEGER ::= 32
maxofRICrequestID INTEGER ::= 4294967295
-- **************************************************************
--
@ -87,7 +95,33 @@ id-RICrequestID ProtocolIE-ID ::= 29
id-RICsubscriptionDetails ProtocolIE-ID ::= 30
id-TimeToWait ProtocolIE-ID ::= 31
id-RICcontrolOutcome ProtocolIE-ID ::= 32
id-E2nodeComponentConfigUpdate ProtocolIE-ID ::= 33
id-E2nodeComponentConfigUpdate-Item ProtocolIE-ID ::= 34
id-E2nodeComponentConfigUpdateAck ProtocolIE-ID ::= 35
id-E2nodeComponentConfigUpdateAck-Item ProtocolIE-ID ::= 36
id-E2connectionSetup ProtocolIE-ID ::= 39
id-E2connectionSetupFailed ProtocolIE-ID ::= 40
id-E2connectionSetupFailed-Item ProtocolIE-ID ::= 41
id-E2connectionFailed-Item ProtocolIE-ID ::= 42
id-E2connectionUpdate-Item ProtocolIE-ID ::= 43
id-E2connectionUpdateAdd ProtocolIE-ID ::= 44
id-E2connectionUpdateModify ProtocolIE-ID ::= 45
id-E2connectionUpdateRemove ProtocolIE-ID ::= 46
id-E2connectionUpdateRemove-Item ProtocolIE-ID ::= 47
id-TNLinformation ProtocolIE-ID ::= 48
id-TransactionID ProtocolIE-ID ::= 49
id-E2nodeComponentConfigAddition ProtocolIE-ID ::= 50
id-E2nodeComponentConfigAddition-Item ProtocolIE-ID ::= 51
id-E2nodeComponentConfigAdditionAck ProtocolIE-ID ::= 52
id-E2nodeComponentConfigAdditionAck-Item ProtocolIE-ID ::= 53
id-E2nodeComponentConfigRemoval ProtocolIE-ID ::= 54
id-E2nodeComponentConfigRemoval-Item ProtocolIE-ID ::= 55
id-E2nodeComponentConfigRemovalAck ProtocolIE-ID ::= 56
id-E2nodeComponentConfigRemovalAck-Item ProtocolIE-ID ::= 57
id-E2nodeTNLassociationRemoval ProtocolIE-ID ::= 58
id-E2nodeTNLassociationRemoval-Item ProtocolIE-ID ::= 59
id-RICsubscriptionToBeRemoved ProtocolIE-ID ::= 60
id-RICsubscription-withCause-Item ProtocolIE-ID ::= 61
END
-- ASN1STOP

View File

@ -3,11 +3,11 @@
--
-- Container definitions
--
-- derived from 3GPP 38.413 v15.4.0
-- derived from 3GPP 38.413 (NGAP)
-- **************************************************************
E2AP-Containers {
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version1 (1) e2ap(1) e2ap-Containers (5) }
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version2 (2) e2ap(1) e2ap-Containers (5) }
DEFINITIONS AUTOMATIC TAGS ::=
@ -23,8 +23,6 @@ IMPORTS
Criticality,
Presence,
PrivateIE-ID,
ProtocolExtensionID,
ProtocolIE-ID
FROM E2AP-CommonDataTypes

View File

@ -6,7 +6,7 @@
-- **************************************************************
E2AP-IEs {
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version1 (1) e2ap(1) e2ap-IEs (2)}
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version2 (2) e2ap(1) e2ap-IEs (2)}
DEFINITIONS AUTOMATIC TAGS ::=
@ -25,17 +25,29 @@ maxProtocolIEs
FROM E2AP-Constants;
-- A
-- **************************************************************
-- [New for E2AP v02.00] copied from 3GPP 38.413 (NGAP) IEs
-- **************************************************************
AMFName ::= PrintableString (SIZE(1..150, ...))
-- B
-- C
Cause ::= CHOICE {
ricRequest CauseRIC,
ricRequest CauseRICrequest,
ricService CauseRICservice,
e2Node CauseE2node,
transport CauseTransport,
protocol CauseProtocol,
misc CauseMisc,
...
}
CauseE2node ::= ENUMERATED {
e2node-component-unknown,
...
}
CauseMisc ::= ENUMERATED {
control-processing-overload,
hardware-failure,
@ -43,6 +55,7 @@ om-intervention,
unspecified,
...
}
CauseProtocol ::= ENUMERATED {
transfer-syntax-error,
abstract-syntax-error-reject,
@ -54,23 +67,26 @@ unspecified,
...
}
CauseRIC ::= ENUMERATED {
ran-function-id-Invalid,
CauseRICrequest ::= ENUMERATED {
ran-function-id-invalid,
action-not-supported,
excessive-actions,
duplicate-action,
duplicate-event,
duplicate-event-trigger,
function-resource-limit,
request-id-unknown,
inconsistent-action-subsequent-action-sequence,
control-message-invalid,
call-process-id-invalid,
ric-call-process-id-invalid,
control-timer-expired,
control-failed-to-execute,
system-not-ready,
unspecified,
...
}
CauseRICservice ::= ENUMERATED{
function-not-required,
ran-function-not-supported,
excessive-functions,
ric-resource-limit,
...
@ -82,7 +98,7 @@ transport-resource-unavailable,
}
-- **************************************************************
-- copied from 3GPP 38.413 NGAP IEs v15.5.0
-- copied from 3GPP 38.413 (NGAP) IEs
-- note: ie-Extensions removed
-- **************************************************************
CriticalityDiagnostics ::= SEQUENCE {
@ -106,8 +122,70 @@ typeOfError TypeOfError,
-- D
-- E
-- Following IE used to carry 3GPP defined SETUP and RAN Configuration messages defined in F1AP, E1AP, XnAP, etc.
E2nodeComponentConfiguration ::= SEQUENCE{
e2nodeComponentRequestPart OCTET STRING,
e2nodeComponentResponsePart OCTET STRING,
...
}
E2nodeComponentConfigurationAck ::= SEQUENCE{
updateOutcome ENUMERATED {success, failure, ...},
failureCause Cause OPTIONAL,
...
}
E2nodeComponentInterfaceType ::= ENUMERATED {ng, xn, e1, f1, w1, s1, x2,...}
E2nodeComponentID ::= CHOICE{
e2nodeComponentInterfaceTypeNG E2nodeComponentInterfaceNG,
e2nodeComponentInterfaceTypeXn E2nodeComponentInterfaceXn,
e2nodeComponentInterfaceTypeE1 E2nodeComponentInterfaceE1,
e2nodeComponentInterfaceTypeF1 E2nodeComponentInterfaceF1,
e2nodeComponentInterfaceTypeW1 E2nodeComponentInterfaceW1,
e2nodeComponentInterfaceTypeS1 E2nodeComponentInterfaceS1,
e2nodeComponentInterfaceTypeX2 E2nodeComponentInterfaceX2,
...
}
E2nodeComponentInterfaceE1 ::= SEQUENCE{
gNB-CU-CP-ID GNB-CU-UP-ID,
...
}
E2nodeComponentInterfaceF1 ::= SEQUENCE{
gNB-DU-ID GNB-DU-ID,
...
}
E2nodeComponentInterfaceNG ::= SEQUENCE{
amf-name AMFName,
...
}
E2nodeComponentInterfaceS1 ::= SEQUENCE{
mme-name MMEname,
...
}
E2nodeComponentInterfaceX2 ::= SEQUENCE{
global-eNB-ID GlobalENB-ID OPTIONAL,
global-en-gNB-ID GlobalenGNB-ID OPTIONAL,
...
}
E2nodeComponentInterfaceXn ::= SEQUENCE{
global-NG-RAN-Node-ID GlobalNG-RANNode-ID,
...
}
E2nodeComponentInterfaceW1 ::= SEQUENCE{
ng-eNB-DU-ID NGENB-DU-ID,
...
}
-- **************************************************************
-- copied from 3GPP X2AP IEs v15.4.0
-- copied from 3GPP 36.423 (X2AP) IEs
-- note: ie-Extensions removed
-- **************************************************************
ENB-ID ::= CHOICE {
@ -118,7 +196,7 @@ short-Macro-eNB-ID BIT STRING (SIZE(18)),
long-Macro-eNB-ID BIT STRING (SIZE(21))
}
-- **************************************************************
-- copied from 3GPP 38.423 v15.5.0 XnAP IEs
-- copied from 3GPP 38.423 (XnAP) IEs
-- **************************************************************
ENB-ID-Choice ::= CHOICE {
enb-ID-macro BIT STRING (SIZE(20)),
@ -128,7 +206,7 @@ enb-ID-longmacro BIT STRING (SIZE(21)),
}
-- **************************************************************
-- copied from 3GPP X2AP IEs v15.4.0
-- copied from 3GPP 36.423 (X2AP) IEs
-- note: ie-Extensions removed
-- Note: to avoid duplicate names with XnAP, GNB-ID renamed ENGNB-ID, GlobalGNB-ID renamed GlobalenGNB-ID
-- **************************************************************
@ -148,7 +226,9 @@ eNB GlobalE2node-eNB-ID,
}
GlobalE2node-en-gNB-ID ::= SEQUENCE{
global-gNB-ID GlobalenGNB-ID,
global-en-gNB-ID GlobalenGNB-ID,
en-gNB-CU-UP-ID GNB-CU-UP-ID OPTIONAL,
en-gNB-DU-ID GNB-DU-ID OPTIONAL,
...
}
GlobalE2node-eNB-ID ::= SEQUENCE{
@ -157,16 +237,19 @@ global-eNB-ID GlobalENB-ID,
}
GlobalE2node-gNB-ID ::= SEQUENCE{
global-gNB-ID GlobalgNB-ID,
global-en-gNB-ID GlobalenGNB-ID OPTIONAL,
gNB-CU-UP-ID GNB-CU-UP-ID OPTIONAL,
gNB-DU-ID GNB-DU-ID OPTIONAL,
...
}
GlobalE2node-ng-eNB-ID ::= SEQUENCE{
global-ng-eNB-ID GlobalngeNB-ID,
global-eNB-ID GlobalENB-ID OPTIONAL,
ngENB-DU-ID NGENB-DU-ID OPTIONAL,
...
}
-- **************************************************************
-- copied from 3GPP X2AP IEs v15.4.0
-- copied from 3GPP 36.423 (X2AP) IEs
-- note: ie-Extensions removed
-- **************************************************************
@ -176,7 +259,7 @@ eNB-ID ENB-ID,
...
}
-- **************************************************************
-- copied from 3GPP X2AP IEs v15.4.0
-- copied from 3GPP 36.423 (X2AP) IEs
-- Note: to avoid duplicate names with XnAP, GNB-ID renamed ENGNB-ID, GlobalGNB-ID renamed GlobalenGNB-ID
-- **************************************************************
GlobalenGNB-ID ::= SEQUENCE {
@ -185,7 +268,7 @@ gNB-ID ENGNB-ID,
...
}
-- **************************************************************
-- copied from 3GPP 38.423 v15.5.0 XnAP IEs
-- copied from 3GPP 38.423 (XnAP) IEs
-- **************************************************************
GlobalgNB-ID ::= SEQUENCE {
plmn-id PLMN-Identity,
@ -195,7 +278,7 @@ gnb-id GNB-ID-Choice,
-- **************************************************************
-- copied from 3GPP 38.423 v15.5.0 XnAP IEs
-- copied from 3GPP 38.423 (XnAP) IEs
-- **************************************************************
GlobalngeNB-ID ::= SEQUENCE {
plmn-id PLMN-Identity,
@ -203,6 +286,17 @@ enb-id ENB-ID-Choice,
...
}
-- **************************************************************
-- [NEW for E2AP v02.00] copied from 3GPP 38.423 (XnAP) IEs
-- Note: extension field removed
-- **************************************************************
GlobalNG-RANNode-ID ::= CHOICE {
gNB GlobalgNB-ID,
ng-eNB GlobalngeNB-ID,
...
}
GlobalRIC-ID ::= SEQUENCE{
pLMN-Identity PLMN-Identity,
ric-ID BIT STRING (SIZE (20)),
@ -210,13 +304,13 @@ ric-ID BIT STRING (SIZE (20)),
}
-- **************************************************************
-- copied from 3GPP 38.463 v15.5.0 E1AP IEs
-- copied from 3GPP 38.463 (E1AP) IEs
-- **************************************************************
GNB-CU-UP-ID::= INTEGER (0..68719476735)
GNB-DU-ID::= INTEGER (0..68719476735)
-- **************************************************************
-- copied from 3GPP 38.423 v15.5.0 XnAP IEs
-- copied from 3GPP 38.423 (XnAP) IEs
-- **************************************************************
GNB-ID-Choice ::= CHOICE {
gnb-ID BIT STRING (SIZE(22..32)),
@ -228,11 +322,24 @@ gnb-ID BIT STRING (SIZE(22..32)),
-- K
-- L
-- M
-- **************************************************************
-- [New for E2AP v02.00] copied from 3GPP 36.413 (S1AP) IEs
-- **************************************************************
MMEname ::= PrintableString (SIZE (1..150,...))
-- N
-- **************************************************************
-- copied from 3GPP 37.473 (W1AP) IEs
-- **************************************************************
NGENB-DU-ID ::= INTEGER (0..68719476735)
-- O
-- P
-- **************************************************************
-- copied from 3GPP X2AP IEs v15.4.0
-- copied from 3GPP 36.423 (X2AP) IEs
-- **************************************************************
PLMN-Identity ::= OCTET STRING (SIZE(3))
@ -245,6 +352,8 @@ RANfunctionDefinition ::= OCTET STRING
RANfunctionID ::= INTEGER (0..4095)
RANfunctionOID ::= PrintableString(SIZE(1..1000,...))
RANfunctionRevision ::= INTEGER (0..4095)
-- **************************************************************
@ -269,7 +378,6 @@ RICcallProcessID ::= OCTET STRING
RICcontrolAckRequest ::= ENUMERATED{
noAck,
ack,
nAck,
...
}
@ -288,13 +396,6 @@ RICcontrolMessage ::= OCTET STRING
-- **************************************************************
RICcontrolOutcome ::= OCTET STRING
RICcontrolStatus ::= ENUMERATED{
success,
rejected,
failed,
...
}
-- **************************************************************
-- Following IE defined in E2SM
-- **************************************************************
@ -337,7 +438,6 @@ wait,
}
RICtimeToWait ::= ENUMERATED{
zero,
w1ms,
w2ms,
w5ms,
@ -360,12 +460,23 @@ w60s,
-- S
-- T
-- **************************************************************
-- copied from 3GPP 38.413 NGAP IEs v15.5.0
-- copied from 3GPP 38.413 (NGAP) IEs
-- **************************************************************
TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...}
TNLinformation ::= SEQUENCE{
tnlAddress BIT STRING (SIZE(1..160,...)),
tnlPort BIT STRING (SIZE(16)) OPTIONAL,
...
}
TNLusage ::= ENUMERATED{ric-service, support-function, both, ...}
TransactionID ::= INTEGER (0..255,...)
-- **************************************************************
-- copied from 3GPP 38.413 NGAP IEs v15.5.0
-- copied from 3GPP 38.413 (NGAP) IEs
-- **************************************************************
TypeOfError ::= ENUMERATED {
not-understood,

View File

@ -2,12 +2,12 @@
-- **************************************************************
--
-- PDU definitions for E2AP
-- Derived from 3GPP 38.413 v15.4.0 NGAP
-- Derived from 3GPP 38.413 (NGAP)
--
-- **************************************************************
E2AP-PDU-Contents {
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version1 (1) e2ap(1) e2ap-PDU-Contents (1) }
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version2 (2) e2ap(1) e2ap-PDU-Contents (1) }
DEFINITIONS AUTOMATIC TAGS ::=
@ -22,10 +22,15 @@ BEGIN
IMPORTS
Cause,
CriticalityDiagnostics,
E2nodeComponentConfiguration,
E2nodeComponentConfigurationAck,
E2nodeComponentID,
E2nodeComponentInterfaceType,
GlobalE2node-ID,
GlobalRIC-ID,
RANfunctionDefinition,
RANfunctionID,
RANfunctionOID,
RANfunctionRevision,
RICactionDefinition,
RICactionID,
@ -35,7 +40,6 @@ RICcontrolAckRequest,
RICcontrolHeader,
RICcontrolMessage,
RICcontrolOutcome,
RICcontrolStatus,
RICeventTriggerDefinition,
RICindicationHeader,
RICindicationMessage,
@ -43,7 +47,10 @@ RICindicationSN,
RICindicationType,
RICrequestID,
RICsubsequentAction,
TimeToWait
TimeToWait,
TNLinformation,
TNLusage,
TransactionID
FROM E2AP-IEs
ProtocolIE-Container{},
@ -55,6 +62,29 @@ FROM E2AP-Containers
id-Cause,
id-CriticalityDiagnostics,
id-E2connectionSetup,
id-E2connectionSetupFailed,
id-E2connectionSetupFailed-Item,
id-E2connectionFailed-Item,
id-E2connectionUpdate-Item,
id-E2connectionUpdateAdd,
id-E2connectionUpdateModify,
id-E2connectionUpdateRemove,
id-E2connectionUpdateRemove-Item,
id-E2nodeComponentConfigAddition,
id-E2nodeComponentConfigAddition-Item,
id-E2nodeComponentConfigAdditionAck,
id-E2nodeComponentConfigAdditionAck-Item,
id-E2nodeComponentConfigRemoval,
id-E2nodeComponentConfigRemoval-Item,
id-E2nodeComponentConfigRemovalAck,
id-E2nodeComponentConfigRemovalAck-Item,
id-E2nodeComponentConfigUpdate,
id-E2nodeComponentConfigUpdate-Item,
id-E2nodeComponentConfigUpdateAck,
id-E2nodeComponentConfigUpdateAck-Item,
id-E2nodeTNLassociationRemoval,
id-E2nodeTNLassociationRemoval-Item,
id-GlobalE2node-ID,
id-GlobalRIC-ID,
id-RANfunctionID,
@ -77,7 +107,6 @@ id-RICcontrolAckRequest,
id-RICcontrolHeader,
id-RICcontrolMessage,
id-RICcontrolOutcome,
id-RICcontrolStatus,
id-RICindicationHeader,
id-RICindicationMessage,
id-RICindicationSN,
@ -85,12 +114,20 @@ id-RICindicationType,
id-RICrequestID,
id-RICserviceQuery,
id-RICsubscriptionDetails,
id-RICsubscriptionToBeRemoved,
id-RICsubscription-withCause-Item,
id-TimeToWait,
id-TNLinformation,
id-TransactionID,
maxofE2nodeComponents,
maxofRANfunctionID,
maxofRICactionID
maxofRICactionID,
maxofRICrequestID,
maxofTNLA
FROM E2AP-Constants;
-- **************************************************************
--
-- MESSAGES FOR NEAR-RT RIC FUNCTIONAL PROCEDURES
@ -199,7 +236,7 @@ protocolIEs ProtocolIE-Container {{RICsubscriptionFailure-IEs}},
RICsubscriptionFailure-IEs E2AP-PROTOCOL-IES ::= {
{ ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory }|
{ ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory }|
{ ID id-RICactions-NotAdmitted CRITICALITY reject TYPE RICaction-NotAdmitted-List PRESENCE mandatory }|
{ ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory }|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
...
}
@ -258,6 +295,41 @@ RICsubscriptionDeleteFailure-IEs E2AP-PROTOCOL-IES ::= {
...
}
-- **************************************************************
--
-- RIC Subscription Delete Required Elementary Procedure
--
-- **************************************************************
-- **************************************************************
--
-- RIC SUBSCRIPTION DELETE REQUIRED
--
-- **************************************************************
RICsubscriptionDeleteRequired ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{RICsubscriptionDeleteRequired-IEs}},
...
}
RICsubscriptionDeleteRequired-IEs E2AP-PROTOCOL-IES ::= {
{ ID id-RICsubscriptionToBeRemoved CRITICALITY ignore TYPE RICsubscription-List-withCause PRESENCE mandatory },
...
}
RICsubscription-List-withCause ::= SEQUENCE (SIZE(1..maxofRICrequestID)) OF ProtocolIE-SingleContainer { {RICsubscription-withCause-ItemIEs} }
RICsubscription-withCause-ItemIEs E2AP-PROTOCOL-IES ::= {
{ ID id-RICsubscription-withCause-Item CRITICALITY ignore TYPE RICsubscription-withCause-Item PRESENCE mandatory },
...
}
RICsubscription-withCause-Item ::= SEQUENCE {
ricRequestID RICrequestID,
ranFunctionID RANfunctionID,
cause Cause,
...
}
-- **************************************************************
--
-- RIC Indication Elementary Procedure
@ -323,7 +395,6 @@ RICcontrolAcknowledge-IEs E2AP-PROTOCOL-IES ::= {
{ ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory }|
{ ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory }|
{ ID id-RICcallProcessID CRITICALITY reject TYPE RICcallProcessID PRESENCE optional }|
{ ID id-RICcontrolStatus CRITICALITY reject TYPE RICcontrolStatus PRESENCE mandatory } |
{ ID id-RICcontrolOutcome CRITICALITY reject TYPE RICcontrolOutcome PRESENCE optional },
...
}
@ -368,6 +439,7 @@ protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}},
}
ErrorIndication-IEs E2AP-PROTOCOL-IES ::= {
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE optional }|
{ ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE optional }|
{ ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE optional }|
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional }|
@ -392,8 +464,10 @@ protocolIEs ProtocolIE-Container { {E2setupRequestIEs} },
}
E2setupRequestIEs E2AP-PROTOCOL-IES ::= {
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
{ ID id-GlobalE2node-ID CRITICALITY reject TYPE GlobalE2node-ID PRESENCE mandatory }|
{ ID id-RANfunctionsAdded CRITICALITY reject TYPE RANfunctions-List PRESENCE optional },
{ ID id-RANfunctionsAdded CRITICALITY reject TYPE RANfunctions-List PRESENCE mandatory }|
{ ID id-E2nodeComponentConfigAddition CRITICALITY reject TYPE E2nodeComponentConfigAddition-List PRESENCE mandatory },
...
}
@ -409,9 +483,11 @@ protocolIEs ProtocolIE-Container { {E2setupResponseIEs} },
}
E2setupResponseIEs E2AP-PROTOCOL-IES ::= {
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
{ ID id-GlobalRIC-ID CRITICALITY reject TYPE GlobalRIC-ID PRESENCE mandatory }|
{ ID id-RANfunctionsAccepted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional }|
{ ID id-RANfunctionsRejected CRITICALITY reject TYPE RANfunctionsIDcause-List PRESENCE optional },
{ ID id-RANfunctionsRejected CRITICALITY reject TYPE RANfunctionsIDcause-List PRESENCE optional }|
{ ID id-E2nodeComponentConfigAdditionAck CRITICALITY reject TYPE E2nodeComponentConfigAdditionAck-List PRESENCE mandatory },
...
}
@ -427,6 +503,263 @@ protocolIEs ProtocolIE-Container { {E2setupFailureIEs} },
}
E2setupFailureIEs E2AP-PROTOCOL-IES ::= {
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
{ ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
{ ID id-TNLinformation CRITICALITY ignore TYPE TNLinformation PRESENCE optional },
...
}
-- **************************************************************
--
-- E2 Connection Update Elementary Procedure
--
-- **************************************************************
-- **************************************************************
--
-- E2 CONNECTION UPDATE
--
-- **************************************************************
E2connectionUpdate ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{E2connectionUpdate-IEs}},
...
}
E2connectionUpdate-IEs E2AP-PROTOCOL-IES ::= {
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
{ ID id-E2connectionUpdateAdd CRITICALITY reject TYPE E2connectionUpdate-List PRESENCE optional }|
{ ID id-E2connectionUpdateRemove CRITICALITY reject TYPE E2connectionUpdateRemove-List PRESENCE optional }|
{ ID id-E2connectionUpdateModify CRITICALITY reject TYPE E2connectionUpdate-List PRESENCE optional },
...
}
E2connectionUpdate-List ::= SEQUENCE (SIZE(1..maxofTNLA)) OF ProtocolIE-SingleContainer { {E2connectionUpdate-ItemIEs} }
E2connectionUpdate-ItemIEs E2AP-PROTOCOL-IES ::= {
{ ID id-E2connectionUpdate-Item CRITICALITY ignore TYPE E2connectionUpdate-Item PRESENCE mandatory },
...
}
E2connectionUpdate-Item ::= SEQUENCE {
tnlInformation TNLinformation,
tnlUsage TNLusage,
...
}
E2connectionUpdateRemove-List ::= SEQUENCE (SIZE(1..maxofTNLA)) OF ProtocolIE-SingleContainer { {E2connectionUpdateRemove-ItemIEs} }
E2connectionUpdateRemove-ItemIEs E2AP-PROTOCOL-IES ::= {
{ ID id-E2connectionUpdateRemove-Item CRITICALITY ignore TYPE E2connectionUpdateRemove-Item PRESENCE mandatory },
...
}
E2connectionUpdateRemove-Item ::= SEQUENCE {
tnlInformation TNLinformation,
...
}
-- **************************************************************
--
-- E2 CONNECTION UPDATE ACKNOWLEDGE
--
-- **************************************************************
E2connectionUpdateAcknowledge ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{E2connectionUpdateAck-IEs}},
...
}
E2connectionUpdateAck-IEs E2AP-PROTOCOL-IES ::= {
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
{ ID id-E2connectionSetup CRITICALITY reject TYPE E2connectionUpdate-List PRESENCE optional }|
{ ID id-E2connectionSetupFailed CRITICALITY reject TYPE E2connectionSetupFailed-List PRESENCE optional },
...
}
E2connectionSetupFailed-List ::= SEQUENCE (SIZE(1..maxofTNLA)) OF ProtocolIE-SingleContainer { {E2connectionSetupFailed-ItemIEs} }
E2connectionSetupFailed-ItemIEs E2AP-PROTOCOL-IES ::= {
{ ID id-E2connectionSetupFailed-Item CRITICALITY ignore TYPE E2connectionSetupFailed-Item PRESENCE mandatory },
...
}
E2connectionSetupFailed-Item ::= SEQUENCE {
tnlInformation TNLinformation,
cause Cause,
...
}
-- **************************************************************
--
-- E2 CONNECTION UPDATE FAILURE
--
-- **************************************************************
E2connectionUpdateFailure ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{E2connectionUpdateFailure-IEs}},
...
}
E2connectionUpdateFailure-IEs E2AP-PROTOCOL-IES ::= {
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
{ ID id-Cause CRITICALITY reject TYPE Cause PRESENCE optional }|
{ ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
...
}
-- **************************************************************
--
-- E2 Node Configuration Update Elementary Procedure
--
-- **************************************************************
-- **************************************************************
--
-- E2 NODE CONFIGURATION UPDATE
--
-- **************************************************************
E2nodeConfigurationUpdate ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{E2nodeConfigurationUpdate-IEs}},
...
}
E2nodeConfigurationUpdate-IEs E2AP-PROTOCOL-IES ::= {
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
{ ID id-GlobalE2node-ID CRITICALITY reject TYPE GlobalE2node-ID PRESENCE optional }|
{ ID id-E2nodeComponentConfigAddition CRITICALITY reject TYPE E2nodeComponentConfigAddition-List PRESENCE optional }|
{ ID id-E2nodeComponentConfigUpdate CRITICALITY reject TYPE E2nodeComponentConfigUpdate-List PRESENCE optional }|
{ ID id-E2nodeComponentConfigRemoval CRITICALITY reject TYPE E2nodeComponentConfigRemoval-List PRESENCE optional }|
{ ID id-E2nodeTNLassociationRemoval CRITICALITY reject TYPE E2nodeTNLassociationRemoval-List PRESENCE optional },
...
}
E2nodeComponentConfigAddition-List ::= SEQUENCE (SIZE(1..maxofE2nodeComponents)) OF ProtocolIE-SingleContainer { {E2nodeComponentConfigAddition-ItemIEs} }
E2nodeComponentConfigAddition-ItemIEs E2AP-PROTOCOL-IES ::= {
{ ID id-E2nodeComponentConfigAddition-Item CRITICALITY reject TYPE E2nodeComponentConfigAddition-Item PRESENCE mandatory },
...
}
E2nodeComponentConfigAddition-Item ::= SEQUENCE {
e2nodeComponentInterfaceType E2nodeComponentInterfaceType,
e2nodeComponentID E2nodeComponentID,
e2nodeComponentConfiguration E2nodeComponentConfiguration,
...
}
E2nodeComponentConfigUpdate-List ::= SEQUENCE (SIZE(1..maxofE2nodeComponents)) OF ProtocolIE-SingleContainer { {E2nodeComponentConfigUpdate-ItemIEs} }
E2nodeComponentConfigUpdate-ItemIEs E2AP-PROTOCOL-IES ::= {
{ ID id-E2nodeComponentConfigUpdate-Item CRITICALITY reject TYPE E2nodeComponentConfigUpdate-Item PRESENCE mandatory },
...
}
E2nodeComponentConfigUpdate-Item ::= SEQUENCE {
e2nodeComponentInterfaceType E2nodeComponentInterfaceType,
e2nodeComponentID E2nodeComponentID,
e2nodeComponentConfiguration E2nodeComponentConfiguration,
...
}
E2nodeComponentConfigRemoval-List ::= SEQUENCE (SIZE(1..maxofE2nodeComponents)) OF ProtocolIE-SingleContainer { {E2nodeComponentConfigRemoval-ItemIEs} }
E2nodeComponentConfigRemoval-ItemIEs E2AP-PROTOCOL-IES ::= {
{ ID id-E2nodeComponentConfigRemoval-Item CRITICALITY reject TYPE E2nodeComponentConfigRemoval-Item PRESENCE mandatory },
...
}
E2nodeComponentConfigRemoval-Item ::= SEQUENCE {
e2nodeComponentInterfaceType E2nodeComponentInterfaceType,
e2nodeComponentID E2nodeComponentID,
...
}
E2nodeTNLassociationRemoval-List ::= SEQUENCE (SIZE(1..maxofTNLA)) OF ProtocolIE-SingleContainer { {E2nodeTNLassociationRemoval-ItemIEs} }
E2nodeTNLassociationRemoval-ItemIEs E2AP-PROTOCOL-IES ::= {
{ ID id-E2nodeTNLassociationRemoval-Item CRITICALITY reject TYPE E2nodeTNLassociationRemoval-Item PRESENCE mandatory },
...
}
E2nodeTNLassociationRemoval-Item ::= SEQUENCE {
tnlInformation TNLinformation,
tnlInformationRIC TNLinformation,
...
}
-- **************************************************************
--
-- E2 NODE CONFIGURATION UPDATE ACKNOWLEDGE
--
-- **************************************************************
E2nodeConfigurationUpdateAcknowledge ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{E2nodeConfigurationUpdateAcknowledge-IEs}},
...
}
E2nodeConfigurationUpdateAcknowledge-IEs E2AP-PROTOCOL-IES ::= {
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
{ ID id-E2nodeComponentConfigAdditionAck CRITICALITY reject TYPE E2nodeComponentConfigAdditionAck-List PRESENCE optional }|
{ ID id-E2nodeComponentConfigUpdateAck CRITICALITY reject TYPE E2nodeComponentConfigUpdateAck-List PRESENCE optional }|
{ ID id-E2nodeComponentConfigRemovalAck CRITICALITY reject TYPE E2nodeComponentConfigRemovalAck-List PRESENCE optional },
...
}
E2nodeComponentConfigAdditionAck-List ::= SEQUENCE (SIZE(1..maxofE2nodeComponents)) OF ProtocolIE-SingleContainer { {E2nodeComponentConfigAdditionAck-ItemIEs} }
E2nodeComponentConfigAdditionAck-ItemIEs E2AP-PROTOCOL-IES ::= {
{ ID id-E2nodeComponentConfigAdditionAck-Item CRITICALITY reject TYPE E2nodeComponentConfigAdditionAck-Item PRESENCE mandatory },
...
}
E2nodeComponentConfigAdditionAck-Item ::= SEQUENCE {
e2nodeComponentInterfaceType E2nodeComponentInterfaceType,
e2nodeComponentID E2nodeComponentID,
e2nodeComponentConfigurationAck E2nodeComponentConfigurationAck,
...
}
E2nodeComponentConfigUpdateAck-List ::= SEQUENCE (SIZE(1..maxofE2nodeComponents)) OF ProtocolIE-SingleContainer { {E2nodeComponentConfigUpdateAck-ItemIEs} }
E2nodeComponentConfigUpdateAck-ItemIEs E2AP-PROTOCOL-IES ::= {
{ ID id-E2nodeComponentConfigUpdateAck-Item CRITICALITY reject TYPE E2nodeComponentConfigUpdateAck-Item PRESENCE mandatory },
...
}
E2nodeComponentConfigUpdateAck-Item ::= SEQUENCE {
e2nodeComponentInterfaceType E2nodeComponentInterfaceType,
e2nodeComponentID E2nodeComponentID,
e2nodeComponentConfigurationAck E2nodeComponentConfigurationAck,
...
}
E2nodeComponentConfigRemovalAck-List ::= SEQUENCE (SIZE(1..maxofE2nodeComponents)) OF ProtocolIE-SingleContainer { {E2nodeComponentConfigRemovalAck-ItemIEs} }
E2nodeComponentConfigRemovalAck-ItemIEs E2AP-PROTOCOL-IES ::= {
{ ID id-E2nodeComponentConfigRemovalAck-Item CRITICALITY reject TYPE E2nodeComponentConfigRemovalAck-Item PRESENCE mandatory },
...
}
E2nodeComponentConfigRemovalAck-Item ::= SEQUENCE {
e2nodeComponentInterfaceType E2nodeComponentInterfaceType,
e2nodeComponentID E2nodeComponentID,
e2nodeComponentConfigurationAck E2nodeComponentConfigurationAck,
...
}
-- **************************************************************
--
-- E2 NODE CONFIGURATION UPDATE FAILURE
--
-- **************************************************************
E2nodeConfigurationUpdateFailure ::= SEQUENCE {
protocolIEs ProtocolIE-Container {{E2nodeConfigurationUpdateFailure-IEs}},
...
}
E2nodeConfigurationUpdateFailure-IEs E2AP-PROTOCOL-IES ::= {
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
{ ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
@ -451,6 +784,7 @@ protocolIEs ProtocolIE-Container { {ResetRequestIEs} },
}
ResetRequestIEs E2AP-PROTOCOL-IES ::= {
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
...
}
@ -467,6 +801,7 @@ protocolIEs ProtocolIE-Container { {ResetResponseIEs} },
}
ResetResponseIEs E2AP-PROTOCOL-IES ::= {
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
...
}
@ -487,15 +822,14 @@ protocolIEs ProtocolIE-Container {{RICserviceUpdate-IEs}},
}
RICserviceUpdate-IEs E2AP-PROTOCOL-IES ::= {
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
{ ID id-RANfunctionsAdded CRITICALITY reject TYPE RANfunctions-List PRESENCE optional }|
{ ID id-RANfunctionsModified CRITICALITY reject TYPE RANfunctions-List PRESENCE optional }|
{ ID id-RANfunctionsDeleted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional },
...
}
RANfunctions-List ::= SEQUENCE (SIZE(0..maxofRANfunctionID)) OF ProtocolIE-SingleContainer { {RANfunction-ItemIEs} }
-- TODO (dodgy). also note that NGAP doesn't do this...
--RANfunctions-List ::= SEQUENCE (SIZE(0..maxofRANfunctionID)) OF RANfunction-ItemIEs
RANfunctions-List ::= SEQUENCE (SIZE(1..maxofRANfunctionID)) OF ProtocolIE-SingleContainer { {RANfunction-ItemIEs} }
RANfunction-ItemIEs E2AP-PROTOCOL-IES ::= {
{ ID id-RANfunction-Item CRITICALITY ignore TYPE RANfunction-Item PRESENCE mandatory },
@ -507,10 +841,11 @@ RANfunction-Item ::= SEQUENCE {
ranFunctionID RANfunctionID,
ranFunctionDefinition RANfunctionDefinition,
ranFunctionRevision RANfunctionRevision,
ranFunctionOID RANfunctionOID,
...
}
RANfunctionsID-List ::= SEQUENCE (SIZE(0..maxofRANfunctionID)) OF ProtocolIE-SingleContainer{{RANfunctionID-ItemIEs}}
RANfunctionsID-List ::= SEQUENCE (SIZE(1..maxofRANfunctionID)) OF ProtocolIE-SingleContainer{{RANfunctionID-ItemIEs}}
RANfunctionID-ItemIEs E2AP-PROTOCOL-IES ::= {
{ ID id-RANfunctionID-Item CRITICALITY ignore TYPE RANfunctionID-Item PRESENCE mandatory },
@ -534,12 +869,13 @@ protocolIEs ProtocolIE-Container {{RICserviceUpdateAcknowledge-IEs}},
}
RICserviceUpdateAcknowledge-IEs E2AP-PROTOCOL-IES ::= {
{ ID id-RANfunctionsAccepted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional }|
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
{ ID id-RANfunctionsAccepted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE mandatory }|
{ ID id-RANfunctionsRejected CRITICALITY reject TYPE RANfunctionsIDcause-List PRESENCE optional },
...
}
RANfunctionsIDcause-List ::= SEQUENCE (SIZE(0..maxofRANfunctionID)) OF ProtocolIE-SingleContainer { {RANfunctionIDcause-ItemIEs} }
RANfunctionsIDcause-List ::= SEQUENCE (SIZE(1..maxofRANfunctionID)) OF ProtocolIE-SingleContainer { {RANfunctionIDcause-ItemIEs} }
RANfunctionIDcause-ItemIEs E2AP-PROTOCOL-IES ::= {
{ ID id-RANfunctionIEcause-Item CRITICALITY ignore TYPE RANfunctionIDcause-Item PRESENCE mandatory },
@ -565,7 +901,8 @@ protocolIEs ProtocolIE-Container {{RICserviceUpdateFailure-IEs}},
}
RICserviceUpdateFailure-IEs E2AP-PROTOCOL-IES ::= {
{ ID id-RANfunctionsRejected CRITICALITY ignore TYPE RANfunctionsIDcause-List PRESENCE optional }|
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
{ ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory }|
{ ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
...
@ -587,9 +924,66 @@ protocolIEs ProtocolIE-Container {{RICserviceQuery-IEs}},
}
RICserviceQuery-IEs E2AP-PROTOCOL-IES ::= {
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
{ ID id-RANfunctionsAccepted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional },
...
}
-- **************************************************************
--
-- E2 Removal Elementary Procedure
--
-- **************************************************************
-- **************************************************************
--
-- E2 REMOVAL REQUEST
--
-- **************************************************************
E2RemovalRequest ::= SEQUENCE {
protocolIEs ProtocolIE-Container { {E2RemovalRequestIEs} },
...
}
E2RemovalRequestIEs E2AP-PROTOCOL-IES ::= {
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory },
...
}
-- **************************************************************
--
-- E2 REMOVAL RESPONSE
--
-- **************************************************************
E2RemovalResponse ::= SEQUENCE {
protocolIEs ProtocolIE-Container { {E2RemovalResponseIEs} },
...
}
E2RemovalResponseIEs E2AP-PROTOCOL-IES ::= {
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
...
}
-- **************************************************************
--
-- E2 REMOVAL FAILURE
--
-- **************************************************************
E2RemovalFailure ::= SEQUENCE {
protocolIEs ProtocolIE-Container { {E2RemovalFailureIEs} },
...
}
E2RemovalFailureIEs E2AP-PROTOCOL-IES ::= {
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
...
}
END
-- ASN1STOP

View File

@ -6,7 +6,7 @@
-- **************************************************************
E2AP-PDU-Descriptions {
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version1 (1) e2ap(1) e2ap-PDU-Descriptions (0) }
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version2 (2) e2ap(1) e2ap-PDU-Descriptions (0) }
DEFINITIONS AUTOMATIC TAGS ::=
@ -25,6 +25,12 @@ FROM E2AP-CommonDataTypes
E2connectionUpdate,
E2connectionUpdateAcknowledge,
E2connectionUpdateFailure,
E2nodeConfigurationUpdate,
E2nodeConfigurationUpdateAcknowledge,
E2nodeConfigurationUpdateFailure,
E2setupFailure,
E2setupRequest,
E2setupResponse,
@ -44,9 +50,15 @@ RICsubscriptionRequest,
RICsubscriptionResponse,
RICsubscriptionDeleteFailure,
RICsubscriptionDeleteRequest,
RICsubscriptionDeleteResponse
RICsubscriptionDeleteResponse,
RICsubscriptionDeleteRequired,
E2RemovalFailure,
E2RemovalRequest,
E2RemovalResponse
FROM E2AP-PDU-Contents
id-E2connectionUpdate,
id-E2nodeConfigurationUpdate,
id-E2setup,
id-ErrorIndication,
id-Reset,
@ -55,7 +67,9 @@ id-RICindication,
id-RICserviceQuery,
id-RICserviceUpdate,
id-RICsubscription,
id-RICsubscriptionDelete
id-RICsubscriptionDelete,
id-RICsubscriptionDeleteRequired,
id-E2removal
FROM E2AP-Constants;
-- **************************************************************
@ -129,14 +143,18 @@ ricSubscriptionDelete |
ricServiceUpdate |
ricControl |
e2setup |
reset,
e2nodeConfigurationUpdate |
e2connectionUpdate |
reset |
e2removal,
...
}
E2AP-ELEMENTARY-PROCEDURES-CLASS-2 E2AP-ELEMENTARY-PROCEDURE ::= {
ricIndication |
ricServiceQuery |
errorIndication,
errorIndication |
ricSubscriptionDeleteRequired,
...
}
@ -146,6 +164,32 @@ errorIndication,
--
-- **************************************************************
-- New for v01.01
e2connectionUpdate E2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE E2connectionUpdate
SUCCESSFUL OUTCOME E2connectionUpdateAcknowledge
UNSUCCESSFUL OUTCOME E2connectionUpdateFailure
PROCEDURE CODE id-E2connectionUpdate
CRITICALITY reject
}
e2nodeConfigurationUpdate E2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE E2nodeConfigurationUpdate
SUCCESSFUL OUTCOME E2nodeConfigurationUpdateAcknowledge
UNSUCCESSFUL OUTCOME E2nodeConfigurationUpdateFailure
PROCEDURE CODE id-E2nodeConfigurationUpdate
CRITICALITY reject
}
-- New for v02.01
e2removal E2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE E2RemovalRequest
SUCCESSFUL OUTCOME E2RemovalResponse
UNSUCCESSFUL OUTCOME E2RemovalFailure
PROCEDURE CODE id-E2removal
CRITICALITY reject
}
e2setup E2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE E2setupRequest
SUCCESSFUL OUTCOME E2setupResponse
@ -211,6 +255,11 @@ PROCEDURE CODE id-RICsubscriptionDelete
CRITICALITY reject
}
ricSubscriptionDeleteRequired E2AP-ELEMENTARY-PROCEDURE ::= {
INITIATING MESSAGE RICsubscriptionDeleteRequired
PROCEDURE CODE id-RICsubscriptionDeleteRequired
CRITICALITY ignore
}
END
-- ASN1STOP

View File

@ -17,18 +17,26 @@ ProtocolIE-ID
#.PDU
E2AP-PDU
E2SM-KPM-ActionDefinition
E2SM-KPM-RANfunction-Description
E2SM-KPM-EventTriggerDefinition
E2SM-KPM-ActionDefinition
E2SM-KPM-IndicationHeader
RANcallProcess-ID-string
E2SM-KPM-IndicationMessage-Format1
E2SM-KPM-IndicationMessage
E2SM-KPM-RANfunction-Description
#E2SM-KPM-CallProcessID (no such function)
E2SM-RC-EventTrigger
E2SM-RC-ActionDefinition
E2SM-RC-RANFunctionDefinition
E2SM-RC-IndicationMessage
E2SM-RC-IndicationHeader
E2SM-RC-CallProcessID
#.MAKE_ENUM
ProcedureCode
ProtocolIE-ID
#.NO_EMIT
#.OMIT_ASSIGNMENT
@ -38,20 +46,46 @@ ProtocolIE-ContainerList
ProtocolIE-ContainerPair
ProtocolIE-ContainerPairList
Presence
# KPM items. Don't know which E2AP OCTET STRING is supposed to use this...
GNB-DU-Name
E2SM-KPM-IndicationMessage
E2SM-RC-ControlOutcome
E2SM-RC-ControlOutcome-Format3
E2SM-RC-ControlOutcome-Format2
E2SM-RC-ControlOutcome-Format1
E2SM-RC-ControlOutcome-Format3-Item
E2SM-RC-ControlOutcome-Format2-Style-Item
E2SM-RC-ControlOutcome-Format1-Item
E2SM-RC-ControlMessage
E2SM-RC-ControlHeader
FreqBandNrItem
S-NSSAI
IndexToRFSP
EN-GNB-ID
SST
SD
SubscriberProfileIDforRFP
QoSID
GroupID
CoreCPID
E2RemovalFailure
E2RemovalResponse
E2RemovalRequest
E2SM-RC-ControlOutcome-Format2-ControlOutcome-Item
E2SM-RC-ControlMessage-Format2
E2SM-RC-ControlHeader-Format2
E2SM-RC-ControlHeader-Format1
E2SM-RC-ControlOutcome-Format2-RANP-Item
E2SM-RC-ControlMessage-Format2-Style-Item
E2SM-RC-ControlMessage-Format2-ControlAction-Item
E2SM-RC-ControlMessage-Format1
E2SM-RC-ControlMessage-Format1-Item
#.END
#.TYPE_ATTR
E2SM-KPM-IndicationMessage DISPLAY=BASE_DEC STRINGS=VALS(e2ap_E2SM_KPM_IndicationMessage_vals)
#E2SM-KPM-IndicationMessage DISPLAY=BASE_DEC STRINGS=VALS(e2ap_E2SM_KPM_IndicationMessage_vals)
#.TYPE_ATTR
E2SM-KPM-IndicationHeader DISPLAY=BASE_DEC STRINGS=VALS(e2ap_E2SM_KPM_IndicationHeader_vals)
#E2SM-KPM-IndicationHeader DISPLAY=BASE_DEC STRINGS=VALS(e2ap_E2SM_KPM_IndicationHeader_vals)
#.TYPE_RENAME
@ -97,7 +131,6 @@ SuccessfulOutcome/value successfulOutcome_value
# FN_PARS ProtocolIE-FieldPair/secondValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldPairSecondValue
#.FN_BODY ProcedureCode VAL_PTR = &e2ap_data->procedure_code
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
%(DEFAULT_BODY)s
@ -215,38 +248,73 @@ SuccessfulOutcome/value successfulOutcome_value
# Calling in-depth KPM definitions of E2AP OCTET STRING fields.
#.FN_BODY RICactionDefinition VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb;
%(DEFAULT_BODY)s
dissect_E2SM_KPM_ActionDefinition_PDU(parameter_tvb, actx->pinfo, tree, NULL);
#.FN_BODY RICeventTriggerDefinition VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb;
%(DEFAULT_BODY)s
dissect_E2SM_KPM_EventTriggerDefinition_PDU(parameter_tvb, actx->pinfo, tree, NULL);
#.FN_BODY RICindicationHeader VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb;
%(DEFAULT_BODY)s
dissect_E2SM_KPM_IndicationHeader_PDU(parameter_tvb, actx->pinfo, tree, NULL);
#.FN_BODY RICindicationMessage VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb;
%(DEFAULT_BODY)s
/* It is believed that this is an error in the ASN in V1 of the spec... */
dissect_E2SM_KPM_IndicationMessage_Format1_PDU(parameter_tvb, actx->pinfo, tree, NULL);
# ################################################################################
# Calling in-depth definitions of E2AP OCTET STRING fields.
#.FN_BODY RANfunctionDefinition VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb;
%(DEFAULT_BODY)s
dissect_E2SM_KPM_RANfunction_Description_PDU(parameter_tvb, actx->pinfo, tree, NULL);
/* Looking for shortName string near beginning of tvb */
gboolean found = FALSE;
for (int n=KPM_RANFUNCTIONS; n<MAX_RANFUNCTIONS; n++) {
guint32 tvb_len = tvb_captured_length(parameter_tvb);
guint name_len = (gint)strlen(g_ran_functioname_table[n].name);
for (int m=0; (m<30) && ((m+name_len+1))<tvb_len; m++) {
if (strcmp(tvb_get_ptr(parameter_tvb, m, name_len),
g_ran_functioname_table[n].name) == 0) {
/* Call the set's dissector */
g_ran_functioname_table[n].functions.ran_function_definition_dissector(parameter_tvb, actx->pinfo, tree, NULL);
found = TRUE;
break;
}
}
}
if (!found) {
proto_item *ti = proto_tree_add_item(tree, hf_e2ap_ran_function_name_not_recognised, tvb, 0, 0, ENC_NA);
expert_add_info_format(actx->pinfo, ti, &ei_e2ap_ran_function_names_no_match,
"ShortName does not match any known Service Model");
}
#.FN_BODY RICeventTriggerDefinition VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb;
%(DEFAULT_BODY)s
ran_function_pointers_t* functions = lookup_ranfunction_pointers(actx->pinfo, tree, parameter_tvb);
if (functions && functions->ran_event_trigger_dissector) {
functions->ran_event_trigger_dissector(parameter_tvb, actx->pinfo, tree, NULL);
}
#.FN_BODY RICactionDefinition VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb;
%(DEFAULT_BODY)s
ran_function_pointers_t* functions = lookup_ranfunction_pointers(actx->pinfo, tree, parameter_tvb);
if (functions && functions->ran_action_definition_dissector) {
functions->ran_action_definition_dissector(parameter_tvb, actx->pinfo, tree, NULL);
}
#.FN_BODY RICindicationHeader VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb;
%(DEFAULT_BODY)s
ran_function_pointers_t* functions = lookup_ranfunction_pointers(actx->pinfo, tree, parameter_tvb);
if (functions && functions->ran_indication_header_dissector) {
functions->ran_indication_header_dissector(parameter_tvb, actx->pinfo, tree, NULL);
}
#.FN_BODY RICindicationMessage VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb;
%(DEFAULT_BODY)s
ran_function_pointers_t* functions = lookup_ranfunction_pointers(actx->pinfo, tree, parameter_tvb);
if (functions && functions->ran_indication_message_dissector) {
functions->ran_indication_message_dissector(parameter_tvb, actx->pinfo, tree, NULL);
}
#.FN_BODY RICcallProcessID VAL_PTR = &parameter_tvb
tvbuff_t *parameter_tvb;
%(DEFAULT_BODY)s
dissect_RANcallProcess_ID_string_PDU(parameter_tvb, actx->pinfo, tree, NULL);
ran_function_pointers_t* functions = lookup_ranfunction_pointers(actx->pinfo, tree, parameter_tvb);
if (functions && functions->ran_callprocessid_dissector) {
functions->ran_callprocessid_dissector(parameter_tvb, actx->pinfo, tree, NULL);
}
# ################################################################################
@ -262,8 +330,9 @@ id-RICserviceQuery ProcedureCode
id-RICserviceUpdate ProcedureCode
id-RICsubscription ProcedureCode
id-RICsubscriptionDelete ProcedureCode
#id-E2nodeConfigurationUpdate ProcedureCode
#id-E2connectionUpdate ProcedureCode
id-E2nodeConfigurationUpdate ProcedureCode
id-E2connectionUpdate ProcedureCode
id-RICsubscriptionDeleteRequired ProcedureCode
@ -278,7 +347,6 @@ id-RANfunctionIEcause-Item ProtocolIE-ID
id-RANfunction-Item ProtocolIE-ID
id-RANfunctionsAccepted ProtocolIE-ID
id-RANfunctionsAdded ProtocolIE-ID
id-RANfunctionsDeleted ProtocolIE-ID
id-RANfunctionsModified ProtocolIE-ID
id-RANfunctionsRejected ProtocolIE-ID
@ -289,36 +357,48 @@ id-RICactions-Admitted ProtocolIE-ID
id-RICactions-NotAdmitted ProtocolIE-ID
id-RICaction-ToBeSetup-Item ProtocolIE-ID
id-RICcallProcessID ProtocolIE-ID
id-RICcontrolAckRequest ProtocolIE-ID
id-RICcontrolHeader ProtocolIE-ID
id-RICcontrolMessage ProtocolIE-ID
id-RICcontrolStatus ProtocolIE-ID
#id-RICcontrolStatus ProtocolIE-ID
id-RICindicationHeader ProtocolIE-ID
id-RICindicationMessage ProtocolIE-ID
id-RICindicationSN ProtocolIE-ID
id-RICindicationType ProtocolIE-ID
id-RICrequestID ProtocolIE-ID
id-RICsubscriptionDetails ProtocolIE-ID
id-TimeToWait ProtocolIE-ID
id-RICcontrolOutcome ProtocolIE-ID
#id-E2nodeComponentConfigUpdate ProtocolIE-ID
#id-E2nodeComponentConfigUpdate-Item ProtocolIE-ID
#id-E2nodeComponentConfigUpdateAck ProtocolIE-ID
#id-E2nodeComponentConfigUpdateAck-Item ProtocolIE-ID
#id-E2connectionSetup ProtocolIE-ID
#id-E2connectionSetupFailed ProtocolIE-ID
#id-E2connectionSetupFailed-Item ProtocolIE-ID
#id-E2connectionFailed-Item ProtocolIE-ID
#id-E2connectionUpdate-Item ProtocolIE-ID
#id-E2connectionUpdateAdd ProtocolIE-ID
#id-E2connectionUpdateModify ProtocolIE-ID
#id-E2connectionUpdateRemove ProtocolIE-ID
#id-E2connectionUpdateRemove-Item ProtocolIE-ID
#id-TNLinformation ProtocolIE-ID
#id-TransactionID ProtocolIE-ID
id-E2nodeComponentConfigUpdate ProtocolIE-ID
id-E2nodeComponentConfigUpdate-Item ProtocolIE-ID
id-E2nodeComponentConfigUpdateAck ProtocolIE-ID
id-E2nodeComponentConfigUpdateAck-Item ProtocolIE-ID
id-E2connectionSetup ProtocolIE-ID
id-E2connectionSetupFailed ProtocolIE-ID
id-E2connectionSetupFailed-Item ProtocolIE-ID
id-E2connectionFailed-Item ProtocolIE-ID
id-E2connectionUpdate-Item ProtocolIE-ID
id-E2connectionUpdateAdd ProtocolIE-ID
id-E2connectionUpdateModify ProtocolIE-ID
id-E2connectionUpdateRemove ProtocolIE-ID
id-E2connectionUpdateRemove-Item ProtocolIE-ID
id-TNLinformation ProtocolIE-ID
id-TransactionID ProtocolIE-ID
id-E2nodeComponentConfigAddition ProtocolIE-ID
id-E2nodeComponentConfigAddition-Item ProtocolIE-ID
id-E2nodeComponentConfigAdditionAck ProtocolIE-ID
id-E2nodeComponentConfigAdditionAck-Item ProtocolIE-ID
id-E2nodeComponentConfigRemoval ProtocolIE-ID
id-E2nodeComponentConfigRemoval-Item ProtocolIE-ID
id-E2nodeComponentConfigRemovalAck ProtocolIE-ID
id-E2nodeComponentConfigRemovalAck-Item ProtocolIE-ID
id-E2nodeTNLassociationRemoval ProtocolIE-ID
id-E2nodeTNLassociationRemoval-Item ProtocolIE-ID
id-RICsubscriptionToBeRemoved ProtocolIE-ID
id-RICsubscription-withCause-Item ProtocolIE-ID
#.END
@ -328,7 +408,6 @@ id-RICcontrolOutcome ProtocolIE-ID
Cause N e2ap.ies id-Cause
CriticalityDiagnostics N e2ap.ies id-CriticalityDiagnostics
GlobalE2node-ID N e2ap.ies id-GlobalE2node-ID
GlobalRIC-ID N e2ap.ies id-GlobalRIC-ID
RANfunctionID N e2ap.ies id-RANfunctionID
@ -351,7 +430,7 @@ RICcontrolAckRequest N e2ap.ies id-RICcontrolAckRequest
RICcontrolHeader N e2ap.ies id-RICcontrolHeader
RICcontrolMessage N e2ap.ies id-RICcontrolMessage
RICcontrolOutcome N e2ap.ies id-RICcontrolOutcome
RICcontrolStatus N e2ap.ies id-RICcontrolStatus
#RICcontrolStatus N e2ap.ies id-RICcontrolStatus
RICindicationHeader N e2ap.ies id-RICindicationHeader
RICindicationMessage N e2ap.ies id-RICindicationMessage
RICindicationSN N e2ap.ies id-RICindicationSN
@ -359,60 +438,50 @@ RICindicationType N e2ap.ies id-RICindicationType
RICrequestID N e2ap.ies id-RICrequestID
RICsubscriptionDetails N e2ap.ies id-RICsubscriptionDetails
TimeToWait N e2ap.ies id-TimeToWait
#TNLinformation N e2ap.ies id-TNLinformation
#TransactionID N e2ap.ies id-TransactionID
# TODO: V2?
#Cause N e2ap.ies id-Cause
#CriticalityDiagnostics N e2ap.ies id-CriticalityDiagnostics
#E2nodeComponentConfigUpdate N e2ap.ies id-E2nodeComponentConfigUpdate
#E2nodeComponentConfigUpdateAck N e2ap.ies id-E2nodeComponentConfigUpdateAck
#E2nodeComponentID N e2ap.ies id-E2nodeComponentID
#E2nodeComponentType N e2ap.ies id-E2nodeComponentType
#GlobalE2node-ID N e2ap.ies id-GlobalE2node-ID
#GlobalRIC-ID N e2ap.ies id-GlobalRIC-ID
#RANfunctionDefinition N e2ap.ies id-RANfunctionDefinition
#RANfunctionID N e2ap.ies id-RANfunctionID
#RANfunctionOID N e2ap.ies id-RANfunctionOID
#RANfunctionRevision N e2ap.ies id-RANfunctionRevision
#RICactionDefinition N e2ap.ies id-RICactionDefinition
#RICactionID N e2ap.ies id-RICactionID
#RICactionType N e2ap.ies id-RICactionType
#RICcallProcessID N e2ap.ies id-RICcallProcessID
#RICcontrolAckRequest N e2ap.ies id-RICcontrolAckRequest
#RICcontrolHeader N e2ap.ies id-RICcontrolHeader
#RICcontrolMessage N e2ap.ies id-RICcontrolMessage
#RICcontrolOutcome N e2ap.ies id-RICcontrolOutcome
#RICcontrolStatus N e2ap.ies id-RICcontrolStatus
#RICeventTriggerDefinition N e2ap.ies id-RICeventTriggerDefinition
#RICindicationHeader N e2ap.ies id-RICindicationHeader
#RICindicationMessage N e2ap.ies id-RICindicationMessage
#RICindicationSN N e2ap.ies id-RICindicationSN
#RICindicationType N e2ap.ies id-RICindicationType
#RICrequestID N e2ap.ies id-RICrequestID
#RICsubsequentAction N e2ap.ies id-RICsubsequentAction
#TimeToWait N e2ap.ies id-TimeToWait
#TNLinformation N e2ap.ies id-TNLinformation
#TNLusage N e2ap.ies id-TNLusage
#TransactionID N e2ap.ies id-TransactionID
E2nodeComponentConfigUpdate-List N e2ap.ies id-E2nodeComponentConfigUpdate
E2nodeComponentConfigUpdate-Item N e2ap.ies id-E2nodeComponentConfigUpdate-Item
E2nodeComponentConfigUpdateAck-List N e2ap.ies id-E2nodeComponentConfigUpdateAck
E2nodeComponentConfigUpdateAck-Item N e2ap.ies id-E2nodeComponentConfigUpdateAck-Item
E2connectionUpdate-List N e2ap.ies id-E2connectionSetup
E2connectionSetupFailed-List N e2ap.ies id-E2connectionSetupFailed
E2connectionSetupFailed-Item N e2ap.ies id-E2connectionSetupFailed-Item
#E2connectionSetupFailed-Item N e2ap.ies id-E2connectionFailed-Item
E2connectionUpdate-Item N e2ap.ies id-E2connectionUpdate-Item
E2connectionUpdate-List N e2ap.ies id-E2connectionUpdateAdd
E2connectionUpdate-List N e2ap.ies id-E2connectionUpdateModify
E2connectionUpdateRemove-List N e2ap.ies id-E2connectionUpdateRemove
E2connectionUpdateRemove-Item N e2ap.ies id-E2connectionUpdateRemove-Item
TNLinformation N e2ap.ies id-TNLinformation
TransactionID N e2ap.ies id-TransactionID
E2nodeComponentConfigAddition-List N e2ap.ies id-E2nodeComponentConfigAddition
E2nodeComponentConfigAddition-Item N e2ap.ies id-E2nodeComponentConfigAddition-Item
E2nodeComponentConfigAdditionAck-List N e2ap.ies id-E2nodeComponentConfigAdditionAck
E2nodeComponentConfigAdditionAck-Item N e2ap.ies id-E2nodeComponentConfigAdditionAck-Item
E2nodeComponentConfigRemoval-List N e2ap.ies id-E2nodeComponentConfigRemoval
E2nodeComponentConfigRemoval-Item N e2ap.ies id-E2nodeComponentConfigRemoval-Item
E2nodeComponentConfigRemovalAck-List N e2ap.ies id-E2nodeComponentConfigRemovalAck
E2nodeComponentConfigRemovalAck-Item N e2ap.ies id-E2nodeComponentConfigRemovalAck-Item
E2nodeTNLassociationRemoval-List N e2ap.ies id-E2nodeTNLassociationRemoval
E2nodeTNLassociationRemoval-Item N e2ap.ies id-E2nodeTNLassociationRemoval-Item
RICsubscription-List-withCause N e2ap.ies id-RICsubscriptionToBeRemoved
RICsubscription-withCause-Item N e2ap.ies id-RICsubscription-withCause-Item
#e2ap-PROTOCOL-EXTENSION
#E2AP-ELEMENTARY-PROCEDURE
#E2connectionUpdate N e2ap.proc.imsg id-E2connectionUpdate
#E2connectionUpdateAcknowledge N e2ap.proc.sout id-E2connectionUpdate
#E2connectionUpdateFailure N e2ap.proc.uout id-E2connectionUpdate
E2connectionUpdate N e2ap.proc.imsg id-E2connectionUpdate
E2connectionUpdateAcknowledge N e2ap.proc.sout id-E2connectionUpdate
E2connectionUpdateFailure N e2ap.proc.uout id-E2connectionUpdate
#E2nodeConfigurationUpdate N e2ap.proc.imsg id-E2nodeConfigurationUpdate
#E2nodeConfigurationUpdateAcknowledge N e2ap.proc.sout id-E2nodeConfigurationUpdate
#E2nodeConfigurationUpdateFailure N e2ap.proc.uout id-E2nodeConfigurationUpdate
E2nodeConfigurationUpdate N e2ap.proc.imsg id-E2nodeConfigurationUpdate
E2nodeConfigurationUpdateAcknowledge N e2ap.proc.sout id-E2nodeConfigurationUpdate
E2nodeConfigurationUpdateFailure N e2ap.proc.uout id-E2nodeConfigurationUpdate
E2setupFailure N e2ap.proc.uout id-E2setup
E2setupRequest N e2ap.proc.imsg id-E2setup
@ -443,6 +512,46 @@ RICsubscriptionDeleteFailure N e2ap.proc.uout id-RICsubscriptionDele
RICsubscriptionDeleteRequest N e2ap.proc.imsg id-RICsubscriptionDelete
RICsubscriptionDeleteResponse N e2ap.proc.sout id-RICsubscriptionDelete
RICsubscriptionDeleteRequired N e2ap.proc.sout id-RICsubscriptionDeleteRequired
#.FN_BODY RANfunctionID VAL_PTR=&value
guint32 value;
%(DEFAULT_BODY)s
/* Store value in packet-private data */
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
e2ap_data->ran_function_id = value;
#.FN_BODY RANfunction-Name/ranFunction-ShortName
gint start_offset = offset;
%(DEFAULT_BODY)s
/* TODO: is there a nicer/reliable way to get PrintableString here (VAL_PTR won't get assigned..) */
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
ran_functionid_table_t *table = get_ran_functionid_table(actx->pinfo);
store_ran_function_mapping(actx->pinfo, table, e2ap_data->ran_function_id, tvb_get_ptr(tvb, (start_offset+15)/8, (offset-start_offset)/8));
#.FN_HDR E2connectionUpdate
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2connectionUpdate");
#.FN_HDR E2connectionUpdateAcknowledge
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2connectionUpdateAcknowledge");
#.FN_HDR E2connectionUpdateFailure
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2connectionUpdateFailure");
#.FN_HDR E2nodeConfigurationUpdate
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2nodeConfigurationUpdate");
#.FN_HDR E2nodeConfigurationUpdateAcknowledge
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2nodeConfigurationUpdateAcknowledge");
#.FN_HDR E2nodeConfigurationUpdateFailure
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2nodeConfigurationUpdateFailure");
#.FN_HDR E2setupFailure
@ -454,26 +563,28 @@ RICsubscriptionDeleteResponse N e2ap.proc.sout id-RICsubscriptionDele
#.FN_HDR E2setupResponse
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2setupResponse");
#.FN_HDR ErrorIndication
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ErrorIndication");
#.FN_HDR ResetRequest
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetRequest");
#.FN_HDR ResetResponse
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetResponse");
#.FN_HDR RICcontrolAcknowledge
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICcontrolAcknowledge");
#.FN_HDR RICcontrolFailure
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICcontrolFailure");
#.FN_HDR RICcontrolRequest
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICcontrolRequest");
#.FN_HDR RICindication
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICindication");
@ -481,10 +592,10 @@ RICsubscriptionDeleteResponse N e2ap.proc.sout id-RICsubscriptionDele
#.FN_HDR RICserviceQuery
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICserviceQuery");
#.FN_HDR RICserviceUpdate
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICserviceUpdate");
#.FN_HDR RICserviceUpdateAcknowledge
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICserviceUpdateAcknowledge");
@ -513,10 +624,8 @@ RICsubscriptionDeleteResponse N e2ap.proc.sout id-RICsubscriptionDele
#.FN_HDR RICsubscriptionDeleteResponse
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICsubscriptionDeleteResponse");
#.FN_HDR RICsubscriptionDeleteRequired
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICsubscriptionDeleteRequired");
#

View File

@ -1,426 +0,0 @@
-- ASN1START
-- **************************************************************
-- E2SM-KPM
-- Information Element Definitions
--
-- **************************************************************
E2SM-KPM-IEs {
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version1 (1) e2sm(2) e2sm-KPMMON-IEs (2)}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- **************************************************************
-- IEs
-- **************************************************************
-- **************************************************************
GlobalKPMnode-ID ::= CHOICE{
gNB GlobalKPMnode-gNB-ID,
en-gNB GlobalKPMnode-en-gNB-ID,
ng-eNB GlobalKPMnode-ng-eNB-ID,
eNB GlobalKPMnode-eNB-ID,
...
}
-- **************************************************************
GlobalKPMnode-gNB-ID ::= SEQUENCE{
global-gNB-ID GlobalgNB-ID,
gNB-CU-UP-ID GNB-CU-UP-ID OPTIONAL,
gNB-DU-ID GNB-DU-ID OPTIONAL,
...
}
--GlobalgNB-ID ::= SEQUENCE {
-- plmn-id PLMN-Identity,
-- gnb-id GNB-ID-Choice,
-- ...
--}
-- GNB-CU-UP-ID ::= INTEGER (0..68719476735)
-- GNB-DU-ID ::= INTEGER (0..68719476735)
-- GNB-ID-Choice ::= CHOICE {
-- gnb-ID BIT STRING (SIZE(22..32)),
-- ...
--}
-- **************************************************************
GlobalKPMnode-en-gNB-ID ::= SEQUENCE{
global-gNB-ID GlobalenGNB-ID,
...
}
--GlobalenGNB-ID ::= SEQUENCE {
-- pLMN-Identity PLMN-Identity,
-- gNB-ID ENGNB-ID,
-- ...
--}
--ENGNB-ID ::= CHOICE {
-- gNB-ID BIT STRING (SIZE (22..32)),
-- ...
--}
-- **************************************************************
GlobalKPMnode-ng-eNB-ID ::= SEQUENCE{
global-ng-eNB-ID GlobalngeNB-ID,
...
}
--GlobalngeNB-ID ::= SEQUENCE {
-- plmn-id PLMN-Identity,
-- enb-id ENB-ID-Choice,
-- ...
--}
--ENB-ID-Choice ::= CHOICE {
-- enb-ID-macro BIT STRING (SIZE(20)),
-- enb-ID-shortmacro BIT STRING (SIZE(18)),
-- enb-ID-longmacro BIT STRING (SIZE(21)),
-- ...
--}
-- **************************************************************
GlobalKPMnode-eNB-ID ::= SEQUENCE{
global-eNB-ID GlobalENB-ID,
...
}
--GlobalENB-ID ::= SEQUENCE {
-- pLMN-Identity PLMN-Identity,
-- eNB-ID ENB-ID,
-- ...
--}
--ENB-ID ::= CHOICE {
-- macro-eNB-ID BIT STRING (SIZE (20)),
-- home-eNB-ID BIT STRING (SIZE (28)),
-- ... ,
-- short-Macro-eNB-ID BIT STRING (SIZE(18)),
-- long-Macro-eNB-ID BIT STRING (SIZE(21))
--}
NRCGI ::= SEQUENCE {
pLMN-Identity PLMN-Identity,
nRCellIdentity NRCellIdentity
}
--PLMN-Identity ::= OCTET STRING (SIZE(3))
NRCellIdentity ::= BIT STRING (SIZE(36))
SNSSAI ::= SEQUENCE {
sST OCTET STRING (SIZE(1)),
sD OCTET STRING (SIZE(3)) OPTIONAL
}
-- **************************************************************
--
-- Lists
--
-- **************************************************************
maxofMessageProtocolTests INTEGER ::= 15
maxofRICstyles INTEGER ::= 63
maxnoofQCI INTEGER ::= 256
maxnoofQoSFlows INTEGER ::= 64
maxnoofSliceItems INTEGER ::= 1024
maxnoofContainerListItems INTEGER ::= 3
maxCellingNBDU INTEGER ::= 512
maxofContainers INTEGER ::= 8
maxPLMN INTEGER ::= 12 -- Maximum number of PLMNs broadcast and reported by UE at establisghment
RIC-Style-Type ::= INTEGER
RIC-Style-Name ::= PrintableString(SIZE(1..150,...))
RIC-Format-Type ::= INTEGER
-- **************************************************************
-- E2SM-KPM Service model IEs
-- **************************************************************
-- **************************************************************
-- Event Trigger Definition OCTET STRING contents
-- **************************************************************
-- E2SM-KPM-EventTriggerDefinition IE
E2SM-KPM-EventTriggerDefinition ::= CHOICE{
eventDefinition-Format1 E2SM-KPM-EventTriggerDefinition-Format1,
...
}
-- E2SM-KPM-EventTriggerDefinition IE is used for Event Trigger Definition Format 1
E2SM-KPM-EventTriggerDefinition-Format1 ::= SEQUENCE{
policyTest-List SEQUENCE (SIZE(1..maxofMessageProtocolTests)) OF Trigger-ConditionIE-Item OPTIONAL,
...
}
-- **************************************************************
-- Action Definition OCTET STRING contents
-- **************************************************************
-- E2SM-KPM-ActionDefinition IE
E2SM-KPM-ActionDefinition ::= SEQUENCE{
ric-Style-Type RIC-Style-Type,
...
}
-- **************************************************************
-- Indication Header OCTET STRING contents
-- **************************************************************
-- E2SM-KPM-IndicationHeader IE
E2SM-KPM-IndicationHeader ::= CHOICE{
indicationHeader-Format1 E2SM-KPM-IndicationHeader-Format1,
...
}
-- E2SM-KPM-IndicationHeader Format 1
E2SM-KPM-IndicationHeader-Format1 ::= SEQUENCE{
id-GlobalKPMnode-ID GlobalKPMnode-ID OPTIONAL,
nRCGI NRCGI OPTIONAL,
pLMN-Identity PLMN-Identity OPTIONAL,
sliceID SNSSAI OPTIONAL,
fiveQI INTEGER (0..255) OPTIONAL,
qci INTEGER (0..255) OPTIONAL,
...
}
-- **************************************************************
-- Indication Message OCTET STRING contents
-- **************************************************************
-- E2SM-KPM-IndicationMessage IE
E2SM-KPM-IndicationMessage ::= CHOICE{
ric-Style-Type RIC-Style-Type,
indicationMessage-Format1 E2SM-KPM-IndicationMessage-Format1,
...
}
-- E2SM-KPM-IndicationMessage-Format 1 IE
E2SM-KPM-IndicationMessage-Format1 ::= SEQUENCE{
pm-Containers SEQUENCE (SIZE(1..maxCellingNBDU)) OF PM-Containers-List,
...
}
PM-Containers-List ::= SEQUENCE{
performanceContainer PF-Container OPTIONAL,
theRANContainer RAN-Container OPTIONAL,
...
}
-- ***************************************************************
-- RAN Function Description OCTET STRING contents
-- ***************************************************************
-- E2SM-KPM-RANfunction-Description
E2SM-KPM-RANfunction-Description ::= SEQUENCE{
ranFunction-Name RANfunction-Name,
e2SM-KPM-RANfunction-Item SEQUENCE{
ric-EventTriggerStyle-List SEQUENCE (SIZE(1..maxofRICstyles)) OF RIC-EventTriggerStyle-List OPTIONAL,
ric-ReportStyle-List SEQUENCE (SIZE(1..maxofRICstyles)) OF RIC-ReportStyle-List OPTIONAL,
...
},
...
}
-- ***************************************************************
-- commmon IEs
-- ***************************************************************
NI-Type ::= ENUMERATED{
x2-u,
xn-u,
f1-u,
...
}
RAN-Container ::= OCTET STRING
Trigger-ConditionIE-Item ::= SEQUENCE{
report-Period-IE RT-Period-IE,
...
}
RT-Period-IE ::= ENUMERATED{ ms10, ms20, ms32, ms40, ms60, ms64, ms70, ms80, ms128, ms160, ms256, ms320, ms512, ms640, ms1024, ms1280, ms2048, ms2560, ms5120, ms10240, ...}
RANcallProcess-ID-string ::= PrintableString(SIZE(1..150,...))
RANfunction-Name ::= SEQUENCE{
ranFunction-ShortName PrintableString(SIZE(1..150,...)),
ranFunction-E2SM-OID PrintableString(SIZE(1..1000,...)),
ranFunction-Description PrintableString(SIZE(1..150,...)),
ranFunction-Instance INTEGER OPTIONAL,
...
}
RIC-EventTriggerStyle-List ::= SEQUENCE{
ric-EventTriggerStyle-Type RIC-Style-Type,
ric-EventTriggerStyle-Name RIC-Style-Name,
ric-EventTriggerFormat-Type RIC-Format-Type,
...
}
RIC-ReportStyle-List ::= SEQUENCE{
ric-ReportStyle-Type RIC-Style-Type,
ric-ReportStyle-Name RIC-Style-Name,
ric-IndicationHeaderFormat-Type RIC-Format-Type,
ric-IndicationMessageFormat-Type RIC-Format-Type,
...
}
PF-Container ::= CHOICE {
oDU ODU-PF-Container,
oCU-CP OCUCP-PF-Container,
oCU-UP OCUUP-PF-Container
}
GNB-CU-CP-Name ::= PrintableString(SIZE(1..150,...))
GNB-DU-Name ::= PrintableString(SIZE(1..150,...))
GNB-CU-UP-Name ::= PrintableString(SIZE(1..150,...))
-- **************************************************************
-- O-DU Container IEs
-- **************************************************************
ODU-PF-Container ::= SEQUENCE{
cellResourceReportList SEQUENCE (SIZE(1..maxCellingNBDU)) OF CellResourceReportListItem,
...
}
CellResourceReportListItem ::= SEQUENCE{
nRCGI NRCGI,
dl-TotalofAvailablePRBs INTEGER (0..273) OPTIONAL,
ul-TotalofAvailablePRBs INTEGER (0..273) OPTIONAL,
servedPlmnPerCellList SEQUENCE (SIZE(1..maxPLMN)) OF ServedPlmnPerCellListItem,
...
}
ServedPlmnPerCellListItem ::= SEQUENCE{
pLMN-Identity PLMN-Identity,
du-PM-5GC FGC-DU-PM-Container OPTIONAL,
du-PM-EPC EPC-DU-PM-Container OPTIONAL,
...
}
FGC-DU-PM-Container ::= SEQUENCE{
slicePerPlmnPerCellList SEQUENCE (SIZE(1..maxnoofSliceItems)) OF SlicePerPlmnPerCellListItem,
...
}
SlicePerPlmnPerCellListItem ::= SEQUENCE{
sliceID SNSSAI,
fQIPERSlicesPerPlmnPerCellList SEQUENCE (SIZE(1..maxnoofQoSFlows)) OF FQIPERSlicesPerPlmnPerCellListItem,
...
}
FQIPERSlicesPerPlmnPerCellListItem ::= SEQUENCE{
fiveQI INTEGER (0..255),
dl-PRBUsage INTEGER (0..273) OPTIONAL,
ul-PRBUsage INTEGER (0..273) OPTIONAL,
...
}
EPC-DU-PM-Container ::= SEQUENCE{
perQCIReportList SEQUENCE (SIZE(1..maxnoofQCI)) OF PerQCIReportListItem,
...
}
PerQCIReportListItem ::= SEQUENCE{
qci INTEGER (0..255),
dl-PRBUsage INTEGER (0..100) OPTIONAL,
ul-PRBUsage INTEGER (0..100) OPTIONAL,
...
}
-- **************************************************************
-- O-CUCP Container IEs
-- **************************************************************
OCUCP-PF-Container ::= SEQUENCE{
gNB-CU-CP-Name GNB-CU-CP-Name OPTIONAL,
cu-CP-Resource-Status SEQUENCE {
numberOfActive-UEs INTEGER (1..65536, ...) OPTIONAL
}
}
-- **************************************************************
-- O-CU-UP Container IEs
-- **************************************************************
OCUUP-PF-Container ::= SEQUENCE{
gNB-CU-UP-Name GNB-CU-UP-Name OPTIONAL,
pf-ContainerList SEQUENCE (SIZE(1..maxnoofContainerListItems)) OF PF-ContainerListItem,
...
}
PF-ContainerListItem ::= SEQUENCE{
interface-type NI-Type,
o-CU-UP-PM-Container CUUPMeasurement-Container,
...
}
CUUPMeasurement-Container ::= SEQUENCE{
plmnList SEQUENCE (SIZE(1.. maxPLMN)) OF PlmnID-List,
...
}
PlmnID-List ::= SEQUENCE{
pLMN-Identity PLMN-Identity,
cu-UP-PM-5GC FGC-CUUP-PM-Format OPTIONAL,
cu-UP-PM-EPC EPC-CUUP-PM-Format OPTIONAL,
...
}
FGC-CUUP-PM-Format ::= SEQUENCE{
sliceToReportList SEQUENCE (SIZE(1..maxnoofSliceItems)) OF SliceToReportListItem,
...
}
SliceToReportListItem ::= SEQUENCE{
sliceID SNSSAI,
fQIPERSlicesPerPlmnList SEQUENCE (SIZE(1..maxnoofQoSFlows)) OF FQIPERSlicesPerPlmnListItem,
...
}
FQIPERSlicesPerPlmnListItem ::= SEQUENCE{
fiveQI INTEGER (0..255),
pDCPBytesDL INTEGER (0..10000000000,...) OPTIONAL,
pDCPBytesUL INTEGER (0..10000000000,...) OPTIONAL,
...
}
EPC-CUUP-PM-Format ::= SEQUENCE{
perQCIReportList SEQUENCE (SIZE(1..maxnoofQCI)) OF PerQCIReportListItemFormat,
...
}
PerQCIReportListItemFormat ::= SEQUENCE{
qci INTEGER (0..255),
pDCPBytesDL INTEGER (0..10000000000,...) OPTIONAL,
pDCPBytesUL INTEGER (0..10000000000,...) OPTIONAL,
...
}
END
-- ASN1STOP

View File

@ -0,0 +1,389 @@
-- 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) version2(2) 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,
-- TODO: removed hyphen
-- SNSSAI,
UEID
FROM E2SM-COMMON-IEs;
TimeStamp ::= OCTET STRING (SIZE(4))
GranularityPeriod ::= INTEGER (1.. 4294967295)
MeasurementType ::= CHOICE {
measName MeasurementTypeName,
measID MeasurementTypeID,
...
}
-- TODO: (copied from e2sm-kpm-v1.asn)
SNSSAI ::= SEQUENCE {
sST OCTET STRING (SIZE(1)),
sD OCTET STRING (SIZE(3)) OPTIONAL
}
MeasurementTypeName ::= PrintableString(SIZE(1.. 150, ...))
MeasurementTypeID ::= INTEGER (1.. 65536, ...)
MeasurementLabel ::= SEQUENCE {
noLabel ENUMERATED {true, ...} OPTIONAL,
-- TODO: changed from PLMNIdentity and S-NSSAI
plmnID PLMN-Identity OPTIONAL,
sliceID SNSSAI 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,
...
}
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
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,
...
}
MeasurementCondList ::= SEQUENCE (SIZE(1..maxnoofMeasurementInfo)) OF MeasurementCondItem
MeasurementCondItem ::= SEQUENCE {
measType MeasurementType,
matchingCond MatchingCondList,
...
}
MeasurementCondUEidList ::= SEQUENCE (SIZE(1..maxnoofMeasurementInfo)) OF MeasurementCondUEidItem
MeasurementCondUEidItem ::= SEQUENCE {
measType MeasurementType,
matchingCond MatchingCondList,
matchingUEidList MatchingUEidList OPTIONAL,
...
}
MatchingCondList ::= SEQUENCE (SIZE(1..maxnoofConditionInfo)) OF MatchingCondItem
MatchingCondItem ::= CHOICE{
measLabel MeasurementLabel,
testCondInfo TestCondInfo,
...
}
MatchingUEidList ::= SEQUENCE (SIZE(1..maxnoofUEID)) OF MatchingUEidItem
MatchingUEidItem ::= SEQUENCE{
ueID UEID,
...
}
MatchingUeCondPerSubList ::= SEQUENCE (SIZE(1..maxnoofConditionInfoPerSub)) OF MatchingUeCondPerSubItem
MatchingUeCondPerSubItem ::= SEQUENCE{
testCondInfo TestCondInfo,
...
}
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,
...
}
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

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,573 @@
-- ASN1START
-- **************************************************************
-- E2SM
-- Information Element Definitions
--
-- **************************************************************
E2SM-COMMON-IEs {
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version1 (1) e2sm(2) e2sm-COMMON-IEs (0)}
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- --------------------------------------------------
-- Constants
-- --------------------------------------------------
maxE1APid INTEGER ::= 65535
maxF1APid INTEGER ::= 4
-- IEs derived from 3GPP 36.423 (X2AP)
maxEARFCN INTEGER ::= 65535
-- IEs derived from 3GPP 38.473 (F1AP)
maxNRARFCN INTEGER ::= 3279165
maxnoofNrCellBands INTEGER ::= 32
-- --------------------------------------------------
-- E2SM Commmon IEs
-- --------------------------------------------------
CGI ::= CHOICE {
nR-CGI NR-CGI,
eUTRA-CGI EUTRA-CGI,
...
}
CoreCPID ::= CHOICE {
fiveGC GUAMI,
ePC GUMMEI,
...
}
InterfaceIdentifier ::= CHOICE {
nG InterfaceID-NG,
xN InterfaceID-Xn,
f1 InterfaceID-F1,
e1 InterfaceID-E1,
s1 InterfaceID-S1,
x2 InterfaceID-X2,
w1 InterfaceID-W1,
...
}
InterfaceID-NG ::= SEQUENCE {
guami GUAMI,
...
}
InterfaceID-Xn ::= SEQUENCE {
global-NG-RAN-ID GlobalNGRANNodeID,
...
}
InterfaceID-F1 ::= SEQUENCE {
globalGNB-ID GlobalGNB-ID,
gNB-DU-ID GNB-DU-ID,
...
}
InterfaceID-E1 ::= SEQUENCE {
globalGNB-ID GlobalGNB-ID,
gNB-CU-UP-ID GNB-CU-UP-ID,
...
}
InterfaceID-S1 ::= SEQUENCE {
gUMMEI GUMMEI,
...
}
InterfaceID-X2 ::= SEQUENCE {
nodeType CHOICE {
global-eNB-ID GlobalENB-ID,
global-en-gNB-ID GlobalenGNB-ID,
...
},
...
}
InterfaceID-W1 ::= SEQUENCE {
global-ng-eNB-ID GlobalNgENB-ID,
ng-eNB-DU-ID NGENB-DU-ID,
...
}
Interface-MessageID ::= SEQUENCE {
interfaceProcedureID INTEGER,
messageType ENUMERATED {initiatingMessage, successfulOutcome, unsuccessfulOutcome, ...},
...
}
InterfaceType ::= ENUMERATED {nG, xn, f1, e1, s1, x2, w1, ...}
GroupID ::= CHOICE {
fiveGC FiveQI,
ePC QCI,
...
}
QoSID ::= CHOICE {
fiveGC FiveQI,
ePC QCI,
...
}
RANfunction-Name ::= SEQUENCE{
ranFunction-ShortName PrintableString(SIZE(1..150,...)),
ranFunction-E2SM-OID PrintableString(SIZE(1..1000,...)),
ranFunction-Description PrintableString(SIZE(1..150,...)),
ranFunction-Instance INTEGER OPTIONAL,
...
}
RIC-Format-Type ::= INTEGER
RIC-Style-Type ::= INTEGER
RIC-Style-Name ::= PrintableString(SIZE(1..150,...))
RRC-MessageID ::= SEQUENCE {
rrcType CHOICE {
lTE RRCclass-LTE,
nR RRCclass-NR,
...
},
messageID INTEGER,
...
}
RRCclass-LTE ::= ENUMERATED {bCCH-BCH, bCCH-BCH-MBMS, bCCH-DL-SCH, bCCH-DL-SCH-BR, bCCH-DL-SCH-MBMS, mCCH, pCCH, dL-CCCH, dL-DCCH, uL-CCCH, uL-DCCH, sC-MCCH, ...}
RRCclass-NR ::= ENUMERATED {bCCH-BCH, bCCH-DL-SCH, dL-CCCH, dL-DCCH, pCCH, uL-CCCH, uL-CCCH1, uL-DCCH, ...}
ServingCell-ARFCN ::= CHOICE {
nR NR-ARFCN,
eUTRA E-UTRA-ARFCN,
...
}
ServingCell-PCI ::= CHOICE {
nR NR-PCI,
eUTRA E-UTRA-PCI,
...
}
UEID ::= CHOICE{
gNB-UEID UEID-GNB,
gNB-DU-UEID UEID-GNB-DU,
gNB-CU-UP-UEID UEID-GNB-CU-UP,
ng-eNB-UEID UEID-NG-ENB,
ng-eNB-DU-UEID UEID-NG-ENB-DU,
en-gNB-UEID UEID-EN-GNB,
eNB-UEID UEID-ENB,
...
}
UEID-GNB ::= SEQUENCE{
amf-UE-NGAP-ID AMF-UE-NGAP-ID,
guami GUAMI,
gNB-CU-UE-F1AP-ID-List UEID-GNB-CU-F1AP-ID-List OPTIONAL,
-- C-ifCUDUseparated: This IE shall be present in messages from E2 Node to NearRT-RIC for a CU-DU separated gNB, whereas from NearRT-RIC to E2 Node messages, this IE may not be included. More than 1 F1AP ID shall be reported by E2 Node only when NR-DC is established.
gNB-CU-CP-UE-E1AP-ID-List UEID-GNB-CU-CP-E1AP-ID-List OPTIONAL,
-- C-ifCPUPseparated: This IE shall be present in messages from E2 Node to NearRT-RIC for a CP-UP separated gNB, whereas from NearRT-RIC to E2 Node messages, this IE may not be included.
ran-UEID RANUEID OPTIONAL,
m-NG-RAN-UE-XnAP-ID NG-RANnodeUEXnAPID OPTIONAL,
-- C-ifDCSetup: This IE shall be present in messages from E2 Node to NearRT-RIC if DC is established, whereas from NearRT-RIC to E2 Node messages, this IE may not be included. To be reported by both MN and SN.
globalGNB-ID GlobalGNB-ID OPTIONAL,
-- This IE shall not be used. This IE is replaced with globalNG-RANNode-ID.
...,
globalNG-RANNode-ID GlobalNGRANNodeID OPTIONAL
-- C-ifDCSetup: This IE shall be present in messages from E2 Node to NearRT-RIC if DC is established, whereas from NearRT-RIC to E2 Node messages, this IE may not be included. To be reported only by SN.
}
UEID-GNB-CU-CP-E1AP-ID-List ::= SEQUENCE (SIZE(1..maxE1APid)) OF UEID-GNB-CU-CP-E1AP-ID-Item
UEID-GNB-CU-CP-E1AP-ID-Item ::= SEQUENCE{
gNB-CU-CP-UE-E1AP-ID GNB-CU-CP-UE-E1AP-ID,
...
}
UEID-GNB-CU-F1AP-ID-List ::= SEQUENCE (SIZE(1..maxF1APid)) OF UEID-GNB-CU-CP-F1AP-ID-Item
UEID-GNB-CU-CP-F1AP-ID-Item ::= SEQUENCE{
gNB-CU-UE-F1AP-ID GNB-CU-UE-F1AP-ID,
...
}
UEID-GNB-DU ::= SEQUENCE{
gNB-CU-UE-F1AP-ID GNB-CU-UE-F1AP-ID,
ran-UEID RANUEID OPTIONAL,
...
}
UEID-GNB-CU-UP ::= SEQUENCE{
gNB-CU-CP-UE-E1AP-ID GNB-CU-CP-UE-E1AP-ID,
ran-UEID RANUEID OPTIONAL,
...
}
UEID-NG-ENB ::= SEQUENCE{
amf-UE-NGAP-ID AMF-UE-NGAP-ID,
guami GUAMI,
ng-eNB-CU-UE-W1AP-ID NGENB-CU-UE-W1AP-ID OPTIONAL,
-- C-ifCUDUseperated: This IE shall be present in messages from E2 Node to NearRT-RIC for a CU-DU seperated ng-eNB, whereas from NearRT-RIC to E2 Node messages, this IE may not be included.
m-NG-RAN-UE-XnAP-ID NG-RANnodeUEXnAPID OPTIONAL,
-- C-ifDCSetup: This IE shall be present in messages from E2 Node to NearRT-RIC if DC is established, whereas from NearRT-RIC to E2 Node messages, this IE may not be included. To be reported by both MN and SN.
globalNgENB-ID GlobalNgENB-ID OPTIONAL,
-- This IE shall not be used. This IE is replaced with globalNG-RANNode-ID.
...,
globalNG-RANNode-ID GlobalNGRANNodeID OPTIONAL
-- C-ifDCSetup: This IE shall be present in messages from E2 Node to NearRT-RIC if DC is established, whereas from NearRT-RIC to E2 Node messages, this IE may not be included. To be reported only by SN.
}
UEID-NG-ENB-DU ::= SEQUENCE{
ng-eNB-CU-UE-W1AP-ID NGENB-CU-UE-W1AP-ID,
...
}
UEID-EN-GNB ::= SEQUENCE{
m-eNB-UE-X2AP-ID ENB-UE-X2AP-ID,
m-eNB-UE-X2AP-ID-Extension ENB-UE-X2AP-ID-Extension OPTIONAL,
globalENB-ID GlobalENB-ID,
gNB-CU-UE-F1AP-ID GNB-CU-UE-F1AP-ID OPTIONAL,
-- C-ifCUDUseperated: This IE shall be present in messages from E2 Node to NearRT-RIC for a CU-DU seperated en-gNB, whereas from NearRT-RIC to E2 Node messages, this IE may not be included.
gNB-CU-CP-UE-E1AP-ID-List UEID-GNB-CU-CP-E1AP-ID-List OPTIONAL,
-- C-ifCPUPseparated: This IE shall be present in messages from E2 Node to NearRT-RIC for a CP-UP separated en-gNB, whereas from NearRT-RIC to E2 Node messages, this IE may not be included.
ran-UEID RANUEID OPTIONAL,
...
}
UEID-ENB ::= SEQUENCE{
mME-UE-S1AP-ID MME-UE-S1AP-ID,
gUMMEI GUMMEI,
m-eNB-UE-X2AP-ID ENB-UE-X2AP-ID OPTIONAL,
-- This IE shall be present in messages from E2 Node to NearRT-RIC if DC is established, whereas from NearRT-RIC to E2 Node messages, this IE may not be included. To be reported by MeNB and SeNB.
m-eNB-UE-X2AP-ID-Extension ENB-UE-X2AP-ID-Extension OPTIONAL,
globalENB-ID GlobalENB-ID OPTIONAL,
-- This IE shall be present in messages from E2 Node to NearRT-RIC if DC is established, whereas from NearRT-RIC to E2 Node messages, this IE may not be included. To be reported only by SeNB.
...
}
-- **************************************************************
-- 3GPP derived IEs
-- **************************************************************
-- NOTE:
-- - Extension fields removed and replaced with "..."
-- - IE names modified across all extracts to use "PLMNIdentity"
-- **************************************************************
-- IEs derived from 3GPP 36.413 (S1AP)
-- **************************************************************
-- **************************************************************
-- copied from v16.5.0
-- ENB-ID ::= CHOICE {
-- macro-eNB-ID BIT STRING (SIZE (20)),
-- home-eNB-ID BIT STRING (SIZE (28)),
-- ... ,
-- short-Macro-eNB-ID BIT STRING (SIZE(18)),
-- long-Macro-eNB-ID BIT STRING (SIZE(21))
-- }
-- copied from v16.5.0
-- GlobalENB-ID ::= SEQUENCE {
-- pLMNIdentity PLMNIdentity,
-- eNB-ID ENB-ID,
-- ...
-- }
-- copied from v16.5.0
GUMMEI ::= SEQUENCE {
pLMN-Identity PLMNIdentity,
mME-Group-ID MME-Group-ID,
mME-Code MME-Code,
...
}
-- copied from v16.5.0
MME-Group-ID ::= OCTET STRING (SIZE (2))
-- copied from v16.5.0
MME-Code ::= OCTET STRING (SIZE (1))
-- copied from v16.5.0
MME-UE-S1AP-ID ::= INTEGER (0..4294967295)
-- copied from v16.5.0
QCI ::= INTEGER (0..255)
-- copied from v16.5.0
SubscriberProfileIDforRFP ::= INTEGER (1..256)
-- **************************************************************
-- IEs derived from 3GPP 36.423 (X2AP)
-- **************************************************************
-- Extension fields removed.
-- Note: to avoid duplicate names with NGAP, XnAP, etc.:
-- GNB-ID renamed ENGNB-ID,
-- GlobalGNB-ID renamed GlobalenGNB-ID,
-- UE-X2AP-ID renamed ENB-UE-X2AP-ID
-- UE-X2AP-ID-Extension renamed ENB-UE-X2AP-ID-Extension
-- **************************************************************
-- copied from v16.5.0
EN-GNB-ID ::= CHOICE {
en-gNB-ID BIT STRING (SIZE (22..32)),
...
}
-- copied from v16.5.0
ENB-UE-X2AP-ID ::= INTEGER (0..4095)
-- copied from v16.5.0
ENB-UE-X2AP-ID-Extension ::= INTEGER (0..4095, ...)
-- copied from v16.5.0
E-UTRA-ARFCN ::= INTEGER (0..maxEARFCN)
-- copied from v16.5.0
E-UTRA-PCI ::= INTEGER (0..503, ...)
-- copied from v16.5.0
E-UTRA-TAC ::= OCTET STRING (SIZE(2))
-- copied from v16.5.0
-- GlobalenGNB-ID ::= SEQUENCE {
-- pLMN-Identity PLMNIdentity,
-- en-gNB-ID EN-GNB-ID,
-- ...
-- }
-- **************************************************************
-- IEs derived from 3GPP 37.473 (W1AP)
-- **************************************************************
-- copied from v16.3.0
NGENB-CU-UE-W1AP-ID ::= INTEGER (0..4294967295)
-- copied from v16.3.0
-- NGENB-DU-ID ::= INTEGER (0..68719476735)
-- **************************************************************
-- IEs derived from 3GPP 38.413 (NGAP)
-- Extension fields removed and replaced with ...
-- **************************************************************
-- copied from v16.2.0
AMFPointer ::= BIT STRING (SIZE(6))
-- copied from v16.2.0
AMFRegionID ::= BIT STRING (SIZE(8))
-- copied from v16.2.0
AMFSetID ::= BIT STRING (SIZE(10))
-- copied from v16.2.0
AMF-UE-NGAP-ID ::= INTEGER (0..1099511627775)
-- copied from v16.2.0
EUTRACellIdentity ::= BIT STRING (SIZE(28))
-- copied from v16.2.0
EUTRA-CGI ::= SEQUENCE {
pLMNIdentity PLMNIdentity,
eUTRACellIdentity EUTRACellIdentity,
...
}
-- copied from v16.2.0
FiveQI ::= INTEGER (0..255, ...)
-- copied from v16.2.0
GlobalGNB-ID ::= SEQUENCE {
pLMNIdentity PLMNIdentity,
gNB-ID GNB-ID,
...
}
-- copied from v16.2.0
GlobalNgENB-ID ::= SEQUENCE {
pLMNIdentity PLMNIdentity,
ngENB-ID NgENB-ID,
...
}
-- copied from v16.2.0
GNB-ID ::= CHOICE {
gNB-ID BIT STRING (SIZE(22..32)),
...
}
-- copied from v16.2.0
GUAMI ::= SEQUENCE {
pLMNIdentity PLMNIdentity,
aMFRegionID AMFRegionID,
aMFSetID AMFSetID,
aMFPointer AMFPointer,
...
}
-- copied from v16.2.0
IndexToRFSP ::= INTEGER (1..256, ...)
-- copied from v16.2.0
NgENB-ID ::= CHOICE {
macroNgENB-ID BIT STRING (SIZE(20)),
shortMacroNgENB-ID BIT STRING (SIZE(18)),
longMacroNgENB-ID BIT STRING (SIZE(21)),
...
}
-- copied from v16.2.0
NRCellIdentity ::= BIT STRING (SIZE(36))
-- copied from v16.2.0
-- NR-CGI ::= SEQUENCE {
-- pLMNIdentity PLMNIdentity,
-- nRCellIdentity NRCellIdentity,
-- ...
-- }
-- copied from v16.2.0
PLMNIdentity ::= OCTET STRING (SIZE(3))
-- copied from v16.2.0
QosFlowIdentifier ::= INTEGER (0..63, ...)
-- copied from v16.2.0
SD ::= OCTET STRING (SIZE(3))
-- copied from v16.2.0
S-NSSAI ::= SEQUENCE {
sST SST,
sD SD OPTIONAL,
...
}
-- copied from v16.2.0
SST ::= OCTET STRING (SIZE(1))
-- **************************************************************
-- IEs derived from 3GPP 38.423 (XnAP)
-- **************************************************************
-- copied from v16.2.0
NG-RANnodeUEXnAPID ::= INTEGER (0.. 4294967295)
GlobalNGRANNodeID ::= CHOICE {
gNB GlobalGNB-ID,
ng-eNB GlobalNgENB-ID,
...
}
-- **************************************************************
-- IEs derived from 3GPP 38.463 (E1AP)
-- **************************************************************
-- copied from v16.5.0
GNB-CU-CP-UE-E1AP-ID ::= INTEGER (0..4294967295)
-- copied from v16.5.0
-- GNB-CU-UP-ID ::= INTEGER (0..68719476735)
-- **************************************************************
-- IEs derived from 3GPP 38.473 (F1AP)
-- **************************************************************
-- copied from v16.5.0
FiveGS-TAC ::= OCTET STRING (SIZE(3))
-- copied from v16.5.0
FreqBandNrItem ::= SEQUENCE {
freqBandIndicatorNr INTEGER (1..1024, ...),
...
}
-- copied from v16.5.0
GNB-CU-UE-F1AP-ID ::= INTEGER (0..4294967295)
-- copied from v16.5.0
-- GNB-DU-ID ::= INTEGER (0..68719476735)
-- copied from v16.5.0
NR-PCI ::= INTEGER (0..1007)
-- copied from v16.5.0
NR-ARFCN ::= SEQUENCE {
nRARFCN INTEGER (0..maxNRARFCN),
...
}
-- copied from v16.5.0
NRFrequencyBand-List ::= SEQUENCE (SIZE(1..maxnoofNrCellBands)) OF NRFrequencyBandItem
-- copied from v16.5.0
NRFrequencyBandItem ::= SEQUENCE {
freqBandIndicatorNr INTEGER (1..1024,...),
supportedSULBandList SupportedSULBandList,
...
}
-- copied from v16.5.0
NRFrequencyInfo ::= SEQUENCE {
nrARFCN NR-ARFCN,
frequencyBand-List NRFrequencyBand-List,
frequencyShift7p5khz NRFrequencyShift7p5khz OPTIONAL,
...
}
-- copied from v16.5.0
NRFrequencyShift7p5khz ::= ENUMERATED {false, true, ...}
-- copied from v16.5.0
RANUEID ::= OCTET STRING (SIZE (8))
-- copied from v16.5.0
SupportedSULBandList ::= SEQUENCE (SIZE(0..maxnoofNrCellBands)) OF SupportedSULFreqBandItem
-- copied from v16.5.0
SupportedSULFreqBandItem ::= SEQUENCE {
freqBandIndicatorNr INTEGER (1..1024,...),
...
}
END
-- ASN1STOP

View File

@ -8,7 +8,7 @@
*
* SPDX-License-Identifier: GPL-2.0-or-later
*
* References: ORAN-WG3.E2AP-v01.00, ORAN-WG3.E2SM-KPM-v01.00
* References: ORAN-WG3.E2AP-v02.01, ORAN-WG3.E2SM-KPM-v02.02, ORAN-WG3.E2SM-RC.01.02
*/
#include "config.h"
@ -45,12 +45,36 @@ static dissector_handle_t e2ap_handle;
static int proto_e2ap = -1;
#include "packet-e2ap-hf.c"
static int hf_e2ap_unmapped_ran_function_id = -1;
static int hf_e2ap_ran_function_name_not_recognised = -1;
static int hf_e2ap_ran_function_setup_frame = -1;
/* Initialize the subtree pointers */
static gint ett_e2ap = -1;
static expert_field ei_e2ap_ran_function_names_no_match = EI_INIT;
static expert_field ei_e2ap_ran_function_id_not_mapped = EI_INIT;
#include "packet-e2ap-ett.c"
/* Forward declarations */
static int dissect_E2SM_KPM_EventTriggerDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_E2SM_KPM_ActionDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_E2SM_KPM_IndicationHeader_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_E2SM_KPM_IndicationMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_E2SM_KPM_RANfunction_Description_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_E2SM_RC_EventTrigger_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_E2SM_RC_ActionDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_E2SM_RC_RANFunctionDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_E2SM_RC_IndicationMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_E2SM_RC_IndicationHeader_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_E2SM_RC_CallProcessID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
enum {
INITIATING_MESSAGE,
SUCCESSFUL_OUTCOME,
@ -72,37 +96,10 @@ struct e2ap_private_data {
guint32 protocol_extension_id;
guint32 message_type;
guint32 ran_ue_e2ap_id;
guint32 ran_function_id;
};
/* Dissector tables */
static dissector_table_t e2ap_ies_dissector_table;
//static dissector_table_t e2ap_ies_p1_dissector_table;
//static dissector_table_t e2ap_ies_p2_dissector_table;
static dissector_table_t e2ap_extension_dissector_table;
static dissector_table_t e2ap_proc_imsg_dissector_table;
static dissector_table_t e2ap_proc_sout_dissector_table;
static dissector_table_t e2ap_proc_uout_dissector_table;
static dissector_table_t e2ap_n2_ie_type_dissector_table;
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
/* Currently not used
static int dissect_ProtocolIEFieldPairFirstValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
static int dissect_ProtocolIEFieldPairSecondValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
*/
/* Forward declarations */
static int dissect_E2SM_KPM_ActionDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_E2SM_KPM_RANfunction_Description_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_E2SM_KPM_EventTriggerDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_E2SM_KPM_IndicationHeader_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_RANcallProcess_ID_string_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_E2SM_KPM_IndicationMessage_Format1_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
static struct e2ap_private_data*
e2ap_get_private_data(packet_info *pinfo)
{
@ -114,6 +111,208 @@ e2ap_get_private_data(packet_info *pinfo)
return e2ap_data;
}
/****************************************************************************************************************/
/* We learn which set of RAN functions pointers corresponds to a given ranFunctionID when we see E2SetupRequest */
typedef int (*pdu_dissector_t)(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data);
/* Function pointers for a RANFunction */
typedef struct {
pdu_dissector_t ran_function_definition_dissector;
pdu_dissector_t ran_action_definition_dissector;
pdu_dissector_t ran_indication_message_dissector;
pdu_dissector_t ran_indication_header_dissector;
pdu_dissector_t ran_callprocessid_dissector;
pdu_dissector_t ran_event_trigger_dissector;
} ran_function_pointers_t;
typedef enum {
MIN_RANFUNCTIONS,
KPM_RANFUNCTIONS=0,
RIC_RANFUNCTIONS,
MAX_RANFUNCTIONS
} ran_function_t;
typedef struct {
const char* name;
ran_function_pointers_t functions;
} ran_function_name_mapping_t;
/* Static table mapping from string -> ran_function */
static const ran_function_name_mapping_t g_ran_functioname_table[MAX_RANFUNCTIONS] =
{
{ "ORAN-E2SM-KPM", { dissect_E2SM_KPM_RANfunction_Description_PDU,
dissect_E2SM_KPM_ActionDefinition_PDU,
dissect_E2SM_KPM_IndicationMessage_PDU,
dissect_E2SM_KPM_IndicationHeader_PDU,
NULL, /* no dissect_E2SM_KPM_CallProcessID_PDU */
dissect_E2SM_KPM_EventTriggerDefinition_PDU
}
},
{ "ORAN-E2SM-RC", { dissect_E2SM_RC_RANFunctionDefinition_PDU,
dissect_E2SM_RC_ActionDefinition_PDU,
dissect_E2SM_RC_IndicationMessage_PDU,
dissect_E2SM_RC_IndicationHeader_PDU,
dissect_E2SM_RC_CallProcessID_PDU,
dissect_E2SM_RC_EventTrigger_PDU
}
}
};
/* Per-conversation mapping: ranFunctionId -> ran_function */
typedef struct {
guint32 setup_frame;
guint32 ran_function_id;
ran_function_t ran_function;
ran_function_pointers_t *ran_function_pointers;
} ran_function_id_mapping_t;
typedef struct {
#define MAX_RANFUNCTION_ENTRIES 16
guint32 num_entries;
ran_function_id_mapping_t entries[MAX_RANFUNCTION_ENTRIES];
} ran_functionid_table_t;
const char *ran_function_to_str(ran_function_t ran_function)
{
switch (ran_function) {
case KPM_RANFUNCTIONS:
return "KPM";
case RIC_RANFUNCTIONS:
return "RIC";
default:
return "Unknown";
}
}
/* Get RANfunctionID table from conversation data */
ran_functionid_table_t* get_ran_functionid_table(packet_info *pinfo)
{
conversation_t *p_conv;
ran_functionid_table_t *p_conv_data = NULL;
/* Lookup conversation */
p_conv = find_conversation(pinfo->num, &pinfo->net_dst, &pinfo->net_src,
conversation_pt_to_endpoint_type(pinfo->ptype),
pinfo->destport, pinfo->srcport, 0);
if (!p_conv) {
/* None, so create new data and set */
p_conv = conversation_new(pinfo->num, &pinfo->net_dst, &pinfo->net_src,
conversation_pt_to_endpoint_type(pinfo->ptype),
pinfo->destport, pinfo->srcport, 0);
p_conv_data = (ran_functionid_table_t*)wmem_new0(wmem_file_scope(), ran_functionid_table_t);
conversation_add_proto_data(p_conv, proto_e2ap, p_conv_data);
}
else {
/* Will return existing conversation data */
p_conv_data = (ran_functionid_table_t*)conversation_get_proto_data(p_conv, proto_e2ap);
}
return p_conv_data;
}
/* Store new RANfunctionID -> Service Model mapping in table */
static void store_ran_function_mapping(packet_info *pinfo, ran_functionid_table_t *table, guint32 ran_function_id, const char *name)
{
/* Stop if already reached table limit */
if (table->num_entries == MAX_RANFUNCTION_ENTRIES) {
/* TODO: expert info warning? */
return;
}
ran_function_t ran_function = MAX_RANFUNCTIONS; /* i.e. invalid */
ran_function_pointers_t *ran_function_pointers = NULL;
/* Check known RAN functions */
for (int n=MIN_RANFUNCTIONS; n < MAX_RANFUNCTIONS; n++) {
/* TODO: shouldn't need to check both positions! */
if ((strcmp(name, g_ran_functioname_table[n].name) == 0) ||
(strcmp(name+1, g_ran_functioname_table[n].name) == 0)) {
ran_function = n;
ran_function_pointers = (ran_function_pointers_t*)&(g_ran_functioname_table[n].functions);
break;
}
}
/* Nothing to do if no matches */
if (ran_function == MAX_RANFUNCTIONS) {
return;
}
/* If ID already mapped, ignore */
for (guint n=0; n < table->num_entries; n++) {
if (table->entries[n].ran_function_id == ran_function_id) {
return;
}
}
/* OK, store this new entry */
guint idx = table->num_entries++;
table->entries[idx].setup_frame = pinfo->num;
table->entries[idx].ran_function_id = ran_function_id;
table->entries[idx].ran_function = ran_function;
table->entries[idx].ran_function_pointers = ran_function_pointers;
}
/* Look for Service Model function pointers, based on current RANFunctionID in pinfo */
ran_function_pointers_t* lookup_ranfunction_pointers(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb)
{
/* Get ranFunctionID from this frame */
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
guint ran_function_id = e2ap_data->ran_function_id;
/* Look in table function pointers for this ranFunctionID */
ran_functionid_table_t *table = get_ran_functionid_table(pinfo);
for (guint n=0; n < table->num_entries; n++) {
if (ran_function_id == table->entries[n].ran_function_id) {
/* Point back at the setup frame where this ranfunction was mapped */
proto_item *ti = proto_tree_add_uint(tree, hf_e2ap_ran_function_setup_frame,
tvb, 0, 0, table->entries[n].setup_frame);
/* Also show that mapping */
proto_item_append_text(ti, " (%u -> %s)", table->entries[n].ran_function_id, ran_function_to_str(table->entries[n].ran_function));
proto_item_set_generated(ti);
return table->entries[n].ran_function_pointers;
}
}
/* No match found.. */
proto_item *ti = proto_tree_add_item(tree, hf_e2ap_unmapped_ran_function_id, tvb, 0, 0, ENC_NA);
expert_add_info_format(pinfo, ti, &ei_e2ap_ran_function_id_not_mapped,
"Service Model not mapped for FunctionID %u", ran_function_id);
return NULL;
}
/* Dissector tables */
static dissector_table_t e2ap_ies_dissector_table;
//static dissector_table_t e2ap_ies_p1_dissector_table;
//static dissector_table_t e2ap_ies_p2_dissector_table;
static dissector_table_t e2ap_extension_dissector_table;
static dissector_table_t e2ap_proc_imsg_dissector_table;
static dissector_table_t e2ap_proc_sout_dissector_table;
static dissector_table_t e2ap_proc_uout_dissector_table;
static dissector_table_t e2ap_n2_ie_type_dissector_table;
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
/* Currently not used
static int dissect_ProtocolIEFieldPairFirstValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
static int dissect_ProtocolIEFieldPairSecondValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
*/
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
#include "packet-e2ap-fn.c"
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
@ -128,6 +327,9 @@ static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto
return (dissector_try_uint_new(e2ap_ies_dissector_table, e2ap_data->protocol_ie_id, tvb, pinfo, tree, FALSE, &e2ap_ctx)) ? tvb_captured_length(tvb) : 0;
}
/* Currently not used
static int dissect_ProtocolIEFieldPairFirstValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
{
@ -181,7 +383,6 @@ dissect_e2ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
e2ap_item = proto_tree_add_item(tree, proto_e2ap, tvb, 0, -1, ENC_NA);
e2ap_tree = proto_item_add_subtree(e2ap_item, ett_e2ap);
return dissect_E2AP_PDU_PDU(tvb, pinfo, e2ap_tree, NULL);
}
@ -191,17 +392,12 @@ void
proto_reg_handoff_e2ap(void)
{
dissector_add_uint_with_preference("sctp.port", SCTP_PORT_E2AP, e2ap_handle);
#if 0
/* TODO: should one or more of these be registered? */
dissector_add_uint("sctp.ppi", E2_CP_PROTOCOL_ID, e2ap_handle);
dissector_add_uint("sctp.ppi", E2_UP_PROTOCOL_ID, e2ap_handle);
dissector_add_uint("sctp.ppi", E2_DU_PROTOCOL_ID, e2ap_handle);
#endif
#include "packet-e2ap-dis-tab.c"
}
/*--- proto_register_e2ap -------------------------------------------*/
void proto_register_e2ap(void) {
@ -209,7 +405,18 @@ void proto_register_e2ap(void) {
static hf_register_info hf[] = {
#include "packet-e2ap-hfarr.c"
{ &hf_e2ap_unmapped_ran_function_id,
{ "Unmapped RANfunctionID", "e2ap.unmapped-ran-function-id",
FT_NONE, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
{ &hf_e2ap_ran_function_name_not_recognised,
{ "RANfunction name not recognised", "e2ap.ran-function-name-not-recognised",
FT_NONE, BASE_NONE, NULL, 0x0,
NULL, HFILL }},
{ &hf_e2ap_ran_function_setup_frame,
{ "RANfunction setup frame", "e2ap.setup-frame",
FT_FRAMENUM, BASE_NONE, NULL, 0x0,
NULL, HFILL }}
};
/* List of subtrees */
@ -218,8 +425,12 @@ void proto_register_e2ap(void) {
#include "packet-e2ap-ettarr.c"
};
static ei_register_info ei[] = {
{ &ei_e2ap_ran_function_names_no_match, { "e2ap.ran-function-names-no-match", PI_PROTOCOL, PI_WARN, "RAN Function name doesn't match known service models", EXPFILL }},
{ &ei_e2ap_ran_function_id_not_mapped, { "e2ap.ran-function-id-not-known", PI_PROTOCOL, PI_WARN, "Service Model not known for RANFunctionID", EXPFILL }},
};
/* module_t *e2ap_module; */
expert_module_t* expert_e2ap;
/* Register protocol */
proto_e2ap = proto_register_protocol(PNAME, PSNAME, PFNAME);
@ -231,8 +442,12 @@ void proto_register_e2ap(void) {
/* Register dissector */
e2ap_handle = register_dissector("e2ap", dissect_e2ap, proto_e2ap);
expert_e2ap = expert_register_protocol(proto_e2ap);
expert_register_field_array(expert_e2ap, ei, array_length(ei));
/* Register dissector tables */
e2ap_ies_dissector_table = register_dissector_table("e2ap.ies", "E2AP-PROTOCOL-IES", proto_e2ap, FT_UINT32, BASE_DEC);
// e2ap_ies_p1_dissector_table = register_dissector_table("e2ap.ies.pair.first", "E2AP-PROTOCOL-IES-PAIR FirstValue", proto_e2ap, FT_UINT32, BASE_DEC);
// e2ap_ies_p2_dissector_table = register_dissector_table("e2ap.ies.pair.second", "E2AP-PROTOCOL-IES-PAIR SecondValue", proto_e2ap, FT_UINT32, BASE_DEC);
e2ap_extension_dissector_table = register_dissector_table("e2ap.extension", "E2AP-PROTOCOL-EXTENSION", proto_e2ap, FT_UINT32, BASE_DEC);
@ -240,10 +455,6 @@ void proto_register_e2ap(void) {
e2ap_proc_sout_dissector_table = register_dissector_table("e2ap.proc.sout", "E2AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_e2ap, FT_UINT32, BASE_DEC);
e2ap_proc_uout_dissector_table = register_dissector_table("e2ap.proc.uout", "E2AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_e2ap, FT_UINT32, BASE_DEC);
e2ap_n2_ie_type_dissector_table = register_dissector_table("e2ap.n2_ie_type", "E2AP N2 IE Type", proto_e2ap, FT_STRING, FALSE);
/* Register configuration options for ports */
/* e2ap_module = prefs_register_protocol(proto_e2ap, NULL); */
}
/*

File diff suppressed because it is too large Load Diff

View File

@ -815,7 +815,7 @@ class EthCtx:
#--- eth_reg_assign ---------------------------------------------------------
def eth_reg_assign(self, ident, val, virt=False):
#print "eth_reg_assign(ident='%s')" % (ident)
#print("eth_reg_assign(ident='%s')" % (ident), 'module=', self.Module())
if ident in self.assign:
raise DuplicateError("assignment", ident)
self.assign[ident] = { 'val' : val , 'virt' : virt }
@ -935,13 +935,14 @@ class EthCtx:
#--- eth_reg_type -----------------------------------------------------------
def eth_reg_type(self, ident, val, mod=None):
#print "eth_reg_type(ident='%s', type='%s')" % (ident, val.type)
#print("eth_reg_type(ident='%s', type='%s')" % (ident, val.type))
if ident in self.type:
if self.type[ident]['import'] and (self.type[ident]['import'] == self.Module()) :
# replace imported type
del self.type[ident]
self.type_imp.remove(ident)
else:
#print('DuplicateError: import=', self.type[ident]['import'], 'module=', self.Module())
raise DuplicateError("type", ident)
val.ident = ident
self.type[ident] = { 'val' : val, 'import' : None }