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)
|
||||
TP-Link Smart Home Protocol
|
||||
R09.x (R09)
|
||||
UAVCAN/CAN
|
||||
UAVCAN DSDL
|
||||
Van Jacobson PPP compression (VJC)
|
||||
O-RAN E2AP
|
||||
--
|
||||
|
||||
=== Updated Protocol Support
|
||||
|
|
|
@ -91,6 +91,7 @@ set(CLEAN_ASN1_DISSECTOR_SRC
|
|||
${CMAKE_CURRENT_SOURCE_DIR}/packet-dop.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-dsp.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-f1ap.c
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/packet-ftam.c
|
||||
|
|
|
@ -34,6 +34,7 @@ set(ASN1_SRC_DIRS
|
|||
dop
|
||||
dsp
|
||||
e1ap
|
||||
e2ap
|
||||
ess
|
||||
f1ap
|
||||
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