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:
Anders Broman 2010-02-24 20:15:31 +00:00
parent 8cd9794a00
commit 8ead825575
22 changed files with 2806 additions and 0 deletions

View File

@ -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

View File

@ -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

View File

@ -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

381
asn1/hnbap/HNBAP-IEs.asn Normal file
View File

@ -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

View File

@ -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

View File

@ -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

26
asn1/hnbap/Makefile.am Normal file
View File

@ -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

View File

@ -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 =

29
asn1/hnbap/Makefile.nmake Normal file
View File

@ -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

104
asn1/hnbap/hnbap.cnf Normal file
View File

@ -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

View File

@ -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"
}

26
asn1/rua/Makefile.am Normal file
View File

@ -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

52
asn1/rua/Makefile.common Normal file
View File

@ -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 =

29
asn1/rua/Makefile.nmake Normal file
View File

@ -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

View File

@ -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

View File

@ -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

163
asn1/rua/RUA-Containers.asn Normal file
View File

@ -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

196
asn1/rua/RUA-IEs.asn Normal file
View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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"
}

95
asn1/rua/rua.cnf Normal file
View File

@ -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