diff options
author | Anders Broman <anders.broman@ericsson.com> | 2010-02-24 20:15:31 +0000 |
---|---|---|
committer | Anders Broman <anders.broman@ericsson.com> | 2010-02-24 20:15:31 +0000 |
commit | 8ead8255754cad04041ed6fc7f7d117a762207d0 (patch) | |
tree | 20cf071e5de2ac323e42f93b72b565576632048b /asn1 | |
parent | 8cd9794a0095c962c535a93d4833953509e707bd (diff) | |
download | wireshark-8ead8255754cad04041ed6fc7f7d117a762207d0.tar.gz wireshark-8ead8255754cad04041ed6fc7f7d117a762207d0.tar.bz2 wireshark-8ead8255754cad04041ed6fc7f7d117a762207d0.zip |
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
Diffstat (limited to 'asn1')
-rw-r--r-- | asn1/hnbap/HNBAP-CommonDataTypes.asn | 57 | ||||
-rw-r--r-- | asn1/hnbap/HNBAP-Constants.asn | 78 | ||||
-rw-r--r-- | asn1/hnbap/HNBAP-Containers.asn | 159 | ||||
-rw-r--r-- | asn1/hnbap/HNBAP-IEs.asn | 381 | ||||
-rw-r--r-- | asn1/hnbap/HNBAP-PDU-Contents.asn | 316 | ||||
-rw-r--r-- | asn1/hnbap/HNBAP-PDU-Descriptions.asn | 183 | ||||
-rw-r--r-- | asn1/hnbap/Makefile.am | 26 | ||||
-rw-r--r-- | asn1/hnbap/Makefile.common | 51 | ||||
-rw-r--r-- | asn1/hnbap/Makefile.nmake | 29 | ||||
-rw-r--r-- | asn1/hnbap/hnbap.cnf | 104 | ||||
-rw-r--r-- | asn1/hnbap/packet-hnbap-template.c | 189 | ||||
-rw-r--r-- | asn1/rua/Makefile.am | 26 | ||||
-rw-r--r-- | asn1/rua/Makefile.common | 52 | ||||
-rw-r--r-- | asn1/rua/Makefile.nmake | 29 | ||||
-rw-r--r-- | asn1/rua/RUA-CommonDataTypes.asn | 55 | ||||
-rw-r--r-- | asn1/rua/RUA-Constants.asn | 65 | ||||
-rw-r--r-- | asn1/rua/RUA-Containers.asn | 163 | ||||
-rw-r--r-- | asn1/rua/RUA-IEs.asn | 196 | ||||
-rw-r--r-- | asn1/rua/RUA-PDU-Contents.asn | 202 | ||||
-rw-r--r-- | asn1/rua/RUA-PDU-Descriptions.asn | 176 | ||||
-rw-r--r-- | asn1/rua/packet-rua-template.c | 174 | ||||
-rw-r--r-- | asn1/rua/rua.cnf | 95 |
22 files changed, 2806 insertions, 0 deletions
diff --git a/asn1/hnbap/HNBAP-CommonDataTypes.asn b/asn1/hnbap/HNBAP-CommonDataTypes.asn new file mode 100644 index 0000000000..55147e5cd8 --- /dev/null +++ b/asn1/hnbap/HNBAP-CommonDataTypes.asn @@ -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 diff --git a/asn1/hnbap/HNBAP-Constants.asn b/asn1/hnbap/HNBAP-Constants.asn new file mode 100644 index 0000000000..23ddfb639d --- /dev/null +++ b/asn1/hnbap/HNBAP-Constants.asn @@ -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 diff --git a/asn1/hnbap/HNBAP-Containers.asn b/asn1/hnbap/HNBAP-Containers.asn new file mode 100644 index 0000000000..b7a7f34ec9 --- /dev/null +++ b/asn1/hnbap/HNBAP-Containers.asn @@ -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
\ No newline at end of file diff --git a/asn1/hnbap/HNBAP-IEs.asn b/asn1/hnbap/HNBAP-IEs.asn new file mode 100644 index 0000000000..b32cdc7c4b --- /dev/null +++ b/asn1/hnbap/HNBAP-IEs.asn @@ -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 diff --git a/asn1/hnbap/HNBAP-PDU-Contents.asn b/asn1/hnbap/HNBAP-PDU-Contents.asn new file mode 100644 index 0000000000..4fd3896431 --- /dev/null +++ b/asn1/hnbap/HNBAP-PDU-Contents.asn @@ -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 diff --git a/asn1/hnbap/HNBAP-PDU-Descriptions.asn b/asn1/hnbap/HNBAP-PDU-Descriptions.asn new file mode 100644 index 0000000000..43d739875f --- /dev/null +++ b/asn1/hnbap/HNBAP-PDU-Descriptions.asn @@ -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 diff --git a/asn1/hnbap/Makefile.am b/asn1/hnbap/Makefile.am new file mode 100644 index 0000000000..462af31e88 --- /dev/null +++ b/asn1/hnbap/Makefile.am @@ -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 + diff --git a/asn1/hnbap/Makefile.common b/asn1/hnbap/Makefile.common new file mode 100644 index 0000000000..203f5ceebc --- /dev/null +++ b/asn1/hnbap/Makefile.common @@ -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 = + diff --git a/asn1/hnbap/Makefile.nmake b/asn1/hnbap/Makefile.nmake new file mode 100644 index 0000000000..5a32997c60 --- /dev/null +++ b/asn1/hnbap/Makefile.nmake @@ -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 + diff --git a/asn1/hnbap/hnbap.cnf b/asn1/hnbap/hnbap.cnf new file mode 100644 index 0000000000..cec6103d97 --- /dev/null +++ b/asn1/hnbap/hnbap.cnf @@ -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 diff --git a/asn1/hnbap/packet-hnbap-template.c b/asn1/hnbap/packet-hnbap-template.c new file mode 100644 index 0000000000..fd6fdc4136 --- /dev/null +++ b/asn1/hnbap/packet-hnbap-template.c @@ -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" +} diff --git a/asn1/rua/Makefile.am b/asn1/rua/Makefile.am new file mode 100644 index 0000000000..462af31e88 --- /dev/null +++ b/asn1/rua/Makefile.am @@ -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 + diff --git a/asn1/rua/Makefile.common b/asn1/rua/Makefile.common new file mode 100644 index 0000000000..3ca0281315 --- /dev/null +++ b/asn1/rua/Makefile.common @@ -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 = + diff --git a/asn1/rua/Makefile.nmake b/asn1/rua/Makefile.nmake new file mode 100644 index 0000000000..5a32997c60 --- /dev/null +++ b/asn1/rua/Makefile.nmake @@ -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 + diff --git a/asn1/rua/RUA-CommonDataTypes.asn b/asn1/rua/RUA-CommonDataTypes.asn new file mode 100644 index 0000000000..26cd85093d --- /dev/null +++ b/asn1/rua/RUA-CommonDataTypes.asn @@ -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 diff --git a/asn1/rua/RUA-Constants.asn b/asn1/rua/RUA-Constants.asn new file mode 100644 index 0000000000..ae65dd68ee --- /dev/null +++ b/asn1/rua/RUA-Constants.asn @@ -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 diff --git a/asn1/rua/RUA-Containers.asn b/asn1/rua/RUA-Containers.asn new file mode 100644 index 0000000000..1b6b719db4 --- /dev/null +++ b/asn1/rua/RUA-Containers.asn @@ -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 diff --git a/asn1/rua/RUA-IEs.asn b/asn1/rua/RUA-IEs.asn new file mode 100644 index 0000000000..1842c3e15e --- /dev/null +++ b/asn1/rua/RUA-IEs.asn @@ -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 diff --git a/asn1/rua/RUA-PDU-Contents.asn b/asn1/rua/RUA-PDU-Contents.asn new file mode 100644 index 0000000000..99b6d622e8 --- /dev/null +++ b/asn1/rua/RUA-PDU-Contents.asn @@ -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 diff --git a/asn1/rua/RUA-PDU-Descriptions.asn b/asn1/rua/RUA-PDU-Descriptions.asn new file mode 100644 index 0000000000..95efe381ef --- /dev/null +++ b/asn1/rua/RUA-PDU-Descriptions.asn @@ -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 diff --git a/asn1/rua/packet-rua-template.c b/asn1/rua/packet-rua-template.c new file mode 100644 index 0000000000..233e998995 --- /dev/null +++ b/asn1/rua/packet-rua-template.c @@ -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" +} diff --git a/asn1/rua/rua.cnf b/asn1/rua/rua.cnf new file mode 100644 index 0000000000..1d830f2409 --- /dev/null +++ b/asn1/rua/rua.cnf @@ -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 |