E2AP 2.01
This commit is contained in:
parent
c8cf2f544c
commit
d46e7f90f2
|
@ -25,7 +25,9 @@ set( ASN_FILE_LIST
|
|||
E2AP-IEs.asn
|
||||
E2AP-PDU-Contents.asn
|
||||
E2AP-PDU-Descriptions.asn
|
||||
e2sm-kpm-v1.asn
|
||||
e2sm-v2.01.asn
|
||||
e2sm-ric-v1.02.asn
|
||||
e2sm-kpm-v2.02.asn
|
||||
)
|
||||
|
||||
set( EXTRA_DIST
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
-- **************************************************************
|
||||
--
|
||||
-- Common definitions
|
||||
-- Derived from 3GPP 38.413 v15.4.0
|
||||
-- Derived from 3GPP 38.413 (NGAP)
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
E2AP-CommonDataTypes {
|
||||
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version1 (1) e2ap(1) e2ap-CommonDataTypes (3) }
|
||||
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version2 (2) e2ap(1) e2ap-CommonDataTypes (3) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
-- **************************************************************
|
||||
|
||||
E2AP-Constants {
|
||||
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version1 (1) e2ap(1) e2ap-Constants (4) }
|
||||
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version2 (2) e2ap(1) e2ap-Constants (4) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
|
@ -31,6 +31,10 @@ id-RICserviceQuery ProcedureCode ::= 6
|
|||
id-RICserviceUpdate ProcedureCode ::= 7
|
||||
id-RICsubscription ProcedureCode ::= 8
|
||||
id-RICsubscriptionDelete ProcedureCode ::= 9
|
||||
id-E2nodeConfigurationUpdate ProcedureCode ::= 10
|
||||
id-E2connectionUpdate ProcedureCode ::= 11
|
||||
id-RICsubscriptionDeleteRequired ProcedureCode ::= 12
|
||||
id-E2removal ProcedureCode ::= 13
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
|
@ -47,8 +51,12 @@ maxProtocolIEs INTEGER ::= 65535
|
|||
--
|
||||
-- **************************************************************
|
||||
maxnoofErrors INTEGER ::= 256
|
||||
maxofE2nodeComponents INTEGER ::= 1024
|
||||
maxofRANfunctionID INTEGER ::= 256
|
||||
maxofRICactionID INTEGER ::= 16
|
||||
maxofTNLA INTEGER ::= 32
|
||||
maxofRICrequestID INTEGER ::= 4294967295
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
|
@ -87,7 +95,33 @@ id-RICrequestID ProtocolIE-ID ::= 29
|
|||
id-RICsubscriptionDetails ProtocolIE-ID ::= 30
|
||||
id-TimeToWait ProtocolIE-ID ::= 31
|
||||
id-RICcontrolOutcome ProtocolIE-ID ::= 32
|
||||
|
||||
id-E2nodeComponentConfigUpdate ProtocolIE-ID ::= 33
|
||||
id-E2nodeComponentConfigUpdate-Item ProtocolIE-ID ::= 34
|
||||
id-E2nodeComponentConfigUpdateAck ProtocolIE-ID ::= 35
|
||||
id-E2nodeComponentConfigUpdateAck-Item ProtocolIE-ID ::= 36
|
||||
id-E2connectionSetup ProtocolIE-ID ::= 39
|
||||
id-E2connectionSetupFailed ProtocolIE-ID ::= 40
|
||||
id-E2connectionSetupFailed-Item ProtocolIE-ID ::= 41
|
||||
id-E2connectionFailed-Item ProtocolIE-ID ::= 42
|
||||
id-E2connectionUpdate-Item ProtocolIE-ID ::= 43
|
||||
id-E2connectionUpdateAdd ProtocolIE-ID ::= 44
|
||||
id-E2connectionUpdateModify ProtocolIE-ID ::= 45
|
||||
id-E2connectionUpdateRemove ProtocolIE-ID ::= 46
|
||||
id-E2connectionUpdateRemove-Item ProtocolIE-ID ::= 47
|
||||
id-TNLinformation ProtocolIE-ID ::= 48
|
||||
id-TransactionID ProtocolIE-ID ::= 49
|
||||
id-E2nodeComponentConfigAddition ProtocolIE-ID ::= 50
|
||||
id-E2nodeComponentConfigAddition-Item ProtocolIE-ID ::= 51
|
||||
id-E2nodeComponentConfigAdditionAck ProtocolIE-ID ::= 52
|
||||
id-E2nodeComponentConfigAdditionAck-Item ProtocolIE-ID ::= 53
|
||||
id-E2nodeComponentConfigRemoval ProtocolIE-ID ::= 54
|
||||
id-E2nodeComponentConfigRemoval-Item ProtocolIE-ID ::= 55
|
||||
id-E2nodeComponentConfigRemovalAck ProtocolIE-ID ::= 56
|
||||
id-E2nodeComponentConfigRemovalAck-Item ProtocolIE-ID ::= 57
|
||||
id-E2nodeTNLassociationRemoval ProtocolIE-ID ::= 58
|
||||
id-E2nodeTNLassociationRemoval-Item ProtocolIE-ID ::= 59
|
||||
id-RICsubscriptionToBeRemoved ProtocolIE-ID ::= 60
|
||||
id-RICsubscription-withCause-Item ProtocolIE-ID ::= 61
|
||||
|
||||
END
|
||||
-- ASN1STOP
|
||||
|
|
|
@ -3,11 +3,11 @@
|
|||
--
|
||||
-- Container definitions
|
||||
--
|
||||
-- derived from 3GPP 38.413 v15.4.0
|
||||
-- derived from 3GPP 38.413 (NGAP)
|
||||
-- **************************************************************
|
||||
|
||||
E2AP-Containers {
|
||||
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version1 (1) e2ap(1) e2ap-Containers (5) }
|
||||
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version2 (2) e2ap(1) e2ap-Containers (5) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
|
@ -23,8 +23,6 @@ IMPORTS
|
|||
|
||||
Criticality,
|
||||
Presence,
|
||||
PrivateIE-ID,
|
||||
ProtocolExtensionID,
|
||||
ProtocolIE-ID
|
||||
FROM E2AP-CommonDataTypes
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
-- **************************************************************
|
||||
|
||||
E2AP-IEs {
|
||||
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version1 (1) e2ap(1) e2ap-IEs (2)}
|
||||
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version2 (2) e2ap(1) e2ap-IEs (2)}
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
|
@ -25,17 +25,29 @@ maxProtocolIEs
|
|||
FROM E2AP-Constants;
|
||||
|
||||
-- A
|
||||
|
||||
-- **************************************************************
|
||||
-- [New for E2AP v02.00] copied from 3GPP 38.413 (NGAP) IEs
|
||||
-- **************************************************************
|
||||
AMFName ::= PrintableString (SIZE(1..150, ...))
|
||||
|
||||
-- B
|
||||
-- C
|
||||
Cause ::= CHOICE {
|
||||
ricRequest CauseRIC,
|
||||
ricRequest CauseRICrequest,
|
||||
ricService CauseRICservice,
|
||||
e2Node CauseE2node,
|
||||
transport CauseTransport,
|
||||
protocol CauseProtocol,
|
||||
misc CauseMisc,
|
||||
...
|
||||
}
|
||||
|
||||
CauseE2node ::= ENUMERATED {
|
||||
e2node-component-unknown,
|
||||
...
|
||||
}
|
||||
|
||||
CauseMisc ::= ENUMERATED {
|
||||
control-processing-overload,
|
||||
hardware-failure,
|
||||
|
@ -43,6 +55,7 @@ om-intervention,
|
|||
unspecified,
|
||||
...
|
||||
}
|
||||
|
||||
CauseProtocol ::= ENUMERATED {
|
||||
transfer-syntax-error,
|
||||
abstract-syntax-error-reject,
|
||||
|
@ -54,23 +67,26 @@ unspecified,
|
|||
...
|
||||
}
|
||||
|
||||
CauseRIC ::= ENUMERATED {
|
||||
ran-function-id-Invalid,
|
||||
CauseRICrequest ::= ENUMERATED {
|
||||
ran-function-id-invalid,
|
||||
action-not-supported,
|
||||
excessive-actions,
|
||||
duplicate-action,
|
||||
duplicate-event,
|
||||
duplicate-event-trigger,
|
||||
function-resource-limit,
|
||||
request-id-unknown,
|
||||
inconsistent-action-subsequent-action-sequence,
|
||||
control-message-invalid,
|
||||
call-process-id-invalid,
|
||||
ric-call-process-id-invalid,
|
||||
control-timer-expired,
|
||||
control-failed-to-execute,
|
||||
system-not-ready,
|
||||
unspecified,
|
||||
...
|
||||
}
|
||||
|
||||
CauseRICservice ::= ENUMERATED{
|
||||
function-not-required,
|
||||
ran-function-not-supported,
|
||||
excessive-functions,
|
||||
ric-resource-limit,
|
||||
...
|
||||
|
@ -82,7 +98,7 @@ transport-resource-unavailable,
|
|||
}
|
||||
|
||||
-- **************************************************************
|
||||
-- copied from 3GPP 38.413 NGAP IEs v15.5.0
|
||||
-- copied from 3GPP 38.413 (NGAP) IEs
|
||||
-- note: ie-Extensions removed
|
||||
-- **************************************************************
|
||||
CriticalityDiagnostics ::= SEQUENCE {
|
||||
|
@ -106,8 +122,70 @@ typeOfError TypeOfError,
|
|||
-- D
|
||||
-- E
|
||||
|
||||
-- Following IE used to carry 3GPP defined SETUP and RAN Configuration messages defined in F1AP, E1AP, XnAP, etc.
|
||||
E2nodeComponentConfiguration ::= SEQUENCE{
|
||||
e2nodeComponentRequestPart OCTET STRING,
|
||||
e2nodeComponentResponsePart OCTET STRING,
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeComponentConfigurationAck ::= SEQUENCE{
|
||||
updateOutcome ENUMERATED {success, failure, ...},
|
||||
failureCause Cause OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeComponentInterfaceType ::= ENUMERATED {ng, xn, e1, f1, w1, s1, x2,...}
|
||||
|
||||
E2nodeComponentID ::= CHOICE{
|
||||
e2nodeComponentInterfaceTypeNG E2nodeComponentInterfaceNG,
|
||||
e2nodeComponentInterfaceTypeXn E2nodeComponentInterfaceXn,
|
||||
e2nodeComponentInterfaceTypeE1 E2nodeComponentInterfaceE1,
|
||||
e2nodeComponentInterfaceTypeF1 E2nodeComponentInterfaceF1,
|
||||
e2nodeComponentInterfaceTypeW1 E2nodeComponentInterfaceW1,
|
||||
e2nodeComponentInterfaceTypeS1 E2nodeComponentInterfaceS1,
|
||||
e2nodeComponentInterfaceTypeX2 E2nodeComponentInterfaceX2,
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeComponentInterfaceE1 ::= SEQUENCE{
|
||||
gNB-CU-CP-ID GNB-CU-UP-ID,
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeComponentInterfaceF1 ::= SEQUENCE{
|
||||
gNB-DU-ID GNB-DU-ID,
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeComponentInterfaceNG ::= SEQUENCE{
|
||||
amf-name AMFName,
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeComponentInterfaceS1 ::= SEQUENCE{
|
||||
mme-name MMEname,
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeComponentInterfaceX2 ::= SEQUENCE{
|
||||
global-eNB-ID GlobalENB-ID OPTIONAL,
|
||||
global-en-gNB-ID GlobalenGNB-ID OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeComponentInterfaceXn ::= SEQUENCE{
|
||||
global-NG-RAN-Node-ID GlobalNG-RANNode-ID,
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeComponentInterfaceW1 ::= SEQUENCE{
|
||||
ng-eNB-DU-ID NGENB-DU-ID,
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
-- copied from 3GPP X2AP IEs v15.4.0
|
||||
-- copied from 3GPP 36.423 (X2AP) IEs
|
||||
-- note: ie-Extensions removed
|
||||
-- **************************************************************
|
||||
ENB-ID ::= CHOICE {
|
||||
|
@ -118,7 +196,7 @@ short-Macro-eNB-ID BIT STRING (SIZE(18)),
|
|||
long-Macro-eNB-ID BIT STRING (SIZE(21))
|
||||
}
|
||||
-- **************************************************************
|
||||
-- copied from 3GPP 38.423 v15.5.0 XnAP IEs
|
||||
-- copied from 3GPP 38.423 (XnAP) IEs
|
||||
-- **************************************************************
|
||||
ENB-ID-Choice ::= CHOICE {
|
||||
enb-ID-macro BIT STRING (SIZE(20)),
|
||||
|
@ -128,7 +206,7 @@ enb-ID-longmacro BIT STRING (SIZE(21)),
|
|||
}
|
||||
|
||||
-- **************************************************************
|
||||
-- copied from 3GPP X2AP IEs v15.4.0
|
||||
-- copied from 3GPP 36.423 (X2AP) IEs
|
||||
-- note: ie-Extensions removed
|
||||
-- Note: to avoid duplicate names with XnAP, GNB-ID renamed ENGNB-ID, GlobalGNB-ID renamed GlobalenGNB-ID
|
||||
-- **************************************************************
|
||||
|
@ -148,7 +226,9 @@ eNB GlobalE2node-eNB-ID,
|
|||
}
|
||||
|
||||
GlobalE2node-en-gNB-ID ::= SEQUENCE{
|
||||
global-gNB-ID GlobalenGNB-ID,
|
||||
global-en-gNB-ID GlobalenGNB-ID,
|
||||
en-gNB-CU-UP-ID GNB-CU-UP-ID OPTIONAL,
|
||||
en-gNB-DU-ID GNB-DU-ID OPTIONAL,
|
||||
...
|
||||
}
|
||||
GlobalE2node-eNB-ID ::= SEQUENCE{
|
||||
|
@ -157,16 +237,19 @@ global-eNB-ID GlobalENB-ID,
|
|||
}
|
||||
GlobalE2node-gNB-ID ::= SEQUENCE{
|
||||
global-gNB-ID GlobalgNB-ID,
|
||||
global-en-gNB-ID GlobalenGNB-ID OPTIONAL,
|
||||
gNB-CU-UP-ID GNB-CU-UP-ID OPTIONAL,
|
||||
gNB-DU-ID GNB-DU-ID OPTIONAL,
|
||||
...
|
||||
}
|
||||
GlobalE2node-ng-eNB-ID ::= SEQUENCE{
|
||||
global-ng-eNB-ID GlobalngeNB-ID,
|
||||
global-eNB-ID GlobalENB-ID OPTIONAL,
|
||||
ngENB-DU-ID NGENB-DU-ID OPTIONAL,
|
||||
...
|
||||
}
|
||||
-- **************************************************************
|
||||
-- copied from 3GPP X2AP IEs v15.4.0
|
||||
-- copied from 3GPP 36.423 (X2AP) IEs
|
||||
-- note: ie-Extensions removed
|
||||
-- **************************************************************
|
||||
|
||||
|
@ -176,7 +259,7 @@ eNB-ID ENB-ID,
|
|||
...
|
||||
}
|
||||
-- **************************************************************
|
||||
-- copied from 3GPP X2AP IEs v15.4.0
|
||||
-- copied from 3GPP 36.423 (X2AP) IEs
|
||||
-- Note: to avoid duplicate names with XnAP, GNB-ID renamed ENGNB-ID, GlobalGNB-ID renamed GlobalenGNB-ID
|
||||
-- **************************************************************
|
||||
GlobalenGNB-ID ::= SEQUENCE {
|
||||
|
@ -185,7 +268,7 @@ gNB-ID ENGNB-ID,
|
|||
...
|
||||
}
|
||||
-- **************************************************************
|
||||
-- copied from 3GPP 38.423 v15.5.0 XnAP IEs
|
||||
-- copied from 3GPP 38.423 (XnAP) IEs
|
||||
-- **************************************************************
|
||||
GlobalgNB-ID ::= SEQUENCE {
|
||||
plmn-id PLMN-Identity,
|
||||
|
@ -195,7 +278,7 @@ gnb-id GNB-ID-Choice,
|
|||
|
||||
|
||||
-- **************************************************************
|
||||
-- copied from 3GPP 38.423 v15.5.0 XnAP IEs
|
||||
-- copied from 3GPP 38.423 (XnAP) IEs
|
||||
-- **************************************************************
|
||||
GlobalngeNB-ID ::= SEQUENCE {
|
||||
plmn-id PLMN-Identity,
|
||||
|
@ -203,6 +286,17 @@ enb-id ENB-ID-Choice,
|
|||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
-- [NEW for E2AP v02.00] copied from 3GPP 38.423 (XnAP) IEs
|
||||
-- Note: extension field removed
|
||||
-- **************************************************************
|
||||
|
||||
GlobalNG-RANNode-ID ::= CHOICE {
|
||||
gNB GlobalgNB-ID,
|
||||
ng-eNB GlobalngeNB-ID,
|
||||
...
|
||||
}
|
||||
|
||||
GlobalRIC-ID ::= SEQUENCE{
|
||||
pLMN-Identity PLMN-Identity,
|
||||
ric-ID BIT STRING (SIZE (20)),
|
||||
|
@ -210,13 +304,13 @@ ric-ID BIT STRING (SIZE (20)),
|
|||
}
|
||||
|
||||
-- **************************************************************
|
||||
-- copied from 3GPP 38.463 v15.5.0 E1AP IEs
|
||||
-- copied from 3GPP 38.463 (E1AP) IEs
|
||||
-- **************************************************************
|
||||
GNB-CU-UP-ID::= INTEGER (0..68719476735)
|
||||
GNB-DU-ID::= INTEGER (0..68719476735)
|
||||
|
||||
-- **************************************************************
|
||||
-- copied from 3GPP 38.423 v15.5.0 XnAP IEs
|
||||
-- copied from 3GPP 38.423 (XnAP) IEs
|
||||
-- **************************************************************
|
||||
GNB-ID-Choice ::= CHOICE {
|
||||
gnb-ID BIT STRING (SIZE(22..32)),
|
||||
|
@ -228,11 +322,24 @@ gnb-ID BIT STRING (SIZE(22..32)),
|
|||
-- K
|
||||
-- L
|
||||
-- M
|
||||
|
||||
-- **************************************************************
|
||||
-- [New for E2AP v02.00] copied from 3GPP 36.413 (S1AP) IEs
|
||||
-- **************************************************************
|
||||
MMEname ::= PrintableString (SIZE (1..150,...))
|
||||
|
||||
-- N
|
||||
|
||||
-- **************************************************************
|
||||
-- copied from 3GPP 37.473 (W1AP) IEs
|
||||
-- **************************************************************
|
||||
NGENB-DU-ID ::= INTEGER (0..68719476735)
|
||||
|
||||
|
||||
-- O
|
||||
-- P
|
||||
-- **************************************************************
|
||||
-- copied from 3GPP X2AP IEs v15.4.0
|
||||
-- copied from 3GPP 36.423 (X2AP) IEs
|
||||
-- **************************************************************
|
||||
PLMN-Identity ::= OCTET STRING (SIZE(3))
|
||||
|
||||
|
@ -245,6 +352,8 @@ RANfunctionDefinition ::= OCTET STRING
|
|||
|
||||
RANfunctionID ::= INTEGER (0..4095)
|
||||
|
||||
RANfunctionOID ::= PrintableString(SIZE(1..1000,...))
|
||||
|
||||
RANfunctionRevision ::= INTEGER (0..4095)
|
||||
|
||||
-- **************************************************************
|
||||
|
@ -269,7 +378,6 @@ RICcallProcessID ::= OCTET STRING
|
|||
RICcontrolAckRequest ::= ENUMERATED{
|
||||
noAck,
|
||||
ack,
|
||||
nAck,
|
||||
...
|
||||
}
|
||||
|
||||
|
@ -288,13 +396,6 @@ RICcontrolMessage ::= OCTET STRING
|
|||
-- **************************************************************
|
||||
RICcontrolOutcome ::= OCTET STRING
|
||||
|
||||
RICcontrolStatus ::= ENUMERATED{
|
||||
success,
|
||||
rejected,
|
||||
failed,
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
-- Following IE defined in E2SM
|
||||
-- **************************************************************
|
||||
|
@ -337,7 +438,6 @@ wait,
|
|||
}
|
||||
|
||||
RICtimeToWait ::= ENUMERATED{
|
||||
zero,
|
||||
w1ms,
|
||||
w2ms,
|
||||
w5ms,
|
||||
|
@ -360,12 +460,23 @@ w60s,
|
|||
-- S
|
||||
-- T
|
||||
-- **************************************************************
|
||||
-- copied from 3GPP 38.413 NGAP IEs v15.5.0
|
||||
-- copied from 3GPP 38.413 (NGAP) IEs
|
||||
-- **************************************************************
|
||||
TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...}
|
||||
|
||||
|
||||
TNLinformation ::= SEQUENCE{
|
||||
tnlAddress BIT STRING (SIZE(1..160,...)),
|
||||
tnlPort BIT STRING (SIZE(16)) OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
TNLusage ::= ENUMERATED{ric-service, support-function, both, ...}
|
||||
|
||||
TransactionID ::= INTEGER (0..255,...)
|
||||
|
||||
-- **************************************************************
|
||||
-- copied from 3GPP 38.413 NGAP IEs v15.5.0
|
||||
-- copied from 3GPP 38.413 (NGAP) IEs
|
||||
-- **************************************************************
|
||||
TypeOfError ::= ENUMERATED {
|
||||
not-understood,
|
||||
|
|
|
@ -2,12 +2,12 @@
|
|||
-- **************************************************************
|
||||
--
|
||||
-- PDU definitions for E2AP
|
||||
-- Derived from 3GPP 38.413 v15.4.0 NGAP
|
||||
-- Derived from 3GPP 38.413 (NGAP)
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
E2AP-PDU-Contents {
|
||||
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version1 (1) e2ap(1) e2ap-PDU-Contents (1) }
|
||||
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version2 (2) e2ap(1) e2ap-PDU-Contents (1) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
|
@ -22,10 +22,15 @@ BEGIN
|
|||
IMPORTS
|
||||
Cause,
|
||||
CriticalityDiagnostics,
|
||||
E2nodeComponentConfiguration,
|
||||
E2nodeComponentConfigurationAck,
|
||||
E2nodeComponentID,
|
||||
E2nodeComponentInterfaceType,
|
||||
GlobalE2node-ID,
|
||||
GlobalRIC-ID,
|
||||
RANfunctionDefinition,
|
||||
RANfunctionID,
|
||||
RANfunctionOID,
|
||||
RANfunctionRevision,
|
||||
RICactionDefinition,
|
||||
RICactionID,
|
||||
|
@ -35,7 +40,6 @@ RICcontrolAckRequest,
|
|||
RICcontrolHeader,
|
||||
RICcontrolMessage,
|
||||
RICcontrolOutcome,
|
||||
RICcontrolStatus,
|
||||
RICeventTriggerDefinition,
|
||||
RICindicationHeader,
|
||||
RICindicationMessage,
|
||||
|
@ -43,7 +47,10 @@ RICindicationSN,
|
|||
RICindicationType,
|
||||
RICrequestID,
|
||||
RICsubsequentAction,
|
||||
TimeToWait
|
||||
TimeToWait,
|
||||
TNLinformation,
|
||||
TNLusage,
|
||||
TransactionID
|
||||
FROM E2AP-IEs
|
||||
|
||||
ProtocolIE-Container{},
|
||||
|
@ -55,6 +62,29 @@ FROM E2AP-Containers
|
|||
|
||||
id-Cause,
|
||||
id-CriticalityDiagnostics,
|
||||
id-E2connectionSetup,
|
||||
id-E2connectionSetupFailed,
|
||||
id-E2connectionSetupFailed-Item,
|
||||
id-E2connectionFailed-Item,
|
||||
id-E2connectionUpdate-Item,
|
||||
id-E2connectionUpdateAdd,
|
||||
id-E2connectionUpdateModify,
|
||||
id-E2connectionUpdateRemove,
|
||||
id-E2connectionUpdateRemove-Item,
|
||||
id-E2nodeComponentConfigAddition,
|
||||
id-E2nodeComponentConfigAddition-Item,
|
||||
id-E2nodeComponentConfigAdditionAck,
|
||||
id-E2nodeComponentConfigAdditionAck-Item,
|
||||
id-E2nodeComponentConfigRemoval,
|
||||
id-E2nodeComponentConfigRemoval-Item,
|
||||
id-E2nodeComponentConfigRemovalAck,
|
||||
id-E2nodeComponentConfigRemovalAck-Item,
|
||||
id-E2nodeComponentConfigUpdate,
|
||||
id-E2nodeComponentConfigUpdate-Item,
|
||||
id-E2nodeComponentConfigUpdateAck,
|
||||
id-E2nodeComponentConfigUpdateAck-Item,
|
||||
id-E2nodeTNLassociationRemoval,
|
||||
id-E2nodeTNLassociationRemoval-Item,
|
||||
id-GlobalE2node-ID,
|
||||
id-GlobalRIC-ID,
|
||||
id-RANfunctionID,
|
||||
|
@ -77,7 +107,6 @@ id-RICcontrolAckRequest,
|
|||
id-RICcontrolHeader,
|
||||
id-RICcontrolMessage,
|
||||
id-RICcontrolOutcome,
|
||||
id-RICcontrolStatus,
|
||||
id-RICindicationHeader,
|
||||
id-RICindicationMessage,
|
||||
id-RICindicationSN,
|
||||
|
@ -85,12 +114,20 @@ id-RICindicationType,
|
|||
id-RICrequestID,
|
||||
id-RICserviceQuery,
|
||||
id-RICsubscriptionDetails,
|
||||
id-RICsubscriptionToBeRemoved,
|
||||
id-RICsubscription-withCause-Item,
|
||||
id-TimeToWait,
|
||||
id-TNLinformation,
|
||||
id-TransactionID,
|
||||
|
||||
maxofE2nodeComponents,
|
||||
maxofRANfunctionID,
|
||||
maxofRICactionID
|
||||
maxofRICactionID,
|
||||
maxofRICrequestID,
|
||||
maxofTNLA
|
||||
FROM E2AP-Constants;
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- MESSAGES FOR NEAR-RT RIC FUNCTIONAL PROCEDURES
|
||||
|
@ -199,7 +236,7 @@ protocolIEs ProtocolIE-Container {{RICsubscriptionFailure-IEs}},
|
|||
RICsubscriptionFailure-IEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory }|
|
||||
{ ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory }|
|
||||
{ ID id-RICactions-NotAdmitted CRITICALITY reject TYPE RICaction-NotAdmitted-List PRESENCE mandatory }|
|
||||
{ ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory }|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
@ -258,6 +295,41 @@ RICsubscriptionDeleteFailure-IEs E2AP-PROTOCOL-IES ::= {
|
|||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- RIC Subscription Delete Required Elementary Procedure
|
||||
--
|
||||
-- **************************************************************
|
||||
-- **************************************************************
|
||||
--
|
||||
-- RIC SUBSCRIPTION DELETE REQUIRED
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
RICsubscriptionDeleteRequired ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{RICsubscriptionDeleteRequired-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
RICsubscriptionDeleteRequired-IEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-RICsubscriptionToBeRemoved CRITICALITY ignore TYPE RICsubscription-List-withCause PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
RICsubscription-List-withCause ::= SEQUENCE (SIZE(1..maxofRICrequestID)) OF ProtocolIE-SingleContainer { {RICsubscription-withCause-ItemIEs} }
|
||||
|
||||
RICsubscription-withCause-ItemIEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-RICsubscription-withCause-Item CRITICALITY ignore TYPE RICsubscription-withCause-Item PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
RICsubscription-withCause-Item ::= SEQUENCE {
|
||||
ricRequestID RICrequestID,
|
||||
ranFunctionID RANfunctionID,
|
||||
cause Cause,
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- RIC Indication Elementary Procedure
|
||||
|
@ -323,7 +395,6 @@ RICcontrolAcknowledge-IEs E2AP-PROTOCOL-IES ::= {
|
|||
{ ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory }|
|
||||
{ ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory }|
|
||||
{ ID id-RICcallProcessID CRITICALITY reject TYPE RICcallProcessID PRESENCE optional }|
|
||||
{ ID id-RICcontrolStatus CRITICALITY reject TYPE RICcontrolStatus PRESENCE mandatory } |
|
||||
{ ID id-RICcontrolOutcome CRITICALITY reject TYPE RICcontrolOutcome PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
@ -368,6 +439,7 @@ protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}},
|
|||
}
|
||||
|
||||
ErrorIndication-IEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE optional }|
|
||||
{ ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE optional }|
|
||||
{ ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE optional }|
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional }|
|
||||
|
@ -392,8 +464,10 @@ protocolIEs ProtocolIE-Container { {E2setupRequestIEs} },
|
|||
}
|
||||
|
||||
E2setupRequestIEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
|
||||
{ ID id-GlobalE2node-ID CRITICALITY reject TYPE GlobalE2node-ID PRESENCE mandatory }|
|
||||
{ ID id-RANfunctionsAdded CRITICALITY reject TYPE RANfunctions-List PRESENCE optional },
|
||||
{ ID id-RANfunctionsAdded CRITICALITY reject TYPE RANfunctions-List PRESENCE mandatory }|
|
||||
{ ID id-E2nodeComponentConfigAddition CRITICALITY reject TYPE E2nodeComponentConfigAddition-List PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
|
@ -409,9 +483,11 @@ protocolIEs ProtocolIE-Container { {E2setupResponseIEs} },
|
|||
}
|
||||
|
||||
E2setupResponseIEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
|
||||
{ ID id-GlobalRIC-ID CRITICALITY reject TYPE GlobalRIC-ID PRESENCE mandatory }|
|
||||
{ ID id-RANfunctionsAccepted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional }|
|
||||
{ ID id-RANfunctionsRejected CRITICALITY reject TYPE RANfunctionsIDcause-List PRESENCE optional },
|
||||
{ ID id-RANfunctionsRejected CRITICALITY reject TYPE RANfunctionsIDcause-List PRESENCE optional }|
|
||||
{ ID id-E2nodeComponentConfigAdditionAck CRITICALITY reject TYPE E2nodeComponentConfigAdditionAck-List PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
|
@ -427,6 +503,263 @@ protocolIEs ProtocolIE-Container { {E2setupFailureIEs} },
|
|||
}
|
||||
|
||||
E2setupFailureIEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
|
||||
{ ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional }|
|
||||
{ ID id-TNLinformation CRITICALITY ignore TYPE TNLinformation PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- E2 Connection Update Elementary Procedure
|
||||
--
|
||||
-- **************************************************************
|
||||
-- **************************************************************
|
||||
--
|
||||
-- E2 CONNECTION UPDATE
|
||||
--
|
||||
-- **************************************************************
|
||||
E2connectionUpdate ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{E2connectionUpdate-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
E2connectionUpdate-IEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
|
||||
{ ID id-E2connectionUpdateAdd CRITICALITY reject TYPE E2connectionUpdate-List PRESENCE optional }|
|
||||
{ ID id-E2connectionUpdateRemove CRITICALITY reject TYPE E2connectionUpdateRemove-List PRESENCE optional }|
|
||||
{ ID id-E2connectionUpdateModify CRITICALITY reject TYPE E2connectionUpdate-List PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
E2connectionUpdate-List ::= SEQUENCE (SIZE(1..maxofTNLA)) OF ProtocolIE-SingleContainer { {E2connectionUpdate-ItemIEs} }
|
||||
|
||||
E2connectionUpdate-ItemIEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-E2connectionUpdate-Item CRITICALITY ignore TYPE E2connectionUpdate-Item PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
E2connectionUpdate-Item ::= SEQUENCE {
|
||||
tnlInformation TNLinformation,
|
||||
tnlUsage TNLusage,
|
||||
...
|
||||
}
|
||||
|
||||
E2connectionUpdateRemove-List ::= SEQUENCE (SIZE(1..maxofTNLA)) OF ProtocolIE-SingleContainer { {E2connectionUpdateRemove-ItemIEs} }
|
||||
|
||||
E2connectionUpdateRemove-ItemIEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-E2connectionUpdateRemove-Item CRITICALITY ignore TYPE E2connectionUpdateRemove-Item PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
E2connectionUpdateRemove-Item ::= SEQUENCE {
|
||||
tnlInformation TNLinformation,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- E2 CONNECTION UPDATE ACKNOWLEDGE
|
||||
--
|
||||
-- **************************************************************
|
||||
E2connectionUpdateAcknowledge ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{E2connectionUpdateAck-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
E2connectionUpdateAck-IEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
|
||||
{ ID id-E2connectionSetup CRITICALITY reject TYPE E2connectionUpdate-List PRESENCE optional }|
|
||||
{ ID id-E2connectionSetupFailed CRITICALITY reject TYPE E2connectionSetupFailed-List PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
E2connectionSetupFailed-List ::= SEQUENCE (SIZE(1..maxofTNLA)) OF ProtocolIE-SingleContainer { {E2connectionSetupFailed-ItemIEs} }
|
||||
|
||||
E2connectionSetupFailed-ItemIEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-E2connectionSetupFailed-Item CRITICALITY ignore TYPE E2connectionSetupFailed-Item PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
E2connectionSetupFailed-Item ::= SEQUENCE {
|
||||
tnlInformation TNLinformation,
|
||||
cause Cause,
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- E2 CONNECTION UPDATE FAILURE
|
||||
--
|
||||
-- **************************************************************
|
||||
E2connectionUpdateFailure ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{E2connectionUpdateFailure-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
E2connectionUpdateFailure-IEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
|
||||
{ ID id-Cause CRITICALITY reject TYPE Cause PRESENCE optional }|
|
||||
{ ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- E2 Node Configuration Update Elementary Procedure
|
||||
--
|
||||
-- **************************************************************
|
||||
-- **************************************************************
|
||||
--
|
||||
-- E2 NODE CONFIGURATION UPDATE
|
||||
--
|
||||
-- **************************************************************
|
||||
E2nodeConfigurationUpdate ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{E2nodeConfigurationUpdate-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeConfigurationUpdate-IEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
|
||||
{ ID id-GlobalE2node-ID CRITICALITY reject TYPE GlobalE2node-ID PRESENCE optional }|
|
||||
{ ID id-E2nodeComponentConfigAddition CRITICALITY reject TYPE E2nodeComponentConfigAddition-List PRESENCE optional }|
|
||||
{ ID id-E2nodeComponentConfigUpdate CRITICALITY reject TYPE E2nodeComponentConfigUpdate-List PRESENCE optional }|
|
||||
{ ID id-E2nodeComponentConfigRemoval CRITICALITY reject TYPE E2nodeComponentConfigRemoval-List PRESENCE optional }|
|
||||
{ ID id-E2nodeTNLassociationRemoval CRITICALITY reject TYPE E2nodeTNLassociationRemoval-List PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeComponentConfigAddition-List ::= SEQUENCE (SIZE(1..maxofE2nodeComponents)) OF ProtocolIE-SingleContainer { {E2nodeComponentConfigAddition-ItemIEs} }
|
||||
|
||||
E2nodeComponentConfigAddition-ItemIEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-E2nodeComponentConfigAddition-Item CRITICALITY reject TYPE E2nodeComponentConfigAddition-Item PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeComponentConfigAddition-Item ::= SEQUENCE {
|
||||
e2nodeComponentInterfaceType E2nodeComponentInterfaceType,
|
||||
e2nodeComponentID E2nodeComponentID,
|
||||
e2nodeComponentConfiguration E2nodeComponentConfiguration,
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeComponentConfigUpdate-List ::= SEQUENCE (SIZE(1..maxofE2nodeComponents)) OF ProtocolIE-SingleContainer { {E2nodeComponentConfigUpdate-ItemIEs} }
|
||||
|
||||
E2nodeComponentConfigUpdate-ItemIEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-E2nodeComponentConfigUpdate-Item CRITICALITY reject TYPE E2nodeComponentConfigUpdate-Item PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeComponentConfigUpdate-Item ::= SEQUENCE {
|
||||
e2nodeComponentInterfaceType E2nodeComponentInterfaceType,
|
||||
e2nodeComponentID E2nodeComponentID,
|
||||
e2nodeComponentConfiguration E2nodeComponentConfiguration,
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeComponentConfigRemoval-List ::= SEQUENCE (SIZE(1..maxofE2nodeComponents)) OF ProtocolIE-SingleContainer { {E2nodeComponentConfigRemoval-ItemIEs} }
|
||||
|
||||
E2nodeComponentConfigRemoval-ItemIEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-E2nodeComponentConfigRemoval-Item CRITICALITY reject TYPE E2nodeComponentConfigRemoval-Item PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeComponentConfigRemoval-Item ::= SEQUENCE {
|
||||
e2nodeComponentInterfaceType E2nodeComponentInterfaceType,
|
||||
e2nodeComponentID E2nodeComponentID,
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeTNLassociationRemoval-List ::= SEQUENCE (SIZE(1..maxofTNLA)) OF ProtocolIE-SingleContainer { {E2nodeTNLassociationRemoval-ItemIEs} }
|
||||
|
||||
E2nodeTNLassociationRemoval-ItemIEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-E2nodeTNLassociationRemoval-Item CRITICALITY reject TYPE E2nodeTNLassociationRemoval-Item PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeTNLassociationRemoval-Item ::= SEQUENCE {
|
||||
tnlInformation TNLinformation,
|
||||
tnlInformationRIC TNLinformation,
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- E2 NODE CONFIGURATION UPDATE ACKNOWLEDGE
|
||||
--
|
||||
-- **************************************************************
|
||||
E2nodeConfigurationUpdateAcknowledge ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{E2nodeConfigurationUpdateAcknowledge-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeConfigurationUpdateAcknowledge-IEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
|
||||
{ ID id-E2nodeComponentConfigAdditionAck CRITICALITY reject TYPE E2nodeComponentConfigAdditionAck-List PRESENCE optional }|
|
||||
{ ID id-E2nodeComponentConfigUpdateAck CRITICALITY reject TYPE E2nodeComponentConfigUpdateAck-List PRESENCE optional }|
|
||||
{ ID id-E2nodeComponentConfigRemovalAck CRITICALITY reject TYPE E2nodeComponentConfigRemovalAck-List PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeComponentConfigAdditionAck-List ::= SEQUENCE (SIZE(1..maxofE2nodeComponents)) OF ProtocolIE-SingleContainer { {E2nodeComponentConfigAdditionAck-ItemIEs} }
|
||||
|
||||
E2nodeComponentConfigAdditionAck-ItemIEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-E2nodeComponentConfigAdditionAck-Item CRITICALITY reject TYPE E2nodeComponentConfigAdditionAck-Item PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeComponentConfigAdditionAck-Item ::= SEQUENCE {
|
||||
e2nodeComponentInterfaceType E2nodeComponentInterfaceType,
|
||||
e2nodeComponentID E2nodeComponentID,
|
||||
e2nodeComponentConfigurationAck E2nodeComponentConfigurationAck,
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeComponentConfigUpdateAck-List ::= SEQUENCE (SIZE(1..maxofE2nodeComponents)) OF ProtocolIE-SingleContainer { {E2nodeComponentConfigUpdateAck-ItemIEs} }
|
||||
|
||||
E2nodeComponentConfigUpdateAck-ItemIEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-E2nodeComponentConfigUpdateAck-Item CRITICALITY reject TYPE E2nodeComponentConfigUpdateAck-Item PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeComponentConfigUpdateAck-Item ::= SEQUENCE {
|
||||
e2nodeComponentInterfaceType E2nodeComponentInterfaceType,
|
||||
e2nodeComponentID E2nodeComponentID,
|
||||
e2nodeComponentConfigurationAck E2nodeComponentConfigurationAck,
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeComponentConfigRemovalAck-List ::= SEQUENCE (SIZE(1..maxofE2nodeComponents)) OF ProtocolIE-SingleContainer { {E2nodeComponentConfigRemovalAck-ItemIEs} }
|
||||
|
||||
E2nodeComponentConfigRemovalAck-ItemIEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-E2nodeComponentConfigRemovalAck-Item CRITICALITY reject TYPE E2nodeComponentConfigRemovalAck-Item PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeComponentConfigRemovalAck-Item ::= SEQUENCE {
|
||||
e2nodeComponentInterfaceType E2nodeComponentInterfaceType,
|
||||
e2nodeComponentID E2nodeComponentID,
|
||||
e2nodeComponentConfigurationAck E2nodeComponentConfigurationAck,
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- E2 NODE CONFIGURATION UPDATE FAILURE
|
||||
--
|
||||
-- **************************************************************
|
||||
E2nodeConfigurationUpdateFailure ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{E2nodeConfigurationUpdateFailure-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
E2nodeConfigurationUpdateFailure-IEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
|
||||
{ ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
|
@ -451,6 +784,7 @@ protocolIEs ProtocolIE-Container { {ResetRequestIEs} },
|
|||
}
|
||||
|
||||
ResetRequestIEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
@ -467,6 +801,7 @@ protocolIEs ProtocolIE-Container { {ResetResponseIEs} },
|
|||
}
|
||||
|
||||
ResetResponseIEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
@ -487,15 +822,14 @@ protocolIEs ProtocolIE-Container {{RICserviceUpdate-IEs}},
|
|||
}
|
||||
|
||||
RICserviceUpdate-IEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
|
||||
{ ID id-RANfunctionsAdded CRITICALITY reject TYPE RANfunctions-List PRESENCE optional }|
|
||||
{ ID id-RANfunctionsModified CRITICALITY reject TYPE RANfunctions-List PRESENCE optional }|
|
||||
{ ID id-RANfunctionsDeleted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
RANfunctions-List ::= SEQUENCE (SIZE(0..maxofRANfunctionID)) OF ProtocolIE-SingleContainer { {RANfunction-ItemIEs} }
|
||||
-- TODO (dodgy). also note that NGAP doesn't do this...
|
||||
--RANfunctions-List ::= SEQUENCE (SIZE(0..maxofRANfunctionID)) OF RANfunction-ItemIEs
|
||||
RANfunctions-List ::= SEQUENCE (SIZE(1..maxofRANfunctionID)) OF ProtocolIE-SingleContainer { {RANfunction-ItemIEs} }
|
||||
|
||||
RANfunction-ItemIEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-RANfunction-Item CRITICALITY ignore TYPE RANfunction-Item PRESENCE mandatory },
|
||||
|
@ -507,10 +841,11 @@ RANfunction-Item ::= SEQUENCE {
|
|||
ranFunctionID RANfunctionID,
|
||||
ranFunctionDefinition RANfunctionDefinition,
|
||||
ranFunctionRevision RANfunctionRevision,
|
||||
ranFunctionOID RANfunctionOID,
|
||||
...
|
||||
}
|
||||
|
||||
RANfunctionsID-List ::= SEQUENCE (SIZE(0..maxofRANfunctionID)) OF ProtocolIE-SingleContainer{{RANfunctionID-ItemIEs}}
|
||||
RANfunctionsID-List ::= SEQUENCE (SIZE(1..maxofRANfunctionID)) OF ProtocolIE-SingleContainer{{RANfunctionID-ItemIEs}}
|
||||
|
||||
RANfunctionID-ItemIEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-RANfunctionID-Item CRITICALITY ignore TYPE RANfunctionID-Item PRESENCE mandatory },
|
||||
|
@ -534,12 +869,13 @@ protocolIEs ProtocolIE-Container {{RICserviceUpdateAcknowledge-IEs}},
|
|||
}
|
||||
|
||||
RICserviceUpdateAcknowledge-IEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-RANfunctionsAccepted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional }|
|
||||
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
|
||||
{ ID id-RANfunctionsAccepted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE mandatory }|
|
||||
{ ID id-RANfunctionsRejected CRITICALITY reject TYPE RANfunctionsIDcause-List PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
RANfunctionsIDcause-List ::= SEQUENCE (SIZE(0..maxofRANfunctionID)) OF ProtocolIE-SingleContainer { {RANfunctionIDcause-ItemIEs} }
|
||||
RANfunctionsIDcause-List ::= SEQUENCE (SIZE(1..maxofRANfunctionID)) OF ProtocolIE-SingleContainer { {RANfunctionIDcause-ItemIEs} }
|
||||
|
||||
RANfunctionIDcause-ItemIEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-RANfunctionIEcause-Item CRITICALITY ignore TYPE RANfunctionIDcause-Item PRESENCE mandatory },
|
||||
|
@ -565,7 +901,8 @@ protocolIEs ProtocolIE-Container {{RICserviceUpdateFailure-IEs}},
|
|||
}
|
||||
|
||||
RICserviceUpdateFailure-IEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-RANfunctionsRejected CRITICALITY ignore TYPE RANfunctionsIDcause-List PRESENCE optional }|
|
||||
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
|
||||
{ ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory }|
|
||||
{ ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
|
@ -587,9 +924,66 @@ protocolIEs ProtocolIE-Container {{RICserviceQuery-IEs}},
|
|||
}
|
||||
|
||||
RICserviceQuery-IEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
|
||||
{ ID id-RANfunctionsAccepted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- E2 Removal Elementary Procedure
|
||||
--
|
||||
-- **************************************************************
|
||||
-- **************************************************************
|
||||
--
|
||||
-- E2 REMOVAL REQUEST
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
E2RemovalRequest ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container { {E2RemovalRequestIEs} },
|
||||
...
|
||||
}
|
||||
|
||||
E2RemovalRequestIEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- E2 REMOVAL RESPONSE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
E2RemovalResponse ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container { {E2RemovalResponseIEs} },
|
||||
...
|
||||
}
|
||||
|
||||
E2RemovalResponseIEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- E2 REMOVAL FAILURE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
E2RemovalFailure ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container { {E2RemovalFailureIEs} },
|
||||
...
|
||||
}
|
||||
|
||||
E2RemovalFailureIEs E2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-TransactionID CRITICALITY reject TYPE TransactionID PRESENCE mandatory }|
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
END
|
||||
-- ASN1STOP
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
-- **************************************************************
|
||||
|
||||
E2AP-PDU-Descriptions {
|
||||
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version1 (1) e2ap(1) e2ap-PDU-Descriptions (0) }
|
||||
iso(1) identified-organization(3) dod(6) internet(1) private(4) enterprise(1) 53148 e2(1) version2 (2) e2ap(1) e2ap-PDU-Descriptions (0) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
|
@ -25,6 +25,12 @@ FROM E2AP-CommonDataTypes
|
|||
|
||||
|
||||
|
||||
E2connectionUpdate,
|
||||
E2connectionUpdateAcknowledge,
|
||||
E2connectionUpdateFailure,
|
||||
E2nodeConfigurationUpdate,
|
||||
E2nodeConfigurationUpdateAcknowledge,
|
||||
E2nodeConfigurationUpdateFailure,
|
||||
E2setupFailure,
|
||||
E2setupRequest,
|
||||
E2setupResponse,
|
||||
|
@ -44,9 +50,15 @@ RICsubscriptionRequest,
|
|||
RICsubscriptionResponse,
|
||||
RICsubscriptionDeleteFailure,
|
||||
RICsubscriptionDeleteRequest,
|
||||
RICsubscriptionDeleteResponse
|
||||
RICsubscriptionDeleteResponse,
|
||||
RICsubscriptionDeleteRequired,
|
||||
E2RemovalFailure,
|
||||
E2RemovalRequest,
|
||||
E2RemovalResponse
|
||||
FROM E2AP-PDU-Contents
|
||||
|
||||
id-E2connectionUpdate,
|
||||
id-E2nodeConfigurationUpdate,
|
||||
id-E2setup,
|
||||
id-ErrorIndication,
|
||||
id-Reset,
|
||||
|
@ -55,7 +67,9 @@ id-RICindication,
|
|||
id-RICserviceQuery,
|
||||
id-RICserviceUpdate,
|
||||
id-RICsubscription,
|
||||
id-RICsubscriptionDelete
|
||||
id-RICsubscriptionDelete,
|
||||
id-RICsubscriptionDeleteRequired,
|
||||
id-E2removal
|
||||
FROM E2AP-Constants;
|
||||
|
||||
-- **************************************************************
|
||||
|
@ -129,14 +143,18 @@ ricSubscriptionDelete |
|
|||
ricServiceUpdate |
|
||||
ricControl |
|
||||
e2setup |
|
||||
reset,
|
||||
e2nodeConfigurationUpdate |
|
||||
e2connectionUpdate |
|
||||
reset |
|
||||
e2removal,
|
||||
...
|
||||
}
|
||||
|
||||
E2AP-ELEMENTARY-PROCEDURES-CLASS-2 E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
ricIndication |
|
||||
ricServiceQuery |
|
||||
errorIndication,
|
||||
errorIndication |
|
||||
ricSubscriptionDeleteRequired,
|
||||
...
|
||||
}
|
||||
|
||||
|
@ -146,6 +164,32 @@ errorIndication,
|
|||
--
|
||||
-- **************************************************************
|
||||
|
||||
-- New for v01.01
|
||||
e2connectionUpdate E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE E2connectionUpdate
|
||||
SUCCESSFUL OUTCOME E2connectionUpdateAcknowledge
|
||||
UNSUCCESSFUL OUTCOME E2connectionUpdateFailure
|
||||
PROCEDURE CODE id-E2connectionUpdate
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
e2nodeConfigurationUpdate E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE E2nodeConfigurationUpdate
|
||||
SUCCESSFUL OUTCOME E2nodeConfigurationUpdateAcknowledge
|
||||
UNSUCCESSFUL OUTCOME E2nodeConfigurationUpdateFailure
|
||||
PROCEDURE CODE id-E2nodeConfigurationUpdate
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
-- New for v02.01
|
||||
e2removal E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE E2RemovalRequest
|
||||
SUCCESSFUL OUTCOME E2RemovalResponse
|
||||
UNSUCCESSFUL OUTCOME E2RemovalFailure
|
||||
PROCEDURE CODE id-E2removal
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
e2setup E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE E2setupRequest
|
||||
SUCCESSFUL OUTCOME E2setupResponse
|
||||
|
@ -211,6 +255,11 @@ PROCEDURE CODE id-RICsubscriptionDelete
|
|||
CRITICALITY reject
|
||||
}
|
||||
|
||||
ricSubscriptionDeleteRequired E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE RICsubscriptionDeleteRequired
|
||||
PROCEDURE CODE id-RICsubscriptionDeleteRequired
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
END
|
||||
-- ASN1STOP
|
||||
|
|
|
@ -17,18 +17,26 @@ ProtocolIE-ID
|
|||
#.PDU
|
||||
E2AP-PDU
|
||||
|
||||
E2SM-KPM-ActionDefinition
|
||||
E2SM-KPM-RANfunction-Description
|
||||
E2SM-KPM-EventTriggerDefinition
|
||||
E2SM-KPM-ActionDefinition
|
||||
E2SM-KPM-IndicationHeader
|
||||
RANcallProcess-ID-string
|
||||
E2SM-KPM-IndicationMessage-Format1
|
||||
E2SM-KPM-IndicationMessage
|
||||
E2SM-KPM-RANfunction-Description
|
||||
#E2SM-KPM-CallProcessID (no such function)
|
||||
|
||||
E2SM-RC-EventTrigger
|
||||
E2SM-RC-ActionDefinition
|
||||
E2SM-RC-RANFunctionDefinition
|
||||
E2SM-RC-IndicationMessage
|
||||
E2SM-RC-IndicationHeader
|
||||
E2SM-RC-CallProcessID
|
||||
|
||||
|
||||
#.MAKE_ENUM
|
||||
ProcedureCode
|
||||
ProtocolIE-ID
|
||||
|
||||
|
||||
#.NO_EMIT
|
||||
|
||||
#.OMIT_ASSIGNMENT
|
||||
|
@ -38,20 +46,46 @@ ProtocolIE-ContainerList
|
|||
ProtocolIE-ContainerPair
|
||||
ProtocolIE-ContainerPairList
|
||||
Presence
|
||||
|
||||
# KPM items. Don't know which E2AP OCTET STRING is supposed to use this...
|
||||
GNB-DU-Name
|
||||
|
||||
E2SM-KPM-IndicationMessage
|
||||
E2SM-RC-ControlOutcome
|
||||
E2SM-RC-ControlOutcome-Format3
|
||||
E2SM-RC-ControlOutcome-Format2
|
||||
E2SM-RC-ControlOutcome-Format1
|
||||
E2SM-RC-ControlOutcome-Format3-Item
|
||||
E2SM-RC-ControlOutcome-Format2-Style-Item
|
||||
E2SM-RC-ControlOutcome-Format1-Item
|
||||
E2SM-RC-ControlMessage
|
||||
E2SM-RC-ControlHeader
|
||||
FreqBandNrItem
|
||||
S-NSSAI
|
||||
IndexToRFSP
|
||||
EN-GNB-ID
|
||||
SST
|
||||
SD
|
||||
SubscriberProfileIDforRFP
|
||||
QoSID
|
||||
GroupID
|
||||
CoreCPID
|
||||
E2RemovalFailure
|
||||
E2RemovalResponse
|
||||
E2RemovalRequest
|
||||
E2SM-RC-ControlOutcome-Format2-ControlOutcome-Item
|
||||
E2SM-RC-ControlMessage-Format2
|
||||
E2SM-RC-ControlHeader-Format2
|
||||
E2SM-RC-ControlHeader-Format1
|
||||
E2SM-RC-ControlOutcome-Format2-RANP-Item
|
||||
E2SM-RC-ControlMessage-Format2-Style-Item
|
||||
E2SM-RC-ControlMessage-Format2-ControlAction-Item
|
||||
E2SM-RC-ControlMessage-Format1
|
||||
E2SM-RC-ControlMessage-Format1-Item
|
||||
|
||||
#.END
|
||||
|
||||
|
||||
#.TYPE_ATTR
|
||||
E2SM-KPM-IndicationMessage DISPLAY=BASE_DEC STRINGS=VALS(e2ap_E2SM_KPM_IndicationMessage_vals)
|
||||
#E2SM-KPM-IndicationMessage DISPLAY=BASE_DEC STRINGS=VALS(e2ap_E2SM_KPM_IndicationMessage_vals)
|
||||
|
||||
#.TYPE_ATTR
|
||||
E2SM-KPM-IndicationHeader DISPLAY=BASE_DEC STRINGS=VALS(e2ap_E2SM_KPM_IndicationHeader_vals)
|
||||
#E2SM-KPM-IndicationHeader DISPLAY=BASE_DEC STRINGS=VALS(e2ap_E2SM_KPM_IndicationHeader_vals)
|
||||
|
||||
#.TYPE_RENAME
|
||||
|
||||
|
@ -97,7 +131,6 @@ SuccessfulOutcome/value successfulOutcome_value
|
|||
# FN_PARS ProtocolIE-FieldPair/secondValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldPairSecondValue
|
||||
|
||||
|
||||
|
||||
#.FN_BODY ProcedureCode VAL_PTR = &e2ap_data->procedure_code
|
||||
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
|
||||
%(DEFAULT_BODY)s
|
||||
|
@ -215,38 +248,73 @@ SuccessfulOutcome/value successfulOutcome_value
|
|||
|
||||
|
||||
|
||||
# Calling in-depth KPM definitions of E2AP OCTET STRING fields.
|
||||
|
||||
#.FN_BODY RICactionDefinition VAL_PTR = ¶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);
|
||||
# ################################################################################
|
||||
# Calling in-depth definitions of E2AP OCTET STRING fields.
|
||||
|
||||
#.FN_BODY RANfunctionDefinition VAL_PTR = ¶meter_tvb
|
||||
tvbuff_t *parameter_tvb;
|
||||
%(DEFAULT_BODY)s
|
||||
dissect_E2SM_KPM_RANfunction_Description_PDU(parameter_tvb, actx->pinfo, tree, NULL);
|
||||
/* Looking for shortName string near beginning of tvb */
|
||||
gboolean found = FALSE;
|
||||
for (int n=KPM_RANFUNCTIONS; n<MAX_RANFUNCTIONS; n++) {
|
||||
guint32 tvb_len = tvb_captured_length(parameter_tvb);
|
||||
guint name_len = (gint)strlen(g_ran_functioname_table[n].name);
|
||||
for (int m=0; (m<30) && ((m+name_len+1))<tvb_len; m++) {
|
||||
if (strcmp(tvb_get_ptr(parameter_tvb, m, name_len),
|
||||
g_ran_functioname_table[n].name) == 0) {
|
||||
/* Call the set's dissector */
|
||||
g_ran_functioname_table[n].functions.ran_function_definition_dissector(parameter_tvb, actx->pinfo, tree, NULL);
|
||||
found = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
proto_item *ti = proto_tree_add_item(tree, hf_e2ap_ran_function_name_not_recognised, tvb, 0, 0, ENC_NA);
|
||||
expert_add_info_format(actx->pinfo, ti, &ei_e2ap_ran_function_names_no_match,
|
||||
"ShortName does not match any known Service Model");
|
||||
}
|
||||
|
||||
#.FN_BODY RICeventTriggerDefinition VAL_PTR = ¶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
|
||||
tvbuff_t *parameter_tvb;
|
||||
%(DEFAULT_BODY)s
|
||||
dissect_RANcallProcess_ID_string_PDU(parameter_tvb, actx->pinfo, tree, NULL);
|
||||
ran_function_pointers_t* functions = lookup_ranfunction_pointers(actx->pinfo, tree, parameter_tvb);
|
||||
if (functions && functions->ran_callprocessid_dissector) {
|
||||
functions->ran_callprocessid_dissector(parameter_tvb, actx->pinfo, tree, NULL);
|
||||
}
|
||||
# ################################################################################
|
||||
|
||||
|
||||
|
||||
|
@ -262,8 +330,9 @@ id-RICserviceQuery ProcedureCode
|
|||
id-RICserviceUpdate ProcedureCode
|
||||
id-RICsubscription ProcedureCode
|
||||
id-RICsubscriptionDelete ProcedureCode
|
||||
#id-E2nodeConfigurationUpdate ProcedureCode
|
||||
#id-E2connectionUpdate ProcedureCode
|
||||
id-E2nodeConfigurationUpdate ProcedureCode
|
||||
id-E2connectionUpdate ProcedureCode
|
||||
id-RICsubscriptionDeleteRequired ProcedureCode
|
||||
|
||||
|
||||
|
||||
|
@ -278,7 +347,6 @@ id-RANfunctionIEcause-Item ProtocolIE-ID
|
|||
id-RANfunction-Item ProtocolIE-ID
|
||||
id-RANfunctionsAccepted ProtocolIE-ID
|
||||
id-RANfunctionsAdded ProtocolIE-ID
|
||||
|
||||
id-RANfunctionsDeleted ProtocolIE-ID
|
||||
id-RANfunctionsModified ProtocolIE-ID
|
||||
id-RANfunctionsRejected ProtocolIE-ID
|
||||
|
@ -289,36 +357,48 @@ id-RICactions-Admitted ProtocolIE-ID
|
|||
id-RICactions-NotAdmitted ProtocolIE-ID
|
||||
id-RICaction-ToBeSetup-Item ProtocolIE-ID
|
||||
id-RICcallProcessID ProtocolIE-ID
|
||||
|
||||
id-RICcontrolAckRequest ProtocolIE-ID
|
||||
id-RICcontrolHeader ProtocolIE-ID
|
||||
id-RICcontrolMessage ProtocolIE-ID
|
||||
id-RICcontrolStatus ProtocolIE-ID
|
||||
#id-RICcontrolStatus ProtocolIE-ID
|
||||
id-RICindicationHeader ProtocolIE-ID
|
||||
id-RICindicationMessage ProtocolIE-ID
|
||||
id-RICindicationSN ProtocolIE-ID
|
||||
id-RICindicationType ProtocolIE-ID
|
||||
id-RICrequestID ProtocolIE-ID
|
||||
id-RICsubscriptionDetails ProtocolIE-ID
|
||||
|
||||
id-TimeToWait ProtocolIE-ID
|
||||
id-RICcontrolOutcome ProtocolIE-ID
|
||||
#id-E2nodeComponentConfigUpdate ProtocolIE-ID
|
||||
#id-E2nodeComponentConfigUpdate-Item ProtocolIE-ID
|
||||
#id-E2nodeComponentConfigUpdateAck ProtocolIE-ID
|
||||
#id-E2nodeComponentConfigUpdateAck-Item ProtocolIE-ID
|
||||
#id-E2connectionSetup ProtocolIE-ID
|
||||
#id-E2connectionSetupFailed ProtocolIE-ID
|
||||
|
||||
#id-E2connectionSetupFailed-Item ProtocolIE-ID
|
||||
#id-E2connectionFailed-Item ProtocolIE-ID
|
||||
#id-E2connectionUpdate-Item ProtocolIE-ID
|
||||
#id-E2connectionUpdateAdd ProtocolIE-ID
|
||||
#id-E2connectionUpdateModify ProtocolIE-ID
|
||||
#id-E2connectionUpdateRemove ProtocolIE-ID
|
||||
#id-E2connectionUpdateRemove-Item ProtocolIE-ID
|
||||
#id-TNLinformation ProtocolIE-ID
|
||||
#id-TransactionID ProtocolIE-ID
|
||||
id-E2nodeComponentConfigUpdate ProtocolIE-ID
|
||||
id-E2nodeComponentConfigUpdate-Item ProtocolIE-ID
|
||||
id-E2nodeComponentConfigUpdateAck ProtocolIE-ID
|
||||
id-E2nodeComponentConfigUpdateAck-Item ProtocolIE-ID
|
||||
id-E2connectionSetup ProtocolIE-ID
|
||||
id-E2connectionSetupFailed ProtocolIE-ID
|
||||
id-E2connectionSetupFailed-Item ProtocolIE-ID
|
||||
id-E2connectionFailed-Item ProtocolIE-ID
|
||||
id-E2connectionUpdate-Item ProtocolIE-ID
|
||||
id-E2connectionUpdateAdd ProtocolIE-ID
|
||||
id-E2connectionUpdateModify ProtocolIE-ID
|
||||
id-E2connectionUpdateRemove ProtocolIE-ID
|
||||
id-E2connectionUpdateRemove-Item ProtocolIE-ID
|
||||
id-TNLinformation ProtocolIE-ID
|
||||
id-TransactionID ProtocolIE-ID
|
||||
|
||||
id-E2nodeComponentConfigAddition ProtocolIE-ID
|
||||
id-E2nodeComponentConfigAddition-Item ProtocolIE-ID
|
||||
id-E2nodeComponentConfigAdditionAck ProtocolIE-ID
|
||||
id-E2nodeComponentConfigAdditionAck-Item ProtocolIE-ID
|
||||
id-E2nodeComponentConfigRemoval ProtocolIE-ID
|
||||
id-E2nodeComponentConfigRemoval-Item ProtocolIE-ID
|
||||
id-E2nodeComponentConfigRemovalAck ProtocolIE-ID
|
||||
id-E2nodeComponentConfigRemovalAck-Item ProtocolIE-ID
|
||||
id-E2nodeTNLassociationRemoval ProtocolIE-ID
|
||||
id-E2nodeTNLassociationRemoval-Item ProtocolIE-ID
|
||||
id-RICsubscriptionToBeRemoved ProtocolIE-ID
|
||||
id-RICsubscription-withCause-Item ProtocolIE-ID
|
||||
|
||||
#.END
|
||||
|
||||
|
||||
|
@ -328,7 +408,6 @@ id-RICcontrolOutcome ProtocolIE-ID
|
|||
|
||||
Cause N e2ap.ies id-Cause
|
||||
CriticalityDiagnostics N e2ap.ies id-CriticalityDiagnostics
|
||||
|
||||
GlobalE2node-ID N e2ap.ies id-GlobalE2node-ID
|
||||
GlobalRIC-ID N e2ap.ies id-GlobalRIC-ID
|
||||
RANfunctionID N e2ap.ies id-RANfunctionID
|
||||
|
@ -351,7 +430,7 @@ RICcontrolAckRequest N e2ap.ies id-RICcontrolAckRequest
|
|||
RICcontrolHeader N e2ap.ies id-RICcontrolHeader
|
||||
RICcontrolMessage N e2ap.ies id-RICcontrolMessage
|
||||
RICcontrolOutcome N e2ap.ies id-RICcontrolOutcome
|
||||
RICcontrolStatus N e2ap.ies id-RICcontrolStatus
|
||||
#RICcontrolStatus N e2ap.ies id-RICcontrolStatus
|
||||
RICindicationHeader N e2ap.ies id-RICindicationHeader
|
||||
RICindicationMessage N e2ap.ies id-RICindicationMessage
|
||||
RICindicationSN N e2ap.ies id-RICindicationSN
|
||||
|
@ -359,60 +438,50 @@ RICindicationType N e2ap.ies id-RICindicationType
|
|||
RICrequestID N e2ap.ies id-RICrequestID
|
||||
RICsubscriptionDetails N e2ap.ies id-RICsubscriptionDetails
|
||||
TimeToWait N e2ap.ies id-TimeToWait
|
||||
#TNLinformation N e2ap.ies id-TNLinformation
|
||||
#TransactionID N e2ap.ies id-TransactionID
|
||||
|
||||
|
||||
|
||||
|
||||
# TODO: V2?
|
||||
#Cause N e2ap.ies id-Cause
|
||||
#CriticalityDiagnostics N e2ap.ies id-CriticalityDiagnostics
|
||||
#E2nodeComponentConfigUpdate N e2ap.ies id-E2nodeComponentConfigUpdate
|
||||
#E2nodeComponentConfigUpdateAck N e2ap.ies id-E2nodeComponentConfigUpdateAck
|
||||
#E2nodeComponentID N e2ap.ies id-E2nodeComponentID
|
||||
#E2nodeComponentType N e2ap.ies id-E2nodeComponentType
|
||||
#GlobalE2node-ID N e2ap.ies id-GlobalE2node-ID
|
||||
#GlobalRIC-ID N e2ap.ies id-GlobalRIC-ID
|
||||
#RANfunctionDefinition N e2ap.ies id-RANfunctionDefinition
|
||||
#RANfunctionID N e2ap.ies id-RANfunctionID
|
||||
#RANfunctionOID N e2ap.ies id-RANfunctionOID
|
||||
#RANfunctionRevision N e2ap.ies id-RANfunctionRevision
|
||||
#RICactionDefinition N e2ap.ies id-RICactionDefinition
|
||||
#RICactionID N e2ap.ies id-RICactionID
|
||||
#RICactionType N e2ap.ies id-RICactionType
|
||||
#RICcallProcessID N e2ap.ies id-RICcallProcessID
|
||||
#RICcontrolAckRequest N e2ap.ies id-RICcontrolAckRequest
|
||||
#RICcontrolHeader N e2ap.ies id-RICcontrolHeader
|
||||
#RICcontrolMessage N e2ap.ies id-RICcontrolMessage
|
||||
#RICcontrolOutcome N e2ap.ies id-RICcontrolOutcome
|
||||
#RICcontrolStatus N e2ap.ies id-RICcontrolStatus
|
||||
#RICeventTriggerDefinition N e2ap.ies id-RICeventTriggerDefinition
|
||||
#RICindicationHeader N e2ap.ies id-RICindicationHeader
|
||||
#RICindicationMessage N e2ap.ies id-RICindicationMessage
|
||||
#RICindicationSN N e2ap.ies id-RICindicationSN
|
||||
#RICindicationType N e2ap.ies id-RICindicationType
|
||||
#RICrequestID N e2ap.ies id-RICrequestID
|
||||
#RICsubsequentAction N e2ap.ies id-RICsubsequentAction
|
||||
#TimeToWait N e2ap.ies id-TimeToWait
|
||||
#TNLinformation N e2ap.ies id-TNLinformation
|
||||
#TNLusage N e2ap.ies id-TNLusage
|
||||
#TransactionID N e2ap.ies id-TransactionID
|
||||
|
||||
E2nodeComponentConfigUpdate-List N e2ap.ies id-E2nodeComponentConfigUpdate
|
||||
E2nodeComponentConfigUpdate-Item N e2ap.ies id-E2nodeComponentConfigUpdate-Item
|
||||
E2nodeComponentConfigUpdateAck-List N e2ap.ies id-E2nodeComponentConfigUpdateAck
|
||||
E2nodeComponentConfigUpdateAck-Item N e2ap.ies id-E2nodeComponentConfigUpdateAck-Item
|
||||
E2connectionUpdate-List N e2ap.ies id-E2connectionSetup
|
||||
E2connectionSetupFailed-List N e2ap.ies id-E2connectionSetupFailed
|
||||
E2connectionSetupFailed-Item N e2ap.ies id-E2connectionSetupFailed-Item
|
||||
#E2connectionSetupFailed-Item N e2ap.ies id-E2connectionFailed-Item
|
||||
E2connectionUpdate-Item N e2ap.ies id-E2connectionUpdate-Item
|
||||
E2connectionUpdate-List N e2ap.ies id-E2connectionUpdateAdd
|
||||
E2connectionUpdate-List N e2ap.ies id-E2connectionUpdateModify
|
||||
E2connectionUpdateRemove-List N e2ap.ies id-E2connectionUpdateRemove
|
||||
E2connectionUpdateRemove-Item N e2ap.ies id-E2connectionUpdateRemove-Item
|
||||
TNLinformation N e2ap.ies id-TNLinformation
|
||||
TransactionID N e2ap.ies id-TransactionID
|
||||
|
||||
E2nodeComponentConfigAddition-List N e2ap.ies id-E2nodeComponentConfigAddition
|
||||
E2nodeComponentConfigAddition-Item N e2ap.ies id-E2nodeComponentConfigAddition-Item
|
||||
E2nodeComponentConfigAdditionAck-List N e2ap.ies id-E2nodeComponentConfigAdditionAck
|
||||
E2nodeComponentConfigAdditionAck-Item N e2ap.ies id-E2nodeComponentConfigAdditionAck-Item
|
||||
E2nodeComponentConfigRemoval-List N e2ap.ies id-E2nodeComponentConfigRemoval
|
||||
E2nodeComponentConfigRemoval-Item N e2ap.ies id-E2nodeComponentConfigRemoval-Item
|
||||
E2nodeComponentConfigRemovalAck-List N e2ap.ies id-E2nodeComponentConfigRemovalAck
|
||||
E2nodeComponentConfigRemovalAck-Item N e2ap.ies id-E2nodeComponentConfigRemovalAck-Item
|
||||
E2nodeTNLassociationRemoval-List N e2ap.ies id-E2nodeTNLassociationRemoval
|
||||
E2nodeTNLassociationRemoval-Item N e2ap.ies id-E2nodeTNLassociationRemoval-Item
|
||||
RICsubscription-List-withCause N e2ap.ies id-RICsubscriptionToBeRemoved
|
||||
RICsubscription-withCause-Item N e2ap.ies id-RICsubscription-withCause-Item
|
||||
|
||||
|
||||
|
||||
#e2ap-PROTOCOL-EXTENSION
|
||||
|
||||
|
||||
|
||||
#E2AP-ELEMENTARY-PROCEDURE
|
||||
|
||||
#E2connectionUpdate N e2ap.proc.imsg id-E2connectionUpdate
|
||||
#E2connectionUpdateAcknowledge N e2ap.proc.sout id-E2connectionUpdate
|
||||
#E2connectionUpdateFailure N e2ap.proc.uout id-E2connectionUpdate
|
||||
E2connectionUpdate N e2ap.proc.imsg id-E2connectionUpdate
|
||||
E2connectionUpdateAcknowledge N e2ap.proc.sout id-E2connectionUpdate
|
||||
E2connectionUpdateFailure N e2ap.proc.uout id-E2connectionUpdate
|
||||
|
||||
#E2nodeConfigurationUpdate N e2ap.proc.imsg id-E2nodeConfigurationUpdate
|
||||
#E2nodeConfigurationUpdateAcknowledge N e2ap.proc.sout id-E2nodeConfigurationUpdate
|
||||
#E2nodeConfigurationUpdateFailure N e2ap.proc.uout id-E2nodeConfigurationUpdate
|
||||
E2nodeConfigurationUpdate N e2ap.proc.imsg id-E2nodeConfigurationUpdate
|
||||
E2nodeConfigurationUpdateAcknowledge N e2ap.proc.sout id-E2nodeConfigurationUpdate
|
||||
E2nodeConfigurationUpdateFailure N e2ap.proc.uout id-E2nodeConfigurationUpdate
|
||||
|
||||
E2setupFailure N e2ap.proc.uout id-E2setup
|
||||
E2setupRequest N e2ap.proc.imsg id-E2setup
|
||||
|
@ -443,6 +512,46 @@ RICsubscriptionDeleteFailure N e2ap.proc.uout id-RICsubscriptionDele
|
|||
RICsubscriptionDeleteRequest N e2ap.proc.imsg id-RICsubscriptionDelete
|
||||
RICsubscriptionDeleteResponse N e2ap.proc.sout id-RICsubscriptionDelete
|
||||
|
||||
RICsubscriptionDeleteRequired N e2ap.proc.sout id-RICsubscriptionDeleteRequired
|
||||
|
||||
|
||||
|
||||
#.FN_BODY RANfunctionID VAL_PTR=&value
|
||||
guint32 value;
|
||||
%(DEFAULT_BODY)s
|
||||
/* Store value in packet-private data */
|
||||
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
|
||||
e2ap_data->ran_function_id = value;
|
||||
|
||||
|
||||
#.FN_BODY RANfunction-Name/ranFunction-ShortName
|
||||
gint start_offset = offset;
|
||||
%(DEFAULT_BODY)s
|
||||
/* TODO: is there a nicer/reliable way to get PrintableString here (VAL_PTR won't get assigned..) */
|
||||
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
|
||||
ran_functionid_table_t *table = get_ran_functionid_table(actx->pinfo);
|
||||
store_ran_function_mapping(actx->pinfo, table, e2ap_data->ran_function_id, tvb_get_ptr(tvb, (start_offset+15)/8, (offset-start_offset)/8));
|
||||
|
||||
|
||||
|
||||
#.FN_HDR E2connectionUpdate
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2connectionUpdate");
|
||||
|
||||
#.FN_HDR E2connectionUpdateAcknowledge
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2connectionUpdateAcknowledge");
|
||||
|
||||
#.FN_HDR E2connectionUpdateFailure
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2connectionUpdateFailure");
|
||||
|
||||
|
||||
#.FN_HDR E2nodeConfigurationUpdate
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2nodeConfigurationUpdate");
|
||||
|
||||
#.FN_HDR E2nodeConfigurationUpdateAcknowledge
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2nodeConfigurationUpdateAcknowledge");
|
||||
|
||||
#.FN_HDR E2nodeConfigurationUpdateFailure
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2nodeConfigurationUpdateFailure");
|
||||
|
||||
|
||||
#.FN_HDR E2setupFailure
|
||||
|
@ -454,26 +563,28 @@ RICsubscriptionDeleteResponse N e2ap.proc.sout id-RICsubscriptionDele
|
|||
#.FN_HDR E2setupResponse
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2setupResponse");
|
||||
|
||||
|
||||
#.FN_HDR ErrorIndication
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ErrorIndication");
|
||||
|
||||
|
||||
#.FN_HDR ResetRequest
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetRequest");
|
||||
|
||||
#.FN_HDR ResetResponse
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "ResetResponse");
|
||||
|
||||
|
||||
#.FN_HDR RICcontrolAcknowledge
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICcontrolAcknowledge");
|
||||
|
||||
|
||||
|
||||
#.FN_HDR RICcontrolFailure
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICcontrolFailure");
|
||||
|
||||
#.FN_HDR RICcontrolRequest
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICcontrolRequest");
|
||||
|
||||
|
||||
#.FN_HDR RICindication
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICindication");
|
||||
|
||||
|
@ -481,10 +592,10 @@ RICsubscriptionDeleteResponse N e2ap.proc.sout id-RICsubscriptionDele
|
|||
#.FN_HDR RICserviceQuery
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICserviceQuery");
|
||||
|
||||
|
||||
#.FN_HDR RICserviceUpdate
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICserviceUpdate");
|
||||
|
||||
|
||||
#.FN_HDR RICserviceUpdateAcknowledge
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICserviceUpdateAcknowledge");
|
||||
|
||||
|
@ -513,10 +624,8 @@ RICsubscriptionDeleteResponse N e2ap.proc.sout id-RICsubscriptionDele
|
|||
#.FN_HDR RICsubscriptionDeleteResponse
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICsubscriptionDeleteResponse");
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#.FN_HDR RICsubscriptionDeleteRequired
|
||||
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICsubscriptionDeleteRequired");
|
||||
|
||||
|
||||
#
|
||||
|
|
|
@ -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
|
||||
*
|
||||
* References: ORAN-WG3.E2AP-v01.00, ORAN-WG3.E2SM-KPM-v01.00
|
||||
* References: ORAN-WG3.E2AP-v02.01, ORAN-WG3.E2SM-KPM-v02.02, ORAN-WG3.E2SM-RC.01.02
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
|
@ -45,12 +45,36 @@ static dissector_handle_t e2ap_handle;
|
|||
static int proto_e2ap = -1;
|
||||
#include "packet-e2ap-hf.c"
|
||||
|
||||
static int hf_e2ap_unmapped_ran_function_id = -1;
|
||||
static int hf_e2ap_ran_function_name_not_recognised = -1;
|
||||
static int hf_e2ap_ran_function_setup_frame = -1;
|
||||
|
||||
|
||||
|
||||
/* Initialize the subtree pointers */
|
||||
static gint ett_e2ap = -1;
|
||||
|
||||
static expert_field ei_e2ap_ran_function_names_no_match = EI_INIT;
|
||||
static expert_field ei_e2ap_ran_function_id_not_mapped = EI_INIT;
|
||||
|
||||
#include "packet-e2ap-ett.c"
|
||||
|
||||
|
||||
/* Forward declarations */
|
||||
static int dissect_E2SM_KPM_EventTriggerDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
|
||||
static int dissect_E2SM_KPM_ActionDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
|
||||
static int dissect_E2SM_KPM_IndicationHeader_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
|
||||
static int dissect_E2SM_KPM_IndicationMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
|
||||
static int dissect_E2SM_KPM_RANfunction_Description_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
|
||||
|
||||
static int dissect_E2SM_RC_EventTrigger_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
|
||||
static int dissect_E2SM_RC_ActionDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
|
||||
static int dissect_E2SM_RC_RANFunctionDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
|
||||
static int dissect_E2SM_RC_IndicationMessage_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
|
||||
static int dissect_E2SM_RC_IndicationHeader_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
|
||||
static int dissect_E2SM_RC_CallProcessID_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
|
||||
|
||||
|
||||
enum {
|
||||
INITIATING_MESSAGE,
|
||||
SUCCESSFUL_OUTCOME,
|
||||
|
@ -72,37 +96,10 @@ struct e2ap_private_data {
|
|||
guint32 protocol_extension_id;
|
||||
guint32 message_type;
|
||||
guint32 ran_ue_e2ap_id;
|
||||
|
||||
guint32 ran_function_id;
|
||||
};
|
||||
|
||||
/* Dissector tables */
|
||||
static dissector_table_t e2ap_ies_dissector_table;
|
||||
//static dissector_table_t e2ap_ies_p1_dissector_table;
|
||||
//static dissector_table_t e2ap_ies_p2_dissector_table;
|
||||
static dissector_table_t e2ap_extension_dissector_table;
|
||||
static dissector_table_t e2ap_proc_imsg_dissector_table;
|
||||
static dissector_table_t e2ap_proc_sout_dissector_table;
|
||||
static dissector_table_t e2ap_proc_uout_dissector_table;
|
||||
static dissector_table_t e2ap_n2_ie_type_dissector_table;
|
||||
|
||||
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
|
||||
/* Currently not used
|
||||
static int dissect_ProtocolIEFieldPairFirstValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
|
||||
static int dissect_ProtocolIEFieldPairSecondValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
|
||||
*/
|
||||
|
||||
/* Forward declarations */
|
||||
static int dissect_E2SM_KPM_ActionDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
|
||||
static int dissect_E2SM_KPM_RANfunction_Description_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
|
||||
static int dissect_E2SM_KPM_EventTriggerDefinition_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
|
||||
static int dissect_E2SM_KPM_IndicationHeader_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
|
||||
static int dissect_RANcallProcess_ID_string_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
|
||||
static int dissect_E2SM_KPM_IndicationMessage_Format1_PDU(tvbuff_t *tvb _U_, packet_info *pinfo _U_, proto_tree *tree _U_, void *data _U_);
|
||||
|
||||
|
||||
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
|
||||
static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
|
||||
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
|
||||
|
||||
static struct e2ap_private_data*
|
||||
e2ap_get_private_data(packet_info *pinfo)
|
||||
{
|
||||
|
@ -114,6 +111,208 @@ e2ap_get_private_data(packet_info *pinfo)
|
|||
return e2ap_data;
|
||||
}
|
||||
|
||||
/****************************************************************************************************************/
|
||||
/* We learn which set of RAN functions pointers corresponds to a given ranFunctionID when we see E2SetupRequest */
|
||||
typedef int (*pdu_dissector_t)(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data);
|
||||
|
||||
/* Function pointers for a RANFunction */
|
||||
typedef struct {
|
||||
pdu_dissector_t ran_function_definition_dissector;
|
||||
pdu_dissector_t ran_action_definition_dissector;
|
||||
pdu_dissector_t ran_indication_message_dissector;
|
||||
pdu_dissector_t ran_indication_header_dissector;
|
||||
pdu_dissector_t ran_callprocessid_dissector;
|
||||
pdu_dissector_t ran_event_trigger_dissector;
|
||||
} ran_function_pointers_t;
|
||||
|
||||
typedef enum {
|
||||
MIN_RANFUNCTIONS,
|
||||
KPM_RANFUNCTIONS=0,
|
||||
RIC_RANFUNCTIONS,
|
||||
MAX_RANFUNCTIONS
|
||||
} ran_function_t;
|
||||
|
||||
typedef struct {
|
||||
const char* name;
|
||||
ran_function_pointers_t functions;
|
||||
} ran_function_name_mapping_t;
|
||||
|
||||
/* Static table mapping from string -> ran_function */
|
||||
static const ran_function_name_mapping_t g_ran_functioname_table[MAX_RANFUNCTIONS] =
|
||||
{
|
||||
{ "ORAN-E2SM-KPM", { dissect_E2SM_KPM_RANfunction_Description_PDU,
|
||||
dissect_E2SM_KPM_ActionDefinition_PDU,
|
||||
dissect_E2SM_KPM_IndicationMessage_PDU,
|
||||
dissect_E2SM_KPM_IndicationHeader_PDU,
|
||||
NULL, /* no dissect_E2SM_KPM_CallProcessID_PDU */
|
||||
dissect_E2SM_KPM_EventTriggerDefinition_PDU
|
||||
}
|
||||
},
|
||||
{ "ORAN-E2SM-RC", { dissect_E2SM_RC_RANFunctionDefinition_PDU,
|
||||
dissect_E2SM_RC_ActionDefinition_PDU,
|
||||
dissect_E2SM_RC_IndicationMessage_PDU,
|
||||
dissect_E2SM_RC_IndicationHeader_PDU,
|
||||
dissect_E2SM_RC_CallProcessID_PDU,
|
||||
dissect_E2SM_RC_EventTrigger_PDU
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
/* Per-conversation mapping: ranFunctionId -> ran_function */
|
||||
typedef struct {
|
||||
guint32 setup_frame;
|
||||
guint32 ran_function_id;
|
||||
ran_function_t ran_function;
|
||||
ran_function_pointers_t *ran_function_pointers;
|
||||
} ran_function_id_mapping_t;
|
||||
|
||||
typedef struct {
|
||||
#define MAX_RANFUNCTION_ENTRIES 16
|
||||
guint32 num_entries;
|
||||
ran_function_id_mapping_t entries[MAX_RANFUNCTION_ENTRIES];
|
||||
} ran_functionid_table_t;
|
||||
|
||||
const char *ran_function_to_str(ran_function_t ran_function)
|
||||
{
|
||||
switch (ran_function) {
|
||||
case KPM_RANFUNCTIONS:
|
||||
return "KPM";
|
||||
case RIC_RANFUNCTIONS:
|
||||
return "RIC";
|
||||
|
||||
default:
|
||||
return "Unknown";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Get RANfunctionID table from conversation data */
|
||||
ran_functionid_table_t* get_ran_functionid_table(packet_info *pinfo)
|
||||
{
|
||||
conversation_t *p_conv;
|
||||
ran_functionid_table_t *p_conv_data = NULL;
|
||||
|
||||
/* Lookup conversation */
|
||||
p_conv = find_conversation(pinfo->num, &pinfo->net_dst, &pinfo->net_src,
|
||||
conversation_pt_to_endpoint_type(pinfo->ptype),
|
||||
pinfo->destport, pinfo->srcport, 0);
|
||||
if (!p_conv) {
|
||||
/* None, so create new data and set */
|
||||
p_conv = conversation_new(pinfo->num, &pinfo->net_dst, &pinfo->net_src,
|
||||
conversation_pt_to_endpoint_type(pinfo->ptype),
|
||||
pinfo->destport, pinfo->srcport, 0);
|
||||
p_conv_data = (ran_functionid_table_t*)wmem_new0(wmem_file_scope(), ran_functionid_table_t);
|
||||
conversation_add_proto_data(p_conv, proto_e2ap, p_conv_data);
|
||||
}
|
||||
else {
|
||||
/* Will return existing conversation data */
|
||||
p_conv_data = (ran_functionid_table_t*)conversation_get_proto_data(p_conv, proto_e2ap);
|
||||
}
|
||||
|
||||
return p_conv_data;
|
||||
}
|
||||
|
||||
|
||||
/* Store new RANfunctionID -> Service Model mapping in table */
|
||||
static void store_ran_function_mapping(packet_info *pinfo, ran_functionid_table_t *table, guint32 ran_function_id, const char *name)
|
||||
{
|
||||
/* Stop if already reached table limit */
|
||||
if (table->num_entries == MAX_RANFUNCTION_ENTRIES) {
|
||||
/* TODO: expert info warning? */
|
||||
return;
|
||||
}
|
||||
|
||||
ran_function_t ran_function = MAX_RANFUNCTIONS; /* i.e. invalid */
|
||||
ran_function_pointers_t *ran_function_pointers = NULL;
|
||||
|
||||
/* Check known RAN functions */
|
||||
for (int n=MIN_RANFUNCTIONS; n < MAX_RANFUNCTIONS; n++) {
|
||||
/* TODO: shouldn't need to check both positions! */
|
||||
if ((strcmp(name, g_ran_functioname_table[n].name) == 0) ||
|
||||
(strcmp(name+1, g_ran_functioname_table[n].name) == 0)) {
|
||||
|
||||
ran_function = n;
|
||||
ran_function_pointers = (ran_function_pointers_t*)&(g_ran_functioname_table[n].functions);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Nothing to do if no matches */
|
||||
if (ran_function == MAX_RANFUNCTIONS) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* If ID already mapped, ignore */
|
||||
for (guint n=0; n < table->num_entries; n++) {
|
||||
if (table->entries[n].ran_function_id == ran_function_id) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* OK, store this new entry */
|
||||
guint idx = table->num_entries++;
|
||||
table->entries[idx].setup_frame = pinfo->num;
|
||||
table->entries[idx].ran_function_id = ran_function_id;
|
||||
table->entries[idx].ran_function = ran_function;
|
||||
table->entries[idx].ran_function_pointers = ran_function_pointers;
|
||||
}
|
||||
|
||||
/* Look for Service Model function pointers, based on current RANFunctionID in pinfo */
|
||||
ran_function_pointers_t* lookup_ranfunction_pointers(packet_info *pinfo, proto_tree *tree, tvbuff_t *tvb)
|
||||
{
|
||||
/* Get ranFunctionID from this frame */
|
||||
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
|
||||
guint ran_function_id = e2ap_data->ran_function_id;
|
||||
|
||||
/* Look in table function pointers for this ranFunctionID */
|
||||
ran_functionid_table_t *table = get_ran_functionid_table(pinfo);
|
||||
for (guint n=0; n < table->num_entries; n++) {
|
||||
if (ran_function_id == table->entries[n].ran_function_id) {
|
||||
/* Point back at the setup frame where this ranfunction was mapped */
|
||||
proto_item *ti = proto_tree_add_uint(tree, hf_e2ap_ran_function_setup_frame,
|
||||
tvb, 0, 0, table->entries[n].setup_frame);
|
||||
/* Also show that mapping */
|
||||
proto_item_append_text(ti, " (%u -> %s)", table->entries[n].ran_function_id, ran_function_to_str(table->entries[n].ran_function));
|
||||
proto_item_set_generated(ti);
|
||||
|
||||
return table->entries[n].ran_function_pointers;
|
||||
}
|
||||
}
|
||||
|
||||
/* No match found.. */
|
||||
proto_item *ti = proto_tree_add_item(tree, hf_e2ap_unmapped_ran_function_id, tvb, 0, 0, ENC_NA);
|
||||
expert_add_info_format(pinfo, ti, &ei_e2ap_ran_function_id_not_mapped,
|
||||
"Service Model not mapped for FunctionID %u", ran_function_id);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
||||
/* Dissector tables */
|
||||
static dissector_table_t e2ap_ies_dissector_table;
|
||||
|
||||
//static dissector_table_t e2ap_ies_p1_dissector_table;
|
||||
//static dissector_table_t e2ap_ies_p2_dissector_table;
|
||||
static dissector_table_t e2ap_extension_dissector_table;
|
||||
static dissector_table_t e2ap_proc_imsg_dissector_table;
|
||||
static dissector_table_t e2ap_proc_sout_dissector_table;
|
||||
static dissector_table_t e2ap_proc_uout_dissector_table;
|
||||
static dissector_table_t e2ap_n2_ie_type_dissector_table;
|
||||
|
||||
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
|
||||
|
||||
/* Currently not used
|
||||
static int dissect_ProtocolIEFieldPairFirstValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
|
||||
static int dissect_ProtocolIEFieldPairSecondValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
|
||||
*/
|
||||
|
||||
|
||||
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
|
||||
static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
|
||||
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *);
|
||||
|
||||
|
||||
#include "packet-e2ap-fn.c"
|
||||
|
||||
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
||||
|
@ -128,6 +327,9 @@ static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto
|
|||
|
||||
return (dissector_try_uint_new(e2ap_ies_dissector_table, e2ap_data->protocol_ie_id, tvb, pinfo, tree, FALSE, &e2ap_ctx)) ? tvb_captured_length(tvb) : 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/* Currently not used
|
||||
static int dissect_ProtocolIEFieldPairFirstValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
|
@ -181,7 +383,6 @@ dissect_e2ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_
|
|||
e2ap_item = proto_tree_add_item(tree, proto_e2ap, tvb, 0, -1, ENC_NA);
|
||||
e2ap_tree = proto_item_add_subtree(e2ap_item, ett_e2ap);
|
||||
|
||||
|
||||
return dissect_E2AP_PDU_PDU(tvb, pinfo, e2ap_tree, NULL);
|
||||
}
|
||||
|
||||
|
@ -191,17 +392,12 @@ void
|
|||
proto_reg_handoff_e2ap(void)
|
||||
{
|
||||
dissector_add_uint_with_preference("sctp.port", SCTP_PORT_E2AP, e2ap_handle);
|
||||
#if 0
|
||||
/* TODO: should one or more of these be registered? */
|
||||
dissector_add_uint("sctp.ppi", E2_CP_PROTOCOL_ID, e2ap_handle);
|
||||
dissector_add_uint("sctp.ppi", E2_UP_PROTOCOL_ID, e2ap_handle);
|
||||
dissector_add_uint("sctp.ppi", E2_DU_PROTOCOL_ID, e2ap_handle);
|
||||
#endif
|
||||
|
||||
#include "packet-e2ap-dis-tab.c"
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*--- proto_register_e2ap -------------------------------------------*/
|
||||
void proto_register_e2ap(void) {
|
||||
|
||||
|
@ -209,7 +405,18 @@ void proto_register_e2ap(void) {
|
|||
|
||||
static hf_register_info hf[] = {
|
||||
#include "packet-e2ap-hfarr.c"
|
||||
|
||||
{ &hf_e2ap_unmapped_ran_function_id,
|
||||
{ "Unmapped RANfunctionID", "e2ap.unmapped-ran-function-id",
|
||||
FT_NONE, BASE_NONE, NULL, 0x0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_e2ap_ran_function_name_not_recognised,
|
||||
{ "RANfunction name not recognised", "e2ap.ran-function-name-not-recognised",
|
||||
FT_NONE, BASE_NONE, NULL, 0x0,
|
||||
NULL, HFILL }},
|
||||
{ &hf_e2ap_ran_function_setup_frame,
|
||||
{ "RANfunction setup frame", "e2ap.setup-frame",
|
||||
FT_FRAMENUM, BASE_NONE, NULL, 0x0,
|
||||
NULL, HFILL }}
|
||||
};
|
||||
|
||||
/* List of subtrees */
|
||||
|
@ -218,8 +425,12 @@ void proto_register_e2ap(void) {
|
|||
#include "packet-e2ap-ettarr.c"
|
||||
};
|
||||
|
||||
static ei_register_info ei[] = {
|
||||
{ &ei_e2ap_ran_function_names_no_match, { "e2ap.ran-function-names-no-match", PI_PROTOCOL, PI_WARN, "RAN Function name doesn't match known service models", EXPFILL }},
|
||||
{ &ei_e2ap_ran_function_id_not_mapped, { "e2ap.ran-function-id-not-known", PI_PROTOCOL, PI_WARN, "Service Model not known for RANFunctionID", EXPFILL }},
|
||||
};
|
||||
|
||||
/* module_t *e2ap_module; */
|
||||
expert_module_t* expert_e2ap;
|
||||
|
||||
/* Register protocol */
|
||||
proto_e2ap = proto_register_protocol(PNAME, PSNAME, PFNAME);
|
||||
|
@ -231,8 +442,12 @@ void proto_register_e2ap(void) {
|
|||
/* Register dissector */
|
||||
e2ap_handle = register_dissector("e2ap", dissect_e2ap, proto_e2ap);
|
||||
|
||||
expert_e2ap = expert_register_protocol(proto_e2ap);
|
||||
expert_register_field_array(expert_e2ap, ei, array_length(ei));
|
||||
|
||||
/* Register dissector tables */
|
||||
e2ap_ies_dissector_table = register_dissector_table("e2ap.ies", "E2AP-PROTOCOL-IES", proto_e2ap, FT_UINT32, BASE_DEC);
|
||||
|
||||
// e2ap_ies_p1_dissector_table = register_dissector_table("e2ap.ies.pair.first", "E2AP-PROTOCOL-IES-PAIR FirstValue", proto_e2ap, FT_UINT32, BASE_DEC);
|
||||
// e2ap_ies_p2_dissector_table = register_dissector_table("e2ap.ies.pair.second", "E2AP-PROTOCOL-IES-PAIR SecondValue", proto_e2ap, FT_UINT32, BASE_DEC);
|
||||
e2ap_extension_dissector_table = register_dissector_table("e2ap.extension", "E2AP-PROTOCOL-EXTENSION", proto_e2ap, FT_UINT32, BASE_DEC);
|
||||
|
@ -240,10 +455,6 @@ void proto_register_e2ap(void) {
|
|||
e2ap_proc_sout_dissector_table = register_dissector_table("e2ap.proc.sout", "E2AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_e2ap, FT_UINT32, BASE_DEC);
|
||||
e2ap_proc_uout_dissector_table = register_dissector_table("e2ap.proc.uout", "E2AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_e2ap, FT_UINT32, BASE_DEC);
|
||||
e2ap_n2_ie_type_dissector_table = register_dissector_table("e2ap.n2_ie_type", "E2AP N2 IE Type", proto_e2ap, FT_STRING, FALSE);
|
||||
|
||||
/* Register configuration options for ports */
|
||||
/* e2ap_module = prefs_register_protocol(proto_e2ap, NULL); */
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -815,7 +815,7 @@ class EthCtx:
|
|||
|
||||
#--- eth_reg_assign ---------------------------------------------------------
|
||||
def eth_reg_assign(self, ident, val, virt=False):
|
||||
#print "eth_reg_assign(ident='%s')" % (ident)
|
||||
#print("eth_reg_assign(ident='%s')" % (ident), 'module=', self.Module())
|
||||
if ident in self.assign:
|
||||
raise DuplicateError("assignment", ident)
|
||||
self.assign[ident] = { 'val' : val , 'virt' : virt }
|
||||
|
@ -935,13 +935,14 @@ class EthCtx:
|
|||
|
||||
#--- eth_reg_type -----------------------------------------------------------
|
||||
def eth_reg_type(self, ident, val, mod=None):
|
||||
#print "eth_reg_type(ident='%s', type='%s')" % (ident, val.type)
|
||||
#print("eth_reg_type(ident='%s', type='%s')" % (ident, val.type))
|
||||
if ident in self.type:
|
||||
if self.type[ident]['import'] and (self.type[ident]['import'] == self.Module()) :
|
||||
# replace imported type
|
||||
del self.type[ident]
|
||||
self.type_imp.remove(ident)
|
||||
else:
|
||||
#print('DuplicateError: import=', self.type[ident]['import'], 'module=', self.Module())
|
||||
raise DuplicateError("type", ident)
|
||||
val.ident = ident
|
||||
self.type[ident] = { 'val' : val, 'import' : None }
|
||||
|
|
Loading…
Reference in New Issue