forked from osmocom/wireshark
From Neil Piercy:
Add 3GPP Home Node B Iuh protocol support (HNBAP & RUA) https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4531 - Added IE extension for HNBAP - Removed unused .h files svn path=/trunk/; revision=31988
This commit is contained in:
parent
8cd9794a00
commit
8ead825575
|
@ -0,0 +1,57 @@
|
|||
-- HNBAP-CommonDataTypes.asn
|
||||
--
|
||||
-- 3GPP TS 25.469 V8.4.0 (2009-12)
|
||||
-- http://www.3gpp.org/ftp/Specs/html-info/25469.htm
|
||||
--
|
||||
-- 9.3.5 Common Definitions
|
||||
--
|
||||
-- $Id$
|
||||
--
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Common definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
HNBAP-CommonDataTypes {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
umts-Access (20) modules (3) hnbap(6) version1 (1) hnbap-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..65535),
|
||||
global OBJECT IDENTIFIER
|
||||
}
|
||||
|
||||
|
||||
ProcedureCode ::= INTEGER (0..255)
|
||||
|
||||
|
||||
ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs)
|
||||
|
||||
TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome }
|
||||
|
||||
END
|
|
@ -0,0 +1,78 @@
|
|||
-- HNBAP-Constants.asn
|
||||
--
|
||||
-- 3GPP TS 25.469 V8.4.0 (2009-12)
|
||||
-- http://www.3gpp.org/ftp/Specs/html-info/25469.htm
|
||||
--
|
||||
-- 9.3.6 Constant Definitions
|
||||
--
|
||||
-- $Id$
|
||||
--
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Constant definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
HNBAP-Constants {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
umts-Access (20) modules (3) hnbap(6) version1 (1) hnbap-Constants (4) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
IMPORTS
|
||||
ProcedureCode,
|
||||
ProtocolIE-ID
|
||||
FROM HNBAP-CommonDataTypes;
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Elementary Procedures
|
||||
--
|
||||
id-HNBRegister ProcedureCode ::= 1
|
||||
id-HNBDe-Register ProcedureCode ::= 2
|
||||
id-UERegister ProcedureCode ::= 3
|
||||
id-UEDe-Register ProcedureCode ::= 4
|
||||
id-ErrorIndication ProcedureCode ::= 5
|
||||
id-privateMessage ProcedureCode ::= 6
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Lists
|
||||
--
|
||||
-- **************************************************************
|
||||
maxNrOfErrors INTEGER ::= 256
|
||||
maxUEs INTEGER ::= 64
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
id-Cause ProtocolIE-ID ::= 1
|
||||
id-CriticalityDiagnostics ProtocolIE-ID ::= 2
|
||||
id-HNB-Identity ProtocolIE-ID ::= 3
|
||||
id-Context-ID ProtocolIE-ID ::= 4
|
||||
id-UE-Identity ProtocolIE-ID ::= 5
|
||||
id-LAC ProtocolIE-ID ::= 6
|
||||
id-RAC ProtocolIE-ID ::= 7
|
||||
id-HNB-Location-Information ProtocolIE-ID ::= 8
|
||||
id-PLMNidentity ProtocolIE-ID ::= 9
|
||||
id-SAC ProtocolIE-ID ::= 10
|
||||
id-CellIdentity ProtocolIE-ID ::= 11
|
||||
id-Registration-Cause ProtocolIE-ID ::= 12
|
||||
id-UE-Capabilities ProtocolIE-ID ::= 13
|
||||
id-RNC-ID ProtocolIE-ID ::= 14
|
||||
id-CSG-ID ProtocolIE-ID ::= 15
|
||||
id-BackoffTimer ProtocolIE-ID ::= 16
|
||||
id-HNB-Internet-Information ProtocolIE-ID ::= 17
|
||||
|
||||
|
||||
|
||||
END
|
|
@ -0,0 +1,159 @@
|
|||
-- HNBAP-Containers.asn
|
||||
--
|
||||
-- 3GPP TS 25.469 V8.4.0 (2009-12)
|
||||
-- http://www.3gpp.org/ftp/Specs/html-info/25469.htm
|
||||
--
|
||||
-- 9.3.7 Container Definitions
|
||||
--
|
||||
-- $Id$
|
||||
--
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
HNBAP-Containers {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
umts-Access (20) modules (3) hnbap(6) version1 (1) hnbap-Containers (5) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IE parameter types from other modules.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
IMPORTS
|
||||
Criticality,
|
||||
Presence,
|
||||
PrivateIE-ID,
|
||||
ProtocolIE-ID,
|
||||
maxPrivateIEs,
|
||||
maxProtocolExtensions,
|
||||
maxProtocolIEs
|
||||
FROM HNBAP-CommonDataTypes;
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Class Definition for Protocol IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
HNBAP-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 Extensions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
HNBAP-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
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
HNBAP-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 {HNBAP-PROTOCOL-IES : IEsSetParam} ::=
|
||||
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
|
||||
ProtocolIE-Field {{IEsSetParam}}
|
||||
|
||||
ProtocolIE-Single-Container {HNBAP-PROTOCOL-IES : IEsSetParam} ::=
|
||||
ProtocolIE-Field {{IEsSetParam}}
|
||||
|
||||
ProtocolIE-Field {HNBAP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
|
||||
id HNBAP-PROTOCOL-IES.&id ({IEsSetParam}),
|
||||
criticality HNBAP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
|
||||
value HNBAP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container Lists for Protocol IE Containers
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, HNBAP-PROTOCOL-IES : IEsSetParam} ::=
|
||||
SEQUENCE (SIZE (lowerBound..upperBound)) OF
|
||||
ProtocolIE-Container {{IEsSetParam}}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container for Protocol Extensions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ProtocolExtensionContainer {HNBAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
|
||||
SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
|
||||
ProtocolExtensionField {{ExtensionSetParam}}
|
||||
|
||||
ProtocolExtensionField {HNBAP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
|
||||
id HNBAP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
|
||||
criticality HNBAP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
|
||||
extensionValue HNBAP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container for Private IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
PrivateIE-Container {HNBAP-PRIVATE-IES : IEsSetParam } ::=
|
||||
SEQUENCE (SIZE (1.. maxPrivateIEs)) OF
|
||||
PrivateIE-Field {{IEsSetParam}}
|
||||
|
||||
PrivateIE-Field {HNBAP-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
|
||||
id HNBAP-PRIVATE-IES.&id ({IEsSetParam}),
|
||||
criticality HNBAP-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
|
||||
value HNBAP-PRIVATE-IES.&Value ({IEsSetParam}{@id})
|
||||
}
|
||||
|
||||
END
|
|
@ -0,0 +1,381 @@
|
|||
-- HNBAP-IEs.asn
|
||||
--
|
||||
-- 3GPP TS 25.469 V8.4.0 (2009-12)
|
||||
-- http://www.3gpp.org/ftp/Specs/html-info/25469.htm
|
||||
--
|
||||
-- 9.3.4 Information Element Definitions
|
||||
--
|
||||
-- $Id$
|
||||
--
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Information Element Definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
HNBAP-IEs {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
umts-Access (20) modules (3) hnbap(6) version1 (1) hnbap-IEs (2) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
IMPORTS
|
||||
maxNrOfErrors,
|
||||
maxUEs,
|
||||
id-HNB-Internet-Information
|
||||
|
||||
FROM HNBAP-Constants
|
||||
|
||||
Criticality,
|
||||
ProcedureCode,
|
||||
ProtocolIE-ID,
|
||||
TriggeringMessage
|
||||
FROM HNBAP-CommonDataTypes
|
||||
|
||||
ProtocolExtensionContainer{},
|
||||
HNBAP-PROTOCOL-EXTENSION
|
||||
FROM HNBAP-Containers;
|
||||
|
||||
|
||||
--A
|
||||
Access-stratum-release-indicator ::= ENUMERATED {r99,
|
||||
rel-4, rel-5, rel-6, rel-7, rel-8,
|
||||
...}
|
||||
|
||||
AltitudeAndDirection ::= SEQUENCE {
|
||||
directionOfAltitude ENUMERATED {height, depth},
|
||||
altitude INTEGER (0..32767),
|
||||
...
|
||||
}
|
||||
|
||||
--B
|
||||
BackoffTimer ::= INTEGER(0..3600)
|
||||
|
||||
--C
|
||||
Cause ::= CHOICE {
|
||||
radioNetwork CauseRadioNetwork,
|
||||
transport CauseTransport,
|
||||
protocol CauseProtocol,
|
||||
misc CauseMisc,
|
||||
...
|
||||
}
|
||||
CauseRadioNetwork ::= ENUMERATED {
|
||||
overload,
|
||||
unauthorised-Location,
|
||||
unauthorised-HNB,
|
||||
hNB-parameter-mismatch,
|
||||
invalid-UE-identity,
|
||||
uE-not-allowed-on-this-HNB,
|
||||
uE-unauthorised,
|
||||
connection-with-UE-lost,
|
||||
ue-RRC-telease,
|
||||
hNB-not-registered,
|
||||
unspecified,
|
||||
normal,
|
||||
uE-relocated,
|
||||
ue-registered-in-another-HNB,
|
||||
...
|
||||
}
|
||||
|
||||
CauseTransport ::= ENUMERATED {
|
||||
transport-resource-unavailable,
|
||||
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,
|
||||
...
|
||||
}
|
||||
|
||||
CauseMisc ::= ENUMERATED {
|
||||
processing-overload,
|
||||
hardware-failure,
|
||||
o-and-m-intervention,
|
||||
unspecified,
|
||||
...
|
||||
}
|
||||
|
||||
CellIdentity ::= BIT STRING (SIZE (28))
|
||||
|
||||
Context-ID ::= BIT STRING (SIZE(24))
|
||||
|
||||
CriticalityDiagnostics ::= SEQUENCE {
|
||||
procedureCode ProcedureCode OPTIONAL,
|
||||
triggeringMessage TriggeringMessage OPTIONAL,
|
||||
procedureCriticality Criticality OPTIONAL,
|
||||
iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
|
||||
iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
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 HNBAP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
CriticalityDiagnostics-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
CSG-ID ::= BIT STRING (SIZE (27))
|
||||
|
||||
CSG-Indicator ::= ENUMERATED {
|
||||
csg-capable,
|
||||
not-csg-capable,
|
||||
...
|
||||
}
|
||||
|
||||
CGI ::= SEQUENCE {
|
||||
pLMNidentity PLMNidentity,
|
||||
lAC LAC,
|
||||
cI CI,
|
||||
iE-Extensions ProtocolExtensionContainer { {CGI-ExtIEs} } OPTIONAL
|
||||
}
|
||||
|
||||
CGI-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
CI ::= OCTET STRING (SIZE (2))
|
||||
|
||||
|
||||
CN-DomainIndicator ::= ENUMERATED {
|
||||
cs-domain,
|
||||
ps-domain
|
||||
}
|
||||
--D
|
||||
--E
|
||||
ESN ::= BIT STRING (SIZE(32))
|
||||
--F
|
||||
--G
|
||||
GeographicalLocation ::= SEQUENCE {
|
||||
geographicalCoordinates GeographicalCoordinates,
|
||||
altitudeAndDirection AltitudeAndDirection,
|
||||
iE-Extensions ProtocolExtensionContainer { { GeographicLocation-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
GeographicLocation-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
GeographicalCoordinates ::= SEQUENCE {
|
||||
latitudeSign ENUMERATED {north, south},
|
||||
latitude INTEGER (0..8388607),
|
||||
longitude INTEGER (-8388608..8388607),
|
||||
iE-Extensions ProtocolExtensionContainer { {GeographicalCoordinates-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
GeographicalCoordinates-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
--H
|
||||
HNB-Location-Information ::= SEQUENCE {
|
||||
macroCoverageInfo MacroCoverageInformation OPTIONAL,
|
||||
geographicalCoordinates GeographicalLocation OPTIONAL,
|
||||
iE-Extensions ProtocolExtensionContainer { { HNB-Location-Information-ExtIEs } } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
HNB-Location-Information-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
|
||||
-- Extension for release-8 to support IP address for location verification --
|
||||
{ID id-HNB-Internet-Information CRITICALITY reject EXTENSION IP-Address PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
HNB-Identity ::= SEQUENCE {
|
||||
hNB-Identity-Info HNB-Identity-Info,
|
||||
iE-Extensions ProtocolExtensionContainer { { HNB-Identity-ExtIEs } } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
HNB-Identity-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
HNB-Identity-Info ::= OCTET STRING (SIZE (1..255))
|
||||
|
||||
--I
|
||||
|
||||
IMEI ::= BIT STRING (SIZE(60))
|
||||
|
||||
IMSI ::= OCTET STRING (SIZE (3..8))
|
||||
-- Reference: 23.003
|
||||
IMSIDS41 ::= OCTET STRING (SIZE (5..7))
|
||||
|
||||
IMSIESN ::= SEQUENCE {
|
||||
iMSIDS41 IMSIDS41,
|
||||
eSN ESN
|
||||
}
|
||||
|
||||
|
||||
IP-Address ::=SEQUENCE {
|
||||
ipaddress CHOICE {
|
||||
ipv4info Ipv4Address,
|
||||
ipv6info Ipv6Address,
|
||||
...
|
||||
},
|
||||
iE-Extensions ProtocolExtensionContainer { { IP-Address-ExtIEs } } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
IP-Address-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
Ipv4Address ::= OCTET STRING (SIZE (4))
|
||||
|
||||
Ipv6Address ::= OCTET STRING (SIZE (16))
|
||||
|
||||
|
||||
|
||||
|
||||
--J
|
||||
--K
|
||||
--L
|
||||
LAC ::= OCTET STRING(SIZE(2))
|
||||
|
||||
LAI ::= SEQUENCE {
|
||||
pLMNID PLMNidentity,
|
||||
lAC LAC,
|
||||
...
|
||||
}
|
||||
|
||||
-- M
|
||||
|
||||
MacroCoverageInformation ::= SEQUENCE {
|
||||
cellIdentity MacroCellID,
|
||||
iE-Extensions ProtocolExtensionContainer { { MacroCoverageInformation-ExtIEs } } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
MacroCoverageInformation-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
MacroCellID ::= CHOICE {
|
||||
uTRANCellID UTRANCellID,
|
||||
gERANCellID CGI,
|
||||
...
|
||||
}
|
||||
|
||||
--N
|
||||
--O
|
||||
--P
|
||||
PLMNidentity ::= OCTET STRING (SIZE (3))
|
||||
|
||||
PTMSI ::= BIT STRING (SIZE(32))
|
||||
|
||||
PTMSIRAI ::= SEQUENCE {
|
||||
pTMSI PTMSI,
|
||||
rAI RAI,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
--Q
|
||||
--R
|
||||
RAC ::= OCTET STRING(SIZE(1))
|
||||
|
||||
RAI ::= SEQUENCE {
|
||||
lAI LAI,
|
||||
rAC RAC,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
Registration-Cause ::= ENUMERATED {
|
||||
emergency-call,
|
||||
normal,
|
||||
...
|
||||
}
|
||||
|
||||
RNC-ID ::= INTEGER(0..65535)
|
||||
|
||||
--S
|
||||
|
||||
SAC ::= OCTET STRING(SIZE(2))
|
||||
|
||||
--T
|
||||
TMSILAI ::= SEQUENCE {
|
||||
tMSI BIT STRING(SIZE (32)),
|
||||
lAI LAI
|
||||
}
|
||||
|
||||
TMSIDS41 ::= OCTET STRING (SIZE (2..17))
|
||||
|
||||
TypeOfError ::= ENUMERATED {
|
||||
not-understood,
|
||||
missing,
|
||||
...
|
||||
}
|
||||
--U
|
||||
UE-Capabilities ::= SEQUENCE {
|
||||
access-stratum-release-indicator Access-stratum-release-indicator,
|
||||
csg-indicator CSG-Indicator,
|
||||
iE-Extensions ProtocolExtensionContainer { { UE-Capabilities-ExtIEs } } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
UE-Capabilities-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
UTRANCellID ::= SEQUENCE {
|
||||
lAC LAC,
|
||||
rAC RAC,
|
||||
pLMNidentity PLMNidentity,
|
||||
uTRANcellID CellIdentity,
|
||||
iE-Extensions ProtocolExtensionContainer { {UTRANCellID-ExtIEs} } OPTIONAL
|
||||
}
|
||||
|
||||
UTRANCellID-ExtIEs HNBAP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
UE-Identity ::= CHOICE {
|
||||
iMSI IMSI,
|
||||
tMSILAI TMSILAI,
|
||||
pTMSIRAI PTMSIRAI,
|
||||
iMEI IMEI,
|
||||
eSN ESN,
|
||||
iMSIDS41 IMSIDS41,
|
||||
iMSIESN IMSIESN,
|
||||
tMSIDS1 TMSIDS41,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
--V
|
||||
--W
|
||||
--X
|
||||
--Y
|
||||
--Z
|
||||
|
||||
|
||||
END
|
|
@ -0,0 +1,316 @@
|
|||
-- HNBAP-PDU-Contents.asn
|
||||
--
|
||||
-- 3GPP TS 25.469 V8.4.0 (2009-12)
|
||||
-- http://www.3gpp.org/ftp/Specs/html-info/25469.htm
|
||||
--
|
||||
-- 9.3.3 PDU Definitions
|
||||
--
|
||||
-- $Id$
|
||||
--
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- PDU definitions for HNBAP.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
HNBAP-PDU-Contents {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
umts-Access (20) modules (3) hnbap(6) version1 (1) hnbap-PDU-Contents (1) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IE parameter types from other modules.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
IMPORTS
|
||||
Cause,
|
||||
CriticalityDiagnostics,
|
||||
HNB-Location-Information,
|
||||
HNB-Identity,
|
||||
Context-ID,
|
||||
UE-Identity,
|
||||
LAC,
|
||||
RAC,
|
||||
SAC,
|
||||
CN-DomainIndicator,
|
||||
IP-Address,
|
||||
Registration-Cause,
|
||||
UE-Capabilities,
|
||||
PLMNidentity,
|
||||
CellIdentity,
|
||||
RNC-ID,
|
||||
CSG-ID,
|
||||
BackoffTimer
|
||||
|
||||
|
||||
FROM HNBAP-IEs
|
||||
|
||||
|
||||
ProtocolExtensionContainer{},
|
||||
ProtocolIE-ContainerList{},
|
||||
ProtocolIE-Container{},
|
||||
ProtocolIE-Single-Container{},
|
||||
PrivateIE-Container{},
|
||||
HNBAP-PRIVATE-IES,
|
||||
HNBAP-PROTOCOL-EXTENSION,
|
||||
HNBAP-PROTOCOL-IES
|
||||
|
||||
FROM HNBAP-Containers
|
||||
|
||||
id-Cause,
|
||||
id-CriticalityDiagnostics,
|
||||
id-HNB-Location-Information,
|
||||
id-HNB-Identity,
|
||||
id-Context-ID,
|
||||
id-PLMNidentity,
|
||||
id-UE-Identity,
|
||||
id-LAC,
|
||||
id-RAC,
|
||||
id-SAC,
|
||||
id-UE-Capabilities,
|
||||
id-Registration-Cause,
|
||||
id-CellIdentity,
|
||||
id-RNC-ID,
|
||||
id-CSG-ID,
|
||||
id-BackoffTimer
|
||||
|
||||
FROM HNBAP-Constants;
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- HNB Register REQUEST
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
HNBRegisterRequest ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container { {HNBRegisterRequestIEs} },
|
||||
protocolExtensions ProtocolExtensionContainer { {HNBRegisterRequestExtensions} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
HNBRegisterRequestIEs HNBAP-PROTOCOL-IES ::= {
|
||||
{ ID id-HNB-Identity CRITICALITY reject TYPE HNB-Identity PRESENCE mandatory } |
|
||||
{ ID id-HNB-Location-Information CRITICALITY reject TYPE HNB-Location-Information PRESENCE mandatory } |
|
||||
{ ID id-PLMNidentity CRITICALITY reject TYPE PLMNidentity PRESENCE mandatory } |
|
||||
{ ID id-CellIdentity CRITICALITY reject TYPE CellIdentity PRESENCE mandatory } |
|
||||
{ ID id-LAC CRITICALITY reject TYPE LAC PRESENCE mandatory } |
|
||||
{ ID id-RAC CRITICALITY reject TYPE RAC PRESENCE mandatory } |
|
||||
{ ID id-SAC CRITICALITY reject TYPE SAC PRESENCE mandatory } |
|
||||
{ ID id-CSG-ID CRITICALITY reject TYPE CSG-ID PRESENCE optional } ,
|
||||
...
|
||||
}
|
||||
|
||||
HNBRegisterRequestExtensions HNBAP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- HNB Register Accept
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
HNBRegisterAccept ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container { {HNBRegisterResponseIEs} },
|
||||
protocolExtensions ProtocolExtensionContainer { {HNBRegisterResponseExtensions} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
HNBRegisterResponseIEs HNBAP-PROTOCOL-IES ::= {
|
||||
{ ID id-RNC-ID CRITICALITY reject TYPE RNC-ID PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
HNBRegisterResponseExtensions HNBAP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- HNB Register REJECT
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
HNBRegisterReject ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container { {HNBRegisterRejectIEs} },
|
||||
protocolExtensions ProtocolExtensionContainer { {HNBRegisterRejectExtensions} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
HNBRegisterRejectIEs HNBAP-PROTOCOL-IES ::= {
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} |
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional } |
|
||||
{ ID id-BackoffTimer CRITICALITY reject TYPE BackoffTimer PRESENCE conditional },
|
||||
-- This IE shall be present if the Cause IE is set to "Overload".
|
||||
...
|
||||
}
|
||||
|
||||
HNBRegisterRejectExtensions HNBAP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- HNB De- Register
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
HNBDe-Register ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container { {HNBDe-RegisterIEs} },
|
||||
protocolExtensions ProtocolExtensionContainer { {HNBDe-RegisterExtensions} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
HNBDe-RegisterIEs HNBAP-PROTOCOL-IES ::= {
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
|
||||
{ ID id-BackoffTimer CRITICALITY reject TYPE BackoffTimer PRESENCE conditional },
|
||||
-- This IE shall be present if the Cause IE is set to "Overload".
|
||||
...
|
||||
}
|
||||
|
||||
HNBDe-RegisterExtensions HNBAP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- UE Register REQUEST
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
UERegisterRequest ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container { {UERegisterRequestIEs} },
|
||||
protocolExtensions ProtocolExtensionContainer { {UERegisterRequestExtensions} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
UERegisterRequestIEs HNBAP-PROTOCOL-IES ::= {
|
||||
{ ID id-UE-Identity CRITICALITY reject TYPE UE-Identity PRESENCE mandatory } |
|
||||
{ ID id-Registration-Cause CRITICALITY ignore TYPE Registration-Cause PRESENCE mandatory } |
|
||||
{ ID id-UE-Capabilities CRITICALITY reject TYPE UE-Capabilities PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
UERegisterRequestExtensions HNBAP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- UE Register ACCEPT
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
UERegisterAccept ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container { {UERegisterAcceptIEs} },
|
||||
protocolExtensions ProtocolExtensionContainer { {UERegisterAcceptExtensions} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
UERegisterAcceptIEs HNBAP-PROTOCOL-IES ::= {
|
||||
{ ID id-UE-Identity CRITICALITY reject TYPE UE-Identity PRESENCE mandatory } |
|
||||
{ ID id-Context-ID CRITICALITY ignore TYPE Context-ID PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
UERegisterAcceptExtensions HNBAP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- UE Register REJECT
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
UERegisterReject ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container { {UERegisterRejectIEs} },
|
||||
protocolExtensions ProtocolExtensionContainer { {UERegisterRejectExtensions} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
UERegisterRejectIEs HNBAP-PROTOCOL-IES ::= {
|
||||
{ ID id-UE-Identity CRITICALITY reject TYPE UE-Identity PRESENCE mandatory } |
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory} |
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
UERegisterRejectExtensions HNBAP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- UE De-Register
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
UEDe-Register ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container { {UEDe-RegisterIEs} },
|
||||
protocolExtensions ProtocolExtensionContainer { {UEDe-RegisterExtensions} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
UEDe-RegisterIEs HNBAP-PROTOCOL-IES ::= {
|
||||
{ ID id-Context-ID CRITICALITY reject TYPE Context-ID PRESENCE mandatory } |
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } ,
|
||||
...
|
||||
}
|
||||
|
||||
UEDe-RegisterExtensions HNBAP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- ERROR INDICATION
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ErrorIndication ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container { {ErrorIndicationIEs} },
|
||||
protocolExtensions ProtocolExtensionContainer { {ErrorIndicationExtensions} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
ErrorIndicationIEs HNBAP-PROTOCOL-IES ::= {
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
ErrorIndicationExtensions HNBAP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- PRIVATE MESSAGE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
PrivateMessage ::= SEQUENCE {
|
||||
privateIEs PrivateIE-Container {{PrivateMessage-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
PrivateMessage-IEs HNBAP-PRIVATE-IES ::= {
|
||||
...
|
||||
}
|
||||
|
||||
END
|
|
@ -0,0 +1,183 @@
|
|||
-- HNBAP-PDU-Descriptions.asn
|
||||
--
|
||||
-- 3GPP TS 25.469 V8.4.0 (2009-12)
|
||||
-- http://www.3gpp.org/ftp/Specs/html-info/25469.htm
|
||||
--
|
||||
-- 9.3.2 Elementary Procedure definitions
|
||||
--
|
||||
-- $Id$
|
||||
--
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Elementary Procedure definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
HNBAP-PDU-Descriptions {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
umts-Access (20) modules (3) hnbap(6) version1 (1) hnbap-PDU-Descriptions (0)}
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IE parameter types from other modules.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
IMPORTS
|
||||
Criticality,
|
||||
ProcedureCode
|
||||
FROM HNBAP-CommonDataTypes
|
||||
|
||||
HNBRegisterRequest,
|
||||
HNBRegisterAccept,
|
||||
HNBRegisterReject,
|
||||
HNBDe-Register,
|
||||
UERegisterRequest,
|
||||
UERegisterAccept,
|
||||
UERegisterReject,
|
||||
UEDe-Register,
|
||||
ErrorIndication,
|
||||
PrivateMessage
|
||||
|
||||
FROM HNBAP-PDU-Contents
|
||||
id-HNBRegister,
|
||||
id-UERegister,
|
||||
id-UEDe-Register,
|
||||
id-HNBDe-Register,
|
||||
id-ErrorIndication,
|
||||
id-privateMessage
|
||||
FROM HNBAP-Constants;
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface Elementary Procedure Class
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
HNBAP-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 definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
HNBAP-PDU ::= CHOICE {
|
||||
initiatingMessage InitiatingMessage,
|
||||
successfulOutcome SuccessfulOutcome,
|
||||
unsuccessfulOutcome UnsuccessfulOutcome,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
InitiatingMessage ::= SEQUENCE {
|
||||
procedureCode HNBAP-ELEMENTARY-PROCEDURE.&procedureCode ({HNBAP-ELEMENTARY-PROCEDURES}),
|
||||
criticality HNBAP-ELEMENTARY-PROCEDURE.&criticality ({HNBAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value HNBAP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({HNBAP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
|
||||
SuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode HNBAP-ELEMENTARY-PROCEDURE.&procedureCode ({HNBAP-ELEMENTARY-PROCEDURES}),
|
||||
criticality HNBAP-ELEMENTARY-PROCEDURE.&criticality ({HNBAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value HNBAP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({HNBAP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
|
||||
UnsuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode HNBAP-ELEMENTARY-PROCEDURE.&procedureCode ({HNBAP-ELEMENTARY-PROCEDURES}),
|
||||
criticality HNBAP-ELEMENTARY-PROCEDURE.&criticality ({HNBAP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value HNBAP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({HNBAP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface Elementary Procedure List
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
HNBAP-ELEMENTARY-PROCEDURES HNBAP-ELEMENTARY-PROCEDURE ::= {
|
||||
HNBAP-ELEMENTARY-PROCEDURES-CLASS-1 |
|
||||
HNBAP-ELEMENTARY-PROCEDURES-CLASS-2 ,
|
||||
...
|
||||
}
|
||||
|
||||
HNBAP-ELEMENTARY-PROCEDURES-CLASS-1 HNBAP-ELEMENTARY-PROCEDURE ::= {
|
||||
hNBRegister|
|
||||
uERegister,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
HNBAP-ELEMENTARY-PROCEDURES-CLASS-2 HNBAP-ELEMENTARY-PROCEDURE ::= {
|
||||
uEDe-Register |
|
||||
hNBDe-Register |
|
||||
errorIndication |
|
||||
privateMessage,
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface Elementary Procedures
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
|
||||
hNBRegister HNBAP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE HNBRegisterRequest
|
||||
SUCCESSFUL OUTCOME HNBRegisterAccept
|
||||
UNSUCCESSFUL OUTCOME HNBRegisterReject
|
||||
PROCEDURE CODE id-HNBRegister
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
uERegister HNBAP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE UERegisterRequest
|
||||
SUCCESSFUL OUTCOME UERegisterAccept
|
||||
UNSUCCESSFUL OUTCOME UERegisterReject
|
||||
PROCEDURE CODE id-UERegister
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
uEDe-Register HNBAP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE UEDe-Register
|
||||
PROCEDURE CODE id-UEDe-Register
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
hNBDe-Register HNBAP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE HNBDe-Register
|
||||
PROCEDURE CODE id-HNBDe-Register
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
errorIndication HNBAP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ErrorIndication
|
||||
PROCEDURE CODE id-ErrorIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
privateMessage HNBAP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE PrivateMessage
|
||||
PROCEDURE CODE id-privateMessage
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
END
|
|
@ -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,51 @@
|
|||
# $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 = hnbap
|
||||
|
||||
DISSECTOR_FILES = \
|
||||
packet-$(PROTOCOL_NAME).c
|
||||
|
||||
EXT_ASN_FILE_LIST =
|
||||
|
||||
ASN_FILE_LIST = \
|
||||
HNBAP-CommonDataTypes.asn \
|
||||
HNBAP-Constants.asn \
|
||||
HNBAP-Containers.asn \
|
||||
HNBAP-IEs.asn \
|
||||
HNBAP-PDU-Contents.asn \
|
||||
HNBAP-PDU-Descriptions.asn
|
||||
|
||||
EXTRA_DIST = \
|
||||
Makefile.nmake \
|
||||
$(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,104 @@
|
|||
# hnbap.cnf
|
||||
# hnbap conformation file
|
||||
# Copyright 2010 Neil Piercy, ip.access Limited <Neil.Piercy@ipaccess.com>
|
||||
# $Id$
|
||||
|
||||
#.OPT
|
||||
PER
|
||||
ALIGNED
|
||||
#.END
|
||||
|
||||
#.PDU
|
||||
HNBAP-PDU
|
||||
|
||||
##.MAKE_DEFINES
|
||||
#ProcedureCode
|
||||
|
||||
#.MAKE_ENUM
|
||||
ProtocolIE-ID
|
||||
ProcedureCode
|
||||
|
||||
#.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
|
||||
InitiatingMessage/value initiatingMessagevalue
|
||||
UnsuccessfulOutcome/value unsuccessfulOutcome_value
|
||||
SuccessfulOutcome/value successfulOutcome_value
|
||||
PrivateIE-Field/value private_value
|
||||
ProtocolIE-Field/value ie_field_value
|
||||
ProtocolIE-Field/id protocol_ie_field_id
|
||||
PrivateIE-Field/id private_ie_field_id
|
||||
GeographicalLocation/geographicalCoordinates geographical_location_geographical_coordinates
|
||||
HNB-Location-Information/geographicalCoordinates hnb_location_information_geographical_coordinates
|
||||
|
||||
#.OMIT_ASSIGNMENT
|
||||
Presence
|
||||
ProtocolIE-ContainerList
|
||||
#.END
|
||||
|
||||
#.FN_PARS ProtocolIE-ID VAL_PTR = &ProtocolIE_ID
|
||||
#.FN_FTR ProtocolIE-ID
|
||||
if (tree) {
|
||||
proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(hnbap_ProtocolIE_ID_vals), "unknown (%d)"));
|
||||
}
|
||||
#.END
|
||||
|
||||
#.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
|
||||
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
|
||||
val_to_str(ProcedureCode, hnbap_ProcedureCode_vals,
|
||||
"unknown message"));
|
||||
#.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
|
||||
|
||||
#.REGISTER_NEW
|
||||
|
||||
#HNBAP-PROTOCOL-IES
|
||||
Cause N hnbap.ies id-Cause
|
||||
CriticalityDiagnostics N hnbap.ies id-CriticalityDiagnostics
|
||||
HNB-Identity N hnbap.ies id-HNB-Identity
|
||||
Context-ID N hnbap.ies id-Context-ID
|
||||
UE-Identity N hnbap.ies id-UE-Identity
|
||||
LAC N hnbap.ies id-LAC
|
||||
RAC N hnbap.ies id-RAC
|
||||
HNB-Location-Information N hnbap.ies id-HNB-Location-Information
|
||||
PLMNidentity N hnbap.ies id-PLMNidentity
|
||||
SAC N hnbap.ies id-SAC
|
||||
CellIdentity N hnbap.ies id-CellIdentity
|
||||
Registration-Cause N hnbap.ies id-Registration-Cause
|
||||
UE-Capabilities N hnbap.ies id-UE-Capabilities
|
||||
RNC-ID N hnbap.ies id-RNC-ID
|
||||
CSG-ID N hnbap.ies id-CSG-ID
|
||||
BackoffTimer N hnbap.ies id-BackoffTimer
|
||||
|
||||
#HNBAP-PROTOCOL-EXTENSION
|
||||
IP-Address N hnbap.extension id-HNB-Internet-Information
|
||||
|
||||
|
||||
#HNBAP-ELEMENTARY-PROCEDURE
|
||||
HNBRegisterRequest N hnbap.proc.imsg id-HNBRegister
|
||||
HNBRegisterAccept N hnbap.proc.sout id-HNBRegister
|
||||
HNBRegisterReject N hnbap.proc.uout id-HNBRegister
|
||||
UERegisterRequest N hnbap.proc.imsg id-UERegister
|
||||
UERegisterAccept N hnbap.proc.sout id-UERegister
|
||||
UERegisterReject N hnbap.proc.uout id-UERegister
|
||||
UEDe-Register N hnbap.proc.imsg id-UEDe-Register
|
||||
HNBDe-Register N hnbap.proc.imsg id-HNBDe-Register
|
||||
ErrorIndication N hnbap.proc.imsg id-ErrorIndication
|
||||
PrivateMessage N hnbap.proc.imsg id-privateMessage
|
||||
|
||||
#.END
|
|
@ -0,0 +1,189 @@
|
|||
/* packet-hnbap-template.c
|
||||
* Routines for UMTS Node B Application Part(HNBAP) packet dissection
|
||||
* Copyright 2010 Neil Piercy, ip.access Limited <Neil.Piercy@ipaccess.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 25.469 version 8.4.0 Release 8
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
#include <glib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <epan/packet.h>
|
||||
#include <epan/sctpppids.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 "UTRAN Iuh interface HNBAP signalling"
|
||||
#define PSNAME "HNBAP"
|
||||
#define PFNAME "hnbap"
|
||||
|
||||
#include "packet-hnbap-val.h"
|
||||
|
||||
/* Initialize the protocol and registered fields */
|
||||
static int proto_hnbap = -1;
|
||||
|
||||
#include "packet-hnbap-hf.c"
|
||||
|
||||
/* Initialize the subtree pointers */
|
||||
static int ett_hnbap = -1;
|
||||
|
||||
#include "packet-hnbap-ett.c"
|
||||
|
||||
/* Global variables */
|
||||
static guint32 ProcedureCode;
|
||||
static guint32 ProtocolIE_ID;
|
||||
|
||||
/* Dissector tables */
|
||||
static dissector_table_t hnbap_ies_dissector_table;
|
||||
static dissector_table_t hnbap_extension_dissector_table;
|
||||
static dissector_table_t hnbap_proc_imsg_dissector_table;
|
||||
static dissector_table_t hnbap_proc_sout_dissector_table;
|
||||
static dissector_table_t hnbap_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-hnbap-fn.c"
|
||||
|
||||
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
return (dissector_try_port_new(hnbap_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, FALSE)) ? tvb_length(tvb) : 0;
|
||||
}
|
||||
|
||||
static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
return (dissector_try_port_new(hnbap_extension_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, FALSE)) ? tvb_length(tvb) : 0;
|
||||
}
|
||||
#if 0
|
||||
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
if (!ProcedureCode) return 0;
|
||||
return (dissector_try_string(hnbap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
|
||||
}
|
||||
|
||||
static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
if (!ProcedureCode) return 0;
|
||||
return (dissector_try_string(hnbap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
|
||||
}
|
||||
|
||||
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
if (!ProcedureCode) return 0;
|
||||
return (dissector_try_string(hnbap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_length(tvb) : 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
return (dissector_try_port_new(hnbap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE)) ? tvb_length(tvb) : 0;
|
||||
}
|
||||
|
||||
static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
return (dissector_try_port_new(hnbap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE)) ? tvb_length(tvb) : 0;
|
||||
}
|
||||
|
||||
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
return (dissector_try_port_new(hnbap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE)) ? tvb_length(tvb) : 0;
|
||||
}
|
||||
|
||||
static void
|
||||
dissect_hnbap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
proto_item *hnbap_item = NULL;
|
||||
proto_tree *hnbap_tree = NULL;
|
||||
|
||||
/* make entry in the Protocol column on summary display */
|
||||
col_set_str(pinfo->cinfo, COL_PROTOCOL, "HNBAP");
|
||||
|
||||
/* create the hnbap protocol tree */
|
||||
hnbap_item = proto_tree_add_item(tree, proto_hnbap, tvb, 0, -1, FALSE);
|
||||
hnbap_tree = proto_item_add_subtree(hnbap_item, ett_hnbap);
|
||||
|
||||
dissect_HNBAP_PDU_PDU(tvb, pinfo, hnbap_tree);
|
||||
}
|
||||
|
||||
/*--- proto_register_hnbap -------------------------------------------*/
|
||||
void proto_register_hnbap(void) {
|
||||
|
||||
/* List of fields */
|
||||
|
||||
static hf_register_info hf[] = {
|
||||
|
||||
#include "packet-hnbap-hfarr.c"
|
||||
};
|
||||
|
||||
/* List of subtrees */
|
||||
static gint *ett[] = {
|
||||
&ett_hnbap,
|
||||
#include "packet-hnbap-ettarr.c"
|
||||
};
|
||||
|
||||
|
||||
/* Register protocol */
|
||||
proto_hnbap = proto_register_protocol(PNAME, PSNAME, PFNAME);
|
||||
/* Register fields and subtrees */
|
||||
proto_register_field_array(proto_hnbap, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
|
||||
/* Register dissector */
|
||||
register_dissector("hnbap", dissect_hnbap, proto_hnbap);
|
||||
|
||||
/* Register dissector tables */
|
||||
hnbap_ies_dissector_table = register_dissector_table("hnbap.ies", "HNBAP-PROTOCOL-IES", FT_UINT32, BASE_DEC);
|
||||
hnbap_extension_dissector_table = register_dissector_table("hnbap.extension", "HNBAP-PROTOCOL-EXTENSION", FT_UINT32, BASE_DEC);
|
||||
hnbap_proc_imsg_dissector_table = register_dissector_table("hnbap.proc.imsg", "HNBAP-ELEMENTARY-PROCEDURE InitiatingMessage", FT_UINT32, BASE_DEC);
|
||||
hnbap_proc_sout_dissector_table = register_dissector_table("hnbap.proc.sout", "HNBAP-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_UINT32, BASE_DEC);
|
||||
hnbap_proc_uout_dissector_table = register_dissector_table("hnbap.proc.uout", "HNBAP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_UINT32, BASE_DEC);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*--- proto_reg_handoff_hnbap ---------------------------------------*/
|
||||
void
|
||||
proto_reg_handoff_hnbap(void)
|
||||
{
|
||||
dissector_handle_t hnbap_handle;
|
||||
|
||||
hnbap_handle = find_dissector("hnbap");
|
||||
dissector_add("sctp.ppi", HNBAP_PAYLOAD_PROTOCOL_ID, hnbap_handle);
|
||||
dissector_add_handle("sctp.port", hnbap_handle); /* for "decode-as" */
|
||||
|
||||
#include "packet-hnbap-dis-tab.c"
|
||||
}
|
|
@ -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 = rua
|
||||
|
||||
DISSECTOR_FILES = \
|
||||
packet-$(PROTOCOL_NAME).c
|
||||
|
||||
|
||||
EXT_ASN_FILE_LIST =
|
||||
|
||||
ASN_FILE_LIST = \
|
||||
RUA-CommonDataTypes.asn \
|
||||
RUA-Constants.asn \
|
||||
RUA-Containers.asn \
|
||||
RUA-IEs.asn \
|
||||
RUA-PDU-Contents.asn \
|
||||
RUA-PDU-Descriptions.asn
|
||||
|
||||
EXTRA_DIST = \
|
||||
Makefile.nmake \
|
||||
$(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,55 @@
|
|||
-- RUA-CommonDataTypes.asn
|
||||
--
|
||||
-- 3GPP TS 25.468 V8.1.0 (2009-12)
|
||||
-- http://www.3gpp.org/ftp/Specs/html-info/25468.htm
|
||||
--
|
||||
-- 9.3.5 Common definitions
|
||||
--
|
||||
-- $Id$
|
||||
--
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Common definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
RUA-CommonDataTypes {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
umts-Access (20) modules (3) rua(5) version1 (1) rUA-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 }
|
||||
|
||||
|
||||
ProcedureCode ::= INTEGER (0..255)
|
||||
|
||||
PrivateIE-ID ::= CHOICE {
|
||||
local INTEGER (0..65535),
|
||||
global OBJECT IDENTIFIER
|
||||
}
|
||||
|
||||
ProtocolIE-ID ::= INTEGER (0..maxProtocolIEs)
|
||||
|
||||
TriggeringMessage ::= ENUMERATED { initiating-message, successful-outcome, unsuccessful-outcome }
|
||||
|
||||
END
|
|
@ -0,0 +1,65 @@
|
|||
-- RUA-Constants.asn
|
||||
--
|
||||
-- 3GPP TS 25.468 V8.1.0 (2009-12)
|
||||
-- http://www.3gpp.org/ftp/Specs/html-info/25468.htm
|
||||
--
|
||||
-- 9.3.6 Constant definitions
|
||||
--
|
||||
-- $Id$
|
||||
--
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Constant definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
RUA-Constants {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
umts-Access (20) modules (3) rua(5) version1 (1) rUA-Constants (4) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
IMPORTS
|
||||
ProcedureCode,
|
||||
ProtocolIE-ID
|
||||
FROM RUA-CommonDataTypes;
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Elementary Procedures
|
||||
--
|
||||
id-Connect ProcedureCode ::= 1
|
||||
id-DirectTransfer ProcedureCode ::= 2
|
||||
id-Disconnect ProcedureCode ::= 3
|
||||
id-ConnectionlessTransfer ProcedureCode ::= 4
|
||||
id-ErrorIndication ProcedureCode ::= 5
|
||||
id-privateMessage ProcedureCode ::= 6
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Lists
|
||||
--
|
||||
-- **************************************************************
|
||||
maxNrOfErrors INTEGER ::= 256
|
||||
maxUEs INTEGER ::= 64
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
id-Cause ProtocolIE-ID ::= 1
|
||||
id-CriticalityDiagnostics ProtocolIE-ID ::= 2
|
||||
id-Context-ID ProtocolIE-ID ::= 3
|
||||
id-RANAP-Message ProtocolIE-ID ::= 4
|
||||
id-IntraDomainNasNodeSelector ProtocolIE-ID ::= 5
|
||||
id-Establishment-Cause ProtocolIE-ID ::= 6
|
||||
id-CN-DomainIndicator ProtocolIE-ID ::= 7
|
||||
|
||||
|
||||
END
|
|
@ -0,0 +1,163 @@
|
|||
-- RUA-Containers.asn
|
||||
--
|
||||
-- 3GPP TS 25.468 V8.1.0 (2009-12)
|
||||
-- http://www.3gpp.org/ftp/Specs/html-info/25468.htm
|
||||
--
|
||||
-- 9.3.7 Container definitions
|
||||
--
|
||||
-- $Id$
|
||||
--
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
RUA-Containers {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
umts-Access (20) modules (3) rua(5) version1 (1) rUA-Containers (5) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IE parameter types from other modules.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
IMPORTS
|
||||
Criticality,
|
||||
Presence,
|
||||
PrivateIE-ID,
|
||||
ProtocolIE-ID,
|
||||
maxPrivateIEs,
|
||||
maxProtocolExtensions,
|
||||
maxProtocolIEs
|
||||
FROM RUA-CommonDataTypes;
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Class Definition for Private IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
RUA-PRIVATE-IES ::= CLASS {
|
||||
&id PrivateIE-ID,
|
||||
&criticality Criticality,
|
||||
&Value,
|
||||
&presence Presence
|
||||
}
|
||||
WITH SYNTAX {
|
||||
ID &id
|
||||
CRITICALITY &criticality
|
||||
TYPE &Value
|
||||
PRESENCE &presence
|
||||
}
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Class Definition for Protocol IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
RUA-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 Extensions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
RUA-PROTOCOL-EXTENSION ::= CLASS {
|
||||
&id ProtocolIE-ID UNIQUE,
|
||||
&criticality Criticality,
|
||||
&Extension,
|
||||
&presence Presence
|
||||
}
|
||||
WITH SYNTAX {
|
||||
ID &id
|
||||
CRITICALITY &criticality
|
||||
EXTENSION &Extension
|
||||
PRESENCE &presence
|
||||
}
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container for Protocol IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ProtocolIE-Container {RUA-PROTOCOL-IES : IEsSetParam} ::=
|
||||
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
|
||||
ProtocolIE-Field {{IEsSetParam}}
|
||||
|
||||
ProtocolIE-Single-Container {RUA-PROTOCOL-IES : IEsSetParam} ::=
|
||||
ProtocolIE-Field {{IEsSetParam}}
|
||||
|
||||
ProtocolIE-Field {RUA-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
|
||||
id RUA-PROTOCOL-IES.&id ({IEsSetParam}),
|
||||
criticality RUA-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
|
||||
value RUA-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container Lists for Protocol IE Containers
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, RUA-PROTOCOL-IES : IEsSetParam} ::=
|
||||
SEQUENCE (SIZE (lowerBound..upperBound)) OF
|
||||
ProtocolIE-Container {{IEsSetParam}}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container for Protocol Extensions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ProtocolExtensionContainer {RUA-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
|
||||
SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
|
||||
ProtocolExtensionField {{ExtensionSetParam}}
|
||||
|
||||
ProtocolExtensionField {RUA-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
|
||||
id RUA-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
|
||||
criticality RUA-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
|
||||
extensionValue RUA-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
|
||||
}
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container for Private IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
PrivateIE-Container {RUA-PRIVATE-IES : IEsSetParam } ::=
|
||||
SEQUENCE (SIZE (1.. maxPrivateIEs)) OF
|
||||
PrivateIE-Field {{IEsSetParam}}
|
||||
|
||||
PrivateIE-Field {RUA-PRIVATE-IES : IEsSetParam} ::= SEQUENCE {
|
||||
id RUA-PRIVATE-IES.&id ({IEsSetParam}),
|
||||
criticality RUA-PRIVATE-IES.&criticality ({IEsSetParam}{@id}),
|
||||
value RUA-PRIVATE-IES.&Value ({IEsSetParam}{@id})
|
||||
}
|
||||
|
||||
|
||||
END
|
|
@ -0,0 +1,196 @@
|
|||
-- RUA-IEs.asn
|
||||
--
|
||||
-- 3GPP TS 25.468 V8.1.0 (2009-12)
|
||||
-- http://www.3gpp.org/ftp/Specs/html-info/25468.htm
|
||||
--
|
||||
-- 9.3.4 Information Element definitions
|
||||
--
|
||||
-- $Id$
|
||||
--
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Information Element Definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
RUA-IEs {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
umts-Access (20) modules (3) rua(5) version1 (1) rUA-IEs (2) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
IMPORTS
|
||||
maxNrOfErrors,
|
||||
maxUEs
|
||||
FROM RUA-Constants
|
||||
|
||||
Criticality,
|
||||
ProcedureCode,
|
||||
ProtocolIE-ID,
|
||||
TriggeringMessage
|
||||
FROM RUA-CommonDataTypes
|
||||
|
||||
ProtocolExtensionContainer{},
|
||||
RUA-PROTOCOL-EXTENSION
|
||||
FROM RUA-Containers;
|
||||
|
||||
|
||||
CN-DomainIndicator ::= ENUMERATED {
|
||||
cs-domain,
|
||||
ps-domain
|
||||
}
|
||||
|
||||
Establishment-Cause ::= ENUMERATED {
|
||||
emergency-call,
|
||||
normal-call,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Context-ID ::= BIT STRING (SIZE(24))
|
||||
|
||||
IntraDomainNasNodeSelector ::= SEQUENCE {
|
||||
version CHOICE {
|
||||
release99 SEQUENCE {
|
||||
cn-Type CHOICE {
|
||||
gsm-Map-IDNNS Gsm-map-IDNNS,
|
||||
ansi-41-IDNNS Ansi-41-IDNNS
|
||||
}
|
||||
},
|
||||
later SEQUENCE {
|
||||
futurecoding BIT STRING (SIZE (15))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Gsm-map-IDNNS ::= SEQUENCE {
|
||||
routingbasis CHOICE {
|
||||
localPTMSI SEQUENCE {
|
||||
routingparameter RoutingParameter
|
||||
},
|
||||
tMSIofsamePLMN SEQUENCE {
|
||||
routingparameter RoutingParameter
|
||||
},
|
||||
tMSIofdifferentPLMN SEQUENCE {
|
||||
routingparameter RoutingParameter
|
||||
},
|
||||
iMSIresponsetopaging SEQUENCE {
|
||||
routingparameter RoutingParameter
|
||||
},
|
||||
iMSIcauseUEinitiatedEvent SEQUENCE {
|
||||
routingparameter RoutingParameter
|
||||
},
|
||||
iMEI SEQUENCE {
|
||||
routingparameter RoutingParameter
|
||||
},
|
||||
spare2 SEQUENCE {
|
||||
routingparameter RoutingParameter
|
||||
},
|
||||
spare1 SEQUENCE {
|
||||
routingparameter RoutingParameter
|
||||
}
|
||||
},
|
||||
-- dummy is not used in this version of the specification and
|
||||
-- it should be ignored by the receiver.
|
||||
dummy BOOLEAN
|
||||
}
|
||||
|
||||
|
||||
Ansi-41-IDNNS ::= BIT STRING (SIZE (14))
|
||||
|
||||
RANAP-Message ::= OCTET STRING
|
||||
|
||||
RoutingParameter ::= BIT STRING (SIZE (10))
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Cause IE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
Cause ::= CHOICE {
|
||||
radioNetwork CauseRadioNetwork,
|
||||
transport CauseTransport,
|
||||
protocol CauseProtocol,
|
||||
misc CauseMisc,
|
||||
...
|
||||
}
|
||||
CauseRadioNetwork ::= ENUMERATED {
|
||||
normal,
|
||||
connect-failed,
|
||||
network-release,
|
||||
unspecified,
|
||||
...
|
||||
}
|
||||
CauseTransport ::= ENUMERATED {
|
||||
transport-resource-unavailable,
|
||||
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,
|
||||
...
|
||||
}
|
||||
|
||||
CauseMisc ::= ENUMERATED {
|
||||
processing-overload,
|
||||
hardware-failure,
|
||||
o-and-m-intervention,
|
||||
unspecified,
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- CriticalityDiagnostics
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
CriticalityDiagnostics ::= SEQUENCE {
|
||||
procedureCode ProcedureCode OPTIONAL,
|
||||
triggeringMessage TriggeringMessage OPTIONAL,
|
||||
procedureCriticality Criticality OPTIONAL,
|
||||
iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
|
||||
iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
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 RUA-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
CriticalityDiagnostics-ExtIEs RUA-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
TypeOfError ::= ENUMERATED {
|
||||
not-understood,
|
||||
missing,
|
||||
...
|
||||
}
|
||||
|
||||
END
|
|
@ -0,0 +1,202 @@
|
|||
-- RUA-PDU-Contents.asn
|
||||
--
|
||||
-- 3GPP TS 25.468 V8.1.0 (2009-12)
|
||||
-- http://www.3gpp.org/ftp/Specs/html-info/25468.htm
|
||||
--
|
||||
-- 9.3.3 PDU definitions
|
||||
--
|
||||
-- $Id$
|
||||
--
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- PDU definitions for RUA.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
RUA-PDU-Contents {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
umts-Access (20) modules (3) rua(5) version1 (1) rUA-PDU-Contents (1) }
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IE parameter types from other modules.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
IMPORTS
|
||||
Cause,
|
||||
CriticalityDiagnostics,
|
||||
Context-ID,
|
||||
CN-DomainIndicator,
|
||||
IntraDomainNasNodeSelector,
|
||||
RANAP-Message,
|
||||
Establishment-Cause
|
||||
|
||||
FROM RUA-IEs
|
||||
|
||||
|
||||
ProtocolExtensionContainer{},
|
||||
ProtocolIE-ContainerList{},
|
||||
ProtocolIE-Container{},
|
||||
ProtocolIE-Single-Container{},
|
||||
PrivateIE-Container{},
|
||||
RUA-PRIVATE-IES,
|
||||
RUA-PROTOCOL-EXTENSION,
|
||||
RUA-PROTOCOL-IES
|
||||
FROM RUA-Containers
|
||||
|
||||
id-Cause,
|
||||
id-CriticalityDiagnostics,
|
||||
id-Context-ID,
|
||||
id-CN-DomainIndicator,
|
||||
id-RANAP-Message,
|
||||
id-IntraDomainNasNodeSelector,
|
||||
id-Establishment-Cause
|
||||
|
||||
FROM RUA-Constants;
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Connect
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
Connect ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container { {ConnectIEs} },
|
||||
protocolExtensions ProtocolExtensionContainer { {ConnectExtensions} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
ConnectIEs RUA-PROTOCOL-IES ::= {
|
||||
{ ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
|
||||
{ ID id-Context-ID CRITICALITY reject TYPE Context-ID PRESENCE mandatory } |
|
||||
{ ID id-IntraDomainNasNodeSelector CRITICALITY ignore TYPE IntraDomainNasNodeSelector PRESENCE optional } |
|
||||
{ ID id-Establishment-Cause CRITICALITY reject TYPE Establishment-Cause PRESENCE mandatory } |
|
||||
{ ID id-RANAP-Message CRITICALITY reject TYPE RANAP-Message PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
ConnectExtensions RUA-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Direct Transfer
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
DirectTransfer ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container { {DirectTransferIEs} },
|
||||
protocolExtensions ProtocolExtensionContainer { {DirectTransferExtensions} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
DirectTransferIEs RUA-PROTOCOL-IES ::= {
|
||||
{ ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
|
||||
{ ID id-Context-ID CRITICALITY reject TYPE Context-ID PRESENCE mandatory } |
|
||||
{ ID id-RANAP-Message CRITICALITY reject TYPE RANAP-Message PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
DirectTransferExtensions RUA-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Disconnect
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
Disconnect ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container { {DisconnectIEs} },
|
||||
protocolExtensions ProtocolExtensionContainer { {DisconnectExtensions} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
DisconnectIEs RUA-PROTOCOL-IES ::= {
|
||||
{ ID id-CN-DomainIndicator CRITICALITY reject TYPE CN-DomainIndicator PRESENCE mandatory } |
|
||||
{ ID id-Context-ID CRITICALITY reject TYPE Context-ID PRESENCE mandatory } |
|
||||
{ ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory } |
|
||||
{ ID id-RANAP-Message CRITICALITY reject TYPE RANAP-Message PRESENCE conditional },
|
||||
-- RANAP message shall be included if Cause value is "normal"
|
||||
...
|
||||
}
|
||||
|
||||
DisconnectExtensions RUA-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Connectionless Transfer
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ConnectionlessTransfer ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container { {ConnectionlessTransferIEs} },
|
||||
protocolExtensions ProtocolExtensionContainer { {ConnectionlessTransferExtensions} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
ConnectionlessTransferIEs RUA-PROTOCOL-IES ::= {
|
||||
{ ID id-RANAP-Message CRITICALITY reject TYPE RANAP-Message PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
ConnectionlessTransferExtensions RUA-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- ERROR INDICATION
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ErrorIndication ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container { {ErrorIndicationIEs} },
|
||||
protocolExtensions ProtocolExtensionContainer { {ErrorIndicationExtensions} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
ErrorIndicationIEs RUA-PROTOCOL-IES ::= {
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } |
|
||||
{ ID id-CriticalityDiagnostics CRITICALITY ignore TYPE CriticalityDiagnostics PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
ErrorIndicationExtensions RUA-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- PRIVATE MESSAGE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
PrivateMessage ::= SEQUENCE {
|
||||
privateIEs PrivateIE-Container {{PrivateMessage-IEs}},
|
||||
...
|
||||
}
|
||||
|
||||
PrivateMessage-IEs RUA-PRIVATE-IES ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
END
|
|
@ -0,0 +1,176 @@
|
|||
-- RUA-PDU-Descriptions.asn
|
||||
--
|
||||
-- 3GPP TS 25.468 V8.1.0 (2009-12)
|
||||
-- http://www.3gpp.org/ftp/Specs/html-info/25468.htm
|
||||
--
|
||||
-- 9.3.2 Elementary Procedure definitions
|
||||
--
|
||||
-- $Id$
|
||||
--
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Elementary Procedure definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
RUA-PDU-Descriptions {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
umts-Access (20) modules (3) rua(5) version1 (1) rUA-PDU-Descriptions (0)}
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IE parameter types from other modules.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
IMPORTS
|
||||
Criticality,
|
||||
ProcedureCode
|
||||
FROM RUA-CommonDataTypes
|
||||
Connect,
|
||||
DirectTransfer,
|
||||
Disconnect,
|
||||
ConnectionlessTransfer,
|
||||
ErrorIndication,
|
||||
PrivateMessage
|
||||
|
||||
|
||||
FROM RUA-PDU-Contents
|
||||
id-Connect,
|
||||
id-DirectTransfer,
|
||||
id-Disconnect,
|
||||
id-ConnectionlessTransfer,
|
||||
id-ErrorIndication,
|
||||
id-privateMessage
|
||||
FROM RUA-Constants;
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface Elementary Procedure Class
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
RUA-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 definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
RUA-PDU ::= CHOICE {
|
||||
initiatingMessage InitiatingMessage,
|
||||
successfulOutcome SuccessfulOutcome,
|
||||
unsuccessfulOutcome UnsuccessfulOutcome,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
InitiatingMessage ::= SEQUENCE {
|
||||
procedureCode RUA-ELEMENTARY-PROCEDURE.&procedureCode ({RUA-ELEMENTARY-PROCEDURES}),
|
||||
criticality RUA-ELEMENTARY-PROCEDURE.&criticality ({RUA-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value RUA-ELEMENTARY-PROCEDURE.&InitiatingMessage ({RUA-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
|
||||
SuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode RUA-ELEMENTARY-PROCEDURE.&procedureCode ({RUA-ELEMENTARY-PROCEDURES}),
|
||||
criticality RUA-ELEMENTARY-PROCEDURE.&criticality ({RUA-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value RUA-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({RUA-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
|
||||
UnsuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode RUA-ELEMENTARY-PROCEDURE.&procedureCode ({RUA-ELEMENTARY-PROCEDURES}),
|
||||
criticality RUA-ELEMENTARY-PROCEDURE.&criticality ({RUA-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value RUA-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({RUA-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface Elementary Procedure List
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
RUA-ELEMENTARY-PROCEDURES RUA-ELEMENTARY-PROCEDURE ::= {
|
||||
RUA-ELEMENTARY-PROCEDURES-CLASS-1 |
|
||||
RUA-ELEMENTARY-PROCEDURES-CLASS-2 ,
|
||||
...
|
||||
}
|
||||
|
||||
RUA-ELEMENTARY-PROCEDURES-CLASS-1 RUA-ELEMENTARY-PROCEDURE ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
RUA-ELEMENTARY-PROCEDURES-CLASS-2 RUA-ELEMENTARY-PROCEDURE ::= {
|
||||
connectionRequest |
|
||||
directTransfer |
|
||||
disconnectRequest |
|
||||
connectionlessTransfer |
|
||||
errorIndication |
|
||||
privateMessage,
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface Elementary Procedures
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
|
||||
connectionRequest RUA-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE Connect
|
||||
PROCEDURE CODE id-Connect
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
directTransfer RUA-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE DirectTransfer
|
||||
PROCEDURE CODE id-DirectTransfer
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
disconnectRequest RUA-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE Disconnect
|
||||
PROCEDURE CODE id-Disconnect
|
||||
CRITICALITY ignore
|
||||
}
|
||||
connectionlessTransfer RUA-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ConnectionlessTransfer
|
||||
PROCEDURE CODE id-ConnectionlessTransfer
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
errorIndication RUA-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE ErrorIndication
|
||||
PROCEDURE CODE id-ErrorIndication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
privateMessage RUA-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE PrivateMessage
|
||||
PROCEDURE CODE id-privateMessage
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
|
||||
END
|
|
@ -0,0 +1,174 @@
|
|||
/* packet-rua-template.c
|
||||
* Routines for UMTS Home Node B RANAP User Adaptation (RUA) packet dissection
|
||||
* Copyright 2010 Neil Piercy, ip.access Limited <Neil.Piercy@ipaccess.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 25.468 version 8.1.0 Release 8
|
||||
*/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
# include "config.h"
|
||||
#endif
|
||||
|
||||
#include <glib.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <epan/packet.h>
|
||||
#include <epan/sctpppids.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 "UTRAN Iuh interface RUA signalling"
|
||||
#define PSNAME "RUA"
|
||||
#define PFNAME "rua"
|
||||
|
||||
#include "packet-rua-val.h"
|
||||
|
||||
/* Initialize the protocol and registered fields */
|
||||
static int proto_rua = -1;
|
||||
|
||||
#include "packet-rua-hf.c"
|
||||
|
||||
/* Initialize the subtree pointers */
|
||||
static int ett_rua = -1;
|
||||
|
||||
/* initialise sub-dissector handles */
|
||||
static dissector_handle_t ranap_handle = NULL;
|
||||
|
||||
#include "packet-rua-ett.c"
|
||||
|
||||
/* Global variables */
|
||||
static guint32 ProcedureCode;
|
||||
static guint32 ProtocolIE_ID;
|
||||
|
||||
/* Dissector tables */
|
||||
static dissector_table_t rua_ies_dissector_table;
|
||||
static dissector_table_t rua_extension_dissector_table;
|
||||
static dissector_table_t rua_proc_imsg_dissector_table;
|
||||
static dissector_table_t rua_proc_sout_dissector_table;
|
||||
static dissector_table_t rua_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-rua-fn.c"
|
||||
|
||||
static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
return (dissector_try_port_new(rua_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, FALSE)) ? tvb_length(tvb) : 0;
|
||||
}
|
||||
|
||||
static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
return (dissector_try_port_new(rua_extension_dissector_table, ProtocolIE_ID, tvb, pinfo, tree, FALSE)) ? tvb_length(tvb) : 0;
|
||||
}
|
||||
|
||||
static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
return (dissector_try_port_new(rua_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE)) ? tvb_length(tvb) : 0;
|
||||
}
|
||||
|
||||
static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
return (dissector_try_port_new(rua_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE)) ? tvb_length(tvb) : 0;
|
||||
}
|
||||
|
||||
static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
return (dissector_try_port_new(rua_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree, FALSE)) ? tvb_length(tvb) : 0;
|
||||
}
|
||||
|
||||
static void
|
||||
dissect_rua(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree)
|
||||
{
|
||||
proto_item *rua_item = NULL;
|
||||
proto_tree *rua_tree = NULL;
|
||||
|
||||
/* make entry in the Protocol column on summary display */
|
||||
col_set_str(pinfo->cinfo, COL_PROTOCOL, "RUA");
|
||||
|
||||
/* create the rua protocol tree */
|
||||
rua_item = proto_tree_add_item(tree, proto_rua, tvb, 0, -1, FALSE);
|
||||
rua_tree = proto_item_add_subtree(rua_item, ett_rua);
|
||||
|
||||
dissect_RUA_PDU_PDU(tvb, pinfo, rua_tree);
|
||||
}
|
||||
|
||||
/*--- proto_register_rua -------------------------------------------*/
|
||||
void proto_register_rua(void) {
|
||||
|
||||
/* List of fields */
|
||||
|
||||
static hf_register_info hf[] = {
|
||||
|
||||
#include "packet-rua-hfarr.c"
|
||||
};
|
||||
|
||||
/* List of subtrees */
|
||||
static gint *ett[] = {
|
||||
&ett_rua,
|
||||
#include "packet-rua-ettarr.c"
|
||||
};
|
||||
|
||||
|
||||
/* Register protocol */
|
||||
proto_rua = proto_register_protocol(PNAME, PSNAME, PFNAME);
|
||||
/* Register fields and subtrees */
|
||||
proto_register_field_array(proto_rua, hf, array_length(hf));
|
||||
proto_register_subtree_array(ett, array_length(ett));
|
||||
|
||||
/* Register dissector */
|
||||
register_dissector("rua", dissect_rua, proto_rua);
|
||||
|
||||
/* Register dissector tables */
|
||||
rua_ies_dissector_table = register_dissector_table("rua.ies", "RUA-PROTOCOL-IES", FT_UINT32, BASE_DEC);
|
||||
rua_extension_dissector_table = register_dissector_table("rua.extension", "RUA-PROTOCOL-EXTENSION", FT_UINT32, BASE_DEC);
|
||||
rua_proc_imsg_dissector_table = register_dissector_table("rua.proc.imsg", "RUA-ELEMENTARY-PROCEDURE InitiatingMessage", FT_UINT32, BASE_DEC);
|
||||
rua_proc_sout_dissector_table = register_dissector_table("rua.proc.sout", "RUA-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_UINT32, BASE_DEC);
|
||||
rua_proc_uout_dissector_table = register_dissector_table("rua.proc.uout", "RUA-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_UINT32, BASE_DEC);
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*--- proto_reg_handoff_rua ---------------------------------------*/
|
||||
void
|
||||
proto_reg_handoff_rua(void)
|
||||
{
|
||||
dissector_handle_t rua_handle;
|
||||
|
||||
rua_handle = find_dissector("rua");
|
||||
ranap_handle = find_dissector("ranap");
|
||||
dissector_add("sctp.ppi", RUA_PAYLOAD_PROTOCOL_ID, rua_handle);
|
||||
dissector_add_handle("sctp.port", rua_handle); /* for "decode-as" */
|
||||
|
||||
#include "packet-rua-dis-tab.c"
|
||||
}
|
|
@ -0,0 +1,95 @@
|
|||
# rua.cnf
|
||||
# rua conformation file
|
||||
# Copyright 2010 Neil Piercy, ip.access Limited <Neil.Piercy@ipaccess.com>
|
||||
# $Id$
|
||||
|
||||
#.OPT
|
||||
PER
|
||||
ALIGNED
|
||||
#.END
|
||||
|
||||
#.PDU
|
||||
RUA-PDU
|
||||
|
||||
#.MAKE_ENUM
|
||||
ProtocolIE-ID
|
||||
ProcedureCode
|
||||
|
||||
#.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
|
||||
InitiatingMessage/value initiatingMessagevalue
|
||||
UnsuccessfulOutcome/value unsuccessfulOutcome_value
|
||||
SuccessfulOutcome/value successfulOutcome_value
|
||||
PrivateIE-Field/value private_value
|
||||
ProtocolIE-Field/value ie_field_value
|
||||
ProtocolIE-Field/id protocol_ie_field_id
|
||||
PrivateIE-Field/id private_ie_field_id
|
||||
|
||||
#.OMIT_ASSIGNMENT
|
||||
Presence
|
||||
ProtocolIE-ContainerList
|
||||
#.END
|
||||
|
||||
#.FN_PARS ProtocolIE-ID VAL_PTR = &ProtocolIE_ID
|
||||
#.FN_FTR ProtocolIE-ID
|
||||
if (tree) {
|
||||
proto_item_append_text(proto_item_get_parent_nth(actx->created_item, 2), ": %s", val_to_str(ProtocolIE_ID, VALS(rua_ProtocolIE_ID_vals), "unknown (%d)"));
|
||||
}
|
||||
#.END
|
||||
|
||||
#.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
|
||||
col_add_fstr(actx->pinfo->cinfo, COL_INFO, "%s ",
|
||||
val_to_str(ProcedureCode, rua_ProcedureCode_vals,
|
||||
"unknown message"));
|
||||
#.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
|
||||
|
||||
#.FN_BODY RANAP-Message VAL_PTR = &ranap_message_tvb
|
||||
tvbuff_t *ranap_message_tvb=NULL;
|
||||
|
||||
%(DEFAULT_BODY)s
|
||||
|
||||
if (ranap_message_tvb)
|
||||
call_dissector(ranap_handle,ranap_message_tvb,%(ACTX)s->pinfo, proto_tree_get_root(tree));
|
||||
|
||||
#.END
|
||||
|
||||
|
||||
|
||||
#.REGISTER_NEW
|
||||
|
||||
#RUA-PROTOCOL-IES
|
||||
Cause N rua.ies id-Cause
|
||||
CriticalityDiagnostics N rua.ies id-CriticalityDiagnostics
|
||||
Context-ID N rua.ies id-Context-ID
|
||||
RANAP-Message N rua.ies id-RANAP-Message
|
||||
IntraDomainNasNodeSelector N rua.ies id-IntraDomainNasNodeSelector
|
||||
Establishment-Cause N rua.ies id-Establishment-Cause
|
||||
CN-DomainIndicator N rua.ies id-CN-DomainIndicator
|
||||
|
||||
|
||||
#RUA-ELEMENTARY-PROCEDURE
|
||||
Connect N rua.proc.imsg id-Connect
|
||||
DirectTransfer N rua.proc.imsg id-DirectTransfer
|
||||
Disconnect N rua.proc.imsg id-Disconnect
|
||||
ConnectionlessTransfer N rua.proc.imsg id-ConnectionlessTransfer
|
||||
ErrorIndication N rua.proc.imsg id-ErrorIndication
|
||||
PrivateMessage N rua.proc.imsg id-privateMessage
|
||||
|
||||
#.END
|
Loading…
Reference in New Issue