forked from osmocom/wireshark
Initial work on a E-UTRAN X2 Application Protocol (X2AP) packet dissector.
svn path=/trunk/; revision=23886
This commit is contained in:
parent
fa34d46851
commit
2a7d7da157
|
@ -0,0 +1,26 @@
|
|||
# $Id$
|
||||
#
|
||||
#
|
||||
# Wireshark - Network traffic analyzer
|
||||
# By Gerald Combs <gerald@wireshark.org>
|
||||
# Copyright 1998 Gerald Combs
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
|
||||
include ../Makefile.preinc
|
||||
include Makefile.common
|
||||
include ../Makefile.inc
|
||||
|
|
@ -0,0 +1,52 @@
|
|||
# $Id$
|
||||
#
|
||||
#
|
||||
# Wireshark - Network traffic analyzer
|
||||
# By Gerald Combs <gerald@wireshark.org>
|
||||
# Copyright 1998 Gerald Combs
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
|
||||
PROTOCOL_NAME = x2ap
|
||||
|
||||
DISSECTOR_FILES = \
|
||||
packet-$(PROTOCOL_NAME).c
|
||||
|
||||
# NEED_PACKET_PROTO_H =
|
||||
|
||||
EXT_ASN_FILE_LIST =
|
||||
|
||||
ASN_FILE_LIST = \
|
||||
X2AP-CommonDataTypes.asn \
|
||||
X2AP-Constants.asn \
|
||||
X2AP-Containers.asn \
|
||||
X2AP-IEs.asn \
|
||||
X2AP-PDU-Contents.asn \
|
||||
X2AP-PDU-Descriptions.asn
|
||||
|
||||
EXTRA_DIST = \
|
||||
$(ASN_FILE_LIST) \
|
||||
packet-$(PROTOCOL_NAME)-template.c \
|
||||
$(PROTOCOL_NAME).cnf
|
||||
|
||||
SRC_FILES = \
|
||||
$(EXTRA_DIST) \
|
||||
$(EXT_ASN_FILE_LIST)
|
||||
|
||||
A2W_FLAGS =
|
||||
|
||||
EXTRA_CNF =
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
|
||||
#
|
||||
# $Id$
|
||||
#
|
||||
#
|
||||
# Wireshark - Network traffic analyzer
|
||||
# By Gerald Combs <gerald@wireshark.org>
|
||||
# Copyright 1998 Gerald Combs
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or
|
||||
# modify it under the terms of the GNU General Public License
|
||||
# as published by the Free Software Foundation; either version 2
|
||||
# of the License, or (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
|
||||
|
||||
include ../../config.nmake
|
||||
include ../Makefile.preinc.nmake
|
||||
include Makefile.common
|
||||
include ../Makefile.inc.nmake
|
||||
|
|
@ -0,0 +1,51 @@
|
|||
-- $Id$
|
||||
-- 3GPP TS 36.423 V8.0.0 (2007-12)
|
||||
-- 9.3.6 Common Definitions
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Common definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-CommonDataTypes {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-CommonDataTypes (3) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Extension constants
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
maxPrivateIEs INTEGER ::= 65535
|
||||
maxProtocolExtensions INTEGER ::= 65535
|
||||
maxProtocolIEs INTEGER ::= 65535
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Common Data Types
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
Criticality ::= ENUMERATED { reject, ignore, notify }
|
||||
|
||||
Presence ::= ENUMERATED { optional, conditional, mandatory }
|
||||
|
||||
PrivateIE-ID ::= CHOICE {
|
||||
local INTEGER (0.. maxPrivateIEs),
|
||||
global OBJECT IDENTIFIER
|
||||
}
|
||||
|
||||
ProcedureCode ::= INTEGER (0..255)
|
||||
|
||||
|
||||
ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs)
|
||||
|
||||
|
||||
TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome}
|
||||
|
||||
END
|
|
@ -0,0 +1,92 @@
|
|||
-- $Id$
|
||||
-- 3GPP TS 36.423 V8.0.0 (2007-12)
|
||||
-- 9.3.7 Constant Definitions
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Constant definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-Constants {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Constants (4) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
IMPORTS
|
||||
ProcedureCode,
|
||||
ProtocolIE-ID
|
||||
FROM X2AP-CommonDataTypes;
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Elementary Procedures
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
id-handoverPreparation ProcedureCode ::= 0
|
||||
id-handoverCancel ProcedureCode ::= 1
|
||||
id-loadIndication ProcedureCode ::= 2
|
||||
id-errorIndication ProcedureCode ::= 3
|
||||
id-snStatusTransfer ProcedureCode ::= 4
|
||||
id-releaseResource ProcedureCode ::= 5
|
||||
id-x2Setup ProcedureCode ::= 6
|
||||
id-reset ProcedureCode ::= 7
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Lists
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
maxInterfaces INTEGER ::= 16 -- FFS Value to be checked
|
||||
maxCellineNB INTEGER ::= 256 -- FFS Value to be checked
|
||||
maxnoofCells INTEGER ::= 16 -- FFS Value to be checked
|
||||
maxnoofBearers INTEGER ::= 16 -- FFS Value to be checked
|
||||
maxNrOfErrors INTEGER ::= 256 -- FFS Value to be checked
|
||||
maxnoofPDCP-SN INTEGER ::= 16 -- FFS Value to be checked
|
||||
maxnoofEPLMNs INTEGER ::= 15
|
||||
maxnoofEPLMNsPlusOne INTEGER ::= 16
|
||||
maxnoofForbLACs INTEGER ::= 256 -- FFS Value to be checked
|
||||
maxnoofForbTAIs INTEGER ::= 256 -- FFS Value to be checked
|
||||
maxnoofBPLMNs INTEGER ::= 6
|
||||
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
id-Bearers-Admitted-Item ProtocolIE-ID ::= 0
|
||||
id-Bearers-Admitted-List ProtocolIE-ID ::= 1
|
||||
id-Bearers-NotAdmitted-Item ProtocolIE-ID ::= 2
|
||||
id-Bearers-NotAdmitted-List ProtocolIE-ID ::= 3
|
||||
id-Bearers-ToBeSetup-Item ProtocolIE-ID ::= 4
|
||||
id-Cause ProtocolIE-ID ::= 5
|
||||
id-CellInformation ProtocolIE-ID ::= 6
|
||||
id-CellInformation-Item ProtocolIE-ID ::= 7
|
||||
id-InterfacesToTrace-Item ProtocolIE-ID ::= 8
|
||||
id-New-eNB-UE-X2AP-ID ProtocolIE-ID ::= 9
|
||||
id-Old-eNB-UE-X2AP-ID ProtocolIE-ID ::= 10
|
||||
id-TargetCell-ID ProtocolIE-ID ::= 11
|
||||
id-TargeteNBtoSource-eNBTransparentContainer ProtocolIE-ID ::= 12
|
||||
id-TraceActivation ProtocolIE-ID ::= 13
|
||||
id-UE-ContextInformation ProtocolIE-ID ::= 14
|
||||
id-UE-HistoryInformation ProtocolIE-ID ::= 15
|
||||
id-UE-X2AP-ID ProtocolIE-ID ::= 16
|
||||
id-CriticalityDiagnostics ProtocolIE-ID ::= 17
|
||||
id-Bearers-SubjectToStatusTransfer-List ProtocolIE-ID ::= 18
|
||||
id-Bearers-SubjectToStatusTransfer-Item ProtocolIE-ID ::= 19
|
||||
id-ServedCells ProtocolIE-ID ::= 20
|
||||
id-ENB-ID ProtocolIE-ID ::= 21
|
||||
id-TimeToWait ProtocolIE-ID ::= 22
|
||||
|
||||
|
||||
END
|
|
@ -0,0 +1,197 @@
|
|||
-- $Id$
|
||||
-- 3GPP TS 36.423 V1.0.1 (2007-10)
|
||||
-- 9.3.8 Container Definitions
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-Containers {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-Containers (5) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IE parameter types from other modules.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
IMPORTS
|
||||
maxPrivateIEs,
|
||||
maxProtocolExtensions,
|
||||
maxProtocolIEs,
|
||||
Criticality,
|
||||
Presence,
|
||||
PrivateIE-ID,
|
||||
ProtocolIE-ID
|
||||
FROM X2AP-CommonDataTypes;
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Class Definition for Protocol IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-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
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-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
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Class Definition for Protocol Extensions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-PROTOCOL-EXTENSION ::= CLASS {
|
||||
&id ProtocolIE-ID UNIQUE,
|
||||
&criticality Criticality,
|
||||
&Extension,
|
||||
&presence Presence
|
||||
}
|
||||
WITH SYNTAX {
|
||||
ID &id
|
||||
CRITICALITY &criticality
|
||||
EXTENSION &Extension
|
||||
PRESENCE &presence
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Class Definition for Private IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-PRIVATE-IES ::= CLASS {
|
||||
&id PrivateIE-ID,
|
||||
&criticality Criticality,
|
||||
&Value,
|
||||
&presence Presence
|
||||
}
|
||||
WITH SYNTAX {
|
||||
ID &id
|
||||
CRITICALITY &criticality
|
||||
TYPE &Value
|
||||
PRESENCE &presence
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container for Protocol IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ProtocolIE-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::=
|
||||
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
|
||||
ProtocolIE-Field {{IEsSetParam}}
|
||||
|
||||
ProtocolIE-Single-Container {X2AP-PROTOCOL-IES : IEsSetParam} ::=
|
||||
ProtocolIE-Field {{IEsSetParam}}
|
||||
|
||||
ProtocolIE-Field {X2AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
|
||||
id X2AP-PROTOCOL-IES.&id ({IEsSetParam}),
|
||||
criticality X2AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
|
||||
value X2AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container for Protocol IE Pairs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ProtocolIE-ContainerPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
|
||||
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
|
||||
ProtocolIE-FieldPair {{IEsSetParam}}
|
||||
|
||||
ProtocolIE-FieldPair {X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= SEQUENCE {
|
||||
id X2AP-PROTOCOL-IES-PAIR.&id ({IEsSetParam}),
|
||||
firstCriticality X2AP-PROTOCOL-IES-PAIR.&firstCriticality ({IEsSetParam}{@id}),
|
||||
firstValue X2AP-PROTOCOL-IES-PAIR.&FirstValue ({IEsSetParam}{@id}),
|
||||
secondCriticality X2AP-PROTOCOL-IES-PAIR.&secondCriticality ({IEsSetParam}{@id}),
|
||||
secondValue X2AP-PROTOCOL-IES-PAIR.&SecondValue ({IEsSetParam}{@id})
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container Lists for Protocol IE Containers
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES : IEsSetParam} ::=
|
||||
SEQUENCE (SIZE (lowerBound..upperBound)) OF
|
||||
ProtocolIE-Container {{IEsSetParam}}
|
||||
|
||||
ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, X2AP-PROTOCOL-IES-PAIR : IEsSetParam} ::=
|
||||
SEQUENCE (SIZE (lowerBound..upperBound)) OF
|
||||
ProtocolIE-ContainerPair {{IEsSetParam}}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container for Protocol Extensions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ProtocolExtensionContainer {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
|
||||
SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
|
||||
ProtocolExtensionField {{ExtensionSetParam}}
|
||||
|
||||
ProtocolExtensionField {X2AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
|
||||
id X2AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
|
||||
criticality X2AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
|
||||
extensionValue X2AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container for Private IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
PrivateIE-Container {X2AP-PRIVATE-IES : IEsSetParam} ::=
|
||||
SEQUENCE (SIZE (1..maxPrivateIEs)) OF
|
||||
PrivateIE-Field {{IEsSetParam}}
|
||||
|
||||
PrivateIE-Field {X2AP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
|
||||
id X2AP-PRIVATE-IES.&id ({IEsSetParam}),
|
||||
criticality X2AP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
|
||||
value X2AP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
|
||||
}
|
||||
|
||||
END
|
|
@ -0,0 +1,424 @@
|
|||
-- $Id$
|
||||
-- 3GPP TS 36.423 V8.0.0 (2007-12)
|
||||
-- 9.3.5 Information Element Definitions
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Information Element Definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-IEs {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-IEs (2) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
IMPORTS
|
||||
id-InterfacesToTrace-Item,
|
||||
maxInterfaces,
|
||||
maxNrOfErrors,
|
||||
maxnoofCells,
|
||||
maxnoofEPLMNs,
|
||||
maxnoofEPLMNsPlusOne,
|
||||
maxnoofForbLACs,
|
||||
maxnoofForbTAIs,
|
||||
maxCellineNB,
|
||||
maxnoofBPLMNs
|
||||
|
||||
FROM X2AP-Constants
|
||||
|
||||
Criticality,
|
||||
ProcedureCode,
|
||||
ProtocolIE-ID,
|
||||
TriggeringMessage
|
||||
FROM X2AP-CommonDataTypes
|
||||
|
||||
ProtocolIE-Single-Container{},
|
||||
ProtocolExtensionContainer{},
|
||||
X2AP-PROTOCOL-IES,
|
||||
X2AP-PROTOCOL-EXTENSION
|
||||
FROM X2AP-Containers;
|
||||
|
||||
-- A
|
||||
|
||||
AggregateMaximumBitRate ::= SEQUENCE {
|
||||
aggregateMaximumBitRateDownlink SAE-BearerBitRate,
|
||||
aggregateMaximumBitRateUplink SAE-BearerBitRate,
|
||||
...
|
||||
}
|
||||
|
||||
-- B
|
||||
|
||||
Bearer-ID ::= BIT STRING (SIZE (8)) -- To be checked, FFS
|
||||
|
||||
BroadcastPLMNs-Item ::= SEQUENCE (SIZE(1..maxnoofBPLMNs)) OF PLMN-Identity
|
||||
|
||||
|
||||
-- C
|
||||
|
||||
Cause ::= CHOICE {
|
||||
radioNetwork CauseRadioNetwork,
|
||||
transport CauseTransport,
|
||||
protocol CauseProtocol,
|
||||
misc CauseMisc,
|
||||
...
|
||||
}
|
||||
|
||||
CauseMisc ::= ENUMERATED {
|
||||
control-processing-overload,
|
||||
hardware-failure,
|
||||
om-intervention,
|
||||
not-enough-user-plane-processing-resources,
|
||||
unspecified,
|
||||
...
|
||||
}
|
||||
|
||||
CauseProtocol ::= ENUMERATED {
|
||||
transfer-syntax-error,
|
||||
abstract-syntax-error-reject,
|
||||
abstract-syntax-error-ignore-and-notify,
|
||||
message-not-compatible-with-receiver-state,
|
||||
semantic-error,
|
||||
unspecified,
|
||||
abstract-syntax-error-falsely-constructed-message,
|
||||
...
|
||||
}
|
||||
|
||||
CauseRadioNetwork ::= ENUMERATED {
|
||||
unspecified,
|
||||
...
|
||||
|
||||
}
|
||||
|
||||
CauseTransport ::= ENUMERATED {
|
||||
transport-resource-unavailable,
|
||||
unspecified,
|
||||
...
|
||||
}
|
||||
|
||||
CellType ::= ENUMERATED{
|
||||
macro,
|
||||
micro,
|
||||
pico,
|
||||
femto,
|
||||
...
|
||||
}
|
||||
|
||||
CellId ::= OCTET STRING
|
||||
|
||||
|
||||
|
||||
CGI ::= SEQUENCE {
|
||||
pLMN-Identity PLMN-Identity,
|
||||
lAC LAC,
|
||||
cI CI,
|
||||
iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL
|
||||
}
|
||||
|
||||
CGI-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
CI ::= OCTET STRING (SIZE (2))
|
||||
|
||||
CriticalityDiagnostics ::= SEQUENCE {
|
||||
procedureCode ProcedureCode OPTIONAL,
|
||||
triggeringMessage TriggeringMessage OPTIONAL,
|
||||
procedureCriticality Criticality OPTIONAL,
|
||||
iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
|
||||
iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
CriticalityDiagnostics-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
|
||||
SEQUENCE {
|
||||
iECriticality Criticality,
|
||||
iE-ID ProtocolIE-ID,
|
||||
typeOfError TypeOfError,
|
||||
iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
CriticalityDiagnostics-IE-List-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- D
|
||||
|
||||
DL-data-received ::= INTEGER
|
||||
|
||||
DL-Forwarding ::= ENUMERATED {
|
||||
dL-forwardingProposed,
|
||||
...
|
||||
}
|
||||
|
||||
-- E
|
||||
|
||||
ENB-ID ::= INTEGER (0..65535) -- Value to be checked FFS
|
||||
|
||||
EPLMNs ::= SEQUENCE (SIZE(1..maxnoofEPLMNs)) OF PLMN-Identity
|
||||
|
||||
|
||||
-- F
|
||||
|
||||
ForbiddenInterRATs ::= ENUMERATED {
|
||||
all,
|
||||
gsm,
|
||||
wcdma,
|
||||
...
|
||||
}
|
||||
|
||||
ForbiddenTAs ::= SEQUENCE (SIZE(1.. maxnoofEPLMNsPlusOne)) OF ForbiddenTAs-Item
|
||||
|
||||
ForbiddenTAs-Item ::= SEQUENCE {
|
||||
pLMN-Identity PLMN-Identity,
|
||||
forbiddenTAIs ForbiddenTAIs
|
||||
}
|
||||
|
||||
ForbiddenTAIs ::= SEQUENCE (SIZE(1..maxnoofForbTAIs)) OF TAI
|
||||
|
||||
ForbiddenLAs ::= SEQUENCE (SIZE(1..maxnoofEPLMNsPlusOne)) OF ForbiddenLAs-Item
|
||||
|
||||
ForbiddenLAs-Item ::= SEQUENCE {
|
||||
pLMN-Identity PLMN-Identity,
|
||||
forbiddenLACs ForbiddenLACs
|
||||
}
|
||||
|
||||
ForbiddenLACs ::= SEQUENCE (SIZE(1..maxnoofForbLACs)) OF LAC
|
||||
|
||||
Frequency ::= OCTET STRING
|
||||
|
||||
|
||||
-- G
|
||||
|
||||
|
||||
GTPtunnelEndpoint ::= SEQUENCE {
|
||||
transportLayerAddress TransportLayerAddress,
|
||||
gTP-TEID GTP-TEI,
|
||||
iE-Extensions ProtocolExtensionContainer { {GTPtunnelEndpoint-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
GTPtunnelEndpoint-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
GTP-TEI ::= OCTET STRING (SIZE (4))
|
||||
|
||||
-- H
|
||||
|
||||
HandoverRestrictionList ::= SEQUENCE {
|
||||
equivalentPLMNs EPLMNs OPTIONAL,
|
||||
forbiddenTAs ForbiddenTAs OPTIONAL,
|
||||
forbiddenLAs ForbiddenLAs OPTIONAL,
|
||||
forbiddenInterRATs ForbiddenInterRATs OPTIONAL,
|
||||
iE-Extensions ProtocolExtensionContainer { {HandoverRestrictionList-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
HandoverRestrictionList-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
-- I
|
||||
|
||||
|
||||
InterfacesToTrace ::= SEQUENCE (SIZE(0..maxInterfaces)) OF ProtocolIE-Single-Container {{InterfacesToTrace-ItemIEs} }
|
||||
|
||||
InterfacesToTrace-ItemIEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-InterfacesToTrace-Item CRITICALITY ignore TYPE InterfacesToTrace-Item PRESENCE mandatory }
|
||||
}
|
||||
|
||||
InterfacesToTrace-Item ::= SEQUENCE {
|
||||
traceInterface TraceInterface,
|
||||
traceDepth TraceDepth,
|
||||
iE-Extensions ProtocolExtensionContainer { {InterfacesToTrace-Item-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
InterfacesToTrace-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
InterferenceOverloadIndication ::= OCTET STRING -- FFS
|
||||
|
||||
-- J
|
||||
-- K
|
||||
-- L
|
||||
|
||||
LAC ::= OCTET STRING (SIZE (2)) --(EXCEPT ('0000'H|'FFFE'H))
|
||||
|
||||
LastVisitedCell-Item ::= SEQUENCE {
|
||||
global-Cell-ID CGI,
|
||||
cellType CellType,
|
||||
time-UE-StayedInCell Time-UE-StayedInCell OPTIONAL,
|
||||
iE-Extensions ProtocolExtensionContainer { {LastVisitedCell-Item-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
LastVisitedCell-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
-- M
|
||||
-- N
|
||||
|
||||
|
||||
-- O
|
||||
-- P
|
||||
|
||||
PDCP-SN ::= INTEGER -- FFS
|
||||
|
||||
PhyCID ::= OCTET STRING
|
||||
|
||||
|
||||
PLMN-Identity ::= OCTET STRING (SIZE(3))
|
||||
|
||||
-- Q
|
||||
-- R
|
||||
|
||||
RB-type ::= INTEGER
|
||||
-- Editors note: FFS To be replaced by other QCI definition, ENUMERATED??
|
||||
|
||||
RRC-Context ::= OCTET STRING
|
||||
|
||||
-- S
|
||||
|
||||
SAE-BearerBitRate ::= INTEGER (0..210000000000)
|
||||
|
||||
SAE-BearerLevel-QoS-Parameters ::= SEQUENCE {
|
||||
label INTEGER (1..256),
|
||||
allocationAndRetentionPriority OCTET STRING, --FFS
|
||||
sAE-BearerType SAE-BearerType,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
SAE-BearerType ::= CHOICE {
|
||||
sAE-GBR-bearer SAE-GBR-bearer,
|
||||
sAE-non-GBR-bearer SAE-Non-GBR-bearer,
|
||||
...
|
||||
}
|
||||
|
||||
SAE-GBR-Bearer ::= SEQUENCE {
|
||||
sAE-Bearer-MaximumBitrateDL SAE-Bearer-BitRate,
|
||||
sAE-Bearer-MaximumBitrateUL SAE-Bearer-BitRate,
|
||||
sAE-Bearer-GuaranteedBitrateDL SAE-Bearer-BitRate,
|
||||
sAE-Bearer-GuaranteedBitrateUL SAE-Bearer-BitRate,
|
||||
iE-Extensions ProtocolExtensionContainer { {SAE-GBR-Bearer-Parameters-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
SAE-GBR-Bearer-Parameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
SAE-non-GBR-Bearer ::= SEQUENCE {
|
||||
sAE-non-GBR-Bearer-Type ENUMERATED {non-GBR-Bearer,...},
|
||||
iE-Extensions ProtocolExtensionContainer { {SAE-non-GBR-Bearer-Parameters-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
SAE-non-GBR-Bearer-Parameters-ExtIEs S1AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
ServedCells ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ServedCell-Information
|
||||
|
||||
|
||||
ServedCell-Information ::= SEQUENCE {
|
||||
phyCID PhyCID,
|
||||
cellId CellId,
|
||||
tAI TAI,
|
||||
broadcastPLMNs BroadcastPLMNs-Item,
|
||||
frequency Frequency,
|
||||
iE-Extensions ProtocolExtensionContainer { {ServedCell-Information-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
ServedCell-Information-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
-- T
|
||||
|
||||
TAI ::= OCTET STRING -- FFS
|
||||
|
||||
TargeteNBtoSource-eNBTransparentContainer ::= OCTET STRING
|
||||
|
||||
Time-UE-StayedInCell ::= INTEGER
|
||||
|
||||
TimeToWait ::= OCTET STRING
|
||||
|
||||
|
||||
TraceActivation ::= SEQUENCE {
|
||||
traceReference TraceReference,
|
||||
interfacesToTrace InterfacesToTrace,
|
||||
iE-Extensions ProtocolExtensionContainer { {TraceActivation-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
TraceActivation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
TraceDepth ::= ENUMERATED {
|
||||
minimum,
|
||||
medium,
|
||||
maximum,
|
||||
...
|
||||
}
|
||||
|
||||
TraceInterface ::= ENUMERATED {
|
||||
s1,
|
||||
x2,
|
||||
uu,
|
||||
...
|
||||
}
|
||||
|
||||
TraceReference ::= OCTET STRING (SIZE (3))
|
||||
|
||||
|
||||
TransportLayerAddress ::= BIT STRING (SIZE(1..160, ...))
|
||||
|
||||
TypeOfError ::= ENUMERATED {
|
||||
not-understood,
|
||||
missing,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
-- U
|
||||
|
||||
UE-HistoryInformation ::= SEQUENCE (SIZE(1..maxnoofCells)) OF LastVisitedCell-Item
|
||||
|
||||
|
||||
UE-S1AP-ID ::= INTEGER (0..4095) -- Value FFS
|
||||
|
||||
UE-X2AP-ID ::= INTEGER (0..4095) -- Value FFS
|
||||
|
||||
|
||||
|
||||
|
||||
-- V
|
||||
-- W
|
||||
-- X
|
||||
-- Y
|
||||
-- Z
|
||||
|
||||
END
|
|
@ -0,0 +1,455 @@
|
|||
-- $Id$
|
||||
-- 3GPP TS 36.423 V8.0.0 (2007-12)
|
||||
-- 9.3.4 PDU Definitions
|
||||
-- **************************************************************
|
||||
--
|
||||
-- PDU definitions for X2AP.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-PDU-Contents {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Contents (1) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IE parameter types from other modules.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
IMPORTS
|
||||
AggregateMaximumBitRate,
|
||||
Bearer-ID,
|
||||
Cause,
|
||||
CGI,
|
||||
CriticalityDiagnostics,
|
||||
DL-Forwarding,
|
||||
ENB-ID,
|
||||
HandoverRestrictionList,
|
||||
InterferenceOverloadIndication,
|
||||
PDCP-SN,
|
||||
PLMN-Identity,
|
||||
UE-S1AP-ID,
|
||||
RB-type,
|
||||
RRC-Context,
|
||||
SAE-BearerLevel-QoS-Parameters,
|
||||
ServedCells,
|
||||
TimeToWait,
|
||||
TraceActivation,
|
||||
TargeteNBtoSource-eNBTransparentContainer,
|
||||
TraceDepth,
|
||||
TraceReference,
|
||||
TransportLayerAddress,
|
||||
UE-HistoryInformation,
|
||||
GTPtunnelEndpoint,
|
||||
UE-X2AP-ID
|
||||
FROM X2AP-IEs
|
||||
|
||||
PrivateIE-Container{},
|
||||
ProtocolExtensionContainer{},
|
||||
ProtocolIE-ContainerList{},
|
||||
ProtocolIE-ContainerPair{},
|
||||
ProtocolIE-ContainerPairList{},
|
||||
ProtocolIE-Container{},
|
||||
ProtocolIE-Single-Container{},
|
||||
X2AP-PRIVATE-IES,
|
||||
X2AP-PROTOCOL-EXTENSION,
|
||||
X2AP-PROTOCOL-IES,
|
||||
X2AP-PROTOCOL-IES-PAIR
|
||||
FROM X2AP-Containers
|
||||
|
||||
id-Bearers-Admitted-Item,
|
||||
id-Bearers-Admitted-List,
|
||||
id-Bearers-NotAdmitted-Item,
|
||||
id-Bearers-NotAdmitted-List,
|
||||
id-Bearers-SubjectToStatusTransfer-List,
|
||||
id-Bearers-SubjectToStatusTransfer-Item,
|
||||
id-Cause,
|
||||
id-CellInformation,
|
||||
id-CellInformation-Item,
|
||||
id-CriticalityDiagnostics,
|
||||
id-ENB-ID,
|
||||
id-UE-ContextInformation,
|
||||
id-Bearers-ToBeSetup-Item,
|
||||
id-New-eNB-UE-X2AP-ID,
|
||||
id-Old-eNB-UE-X2AP-ID,
|
||||
id-ServedCells,
|
||||
id-TargetCell-ID,
|
||||
id-TargeteNBtoSource-eNBTransparentContainer,
|
||||
id-TimeToWait,
|
||||
id-TraceActivation,
|
||||
id-UE-HistoryInformation,
|
||||
id-UE-X2AP-ID,
|
||||
|
||||
maxnoofBearers,
|
||||
maxnoofPDCP-SN,
|
||||
maxCellineNB
|
||||
FROM X2AP-Constants;
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- HANDOVER REQUEST
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
HandoverRequest ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{HandoverRequest-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
HandoverRequest-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory } |
|
||||
{ ID id-TargetCell-ID CRITICALITY reject TYPE CGI PRESENCE mandatory } |
|
||||
{ ID id-UE-ContextInformation CRITICALITY reject TYPE UE-ContextInformation PRESENCE mandatory } |
|
||||
{ ID id-UE-HistoryInformation CRITICALITY reject TYPE UE-HistoryInformation PRESENCE optional } |
|
||||
{ ID id-TraceActivation CRITICALITY ignore TYPE TraceActivation PRESENCE optional } ,
|
||||
...
|
||||
}
|
||||
|
||||
UE-ContextInformation ::= SEQUENCE {
|
||||
mME-UE-S1AP-ID UE-S1AP-ID,
|
||||
aggregateMaximumBitRate AggregateMaximumBitRate,
|
||||
bearers-ToBeSetup-List Bearers-ToBeSetup-List,
|
||||
rRC-Context RRC-Context,
|
||||
servingPLMN PLMN-Identity OPTIONAL,
|
||||
handoverRestrictionList HandoverRestrictionList OPTIONAL,
|
||||
iE-Extensions ProtocolExtensionContainer { {UE-ContextInformation-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
UE-ContextInformation-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
Bearers-ToBeSetup-List ::= SEQUENCE (SIZE(0..maxnoofBearers)) OF ProtocolIE-Single-Container { {Bearers-ToBeSetup-ItemIEs} }
|
||||
|
||||
Bearers-ToBeSetup-ItemIEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Bearers-ToBeSetup-Item CRITICALITY ignore TYPE Bearers-ToBeSetup-Item PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
Bearers-ToBeSetup-Item ::= SEQUENCE {
|
||||
sAE-Bearer-ID Bearer-ID,
|
||||
sAE-BearerLevel-QoS-Parameters SAE-BearerLevel-QoS-Parameters,
|
||||
dL-Forwarding DL-Forwarding,
|
||||
uL-GTPtunnelEndpoint GTPtunnelEndpoint,
|
||||
rB-type RB-type,
|
||||
iE-Extensions ProtocolExtensionContainer { {Bearers-ToBeSetup-ItemExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
Bearers-ToBeSetup-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- HANDOVER REQUEST ACKNOWLEDGE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
HandoverRequestAcknowledge ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{HandoverRequestAcknowledge-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
HandoverRequestAcknowledge-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} |
|
||||
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} |
|
||||
{ ID id-Bearers-Admitted-List CRITICALITY ignore TYPE Bearers-Admitted-List PRESENCE optional } |
|
||||
{ ID id-Bearers-NotAdmitted-List CRITICALITY ignore TYPE Bearers-NotAdmitted-List PRESENCE optional } |
|
||||
{ ID id-TargeteNBtoSource-eNBTransparentContainer CRITICALITY ignore TYPE TargeteNBtoSource-eNBTransparentContainer PRESENCE },
|
||||
...
|
||||
}
|
||||
|
||||
Bearers-Admitted-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {Bearers-Admitted-ItemIEs} }
|
||||
|
||||
Bearers-Admitted-ItemIEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Bearers-Admitted-Item CRITICALITY ignore TYPE Bearers-Admitted-Item PRESENCE mandatory }
|
||||
}
|
||||
|
||||
Bearers-Admitted-Item ::= SEQUENCE {
|
||||
bearer-ID Bearer-ID,
|
||||
uL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL,
|
||||
dL-GTP-TunnelEndpoint GTPtunnelEndpoint OPTIONAL,
|
||||
iE-Extensions ProtocolExtensionContainer { {Bearers-Admitted-Item-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
Bearers-Admitted-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
Bearers-NotAdmitted-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { {Bearers-NotAdmitted-ItemIEs} }
|
||||
|
||||
Bearers-NotAdmitted-ItemIEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Bearers-NotAdmitted-Item CRITICALITY ignore TYPE Bearers-NotAdmitted-Item PRESENCE mandatory }
|
||||
}
|
||||
|
||||
Bearers-NotAdmitted-Item ::= SEQUENCE {
|
||||
bearer-ID Bearer-ID,
|
||||
cause Cause,
|
||||
iE-Extensions ProtocolExtensionContainer { {Bearers-NotAdmitted-Item-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
Bearers-NotAdmitted-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- HANDOVER PREPARATION FAILURE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
HandoverPreparationFailure ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{HandoverPreparationFailure-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
HandoverPreparationFailure-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} |
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} ,
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- SN Status Transfer
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
SNStatusTransfer ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{SNStatusTransfer-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
SNStatusTransfer-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} |
|
||||
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} |
|
||||
{ ID id-Bearers-SubjectToStatusTransfer-List CRITICALITY ignore TYPE Bearers-SubjectToStatusTransfer-List PRESENCE mandatory} ,
|
||||
...
|
||||
}
|
||||
|
||||
Bearers-SubjectToStatusTransfer-List ::= SEQUENCE (SIZE (1..maxnoofBearers)) OF ProtocolIE-Single-Container { { Bearers-SubjectToStatusTransfer-ItemIEs} }
|
||||
|
||||
Bearers-SubjectToStatusTransfer-ItemIEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Bearers-SubjectToStatusTransfer-Item CRITICALITY ignore TYPE Bearers-SubjectToStatusTransfer-Item PRESENCE mandatory }
|
||||
}
|
||||
|
||||
Bearers-SubjectToStatusTransfer-Item ::= SEQUENCE {
|
||||
bearer-ID Bearer-ID,
|
||||
pDCP-SNofULSDUsNotToBeRetransmitted-List PDCP-SNofULSDUsNotToBeRetransmitted-List OPTIONAL,
|
||||
uL-PDCP-SN-NextInSequenceExpected PDCP-SN,
|
||||
dL-PDCP-SN-NextToAssign PDCP-SN,
|
||||
iE-Extensions ProtocolExtensionContainer { {Bearers-SubjectToStatusTransfer-ItemExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
Bearers-SubjectToStatusTransfer-ItemExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
PDCP-SNofULSDUsNotToBeRetransmitted-List ::= SEQUENCE (SIZE (1..maxnoofPDCP-SN)) OF PDCP-SN
|
||||
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Release Resource
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ReleaseResource ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{ReleaseResource-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
ReleaseResource-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} |
|
||||
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} ,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- HANDOVER CANCEL
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
HandoverCancel ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{HandoverCancel-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
HandoverCancel-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} |
|
||||
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY reject TYPE UE-X2AP-ID PRESENCE mandatory} |
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} ,
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- ERROR INDICATION
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ErrorIndication ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{ErrorIndication-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
ErrorIndication-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Old-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} |
|
||||
{ ID id-New-eNB-UE-X2AP-ID CRITICALITY ignore TYPE UE-X2AP-ID PRESENCE optional} |
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional} |
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional} ,
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Reset Request
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ResetRequest ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{ResetRequest-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
ResetRequest-IEs X2AP-PROTOCOL-IES ::= {
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Reset Response
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ResetResponse ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{ResetResponse-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
ResetResponse-IEs X2AP-PROTOCOL-IES ::= {
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- X2 SETUP REQUEST
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2SetupRequest ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2SetupRequest-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2SetupRequest-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-ENB-ID CRITICALITY reject TYPE ENB-ID PRESENCE mandatory} |
|
||||
{ ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory} ,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- X2 SETUP RESPONSE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2SetupResponse ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2SetupResponse-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2SetupResponse-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-ENB-ID CRITICALITY reject TYPE ENB-ID PRESENCE mandatory} |
|
||||
{ ID id-ServedCells CRITICALITY reject TYPE ServedCells PRESENCE mandatory} ,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- X2 SETUP FAILURE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2SetupFailure ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{X2SetupFailure-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
X2SetupFailure-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} |
|
||||
{ ID id-TimeToWait CRITICALITY ignore TYPE TimeToWait PRESENCE optional} ,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- LOAD INFORMATION
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
LoadInformation ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{LoadInformation-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
LoadInformation-IEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-CellInformation CRITICALITY ignore TYPE CellInformation-List PRESENCE mandatory} ,
|
||||
...
|
||||
}
|
||||
|
||||
CellInformation-List ::= SEQUENCE (SIZE (1..maxCellineNB)) OF ProtocolIE-Single-Container { {CellInformation-ItemIEs} }
|
||||
|
||||
CellInformation-ItemIEs X2AP-PROTOCOL-IES ::= {
|
||||
{ ID id-CellInformation-Item CRITICALITY ignore TYPE CellInformation-Item PRESENCE mandatory }
|
||||
}
|
||||
|
||||
CellInformation-Item ::= SEQUENCE {
|
||||
global-Cell-ID CGI,
|
||||
interferenceOverloadIndication InterferenceOverloadIndication OPTIONAL,
|
||||
iE-Extensions ProtocolExtensionContainer { {CellInformation-Item-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
CellInformation-Item-ExtIEs X2AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
-- **************************************************************
|
||||
--
|
||||
-- PRIVATE MESSAGE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
PrivateMessage ::= SEQUENCE {
|
||||
privateIEs PrivateIE-Container {{PrivateMessage-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
PrivateMessage-IEs X2AP-PRIVATE-IES ::= {
|
||||
...
|
||||
}
|
||||
|
||||
END
|
|
@ -0,0 +1,203 @@
|
|||
-- $Id$
|
||||
-- 3GPP TS 36.423 V8.0.0 (2007-12)
|
||||
-- 9.3.3 Elementary Procedure Definitions
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Elementary Procedure definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-PDU-Descriptions {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) x2ap (2) version1 (1) x2ap-PDU-Descriptions (0) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IE parameter types from other modules.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
IMPORTS
|
||||
Criticality,
|
||||
ProcedureCode
|
||||
FROM X2AP-CommonDataTypes
|
||||
|
||||
|
||||
ErrorIndication,
|
||||
HandoverRequest,
|
||||
HandoverRequestAcknowledge,
|
||||
HandoverPreparationFailure,
|
||||
SNStatusTransfer,
|
||||
ReleaseResource,
|
||||
HandoverCancel,
|
||||
LoadInformation,
|
||||
ResetRequest,
|
||||
ResetResponse,
|
||||
X2SetupRequest,
|
||||
X2SetupResponse,
|
||||
X2SetupFailure
|
||||
|
||||
FROM X2AP-PDU-Contents
|
||||
|
||||
id-errorIndication,
|
||||
id-handoverPreparation,
|
||||
id-snStatusTransfer,
|
||||
id-releaseResource,
|
||||
id-handoverCancel,
|
||||
id-loadIndication,
|
||||
id-reset,
|
||||
id-x2Setup
|
||||
|
||||
|
||||
FROM X2AP-Constants;
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface Elementary Procedure Class
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-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
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-PDU ::= CHOICE {
|
||||
initiatingMessage InitiatingMessage,
|
||||
successfulOutcome SuccessfulOutcome,
|
||||
unsuccessfulOutcome UnsuccessfulOutcome,
|
||||
...
|
||||
}
|
||||
|
||||
InitiatingMessage ::= SEQUENCE {
|
||||
procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
|
||||
criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value X2AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
|
||||
SuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
|
||||
criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value X2AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
|
||||
UnsuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode X2AP-ELEMENTARY-PROCEDURE.&procedureCode ({X2AP-ELEMENTARY-PROCEDURES}),
|
||||
criticality X2AP-ELEMENTARY-PROCEDURE.&criticality ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value X2AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({X2AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface Elementary Procedure List
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
X2AP-ELEMENTARY-PROCEDURES X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
X2AP-ELEMENTARY-PROCEDURES-CLASS-1 |
|
||||
X2AP-ELEMENTARY-PROCEDURES-CLASS-2 ,
|
||||
...
|
||||
}
|
||||
|
||||
X2AP-ELEMENTARY-PROCEDURES-CLASS-1 X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
handoverPreparation |
|
||||
reset |
|
||||
x2Setup ,
|
||||
...
|
||||
}
|
||||
|
||||
X2AP-ELEMENTARY-PROCEDURES-CLASS-2 X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
snStatusTransfer |
|
||||
releaseResource |
|
||||
handoverCancel |
|
||||
errorIndication |
|
||||
loadIndication ,
|
||||
...
|
||||
|
||||
}
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface Elementary Procedures
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
handoverPreparation X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE HandoverRequest
|
||||
SUCCESSFUL OUTCOME HandoverRequestAcknowledge
|
||||
UNSUCCESSFUL OUTCOME HandoverPreparationFailure
|
||||
PROCEDURE CODE id-handoverPreparation
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
snStatusTransfer X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE SNStatusTransfer
|
||||
PROCEDURE CODE id-snStatusTransfer
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
releaseResource X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ReleaseResource
|
||||
PROCEDURE CODE id-releaseResource
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
|
||||
handoverCancel X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE HandoverCancel
|
||||
PROCEDURE CODE id-handoverCancel
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
errorIndication X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ErrorIndication
|
||||
PROCEDURE CODE id-errorIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
reset X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ResetRequest
|
||||
SUCCESSFUL OUTCOME ResetResponse
|
||||
PROCEDURE CODE id-reset
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
x2Setup X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE X2SetupRequest
|
||||
SUCCESSFUL OUTCOME X2SetupResponse
|
||||
UNSUCCESSFUL OUTCOME X2SetupFailure
|
||||
PROCEDURE CODE id-x2Setup
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
|
||||
loadIndication X2AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE LoadInformation
|
||||
PROCEDURE CODE id-loadIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
|
||||
END
|
|
@ -0,0 +1,183 @@
|
|||
/* packet-x2ap.c
|
||||
* Routines for dissecting Evolved Universal Terrestrial Radio Access Network (EUTRAN);
|
||||
* X2 Application Protocol (X2AP);
|
||||
* 3GPP TS 36.423 packet dissection
|
||||
* Copyright 2007, Anders Broman <anders.broman@ericsson.com>
|
||||
*
|
||||
* $Id$
|
||||
*
|
||||
* Wireshark - Network traffic analyzer
|
||||
* By Gerald Combs <gerald@wireshark.org>
|
||||
* Copyright 1998 Gerald Combs
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* Ref:
|
||||
* 3GPP TS 36.423 V8.0.0 (2007-12)
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
#include <glib.h>
|
||||
#include <epan/packet.h>
|
||||
#include <epan/conversation.h>
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <epan/asn1.h>
|
||||
|
||||
#include "packet-per.h"
|
||||
|
||||
#ifdef _MSC_VER
|
||||
/* disable: "warning C4146: unary minus operator applied to unsigned type, result still unsigned" */
|
||||
#pragma warning(disable:4146)
|
||||
#endif
|
||||
|
||||
#define PNAME "EUTRAN X2 Application Protocol (X2AP)"
|
||||
#define PSNAME "X2AP"
|
||||
#define PFNAME "x2ap"
|
||||
|
||||
#define SCCP_SSN_X2AP 143
|
||||
|
||||
#include "packet-x2ap-val.h"
|
||||
|
||||
static dissector_handle_t x2ap_handle = NULL;
|
||||
|
||||
/* Initialize the protocol and registered fields */
|
||||
static int proto_x2ap = -1;
|
||||
|
||||
#include "packet-x2ap-hf.c"
|
||||
|
||||
/* Initialize the subtree pointers */
|
||||
static int ett_x2ap = -1;
|
||||
|
||||
#include "packet-x2ap-ett.c"
|
||||
|
||||
/* Global variables */
|
||||
static guint32 ProcedureCode;
|
||||
static guint32 ProtocolIE_ID;
|
||||
static guint32 ddMode;
|
||||
static const gchar *ProcedureID;
|
||||
|
||||
/* Dissector tables */
|
||||
static dissector_table_t x2ap_ies_dissector_table;
|
||||
static dissector_table_t x2ap_extension_dissector_table;
|
||||
static dissector_table_t x2ap_proc_imsg_dissector_table;
|
||||
static dissector_table_t x2ap_proc_sout_dissector_table;
|
||||
static dissector_table_t x2ap_proc_uout_dissector_table;
|
||||
|
||||
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
|
||||
static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
|
||||
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
|
||||
static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
|
||||
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree);
|
||||
|
||||
#include "packet-x2ap-fn.c"
|
||||
|
||||
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
return (dissector_try_port(x2ap_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
|
||||
}
|
||||
|
||||
static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
return (dissector_try_port(x2ap_extension_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
|
||||
}
|
||||
|
||||
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
if (!ProcedureID) return 0;
|
||||
return (dissector_try_string(x2ap_proc_imsg_dissector_table, ProcedureID, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
|
||||
}
|
||||
|
||||
static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
if (!ProcedureID) return 0;
|
||||
return (dissector_try_string(x2ap_proc_sout_dissector_table, ProcedureID, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
|
||||
}
|
||||
|
||||
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
if (!ProcedureID) return 0;
|
||||
return (dissector_try_string(x2ap_proc_uout_dissector_table, ProcedureID, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
|
||||
}
|
||||
|
||||
static void
|
||||
dissect_x2ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
proto_item *x2ap_item = NULL;
|
||||
proto_tree *x2ap_tree = NULL;
|
||||
|
||||
/* make entry in the Protocol column on summary display */
|
||||
if (check_col(pinfo->cinfo, COL_PROTOCOL))
|
||||
col_set_str(pinfo->cinfo, COL_PROTOCOL, "X2AP");
|
||||
|
||||
/* create the x2ap protocol tree */
|
||||
x2ap_item = proto_tree_add_item(tree, proto_x2ap, tvb, 0, -1, FALSE);
|
||||
x2ap_tree = proto_item_add_subtree(x2ap_item, ett_x2ap);
|
||||
|
||||
dissect_X2AP_PDU_PDU(tvb, pinfo, x2ap_tree);
|
||||
}
|
||||
|
||||
/*--- proto_register_x2ap -------------------------------------------*/
|
||||
void proto_register_x2ap(void) {
|
||||
|
||||
/* List of fields */
|
||||
|
||||
static hf_register_info hf[] = {
|
||||
#include "packet-x2ap-hfarr.c"
|
||||
};
|
||||
|
||||
/* List of subtrees */
|
||||
static gint *ett[] = {
|
||||
&ett_x2ap,
|
||||
#include "packet-x2ap-ettarr.c"
|
||||
};
|
||||
|
||||
|
||||
/* Register protocol */
|
||||
proto_x2ap = proto_register_protocol(PNAME, PSNAME, PFNAME);
|
||||
/* Register fields and subtrees */
|
||||
proto_register_field_array(proto_x2ap, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
|
||||
/* Register dissector */
|
||||
register_dissector("x2ap", dissect_x2ap, proto_x2ap);
|
||||
x2ap_handle = find_dissector("x2ap");
|
||||
|
||||
/* Register dissector tables */
|
||||
x2ap_ies_dissector_table = register_dissector_table("x2ap.ies", "X2AP-PROTOCOL-IES", FT_UINT32, BASE_DEC);
|
||||
x2ap_extension_dissector_table = register_dissector_table("x2ap.extension", "X2AP-PROTOCOL-EXTENSION", FT_UINT32, BASE_DEC);
|
||||
x2ap_proc_imsg_dissector_table = register_dissector_table("x2ap.proc.imsg", "X2AP-ELEMENTARY-PROCEDURE InitiatingMessage", FT_STRING, BASE_NONE);
|
||||
x2ap_proc_sout_dissector_table = register_dissector_table("x2ap.proc.sout", "X2AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_STRING, BASE_NONE);
|
||||
x2ap_proc_uout_dissector_table = register_dissector_table("x2ap.proc.uout", "X2AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_STRING, BASE_NONE);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*--- proto_reg_handoff_x2ap ---------------------------------------*/
|
||||
void
|
||||
proto_reg_handoff_x2ap(void)
|
||||
{
|
||||
|
||||
dissector_add("sctp.port", 0, x2ap_handle);
|
||||
|
||||
#include "packet-x2ap-dis-tab.c"
|
||||
}
|
||||
|
||||
|
|
@ -0,0 +1,168 @@
|
|||
# x2ap.cnf
|
||||
# x2ap conformation file
|
||||
# Copyright 2007 Anders Broman
|
||||
# $Id$
|
||||
|
||||
#.OPT
|
||||
PER
|
||||
ALIGNED
|
||||
#.END
|
||||
|
||||
#.PDU
|
||||
X2AP-PDU
|
||||
|
||||
#.MAKE_DEFINES
|
||||
ProcedureCode
|
||||
|
||||
#.MAKE_ENUM
|
||||
ProtocolIE-ID
|
||||
|
||||
#.TYPE_RENAME
|
||||
|
||||
ProtocolIE-Field/value ProtocolIE_Field_value
|
||||
PrivateIE-Field/value PrivateIE_Field_value
|
||||
InitiatingMessage/value InitiatingMessage_value
|
||||
SuccessfulOutcome/value SuccessfulOutcome_value
|
||||
UnsuccessfulOutcome/value UnsuccessfulOutcome_value
|
||||
|
||||
|
||||
#.FIELD_RENAME
|
||||
ProtocolExtensionField/id extension_id
|
||||
PrivateIE-Field/id private_id
|
||||
InitiatingMessage/value initiatingMessage_value
|
||||
|
||||
ProtocolIE-Field/value protocolIE_Field_value
|
||||
SuccessfulOutcome/value successfulOutcome_value
|
||||
PrivateIE-Field/value privateIE_Field_value
|
||||
|
||||
#.OMIT_ASSIGNMENT
|
||||
Presence
|
||||
ProtocolIE-FieldPair
|
||||
ProtocolIE-ContainerList
|
||||
ProtocolIE-ContainerPair
|
||||
ProtocolIE-ContainerPairList
|
||||
#.END
|
||||
|
||||
#.FN_PARS ProtocolIE-ID VAL_PTR = &ProtocolIE_ID
|
||||
|
||||
#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue
|
||||
|
||||
#.FN_PARS ProtocolExtensionField/extensionValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolExtensionFieldExtensionValue
|
||||
|
||||
#.FN_PARS ProcedureCode VAL_PTR = &ProcedureCode
|
||||
#.FN_FTR ProcedureCode
|
||||
if (check_col(actx->pinfo->cinfo, COL_INFO))
|
||||
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
|
||||
val_to_str(ProcedureCode, x2ap_ProcedureCode_vals,
|
||||
"unknown message"));
|
||||
#.END
|
||||
|
||||
#.FN_HDR ProcedureCode
|
||||
ProcedureCode = 0xFFFF;
|
||||
#.END
|
||||
|
||||
|
||||
#.FN_PARS InitiatingMessage/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_InitiatingMessageValue
|
||||
|
||||
#.FN_PARS SuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_SuccessfulOutcomeValue
|
||||
|
||||
#.FN_PARS UnsuccessfulOutcome/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_UnsuccessfulOutcomeValue
|
||||
|
||||
|
||||
|
||||
#.TYPE_ATTR
|
||||
#.END
|
||||
|
||||
#.ASSIGN_VALUE_TO_TYPE # X2AP does not have constants assigned to types, they are pure INTEGER
|
||||
# ProcedureCode
|
||||
|
||||
id-handoverPreparation ProcedureCode
|
||||
id-handoverCancel ProcedureCode
|
||||
id-loadIndication ProcedureCode
|
||||
id-errorIndication ProcedureCode
|
||||
id-snStatusTransfer ProcedureCode
|
||||
id-releaseResource ProcedureCode
|
||||
id-x2Setup ProcedureCode
|
||||
id-reset ProcedureCode
|
||||
|
||||
# ProtocolIE-ID
|
||||
|
||||
id-Bearers-Admitted-Item ProtocolIE-ID
|
||||
id-Bearers-Admitted-List ProtocolIE-ID
|
||||
id-Bearers-NotAdmitted-Item ProtocolIE-ID
|
||||
id-Bearers-NotAdmitted-List ProtocolIE-ID
|
||||
id-Bearers-ToBeSetup-Item ProtocolIE-ID
|
||||
id-Cause ProtocolIE-ID
|
||||
id-CellInformation ProtocolIE-ID
|
||||
id-CellInformation-Item ProtocolIE-ID
|
||||
id-InterfacesToTrace-Item ProtocolIE-ID
|
||||
id-New-eNB-UE-X2AP-ID ProtocolIE-ID
|
||||
id-Old-eNB-UE-X2AP-ID ProtocolIE-ID
|
||||
id-TargetCell-ID ProtocolIE-ID
|
||||
id-TargeteNBtoSource-eNBTransparentContainer ProtocolIE-ID
|
||||
id-TraceActivation ProtocolIE-ID
|
||||
id-UE-ContextInformation ProtocolIE-ID
|
||||
id-UE-HistoryInformation ProtocolIE-ID
|
||||
id-UE-X2AP-ID ProtocolIE-ID
|
||||
id-CriticalityDiagnostics ProtocolIE-ID
|
||||
id-Bearers-SubjectToStatusTransfer-List ProtocolIE-ID
|
||||
id-Bearers-SubjectToStatusTransfer-Item ProtocolIE-ID
|
||||
id-ServedCells ProtocolIE-ID
|
||||
id-ENB-ID ProtocolIE-ID
|
||||
id-TimeToWait ProtocolIE-ID
|
||||
|
||||
|
||||
#.REGISTER_NEW
|
||||
|
||||
#X2AP-PROTOCOL-IES
|
||||
Bearers-Admitted-Item N x2ap.ies id-Bearers-Admitted-Item
|
||||
Bearers-Admitted-List N x2ap.ies id-Bearers-Admitted-List
|
||||
Bearers-NotAdmitted-Item N x2ap.ies id-Bearers-NotAdmitted-Item
|
||||
Bearers-NotAdmitted-List N x2ap.ies id-Bearers-NotAdmitted-List
|
||||
Bearers-ToBeSetup-Item N x2ap.ies id-Bearers-ToBeSetup-Item
|
||||
Cause N x2ap.ies id-Cause
|
||||
CellInformation-List N x2ap.ies id-CellInformation
|
||||
CellInformation-Item N x2ap.ies id-CellInformation-Item
|
||||
InterfacesToTrace-Item N x2ap.ies id-InterfacesToTrace-Item
|
||||
UE-X2AP-ID N x2ap.ies id-New-eNB-UE-X2AP-ID
|
||||
UE-X2AP-ID N x2ap.ies id-Old-eNB-UE-X2AP-ID
|
||||
CGI N x2ap.ies id-TargetCell-ID
|
||||
TargeteNBtoSource-eNBTransparentContainer N x2ap.ies id-TargeteNBtoSource-eNBTransparentContainer
|
||||
TraceActivation N x2ap.ies id-TraceActivation
|
||||
UE-ContextInformation N x2ap.ies id-UE-ContextInformation
|
||||
UE-HistoryInformation N x2ap.ies id-UE-HistoryInformation
|
||||
UE-X2AP-ID N x2ap.ies id-UE-X2AP-ID
|
||||
CriticalityDiagnostics N x2ap.ies id-CriticalityDiagnostics
|
||||
Bearers-SubjectToStatusTransfer-List N x2ap.ies id-Bearers-SubjectToStatusTransfer-List
|
||||
Bearers-SubjectToStatusTransfer-Item N x2ap.ies id-Bearers-SubjectToStatusTransfer-Item
|
||||
ServedCells N x2ap.ies id-ServedCells
|
||||
ENB-ID N x2ap.ies id-ENB-ID
|
||||
TimeToWait N x2ap.ies id-TimeToWait
|
||||
|
||||
|
||||
#X2AP-PROTOCOL-EXTENSION
|
||||
# this is from rnsap MessageStructure N x2ap.extension id-MessageStructure
|
||||
|
||||
# X2AP-PDU-Descriptions.asn Interface Elementary Procedures
|
||||
#X2AP-ELEMENTARY-PROCEDURE
|
||||
HandoverRequest S x2ap.proc.imsg "id-handoverPreparation"
|
||||
HandoverRequestAcknowledge S x2ap.proc.sout "id-handoverPreparation"
|
||||
HandoverPreparationFailure S x2ap.proc.uout "id-handoverPreparation"
|
||||
|
||||
SNStatusTransfer S x2ap.proc.imsg "id-snStatusTransfer"
|
||||
|
||||
ReleaseResource S x2ap.proc.imsg "id-releaseResource"
|
||||
|
||||
HandoverCancel S x2ap.proc.imsg "id-handoverCancel"
|
||||
|
||||
ErrorIndication S x2ap.proc.imsg "id-errorIndication"
|
||||
|
||||
ResetRequest S x2ap.proc.imsg "id-reset"
|
||||
ResetResponse S x2ap.proc.imsg "id-reset"
|
||||
|
||||
X2SetupRequest S x2ap.proc.imsg "id-x2Setup"
|
||||
X2SetupResponse S x2ap.proc.sout "id-x2Setup"
|
||||
X2SetupFailure S x2ap.proc.uout "id-x2Setup"
|
||||
|
||||
LoadInformation S x2ap.proc.imsg "LoadInformation"
|
||||
#.END
|
Loading…
Reference in New Issue