E2AP 2.01
This commit is contained in:
parent
c8cf2f544c
commit
d46e7f90f2
|
@ -25,7 +25,9 @@ set( ASN_FILE_LIST
|
||||||
E2AP-IEs.asn
|
E2AP-IEs.asn
|
||||||
E2AP-PDU-Contents.asn
|
E2AP-PDU-Contents.asn
|
||||||
E2AP-PDU-Descriptions.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
|
set( EXTRA_DIST
|
||||||
|
|
|
@ -2,12 +2,12 @@
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
--
|
--
|
||||||
-- Common definitions
|
-- Common definitions
|
||||||
-- Derived from 3GPP 38.413 v15.4.0
|
-- Derived from 3GPP 38.413 (NGAP)
|
||||||
--
|
--
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
|
||||||
E2AP-CommonDataTypes {
|
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 ::=
|
DEFINITIONS AUTOMATIC TAGS ::=
|
||||||
|
|
||||||
|
|
|
@ -6,15 +6,15 @@
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
|
||||||
E2AP-Constants {
|
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 ::=
|
DEFINITIONS AUTOMATIC TAGS ::=
|
||||||
|
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
||||||
IMPORTS
|
IMPORTS
|
||||||
ProcedureCode,
|
ProcedureCode,
|
||||||
ProtocolIE-ID
|
ProtocolIE-ID
|
||||||
FROM E2AP-CommonDataTypes;
|
FROM E2AP-CommonDataTypes;
|
||||||
|
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
@ -31,6 +31,10 @@ id-RICserviceQuery ProcedureCode ::= 6
|
||||||
id-RICserviceUpdate ProcedureCode ::= 7
|
id-RICserviceUpdate ProcedureCode ::= 7
|
||||||
id-RICsubscription ProcedureCode ::= 8
|
id-RICsubscription ProcedureCode ::= 8
|
||||||
id-RICsubscriptionDelete ProcedureCode ::= 9
|
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
|
maxnoofErrors INTEGER ::= 256
|
||||||
|
maxofE2nodeComponents INTEGER ::= 1024
|
||||||
maxofRANfunctionID INTEGER ::= 256
|
maxofRANfunctionID INTEGER ::= 256
|
||||||
maxofRICactionID INTEGER ::= 16
|
maxofRICactionID INTEGER ::= 16
|
||||||
|
maxofTNLA INTEGER ::= 32
|
||||||
|
maxofRICrequestID INTEGER ::= 4294967295
|
||||||
|
|
||||||
|
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
--
|
--
|
||||||
|
@ -87,7 +95,33 @@ id-RICrequestID ProtocolIE-ID ::= 29
|
||||||
id-RICsubscriptionDetails ProtocolIE-ID ::= 30
|
id-RICsubscriptionDetails ProtocolIE-ID ::= 30
|
||||||
id-TimeToWait ProtocolIE-ID ::= 31
|
id-TimeToWait ProtocolIE-ID ::= 31
|
||||||
id-RICcontrolOutcome ProtocolIE-ID ::= 32
|
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
|
END
|
||||||
-- ASN1STOP
|
-- ASN1STOP
|
||||||
|
|
|
@ -3,11 +3,11 @@
|
||||||
--
|
--
|
||||||
-- Container definitions
|
-- Container definitions
|
||||||
--
|
--
|
||||||
-- derived from 3GPP 38.413 v15.4.0
|
-- derived from 3GPP 38.413 (NGAP)
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
|
||||||
E2AP-Containers {
|
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 ::=
|
DEFINITIONS AUTOMATIC TAGS ::=
|
||||||
|
|
||||||
|
@ -21,14 +21,12 @@ BEGIN
|
||||||
|
|
||||||
IMPORTS
|
IMPORTS
|
||||||
|
|
||||||
Criticality,
|
Criticality,
|
||||||
Presence,
|
Presence,
|
||||||
PrivateIE-ID,
|
ProtocolIE-ID
|
||||||
ProtocolExtensionID,
|
|
||||||
ProtocolIE-ID
|
|
||||||
FROM E2AP-CommonDataTypes
|
FROM E2AP-CommonDataTypes
|
||||||
|
|
||||||
maxProtocolIEs
|
maxProtocolIEs
|
||||||
FROM E2AP-Constants;
|
FROM E2AP-Constants;
|
||||||
|
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
@ -38,16 +36,16 @@ FROM E2AP-Constants;
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
|
||||||
E2AP-PROTOCOL-IES ::= CLASS {
|
E2AP-PROTOCOL-IES ::= CLASS {
|
||||||
&id ProtocolIE-ID UNIQUE,
|
&id ProtocolIE-ID UNIQUE,
|
||||||
&criticality Criticality,
|
&criticality Criticality,
|
||||||
&Value,
|
&Value,
|
||||||
&presence Presence
|
&presence Presence
|
||||||
}
|
}
|
||||||
WITH SYNTAX {
|
WITH SYNTAX {
|
||||||
ID &id
|
ID &id
|
||||||
CRITICALITY &criticality
|
CRITICALITY &criticality
|
||||||
TYPE &Value
|
TYPE &Value
|
||||||
PRESENCE &presence
|
PRESENCE &presence
|
||||||
}
|
}
|
||||||
|
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
@ -57,20 +55,20 @@ PRESENCE &presence
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
|
||||||
E2AP-PROTOCOL-IES-PAIR ::= CLASS {
|
E2AP-PROTOCOL-IES-PAIR ::= CLASS {
|
||||||
&id ProtocolIE-ID UNIQUE,
|
&id ProtocolIE-ID UNIQUE,
|
||||||
&firstCriticality Criticality,
|
&firstCriticality Criticality,
|
||||||
&FirstValue,
|
&FirstValue,
|
||||||
&secondCriticality Criticality,
|
&secondCriticality Criticality,
|
||||||
&SecondValue,
|
&SecondValue,
|
||||||
&presence Presence
|
&presence Presence
|
||||||
}
|
}
|
||||||
WITH SYNTAX {
|
WITH SYNTAX {
|
||||||
ID &id
|
ID &id
|
||||||
FIRST CRITICALITY &firstCriticality
|
FIRST CRITICALITY &firstCriticality
|
||||||
FIRST TYPE &FirstValue
|
FIRST TYPE &FirstValue
|
||||||
SECOND CRITICALITY &secondCriticality
|
SECOND CRITICALITY &secondCriticality
|
||||||
SECOND TYPE &SecondValue
|
SECOND TYPE &SecondValue
|
||||||
PRESENCE &presence
|
PRESENCE &presence
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -83,16 +81,16 @@ PRESENCE &presence
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
|
||||||
ProtocolIE-Container {E2AP-PROTOCOL-IES : IEsSetParam} ::=
|
ProtocolIE-Container {E2AP-PROTOCOL-IES : IEsSetParam} ::=
|
||||||
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
|
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
|
||||||
ProtocolIE-Field {{IEsSetParam}}
|
ProtocolIE-Field {{IEsSetParam}}
|
||||||
|
|
||||||
ProtocolIE-SingleContainer {E2AP-PROTOCOL-IES : IEsSetParam} ::=
|
ProtocolIE-SingleContainer {E2AP-PROTOCOL-IES : IEsSetParam} ::=
|
||||||
ProtocolIE-Field {{IEsSetParam}}
|
ProtocolIE-Field {{IEsSetParam}}
|
||||||
|
|
||||||
ProtocolIE-Field {E2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
|
ProtocolIE-Field {E2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
|
||||||
id E2AP-PROTOCOL-IES.&id ({IEsSetParam}),
|
id E2AP-PROTOCOL-IES.&id ({IEsSetParam}),
|
||||||
criticality E2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
|
criticality E2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
|
||||||
value E2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
|
value E2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
|
||||||
}
|
}
|
||||||
|
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
@ -102,15 +100,15 @@ value E2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
|
||||||
ProtocolIE-ContainerPair {E2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
|
ProtocolIE-ContainerPair {E2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
|
||||||
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
|
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
|
||||||
ProtocolIE-FieldPair {{IEsSetParam}}
|
ProtocolIE-FieldPair {{IEsSetParam}}
|
||||||
|
|
||||||
ProtocolIE-FieldPair {E2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
|
ProtocolIE-FieldPair {E2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
|
||||||
id E2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
|
id E2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
|
||||||
firstCriticality E2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
|
firstCriticality E2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
|
||||||
firstValue E2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
|
firstValue E2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
|
||||||
secondCriticality E2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
|
secondCriticality E2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
|
||||||
secondValue E2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
|
secondValue E2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
|
||||||
}
|
}
|
||||||
|
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
@ -120,12 +118,12 @@ secondValue E2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
|
||||||
ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, E2AP-PROTOCOL-IES : IEsSetParam} ::=
|
ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, E2AP-PROTOCOL-IES : IEsSetParam} ::=
|
||||||
SEQUENCE (SIZE (lowerBound..upperBound)) OF
|
SEQUENCE (SIZE (lowerBound..upperBound)) OF
|
||||||
ProtocolIE-SingleContainer {{IEsSetParam}}
|
ProtocolIE-SingleContainer {{IEsSetParam}}
|
||||||
|
|
||||||
ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, E2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
|
ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, E2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
|
||||||
SEQUENCE (SIZE (lowerBound..upperBound)) OF
|
SEQUENCE (SIZE (lowerBound..upperBound)) OF
|
||||||
ProtocolIE-ContainerPair {{IEsSetParam}}
|
ProtocolIE-ContainerPair {{IEsSetParam}}
|
||||||
|
|
||||||
|
|
||||||
END
|
END
|
||||||
|
|
|
@ -6,221 +6,315 @@
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
|
||||||
E2AP-IEs {
|
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 ::=
|
DEFINITIONS AUTOMATIC TAGS ::=
|
||||||
|
|
||||||
BEGIN
|
BEGIN
|
||||||
|
|
||||||
IMPORTS
|
IMPORTS
|
||||||
Criticality,
|
Criticality,
|
||||||
Presence,
|
Presence,
|
||||||
ProcedureCode,
|
ProcedureCode,
|
||||||
ProtocolIE-ID,
|
ProtocolIE-ID,
|
||||||
TriggeringMessage
|
TriggeringMessage
|
||||||
FROM E2AP-CommonDataTypes
|
FROM E2AP-CommonDataTypes
|
||||||
|
|
||||||
maxnoofErrors,
|
maxnoofErrors,
|
||||||
maxProtocolIEs
|
maxProtocolIEs
|
||||||
FROM E2AP-Constants;
|
FROM E2AP-Constants;
|
||||||
|
|
||||||
-- A
|
-- A
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
-- [New for E2AP v02.00] copied from 3GPP 38.413 (NGAP) IEs
|
||||||
|
-- **************************************************************
|
||||||
|
AMFName ::= PrintableString (SIZE(1..150, ...))
|
||||||
|
|
||||||
-- B
|
-- B
|
||||||
-- C
|
-- C
|
||||||
Cause ::= CHOICE {
|
Cause ::= CHOICE {
|
||||||
ricRequest CauseRIC,
|
ricRequest CauseRICrequest,
|
||||||
ricService CauseRICservice,
|
ricService CauseRICservice,
|
||||||
transport CauseTransport,
|
e2Node CauseE2node,
|
||||||
protocol CauseProtocol,
|
transport CauseTransport,
|
||||||
misc CauseMisc,
|
protocol CauseProtocol,
|
||||||
...
|
misc CauseMisc,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
CauseE2node ::= ENUMERATED {
|
||||||
|
e2node-component-unknown,
|
||||||
|
...
|
||||||
}
|
}
|
||||||
|
|
||||||
CauseMisc ::= ENUMERATED {
|
CauseMisc ::= ENUMERATED {
|
||||||
control-processing-overload,
|
control-processing-overload,
|
||||||
hardware-failure,
|
hardware-failure,
|
||||||
om-intervention,
|
om-intervention,
|
||||||
unspecified,
|
unspecified,
|
||||||
...
|
...
|
||||||
}
|
|
||||||
CauseProtocol ::= ENUMERATED {
|
|
||||||
transfer-syntax-error,
|
|
||||||
abstract-syntax-error-reject,
|
|
||||||
abstract-syntax-error-ignore-and-notify,
|
|
||||||
message-not-compatible-with-receiver-state,
|
|
||||||
semantic-error,
|
|
||||||
abstract-syntax-error-falsely-constructed-message,
|
|
||||||
unspecified,
|
|
||||||
...
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CauseRIC ::= ENUMERATED {
|
CauseProtocol ::= ENUMERATED {
|
||||||
ran-function-id-Invalid,
|
transfer-syntax-error,
|
||||||
action-not-supported,
|
abstract-syntax-error-reject,
|
||||||
excessive-actions,
|
abstract-syntax-error-ignore-and-notify,
|
||||||
duplicate-action,
|
message-not-compatible-with-receiver-state,
|
||||||
duplicate-event,
|
semantic-error,
|
||||||
function-resource-limit,
|
abstract-syntax-error-falsely-constructed-message,
|
||||||
request-id-unknown,
|
unspecified,
|
||||||
inconsistent-action-subsequent-action-sequence,
|
...
|
||||||
control-message-invalid,
|
}
|
||||||
call-process-id-invalid,
|
|
||||||
unspecified,
|
CauseRICrequest ::= ENUMERATED {
|
||||||
...
|
ran-function-id-invalid,
|
||||||
|
action-not-supported,
|
||||||
|
excessive-actions,
|
||||||
|
duplicate-action,
|
||||||
|
duplicate-event-trigger,
|
||||||
|
function-resource-limit,
|
||||||
|
request-id-unknown,
|
||||||
|
inconsistent-action-subsequent-action-sequence,
|
||||||
|
control-message-invalid,
|
||||||
|
ric-call-process-id-invalid,
|
||||||
|
control-timer-expired,
|
||||||
|
control-failed-to-execute,
|
||||||
|
system-not-ready,
|
||||||
|
unspecified,
|
||||||
|
...
|
||||||
}
|
}
|
||||||
|
|
||||||
CauseRICservice ::= ENUMERATED{
|
CauseRICservice ::= ENUMERATED{
|
||||||
function-not-required,
|
ran-function-not-supported,
|
||||||
excessive-functions,
|
excessive-functions,
|
||||||
ric-resource-limit,
|
ric-resource-limit,
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
CauseTransport ::= ENUMERATED {
|
CauseTransport ::= ENUMERATED {
|
||||||
unspecified,
|
unspecified,
|
||||||
transport-resource-unavailable,
|
transport-resource-unavailable,
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
|
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
-- copied from 3GPP 38.413 NGAP IEs v15.5.0
|
-- copied from 3GPP 38.413 (NGAP) IEs
|
||||||
-- note: ie-Extensions removed
|
-- note: ie-Extensions removed
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
CriticalityDiagnostics ::= SEQUENCE {
|
CriticalityDiagnostics ::= SEQUENCE {
|
||||||
procedureCode ProcedureCode OPTIONAL,
|
procedureCode ProcedureCode OPTIONAL,
|
||||||
triggeringMessage TriggeringMessage OPTIONAL,
|
triggeringMessage TriggeringMessage OPTIONAL,
|
||||||
procedureCriticality Criticality OPTIONAL,
|
procedureCriticality Criticality OPTIONAL,
|
||||||
ricRequestorID RICrequestID OPTIONAL,
|
ricRequestorID RICrequestID OPTIONAL,
|
||||||
iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
|
iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
|
|
||||||
CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE(1..maxnoofErrors)) OF CriticalityDiagnostics-IE-Item
|
CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE(1..maxnoofErrors)) OF CriticalityDiagnostics-IE-Item
|
||||||
|
|
||||||
CriticalityDiagnostics-IE-Item ::= SEQUENCE {
|
CriticalityDiagnostics-IE-Item ::= SEQUENCE {
|
||||||
iECriticality Criticality,
|
iECriticality Criticality,
|
||||||
iE-ID ProtocolIE-ID,
|
iE-ID ProtocolIE-ID,
|
||||||
typeOfError TypeOfError,
|
typeOfError TypeOfError,
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
|
|
||||||
-- D
|
-- D
|
||||||
-- E
|
-- E
|
||||||
|
|
||||||
-- **************************************************************
|
-- Following IE used to carry 3GPP defined SETUP and RAN Configuration messages defined in F1AP, E1AP, XnAP, etc.
|
||||||
-- copied from 3GPP X2AP IEs v15.4.0
|
E2nodeComponentConfiguration ::= SEQUENCE{
|
||||||
-- note: ie-Extensions removed
|
e2nodeComponentRequestPart OCTET STRING,
|
||||||
-- **************************************************************
|
e2nodeComponentResponsePart OCTET STRING,
|
||||||
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 3GPP 38.423 v15.5.0 XnAP IEs
|
E2nodeComponentConfigurationAck ::= SEQUENCE{
|
||||||
-- **************************************************************
|
updateOutcome ENUMERATED {success, failure, ...},
|
||||||
ENB-ID-Choice ::= CHOICE {
|
failureCause Cause OPTIONAL,
|
||||||
enb-ID-macro BIT STRING (SIZE(20)),
|
...
|
||||||
enb-ID-shortmacro BIT STRING (SIZE(18)),
|
}
|
||||||
enb-ID-longmacro BIT STRING (SIZE(21)),
|
|
||||||
...
|
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 {
|
||||||
|
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 3GPP 38.423 (XnAP) IEs
|
||||||
|
-- **************************************************************
|
||||||
|
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)),
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
-- copied from 3GPP 36.423 (X2AP) IEs
|
||||||
-- note: ie-Extensions removed
|
-- note: ie-Extensions removed
|
||||||
-- Note: to avoid duplicate names with XnAP, GNB-ID renamed ENGNB-ID, GlobalGNB-ID renamed GlobalenGNB-ID
|
-- Note: to avoid duplicate names with XnAP, GNB-ID renamed ENGNB-ID, GlobalGNB-ID renamed GlobalenGNB-ID
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
ENGNB-ID ::= CHOICE {
|
ENGNB-ID ::= CHOICE {
|
||||||
gNB-ID BIT STRING (SIZE (22..32)),
|
gNB-ID BIT STRING (SIZE (22..32)),
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
|
|
||||||
-- F
|
-- F
|
||||||
-- G
|
-- G
|
||||||
GlobalE2node-ID ::= CHOICE{
|
GlobalE2node-ID ::= CHOICE{
|
||||||
gNB GlobalE2node-gNB-ID,
|
gNB GlobalE2node-gNB-ID,
|
||||||
en-gNB GlobalE2node-en-gNB-ID,
|
en-gNB GlobalE2node-en-gNB-ID,
|
||||||
ng-eNB GlobalE2node-ng-eNB-ID,
|
ng-eNB GlobalE2node-ng-eNB-ID,
|
||||||
eNB GlobalE2node-eNB-ID,
|
eNB GlobalE2node-eNB-ID,
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
|
|
||||||
GlobalE2node-en-gNB-ID ::= SEQUENCE{
|
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{
|
GlobalE2node-eNB-ID ::= SEQUENCE{
|
||||||
global-eNB-ID GlobalENB-ID,
|
global-eNB-ID GlobalENB-ID,
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
GlobalE2node-gNB-ID ::= SEQUENCE{
|
GlobalE2node-gNB-ID ::= SEQUENCE{
|
||||||
global-gNB-ID GlobalgNB-ID,
|
global-gNB-ID GlobalgNB-ID,
|
||||||
gNB-CU-UP-ID GNB-CU-UP-ID OPTIONAL,
|
global-en-gNB-ID GlobalenGNB-ID OPTIONAL,
|
||||||
gNB-DU-ID GNB-DU-ID OPTIONAL,
|
gNB-CU-UP-ID GNB-CU-UP-ID OPTIONAL,
|
||||||
...
|
gNB-DU-ID GNB-DU-ID OPTIONAL,
|
||||||
|
...
|
||||||
}
|
}
|
||||||
GlobalE2node-ng-eNB-ID ::= SEQUENCE{
|
GlobalE2node-ng-eNB-ID ::= SEQUENCE{
|
||||||
global-ng-eNB-ID GlobalngeNB-ID,
|
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
|
-- note: ie-Extensions removed
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
|
||||||
GlobalENB-ID ::= SEQUENCE {
|
GlobalENB-ID ::= SEQUENCE {
|
||||||
pLMN-Identity PLMN-Identity,
|
pLMN-Identity PLMN-Identity,
|
||||||
eNB-ID ENB-ID,
|
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
|
-- Note: to avoid duplicate names with XnAP, GNB-ID renamed ENGNB-ID, GlobalGNB-ID renamed GlobalenGNB-ID
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
GlobalenGNB-ID ::= SEQUENCE {
|
GlobalenGNB-ID ::= SEQUENCE {
|
||||||
pLMN-Identity PLMN-Identity,
|
pLMN-Identity PLMN-Identity,
|
||||||
gNB-ID ENGNB-ID,
|
gNB-ID ENGNB-ID,
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
-- copied from 3GPP 38.423 v15.5.0 XnAP IEs
|
-- copied from 3GPP 38.423 (XnAP) IEs
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
GlobalgNB-ID ::= SEQUENCE {
|
GlobalgNB-ID ::= SEQUENCE {
|
||||||
plmn-id PLMN-Identity,
|
plmn-id PLMN-Identity,
|
||||||
gnb-id GNB-ID-Choice,
|
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 {
|
GlobalngeNB-ID ::= SEQUENCE {
|
||||||
plmn-id PLMN-Identity,
|
plmn-id PLMN-Identity,
|
||||||
enb-id ENB-ID-Choice,
|
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{
|
GlobalRIC-ID ::= SEQUENCE{
|
||||||
pLMN-Identity PLMN-Identity,
|
pLMN-Identity PLMN-Identity,
|
||||||
ric-ID BIT STRING (SIZE (20)),
|
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-CU-UP-ID::= INTEGER (0..68719476735)
|
||||||
GNB-DU-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-Choice ::= CHOICE {
|
||||||
gnb-ID BIT STRING (SIZE(22..32)),
|
gnb-ID BIT STRING (SIZE(22..32)),
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
-- H
|
-- H
|
||||||
-- I
|
-- I
|
||||||
|
@ -228,11 +322,24 @@ gnb-ID BIT STRING (SIZE(22..32)),
|
||||||
-- K
|
-- K
|
||||||
-- L
|
-- L
|
||||||
-- M
|
-- M
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
-- [New for E2AP v02.00] copied from 3GPP 36.413 (S1AP) IEs
|
||||||
|
-- **************************************************************
|
||||||
|
MMEname ::= PrintableString (SIZE (1..150,...))
|
||||||
|
|
||||||
-- N
|
-- N
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
-- copied from 3GPP 37.473 (W1AP) IEs
|
||||||
|
-- **************************************************************
|
||||||
|
NGENB-DU-ID ::= INTEGER (0..68719476735)
|
||||||
|
|
||||||
|
|
||||||
-- O
|
-- O
|
||||||
-- P
|
-- P
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
-- copied from 3GPP X2AP IEs v15.4.0
|
-- copied from 3GPP 36.423 (X2AP) IEs
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
PLMN-Identity ::= OCTET STRING (SIZE(3))
|
PLMN-Identity ::= OCTET STRING (SIZE(3))
|
||||||
|
|
||||||
|
@ -245,6 +352,8 @@ RANfunctionDefinition ::= OCTET STRING
|
||||||
|
|
||||||
RANfunctionID ::= INTEGER (0..4095)
|
RANfunctionID ::= INTEGER (0..4095)
|
||||||
|
|
||||||
|
RANfunctionOID ::= PrintableString(SIZE(1..1000,...))
|
||||||
|
|
||||||
RANfunctionRevision ::= INTEGER (0..4095)
|
RANfunctionRevision ::= INTEGER (0..4095)
|
||||||
|
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
@ -255,10 +364,10 @@ RICactionDefinition ::= OCTET STRING
|
||||||
RICactionID ::= INTEGER (0..255)
|
RICactionID ::= INTEGER (0..255)
|
||||||
|
|
||||||
RICactionType ::= ENUMERATED{
|
RICactionType ::= ENUMERATED{
|
||||||
report,
|
report,
|
||||||
insert,
|
insert,
|
||||||
policy,
|
policy,
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
|
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
@ -267,10 +376,9 @@ policy,
|
||||||
RICcallProcessID ::= OCTET STRING
|
RICcallProcessID ::= OCTET STRING
|
||||||
|
|
||||||
RICcontrolAckRequest ::= ENUMERATED{
|
RICcontrolAckRequest ::= ENUMERATED{
|
||||||
noAck,
|
noAck,
|
||||||
ack,
|
ack,
|
||||||
nAck,
|
...
|
||||||
...
|
|
||||||
}
|
}
|
||||||
|
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
@ -288,13 +396,6 @@ RICcontrolMessage ::= OCTET STRING
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
RICcontrolOutcome ::= OCTET STRING
|
RICcontrolOutcome ::= OCTET STRING
|
||||||
|
|
||||||
RICcontrolStatus ::= ENUMERATED{
|
|
||||||
success,
|
|
||||||
rejected,
|
|
||||||
failed,
|
|
||||||
...
|
|
||||||
}
|
|
||||||
|
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
-- Following IE defined in E2SM
|
-- Following IE defined in E2SM
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
@ -313,64 +414,74 @@ RICindicationMessage ::= OCTET STRING
|
||||||
RICindicationSN ::= INTEGER (0..65535)
|
RICindicationSN ::= INTEGER (0..65535)
|
||||||
|
|
||||||
RICindicationType ::= ENUMERATED{
|
RICindicationType ::= ENUMERATED{
|
||||||
report,
|
report,
|
||||||
insert,
|
insert,
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
|
|
||||||
RICrequestID ::= SEQUENCE {
|
RICrequestID ::= SEQUENCE {
|
||||||
ricRequestorID INTEGER (0..65535),
|
ricRequestorID INTEGER (0..65535),
|
||||||
ricInstanceID INTEGER (0..65535),
|
ricInstanceID INTEGER (0..65535),
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
|
|
||||||
RICsubsequentAction ::=SEQUENCE{
|
RICsubsequentAction ::=SEQUENCE{
|
||||||
ricSubsequentActionType RICsubsequentActionType,
|
ricSubsequentActionType RICsubsequentActionType,
|
||||||
ricTimeToWait RICtimeToWait,
|
ricTimeToWait RICtimeToWait,
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
|
|
||||||
RICsubsequentActionType ::= ENUMERATED{
|
RICsubsequentActionType ::= ENUMERATED{
|
||||||
continue,
|
continue,
|
||||||
wait,
|
wait,
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
|
|
||||||
RICtimeToWait ::= ENUMERATED{
|
RICtimeToWait ::= ENUMERATED{
|
||||||
zero,
|
w1ms,
|
||||||
w1ms,
|
w2ms,
|
||||||
w2ms,
|
w5ms,
|
||||||
w5ms,
|
w10ms,
|
||||||
w10ms,
|
w20ms,
|
||||||
w20ms,
|
w30ms,
|
||||||
w30ms,
|
w40ms,
|
||||||
w40ms,
|
w50ms,
|
||||||
w50ms,
|
w100ms,
|
||||||
w100ms,
|
w200ms,
|
||||||
w200ms,
|
w500ms,
|
||||||
w500ms,
|
w1s,
|
||||||
w1s,
|
w2s,
|
||||||
w2s,
|
w5s,
|
||||||
w5s,
|
w10s,
|
||||||
w10s,
|
w20s,
|
||||||
w20s,
|
w60s,
|
||||||
w60s,
|
...
|
||||||
...
|
|
||||||
}
|
}
|
||||||
-- S
|
-- S
|
||||||
-- T
|
-- 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, ...}
|
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 {
|
TypeOfError ::= ENUMERATED {
|
||||||
not-understood,
|
not-understood,
|
||||||
missing,
|
missing,
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
|
|
||||||
-- U
|
-- U
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -6,7 +6,7 @@
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
|
||||||
E2AP-PDU-Descriptions {
|
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 ::=
|
DEFINITIONS AUTOMATIC TAGS ::=
|
||||||
|
|
||||||
|
@ -19,43 +19,57 @@ BEGIN
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
|
||||||
IMPORTS
|
IMPORTS
|
||||||
Criticality,
|
Criticality,
|
||||||
ProcedureCode
|
ProcedureCode
|
||||||
FROM E2AP-CommonDataTypes
|
FROM E2AP-CommonDataTypes
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
E2setupFailure,
|
E2connectionUpdate,
|
||||||
E2setupRequest,
|
E2connectionUpdateAcknowledge,
|
||||||
E2setupResponse,
|
E2connectionUpdateFailure,
|
||||||
ErrorIndication,
|
E2nodeConfigurationUpdate,
|
||||||
ResetRequest,
|
E2nodeConfigurationUpdateAcknowledge,
|
||||||
ResetResponse,
|
E2nodeConfigurationUpdateFailure,
|
||||||
RICcontrolAcknowledge,
|
E2setupFailure,
|
||||||
RICcontrolFailure,
|
E2setupRequest,
|
||||||
RICcontrolRequest,
|
E2setupResponse,
|
||||||
RICindication,
|
ErrorIndication,
|
||||||
RICserviceQuery,
|
ResetRequest,
|
||||||
RICserviceUpdate,
|
ResetResponse,
|
||||||
RICserviceUpdateAcknowledge,
|
RICcontrolAcknowledge,
|
||||||
RICserviceUpdateFailure,
|
RICcontrolFailure,
|
||||||
RICsubscriptionFailure,
|
RICcontrolRequest,
|
||||||
RICsubscriptionRequest,
|
RICindication,
|
||||||
RICsubscriptionResponse,
|
RICserviceQuery,
|
||||||
RICsubscriptionDeleteFailure,
|
RICserviceUpdate,
|
||||||
RICsubscriptionDeleteRequest,
|
RICserviceUpdateAcknowledge,
|
||||||
RICsubscriptionDeleteResponse
|
RICserviceUpdateFailure,
|
||||||
|
RICsubscriptionFailure,
|
||||||
|
RICsubscriptionRequest,
|
||||||
|
RICsubscriptionResponse,
|
||||||
|
RICsubscriptionDeleteFailure,
|
||||||
|
RICsubscriptionDeleteRequest,
|
||||||
|
RICsubscriptionDeleteResponse,
|
||||||
|
RICsubscriptionDeleteRequired,
|
||||||
|
E2RemovalFailure,
|
||||||
|
E2RemovalRequest,
|
||||||
|
E2RemovalResponse
|
||||||
FROM E2AP-PDU-Contents
|
FROM E2AP-PDU-Contents
|
||||||
|
|
||||||
id-E2setup,
|
id-E2connectionUpdate,
|
||||||
id-ErrorIndication,
|
id-E2nodeConfigurationUpdate,
|
||||||
id-Reset,
|
id-E2setup,
|
||||||
id-RICcontrol,
|
id-ErrorIndication,
|
||||||
id-RICindication,
|
id-Reset,
|
||||||
id-RICserviceQuery,
|
id-RICcontrol,
|
||||||
id-RICserviceUpdate,
|
id-RICindication,
|
||||||
id-RICsubscription,
|
id-RICserviceQuery,
|
||||||
id-RICsubscriptionDelete
|
id-RICserviceUpdate,
|
||||||
|
id-RICsubscription,
|
||||||
|
id-RICsubscriptionDelete,
|
||||||
|
id-RICsubscriptionDeleteRequired,
|
||||||
|
id-E2removal
|
||||||
FROM E2AP-Constants;
|
FROM E2AP-Constants;
|
||||||
|
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
@ -65,19 +79,19 @@ FROM E2AP-Constants;
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
|
||||||
E2AP-ELEMENTARY-PROCEDURE ::= CLASS {
|
E2AP-ELEMENTARY-PROCEDURE ::= CLASS {
|
||||||
&InitiatingMessage ,
|
&InitiatingMessage ,
|
||||||
&SuccessfulOutcome OPTIONAL ,
|
&SuccessfulOutcome OPTIONAL ,
|
||||||
&UnsuccessfulOutcome OPTIONAL ,
|
&UnsuccessfulOutcome OPTIONAL ,
|
||||||
&procedureCode ProcedureCode UNIQUE ,
|
&procedureCode ProcedureCode UNIQUE ,
|
||||||
&criticality Criticality DEFAULT ignore
|
&criticality Criticality DEFAULT ignore
|
||||||
}
|
}
|
||||||
|
|
||||||
WITH SYNTAX {
|
WITH SYNTAX {
|
||||||
INITIATING MESSAGE &InitiatingMessage
|
INITIATING MESSAGE &InitiatingMessage
|
||||||
[SUCCESSFUL OUTCOME &SuccessfulOutcome]
|
[SUCCESSFUL OUTCOME &SuccessfulOutcome]
|
||||||
[UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
|
[UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
|
||||||
PROCEDURE CODE &procedureCode
|
PROCEDURE CODE &procedureCode
|
||||||
[CRITICALITY &criticality]
|
[CRITICALITY &criticality]
|
||||||
}
|
}
|
||||||
|
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
@ -87,28 +101,28 @@ PROCEDURE CODE &procedureCode
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
|
||||||
E2AP-PDU ::= CHOICE {
|
E2AP-PDU ::= CHOICE {
|
||||||
initiatingMessage InitiatingMessage,
|
initiatingMessage InitiatingMessage,
|
||||||
successfulOutcome SuccessfulOutcome,
|
successfulOutcome SuccessfulOutcome,
|
||||||
unsuccessfulOutcome UnsuccessfulOutcome,
|
unsuccessfulOutcome UnsuccessfulOutcome,
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
|
|
||||||
InitiatingMessage ::= SEQUENCE {
|
InitiatingMessage ::= SEQUENCE {
|
||||||
procedureCode E2AP-ELEMENTARY-PROCEDURE.&procedureCode ({E2AP-ELEMENTARY-PROCEDURES}),
|
procedureCode E2AP-ELEMENTARY-PROCEDURE.&procedureCode ({E2AP-ELEMENTARY-PROCEDURES}),
|
||||||
criticality E2AP-ELEMENTARY-PROCEDURE.&criticality ({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
criticality E2AP-ELEMENTARY-PROCEDURE.&criticality ({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||||
value E2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
value E2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||||
}
|
}
|
||||||
|
|
||||||
SuccessfulOutcome ::= SEQUENCE {
|
SuccessfulOutcome ::= SEQUENCE {
|
||||||
procedureCode E2AP-ELEMENTARY-PROCEDURE.&procedureCode ({E2AP-ELEMENTARY-PROCEDURES}),
|
procedureCode E2AP-ELEMENTARY-PROCEDURE.&procedureCode ({E2AP-ELEMENTARY-PROCEDURES}),
|
||||||
criticality E2AP-ELEMENTARY-PROCEDURE.&criticality ({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
criticality E2AP-ELEMENTARY-PROCEDURE.&criticality ({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||||
value E2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
value E2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||||
}
|
}
|
||||||
|
|
||||||
UnsuccessfulOutcome ::= SEQUENCE {
|
UnsuccessfulOutcome ::= SEQUENCE {
|
||||||
procedureCode E2AP-ELEMENTARY-PROCEDURE.&procedureCode ({E2AP-ELEMENTARY-PROCEDURES}),
|
procedureCode E2AP-ELEMENTARY-PROCEDURE.&procedureCode ({E2AP-ELEMENTARY-PROCEDURES}),
|
||||||
criticality E2AP-ELEMENTARY-PROCEDURE.&criticality ({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
criticality E2AP-ELEMENTARY-PROCEDURE.&criticality ({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||||
value E2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
value E2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||||
}
|
}
|
||||||
|
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
@ -118,26 +132,30 @@ value E2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({E2AP-ELEMENTARY-PROCEDU
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
|
||||||
E2AP-ELEMENTARY-PROCEDURES E2AP-ELEMENTARY-PROCEDURE ::= {
|
E2AP-ELEMENTARY-PROCEDURES E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||||
E2AP-ELEMENTARY-PROCEDURES-CLASS-1 |
|
E2AP-ELEMENTARY-PROCEDURES-CLASS-1 |
|
||||||
E2AP-ELEMENTARY-PROCEDURES-CLASS-2,
|
E2AP-ELEMENTARY-PROCEDURES-CLASS-2,
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
|
|
||||||
E2AP-ELEMENTARY-PROCEDURES-CLASS-1 E2AP-ELEMENTARY-PROCEDURE ::= {
|
E2AP-ELEMENTARY-PROCEDURES-CLASS-1 E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||||
ricSubscription |
|
ricSubscription |
|
||||||
ricSubscriptionDelete |
|
ricSubscriptionDelete |
|
||||||
ricServiceUpdate |
|
ricServiceUpdate |
|
||||||
ricControl |
|
ricControl |
|
||||||
e2setup |
|
e2setup |
|
||||||
reset,
|
e2nodeConfigurationUpdate |
|
||||||
...
|
e2connectionUpdate |
|
||||||
|
reset |
|
||||||
|
e2removal,
|
||||||
|
...
|
||||||
}
|
}
|
||||||
|
|
||||||
E2AP-ELEMENTARY-PROCEDURES-CLASS-2 E2AP-ELEMENTARY-PROCEDURE ::= {
|
E2AP-ELEMENTARY-PROCEDURES-CLASS-2 E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||||
ricIndication |
|
ricIndication |
|
||||||
ricServiceQuery |
|
ricServiceQuery |
|
||||||
errorIndication,
|
errorIndication |
|
||||||
...
|
ricSubscriptionDeleteRequired,
|
||||||
|
...
|
||||||
}
|
}
|
||||||
|
|
||||||
-- **************************************************************
|
-- **************************************************************
|
||||||
|
@ -146,71 +164,102 @@ 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 ::= {
|
e2setup E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||||
INITIATING MESSAGE E2setupRequest
|
INITIATING MESSAGE E2setupRequest
|
||||||
SUCCESSFUL OUTCOME E2setupResponse
|
SUCCESSFUL OUTCOME E2setupResponse
|
||||||
UNSUCCESSFUL OUTCOME E2setupFailure
|
UNSUCCESSFUL OUTCOME E2setupFailure
|
||||||
PROCEDURE CODE id-E2setup
|
PROCEDURE CODE id-E2setup
|
||||||
CRITICALITY reject
|
CRITICALITY reject
|
||||||
}
|
}
|
||||||
|
|
||||||
errorIndication E2AP-ELEMENTARY-PROCEDURE ::= {
|
errorIndication E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||||
INITIATING MESSAGE ErrorIndication
|
INITIATING MESSAGE ErrorIndication
|
||||||
PROCEDURE CODE id-ErrorIndication
|
PROCEDURE CODE id-ErrorIndication
|
||||||
CRITICALITY ignore
|
CRITICALITY ignore
|
||||||
}
|
}
|
||||||
|
|
||||||
reset E2AP-ELEMENTARY-PROCEDURE ::= {
|
reset E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||||
INITIATING MESSAGE ResetRequest
|
INITIATING MESSAGE ResetRequest
|
||||||
SUCCESSFUL OUTCOME ResetResponse
|
SUCCESSFUL OUTCOME ResetResponse
|
||||||
PROCEDURE CODE id-Reset
|
PROCEDURE CODE id-Reset
|
||||||
CRITICALITY reject
|
CRITICALITY reject
|
||||||
}
|
}
|
||||||
|
|
||||||
ricControl E2AP-ELEMENTARY-PROCEDURE ::= {
|
ricControl E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||||
INITIATING MESSAGE RICcontrolRequest
|
INITIATING MESSAGE RICcontrolRequest
|
||||||
SUCCESSFUL OUTCOME RICcontrolAcknowledge
|
SUCCESSFUL OUTCOME RICcontrolAcknowledge
|
||||||
UNSUCCESSFUL OUTCOME RICcontrolFailure
|
UNSUCCESSFUL OUTCOME RICcontrolFailure
|
||||||
PROCEDURE CODE id-RICcontrol
|
PROCEDURE CODE id-RICcontrol
|
||||||
CRITICALITY reject
|
CRITICALITY reject
|
||||||
}
|
}
|
||||||
|
|
||||||
ricIndication E2AP-ELEMENTARY-PROCEDURE ::= {
|
ricIndication E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||||
INITIATING MESSAGE RICindication
|
INITIATING MESSAGE RICindication
|
||||||
PROCEDURE CODE id-RICindication
|
PROCEDURE CODE id-RICindication
|
||||||
CRITICALITY ignore
|
CRITICALITY ignore
|
||||||
}
|
}
|
||||||
|
|
||||||
ricServiceQuery E2AP-ELEMENTARY-PROCEDURE ::= {
|
ricServiceQuery E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||||
INITIATING MESSAGE RICserviceQuery
|
INITIATING MESSAGE RICserviceQuery
|
||||||
PROCEDURE CODE id-RICserviceQuery
|
PROCEDURE CODE id-RICserviceQuery
|
||||||
CRITICALITY ignore
|
CRITICALITY ignore
|
||||||
}
|
}
|
||||||
|
|
||||||
ricServiceUpdate E2AP-ELEMENTARY-PROCEDURE ::= {
|
ricServiceUpdate E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||||
INITIATING MESSAGE RICserviceUpdate
|
INITIATING MESSAGE RICserviceUpdate
|
||||||
SUCCESSFUL OUTCOME RICserviceUpdateAcknowledge
|
SUCCESSFUL OUTCOME RICserviceUpdateAcknowledge
|
||||||
UNSUCCESSFUL OUTCOME RICserviceUpdateFailure
|
UNSUCCESSFUL OUTCOME RICserviceUpdateFailure
|
||||||
PROCEDURE CODE id-RICserviceUpdate
|
PROCEDURE CODE id-RICserviceUpdate
|
||||||
CRITICALITY reject
|
CRITICALITY reject
|
||||||
}
|
}
|
||||||
|
|
||||||
ricSubscription E2AP-ELEMENTARY-PROCEDURE ::= {
|
ricSubscription E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||||
INITIATING MESSAGE RICsubscriptionRequest
|
INITIATING MESSAGE RICsubscriptionRequest
|
||||||
SUCCESSFUL OUTCOME RICsubscriptionResponse
|
SUCCESSFUL OUTCOME RICsubscriptionResponse
|
||||||
UNSUCCESSFUL OUTCOME RICsubscriptionFailure
|
UNSUCCESSFUL OUTCOME RICsubscriptionFailure
|
||||||
PROCEDURE CODE id-RICsubscription
|
PROCEDURE CODE id-RICsubscription
|
||||||
CRITICALITY reject
|
CRITICALITY reject
|
||||||
}
|
}
|
||||||
|
|
||||||
ricSubscriptionDelete E2AP-ELEMENTARY-PROCEDURE ::= {
|
ricSubscriptionDelete E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||||
INITIATING MESSAGE RICsubscriptionDeleteRequest
|
INITIATING MESSAGE RICsubscriptionDeleteRequest
|
||||||
SUCCESSFUL OUTCOME RICsubscriptionDeleteResponse
|
SUCCESSFUL OUTCOME RICsubscriptionDeleteResponse
|
||||||
UNSUCCESSFUL OUTCOME RICsubscriptionDeleteFailure
|
UNSUCCESSFUL OUTCOME RICsubscriptionDeleteFailure
|
||||||
PROCEDURE CODE id-RICsubscriptionDelete
|
PROCEDURE CODE id-RICsubscriptionDelete
|
||||||
CRITICALITY reject
|
CRITICALITY reject
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ricSubscriptionDeleteRequired E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||||
|
INITIATING MESSAGE RICsubscriptionDeleteRequired
|
||||||
|
PROCEDURE CODE id-RICsubscriptionDeleteRequired
|
||||||
|
CRITICALITY ignore
|
||||||
|
}
|
||||||
|
|
||||||
END
|
END
|
||||||
-- ASN1STOP
|
-- ASN1STOP
|
||||||
|
|
|
@ -17,18 +17,26 @@ ProtocolIE-ID
|
||||||
#.PDU
|
#.PDU
|
||||||
E2AP-PDU
|
E2AP-PDU
|
||||||
|
|
||||||
E2SM-KPM-ActionDefinition
|
|
||||||
E2SM-KPM-RANfunction-Description
|
|
||||||
E2SM-KPM-EventTriggerDefinition
|
E2SM-KPM-EventTriggerDefinition
|
||||||
|
E2SM-KPM-ActionDefinition
|
||||||
E2SM-KPM-IndicationHeader
|
E2SM-KPM-IndicationHeader
|
||||||
RANcallProcess-ID-string
|
E2SM-KPM-IndicationMessage
|
||||||
E2SM-KPM-IndicationMessage-Format1
|
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
|
#.MAKE_ENUM
|
||||||
ProcedureCode
|
ProcedureCode
|
||||||
ProtocolIE-ID
|
ProtocolIE-ID
|
||||||
|
|
||||||
|
|
||||||
#.NO_EMIT
|
#.NO_EMIT
|
||||||
|
|
||||||
#.OMIT_ASSIGNMENT
|
#.OMIT_ASSIGNMENT
|
||||||
|
@ -38,20 +46,46 @@ ProtocolIE-ContainerList
|
||||||
ProtocolIE-ContainerPair
|
ProtocolIE-ContainerPair
|
||||||
ProtocolIE-ContainerPairList
|
ProtocolIE-ContainerPairList
|
||||||
Presence
|
Presence
|
||||||
|
E2SM-RC-ControlOutcome
|
||||||
# KPM items. Don't know which E2AP OCTET STRING is supposed to use this...
|
E2SM-RC-ControlOutcome-Format3
|
||||||
GNB-DU-Name
|
E2SM-RC-ControlOutcome-Format2
|
||||||
|
E2SM-RC-ControlOutcome-Format1
|
||||||
E2SM-KPM-IndicationMessage
|
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
|
#.END
|
||||||
|
|
||||||
|
|
||||||
#.TYPE_ATTR
|
#.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
|
#.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
|
#.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_PARS ProtocolIE-FieldPair/secondValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldPairSecondValue
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#.FN_BODY ProcedureCode VAL_PTR = &e2ap_data->procedure_code
|
#.FN_BODY ProcedureCode VAL_PTR = &e2ap_data->procedure_code
|
||||||
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
|
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
|
||||||
%(DEFAULT_BODY)s
|
%(DEFAULT_BODY)s
|
||||||
|
@ -215,38 +248,73 @@ SuccessfulOutcome/value successfulOutcome_value
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# Calling in-depth KPM definitions of E2AP OCTET STRING fields.
|
# ################################################################################
|
||||||
|
# Calling in-depth definitions of E2AP OCTET STRING fields.
|
||||||
#.FN_BODY RICactionDefinition VAL_PTR = ¶meter_tvb
|
|
||||||
tvbuff_t *parameter_tvb;
|
|
||||||
%(DEFAULT_BODY)s
|
|
||||||
dissect_E2SM_KPM_ActionDefinition_PDU(parameter_tvb, actx->pinfo, tree, NULL);
|
|
||||||
|
|
||||||
#.FN_BODY RICeventTriggerDefinition VAL_PTR = ¶meter_tvb
|
|
||||||
tvbuff_t *parameter_tvb;
|
|
||||||
%(DEFAULT_BODY)s
|
|
||||||
dissect_E2SM_KPM_EventTriggerDefinition_PDU(parameter_tvb, actx->pinfo, tree, NULL);
|
|
||||||
|
|
||||||
#.FN_BODY RICindicationHeader VAL_PTR = ¶meter_tvb
|
|
||||||
tvbuff_t *parameter_tvb;
|
|
||||||
%(DEFAULT_BODY)s
|
|
||||||
dissect_E2SM_KPM_IndicationHeader_PDU(parameter_tvb, actx->pinfo, tree, NULL);
|
|
||||||
|
|
||||||
#.FN_BODY RICindicationMessage VAL_PTR = ¶meter_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);
|
|
||||||
|
|
||||||
#.FN_BODY RANfunctionDefinition VAL_PTR = ¶meter_tvb
|
#.FN_BODY RANfunctionDefinition VAL_PTR = ¶meter_tvb
|
||||||
tvbuff_t *parameter_tvb;
|
tvbuff_t *parameter_tvb;
|
||||||
%(DEFAULT_BODY)s
|
%(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 = ¶meter_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 = ¶meter_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 = ¶meter_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 = ¶meter_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 = ¶meter_tvb
|
#.FN_BODY RICcallProcessID VAL_PTR = ¶meter_tvb
|
||||||
tvbuff_t *parameter_tvb;
|
tvbuff_t *parameter_tvb;
|
||||||
%(DEFAULT_BODY)s
|
%(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-RICserviceUpdate ProcedureCode
|
||||||
id-RICsubscription ProcedureCode
|
id-RICsubscription ProcedureCode
|
||||||
id-RICsubscriptionDelete ProcedureCode
|
id-RICsubscriptionDelete ProcedureCode
|
||||||
#id-E2nodeConfigurationUpdate ProcedureCode
|
id-E2nodeConfigurationUpdate ProcedureCode
|
||||||
#id-E2connectionUpdate ProcedureCode
|
id-E2connectionUpdate ProcedureCode
|
||||||
|
id-RICsubscriptionDeleteRequired ProcedureCode
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -278,7 +347,6 @@ id-RANfunctionIEcause-Item ProtocolIE-ID
|
||||||
id-RANfunction-Item ProtocolIE-ID
|
id-RANfunction-Item ProtocolIE-ID
|
||||||
id-RANfunctionsAccepted ProtocolIE-ID
|
id-RANfunctionsAccepted ProtocolIE-ID
|
||||||
id-RANfunctionsAdded ProtocolIE-ID
|
id-RANfunctionsAdded ProtocolIE-ID
|
||||||
|
|
||||||
id-RANfunctionsDeleted ProtocolIE-ID
|
id-RANfunctionsDeleted ProtocolIE-ID
|
||||||
id-RANfunctionsModified ProtocolIE-ID
|
id-RANfunctionsModified ProtocolIE-ID
|
||||||
id-RANfunctionsRejected ProtocolIE-ID
|
id-RANfunctionsRejected ProtocolIE-ID
|
||||||
|
@ -289,36 +357,48 @@ id-RICactions-Admitted ProtocolIE-ID
|
||||||
id-RICactions-NotAdmitted ProtocolIE-ID
|
id-RICactions-NotAdmitted ProtocolIE-ID
|
||||||
id-RICaction-ToBeSetup-Item ProtocolIE-ID
|
id-RICaction-ToBeSetup-Item ProtocolIE-ID
|
||||||
id-RICcallProcessID ProtocolIE-ID
|
id-RICcallProcessID ProtocolIE-ID
|
||||||
|
|
||||||
id-RICcontrolAckRequest ProtocolIE-ID
|
id-RICcontrolAckRequest ProtocolIE-ID
|
||||||
id-RICcontrolHeader ProtocolIE-ID
|
id-RICcontrolHeader ProtocolIE-ID
|
||||||
id-RICcontrolMessage ProtocolIE-ID
|
id-RICcontrolMessage ProtocolIE-ID
|
||||||
id-RICcontrolStatus ProtocolIE-ID
|
#id-RICcontrolStatus ProtocolIE-ID
|
||||||
id-RICindicationHeader ProtocolIE-ID
|
id-RICindicationHeader ProtocolIE-ID
|
||||||
id-RICindicationMessage ProtocolIE-ID
|
id-RICindicationMessage ProtocolIE-ID
|
||||||
id-RICindicationSN ProtocolIE-ID
|
id-RICindicationSN ProtocolIE-ID
|
||||||
id-RICindicationType ProtocolIE-ID
|
id-RICindicationType ProtocolIE-ID
|
||||||
id-RICrequestID ProtocolIE-ID
|
id-RICrequestID ProtocolIE-ID
|
||||||
id-RICsubscriptionDetails ProtocolIE-ID
|
id-RICsubscriptionDetails ProtocolIE-ID
|
||||||
|
|
||||||
id-TimeToWait ProtocolIE-ID
|
id-TimeToWait ProtocolIE-ID
|
||||||
id-RICcontrolOutcome 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-E2nodeComponentConfigUpdate ProtocolIE-ID
|
||||||
#id-E2connectionFailed-Item ProtocolIE-ID
|
id-E2nodeComponentConfigUpdate-Item ProtocolIE-ID
|
||||||
#id-E2connectionUpdate-Item ProtocolIE-ID
|
id-E2nodeComponentConfigUpdateAck ProtocolIE-ID
|
||||||
#id-E2connectionUpdateAdd ProtocolIE-ID
|
id-E2nodeComponentConfigUpdateAck-Item ProtocolIE-ID
|
||||||
#id-E2connectionUpdateModify ProtocolIE-ID
|
id-E2connectionSetup ProtocolIE-ID
|
||||||
#id-E2connectionUpdateRemove ProtocolIE-ID
|
id-E2connectionSetupFailed ProtocolIE-ID
|
||||||
#id-E2connectionUpdateRemove-Item ProtocolIE-ID
|
id-E2connectionSetupFailed-Item ProtocolIE-ID
|
||||||
#id-TNLinformation ProtocolIE-ID
|
id-E2connectionFailed-Item ProtocolIE-ID
|
||||||
#id-TransactionID 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
|
#.END
|
||||||
|
|
||||||
|
|
||||||
|
@ -328,7 +408,6 @@ id-RICcontrolOutcome ProtocolIE-ID
|
||||||
|
|
||||||
Cause N e2ap.ies id-Cause
|
Cause N e2ap.ies id-Cause
|
||||||
CriticalityDiagnostics N e2ap.ies id-CriticalityDiagnostics
|
CriticalityDiagnostics N e2ap.ies id-CriticalityDiagnostics
|
||||||
|
|
||||||
GlobalE2node-ID N e2ap.ies id-GlobalE2node-ID
|
GlobalE2node-ID N e2ap.ies id-GlobalE2node-ID
|
||||||
GlobalRIC-ID N e2ap.ies id-GlobalRIC-ID
|
GlobalRIC-ID N e2ap.ies id-GlobalRIC-ID
|
||||||
RANfunctionID N e2ap.ies id-RANfunctionID
|
RANfunctionID N e2ap.ies id-RANfunctionID
|
||||||
|
@ -343,7 +422,7 @@ RANfunctionsIDcause-List N e2ap.ies id-RANfunctionsRejected
|
||||||
RICaction-Admitted-Item N e2ap.ies id-RICaction-Admitted-Item
|
RICaction-Admitted-Item N e2ap.ies id-RICaction-Admitted-Item
|
||||||
RICactionID N e2ap.ies id-RICactionID
|
RICactionID N e2ap.ies id-RICactionID
|
||||||
RICaction-NotAdmitted-Item N e2ap.ies id-RICaction-NotAdmitted-Item
|
RICaction-NotAdmitted-Item N e2ap.ies id-RICaction-NotAdmitted-Item
|
||||||
RICaction-Admitted-List N e2ap.ies id-RICactions-Admitted
|
RICaction-Admitted-List N e2ap.ies id-RICactions-Admitted
|
||||||
RICaction-ToBeSetup-Item N e2ap.ies id-RICaction-ToBeSetup-Item
|
RICaction-ToBeSetup-Item N e2ap.ies id-RICaction-ToBeSetup-Item
|
||||||
RICcallProcessID N e2ap.ies id-RICcallProcessID
|
RICcallProcessID N e2ap.ies id-RICcallProcessID
|
||||||
RICaction-NotAdmitted-List N e2ap.ies id-RICactions-NotAdmitted
|
RICaction-NotAdmitted-List N e2ap.ies id-RICactions-NotAdmitted
|
||||||
|
@ -351,7 +430,7 @@ RICcontrolAckRequest N e2ap.ies id-RICcontrolAckRequest
|
||||||
RICcontrolHeader N e2ap.ies id-RICcontrolHeader
|
RICcontrolHeader N e2ap.ies id-RICcontrolHeader
|
||||||
RICcontrolMessage N e2ap.ies id-RICcontrolMessage
|
RICcontrolMessage N e2ap.ies id-RICcontrolMessage
|
||||||
RICcontrolOutcome N e2ap.ies id-RICcontrolOutcome
|
RICcontrolOutcome N e2ap.ies id-RICcontrolOutcome
|
||||||
RICcontrolStatus N e2ap.ies id-RICcontrolStatus
|
#RICcontrolStatus N e2ap.ies id-RICcontrolStatus
|
||||||
RICindicationHeader N e2ap.ies id-RICindicationHeader
|
RICindicationHeader N e2ap.ies id-RICindicationHeader
|
||||||
RICindicationMessage N e2ap.ies id-RICindicationMessage
|
RICindicationMessage N e2ap.ies id-RICindicationMessage
|
||||||
RICindicationSN N e2ap.ies id-RICindicationSN
|
RICindicationSN N e2ap.ies id-RICindicationSN
|
||||||
|
@ -359,60 +438,50 @@ RICindicationType N e2ap.ies id-RICindicationType
|
||||||
RICrequestID N e2ap.ies id-RICrequestID
|
RICrequestID N e2ap.ies id-RICrequestID
|
||||||
RICsubscriptionDetails N e2ap.ies id-RICsubscriptionDetails
|
RICsubscriptionDetails N e2ap.ies id-RICsubscriptionDetails
|
||||||
TimeToWait N e2ap.ies id-TimeToWait
|
TimeToWait N e2ap.ies id-TimeToWait
|
||||||
#TNLinformation N e2ap.ies id-TNLinformation
|
#RICcontrolOutcome N e2ap.ies id-RICcontrolOutcome
|
||||||
#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
|
||||||
|
|
||||||
|
|
||||||
# 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
|
|
||||||
|
|
||||||
|
|
||||||
#e2ap-PROTOCOL-EXTENSION
|
#e2ap-PROTOCOL-EXTENSION
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#E2AP-ELEMENTARY-PROCEDURE
|
#E2AP-ELEMENTARY-PROCEDURE
|
||||||
|
|
||||||
#E2connectionUpdate N e2ap.proc.imsg id-E2connectionUpdate
|
E2connectionUpdate N e2ap.proc.imsg id-E2connectionUpdate
|
||||||
#E2connectionUpdateAcknowledge N e2ap.proc.sout id-E2connectionUpdate
|
E2connectionUpdateAcknowledge N e2ap.proc.sout id-E2connectionUpdate
|
||||||
#E2connectionUpdateFailure N e2ap.proc.uout id-E2connectionUpdate
|
E2connectionUpdateFailure N e2ap.proc.uout id-E2connectionUpdate
|
||||||
|
|
||||||
#E2nodeConfigurationUpdate N e2ap.proc.imsg id-E2nodeConfigurationUpdate
|
E2nodeConfigurationUpdate N e2ap.proc.imsg id-E2nodeConfigurationUpdate
|
||||||
#E2nodeConfigurationUpdateAcknowledge N e2ap.proc.sout id-E2nodeConfigurationUpdate
|
E2nodeConfigurationUpdateAcknowledge N e2ap.proc.sout id-E2nodeConfigurationUpdate
|
||||||
#E2nodeConfigurationUpdateFailure N e2ap.proc.uout id-E2nodeConfigurationUpdate
|
E2nodeConfigurationUpdateFailure N e2ap.proc.uout id-E2nodeConfigurationUpdate
|
||||||
|
|
||||||
E2setupFailure N e2ap.proc.uout id-E2setup
|
E2setupFailure N e2ap.proc.uout id-E2setup
|
||||||
E2setupRequest N e2ap.proc.imsg 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
|
RICsubscriptionDeleteRequest N e2ap.proc.imsg id-RICsubscriptionDelete
|
||||||
RICsubscriptionDeleteResponse N e2ap.proc.sout 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
|
#.FN_HDR E2setupFailure
|
||||||
|
@ -454,26 +563,28 @@ RICsubscriptionDeleteResponse N e2ap.proc.sout id-RICsubscriptionDele
|
||||||
#.FN_HDR E2setupResponse
|
#.FN_HDR E2setupResponse
|
||||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2setupResponse");
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2setupResponse");
|
||||||
|
|
||||||
|
|
||||||
#.FN_HDR ErrorIndication
|
#.FN_HDR ErrorIndication
|
||||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ErrorIndication");
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ErrorIndication");
|
||||||
|
|
||||||
|
|
||||||
#.FN_HDR ResetRequest
|
#.FN_HDR ResetRequest
|
||||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetRequest");
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetRequest");
|
||||||
|
|
||||||
#.FN_HDR ResetResponse
|
#.FN_HDR ResetResponse
|
||||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetResponse");
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetResponse");
|
||||||
|
|
||||||
|
|
||||||
#.FN_HDR RICcontrolAcknowledge
|
#.FN_HDR RICcontrolAcknowledge
|
||||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICcontrolAcknowledge");
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICcontrolAcknowledge");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#.FN_HDR RICcontrolFailure
|
#.FN_HDR RICcontrolFailure
|
||||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICcontrolFailure");
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICcontrolFailure");
|
||||||
|
|
||||||
#.FN_HDR RICcontrolRequest
|
#.FN_HDR RICcontrolRequest
|
||||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICcontrolRequest");
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICcontrolRequest");
|
||||||
|
|
||||||
|
|
||||||
#.FN_HDR RICindication
|
#.FN_HDR RICindication
|
||||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "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
|
#.FN_HDR RICserviceQuery
|
||||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICserviceQuery");
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICserviceQuery");
|
||||||
|
|
||||||
|
|
||||||
#.FN_HDR RICserviceUpdate
|
#.FN_HDR RICserviceUpdate
|
||||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICserviceUpdate");
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICserviceUpdate");
|
||||||
|
|
||||||
|
|
||||||
#.FN_HDR RICserviceUpdateAcknowledge
|
#.FN_HDR RICserviceUpdateAcknowledge
|
||||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "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
|
#.FN_HDR RICsubscriptionDeleteResponse
|
||||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "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");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
@ -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
|
|
|
@ -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
|
@ -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
|
|
@ -8,7 +8,7 @@
|
||||||
*
|
*
|
||||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
* 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"
|
#include "config.h"
|
||||||
|
@ -45,13 +45,37 @@ static dissector_handle_t e2ap_handle;
|
||||||
static int proto_e2ap = -1;
|
static int proto_e2ap = -1;
|
||||||
#include "packet-e2ap-hf.c"
|
#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 */
|
/* Initialize the subtree pointers */
|
||||||
static gint ett_e2ap = -1;
|
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"
|
#include "packet-e2ap-ett.c"
|
||||||
|
|
||||||
|
|
||||||
enum{
|
/* 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,
|
INITIATING_MESSAGE,
|
||||||
SUCCESSFUL_OUTCOME,
|
SUCCESSFUL_OUTCOME,
|
||||||
UNSUCCESSFUL_OUTCOME
|
UNSUCCESSFUL_OUTCOME
|
||||||
|
@ -72,37 +96,10 @@ struct e2ap_private_data {
|
||||||
guint32 protocol_extension_id;
|
guint32 protocol_extension_id;
|
||||||
guint32 message_type;
|
guint32 message_type;
|
||||||
guint32 ran_ue_e2ap_id;
|
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*
|
static struct e2ap_private_data*
|
||||||
e2ap_get_private_data(packet_info *pinfo)
|
e2ap_get_private_data(packet_info *pinfo)
|
||||||
{
|
{
|
||||||
|
@ -114,6 +111,208 @@ e2ap_get_private_data(packet_info *pinfo)
|
||||||
return e2ap_data;
|
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"
|
#include "packet-e2ap-fn.c"
|
||||||
|
|
||||||
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
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;
|
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
|
/* Currently not used
|
||||||
static int dissect_ProtocolIEFieldPairFirstValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
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_item = proto_tree_add_item(tree, proto_e2ap, tvb, 0, -1, ENC_NA);
|
||||||
e2ap_tree = proto_item_add_subtree(e2ap_item, ett_e2ap);
|
e2ap_tree = proto_item_add_subtree(e2ap_item, ett_e2ap);
|
||||||
|
|
||||||
|
|
||||||
return dissect_E2AP_PDU_PDU(tvb, pinfo, e2ap_tree, NULL);
|
return dissect_E2AP_PDU_PDU(tvb, pinfo, e2ap_tree, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -191,17 +392,12 @@ void
|
||||||
proto_reg_handoff_e2ap(void)
|
proto_reg_handoff_e2ap(void)
|
||||||
{
|
{
|
||||||
dissector_add_uint_with_preference("sctp.port", SCTP_PORT_E2AP, e2ap_handle);
|
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"
|
#include "packet-e2ap-dis-tab.c"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*--- proto_register_e2ap -------------------------------------------*/
|
/*--- proto_register_e2ap -------------------------------------------*/
|
||||||
void proto_register_e2ap(void) {
|
void proto_register_e2ap(void) {
|
||||||
|
|
||||||
|
@ -209,7 +405,18 @@ void proto_register_e2ap(void) {
|
||||||
|
|
||||||
static hf_register_info hf[] = {
|
static hf_register_info hf[] = {
|
||||||
#include "packet-e2ap-hfarr.c"
|
#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 */
|
/* List of subtrees */
|
||||||
|
@ -218,8 +425,12 @@ void proto_register_e2ap(void) {
|
||||||
#include "packet-e2ap-ettarr.c"
|
#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 */
|
/* Register protocol */
|
||||||
proto_e2ap = proto_register_protocol(PNAME, PSNAME, PFNAME);
|
proto_e2ap = proto_register_protocol(PNAME, PSNAME, PFNAME);
|
||||||
|
@ -231,19 +442,19 @@ void proto_register_e2ap(void) {
|
||||||
/* Register dissector */
|
/* Register dissector */
|
||||||
e2ap_handle = register_dissector("e2ap", dissect_e2ap, proto_e2ap);
|
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 */
|
/* Register dissector tables */
|
||||||
e2ap_ies_dissector_table = register_dissector_table("e2ap.ies", "E2AP-PROTOCOL-IES", proto_e2ap, FT_UINT32, BASE_DEC);
|
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_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);
|
e2ap_extension_dissector_table = register_dissector_table("e2ap.extension", "E2AP-PROTOCOL-EXTENSION", proto_e2ap, FT_UINT32, BASE_DEC);
|
||||||
e2ap_proc_imsg_dissector_table = register_dissector_table("e2ap.proc.imsg", "E2AP-ELEMENTARY-PROCEDURE InitiatingMessage", proto_e2ap, FT_UINT32, BASE_DEC);
|
e2ap_proc_imsg_dissector_table = register_dissector_table("e2ap.proc.imsg", "E2AP-ELEMENTARY-PROCEDURE InitiatingMessage", proto_e2ap, FT_UINT32, BASE_DEC);
|
||||||
e2ap_proc_sout_dissector_table = register_dissector_table("e2ap.proc.sout", "E2AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_e2ap, FT_UINT32, BASE_DEC);
|
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_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);
|
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
|
@ -815,7 +815,7 @@ class EthCtx:
|
||||||
|
|
||||||
#--- eth_reg_assign ---------------------------------------------------------
|
#--- eth_reg_assign ---------------------------------------------------------
|
||||||
def eth_reg_assign(self, ident, val, virt=False):
|
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:
|
if ident in self.assign:
|
||||||
raise DuplicateError("assignment", ident)
|
raise DuplicateError("assignment", ident)
|
||||||
self.assign[ident] = { 'val' : val , 'virt' : virt }
|
self.assign[ident] = { 'val' : val , 'virt' : virt }
|
||||||
|
@ -935,13 +935,14 @@ class EthCtx:
|
||||||
|
|
||||||
#--- eth_reg_type -----------------------------------------------------------
|
#--- eth_reg_type -----------------------------------------------------------
|
||||||
def eth_reg_type(self, ident, val, mod=None):
|
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 ident in self.type:
|
||||||
if self.type[ident]['import'] and (self.type[ident]['import'] == self.Module()) :
|
if self.type[ident]['import'] and (self.type[ident]['import'] == self.Module()) :
|
||||||
# replace imported type
|
# replace imported type
|
||||||
del self.type[ident]
|
del self.type[ident]
|
||||||
self.type_imp.remove(ident)
|
self.type_imp.remove(ident)
|
||||||
else:
|
else:
|
||||||
|
#print('DuplicateError: import=', self.type[ident]['import'], 'module=', self.Module())
|
||||||
raise DuplicateError("type", ident)
|
raise DuplicateError("type", ident)
|
||||||
val.ident = ident
|
val.ident = ident
|
||||||
self.type[ident] = { 'val' : val, 'import' : None }
|
self.type[ident] = { 'val' : val, 'import' : None }
|
||||||
|
|
Loading…
Reference in New Issue