diff options
Diffstat (limited to 'epan/dissectors/asn1/sbc-ap')
-rw-r--r-- | epan/dissectors/asn1/sbc-ap/CMakeLists.txt | 56 | ||||
-rw-r--r-- | epan/dissectors/asn1/sbc-ap/Makefile.am | 23 | ||||
-rw-r--r-- | epan/dissectors/asn1/sbc-ap/Makefile.common | 47 | ||||
-rw-r--r-- | epan/dissectors/asn1/sbc-ap/Makefile.nmake | 25 | ||||
-rw-r--r-- | epan/dissectors/asn1/sbc-ap/SBC-AP-CommonDataTypes.asn | 35 | ||||
-rw-r--r-- | epan/dissectors/asn1/sbc-ap/SBC-AP-Constants.asn | 85 | ||||
-rw-r--r-- | epan/dissectors/asn1/sbc-ap/SBC-AP-Containers.asn | 121 | ||||
-rw-r--r-- | epan/dissectors/asn1/sbc-ap/SBC-AP-IEs.asn | 246 | ||||
-rw-r--r-- | epan/dissectors/asn1/sbc-ap/SBC-AP-PDU-Contents.asn | 182 | ||||
-rw-r--r-- | epan/dissectors/asn1/sbc-ap/SBC-AP-PDU-Descriptions.asn | 135 | ||||
-rw-r--r-- | epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c | 206 | ||||
-rw-r--r-- | epan/dissectors/asn1/sbc-ap/sbc-ap.cnf | 178 |
12 files changed, 1339 insertions, 0 deletions
diff --git a/epan/dissectors/asn1/sbc-ap/CMakeLists.txt b/epan/dissectors/asn1/sbc-ap/CMakeLists.txt new file mode 100644 index 0000000000..5d2b4c092e --- /dev/null +++ b/epan/dissectors/asn1/sbc-ap/CMakeLists.txt @@ -0,0 +1,56 @@ +# CMakeLists.txt +# +# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +# + +set( PROTOCOL_NAME sbc-ap ) + +set( PROTO_OPT ) + +set( EXPORT_FILES + ${PROTOCOL_NAME}-exp.cnf +) + +set( EXT_ASN_FILE_LIST +) + +set( ASN_FILE_LIST + SBC-AP-CommonDataTypes.asn + SBC-AP-Constants.asn + SBC-AP-Containers.asn + SBC-AP-IEs.asn + SBC-AP-PDU-Contents.asn + SBC-AP-PDU-Descriptions.asn +) + +set( EXTRA_DIST + ${ASN_FILE_LIST} + packet-${PROTOCOL_NAME}-template.c + ${PROTOCOL_NAME}.cnf +) + +set( SRC_FILES + ${EXTRA_DIST} + ${EXT_ASN_FILE_LIST} +) + +set( A2W_FLAGS ) + +ASN2WRS() + diff --git a/epan/dissectors/asn1/sbc-ap/Makefile.am b/epan/dissectors/asn1/sbc-ap/Makefile.am new file mode 100644 index 0000000000..72d28e600b --- /dev/null +++ b/epan/dissectors/asn1/sbc-ap/Makefile.am @@ -0,0 +1,23 @@ +# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + +include ../Makefile.preinc +include Makefile.common +include ../Makefile.inc + diff --git a/epan/dissectors/asn1/sbc-ap/Makefile.common b/epan/dissectors/asn1/sbc-ap/Makefile.common new file mode 100644 index 0000000000..4bc5eb25a7 --- /dev/null +++ b/epan/dissectors/asn1/sbc-ap/Makefile.common @@ -0,0 +1,47 @@ +# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + +PROTOCOL_NAME = sbc-ap + +EXPORT_FILES = $(PROTOCOL_NAME)-exp.cnf + +EXT_ASN_FILE_LIST = + +ASN_FILE_LIST = \ + SBC-AP-CommonDataTypes.asn \ + SBC-AP-Constants.asn \ + SBC-AP-Containers.asn \ + SBC-AP-IEs.asn \ + SBC-AP-PDU-Contents.asn \ + SBC-AP-PDU-Descriptions.asn + +EXTRA_DIST = \ + $(EXTRA_DIST_COMMON) \ + $(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/epan/dissectors/asn1/sbc-ap/Makefile.nmake b/epan/dissectors/asn1/sbc-ap/Makefile.nmake new file mode 100644 index 0000000000..4eb1a6c7e3 --- /dev/null +++ b/epan/dissectors/asn1/sbc-ap/Makefile.nmake @@ -0,0 +1,25 @@ +## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake +# +# 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + +include ../../../../config.nmake +include ../Makefile.preinc.nmake +include Makefile.common +include ../Makefile.inc.nmake
\ No newline at end of file diff --git a/epan/dissectors/asn1/sbc-ap/SBC-AP-CommonDataTypes.asn b/epan/dissectors/asn1/sbc-ap/SBC-AP-CommonDataTypes.asn new file mode 100644 index 0000000000..8c568cf2e2 --- /dev/null +++ b/epan/dissectors/asn1/sbc-ap/SBC-AP-CommonDataTypes.asn @@ -0,0 +1,35 @@ +-- SBC-AP-CommonDataTypes.asn +-- +-- Taken from 3GPP TS 29.168 V9.3.0 (2010-12) +-- http://www.3gpp.org/ftp/Specs/archive/29_series/29.168/29168-930.zip +-- +-- 4.4.6 Common Definitions +-- + +-- ************************************************************** +-- +-- Common definitions +-- +-- ************************************************************** + +SBC-AP-CommonDataTypes { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) sbc-AP (3) version1 (1) sbc-AP-CommonDataTypes (3)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +Criticality ::= ENUMERATED { reject, ignore, notify } + +Presence ::= ENUMERATED { optional, conditional, mandatory } + +ProcedureCode ::= INTEGER (0..255) + +ProtocolExtensionID ::= INTEGER (0..65535) + +ProtocolIE-ID ::= INTEGER (0..65535) + +TriggeringMessage ::= ENUMERATED {initiating-message, successful-outcome, unsuccessful-outcome, outcome} + +END diff --git a/epan/dissectors/asn1/sbc-ap/SBC-AP-Constants.asn b/epan/dissectors/asn1/sbc-ap/SBC-AP-Constants.asn new file mode 100644 index 0000000000..6be38db550 --- /dev/null +++ b/epan/dissectors/asn1/sbc-ap/SBC-AP-Constants.asn @@ -0,0 +1,85 @@ +-- SBC-AP-Constants.asn +-- +-- Taken from 3GPP TS 29.168 V9.3.0 (2010-12) +-- http://www.3gpp.org/ftp/Specs/archive/29_series/29.168/29168-930.zip +-- +-- 4.4.7 Constant Definitions +-- +-- ************************************************************** +-- +-- Constant definitions +-- +-- ************************************************************** + +SBC-AP-Constants { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) sbc-AP (3) version1 (1) sbc-AP-Constants (4)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- Elementary Procedures +-- +-- ************************************************************** + +id-Write-Replace-Warning INTEGER ::= 0 +id-Stop-Warning INTEGER ::= 1 + + +-- ************************************************************** +-- +-- IEs +-- +-- ************************************************************** + +id-Broadcast-Message-Content INTEGER ::= 0 +id-Cause INTEGER ::= 1 +id-Criticality-Diagnostics INTEGER ::=2 +id-Data-Coding-Scheme INTEGER ::= 3 +id-Failure-List INTEGER ::= 4 +id-Message-Identifier INTEGER ::= 5 +id-Number-of-Broadcasts-Completed-List INTEGER ::= 6 +id-Number-of-Broadcasts-Requested INTEGER ::= 7 +id-Radio-Resource-Loading-List INTEGER ::= 8 +id-Recovery-Indication INTEGER ::= 9 +id-Repetition-Period INTEGER ::= 10 +id-Serial-Number INTEGER ::= 11 +id-Service-Areas-List INTEGER ::= 12 +id-TypeOfError INTEGER ::= 13 +id-List-of-TAIs INTEGER ::= 14 +id-Warning-Area-List INTEGER ::= 15 +id-Warning-Message-Content INTEGER ::= 16 +id-Warning-Security-Information INTEGER ::= 17 +id-Warning-Type INTEGER ::= 18 +id-Omc-Id INTEGER ::= 19 +id-Concurrent-Warning-Message-Indicator INTEGER ::= 20 +id-Extended-Repetition-Period INTEGER ::= 21 + + + +-- ************************************************************** +-- +-- Extension constants +-- +-- ************************************************************** + +-- ************************************************************** +-- +-- Lists +-- +-- ************************************************************** + +maxNrOfErrors INTEGER ::= 256 +maxnoofCellID INTEGER ::= 65535 +maxNrOfTAIs INTEGER ::= 65535 +maxnoofgencyEmerAreaID INTEGER ::= 65535 +maxnoofTAIforWarning INTEGER ::= 65535 + +maxProtocolExtensions INTEGER ::= 65535 +maxProtocolIEs INTEGER ::= 65535 +-- WS fix +maxnoofEmerAreaIDs INTEGER ::= 65535 +END diff --git a/epan/dissectors/asn1/sbc-ap/SBC-AP-Containers.asn b/epan/dissectors/asn1/sbc-ap/SBC-AP-Containers.asn new file mode 100644 index 0000000000..eaf2c01247 --- /dev/null +++ b/epan/dissectors/asn1/sbc-ap/SBC-AP-Containers.asn @@ -0,0 +1,121 @@ +-- SBC-AP-Containers.asn +-- +-- Taken from 3GPP TS 29.168 V9.3.0 (2010-12) +-- http://www.3gpp.org/ftp/Specs/archive/29_series/29.168/29168-930.zip +-- +-- 4.4.8 Container Definitions +-- + +-- ************************************************************** +-- +-- Container definitions +-- +-- ************************************************************** + +SBC-AP-Containers { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) sbc-AP (3) version1 (1) sbc-AP-Containers (5)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + Presence, + ProtocolExtensionID, + ProtocolIE-ID +FROM SBC-AP-CommonDataTypes + + maxProtocolExtensions, + maxProtocolIEs +FROM SBC-AP-Constants; + +-- ************************************************************** +-- +-- Class Definition for Protocol IEs +-- +-- ************************************************************** + +SBC-AP-PROTOCOL-IES ::= CLASS { + &id ProtocolIE-ID UNIQUE, + &criticality Criticality DEFAULT ignore, + &Value, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + TYPE &Value + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Class Definition for Protocol Extensions +-- +-- ************************************************************** + +SBC-AP-PROTOCOL-EXTENSION ::= CLASS { + &id ProtocolExtensionID UNIQUE, + &criticality Criticality DEFAULT ignore, + &Extension, + &presence Presence +} +WITH SYNTAX { + ID &id + CRITICALITY &criticality + EXTENSION &Extension + PRESENCE &presence +} + +-- ************************************************************** +-- +-- Container for Protocol IEs +-- +-- ************************************************************** + +ProtocolIE-Container {SBC-AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (0..maxProtocolIEs)) OF + ProtocolIE-Field {{IEsSetParam}} + +ProtocolIE-Field {SBC-AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE { + id SBC-AP-PROTOCOL-IES.&id ({IEsSetParam}), + criticality SBC-AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}), + value SBC-AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id}) +} + +-- ************************************************************** +-- +-- Container Lists for Protocol IE Containers +-- +-- ************************************************************** + +ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, SBC-AP-PROTOCOL-IES : IEsSetParam} ::= + SEQUENCE (SIZE (lowerBound..upperBound)) OF + ProtocolIE-Container {{IEsSetParam}} + +-- ************************************************************** +-- +-- Container for Protocol Extensions +-- +-- ************************************************************** + +ProtocolExtensionContainer {SBC-AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= + SEQUENCE (SIZE (1..maxProtocolExtensions)) OF + ProtocolExtensionField {{ExtensionSetParam}} + +ProtocolExtensionField {SBC-AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE { + id SBC-AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}), + criticality SBC-AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}), + extensionValue SBC-AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id}) +} + + +END diff --git a/epan/dissectors/asn1/sbc-ap/SBC-AP-IEs.asn b/epan/dissectors/asn1/sbc-ap/SBC-AP-IEs.asn new file mode 100644 index 0000000000..00b97108d8 --- /dev/null +++ b/epan/dissectors/asn1/sbc-ap/SBC-AP-IEs.asn @@ -0,0 +1,246 @@ +-- SBC-AP-IEs.asn +-- +-- Taken from 3GPP TS 29.168 V9.3.0 (2010-12) +-- http://www.3gpp.org/ftp/Specs/archive/29_series/29.168/29168-930.zip +-- +-- 4.4.5 Information Element Definitions +-- + +-- ************************************************************** +-- +-- Information Element Definitions +-- +-- ************************************************************** + +SBC-AP-IEs { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) sbc-AP (3) version1 (1) sbc-AP-IEs (2)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +IMPORTS + maxNrOfErrors, + maxNrOfTAIs, + maxnoofTAIforWarning, + maxnoofCellID, + maxnoofEmergencyAreaID, + + id-TypeOfError + +FROM SBC-AP-Constants + + Criticality, + ProcedureCode, + TriggeringMessage, + ProtocolIE-ID +FROM SBC-AP-CommonDataTypes + + ProtocolExtensionContainer{}, + + SBC-AP-PROTOCOL-EXTENSION +FROM SBC-AP-Containers; + + +-- A + +-- B + +-- C + +Cause ::= INTEGER { + message-accepted (0), + parameter-not-recognised (1), + parameter-value-invalid (2), + valid-message-not-identified (3), + tracking-area-not-valid (4), + unrecognised-message (5), + missing-mandatory-element (6), + mME-capacity-exceeded (7), + mME-memory-exceeded (8), + warning-broadcast-not-supported (9), + warning-broadcast-not-operational (10), + message-reference-already-used (11), + unspecifed-error (12), + transfer-syntax-error (13), + semantic-error (14), + message-not-compatible-with-receiver-state (15), + abstract-syntax-error-reject (16), + abstract-syntax-error-ignore-and-notify (17), + abstract-syntax-error-falsely-constructed-message (18) +} (0..255) + + +CellIdentity ::= BIT STRING (SIZE (28)) + +Concurrent-Warning-Message-Indicator ::= ENUMERATED {true} + +Criticality-Diagnostics ::= SEQUENCE { + procedureCode ProcedureCode OPTIONAL, + triggeringMessage TriggeringMessage OPTIONAL, + procedureCriticality Criticality OPTIONAL, + iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL, + iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL, + ... +} + +CriticalityDiagnostics-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= { + ... +} + +CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF + SEQUENCE { + iECriticality Criticality, + iE-ID ProtocolIE-ID, + typeOfError TypeOfError, + iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-IE-Item-ExtIEs}} OPTIONAL, + ... +} + +CriticalityDiagnostics-IE-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= { + ... +} + + + +-- D + +Data-Coding-Scheme ::= BIT STRING (SIZE (8)) + +-- E + +ECGIList ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF EUTRAN-CGI + +Emergency-Area-ID-List ::= SEQUENCE (SIZE(1..maxnoofEmerAreaIDs)) OF Emergency-Area-ID + +Emergency-Area-ID ::= OCTET STRING (SIZE (3)) + +EUTRAN-CGI ::= SEQUENCE { + pLMNidentity PLMNidentity, + cell-ID CellIdentity, + iE-Extensions ProtocolExtensionContainer { {EUTRAN-CGI-ExtIEs} } OPTIONAL, + ... +} + +EUTRAN-CGI-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= { + ... +} + +Extended-Repetition-Period ::= INTEGER (4096..131071) + + +-- F + +-- G + +-- H + +-- I + +-- J + +-- K + +-- L + +List-of-TAIs ::= SEQUENCE (SIZE (1..maxNrOfTAIs)) OF + SEQUENCE { + tai TAI +} + +-- M + +Message-Identifier ::= BIT STRING (SIZE (16)) + +-- N + +Number-of-Broadcasts-Requested ::= INTEGER (0..65535) + +-- For Number-of-Broadcasts-Requested = 0 and Repetition-Period = 0, then eNB action is no broadcast +-- for ETWS and CMAS. +-- +-- For Number-of-Broadcasts-Requested = 1 and Repetition-Period = 0, then eNB action is broadcast +-- only once for ETWS and CMAS. +-- +-- For Number-of-Broadcasts-Requested = 0 and Repetition-Period > 0, then eNB action is no broadcast +-- for the ETWS, and broadcast until further notice for the CMAS. +-- +-- For Number-of-Broadcasts-Requested > 0 and Repetition-Period > 0, then eNB action is normal +-- broadcast. +-- All other combinations of Number-of-Broadcasts-Requested and Repetition-Period are considered +-- invalid. + +-- O +Omc-Id ::= OCTET STRING (SIZE (1..20)) + + +-- P +PLMNidentity ::= TBCD-STRING + +-- Q + +-- R + +Repetition-Period ::= INTEGER (0..4096) +-- 1 to 4096: Each unit represents a repetition of one second to a maximum of +-- once per 4096 seconds (~1 hour). +-- 0: no repetition +-- A CBC compliant to this version or later of this specification shall not send a repetition period +-- greater than 4095. +-- For backwards compatibility with a CBC compliant to an earlier version of this specification the +-- maximum value of the repetition period defined in ASN.1 remains at 4096. +-- If the value of the Repetition Period IE received in the WRITE-REPLACE WARNING REQUEST message is +-- set to 4096, the MME shall set the Repetition Period IE to the maximum value 4095 supported on +-- the S1-MME interface as defined in [7] before forwarding to the selected eNBs. + +-- S + +Serial-Number ::= BIT STRING (SIZE (16)) + +-- T + +TAC ::= OCTET STRING (SIZE (2)) + +TAI-List-for-Warning ::= SEQUENCE (SIZE(1.. maxnoofTAIforWarning)) OF TAI + +TAI ::= SEQUENCE { + pLMNidentity PLMNidentity, + tAC TAC, + iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL +} + +TAI-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= { + ... +} + +TBCD-STRING ::= OCTET STRING (SIZE (3)) + +TypeOfError ::= ENUMERATED { + not-understood, + missing, + ... +} + +-- U + +-- V + +-- W + +Warning-Area-List ::= CHOICE { + cell-ID-List ECGIList, + tracking-Area-List-for-Warning TAI-List-for-Warning, + emergency-Area-ID-List Emergency-Area-ID-List, + ... +} + +Warning-Message-Content ::= OCTET STRING (SIZE (1..9600)) +Warning-Security-Information ::= OCTET STRING (SIZE (50)) +Warning-Type ::= OCTET STRING (SIZE (2)) + +-- X + +-- Y + +END diff --git a/epan/dissectors/asn1/sbc-ap/SBC-AP-PDU-Contents.asn b/epan/dissectors/asn1/sbc-ap/SBC-AP-PDU-Contents.asn new file mode 100644 index 0000000000..4900145177 --- /dev/null +++ b/epan/dissectors/asn1/sbc-ap/SBC-AP-PDU-Contents.asn @@ -0,0 +1,182 @@ +-- SBC-AP-PDU-Contents.asn +-- +-- Taken from 3GPP TS 29.168 V9.3.0 (2010-12) +-- http://www.3gpp.org/ftp/Specs/archive/29_series/29.168/29168-930.zip +-- +-- 4.4.4 PDU Definitions +-- + +-- ************************************************************** +-- +-- PDU definitions for SBC-AP. +-- +-- ************************************************************** + +SBC-AP-PDU-Contents { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) sbc-AP (3) version1 (1) sbc-AP-PDU-Contents (1)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + + Cause, + Concurrent-Warning-Message-Indicator, + Criticality-Diagnostics, + Data-Coding-Scheme, + Message-Identifier, + Serial-Number, + List-of-TAIs, + Warning-Area-List, + Omc-Id, + Repetition-Period, + Extended-Repetition-Period, + Number-of-Broadcasts-Requested, + Warning-Type, + Warning-Security-Information, + Warning-Message-Content +FROM SBC-AP-IEs + + ProtocolExtensionContainer{}, + ProtocolIE-Container{}, + SBC-AP-PROTOCOL-EXTENSION, + SBC-AP-PROTOCOL-IES +FROM SBC-AP-Containers + + id-Concurrent-Warning-Message-Indicator, + id-Criticality-Diagnostics, + id-Cause, + id-Data-Coding-Scheme, + id-List-of-TAIs, + id-Message-Identifier, + id-Serial-Number, + id-Number-of-Broadcasts-Requested, + id-Omc-Id, + id-Radio-Resource-Loading-List, + id-Recovery-Indication, + id-Repetition-Period, + id-Extended-Repetition-Period, + id-Warning-Area-List, + id-Warning-Message-Content, + id-Warning-Security-Information, + id-Warning-Type +FROM SBC-AP-Constants; + +-- ************************************************************** +-- +-- Write-Replace-Warning-Request +-- +-- ************************************************************** + +Write-Replace-Warning-Request ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {Write-Replace-Warning-Request-IEs} }, + protocolExtensions ProtocolExtensionContainer { {Write-Replace-Warning-Request-Extensions} } OPTIONAL, + ... +} + +Write-Replace-Warning-Request-IEs SBC-AP-PROTOCOL-IES ::= { + { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } | + { ID id-Serial-Number CRITICALITY reject TYPE Serial-Number PRESENCE mandatory } | + { ID id-List-of-TAIs CRITICALITY reject TYPE List-of-TAIs PRESENCE optional } | + { ID id-Warning-Area-List CRITICALITY ignore TYPE Warning-Area-List PRESENCE optional } | + { ID id-Repetition-Period CRITICALITY reject TYPE Repetition-Period PRESENCE mandatory } | + { ID id-Extended-Repetition-Period CRITICALITY reject TYPE Extended-Repetition-Period PRESENCE optional } | + + { ID id-Number-of-Broadcasts-Requested + CRITICALITY reject TYPE Number-of-Broadcasts-Requested PRESENCE mandatory } | + { ID id-Warning-Type CRITICALITY ignore TYPE Warning-Type PRESENCE optional } | + { ID id-Warning-Security-Information CRITICALITY ignore TYPE Warning-Security-Information PRESENCE optional } | + { ID id-Data-Coding-Scheme CRITICALITY ignore TYPE Data-Coding-Scheme PRESENCE optional } | + { ID id-Warning-Message-Content + CRITICALITY ignore TYPE Warning-Message-Content PRESENCE optional } | + { ID id-Omc-Id CRITICALITY ignore TYPE Omc-Id PRESENCE optional } | + { ID id-Concurrent-Warning-Message-Indicator CRITICALITY reject TYPE Concurrent-Warning-Message-Indicator PRESENCE optional } + ... +} + +Write-Replace-Warning-Request-Extensions SBC-AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Write-Replace-Warning-Response +-- +-- ************************************************************** + +Write-Replace-Warning-Response ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {Write-Replace-Warning-Response-IEs} }, + protocolExtensions ProtocolExtensionContainer { {Write-Replace-Warning-Response-Extensions} } OPTIONAL, + ... +} + +Write-Replace-Warning-Response-IEs SBC-AP-PROTOCOL-IES ::= { + { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } | + { ID id-Serial-Number CRITICALITY reject TYPE Serial-Number PRESENCE mandatory } | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } | + { ID id-Criticality-Diagnostics CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional }, + ... +} + +Write-Replace-Warning-Response-Extensions SBC-AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Stop-Warning-Request +-- +-- ************************************************************** + +Stop-Warning-Request ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {Stop-Warning-Request-IEs} }, + protocolExtensions ProtocolExtensionContainer { {Stop-Warning-Request-Extensions} } OPTIONAL, + ... +} + +Stop-Warning-Request-IEs SBC-AP-PROTOCOL-IES ::= { + { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } | + { ID id-Serial-Number CRITICALITY reject TYPE Serial-Number PRESENCE mandatory } | + { ID id-List-of-TAIs CRITICALITY reject TYPE List-of-TAIs PRESENCE optional } | + { ID id-Warning-Area-List CRITICALITY ignore TYPE Warning-Area-List PRESENCE optional }| + { ID id-Omc-Id CRITICALITY ignore TYPE Omc-Id PRESENCE optional }, + ... +} + +Stop-Warning-Request-Extensions SBC-AP-PROTOCOL-EXTENSION ::= { + ... +} + +-- ************************************************************** +-- +-- Stop-Warning-Response +-- +-- ************************************************************** + +Stop-Warning-Response ::= SEQUENCE { + protocolIEs ProtocolIE-Container { {Stop-Warning-Response-IEs} }, + protocolExtensions ProtocolExtensionContainer { {Stop-Warning-Response-Extensions} } OPTIONAL, + ... +} + +Stop-Warning-Response-IEs SBC-AP-PROTOCOL-IES ::= { + { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } | + { ID id-Serial-Number CRITICALITY reject TYPE Serial-Number PRESENCE mandatory } | + { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE mandatory } | + { ID id-Criticality-Diagnostics CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional }, + ... +} + +Stop-Warning-Response-Extensions SBC-AP-PROTOCOL-EXTENSION ::= { + ... +} + +END diff --git a/epan/dissectors/asn1/sbc-ap/SBC-AP-PDU-Descriptions.asn b/epan/dissectors/asn1/sbc-ap/SBC-AP-PDU-Descriptions.asn new file mode 100644 index 0000000000..f7015d1d56 --- /dev/null +++ b/epan/dissectors/asn1/sbc-ap/SBC-AP-PDU-Descriptions.asn @@ -0,0 +1,135 @@ +-- SBC-AP-PDU-Descriptions.asn +-- +-- Taken from 3GPP TS 29.168 V9.3.0 (2010-12) +-- http://www.3gpp.org/ftp/Specs/archive/29_series/29.168/29168-930.zip +-- +-- 4.4.3 Elementary Procedure Definitions +-- + +-- ************************************************************** +-- +-- Elementary Procedure definitions +-- +-- ************************************************************** + +SBC-AP-PDU-Descriptions { +itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) +eps-Access (21) modules (3) sbc-AP (3) version1 (1) sbc-AP-PDU-Descriptions (0)} + +DEFINITIONS AUTOMATIC TAGS ::= + +BEGIN + +-- ************************************************************** +-- +-- IE parameter types from other modules. +-- +-- ************************************************************** + +IMPORTS + Criticality, + ProcedureCode +FROM SBC-AP-CommonDataTypes + + Write-Replace-Warning-Request, + Write-Replace-Warning-Response, + Stop-Warning-Request, + Stop-Warning-Response + +FROM SBC-AP-PDU-Contents + + id-Write-Replace-Warning, + id-Stop-Warning +FROM SBC-AP-Constants; + +-- ************************************************************** +-- +-- Interface Elementary Procedure Class +-- +-- ************************************************************** + +SBC-AP-ELEMENTARY-PROCEDURE ::= CLASS { + &InitiatingMessage , + &SuccessfulOutcome OPTIONAL, + &UnsuccessfulOutcome OPTIONAL, + &procedureCode ProcedureCode UNIQUE, + &criticality Criticality DEFAULT ignore +} +WITH SYNTAX { + INITIATING MESSAGE &InitiatingMessage + [SUCCESSFUL OUTCOME &SuccessfulOutcome] + [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome] + PROCEDURE CODE &procedureCode + [CRITICALITY &criticality] +} + +-- ************************************************************** +-- +-- Interface PDU Definition +-- +-- ************************************************************** + +SBC-AP-PDU ::= CHOICE { + initiatingMessage InitiatingMessage, + successfulOutcome SuccessfulOutcome, + unsuccessfulOutcome UnsuccessfulOutcome, + ... +} + +InitiatingMessage ::= SEQUENCE { + procedureCode SBC-AP-ELEMENTARY-PROCEDURE.&procedureCode ({SBC-AP-ELEMENTARY-PROCEDURES}), + criticality SBC-AP-ELEMENTARY-PROCEDURE.&criticality ({SBC-AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value SBC-AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({SBC-AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +SuccessfulOutcome ::= SEQUENCE { + procedureCode SBC-AP-ELEMENTARY-PROCEDURE.&procedureCode ({SBC-AP-ELEMENTARY-PROCEDURES}), + criticality SBC-AP-ELEMENTARY-PROCEDURE.&criticality ({SBC-AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value SBC-AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({SBC-AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +UnsuccessfulOutcome ::= SEQUENCE { + procedureCode SBC-AP-ELEMENTARY-PROCEDURE.&procedureCode ({SBC-AP-ELEMENTARY-PROCEDURES}), + criticality SBC-AP-ELEMENTARY-PROCEDURE.&criticality ({SBC-AP-ELEMENTARY-PROCEDURES}{@procedureCode}), + value SBC-AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({SBC-AP-ELEMENTARY-PROCEDURES}{@procedureCode}) +} + +-- ************************************************************** +-- +-- Interface Elementary Procedure List +-- +-- ************************************************************** + +SBC-AP-ELEMENTARY-PROCEDURES SBC-AP-ELEMENTARY-PROCEDURE ::= { + SBC-AP-ELEMENTARY-PROCEDURES-CLASS-1 | + SBC-AP-ELEMENTARY-PROCEDURES-CLASS-2 , + ... +} + +SBC-AP-ELEMENTARY-PROCEDURES-CLASS-1 SBC-AP-ELEMENTARY-PROCEDURE ::= { + Write-Replace-Warning, + Stop-Warning , + ... +} + +SBC-AP-ELEMENTARY-PROCEDURES-CLASS-2 SBC-AP-ELEMENTARY-PROCEDURE ::= { + ... +} + +write-Replace-Warning SBC-AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE Write-Replace-Warning-Request + SUCCESSFUL OUTCOME Write-Replace-Warning-Response + + PROCEDURE CODE id-Write-Replace-Warning + CRITICALITY reject +} + +stop-Warning SBC-AP-ELEMENTARY-PROCEDURE ::= { + INITIATING MESSAGE Stop-Warning-Request + SUCCESSFUL OUTCOME Stop-Warning-Response + + PROCEDURE CODE id-Stop-Warning + CRITICALITY reject +} + +END diff --git a/epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c b/epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c new file mode 100644 index 0000000000..43fed62048 --- /dev/null +++ b/epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c @@ -0,0 +1,206 @@ +/* packet-sbc-ap.c + * Routines for SBc Application Part (SBc-AP) packet dissection + * + * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Ref 3GPP TS 29.168 + */ + +#include "config.h" + +#include <epan/packet.h> +#include <epan/strutil.h> +#include <epan/asn1.h> +#include <epan/sctpppids.h> + +#include "packet-ber.h" +#include "packet-per.h" +#include "packet-e212.h" + +#define PNAME "SBc Application Part" +#define PSNAME "SBCAP" +#define PFNAME "sbcap" + +void proto_register_sbc_ap(void); +void proto_reg_handoff_sbc_ap(void); + +/* The registered port number for SBc-AP is 29168. + * The registered payload protocol identifier for SBc-AP is 24. + */ +#define SBC_AP_PORT 29168 +static dissector_handle_t sbc_ap_handle=NULL; + + +#include "packet-sbc-ap-val.h" + +/* Initialize the protocol and registered fields */ +static int proto_sbc_ap = -1; + +#include "packet-sbc-ap-hf.c" + +/* Initialize the subtree pointers */ +static int ett_sbc_ap = -1; + +#include "packet-sbc-ap-ett.c" + +enum{ + INITIATING_MESSAGE, + SUCCESSFUL_OUTCOME, + UNSUCCESSFUL_OUTCOME +}; + +/* Global variables */ +static guint32 ProcedureCode; +static guint32 ProtocolIE_ID; +static guint32 ProtocolExtensionID; +static int global_sbc_ap_port = SBC_AP_PORT; + +/* Dissector tables */ +static dissector_table_t sbc_ap_ies_dissector_table; +static dissector_table_t sbc_ap_extension_dissector_table; +static dissector_table_t sbc_ap_proc_imsg_dissector_table; +static dissector_table_t sbc_ap_proc_sout_dissector_table; +static dissector_table_t sbc_ap_proc_uout_dissector_table; + +static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); +static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); +static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); +static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); +static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *); + +#include "packet-sbc-ap-fn.c" + +static int dissect_ProtocolIEFieldValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) +{ + return (dissector_try_uint(sbc_ap_ies_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0; +} +/* Currently not used +static int dissect_ProtocolIEFieldPairFirstValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) +{ + return (dissector_try_uint(sbc_ap_ies_p1_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0; +} + +static int dissect_ProtocolIEFieldPairSecondValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) +{ + return (dissector_try_uint(sbc_ap_ies_p2_dissector_table, ProtocolIE_ID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0; +} +*/ + +static int dissect_ProtocolExtensionFieldExtensionValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) +{ + return (dissector_try_uint(sbc_ap_extension_dissector_table, ProtocolExtensionID, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0; +} + +static int dissect_InitiatingMessageValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) +{ + return (dissector_try_uint(sbc_ap_proc_imsg_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0; +} + +static int dissect_SuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) +{ + return (dissector_try_uint(sbc_ap_proc_sout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0; +} + +static int dissect_UnsuccessfulOutcomeValue(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void *data _U_) +{ + return (dissector_try_uint(sbc_ap_proc_uout_dissector_table, ProcedureCode, tvb, pinfo, tree)) ? tvb_captured_length(tvb) : 0; +} + + +static int +dissect_sbc_ap(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree, void* data _U_) +{ + proto_item *sbc_ap_item = NULL; + proto_tree *sbc_ap_tree = NULL; + + /* make entry in the Protocol column on summary display */ + col_set_str(pinfo->cinfo, COL_PROTOCOL, PNAME); + + /* create the sbc_ap protocol tree */ + if (tree) { + sbc_ap_item = proto_tree_add_item(tree, proto_sbc_ap, tvb, 0, -1, ENC_NA); + sbc_ap_tree = proto_item_add_subtree(sbc_ap_item, ett_sbc_ap); + + dissect_SBC_AP_PDU_PDU(tvb, pinfo, sbc_ap_tree, NULL); + } + return tvb_captured_length(tvb); +} +/*--- proto_register_sbc_ap -------------------------------------------*/ +void proto_register_sbc_ap(void) { + + /* List of fields */ + static hf_register_info hf[] = { + +#include "packet-sbc-ap-hfarr.c" + }; + + /* List of subtrees */ + static gint *ett[] = { + &ett_sbc_ap, +#include "packet-sbc-ap-ettarr.c" + }; + + + /* Register protocol */ + proto_sbc_ap = proto_register_protocol(PNAME, PSNAME, PFNAME); + /* Register fields and subtrees */ + proto_register_field_array(proto_sbc_ap, hf, array_length(hf)); + proto_register_subtree_array(ett, array_length(ett)); + + + /* Register dissector tables */ + sbc_ap_ies_dissector_table = register_dissector_table("sbc_ap.ies", "SBC-AP-PROTOCOL-IES", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE); + sbc_ap_extension_dissector_table = register_dissector_table("sbc_ap.extension", "SBC-AP-PROTOCOL-EXTENSION", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE); + sbc_ap_proc_imsg_dissector_table = register_dissector_table("sbc_ap.proc.imsg", "SBC-AP-ELEMENTARY-PROCEDURE InitiatingMessage", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE); + sbc_ap_proc_sout_dissector_table = register_dissector_table("sbc_ap.proc.sout", "SBC-AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE); + sbc_ap_proc_uout_dissector_table = register_dissector_table("sbc_ap.proc.uout", "SBC-AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", FT_UINT32, BASE_DEC, DISSECTOR_TABLE_ALLOW_DUPLICATE); + + +} + + +/*--- proto_reg_handoff_sbc_ap ---------------------------------------*/ +void +proto_reg_handoff_sbc_ap(void) +{ + static gboolean inited = FALSE; + static guint SctpPort; + + if( !inited ) { + sbc_ap_handle = create_dissector_handle(dissect_sbc_ap, proto_sbc_ap); + dissector_add_uint("sctp.ppi", SBC_AP_PAYLOAD_PROTOCOL_ID, sbc_ap_handle); + inited = TRUE; +#include "packet-sbc-ap-dis-tab.c" + } else { + if (SctpPort != 0) { + dissector_delete_uint("sctp.port", SctpPort, sbc_ap_handle); + } + } + + SctpPort = global_sbc_ap_port; + if (SctpPort != 0) { + dissector_add_uint("sctp.port", SctpPort, sbc_ap_handle); + } + +} + + + + + diff --git a/epan/dissectors/asn1/sbc-ap/sbc-ap.cnf b/epan/dissectors/asn1/sbc-ap/sbc-ap.cnf new file mode 100644 index 0000000000..b8af92f784 --- /dev/null +++ b/epan/dissectors/asn1/sbc-ap/sbc-ap.cnf @@ -0,0 +1,178 @@ +# sbc-ap.cnf +# sbc-ap conformation file + +#.OPT +PER +ALIGNED +#.END + +#.EXPORTS + +#.PDU +SBC-AP-PDU + +#.MAKE_ENUM +ProcedureCode +ProtocolIE-ID + +#.NO_EMIT +TBCD-STRING +#.END + +#.OMIT_ASSIGNMENT +# Get rid of unused code warnings +ProtocolIE-ContainerList +Presence + +#.TYPE_RENAME + +InitiatingMessage/value InitiatingMessage_value +SuccessfulOutcome/value SuccessfulOutcome_value +UnsuccessfulOutcome/value UnsuccessfulOutcome_value + +#.FIELD_RENAME + +InitiatingMessage/value initiatingMessagevalue +UnsuccessfulOutcome/value unsuccessfulOutcome_value +SuccessfulOutcome/value successfulOutcome_value + +ProtocolExtensionField/id ext_id + +ProtocolIE-Field/value ie_field_value + +#.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(sbc_ap_ProtocolIE_ID_vals), "unknown (%d)")); + } +#.END + + + +#.FN_PARS ProtocolIE-Field/value FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldValue +# Currently not used +# FN_PARS ProtocolIE-FieldPair/firstValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldPairFirstValue +# FN_PARS ProtocolIE-FieldPair/secondValue FN_VARIANT=_pdu_new TYPE_REF_FN=dissect_ProtocolIEFieldPairSecondValue + +#.FN_PARS ProtocolExtensionID VAL_PTR=&ProtocolExtensionID +#.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, sbc_ap_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 + +#--- Parameterization is not supported in asn2wrs --- + +#ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, SBC-AP-PROTOCOL-IES : IEsSetParam} ::= +# SEQUENCE (SIZE (lowerBound..upperBound)) OF +# ProtocolIE-Container {{IEsSetParam}} + +# FN_PARS ProtocolIE-ContainerList +#MIN_VAL = asn1_param_get_integer(%(ACTX)s,"lowerBound") +#MAX_VAL = asn1_param_get_integer(%(ACTX)s,"upperBound") +# FN_HDR ProtocolIE-ContainerList +# static const asn1_par_def_t ProtocolIE_ContainerList_pars[] = { +# { "lowerBound", ASN1_PAR_INTEGER }, +# { "upperBound", ASN1_PAR_INTEGER }, +# { NULL, 0 } +# }; +# asn1_stack_frame_check(actx, "ProtocolIE-ContainerList", ProtocolIE_ContainerList_pars); +#.END +#ProtocolIE-ContainerPairList {INTEGER : lowerBound, INTEGER : upperBound, SBC-AP-PROTOCOL-IES-PAIR : IEsSetParam} ::= +# SEQUENCE (SIZE (lowerBound..upperBound)) OF +# ProtocolIE-ContainerPair {{IEsSetParam}} + +# following construction is not supported by asn2wrs +# PLMNidentity ::= TBCD-STRING (SIZE (3)) +# TBCD-STRING ::= OCTET STRING + +#.FN_BODY PLMNidentity VAL_PTR = parameter_tvb + tvbuff_t *parameter_tvb=NULL; + + offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index, + 3, 3, FALSE, ¶meter_tvb); + if(tvb_reported_length(tvb)==0) + return offset; + + if (!parameter_tvb) + return offset; + dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, E212_NONE, FALSE); +#.END + +#.TYPE_ATTR +ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(sbc_ap_ProtocolIE_ID_vals) + +#.ASSIGN_VALUE_TO_TYPE # SBC-AP does not have constants assigned to types, they are pure INTEGER +# ProcedureCode +id-Write-Replace-Warning ProcedureCode +id-Stop-Warning ProcedureCode + +# ProtocolIE-ID + +id-Broadcast-Message-Content ProtocolIE-ID +id-Cause ProtocolIE-ID +id-Criticality-Diagnostics ProtocolIE-ID +id-Data-Coding-Scheme ProtocolIE-ID +id-Failure-List ProtocolIE-ID +id-Message-Identifier ProtocolIE-ID +id-Number-of-Broadcasts-Completed-List ProtocolIE-ID +id-Number-of-Broadcasts-Requested ProtocolIE-ID +id-Radio-Resource-Loading-List ProtocolIE-ID +id-Recovery-Indication ProtocolIE-ID +id-Repetition-Period ProtocolIE-ID +id-Serial-Number ProtocolIE-ID +id-Service-Areas-List ProtocolIE-ID +id-TypeOfError ProtocolIE-ID +id-List-of-TAIs ProtocolIE-ID +id-Warning-Area-List ProtocolIE-ID +id-Warning-Message-Content ProtocolIE-ID +id-Warning-Security-Information ProtocolIE-ID +id-Warning-Type ProtocolIE-ID +id-Omc-Id ProtocolIE-ID +id-Concurrent-Warning-Message-Indicator ProtocolIE-ID +id-Extended-Repetition-Period ProtocolIE-ID + + +#.REGISTER + +#SBC-AP-PROTOCOL-IES + +# N sbc_ap.ies id-Broadcast-Message-Content +Cause N sbc_ap.ies id-Cause +Criticality-Diagnostics N sbc_ap.ies id-Criticality-Diagnostics +Data-Coding-Scheme N sbc_ap.ies id-Data-Coding-Scheme +# N sbc_ap.ies id-Failure-List +Message-Identifier N sbc_ap.ies id-Message-Identifier +# id-Number-of-Broadcasts-Completed-List +Number-of-Broadcasts-Requested N sbc_ap.ies id-Number-of-Broadcasts-Requested +# not used ? N sbc_ap.ies id-Radio-Resource-Loading-List +# not used N sbc_ap.ies id-Recovery-Indication +Repetition-Period N sbc_ap.ies id-Repetition-Period +Serial-Number N sbc_ap.ies id-Serial-Number +# id-Service-Areas-List +# id-TypeOfError +List-of-TAIs N sbc_ap.ies id-List-of-TAIs +Warning-Area-List N sbc_ap.ies id-Warning-Area-List +Warning-Message-Content N sbc_ap.ies id-Warning-Message-Content +Warning-Security-Information N sbc_ap.ies id-Warning-Security-Information +Warning-Type N sbc_ap.ies id-Warning-Type +Omc-Id N sbc_ap.ies id-Omc-Id +Concurrent-Warning-Message-Indicator N sbc_ap.ies id-Concurrent-Warning-Message-Indicator +Extended-Repetition-Period N sbc_ap.ies id-Extended-Repetition-Period + +#SBC-AP-ELEMENTARY-PROCEDURE +Write-Replace-Warning-Request N sbc_ap.proc.imsg id-Write-Replace-Warning +Write-Replace-Warning-Response N sbc_ap.proc.sout id-Write-Replace-Warning +Stop-Warning-Request N sbc_ap.proc.imsg id-Stop-Warning +Stop-Warning-Response N sbc_ap.proc.sout id-Stop-Warning + +#.END |