forked from osmocom/wireshark
Add E2AP ORAN 1.00 dissector
This commit is contained in:
parent
21a204643e
commit
3248e2a759
|
@ -105,9 +105,7 @@ State Synchronization Protocol (SSyncP)
|
||||||
Tagged Image File Format (TIFF)
|
Tagged Image File Format (TIFF)
|
||||||
TP-Link Smart Home Protocol
|
TP-Link Smart Home Protocol
|
||||||
R09.x (R09)
|
R09.x (R09)
|
||||||
UAVCAN/CAN
|
O-RAN E2AP
|
||||||
UAVCAN DSDL
|
|
||||||
Van Jacobson PPP compression (VJC)
|
|
||||||
--
|
--
|
||||||
|
|
||||||
=== Updated Protocol Support
|
=== Updated Protocol Support
|
||||||
|
|
|
@ -91,6 +91,7 @@ set(CLEAN_ASN1_DISSECTOR_SRC
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-dop.c
|
${CMAKE_CURRENT_SOURCE_DIR}/packet-dop.c
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-dsp.c
|
${CMAKE_CURRENT_SOURCE_DIR}/packet-dsp.c
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-e1ap.c
|
${CMAKE_CURRENT_SOURCE_DIR}/packet-e1ap.c
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/packet-e2ap.c
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-ess.c
|
${CMAKE_CURRENT_SOURCE_DIR}/packet-ess.c
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-f1ap.c
|
${CMAKE_CURRENT_SOURCE_DIR}/packet-f1ap.c
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-ftam.c
|
${CMAKE_CURRENT_SOURCE_DIR}/packet-ftam.c
|
||||||
|
|
|
@ -34,6 +34,7 @@ set(ASN1_SRC_DIRS
|
||||||
dop
|
dop
|
||||||
dsp
|
dsp
|
||||||
e1ap
|
e1ap
|
||||||
|
e2ap
|
||||||
ess
|
ess
|
||||||
f1ap
|
f1ap
|
||||||
ftam
|
ftam
|
||||||
|
|
|
@ -0,0 +1,44 @@
|
||||||
|
# CMakeLists.txt
|
||||||
|
#
|
||||||
|
# Wireshark - Network traffic analyzer
|
||||||
|
# By Gerald Combs <gerald@wireshark.org>
|
||||||
|
# Copyright 1998 Gerald Combs
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
#
|
||||||
|
|
||||||
|
set( PROTOCOL_NAME e2ap )
|
||||||
|
|
||||||
|
set( PROTO_OPT )
|
||||||
|
|
||||||
|
set( EXPORT_FILES
|
||||||
|
${PROTOCOL_NAME}-exp.cnf
|
||||||
|
)
|
||||||
|
|
||||||
|
set( EXT_ASN_FILE_LIST
|
||||||
|
)
|
||||||
|
|
||||||
|
set( ASN_FILE_LIST
|
||||||
|
E2AP-CommonDataTypes.asn
|
||||||
|
E2AP-Constants.asn
|
||||||
|
E2AP-Containers.asn
|
||||||
|
E2AP-IEs.asn
|
||||||
|
E2AP-PDU-Contents.asn
|
||||||
|
E2AP-PDU-Descriptions.asn
|
||||||
|
e2sm-kpm-v1.asn
|
||||||
|
)
|
||||||
|
|
||||||
|
set( EXTRA_DIST
|
||||||
|
${ASN_FILE_LIST}
|
||||||
|
packet-${PROTOCOL_NAME}-template.c
|
||||||
|
${PROTOCOL_NAME}.cnf
|
||||||
|
)
|
||||||
|
|
||||||
|
set( SRC_FILES
|
||||||
|
${EXTRA_DIST}
|
||||||
|
${EXT_ASN_FILE_LIST}
|
||||||
|
)
|
||||||
|
|
||||||
|
set( A2W_FLAGS )
|
||||||
|
|
||||||
|
ASN2WRS()
|
|
@ -0,0 +1,27 @@
|
||||||
|
-- ASN1START
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- Common definitions
|
||||||
|
-- Derived from 3GPP 38.413 v15.4.0
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
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) }
|
||||||
|
|
||||||
|
DEFINITIONS AUTOMATIC TAGS ::=
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
Criticality ::= ENUMERATED { reject, ignore, notify }
|
||||||
|
|
||||||
|
Presence ::= ENUMERATED { optional, conditional, mandatory }
|
||||||
|
|
||||||
|
ProcedureCode ::= INTEGER (0..255)
|
||||||
|
|
||||||
|
ProtocolIE-ID ::= INTEGER (0..65535)
|
||||||
|
|
||||||
|
TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessfull-outcome }
|
||||||
|
|
||||||
|
END
|
||||||
|
-- ASN1STOP
|
|
@ -0,0 +1,93 @@
|
||||||
|
-- ASN1START
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- Constant definitions
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
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) }
|
||||||
|
|
||||||
|
DEFINITIONS AUTOMATIC TAGS ::=
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
IMPORTS
|
||||||
|
ProcedureCode,
|
||||||
|
ProtocolIE-ID
|
||||||
|
FROM E2AP-CommonDataTypes;
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- Elementary Procedures
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
id-E2setup ProcedureCode ::= 1
|
||||||
|
id-ErrorIndication ProcedureCode ::= 2
|
||||||
|
id-Reset ProcedureCode ::= 3
|
||||||
|
id-RICcontrol ProcedureCode ::= 4
|
||||||
|
id-RICindication ProcedureCode ::= 5
|
||||||
|
id-RICserviceQuery ProcedureCode ::= 6
|
||||||
|
id-RICserviceUpdate ProcedureCode ::= 7
|
||||||
|
id-RICsubscription ProcedureCode ::= 8
|
||||||
|
id-RICsubscriptionDelete ProcedureCode ::= 9
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- Extension constants
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
maxProtocolIEs INTEGER ::= 65535
|
||||||
|
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- Lists
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
maxnoofErrors INTEGER ::= 256
|
||||||
|
maxofRANfunctionID INTEGER ::= 256
|
||||||
|
maxofRICactionID INTEGER ::= 16
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- IEs
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
id-Cause ProtocolIE-ID ::= 1
|
||||||
|
id-CriticalityDiagnostics ProtocolIE-ID ::= 2
|
||||||
|
id-GlobalE2node-ID ProtocolIE-ID ::= 3
|
||||||
|
id-GlobalRIC-ID ProtocolIE-ID ::= 4
|
||||||
|
id-RANfunctionID ProtocolIE-ID ::= 5
|
||||||
|
id-RANfunctionID-Item ProtocolIE-ID ::= 6
|
||||||
|
id-RANfunctionIEcause-Item ProtocolIE-ID ::= 7
|
||||||
|
id-RANfunction-Item ProtocolIE-ID ::= 8
|
||||||
|
id-RANfunctionsAccepted ProtocolIE-ID ::= 9
|
||||||
|
id-RANfunctionsAdded ProtocolIE-ID ::= 10
|
||||||
|
id-RANfunctionsDeleted ProtocolIE-ID ::= 11
|
||||||
|
id-RANfunctionsModified ProtocolIE-ID ::= 12
|
||||||
|
id-RANfunctionsRejected ProtocolIE-ID ::= 13
|
||||||
|
id-RICaction-Admitted-Item ProtocolIE-ID ::= 14
|
||||||
|
id-RICactionID ProtocolIE-ID ::= 15
|
||||||
|
id-RICaction-NotAdmitted-Item ProtocolIE-ID ::= 16
|
||||||
|
id-RICactions-Admitted ProtocolIE-ID ::= 17
|
||||||
|
id-RICactions-NotAdmitted ProtocolIE-ID ::= 18
|
||||||
|
id-RICaction-ToBeSetup-Item ProtocolIE-ID ::= 19
|
||||||
|
id-RICcallProcessID ProtocolIE-ID ::= 20
|
||||||
|
id-RICcontrolAckRequest ProtocolIE-ID ::= 21
|
||||||
|
id-RICcontrolHeader ProtocolIE-ID ::= 22
|
||||||
|
id-RICcontrolMessage ProtocolIE-ID ::= 23
|
||||||
|
id-RICcontrolStatus ProtocolIE-ID ::= 24
|
||||||
|
id-RICindicationHeader ProtocolIE-ID ::= 25
|
||||||
|
id-RICindicationMessage ProtocolIE-ID ::= 26
|
||||||
|
id-RICindicationSN ProtocolIE-ID ::= 27
|
||||||
|
id-RICindicationType ProtocolIE-ID ::= 28
|
||||||
|
id-RICrequestID ProtocolIE-ID ::= 29
|
||||||
|
id-RICsubscriptionDetails ProtocolIE-ID ::= 30
|
||||||
|
id-TimeToWait ProtocolIE-ID ::= 31
|
||||||
|
id-RICcontrolOutcome ProtocolIE-ID ::= 32
|
||||||
|
|
||||||
|
|
||||||
|
END
|
||||||
|
-- ASN1STOP
|
|
@ -0,0 +1,132 @@
|
||||||
|
-- ASN1START
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- Container definitions
|
||||||
|
--
|
||||||
|
-- derived from 3GPP 38.413 v15.4.0
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
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) }
|
||||||
|
|
||||||
|
DEFINITIONS AUTOMATIC TAGS ::=
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- IE parameter types from other modules.
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
IMPORTS
|
||||||
|
|
||||||
|
Criticality,
|
||||||
|
Presence,
|
||||||
|
PrivateIE-ID,
|
||||||
|
ProtocolExtensionID,
|
||||||
|
ProtocolIE-ID
|
||||||
|
FROM E2AP-CommonDataTypes
|
||||||
|
|
||||||
|
maxProtocolIEs
|
||||||
|
FROM E2AP-Constants;
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- Class Definition for Protocol IEs
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
E2AP-PROTOCOL-IES ::= CLASS {
|
||||||
|
&id ProtocolIE-ID UNIQUE,
|
||||||
|
&criticality Criticality,
|
||||||
|
&Value,
|
||||||
|
&presence Presence
|
||||||
|
}
|
||||||
|
WITH SYNTAX {
|
||||||
|
ID &id
|
||||||
|
CRITICALITY &criticality
|
||||||
|
TYPE &Value
|
||||||
|
PRESENCE &presence
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- Class Definition for Protocol IEs
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
E2AP-PROTOCOL-IES-PAIR ::= CLASS {
|
||||||
|
&id ProtocolIE-ID UNIQUE,
|
||||||
|
&firstCriticality Criticality,
|
||||||
|
&FirstValue,
|
||||||
|
&secondCriticality Criticality,
|
||||||
|
&SecondValue,
|
||||||
|
&presence Presence
|
||||||
|
}
|
||||||
|
WITH SYNTAX {
|
||||||
|
ID &id
|
||||||
|
FIRST CRITICALITY &firstCriticality
|
||||||
|
FIRST TYPE &FirstValue
|
||||||
|
SECOND CRITICALITY &secondCriticality
|
||||||
|
SECOND TYPE &SecondValue
|
||||||
|
PRESENCE &presence
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- Container for Protocol IEs
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
ProtocolIE-Container {E2AP-PROTOCOL-IES : IEsSetParam} ::=
|
||||||
|
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
|
||||||
|
ProtocolIE-Field {{IEsSetParam}}
|
||||||
|
|
||||||
|
ProtocolIE-SingleContainer {E2AP-PROTOCOL-IES : IEsSetParam} ::=
|
||||||
|
ProtocolIE-Field {{IEsSetParam}}
|
||||||
|
|
||||||
|
ProtocolIE-Field {E2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
|
||||||
|
id E2AP-PROTOCOL-IES.&id ({IEsSetParam}),
|
||||||
|
criticality E2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
|
||||||
|
value E2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- Container for Protocol IE Pairs
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
ProtocolIE-ContainerPair {E2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
|
||||||
|
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
|
||||||
|
ProtocolIE-FieldPair {{IEsSetParam}}
|
||||||
|
|
||||||
|
ProtocolIE-FieldPair {E2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
|
||||||
|
id E2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
|
||||||
|
firstCriticality E2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
|
||||||
|
firstValue E2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
|
||||||
|
secondCriticality E2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
|
||||||
|
secondValue E2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- Container Lists for Protocol IE Containers
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, E2AP-PROTOCOL-IES : IEsSetParam} ::=
|
||||||
|
SEQUENCE (SIZE (lowerBound..upperBound)) OF
|
||||||
|
ProtocolIE-SingleContainer {{IEsSetParam}}
|
||||||
|
|
||||||
|
ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, E2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
|
||||||
|
SEQUENCE (SIZE (lowerBound..upperBound)) OF
|
||||||
|
ProtocolIE-ContainerPair {{IEsSetParam}}
|
||||||
|
|
||||||
|
|
||||||
|
END
|
||||||
|
-- ASN1STOP
|
|
@ -0,0 +1,384 @@
|
||||||
|
-- ASN1START
|
||||||
|
-- **************************************************************
|
||||||
|
-- E2AP
|
||||||
|
-- Information Element Definitions
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
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)}
|
||||||
|
|
||||||
|
DEFINITIONS AUTOMATIC TAGS ::=
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
IMPORTS
|
||||||
|
Criticality,
|
||||||
|
Presence,
|
||||||
|
ProcedureCode,
|
||||||
|
ProtocolIE-ID,
|
||||||
|
TriggeringMessage
|
||||||
|
FROM E2AP-CommonDataTypes
|
||||||
|
|
||||||
|
maxnoofErrors,
|
||||||
|
maxProtocolIEs
|
||||||
|
FROM E2AP-Constants;
|
||||||
|
|
||||||
|
-- A
|
||||||
|
-- B
|
||||||
|
-- C
|
||||||
|
Cause ::= CHOICE {
|
||||||
|
ricRequest CauseRIC,
|
||||||
|
ricService CauseRICservice,
|
||||||
|
transport CauseTransport,
|
||||||
|
protocol CauseProtocol,
|
||||||
|
misc CauseMisc,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
CauseMisc ::= ENUMERATED {
|
||||||
|
control-processing-overload,
|
||||||
|
hardware-failure,
|
||||||
|
om-intervention,
|
||||||
|
unspecified,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
CauseProtocol ::= ENUMERATED {
|
||||||
|
transfer-syntax-error,
|
||||||
|
abstract-syntax-error-reject,
|
||||||
|
abstract-syntax-error-ignore-and-notify,
|
||||||
|
message-not-compatible-with-receiver-state,
|
||||||
|
semantic-error,
|
||||||
|
abstract-syntax-error-falsely-constructed-message,
|
||||||
|
unspecified,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
CauseRIC ::= ENUMERATED {
|
||||||
|
ran-function-id-Invalid,
|
||||||
|
action-not-supported,
|
||||||
|
excessive-actions,
|
||||||
|
duplicate-action,
|
||||||
|
duplicate-event,
|
||||||
|
function-resource-limit,
|
||||||
|
request-id-unknown,
|
||||||
|
inconsistent-action-subsequent-action-sequence,
|
||||||
|
control-message-invalid,
|
||||||
|
call-process-id-invalid,
|
||||||
|
unspecified,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
CauseRICservice ::= ENUMERATED{
|
||||||
|
function-not-required,
|
||||||
|
excessive-functions,
|
||||||
|
ric-resource-limit,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
CauseTransport ::= ENUMERATED {
|
||||||
|
unspecified,
|
||||||
|
transport-resource-unavailable,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
-- copied from 3GPP 38.413 NGAP IEs v15.5.0
|
||||||
|
-- note: ie-Extensions removed
|
||||||
|
-- **************************************************************
|
||||||
|
CriticalityDiagnostics ::= SEQUENCE {
|
||||||
|
procedureCode ProcedureCode OPTIONAL,
|
||||||
|
triggeringMessage TriggeringMessage OPTIONAL,
|
||||||
|
procedureCriticality Criticality OPTIONAL,
|
||||||
|
ricRequestorID RICrequestID OPTIONAL,
|
||||||
|
iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE(1..maxnoofErrors)) OF CriticalityDiagnostics-IE-Item
|
||||||
|
|
||||||
|
CriticalityDiagnostics-IE-Item ::= SEQUENCE {
|
||||||
|
iECriticality Criticality,
|
||||||
|
iE-ID ProtocolIE-ID,
|
||||||
|
typeOfError TypeOfError,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- D
|
||||||
|
-- E
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
-- copied from 3GPP X2AP IEs v15.4.0
|
||||||
|
-- note: ie-Extensions removed
|
||||||
|
-- **************************************************************
|
||||||
|
ENB-ID ::= CHOICE {
|
||||||
|
macro-eNB-ID BIT STRING (SIZE (20)),
|
||||||
|
home-eNB-ID BIT STRING (SIZE (28)),
|
||||||
|
... ,
|
||||||
|
short-Macro-eNB-ID BIT STRING (SIZE(18)),
|
||||||
|
long-Macro-eNB-ID BIT STRING (SIZE(21))
|
||||||
|
}
|
||||||
|
-- **************************************************************
|
||||||
|
-- copied from 3GPP 38.423 v15.5.0 XnAP IEs
|
||||||
|
-- **************************************************************
|
||||||
|
ENB-ID-Choice ::= CHOICE {
|
||||||
|
enb-ID-macro BIT STRING (SIZE(20)),
|
||||||
|
enb-ID-shortmacro BIT STRING (SIZE(18)),
|
||||||
|
enb-ID-longmacro BIT STRING (SIZE(21)),
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
-- copied from 3GPP X2AP IEs v15.4.0
|
||||||
|
-- note: ie-Extensions removed
|
||||||
|
-- Note: to avoid duplicate names with XnAP, GNB-ID renamed ENGNB-ID, GlobalGNB-ID renamed GlobalenGNB-ID
|
||||||
|
-- **************************************************************
|
||||||
|
ENGNB-ID ::= CHOICE {
|
||||||
|
gNB-ID BIT STRING (SIZE (22..32)),
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- F
|
||||||
|
-- G
|
||||||
|
GlobalE2node-ID ::= CHOICE{
|
||||||
|
gNB GlobalE2node-gNB-ID,
|
||||||
|
en-gNB GlobalE2node-en-gNB-ID,
|
||||||
|
ng-eNB GlobalE2node-ng-eNB-ID,
|
||||||
|
eNB GlobalE2node-eNB-ID,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
GlobalE2node-en-gNB-ID ::= SEQUENCE{
|
||||||
|
global-gNB-ID GlobalenGNB-ID,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
GlobalE2node-eNB-ID ::= SEQUENCE{
|
||||||
|
global-eNB-ID GlobalENB-ID,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
GlobalE2node-gNB-ID ::= SEQUENCE{
|
||||||
|
global-gNB-ID GlobalgNB-ID,
|
||||||
|
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,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
-- **************************************************************
|
||||||
|
-- copied from 3GPP X2AP IEs v15.4.0
|
||||||
|
-- note: ie-Extensions removed
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
GlobalENB-ID ::= SEQUENCE {
|
||||||
|
pLMN-Identity PLMN-Identity,
|
||||||
|
eNB-ID ENB-ID,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
-- **************************************************************
|
||||||
|
-- copied from 3GPP X2AP IEs v15.4.0
|
||||||
|
-- Note: to avoid duplicate names with XnAP, GNB-ID renamed ENGNB-ID, GlobalGNB-ID renamed GlobalenGNB-ID
|
||||||
|
-- **************************************************************
|
||||||
|
GlobalenGNB-ID ::= SEQUENCE {
|
||||||
|
pLMN-Identity PLMN-Identity,
|
||||||
|
gNB-ID ENGNB-ID,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
-- **************************************************************
|
||||||
|
-- copied from 3GPP 38.423 v15.5.0 XnAP IEs
|
||||||
|
-- **************************************************************
|
||||||
|
GlobalgNB-ID ::= SEQUENCE {
|
||||||
|
plmn-id PLMN-Identity,
|
||||||
|
gnb-id GNB-ID-Choice,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
-- copied from 3GPP 38.423 v15.5.0 XnAP IEs
|
||||||
|
-- **************************************************************
|
||||||
|
GlobalngeNB-ID ::= SEQUENCE {
|
||||||
|
plmn-id PLMN-Identity,
|
||||||
|
enb-id ENB-ID-Choice,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
GlobalRIC-ID ::= SEQUENCE{
|
||||||
|
pLMN-Identity PLMN-Identity,
|
||||||
|
ric-ID BIT STRING (SIZE (20)),
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
-- copied from 3GPP 38.463 v15.5.0 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
|
||||||
|
-- **************************************************************
|
||||||
|
GNB-ID-Choice ::= CHOICE {
|
||||||
|
gnb-ID BIT STRING (SIZE(22..32)),
|
||||||
|
...
|
||||||
|
}
|
||||||
|
-- H
|
||||||
|
-- I
|
||||||
|
-- J
|
||||||
|
-- K
|
||||||
|
-- L
|
||||||
|
-- M
|
||||||
|
-- N
|
||||||
|
-- O
|
||||||
|
-- P
|
||||||
|
-- **************************************************************
|
||||||
|
-- copied from 3GPP X2AP IEs v15.4.0
|
||||||
|
-- **************************************************************
|
||||||
|
PLMN-Identity ::= OCTET STRING (SIZE(3))
|
||||||
|
|
||||||
|
-- Q
|
||||||
|
-- R
|
||||||
|
-- **************************************************************
|
||||||
|
-- Following IE defined in E2SM
|
||||||
|
-- **************************************************************
|
||||||
|
RANfunctionDefinition ::= OCTET STRING
|
||||||
|
|
||||||
|
RANfunctionID ::= INTEGER (0..4095)
|
||||||
|
|
||||||
|
RANfunctionRevision ::= INTEGER (0..4095)
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
-- Following IE defined in E2SM
|
||||||
|
-- **************************************************************
|
||||||
|
RICactionDefinition ::= OCTET STRING
|
||||||
|
|
||||||
|
RICactionID ::= INTEGER (0..255)
|
||||||
|
|
||||||
|
RICactionType ::= ENUMERATED{
|
||||||
|
report,
|
||||||
|
insert,
|
||||||
|
policy,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
-- Following IE defined in E2SM
|
||||||
|
-- **************************************************************
|
||||||
|
RICcallProcessID ::= OCTET STRING
|
||||||
|
|
||||||
|
RICcontrolAckRequest ::= ENUMERATED{
|
||||||
|
noAck,
|
||||||
|
ack,
|
||||||
|
nAck,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
-- Following IE defined in E2SM
|
||||||
|
-- **************************************************************
|
||||||
|
RICcontrolHeader ::= OCTET STRING
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
-- Following IE defined in E2SM
|
||||||
|
-- **************************************************************
|
||||||
|
RICcontrolMessage ::= OCTET STRING
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
-- Following IE defined in E2SM
|
||||||
|
-- **************************************************************
|
||||||
|
RICcontrolOutcome ::= OCTET STRING
|
||||||
|
|
||||||
|
RICcontrolStatus ::= ENUMERATED{
|
||||||
|
success,
|
||||||
|
rejected,
|
||||||
|
failed,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
-- Following IE defined in E2SM
|
||||||
|
-- **************************************************************
|
||||||
|
RICeventTriggerDefinition ::= OCTET STRING
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
-- Following IE defined in E2SM
|
||||||
|
-- **************************************************************
|
||||||
|
RICindicationHeader ::= OCTET STRING
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
-- Following IE defined in E2SM
|
||||||
|
-- **************************************************************
|
||||||
|
RICindicationMessage ::= OCTET STRING
|
||||||
|
|
||||||
|
RICindicationSN ::= INTEGER (0..65535)
|
||||||
|
|
||||||
|
RICindicationType ::= ENUMERATED{
|
||||||
|
report,
|
||||||
|
insert,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
RICrequestID ::= SEQUENCE {
|
||||||
|
ricRequestorID INTEGER (0..65535),
|
||||||
|
ricInstanceID INTEGER (0..65535),
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
RICsubsequentAction ::=SEQUENCE{
|
||||||
|
ricSubsequentActionType RICsubsequentActionType,
|
||||||
|
ricTimeToWait RICtimeToWait,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
RICsubsequentActionType ::= ENUMERATED{
|
||||||
|
continue,
|
||||||
|
wait,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
RICtimeToWait ::= ENUMERATED{
|
||||||
|
zero,
|
||||||
|
w1ms,
|
||||||
|
w2ms,
|
||||||
|
w5ms,
|
||||||
|
w10ms,
|
||||||
|
w20ms,
|
||||||
|
w30ms,
|
||||||
|
w40ms,
|
||||||
|
w50ms,
|
||||||
|
w100ms,
|
||||||
|
w200ms,
|
||||||
|
w500ms,
|
||||||
|
w1s,
|
||||||
|
w2s,
|
||||||
|
w5s,
|
||||||
|
w10s,
|
||||||
|
w20s,
|
||||||
|
w60s,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
-- S
|
||||||
|
-- T
|
||||||
|
-- **************************************************************
|
||||||
|
-- copied from 3GPP 38.413 NGAP IEs v15.5.0
|
||||||
|
-- **************************************************************
|
||||||
|
TimeToWait ::= ENUMERATED {v1s, v2s, v5s, v10s, v20s, v60s, ...}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
-- copied from 3GPP 38.413 NGAP IEs v15.5.0
|
||||||
|
-- **************************************************************
|
||||||
|
TypeOfError ::= ENUMERATED {
|
||||||
|
not-understood,
|
||||||
|
missing,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- U
|
||||||
|
-- V
|
||||||
|
-- W
|
||||||
|
-- X
|
||||||
|
-- Y
|
||||||
|
-- Z
|
||||||
|
|
||||||
|
END
|
||||||
|
-- ASN1STOP
|
|
@ -0,0 +1,595 @@
|
||||||
|
-- ASN1START
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- PDU definitions for E2AP
|
||||||
|
-- Derived from 3GPP 38.413 v15.4.0 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) }
|
||||||
|
|
||||||
|
DEFINITIONS AUTOMATIC TAGS ::=
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- IE parameter types from other modules.
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
IMPORTS
|
||||||
|
Cause,
|
||||||
|
CriticalityDiagnostics,
|
||||||
|
GlobalE2node-ID,
|
||||||
|
GlobalRIC-ID,
|
||||||
|
RANfunctionDefinition,
|
||||||
|
RANfunctionID,
|
||||||
|
RANfunctionRevision,
|
||||||
|
RICactionDefinition,
|
||||||
|
RICactionID,
|
||||||
|
RICactionType,
|
||||||
|
RICcallProcessID,
|
||||||
|
RICcontrolAckRequest,
|
||||||
|
RICcontrolHeader,
|
||||||
|
RICcontrolMessage,
|
||||||
|
RICcontrolOutcome,
|
||||||
|
RICcontrolStatus,
|
||||||
|
RICeventTriggerDefinition,
|
||||||
|
RICindicationHeader,
|
||||||
|
RICindicationMessage,
|
||||||
|
RICindicationSN,
|
||||||
|
RICindicationType,
|
||||||
|
RICrequestID,
|
||||||
|
RICsubsequentAction,
|
||||||
|
TimeToWait
|
||||||
|
FROM E2AP-IEs
|
||||||
|
|
||||||
|
ProtocolIE-Container{},
|
||||||
|
ProtocolIE-ContainerList{},
|
||||||
|
ProtocolIE-SingleContainer{},
|
||||||
|
E2AP-PROTOCOL-IES,
|
||||||
|
E2AP-PROTOCOL-IES-PAIR
|
||||||
|
FROM E2AP-Containers
|
||||||
|
|
||||||
|
id-Cause,
|
||||||
|
id-CriticalityDiagnostics,
|
||||||
|
id-GlobalE2node-ID,
|
||||||
|
id-GlobalRIC-ID,
|
||||||
|
id-RANfunctionID,
|
||||||
|
id-RANfunctionID-Item,
|
||||||
|
id-RANfunctionIEcause-Item,
|
||||||
|
id-RANfunction-Item,
|
||||||
|
id-RANfunctionsAccepted,
|
||||||
|
id-RANfunctionsAdded,
|
||||||
|
id-RANfunctionsDeleted,
|
||||||
|
id-RANfunctionsModified,
|
||||||
|
id-RANfunctionsRejected,
|
||||||
|
id-RICaction-Admitted-Item,
|
||||||
|
id-RICactionID,
|
||||||
|
id-RICaction-NotAdmitted-Item,
|
||||||
|
id-RICactions-Admitted,
|
||||||
|
id-RICactions-NotAdmitted,
|
||||||
|
id-RICaction-ToBeSetup-Item,
|
||||||
|
id-RICcallProcessID,
|
||||||
|
id-RICcontrolAckRequest,
|
||||||
|
id-RICcontrolHeader,
|
||||||
|
id-RICcontrolMessage,
|
||||||
|
id-RICcontrolOutcome,
|
||||||
|
id-RICcontrolStatus,
|
||||||
|
id-RICindicationHeader,
|
||||||
|
id-RICindicationMessage,
|
||||||
|
id-RICindicationSN,
|
||||||
|
id-RICindicationType,
|
||||||
|
id-RICrequestID,
|
||||||
|
id-RICserviceQuery,
|
||||||
|
id-RICsubscriptionDetails,
|
||||||
|
id-TimeToWait,
|
||||||
|
|
||||||
|
maxofRANfunctionID,
|
||||||
|
maxofRICactionID
|
||||||
|
FROM E2AP-Constants;
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- MESSAGES FOR NEAR-RT RIC FUNCTIONAL PROCEDURES
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- RIC Subscription Elementary Procedure
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- RIC SUBSCRIPTION REQUEST
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
RICsubscriptionRequest ::= SEQUENCE {
|
||||||
|
protocolIEs ProtocolIE-Container {{RICsubscriptionRequest-IEs}},
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
RICsubscriptionRequest-IEs E2AP-PROTOCOL-IES ::= {
|
||||||
|
{ ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory}|
|
||||||
|
{ ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory}|
|
||||||
|
{ ID id-RICsubscriptionDetails CRITICALITY reject TYPE RICsubscriptionDetails PRESENCE mandatory},
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
RICsubscriptionDetails ::= SEQUENCE {
|
||||||
|
ricEventTriggerDefinition RICeventTriggerDefinition,
|
||||||
|
ricAction-ToBeSetup-List RICactions-ToBeSetup-List,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
RICactions-ToBeSetup-List ::= SEQUENCE (SIZE(1..maxofRICactionID)) OF ProtocolIE-SingleContainer { {RICaction-ToBeSetup-ItemIEs} }
|
||||||
|
|
||||||
|
RICaction-ToBeSetup-ItemIEs E2AP-PROTOCOL-IES ::= {
|
||||||
|
{ ID id-RICaction-ToBeSetup-Item CRITICALITY ignore TYPE RICaction-ToBeSetup-Item PRESENCE mandatory },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
RICaction-ToBeSetup-Item ::= SEQUENCE {
|
||||||
|
ricActionID RICactionID,
|
||||||
|
ricActionType RICactionType,
|
||||||
|
ricActionDefinition RICactionDefinition OPTIONAL,
|
||||||
|
ricSubsequentAction RICsubsequentAction OPTIONAL,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- RIC SUBSCRIPTION RESPONSE
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
RICsubscriptionResponse ::= SEQUENCE {
|
||||||
|
protocolIEs ProtocolIE-Container{{RICsubscriptionResponse-IEs}},
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
RICsubscriptionResponse-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-Admitted CRITICALITY reject TYPE RICaction-Admitted-List PRESENCE mandatory } |
|
||||||
|
{ ID id-RICactions-NotAdmitted CRITICALITY reject TYPE RICaction-NotAdmitted-List PRESENCE optional },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
RICaction-Admitted-List ::= SEQUENCE (SIZE(1..maxofRICactionID)) OF ProtocolIE-SingleContainer{{RICaction-Admitted-ItemIEs}}
|
||||||
|
|
||||||
|
RICaction-Admitted-ItemIEs E2AP-PROTOCOL-IES ::= {
|
||||||
|
{ ID id-RICaction-Admitted-Item CRITICALITY ignore TYPE RICaction-Admitted-Item PRESENCE mandatory },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
RICaction-Admitted-Item ::= SEQUENCE {
|
||||||
|
ricActionID RICactionID,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
RICaction-NotAdmitted-List ::= SEQUENCE (SIZE(0..maxofRICactionID)) OF ProtocolIE-SingleContainer { {RICaction-NotAdmitted-ItemIEs} }
|
||||||
|
|
||||||
|
RICaction-NotAdmitted-ItemIEs E2AP-PROTOCOL-IES ::= {
|
||||||
|
{ ID id-RICaction-NotAdmitted-Item CRITICALITY ignore TYPE RICaction-NotAdmitted-Item PRESENCE mandatory },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
RICaction-NotAdmitted-Item ::= SEQUENCE {
|
||||||
|
ricActionID RICactionID,
|
||||||
|
cause Cause,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- RIC SUBSCRIPTION FAILURE
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
RICsubscriptionFailure ::= SEQUENCE {
|
||||||
|
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-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- RIC Subscription Delete Elementary Procedure
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- RIC SUBSCRIPTION DELETE REQUEST
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
RICsubscriptionDeleteRequest ::= SEQUENCE {
|
||||||
|
protocolIEs ProtocolIE-Container {{RICsubscriptionDeleteRequest-IEs}},
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
RICsubscriptionDeleteRequest-IEs E2AP-PROTOCOL-IES ::= {
|
||||||
|
{ ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory }|
|
||||||
|
{ ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- RIC SUBSCRIPTION DELETE RESPONSE
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
RICsubscriptionDeleteResponse ::= SEQUENCE {
|
||||||
|
protocolIEs ProtocolIE-Container {{RICsubscriptionDeleteResponse-IEs}},
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
RICsubscriptionDeleteResponse-IEs E2AP-PROTOCOL-IES ::= {
|
||||||
|
{ ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory }|
|
||||||
|
{ ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- RIC SUBSCRIPTION DELETE FAILURE
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
RICsubscriptionDeleteFailure ::= SEQUENCE {
|
||||||
|
protocolIEs ProtocolIE-Container {{RICsubscriptionDeleteFailure-IEs}},
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
RICsubscriptionDeleteFailure-IEs E2AP-PROTOCOL-IES ::= {
|
||||||
|
{ ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory }|
|
||||||
|
{ ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory }|
|
||||||
|
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory }|
|
||||||
|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- RIC Indication Elementary Procedure
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- RIC INDICATION
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
RICindication ::= SEQUENCE {
|
||||||
|
protocolIEs ProtocolIE-Container {{RICindication-IEs}},
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
RICindication-IEs E2AP-PROTOCOL-IES ::= {
|
||||||
|
{ ID id-RICrequestID CRITICALITY reject TYPE RICrequestID PRESENCE mandatory }|
|
||||||
|
{ ID id-RANfunctionID CRITICALITY reject TYPE RANfunctionID PRESENCE mandatory }|
|
||||||
|
{ ID id-RICactionID CRITICALITY reject TYPE RICactionID PRESENCE mandatory }|
|
||||||
|
{ ID id-RICindicationSN CRITICALITY reject TYPE RICindicationSN PRESENCE optional }|
|
||||||
|
{ ID id-RICindicationType CRITICALITY reject TYPE RICindicationType PRESENCE mandatory }|
|
||||||
|
{ ID id-RICindicationHeader CRITICALITY reject TYPE RICindicationHeader PRESENCE mandatory }|
|
||||||
|
{ ID id-RICindicationMessage CRITICALITY reject TYPE RICindicationMessage PRESENCE mandatory }|
|
||||||
|
{ ID id-RICcallProcessID CRITICALITY reject TYPE RICcallProcessID PRESENCE optional },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- RIC Control Elementary Procedure
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- RIC CONTROL REQUEST
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
RICcontrolRequest ::= SEQUENCE {
|
||||||
|
protocolIEs ProtocolIE-Container {{RICcontrolRequest-IEs}},
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
RICcontrolRequest-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-RICcontrolHeader CRITICALITY reject TYPE RICcontrolHeader PRESENCE mandatory }|
|
||||||
|
{ ID id-RICcontrolMessage CRITICALITY reject TYPE RICcontrolMessage PRESENCE mandatory }|
|
||||||
|
{ ID id-RICcontrolAckRequest CRITICALITY reject TYPE RICcontrolAckRequest PRESENCE optional },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- RIC CONTROL ACKNOWLEDGE
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
RICcontrolAcknowledge ::= SEQUENCE {
|
||||||
|
protocolIEs ProtocolIE-Container {{RICcontrolAcknowledge-IEs}},
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
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 },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- RIC CONTROL FAILURE
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
RICcontrolFailure ::= SEQUENCE {
|
||||||
|
protocolIEs ProtocolIE-Container {{RICcontrolFailure-IEs}},
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
RICcontrolFailure-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-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
|
||||||
|
{ ID id-RICcontrolOutcome CRITICALITY reject TYPE RICcontrolOutcome PRESENCE optional },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- MESSAGES FOR GLOBAL PROCEDURES
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- Error Indication Elementary Procedure
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- ERROR INDICATION
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
ErrorIndication ::= SEQUENCE {
|
||||||
|
protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}},
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
ErrorIndication-IEs E2AP-PROTOCOL-IES ::= {
|
||||||
|
{ 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 }|
|
||||||
|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- E2 Setup Elementary Procedure
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- E2 SETUP REQUEST
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
E2setupRequest ::= SEQUENCE {
|
||||||
|
protocolIEs ProtocolIE-Container { {E2setupRequestIEs} },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
E2setupRequestIEs E2AP-PROTOCOL-IES ::= {
|
||||||
|
{ ID id-GlobalE2node-ID CRITICALITY reject TYPE GlobalE2node-ID PRESENCE mandatory }|
|
||||||
|
{ ID id-RANfunctionsAdded CRITICALITY reject TYPE RANfunctions-List PRESENCE optional },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- E2 SETUP RESPONSE
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
E2setupResponse ::= SEQUENCE {
|
||||||
|
protocolIEs ProtocolIE-Container { {E2setupResponseIEs} },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
E2setupResponseIEs E2AP-PROTOCOL-IES ::= {
|
||||||
|
{ 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 },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- E2 SETUP FAILURE
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
E2setupFailure ::= SEQUENCE {
|
||||||
|
protocolIEs ProtocolIE-Container { {E2setupFailureIEs} },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
E2setupFailureIEs E2AP-PROTOCOL-IES ::= {
|
||||||
|
{ 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 },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- Reset Elementary Procedure
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- RESET REQUEST
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
ResetRequest ::= SEQUENCE {
|
||||||
|
protocolIEs ProtocolIE-Container { {ResetRequestIEs} },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
ResetRequestIEs E2AP-PROTOCOL-IES ::= {
|
||||||
|
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- RESET RESPONSE
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
ResetResponse ::= SEQUENCE {
|
||||||
|
protocolIEs ProtocolIE-Container { {ResetResponseIEs} },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
ResetResponseIEs E2AP-PROTOCOL-IES ::= {
|
||||||
|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- RIC Service Update Elementary Procedure
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- RIC SERVICE UPDATE
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
RICserviceUpdate ::= SEQUENCE {
|
||||||
|
protocolIEs ProtocolIE-Container {{RICserviceUpdate-IEs}},
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
RICserviceUpdate-IEs E2AP-PROTOCOL-IES ::= {
|
||||||
|
{ 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
|
||||||
|
|
||||||
|
RANfunction-ItemIEs E2AP-PROTOCOL-IES ::= {
|
||||||
|
{ ID id-RANfunction-Item CRITICALITY ignore TYPE RANfunction-Item PRESENCE mandatory },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
RANfunction-Item ::= SEQUENCE {
|
||||||
|
ranFunctionID RANfunctionID,
|
||||||
|
ranFunctionDefinition RANfunctionDefinition,
|
||||||
|
ranFunctionRevision RANfunctionRevision,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
RANfunctionsID-List ::= SEQUENCE (SIZE(0..maxofRANfunctionID)) OF ProtocolIE-SingleContainer{{RANfunctionID-ItemIEs}}
|
||||||
|
|
||||||
|
RANfunctionID-ItemIEs E2AP-PROTOCOL-IES ::= {
|
||||||
|
{ ID id-RANfunctionID-Item CRITICALITY ignore TYPE RANfunctionID-Item PRESENCE mandatory },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
RANfunctionID-Item ::= SEQUENCE {
|
||||||
|
ranFunctionID RANfunctionID,
|
||||||
|
ranFunctionRevision RANfunctionRevision,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- RIC SERVICE UPDATE ACKNOWLEDGE
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
RICserviceUpdateAcknowledge ::= SEQUENCE {
|
||||||
|
protocolIEs ProtocolIE-Container {{RICserviceUpdateAcknowledge-IEs}},
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
RICserviceUpdateAcknowledge-IEs E2AP-PROTOCOL-IES ::= {
|
||||||
|
{ ID id-RANfunctionsAccepted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional }|
|
||||||
|
{ ID id-RANfunctionsRejected CRITICALITY reject TYPE RANfunctionsIDcause-List PRESENCE optional },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
RANfunctionsIDcause-List ::= SEQUENCE (SIZE(0..maxofRANfunctionID)) OF ProtocolIE-SingleContainer { {RANfunctionIDcause-ItemIEs} }
|
||||||
|
|
||||||
|
RANfunctionIDcause-ItemIEs E2AP-PROTOCOL-IES ::= {
|
||||||
|
{ ID id-RANfunctionIEcause-Item CRITICALITY ignore TYPE RANfunctionIDcause-Item PRESENCE mandatory },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
RANfunctionIDcause-Item ::= SEQUENCE {
|
||||||
|
ranFunctionID RANfunctionID,
|
||||||
|
cause Cause,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- RIC SERVICE UPDATE FAILURE
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
RICserviceUpdateFailure ::= SEQUENCE {
|
||||||
|
protocolIEs ProtocolIE-Container {{RICserviceUpdateFailure-IEs}},
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
RICserviceUpdateFailure-IEs E2AP-PROTOCOL-IES ::= {
|
||||||
|
{ ID id-RANfunctionsRejected CRITICALITY ignore TYPE RANfunctionsIDcause-List PRESENCE optional }|
|
||||||
|
{ ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional }|
|
||||||
|
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- RIC Service Query Elementary Procedure
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- RIC SERVICE QUERY
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
RICserviceQuery ::= SEQUENCE {
|
||||||
|
protocolIEs ProtocolIE-Container {{RICserviceQuery-IEs}},
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
RICserviceQuery-IEs E2AP-PROTOCOL-IES ::= {
|
||||||
|
{ ID id-RANfunctionsAccepted CRITICALITY reject TYPE RANfunctionsID-List PRESENCE optional },
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
END
|
||||||
|
-- ASN1STOP
|
|
@ -0,0 +1,216 @@
|
||||||
|
-- ASN1START
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- Elementary Procedure definitions
|
||||||
|
-- Derived from 3GPP 38.413 v15.4.0 NGAP
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
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) }
|
||||||
|
|
||||||
|
DEFINITIONS AUTOMATIC TAGS ::=
|
||||||
|
|
||||||
|
BEGIN
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- IE parameter types from other modules.
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
IMPORTS
|
||||||
|
Criticality,
|
||||||
|
ProcedureCode
|
||||||
|
FROM E2AP-CommonDataTypes
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
E2setupFailure,
|
||||||
|
E2setupRequest,
|
||||||
|
E2setupResponse,
|
||||||
|
ErrorIndication,
|
||||||
|
ResetRequest,
|
||||||
|
ResetResponse,
|
||||||
|
RICcontrolAcknowledge,
|
||||||
|
RICcontrolFailure,
|
||||||
|
RICcontrolRequest,
|
||||||
|
RICindication,
|
||||||
|
RICserviceQuery,
|
||||||
|
RICserviceUpdate,
|
||||||
|
RICserviceUpdateAcknowledge,
|
||||||
|
RICserviceUpdateFailure,
|
||||||
|
RICsubscriptionFailure,
|
||||||
|
RICsubscriptionRequest,
|
||||||
|
RICsubscriptionResponse,
|
||||||
|
RICsubscriptionDeleteFailure,
|
||||||
|
RICsubscriptionDeleteRequest,
|
||||||
|
RICsubscriptionDeleteResponse
|
||||||
|
FROM E2AP-PDU-Contents
|
||||||
|
|
||||||
|
id-E2setup,
|
||||||
|
id-ErrorIndication,
|
||||||
|
id-Reset,
|
||||||
|
id-RICcontrol,
|
||||||
|
id-RICindication,
|
||||||
|
id-RICserviceQuery,
|
||||||
|
id-RICserviceUpdate,
|
||||||
|
id-RICsubscription,
|
||||||
|
id-RICsubscriptionDelete
|
||||||
|
FROM E2AP-Constants;
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- Interface Elementary Procedure Class
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
E2AP-ELEMENTARY-PROCEDURE ::= CLASS {
|
||||||
|
&InitiatingMessage ,
|
||||||
|
&SuccessfulOutcome OPTIONAL ,
|
||||||
|
&UnsuccessfulOutcome OPTIONAL ,
|
||||||
|
&procedureCode ProcedureCode UNIQUE ,
|
||||||
|
&criticality Criticality DEFAULT ignore
|
||||||
|
}
|
||||||
|
|
||||||
|
WITH SYNTAX {
|
||||||
|
INITIATING MESSAGE &InitiatingMessage
|
||||||
|
[SUCCESSFUL OUTCOME &SuccessfulOutcome]
|
||||||
|
[UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
|
||||||
|
PROCEDURE CODE &procedureCode
|
||||||
|
[CRITICALITY &criticality]
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- Interface PDU Definition
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
E2AP-PDU ::= CHOICE {
|
||||||
|
initiatingMessage InitiatingMessage,
|
||||||
|
successfulOutcome SuccessfulOutcome,
|
||||||
|
unsuccessfulOutcome UnsuccessfulOutcome,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
InitiatingMessage ::= SEQUENCE {
|
||||||
|
procedureCode E2AP-ELEMENTARY-PROCEDURE.&procedureCode ({E2AP-ELEMENTARY-PROCEDURES}),
|
||||||
|
criticality E2AP-ELEMENTARY-PROCEDURE.&criticality ({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||||
|
value E2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||||
|
}
|
||||||
|
|
||||||
|
SuccessfulOutcome ::= SEQUENCE {
|
||||||
|
procedureCode E2AP-ELEMENTARY-PROCEDURE.&procedureCode ({E2AP-ELEMENTARY-PROCEDURES}),
|
||||||
|
criticality E2AP-ELEMENTARY-PROCEDURE.&criticality ({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||||
|
value E2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||||
|
}
|
||||||
|
|
||||||
|
UnsuccessfulOutcome ::= SEQUENCE {
|
||||||
|
procedureCode E2AP-ELEMENTARY-PROCEDURE.&procedureCode ({E2AP-ELEMENTARY-PROCEDURES}),
|
||||||
|
criticality E2AP-ELEMENTARY-PROCEDURE.&criticality ({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||||
|
value E2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({E2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- Interface Elementary Procedure List
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
E2AP-ELEMENTARY-PROCEDURES E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||||
|
E2AP-ELEMENTARY-PROCEDURES-CLASS-1 |
|
||||||
|
E2AP-ELEMENTARY-PROCEDURES-CLASS-2,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
E2AP-ELEMENTARY-PROCEDURES-CLASS-1 E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||||
|
ricSubscription |
|
||||||
|
ricSubscriptionDelete |
|
||||||
|
ricServiceUpdate |
|
||||||
|
ricControl |
|
||||||
|
e2setup |
|
||||||
|
reset,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
E2AP-ELEMENTARY-PROCEDURES-CLASS-2 E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||||
|
ricIndication |
|
||||||
|
ricServiceQuery |
|
||||||
|
errorIndication,
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
-- **************************************************************
|
||||||
|
--
|
||||||
|
-- Interface Elementary Procedures
|
||||||
|
--
|
||||||
|
-- **************************************************************
|
||||||
|
|
||||||
|
e2setup E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||||
|
INITIATING MESSAGE E2setupRequest
|
||||||
|
SUCCESSFUL OUTCOME E2setupResponse
|
||||||
|
UNSUCCESSFUL OUTCOME E2setupFailure
|
||||||
|
PROCEDURE CODE id-E2setup
|
||||||
|
CRITICALITY reject
|
||||||
|
}
|
||||||
|
|
||||||
|
errorIndication E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||||
|
INITIATING MESSAGE ErrorIndication
|
||||||
|
PROCEDURE CODE id-ErrorIndication
|
||||||
|
CRITICALITY ignore
|
||||||
|
}
|
||||||
|
|
||||||
|
reset E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||||
|
INITIATING MESSAGE ResetRequest
|
||||||
|
SUCCESSFUL OUTCOME ResetResponse
|
||||||
|
PROCEDURE CODE id-Reset
|
||||||
|
CRITICALITY reject
|
||||||
|
}
|
||||||
|
|
||||||
|
ricControl E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||||
|
INITIATING MESSAGE RICcontrolRequest
|
||||||
|
SUCCESSFUL OUTCOME RICcontrolAcknowledge
|
||||||
|
UNSUCCESSFUL OUTCOME RICcontrolFailure
|
||||||
|
PROCEDURE CODE id-RICcontrol
|
||||||
|
CRITICALITY reject
|
||||||
|
}
|
||||||
|
|
||||||
|
ricIndication E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||||
|
INITIATING MESSAGE RICindication
|
||||||
|
PROCEDURE CODE id-RICindication
|
||||||
|
CRITICALITY ignore
|
||||||
|
}
|
||||||
|
|
||||||
|
ricServiceQuery E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||||
|
INITIATING MESSAGE RICserviceQuery
|
||||||
|
PROCEDURE CODE id-RICserviceQuery
|
||||||
|
CRITICALITY ignore
|
||||||
|
}
|
||||||
|
|
||||||
|
ricServiceUpdate E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||||
|
INITIATING MESSAGE RICserviceUpdate
|
||||||
|
SUCCESSFUL OUTCOME RICserviceUpdateAcknowledge
|
||||||
|
UNSUCCESSFUL OUTCOME RICserviceUpdateFailure
|
||||||
|
PROCEDURE CODE id-RICserviceUpdate
|
||||||
|
CRITICALITY reject
|
||||||
|
}
|
||||||
|
|
||||||
|
ricSubscription E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||||
|
INITIATING MESSAGE RICsubscriptionRequest
|
||||||
|
SUCCESSFUL OUTCOME RICsubscriptionResponse
|
||||||
|
UNSUCCESSFUL OUTCOME RICsubscriptionFailure
|
||||||
|
PROCEDURE CODE id-RICsubscription
|
||||||
|
CRITICALITY reject
|
||||||
|
}
|
||||||
|
|
||||||
|
ricSubscriptionDelete E2AP-ELEMENTARY-PROCEDURE ::= {
|
||||||
|
INITIATING MESSAGE RICsubscriptionDeleteRequest
|
||||||
|
SUCCESSFUL OUTCOME RICsubscriptionDeleteResponse
|
||||||
|
UNSUCCESSFUL OUTCOME RICsubscriptionDeleteFailure
|
||||||
|
PROCEDURE CODE id-RICsubscriptionDelete
|
||||||
|
CRITICALITY reject
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
END
|
||||||
|
-- ASN1STOP
|
|
@ -0,0 +1,533 @@
|
||||||
|
# e2ap.cnf
|
||||||
|
# e2ap conformation file
|
||||||
|
|
||||||
|
#.OPT
|
||||||
|
PER
|
||||||
|
ALIGNED
|
||||||
|
#.END
|
||||||
|
|
||||||
|
#.USE_VALS_EXT
|
||||||
|
ProcedureCode
|
||||||
|
ProtocolIE-ID
|
||||||
|
|
||||||
|
#.EXPORTS ONLY_VALS WS_DLL
|
||||||
|
|
||||||
|
#.EXPORTS
|
||||||
|
|
||||||
|
#.PDU
|
||||||
|
E2AP-PDU
|
||||||
|
|
||||||
|
E2SM-KPM-ActionDefinition
|
||||||
|
E2SM-KPM-RANfunction-Description
|
||||||
|
E2SM-KPM-EventTriggerDefinition
|
||||||
|
E2SM-KPM-IndicationHeader
|
||||||
|
RANcallProcess-ID-string
|
||||||
|
E2SM-KPM-IndicationMessage-Format1
|
||||||
|
|
||||||
|
|
||||||
|
#.MAKE_ENUM
|
||||||
|
ProcedureCode
|
||||||
|
ProtocolIE-ID
|
||||||
|
|
||||||
|
#.NO_EMIT
|
||||||
|
|
||||||
|
#.OMIT_ASSIGNMENT
|
||||||
|
# Get rid of unused code warnings
|
||||||
|
ProtocolIE-FieldPair
|
||||||
|
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
|
||||||
|
|
||||||
|
#.END
|
||||||
|
|
||||||
|
|
||||||
|
#.TYPE_ATTR
|
||||||
|
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)
|
||||||
|
|
||||||
|
#.TYPE_RENAME
|
||||||
|
|
||||||
|
InitiatingMessage/value InitiatingMessage_value
|
||||||
|
SuccessfulOutcome/value SuccessfulOutcome_value
|
||||||
|
UnsuccessfulOutcome/value UnsuccessfulOutcome_value
|
||||||
|
|
||||||
|
#.FIELD_RENAME
|
||||||
|
|
||||||
|
InitiatingMessage/value initiatingMessagevalue
|
||||||
|
UnsuccessfulOutcome/value unsuccessfulOutcome_value
|
||||||
|
SuccessfulOutcome/value successfulOutcome_value
|
||||||
|
|
||||||
|
#GlobalGNB-ID/gNB-ID globalGNB-ID_gNB-ID
|
||||||
|
|
||||||
|
|
||||||
|
#.FIELD_ATTR
|
||||||
|
#GlobalGNB-ID/gNB-ID ABBREV=globalGNB_ID.gNB_ID
|
||||||
|
|
||||||
|
#.FN_BODY ProtocolIE-ID VAL_PTR=&e2ap_data->protocol_ie_id
|
||||||
|
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
|
||||||
|
%(DEFAULT_BODY)s
|
||||||
|
|
||||||
|
#.FN_FTR ProtocolIE-ID
|
||||||
|
if (tree) {
|
||||||
|
proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s",
|
||||||
|
val_to_str_ext(e2ap_data->protocol_ie_id, &e2ap_ProtocolIE_ID_vals_ext, "unknown (%d)"));
|
||||||
|
}
|
||||||
|
#.END
|
||||||
|
|
||||||
|
|
||||||
|
# TODO: probably not worth it
|
||||||
|
# #.FN_BODY E2AP-PDU VAL_PTR=&value
|
||||||
|
# guint32 value;
|
||||||
|
# %(DEFAULT_BODY)s
|
||||||
|
# col_append_fstr(actx->pinfo->cinfo, COL_INFO, " (%%s)", val_to_str(value, e2ap_E2AP_PDU_vals, "Unknown"));
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
|
||||||
|
# Currently not used
|
||||||
|
# FN_PARS ProtocolIE-FieldPair/firstValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldPairFirstValue
|
||||||
|
# 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
|
||||||
|
//col_append_fstr(actx->pinfo->cinfo, COL_INFO, "%%s", val_to_str(e2ap_data->procedure_code, e2ap_ProcedureCode_vals, "Unknown"));
|
||||||
|
#.END
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue
|
||||||
|
#.FN_HDR InitiatingMessage/value
|
||||||
|
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
|
||||||
|
e2ap_data->message_type = INITIATING_MESSAGE;
|
||||||
|
#.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue
|
||||||
|
#.FN_HDR SuccessfulOutcome/value
|
||||||
|
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
|
||||||
|
e2ap_data->message_type = SUCCESSFUL_OUTCOME;
|
||||||
|
#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue
|
||||||
|
#.FN_HDR UnsuccessfulOutcome/value
|
||||||
|
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
|
||||||
|
e2ap_data->message_type = UNSUCCESSFUL_OUTCOME;
|
||||||
|
|
||||||
|
#--- Parameterization is not supported in asn2wrs ---
|
||||||
|
|
||||||
|
#ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, e2ap-PROTOCOL-IES : IEsSetParam} ::=
|
||||||
|
# SEQUENCE (SIZE (lowerBound..upperBound)) OF
|
||||||
|
# ProtocolIE-Container {{IEsSetParam}}
|
||||||
|
|
||||||
|
# #.FN_PARS ProtocolIE-ContainerList
|
||||||
|
# MIN_VAL = asn1_param_get_integer(%(ACTX)s,"lowerBound")
|
||||||
|
# MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
|
||||||
|
# #.FN_HDR ProtocolIE-ContainerList
|
||||||
|
# static const asn1_par_def_t ProtocolIE_ContainerList_pars[] = {
|
||||||
|
# { "lowerBound", ASN1_PAR_INTEGER },
|
||||||
|
# { "upperBound", ASN1_PAR_INTEGER },
|
||||||
|
# { NULL, (asn1_par_type)0 }
|
||||||
|
# };
|
||||||
|
# asn1_stack_frame_check(actx, "ProtocolIE-ContainerList", ProtocolIE_ContainerList_pars);
|
||||||
|
# #.END
|
||||||
|
|
||||||
|
#ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, e2ap-PROTOCOL-IES-PAIR : IEsSetParam} ::=
|
||||||
|
# SEQUENCE (SIZE (lowerBound..upperBound)) OF
|
||||||
|
# ProtocolIE-ContainerPair {{IEsSetParam}}
|
||||||
|
|
||||||
|
# Currently not used
|
||||||
|
# FN_PARS ProtocolIE-ContainerPairList
|
||||||
|
#MIN_VAL = asn1_param_get_integer(%(ACTX)s,"lowerBound")
|
||||||
|
#MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound")
|
||||||
|
# FN_HDR ProtocolIE-ContainerPairList
|
||||||
|
# static const asn1_par_def_t ProtocolIE_ContainerPairList_pars[] = {
|
||||||
|
# { "lowerBound", ASN1_PAR_INTEGER },
|
||||||
|
# { "upperBound", ASN1_PAR_INTEGER },
|
||||||
|
# { NULL, 0 }
|
||||||
|
# };
|
||||||
|
# asn1_stack_frame_check(actx, "ProtocolIE-ContainerPairList", ProtocolIE_ContainerPairList_pars);
|
||||||
|
# END
|
||||||
|
|
||||||
|
#PduSessionResource-IE-ContainerList { e2ap-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofPduSessionResources, {IEsSetParam} }
|
||||||
|
# FN_BODY PduSessionResource-IE-ContainerList
|
||||||
|
# asn1_stack_frame_push(%(ACTX)s, "ProtocolIE-ContainerList");
|
||||||
|
# asn1_param_push_integer(%(ACTX)s, 1);
|
||||||
|
# asn1_param_push_integer(%(ACTX)s, maxnoofE_RABs);
|
||||||
|
# %(DEFAULT_BODY)s
|
||||||
|
# asn1_stack_frame_pop(%(ACTX)s, "ProtocolIE-ContainerList");
|
||||||
|
# END
|
||||||
|
|
||||||
|
# PduSessionResource-IE-ContainerPairList { e2ap-PROTOCOL-IES-PAIR : IEsSetParam } ::= ProtocolIE-ContainerPairList { 1, maxnoofPduSessionResources, {IEsSetParam} }
|
||||||
|
# Currently not used
|
||||||
|
# FN_BODY SAEB-IE-ContainerPairList
|
||||||
|
# asn1_stack_frame_push(%(ACTX)s, "ProtocolIE-ContainerPairList");
|
||||||
|
# asn1_param_push_integer(%(ACTX)s, 1);
|
||||||
|
# asn1_param_push_integer(%(ACTX)s, maxnoofE_RABs);
|
||||||
|
#%(DEFAULT_BODY)s
|
||||||
|
# asn1_stack_frame_pop(%(ACTX)s, "ProtocolIE-ContainerPairList");
|
||||||
|
# END
|
||||||
|
|
||||||
|
# Currently not used
|
||||||
|
# ProtocolError-IE-ContainerList { e2ap-PROTOCOL-IES : IEsSetParam } ::= ProtocolIE-ContainerList { 1, maxnoofPduSessionResources, {IEsSetParam} }
|
||||||
|
# FN_BODY ProtocolError-IE-ContainerList
|
||||||
|
# asn1_stack_frame_push(%(ACTX)s, "ProtocolIE-ContainerList");
|
||||||
|
# asn1_param_push_integer(%(ACTX)s, 1);
|
||||||
|
# asn1_param_push_integer(%(ACTX)s, maxnoofE_RABs);
|
||||||
|
#%(DEFAULT_BODY)s
|
||||||
|
# asn1_stack_frame_pop(%(ACTX)s, "ProtocolIE-ContainerList");
|
||||||
|
# END
|
||||||
|
|
||||||
|
# .FN_HDR PrivateIE-ID
|
||||||
|
# struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
|
||||||
|
# e2ap_data->obj_id = NULL;
|
||||||
|
|
||||||
|
# FN_BODY PrivateIE-ID/global FN_VARIANT = _str VAL_PTR = &e2ap_data->obj_id
|
||||||
|
# struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
|
||||||
|
# %(DEFAULT_BODY)s
|
||||||
|
|
||||||
|
# FN_BODY PrivateIE-Field/value
|
||||||
|
# struct e2ap_private_data *e2ap_data = e2ap_get_private_data(actx->pinfo);
|
||||||
|
# if (e2ap_data->obj_id) {
|
||||||
|
# offset = call_per_oid_callback(e2ap_data->obj_id, tvb, actx->pinfo, tree, offset, actx, hf_index);
|
||||||
|
# } else {
|
||||||
|
# %(DEFAULT_BODY)s
|
||||||
|
# }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# #.FN_BODY E2AP-Message VAL_PTR = ¶meter_tvb
|
||||||
|
# tvbuff_t *parameter_tvb;
|
||||||
|
# proto_tree *subtree;
|
||||||
|
#%(DEFAULT_BODY)s
|
||||||
|
# if (!parameter_tvb)
|
||||||
|
# return offset;
|
||||||
|
|
||||||
|
# subtree = proto_item_add_subtree(actx->created_item, ett_e2ap_e2ap_Message);
|
||||||
|
# col_set_fence(actx->pinfo->cinfo, COL_INFO);
|
||||||
|
# call_dissector(e2ap_handle, parameter_tvb, actx->pinfo, subtree);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# 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);
|
||||||
|
|
||||||
|
#.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);
|
||||||
|
|
||||||
|
#.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);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#.ASSIGN_VALUE_TO_TYPE # e2ap does not have constants assigned to types, they are pure INTEGER
|
||||||
|
# ProcedureCode
|
||||||
|
|
||||||
|
id-E2setup ProcedureCode
|
||||||
|
id-ErrorIndication ProcedureCode
|
||||||
|
id-Reset ProcedureCode
|
||||||
|
id-RICcontrol ProcedureCode
|
||||||
|
id-RICindication ProcedureCode
|
||||||
|
id-RICserviceQuery ProcedureCode
|
||||||
|
id-RICserviceUpdate ProcedureCode
|
||||||
|
id-RICsubscription ProcedureCode
|
||||||
|
id-RICsubscriptionDelete ProcedureCode
|
||||||
|
#id-E2nodeConfigurationUpdate ProcedureCode
|
||||||
|
#id-E2connectionUpdate ProcedureCode
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
# ProtocolIE-ID
|
||||||
|
id-Cause ProtocolIE-ID
|
||||||
|
id-CriticalityDiagnostics ProtocolIE-ID
|
||||||
|
id-GlobalE2node-ID ProtocolIE-ID
|
||||||
|
id-GlobalRIC-ID ProtocolIE-ID
|
||||||
|
id-RANfunctionID ProtocolIE-ID
|
||||||
|
id-RANfunctionID-Item ProtocolIE-ID
|
||||||
|
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
|
||||||
|
id-RICaction-Admitted-Item ProtocolIE-ID
|
||||||
|
id-RICactionID ProtocolIE-ID
|
||||||
|
id-RICaction-NotAdmitted-Item ProtocolIE-ID
|
||||||
|
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-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
|
||||||
|
#.END
|
||||||
|
|
||||||
|
|
||||||
|
#.REGISTER
|
||||||
|
|
||||||
|
#E2AP-PROTOCOL-IES
|
||||||
|
|
||||||
|
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
|
||||||
|
RANfunctionID-Item N e2ap.ies id-RANfunctionID-Item
|
||||||
|
RANfunctionIDcause-Item N e2ap.ies id-RANfunctionIEcause-Item
|
||||||
|
RANfunction-Item N e2ap.ies id-RANfunction-Item
|
||||||
|
RANfunctionsID-List N e2ap.ies id-RANfunctionsAccepted
|
||||||
|
RANfunctions-List N e2ap.ies id-RANfunctionsAdded
|
||||||
|
RANfunctionsID-List N e2ap.ies id-RANfunctionsDeleted
|
||||||
|
RANfunctions-List N e2ap.ies id-RANfunctionsModified
|
||||||
|
RANfunctionsIDcause-List N e2ap.ies id-RANfunctionsRejected
|
||||||
|
RICaction-Admitted-Item N e2ap.ies id-RICaction-Admitted-Item
|
||||||
|
RICactionID N e2ap.ies id-RICactionID
|
||||||
|
RICaction-NotAdmitted-Item N e2ap.ies id-RICaction-NotAdmitted-Item
|
||||||
|
RICaction-Admitted-List N e2ap.ies id-RICactions-Admitted
|
||||||
|
RICaction-ToBeSetup-Item N e2ap.ies id-RICaction-ToBeSetup-Item
|
||||||
|
RICcallProcessID N e2ap.ies id-RICcallProcessID
|
||||||
|
RICaction-NotAdmitted-List N e2ap.ies id-RICactions-NotAdmitted
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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
|
||||||
|
|
||||||
|
|
||||||
|
#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
|
||||||
|
|
||||||
|
#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
|
||||||
|
E2setupResponse N e2ap.proc.sout id-E2setup
|
||||||
|
|
||||||
|
ErrorIndication N e2ap.proc.imsg id-ErrorIndication
|
||||||
|
|
||||||
|
ResetRequest N e2ap.proc.imsg id-Reset
|
||||||
|
ResetResponse N e2ap.proc.sout id-Reset
|
||||||
|
|
||||||
|
RICcontrolAcknowledge N e2ap.proc.sout id-RICcontrol
|
||||||
|
RICcontrolFailure N e2ap.proc.uout id-RICcontrol
|
||||||
|
RICcontrolRequest N e2ap.proc.imsg id-RICcontrol
|
||||||
|
|
||||||
|
RICindication N e2ap.proc.imsg id-RICindication
|
||||||
|
|
||||||
|
RICserviceQuery N e2ap.proc.imsg id-RICserviceQuery
|
||||||
|
|
||||||
|
RICserviceUpdate N e2ap.proc.imsg id-RICserviceUpdate
|
||||||
|
RICserviceUpdateAcknowledge N e2ap.proc.sout id-RICserviceUpdate
|
||||||
|
RICserviceUpdateFailure N e2ap.proc.uout id-RICserviceUpdate
|
||||||
|
|
||||||
|
RICsubscriptionFailure N e2ap.proc.uout id-RICsubscription
|
||||||
|
RICsubscriptionRequest N e2ap.proc.imsg id-RICsubscription
|
||||||
|
RICsubscriptionResponse N e2ap.proc.sout id-RICsubscription
|
||||||
|
|
||||||
|
RICsubscriptionDeleteFailure N e2ap.proc.uout id-RICsubscriptionDelete
|
||||||
|
RICsubscriptionDeleteRequest N e2ap.proc.imsg id-RICsubscriptionDelete
|
||||||
|
RICsubscriptionDeleteResponse N e2ap.proc.sout id-RICsubscriptionDelete
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#.FN_HDR E2setupFailure
|
||||||
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2setupFailure");
|
||||||
|
|
||||||
|
#.FN_HDR E2setupRequest
|
||||||
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "E2setupRequest");
|
||||||
|
|
||||||
|
#.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");
|
||||||
|
|
||||||
|
|
||||||
|
#.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");
|
||||||
|
|
||||||
|
#.FN_HDR RICserviceUpdateFailure
|
||||||
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICserviceUpdateFailure");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#.FN_HDR RICsubscriptionFailure
|
||||||
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICsubscriptionFailure");
|
||||||
|
|
||||||
|
#.FN_HDR RICsubscriptionRequest
|
||||||
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICsubscriptionRequest");
|
||||||
|
|
||||||
|
#.FN_HDR RICsubscriptionResponse
|
||||||
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICsubscriptionResponse");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#.FN_HDR RICsubscriptionDeleteFailure
|
||||||
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICsubscriptionDeleteFailure");
|
||||||
|
|
||||||
|
#.FN_HDR RICsubscriptionDeleteRequest
|
||||||
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICsubscriptionDeleteRequest");
|
||||||
|
|
||||||
|
#.FN_HDR RICsubscriptionDeleteResponse
|
||||||
|
col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "RICsubscriptionDeleteResponse");
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Editor modelines - https://www.wireshark.org/tools/modelines.html
|
||||||
|
#
|
||||||
|
# Local variables:
|
||||||
|
# c-basic-offset: 2
|
||||||
|
# tab-width: 8
|
||||||
|
# indent-tabs-mode: nil
|
||||||
|
# End:
|
||||||
|
#
|
||||||
|
# vi: set shiftwidth=2 tabstop=8 expandtab:
|
||||||
|
# :indentSize=2:tabSize=8:noTabs=true:
|
||||||
|
#
|
|
@ -0,0 +1,426 @@
|
||||||
|
-- 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,284 @@
|
||||||
|
/* packet-e2ap.c
|
||||||
|
* Routines for E2APApplication Protocol (e2ap) packet dissection
|
||||||
|
* Copyright 2021, Martin Mathieson
|
||||||
|
*
|
||||||
|
* Wireshark - Network traffic analyzer
|
||||||
|
* By Gerald Combs <gerald@wireshark.org>
|
||||||
|
* Copyright 1998 Gerald Combs
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
*
|
||||||
|
* References: ORAN-WG3.E2AP-v01.00, ORAN-WG3.E2SM-KPM-v01.00
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "config.h"
|
||||||
|
#include <stdio.h>
|
||||||
|
|
||||||
|
#include <epan/packet.h>
|
||||||
|
#include <epan/strutil.h>
|
||||||
|
#include <epan/asn1.h>
|
||||||
|
#include <epan/prefs.h>
|
||||||
|
#include <epan/sctpppids.h>
|
||||||
|
#include <epan/expert.h>
|
||||||
|
#include <epan/proto_data.h>
|
||||||
|
#include <epan/conversation.h>
|
||||||
|
#include <epan/exceptions.h>
|
||||||
|
#include <epan/show_exception.h>
|
||||||
|
|
||||||
|
#include "packet-e2ap.h"
|
||||||
|
#include "packet-per.h"
|
||||||
|
#define PNAME "E2 Application Protocol"
|
||||||
|
#define PSNAME "E2AP"
|
||||||
|
#define PFNAME "e2ap"
|
||||||
|
|
||||||
|
/* Dissector will use SCTP PPID 18 or SCTP port. IANA assigned port = 37464 */
|
||||||
|
#define SCTP_PORT_E2AP 37464
|
||||||
|
|
||||||
|
void proto_register_e2ap(void);
|
||||||
|
void proto_reg_handoff_e2ap(void);
|
||||||
|
|
||||||
|
static dissector_handle_t e2ap_handle;
|
||||||
|
|
||||||
|
#include "packet-e2ap-val.h"
|
||||||
|
|
||||||
|
/* Initialize the protocol and registered fields */
|
||||||
|
static int proto_e2ap = -1;
|
||||||
|
#include "packet-e2ap-hf.c"
|
||||||
|
|
||||||
|
/* Initialize the subtree pointers */
|
||||||
|
static gint ett_e2ap = -1;
|
||||||
|
|
||||||
|
#include "packet-e2ap-ett.c"
|
||||||
|
|
||||||
|
|
||||||
|
enum{
|
||||||
|
INITIATING_MESSAGE,
|
||||||
|
SUCCESSFUL_OUTCOME,
|
||||||
|
UNSUCCESSFUL_OUTCOME
|
||||||
|
};
|
||||||
|
|
||||||
|
typedef struct _e2ap_ctx_t {
|
||||||
|
guint32 message_type;
|
||||||
|
guint32 ProcedureCode;
|
||||||
|
guint32 ProtocolIE_ID;
|
||||||
|
guint32 ProtocolExtensionID;
|
||||||
|
} e2ap_ctx_t;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
struct e2ap_private_data {
|
||||||
|
guint32 procedure_code;
|
||||||
|
guint32 protocol_ie_id;
|
||||||
|
guint32 protocol_extension_id;
|
||||||
|
guint32 message_type;
|
||||||
|
guint32 ran_ue_e2ap_id;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Global variables */
|
||||||
|
static guint gbl_e2apSctpPort = SCTP_PORT_E2AP;
|
||||||
|
|
||||||
|
/* 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)
|
||||||
|
{
|
||||||
|
struct e2ap_private_data *e2ap_data = (struct e2ap_private_data*)p_get_proto_data(pinfo->pool, pinfo, proto_e2ap, 0);
|
||||||
|
if (!e2ap_data) {
|
||||||
|
e2ap_data = wmem_new0(pinfo->pool, struct e2ap_private_data);
|
||||||
|
p_add_proto_data(pinfo->pool, pinfo, proto_e2ap, 0, e2ap_data);
|
||||||
|
}
|
||||||
|
return e2ap_data;
|
||||||
|
}
|
||||||
|
|
||||||
|
#include "packet-e2ap-fn.c"
|
||||||
|
|
||||||
|
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_)
|
||||||
|
{
|
||||||
|
e2ap_ctx_t e2ap_ctx;
|
||||||
|
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
|
||||||
|
|
||||||
|
e2ap_ctx.message_type = e2ap_data->message_type;
|
||||||
|
e2ap_ctx.ProcedureCode = e2ap_data->procedure_code;
|
||||||
|
e2ap_ctx.ProtocolIE_ID = e2ap_data->protocol_ie_id;
|
||||||
|
e2ap_ctx.ProtocolExtensionID = e2ap_data->protocol_extension_id;
|
||||||
|
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
|
||||||
|
|
||||||
|
return (dissector_try_uint(e2ap_ies_p1_dissector_table, e2ap_data->protocol_ie_id, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int dissect_ProtocolIEFieldPairSecondValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||||
|
{
|
||||||
|
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
|
||||||
|
|
||||||
|
return (dissector_try_uint(e2ap_ies_p2_dissector_table, e2ap_data->protocol_ie_id, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
|
||||||
|
{
|
||||||
|
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
|
||||||
|
|
||||||
|
return (dissector_try_uint_new(e2ap_proc_imsg_dissector_table, e2ap_data->procedure_code, tvb, pinfo, tree, TRUE, data)) ? tvb_captured_length(tvb) : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
|
||||||
|
{
|
||||||
|
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
|
||||||
|
|
||||||
|
return (dissector_try_uint_new(e2ap_proc_sout_dissector_table, e2ap_data->procedure_code, tvb, pinfo, tree, TRUE, data)) ? tvb_captured_length(tvb) : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data)
|
||||||
|
{
|
||||||
|
struct e2ap_private_data *e2ap_data = e2ap_get_private_data(pinfo);
|
||||||
|
|
||||||
|
return (dissector_try_uint_new(e2ap_proc_uout_dissector_table, e2ap_data->procedure_code, tvb, pinfo, tree, TRUE, data)) ? tvb_captured_length(tvb) : 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static int
|
||||||
|
dissect_e2ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_)
|
||||||
|
{
|
||||||
|
proto_item *e2ap_item = NULL;
|
||||||
|
proto_tree *e2ap_tree = NULL;
|
||||||
|
|
||||||
|
/* make entry in the Protocol column on summary display */
|
||||||
|
col_set_str(pinfo->cinfo, COL_PROTOCOL, "E2AP");
|
||||||
|
/* ensure that parent dissector is not e2ap before clearing fence */
|
||||||
|
col_clear(pinfo->cinfo, COL_INFO);
|
||||||
|
|
||||||
|
/* create the e2ap protocol tree */
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*--- proto_reg_handoff_e2ap ---------------------------------------*/
|
||||||
|
void
|
||||||
|
proto_reg_handoff_e2ap(void)
|
||||||
|
{
|
||||||
|
static gboolean Initialized=FALSE;
|
||||||
|
static guint SctpPort;
|
||||||
|
|
||||||
|
if (!Initialized) {
|
||||||
|
dissector_add_for_decode_as("sctp.port", 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
|
||||||
|
|
||||||
|
Initialized=TRUE;
|
||||||
|
#include "packet-e2ap-dis-tab.c"
|
||||||
|
|
||||||
|
} else {
|
||||||
|
if (SctpPort != 0) {
|
||||||
|
dissector_delete_uint("sctp.port", SctpPort, e2ap_handle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SctpPort=gbl_e2apSctpPort;
|
||||||
|
if (SctpPort != 0) {
|
||||||
|
dissector_add_uint("sctp.port", SctpPort, e2ap_handle);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*--- proto_register_e2ap -------------------------------------------*/
|
||||||
|
void proto_register_e2ap(void) {
|
||||||
|
|
||||||
|
/* List of fields */
|
||||||
|
|
||||||
|
static hf_register_info hf[] = {
|
||||||
|
#include "packet-e2ap-hfarr.c"
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/* List of subtrees */
|
||||||
|
static gint *ett[] = {
|
||||||
|
&ett_e2ap,
|
||||||
|
#include "packet-e2ap-ettarr.c"
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
module_t *e2ap_module;
|
||||||
|
|
||||||
|
/* Register protocol */
|
||||||
|
proto_e2ap = proto_register_protocol(PNAME, PSNAME, PFNAME);
|
||||||
|
/* Register fields and subtrees */
|
||||||
|
proto_register_field_array(proto_e2ap, hf, array_length(hf));
|
||||||
|
proto_register_subtree_array(ett, array_length(ett));
|
||||||
|
|
||||||
|
|
||||||
|
/* Register dissector */
|
||||||
|
e2ap_handle = register_dissector("e2ap", dissect_e2ap, proto_e2ap);
|
||||||
|
|
||||||
|
/* 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);
|
||||||
|
e2ap_proc_imsg_dissector_table = register_dissector_table("e2ap.proc.imsg", "E2AP-ELEMENTARY-PROCEDURE InitiatingMessage", proto_e2ap, FT_UINT32, BASE_DEC);
|
||||||
|
e2ap_proc_sout_dissector_table = register_dissector_table("e2ap.proc.sout", "E2AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_e2ap, FT_UINT32, BASE_DEC);
|
||||||
|
e2ap_proc_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, proto_reg_handoff_e2ap);
|
||||||
|
|
||||||
|
prefs_register_uint_preference(e2ap_module, "sctp.port",
|
||||||
|
"e2ap SCTP Port",
|
||||||
|
"Set the SCTP port for e2ap messages",
|
||||||
|
10,
|
||||||
|
&gbl_e2apSctpPort);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Editor modelines
|
||||||
|
*
|
||||||
|
* Local Variables:
|
||||||
|
* c-basic-offset: 2
|
||||||
|
* tab-width: 8
|
||||||
|
* indent-tabs-mode: nil
|
||||||
|
* End:
|
||||||
|
*
|
||||||
|
* ex: set shiftwidth=2 tabstop=8 expandtab:
|
||||||
|
* :indentSize=2:tabSize=8:noTabs=true:
|
||||||
|
*/
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,42 @@
|
||||||
|
/* Do not modify this file. Changes will be overwritten. */
|
||||||
|
/* Generated automatically by the ASN.1 to Wireshark dissector compiler */
|
||||||
|
/* packet-e2ap.h */
|
||||||
|
/* asn2wrs.py -p e2ap -c ./e2ap.cnf -s ./packet-e2ap-template -D . -O ../.. E2AP-CommonDataTypes.asn E2AP-Constants.asn E2AP-Containers.asn E2AP-IEs.asn E2AP-PDU-Contents.asn E2AP-PDU-Descriptions.asn e2sm-kpm-v1.asn */
|
||||||
|
|
||||||
|
/* Input file: packet-e2ap-template.h */
|
||||||
|
|
||||||
|
#line 1 "./asn1/e2ap/packet-e2ap-template.h"
|
||||||
|
/* packet-e2ap.h
|
||||||
|
* Routines for NG-RAN NG Application Protocol (NGAP) packet dissection
|
||||||
|
*
|
||||||
|
* Wireshark - Network traffic analyzer
|
||||||
|
* By Gerald Combs <gerald@wireshark.org>
|
||||||
|
* Copyright 1998 Gerald Combs
|
||||||
|
*
|
||||||
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef PACKET_E2AP_H
|
||||||
|
#define PACKET_E2AP_H
|
||||||
|
|
||||||
|
|
||||||
|
/*--- Included file: packet-e2ap-exp.h ---*/
|
||||||
|
#line 1 "./asn1/e2ap/packet-e2ap-exp.h"
|
||||||
|
|
||||||
|
/*--- End of included file: packet-e2ap-exp.h ---*/
|
||||||
|
#line 15 "./asn1/e2ap/packet-e2ap-template.h"
|
||||||
|
|
||||||
|
#endif /* PACKET_E2AP_H */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Editor modelines
|
||||||
|
*
|
||||||
|
* Local Variables:
|
||||||
|
* c-basic-offset: 2
|
||||||
|
* tab-width: 8
|
||||||
|
* indent-tabs-mode: nil
|
||||||
|
* End:
|
||||||
|
*
|
||||||
|
* ex: set shiftwidth=2 tabstop=8 expandtab:
|
||||||
|
* :indentSize=2:tabSize=8:noTabs=true:
|
||||||
|
*/
|
Loading…
Reference in New Issue