summaryrefslogtreecommitdiffstats
path: root/epan/dissectors/asn1/sbc-ap
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 20:34:10 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-10 20:34:10 +0000
commite4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc (patch)
tree68cb5ef9081156392f1dd62a00c6ccc1451b93df /epan/dissectors/asn1/sbc-ap
parentInitial commit. (diff)
downloadwireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.tar.xz
wireshark-e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc.zip
Adding upstream version 4.2.2.upstream/4.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'epan/dissectors/asn1/sbc-ap')
-rw-r--r--epan/dissectors/asn1/sbc-ap/CMakeLists.txt43
-rw-r--r--epan/dissectors/asn1/sbc-ap/SBC-AP-CommonDataTypes.asn35
-rw-r--r--epan/dissectors/asn1/sbc-ap/SBC-AP-Constants.asn127
-rw-r--r--epan/dissectors/asn1/sbc-ap/SBC-AP-Containers.asn121
-rw-r--r--epan/dissectors/asn1/sbc-ap/SBC-AP-IEs.asn650
-rw-r--r--epan/dissectors/asn1/sbc-ap/SBC-AP-PDU-Contents.asn374
-rw-r--r--epan/dissectors/asn1/sbc-ap/SBC-AP-PDU-Descriptions.asn179
-rw-r--r--epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c272
-rw-r--r--epan/dissectors/asn1/sbc-ap/sbc-ap.cnf377
9 files changed, 2178 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 00000000..d7f39c08
--- /dev/null
+++ b/epan/dissectors/asn1/sbc-ap/CMakeLists.txt
@@ -0,0 +1,43 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# SPDX-License-Identifier: GPL-2.0-or-later
+#
+
+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/SBC-AP-CommonDataTypes.asn b/epan/dissectors/asn1/sbc-ap/SBC-AP-CommonDataTypes.asn
new file mode 100644
index 00000000..e11f3175
--- /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 V15.1.0 (2018-09)
+-- 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 00000000..447e1c42
--- /dev/null
+++ b/epan/dissectors/asn1/sbc-ap/SBC-AP-Constants.asn
@@ -0,0 +1,127 @@
+-- SBC-AP-Constants.asn
+--
+-- Taken from 3GPP TS 29.168 V15.1.0 (2018-09)
+-- 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
+id-Error-Indication INTEGER ::= 2
+id-Write-Replace-Warning-Indication INTEGER ::= 3
+id-Stop-Warning-Indication INTEGER ::= 4
+id-PWS-Restart-Indication INTEGER ::= 5
+id-PWS-Failure-Indication INTEGER ::= 6
+
+-- **************************************************************
+--
+-- 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
+id-Unknown-Tracking-Area-List INTEGER ::= 22
+id-Broadcast-Scheduled-Area-List INTEGER ::= 23
+id-Send-Write-Replace-Warning-Indication INTEGER ::= 24
+id-Broadcast-Cancelled-Area-List INTEGER ::= 25
+id-Send-Stop-Warning-Indication INTEGER ::= 26
+id-Stop-All-Indicator INTEGER ::= 27
+id-Global-ENB-ID INTEGER ::= 28
+id-Broadcast-Empty-Area-List INTEGER ::= 29
+id-Restarted-Cell-List INTEGER ::= 30
+id-List-of-TAIs-Restart INTEGER ::= 31
+id-List-of-EAIs-Restart INTEGER ::= 32
+id-Failed-Cell-List INTEGER ::= 33
+id-List-of-5GS-TAIs INTEGER ::= 34
+id-Warning-Area-List-5GS INTEGER ::= 35
+id-Global-RAN-Node-ID INTEGER ::= 36
+id-Global-GNB-ID INTEGER ::= 37
+id-RAT-Selector-5GS INTEGER ::= 38
+id-Unknown-5GS-Tracking-Area-List INTEGER ::= 39
+id-Broadcast-Scheduled-Area-List-5GS INTEGER ::= 40
+id-Broadcast-Cancelled-Area-List-5GS INTEGER ::= 41
+id-Broadcast-Empty-Area-List-5GS INTEGER ::= 42
+id-Restarted-Cell-List-NR INTEGER ::= 43
+id-Failed-Cell-List-NR INTEGER ::= 44
+id-List-of-5GS-TAI-for-Restart INTEGER ::= 45
+id-Warning-Area-Coordinates INTEGER ::= 46
+
+
+
+-- **************************************************************
+--
+-- Extension constants
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Lists
+--
+-- **************************************************************
+
+maxNrOfErrors INTEGER ::= 256
+maxnoofCellID INTEGER ::= 65535
+maxnoofCellinEAI INTEGER ::= 65535
+maxnoofCellinTAI INTEGER ::= 65535
+maxNrOfTAIs INTEGER ::= 65535
+maxnoofEmergencyAreaID INTEGER ::= 65535
+maxnoofTAIforWarning INTEGER ::= 65535
+
+maxProtocolExtensions INTEGER ::= 65535
+maxProtocolIEs INTEGER ::= 65535
+maxnoofeNBIds INTEGER ::= 256
+maxnoofRestartedCells INTEGER ::= 256
+maxnoofRestartTAIs INTEGER ::= 2048
+maxnoofRestartEAIs INTEGER ::= 256
+maxnoofFailedCells INTEGER ::= 256
+maxnoof5GSTAIs INTEGER ::= 2048
+maxnoofCellsingNB INTEGER ::= 16384
+maxnoofCellsin5GS INTEGER ::= 16776960
+maxnoofCellsin5GSTAI INTEGER ::= 65535
+maxnoofRANNodes INTEGER ::= 65535
+maxnoofRestart5GSTAIs INTEGER ::= 2048maxnoofCellsforRestartNR INTEGER ::= 16384
+
+
+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 00000000..8b71821c
--- /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 V15.1.0 (2018-09)
+-- 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 00000000..3cfa8472
--- /dev/null
+++ b/epan/dissectors/asn1/sbc-ap/SBC-AP-IEs.asn
@@ -0,0 +1,650 @@
+-- SBC-AP-IEs.asn
+--
+-- Taken from 3GPP TS 29.168 V15.1.0 (2018-09)
+-- 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,
+ maxnoofCellinEAI,
+ maxnoofCellinTAI,
+ maxnoofeNBIds,
+ maxnoofRestartTAIs,
+ maxnoofRestartEAIs,
+ maxnoofRestartedCells,
+ maxnoofFailedCells,
+ maxnoof5GSTAIs,
+ maxnoofCellsingNB,
+ maxnoofCellsin5GS,
+ maxnoofCellsforRestartNR,
+ maxnoofRANNodes,
+ maxnoofRestart5GSTAIs,
+ maxnoofCellsin5GSTAI
+
+FROM SBC-AP-Constants
+
+ Criticality,
+ ProcedureCode,
+ TriggeringMessage,
+ ProtocolIE-ID
+FROM SBC-AP-CommonDataTypes
+
+ ProtocolExtensionContainer{},
+
+ SBC-AP-PROTOCOL-EXTENSION
+FROM SBC-AP-Containers;
+
+
+-- A
+
+-- B
+
+Broadcast-Scheduled-Area-List ::= SEQUENCE {
+ cellId-Broadcast-List CellId-Broadcast-List OPTIONAL,
+ tAI-Broadcast-List TAI-Broadcast-List OPTIONAL,
+ emergencyAreaID-Broadcast-List EmergencyAreaID-Broadcast-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{Broadcast-Scheduled-Area-List-ExtIEs}} OPTIONAL,
+ ...
+}
+
+Broadcast-Scheduled-Area-List-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Broadcast-Scheduled-Area-List-5GS ::= SEQUENCE {
+ cellId-Broadcast-List-5GS CellId-Broadcast-List-5GS OPTIONAL,
+ tAI-Broadcast-List-5GS TAI-Broadcast-List-5GS OPTIONAL,
+ emergencyAreaID-Broadcast-List EmergencyAreaID-Broadcast-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{Broadcast-Scheduled-Area-List-5GS-ExtIEs}} OPTIONAL,
+ ...
+}
+
+Broadcast-Scheduled-Area-List-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Broadcast-Cancelled-Area-List ::= SEQUENCE {
+ cellID-Cancelled-List CellID-Cancelled-List OPTIONAL,
+ tAI-Cancelled-List TAI-Cancelled-List OPTIONAL,
+ emergencyAreaID-Cancelled-List EmergencyAreaID-Cancelled-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{Broadcast-Cancelled-Area-List-ExtIEs}} OPTIONAL,
+ ...
+}
+
+Broadcast-Cancelled-Area-List-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Broadcast-Cancelled-Area-List-5GS ::= SEQUENCE {
+ cellID-Cancelled-List-5GS CellID-Cancelled-List-5GS OPTIONAL,
+ tAI-Cancelled-List-5GS TAI-Cancelled-List-5GS OPTIONAL,
+ emergencyAreaID-Cancelled-List EmergencyAreaID-Cancelled-List OPTIONAL,
+ iE-Extensions ProtocolExtensionContainer {{Broadcast-Cancelled-Area-List-5GS-ExtIEs}} OPTIONAL,
+ ...
+}
+
+Broadcast-Cancelled-Area-List-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+Broadcast-Empty-Area-List ::= SEQUENCE (SIZE (1.. maxnoofeNBIds)) OF Global-ENB-ID
+
+Broadcast-Empty-Area-List-5GS ::= SEQUENCE (SIZE (1.. maxnoofRANNodes)) OF Global-RAN-Node-ID
+
+
+-- C
+
+CancelledCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CancelledCellinEAI-Item
+
+CancelledCellinEAI-Item ::= SEQUENCE {
+ eCGI EUTRAN-CGI,
+ numberOfBroadcasts NumberOfBroadcasts,
+ iE-Extensions ProtocolExtensionContainer { {CancelledCellinEAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CancelledCellinEAI-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+CancelledCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CancelledCellinTAI-Item
+
+CancelledCellinTAI-Item ::= SEQUENCE{
+ eCGI EUTRAN-CGI,
+ numberOfBroadcasts NumberOfBroadcasts,
+ iE-Extensions ProtocolExtensionContainer { {CancelledCellinTAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CancelledCellinTAI-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CancelledCellinTAI-5GS ::= SEQUENCE (SIZE(1..maxnoofCellsin5GSTAI)) OF
+ SEQUENCE{
+ nR-CGI NR-CGI,
+ numberOfBroadcasts NumberOfBroadcasts,
+ iE-Extensions ProtocolExtensionContainer { {CancelledCellinTAI-5GS-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CancelledCellinTAI-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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)
+
+CellId-Broadcast-List ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellId-Broadcast-List-Item
+
+CellId-Broadcast-List-Item ::= SEQUENCE {
+ eCGI EUTRAN-CGI,
+ iE-Extensions ProtocolExtensionContainer { {CellId-Broadcast-List-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellId-Broadcast-List-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellId-Broadcast-List-5GS ::= SEQUENCE (SIZE(1..maxnoofCellsin5GS)) OF
+ SEQUENCE {
+ nR-CGI NR-CGI,
+ iE-Extensions ProtocolExtensionContainer { {CellId-Broadcast-List-5GS-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellId-Broadcast-List-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellID-Cancelled-List ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Cancelled-Item
+
+CellID-Cancelled-Item ::= SEQUENCE {
+ eCGI EUTRAN-CGI,
+ numberOfBroadcasts NumberOfBroadcasts,
+ iE-Extensions ProtocolExtensionContainer { {CellID-Cancelled-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellID-Cancelled-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+CellID-Cancelled-List-5GS ::= SEQUENCE (SIZE(1..maxnoofCellsin5GS)) OF
+ SEQUENCE {
+ nR-CGI NR-CGI,
+ numberOfBroadcasts NumberOfBroadcasts,
+ iE-Extensions ProtocolExtensionContainer { {CellID-Cancelled-5GS-ExtIEs} } OPTIONAL,
+ ...
+}
+
+CellID-Cancelled-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+CellIdentity ::= BIT STRING (SIZE (28))
+
+Concurrent-Warning-Message-Indicator ::= ENUMERATED {true}
+
+Criticality-Diagnostics ::= SEQUENCE {
+ procedureCode ProcedureCode OPTIONAL,
+ triggeringMessage TriggeringMessage OPTIONAL,
+ procedureCriticality Criticality OPTIONAL,
+ iE-CriticalityDiagnostics 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..maxnoofEmergencyAreaID)) OF Emergency-Area-ID
+
+Emergency-Area-ID ::= OCTET STRING (SIZE (3))
+
+EmergencyAreaID-Broadcast-List ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Broadcast-List-Item
+
+EmergencyAreaID-Broadcast-List-Item ::= SEQUENCE {
+ emergencyAreaID Emergency-Area-ID,
+ scheduledCellinEAI ScheduledCellinEAI,
+ iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Broadcast-List-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EmergencyAreaID-Broadcast-List-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+EmergencyAreaID-Cancelled-List ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Cancelled-Item
+
+EmergencyAreaID-Cancelled-Item ::= SEQUENCE {
+ emergencyAreaID Emergency-Area-ID,
+ cancelledCellinEAI CancelledCellinEAI,
+ iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Cancelled-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+EmergencyAreaID-Cancelled-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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)
+
+ENB-ID ::= CHOICE {
+ macroENB-ID BIT STRING (SIZE(20)),
+ homeENB-ID BIT STRING (SIZE(28)),
+ ...,
+ short-macroENB-ID BIT STRING (SIZE(18)),
+ long-macroENB-ID BIT STRING (SIZE(21))
+}
+
+
+-- F
+
+Failed-Cell-List ::= SEQUENCE (SIZE(1..maxnoofFailedCells)) OF EUTRAN-CGI
+
+Failed-Cell-List-NR ::= SEQUENCE (SIZE(1..maxnoofCellsingNB)) OF NR-CGI
+
+-- G
+
+Global-ENB-ID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ eNB-ID ENB-ID,
+ iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+GlobalENB-ID-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Global-RAN-Node-ID ::= CHOICE {
+ global-GNB-ID Global-GNB-ID,
+ global-NgENB-ID Global-NgENB-ID,
+ ...
+}
+
+Global-GNB-ID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ gNB-ID GNB-ID,
+ iE-Extensions ProtocolExtensionContainer { {Global-GNB-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Global-GNB-ID-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+GNB-ID ::= CHOICE {
+ gNB-ID BIT STRING (SIZE(22..32)),
+ ...
+}
+Global-NgENB-ID ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ ngENB-ID ENB-ID,
+ iE-Extensions ProtocolExtensionContainer { {Global-NgENB-ID-ExtIEs} } OPTIONAL,
+ ...
+}
+
+Global-NgENB-ID-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+
+-- H
+
+-- I
+
+-- J
+
+-- K
+
+-- L
+
+List-of-TAIs ::= SEQUENCE (SIZE (1..maxNrOfTAIs)) OF
+ SEQUENCE {
+ tai TAI
+}
+
+List-of-TAIs-Restart ::= SEQUENCE (SIZE (1..maxnoofRestartTAIs)) OF
+ SEQUENCE {
+ tai TAI
+}
+
+
+List-of-EAIs-Restart ::= SEQUENCE (SIZE(1..maxnoofRestartEAIs)) OF Emergency-Area-ID
+
+List-of-5GS-TAIs ::= SEQUENCE (SIZE (1..maxnoof5GSTAIs)) OF TAI-5GS
+
+List-of-5GS-Cells-for-Failure ::= SEQUENCE ( SIZE(1..maxnoofCellsingNB)) OF NR-CGI
+
+List-of-5GS-TAI-for-Restart ::= SEQUENCE (SIZE (1..maxnoofRestart5GSTAIs)) OF TAI-5GS
+
+
+-- 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 Secondary 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 Secondary, 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.
+
+NumberOfBroadcasts ::= INTEGER (0..65535)
+
+NR-CGIList ::= SEQUENCE (SIZE(1..maxnoofCellsingNB)) OF NR-CGI
+
+NR-CGI ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ nRCellIdentity NRCellIdentity,
+ iE-Extensions ProtocolExtensionContainer { {NR-CGI-ExtIEs} } OPTIONAL,
+ ...
+}
+
+NR-CGI-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+NRCellIdentity ::= BIT STRING (SIZE(36))
+
+NgENB-ID ::= CHOICE {
+ macroNgENB-ID BIT STRING (SIZE(20)),
+ shortMacroNgENB-ID BIT STRING (SIZE(18)),
+ longMacroNgENB-ID BIT STRING (SIZE(21)),
+ ...
+}
+
+-- 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.
+
+Restarted-Cell-List ::= SEQUENCE (SIZE(1.. maxnoofRestartedCells)) OF EUTRAN-CGI
+
+RAT-Selector-5GS ::= ENUMERATED {true}
+
+Restarted-Cell-List-NR ::= SEQUENCE (SIZE(1.. maxnoofCellsforRestartNR)) OF NR-CGI
+
+
+
+-- S
+
+ScheduledCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF ScheduledCellinEAI-Item
+
+ScheduledCellinEAI-Item ::= SEQUENCE {
+ eCGI EUTRAN-CGI,
+ iE-Extensions ProtocolExtensionContainer { {ScheduledCellinEAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ScheduledCellinEAI-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ScheduledCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF ScheduledCellinTAI-Item
+
+ScheduledCellinTAI-Item ::= SEQUENCE{
+ eCGI EUTRAN-CGI,
+ iE-Extensions ProtocolExtensionContainer { {ScheduledCellinTAI-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ScheduledCellinTAI-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+ScheduledCellinTAI-5GS ::= SEQUENCE (SIZE(1..maxnoofCellsin5GSTAI)) OF
+ SEQUENCE{
+ nR-CGI NR-CGI,
+ iE-Extensions ProtocolExtensionContainer { {ScheduledCellinTAI-5GS-ExtIEs} } OPTIONAL,
+ ...
+}
+
+ScheduledCellinTAI-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+Send-Write-Replace-Warning-Indication ::= ENUMERATED {true}
+
+Send-Stop-Warning-Indication ::= ENUMERATED {true}
+
+Serial-Number ::= BIT STRING (SIZE (16))
+
+Stop-All-Indicator ::= ENUMERATED {true}
+
+-- T
+
+TAC ::= OCTET STRING (SIZE (2))
+
+TAC-5GS ::= OCTET STRING (SIZE (3))
+
+TAI-Broadcast-List ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Broadcast-List-Item
+
+TAI-Broadcast-List-Item ::= SEQUENCE {
+ tAI TAI,
+ scheduledCellinTAI ScheduledCellinTAI,
+ iE-Extensions ProtocolExtensionContainer { {TAI-Broadcast-List-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAI-Broadcast-List-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAI-Broadcast-List-5GS ::= SEQUENCE (SIZE(1..maxnoof5GSTAIs)) OF
+ SEQUENCE {
+ tAI-5GS TAI-5GS,
+ scheduledCellinTAI-5GS ScheduledCellinTAI-5GS,
+ iE-Extensions ProtocolExtensionContainer { {TAI-Broadcast-List-5GS-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAI-Broadcast-List-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+TAI-Cancelled-List ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Cancelled-List-Item
+
+TAI-Cancelled-List-Item ::= SEQUENCE {
+ tAI TAI,
+ cancelledCellinTAI CancelledCellinTAI,
+ iE-Extensions ProtocolExtensionContainer { {TAI-Cancelled-List-Item-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAI-Cancelled-List-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+TAI-Cancelled-List-5GS ::= SEQUENCE (SIZE(1..maxnoof5GSTAIs)) OF
+ SEQUENCE {
+ tAI-5GS TAI-5GS,
+ cancelledCellinTAI-5GS CancelledCellinTAI-5GS,
+ iE-Extensions ProtocolExtensionContainer { {TAI-Cancelled-List-5GS-ExtIEs} } OPTIONAL,
+ ...
+}
+
+TAI-Cancelled-List-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+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,
+ ...
+}
+TAI-5GS ::= SEQUENCE {
+ pLMNidentity PLMNidentity,
+ tAC-5GS TAC-5GS,
+ iE-Extensions ProtocolExtensionContainer { {TAI-5GS-ExtIEs} } OPTIONAL
+}
+
+TAI-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+ ...
+}
+
+
+-- U
+
+Unknown-Tracking-Area-List ::= SEQUENCE (SIZE(1.. maxNrOfTAIs)) OF TAI
+
+Unknown-5GS-Tracking-Area-List ::= SEQUENCE (SIZE(1.. maxnoof5GSTAIs)) OF TAI-5GS
+
+
+-- 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-Area-Coordinates ::= OCTET STRING (SIZE (1..1024))
+Warning-Security-Information ::= OCTET STRING (SIZE (50))
+Warning-Type ::= OCTET STRING (SIZE (2))
+
+Warning-Area-List-5GS ::= CHOICE {
+ cell-ID-List ECGIList,
+ nR-CGIList NR-CGIList,
+ tAIList-5GS TAI-5GS,
+ emergencyAreaIDList Emergency-Area-ID-List,
+ ...
+}
+
+
+
+-- 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 00000000..11174328
--- /dev/null
+++ b/epan/dissectors/asn1/sbc-ap/SBC-AP-PDU-Contents.asn
@@ -0,0 +1,374 @@
+-- SBC-AP-PDU-Contents.asn
+--
+-- Taken from 3GPP TS 29.168 V15.1.0 (2018-09)
+-- 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,
+ Warning-Area-Coordinates,
+ Send-Write-Replace-Warning-Indication,
+ Broadcast-Scheduled-Area-List,
+ Unknown-Tracking-Area-List,
+ Send-Stop-Warning-Indication,
+ Broadcast-Cancelled-Area-List,
+ Stop-All-Indicator,
+ Broadcast-Empty-Area-List,
+ Restarted-Cell-List,
+ Global-ENB-ID,
+ List-of-TAIs-Restart,
+ List-of-EAIs-Restart,
+ Failed-Cell-List,
+ List-of-5GS-TAIs,
+ Warning-Area-List-5GS,
+ Global-RAN-Node-ID,
+ Global-GNB-ID,
+ RAT-Selector-5GS,
+ Unknown-5GS-Tracking-Area-List,
+ Broadcast-Scheduled-Area-List-5GS,
+ Broadcast-Cancelled-Area-List-5GS,
+ Broadcast-Empty-Area-List-5GS,
+ Restarted-Cell-List-NR,
+ Failed-Cell-List-NR,
+ List-of-5GS-TAI-for-Restart
+
+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-Area-Coordinates,
+ id-Warning-Security-Information,
+ id-Warning-Type,
+ id-Send-Write-Replace-Warning-Indication,
+ id-Broadcast-Scheduled-Area-List,
+ id-Unknown-Tracking-Area-List,
+ id-Send-Stop-Warning-Indication,
+ id-Broadcast-Cancelled-Area-List,
+ id-Stop-All-Indicator,
+ id-Broadcast-Empty-Area-List,
+ id-Global-ENB-ID,
+ id-Restarted-Cell-List,
+ id-List-of-TAIs-Restart,
+ id-List-of-EAIs-Restart,
+ id-Failed-Cell-List,
+ id-List-of-5GS-TAIs,
+ id-Warning-Area-List-5GS,
+ id-Global-RAN-Node-ID,
+ id-Global-GNB-ID,
+ id-RAT-Selector-5GS,
+ id-Unknown-5GS-Tracking-Area-List,
+ id-Broadcast-Scheduled-Area-List-5GS,
+ id-Broadcast-Cancelled-Area-List-5GS,
+ id-Broadcast-Empty-Area-List-5GS,
+ id-Restarted-Cell-List-NR,
+ id-Failed-Cell-List-NR,
+ id-List-of-5GS-TAI-for-Restart
+
+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 } |
+ { ID id-Send-Write-Replace-Warning-Indication CRITICALITY ignore TYPE Send-Write-Replace-Warning-Indication PRESENCE optional } |
+ { ID id-Global-ENB-ID CRITICALITY ignore TYPE Global-ENB-ID PRESENCE optional },
+ ... ,
+ {ID id-Warning-Area-Coordinates CRITICALITY ignore TYPE Warning-Area-Coordinates PRESENCE optional}
+}
+
+Write-Replace-Warning-Request-Extensions SBC-AP-PROTOCOL-EXTENSION ::= {
+ { ID id-List-of-5GS-TAIs CRITICALITY ignore EXTENSION List-of-5GS-TAIs PRESENCE optional }|
+ { ID id-Warning-Area-List-5GS CRITICALITY ignore EXTENSION Warning-Area-List-5GS PRESENCE optional }|
+ { ID id-Global-RAN-Node-ID CRITICALITY ignore EXTENSION Global-RAN-Node-ID PRESENCE optional }|
+ { ID id-RAT-Selector-5GS CRITICALITY ignore EXTENSION RAT-Selector-5GS PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- 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 reject TYPE Cause PRESENCE mandatory } |
+ { ID id-Criticality-Diagnostics CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional } |
+ { ID id-Unknown-Tracking-Area-List CRITICALITY ignore TYPE List-of-TAIs PRESENCE optional },
+ ...
+}
+
+Write-Replace-Warning-Response-Extensions SBC-AP-PROTOCOL-EXTENSION ::= {
+ { ID id-Unknown-5GS-Tracking-Area-List CRITICALITY ignore EXTENSION Unknown-5GS-Tracking-Area-List PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- 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 } |
+ { ID id-Send-Stop-Warning-Indication CRITICALITY ignore TYPE Send-Stop-Warning-Indication PRESENCE optional } |
+ { ID id-Stop-All-Indicator CRITICALITY reject TYPE Stop-All-Indicator PRESENCE optional},
+ ...
+}
+
+Stop-Warning-Request-Extensions SBC-AP-PROTOCOL-EXTENSION ::= {
+ { ID id-List-of-5GS-TAIs CRITICALITY ignore EXTENSION List-of-5GS-TAIs PRESENCE optional }|
+ { ID id-Warning-Area-List-5GS CRITICALITY ignore EXTENSION Warning-Area-List-5GS PRESENCE optional } | { ID id-RAT-Selector-5GS CRITICALITY ignore EXTENSION RAT-Selector-5GS PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- 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 reject TYPE Cause PRESENCE mandatory } |
+ { ID id-Criticality-Diagnostics CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional } |
+ { ID id-Unknown-Tracking-Area-List CRITICALITY ignore TYPE List-of-TAIs PRESENCE optional },
+ ...
+}
+
+Stop-Warning-Response-Extensions SBC-AP-PROTOCOL-EXTENSION ::= {
+ { ID id-Unknown-5GS-Tracking-Area-List CRITICALITY ignore EXTENSION Unknown-5GS-Tracking-Area-List PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- Write-Replace-Warning-Indication
+--
+-- **************************************************************
+
+Write-Replace-Warning-Indication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Write-Replace-Warning-Indication-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {Write-Replace-Warning-Indication-Extensions} } OPTIONAL,
+ ...
+}
+
+Write-Replace-Warning-Indication-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-Broadcast-Scheduled-Area-List CRITICALITY reject TYPE Broadcast-Scheduled-Area-List PRESENCE optional },
+ ...
+}
+
+Write-Replace-Warning-Indication-Extensions SBC-AP-PROTOCOL-EXTENSION ::= {
+ { ID id-Broadcast-Scheduled-Area-List-5GS CRITICALITY ignore EXTENSION Broadcast-Scheduled-Area-List-5GS PRESENCE optional },
+
+ ...
+}
+
+-- **************************************************************
+--
+-- Stop-Warning-Indication
+--
+-- **************************************************************
+
+Stop-Warning-Indication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {Stop-Warning-Indication-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {Stop-Warning-Indication-Extensions} } OPTIONAL,
+ ...
+}
+
+Stop-Warning-Indication-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-Broadcast-Cancelled-Area-List CRITICALITY reject TYPE Broadcast-Cancelled-Area-List PRESENCE optional }|
+ { ID id-Broadcast-Empty-Area-List CRITICALITY ignore TYPE Broadcast-Empty-Area-List PRESENCE optional },
+ ...
+}
+
+Stop-Warning-Indication-Extensions SBC-AP-PROTOCOL-EXTENSION ::= {
+ { ID id-Broadcast-Cancelled-Area-List-5GS CRITICALITY ignore EXTENSION Broadcast-Cancelled-Area-List-5GS PRESENCE optional }|
+ { ID id-Broadcast-Empty-Area-List-5GS CRITICALITY ignore EXTENSION Broadcast-Empty-Area-List-5GS PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- PWS-Restart-Indication
+--
+-- **************************************************************
+
+PWS-Restart-Indication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {PWS-Restart-Indication-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {PWS-Restart-Indication-Extensions} } OPTIONAL,
+ ...
+}
+
+PWS-Restart-Indication-IEs SBC-AP-PROTOCOL-IES ::= {
+ { ID id-Restarted-Cell-List CRITICALITY reject TYPE Restarted-Cell-List PRESENCE mandatory }|
+ { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory } |
+ { ID id-List-of-TAIs-Restart CRITICALITY reject TYPE List-of-TAIs-Restart PRESENCE mandatory } |
+ { ID id-List-of-EAIs-Restart CRITICALITY reject TYPE List-of-EAIs-Restart PRESENCE optional },
+ ...
+}
+
+PWS-Restart-Indication-Extensions SBC-AP-PROTOCOL-EXTENSION ::= {
+ { ID id-Restarted-Cell-List-NR CRITICALITY ignore EXTENSION Restarted-Cell-List-NR PRESENCE optional }|
+ { ID id-List-of-5GS-TAI-for-Restart CRITICALITY ignore EXTENSION List-of-5GS-TAI-for-Restart PRESENCE optional }|
+{ ID id-Global-GNB-ID CRITICALITY ignore EXTENSION Global-GNB-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- PWS-Failure-Indication
+--
+-- **************************************************************
+
+PWS-Failure-Indication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container { {PWS-Failure-Indication-IEs} },
+ protocolExtensions ProtocolExtensionContainer { {PWS-Failure-Indication-Extensions} } OPTIONAL,
+ ...
+}
+
+PWS-Failure-Indication-IEs SBC-AP-PROTOCOL-IES ::= {
+ { ID id-Failed-Cell-List CRITICALITY reject TYPE Failed-Cell-List PRESENCE mandatory }|
+ { ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory },
+ ...
+}
+
+PWS-Failure-Indication-Extensions SBC-AP-PROTOCOL-EXTENSION ::= {
+ { ID id-Failed-Cell-List-NR CRITICALITY ignore EXTENSION Failed-Cell-List-NR PRESENCE optional }|
+ { ID id-Global-GNB-ID CRITICALITY ignore EXTENSION Global-GNB-ID PRESENCE optional },
+ ...
+}
+
+-- **************************************************************
+--
+-- ERROR INDICATION ELEMENTARY PROCEDURE
+--
+-- **************************************************************
+
+-- **************************************************************
+--
+-- Error Indication
+--
+-- **************************************************************
+
+Error-Indication ::= SEQUENCE {
+ protocolIEs ProtocolIE-Container {{ErrorIndicationIEs}},
+ ...
+}
+
+ErrorIndicationIEs SBC-AP-PROTOCOL-IES ::= {
+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
+ { ID id-Criticality-Diagnostics CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional } ,
+ ...
+}
+
+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 00000000..fbb80d53
--- /dev/null
+++ b/epan/dissectors/asn1/sbc-ap/SBC-AP-PDU-Descriptions.asn
@@ -0,0 +1,179 @@
+-- SBC-AP-PDU-Descriptions.asn
+--
+-- Taken from 3GPP TS 29.168 V15.1.0 (2018-09)
+-- 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,
+ Error-Indication,
+ Write-Replace-Warning-Indication,
+ Stop-Warning-Indication,
+ PWS-Restart-Indication,
+ PWS-Failure-Indication
+FROM SBC-AP-PDU-Contents
+
+ id-Write-Replace-Warning,
+ id-Stop-Warning,
+ id-Error-Indication,
+ id-Write-Replace-Warning-Indication,
+ id-Stop-Warning-Indication,
+ id-PWS-Restart-Indication,
+ id-PWS-Failure-Indication
+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 ::= {
+ error-Indication |
+ write-Replace-Warning-Indication |
+ stop-Warning-Indication |
+ pws-Restart-Indication |
+ pws-Failure-Indication,
+ ...
+ }
+
+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
+}
+
+error-Indication SBC-AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Error-Indication
+ PROCEDURE CODE id-Error-Indication
+ CRITICALITY ignore
+}
+
+write-Replace-Warning-Indication SBC-AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Write-Replace-Warning-Indication
+ PROCEDURE CODE id-Write-Replace-Warning-Indication
+ CRITICALITY ignore
+}
+
+stop-Warning-Indication SBC-AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE Stop-Warning-Indication
+ PROCEDURE CODE id-Stop-Warning-Indication
+ CRITICALITY ignore
+}
+
+pws-Restart-Indication SBC-AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PWS-Restart-Indication
+ PROCEDURE CODE id-PWS-Restart-Indication
+ CRITICALITY ignore
+}
+
+pws-Failure-Indication SBC-AP-ELEMENTARY-PROCEDURE ::= {
+ INITIATING MESSAGE PWS-Failure-Indication
+ PROCEDURE CODE id-PWS-Failure-Indication
+ CRITICALITY ignore
+}
+
+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 00000000..3b714f3d
--- /dev/null
+++ b/epan/dissectors/asn1/sbc-ap/packet-sbc-ap-template.c
@@ -0,0 +1,272 @@
+/* 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
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ *
+ * 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 <epan/proto_data.h>
+
+#include "packet-ber.h"
+#include "packet-per.h"
+#include "packet-e212.h"
+#include "packet-gsm_map.h"
+#include "packet-s1ap.h"
+#include "packet-lte-rrc.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;
+
+static int hf_sbc_ap_Serial_Number_gs = -1;
+static int hf_sbc_ap_Serial_Number_msg_code = -1;
+static int hf_sbc_ap_Serial_Number_upd_nb = -1;
+static int hf_sbc_ap_Warning_Type_value = -1;
+static int hf_sbc_ap_Warning_Type_emergency_user_alert = -1;
+static int hf_sbc_ap_Warning_Type_popup = -1;
+static int hf_sbc_ap_Warning_Message_Contents_nb_pages = -1;
+static int hf_sbc_ap_Warning_Message_Contents_decoded_page = -1;
+#include "packet-sbc-ap-hf.c"
+
+/* Initialize the subtree pointers */
+static int ett_sbc_ap = -1;
+static int ett_sbc_ap_Serial_Number = -1;
+static int ett_sbc_ap_Warning_Type = -1;
+static int ett_sbc_ap_Data_Coding_Scheme = -1;
+static int ett_sbc_ap_Warning_Message_Contents = -1;
+
+#include "packet-sbc-ap-ett.c"
+
+enum{
+ INITIATING_MESSAGE,
+ SUCCESSFUL_OUTCOME,
+ UNSUCCESSFUL_OUTCOME
+};
+
+struct sbc_ap_private_data {
+ guint8 data_coding_scheme;
+ e212_number_type_t number_type;
+};
+
+/* 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 *);
+
+
+static struct sbc_ap_private_data*
+sbc_ap_get_private_data(packet_info *pinfo)
+{
+ struct sbc_ap_private_data *sbc_ap_data = (struct sbc_ap_private_data*)p_get_proto_data(pinfo->pool, pinfo, proto_sbc_ap, 0);
+ if (!sbc_ap_data) {
+ sbc_ap_data = wmem_new0(pinfo->pool, struct sbc_ap_private_data);
+ p_add_proto_data(pinfo->pool, pinfo, proto_sbc_ap, 0, sbc_ap_data);
+ }
+ return sbc_ap_data;
+}
+
+#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, PSNAME);
+ col_clear(pinfo->cinfo, COL_INFO);
+
+ /* create the sbc_ap protocol 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[] = {
+ { &hf_sbc_ap_Serial_Number_gs,
+ { "Geographical Scope", "sbc_ap.SerialNumber.gs",
+ FT_UINT16, BASE_DEC, VALS(s1ap_serialNumber_gs_vals), 0xc000,
+ NULL, HFILL }},
+ { &hf_sbc_ap_Serial_Number_msg_code,
+ { "Message Code", "sbc_ap.SerialNumber.msg_code",
+ FT_UINT16, BASE_DEC, NULL, 0x3ff0,
+ NULL, HFILL }},
+ { &hf_sbc_ap_Serial_Number_upd_nb,
+ { "Update Number", "sbc_ap.SerialNumber.upd_nb",
+ FT_UINT16, BASE_DEC, NULL, 0x000f,
+ NULL, HFILL }},
+ { &hf_sbc_ap_Warning_Type_value,
+ { "Warning Type Value", "sbc-ap.WarningType.value",
+ FT_UINT16, BASE_DEC, VALS(s1ap_warningType_vals), 0xfe00,
+ NULL, HFILL }},
+ { &hf_sbc_ap_Warning_Type_emergency_user_alert,
+ { "Emergency User Alert", "sbc-ap.WarningType.emergency_user_alert",
+ FT_BOOLEAN, 16, TFS(&tfs_yes_no), 0x0100,
+ NULL, HFILL }},
+ { &hf_sbc_ap_Warning_Type_popup,
+ { "Popup", "sbc-ap.WarningType.popup",
+ FT_BOOLEAN, 16, TFS(&tfs_yes_no), 0x0080,
+ NULL, HFILL }},
+ { &hf_sbc_ap_Warning_Message_Contents_nb_pages,
+ { "Number of Pages", "sbc-ap.WarningMessageContents.nb_pages",
+ FT_UINT8, BASE_DEC, NULL, 0,
+ NULL, HFILL }},
+ { &hf_sbc_ap_Warning_Message_Contents_decoded_page,
+ { "Decoded Page", "sbc-ap.WarningMessageContents.decoded_page",
+ FT_STRING, BASE_NONE, NULL, 0,
+ NULL, HFILL }},
+#include "packet-sbc-ap-hfarr.c"
+ };
+
+ /* List of subtrees */
+ static gint *ett[] = {
+ &ett_sbc_ap,
+ &ett_sbc_ap_Serial_Number,
+ &ett_sbc_ap_Warning_Type,
+ &ett_sbc_ap_Data_Coding_Scheme,
+ &ett_sbc_ap_Warning_Message_Contents,
+#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 */
+ sbc_ap_handle = register_dissector(PFNAME, dissect_sbc_ap, proto_sbc_ap);
+
+ /* Register dissector tables */
+ sbc_ap_ies_dissector_table = register_dissector_table("sbc_ap.ies", "SBC-AP-PROTOCOL-IES", proto_sbc_ap, FT_UINT32, BASE_DEC);
+ sbc_ap_extension_dissector_table = register_dissector_table("sbc_ap.extension", "SBC-AP-PROTOCOL-EXTENSION", proto_sbc_ap, FT_UINT32, BASE_DEC);
+ sbc_ap_proc_imsg_dissector_table = register_dissector_table("sbc_ap.proc.imsg", "SBC-AP-ELEMENTARY-PROCEDURE InitiatingMessage", proto_sbc_ap, FT_UINT32, BASE_DEC);
+ sbc_ap_proc_sout_dissector_table = register_dissector_table("sbc_ap.proc.sout", "SBC-AP-ELEMENTARY-PROCEDURE SuccessfulOutcome", proto_sbc_ap, FT_UINT32, BASE_DEC);
+ sbc_ap_proc_uout_dissector_table = register_dissector_table("sbc_ap.proc.uout", "SBC-AP-ELEMENTARY-PROCEDURE UnsuccessfulOutcome", proto_sbc_ap, FT_UINT32, BASE_DEC);
+
+
+}
+
+
+/*--- proto_reg_handoff_sbc_ap ---------------------------------------*/
+void
+proto_reg_handoff_sbc_ap(void)
+{
+ static gboolean inited = FALSE;
+ static guint SctpPort;
+
+ if( !inited ) {
+ 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);
+ }
+
+}
+
+
+/*
+ * Editor modelines
+ *
+ * Local Variables:
+ * c-basic-offset: 2
+ * tab-width: 8
+ * indent-tabs-mode: nil
+ * End:
+ *
+ * ex: set shiftwidth=2 tabstop=8 expandtab:
+ * :indentSize=2:tabSize=8:noTabs=true:
+ */
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 00000000..08a2b1f1
--- /dev/null
+++ b/epan/dissectors/asn1/sbc-ap/sbc-ap.cnf
@@ -0,0 +1,377 @@
+# 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
+Unknown-Tracking-Area-List
+NgENB-ID
+List-of-5GS-Cells-for-Failure
+
+#.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
+#.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;
+ struct sbc_ap_private_data *sbc_ap_data = sbc_ap_get_private_data(actx->pinfo);
+ e212_number_type_t number_type = sbc_ap_data->number_type;
+ sbc_ap_data->number_type = E212_NONE;
+
+ offset = dissect_per_octet_string(tvb, offset, actx, tree, hf_index,
+ 3, 3, FALSE, &parameter_tvb);
+ if(tvb_reported_length(tvb)==0)
+ return offset;
+
+ if (!parameter_tvb)
+ return offset;
+ dissect_e212_mcc_mnc(parameter_tvb, actx->pinfo, tree, 0, number_type, FALSE);
+#.END
+
+#.TYPE_ATTR
+ProtocolExtensionID TYPE = FT_UINT8 DISPLAY = BASE_DEC STRINGS = VALS(sbc_ap_ProtocolIE_ID_vals)
+
+#.FN_BODY EUTRAN-CGI
+ struct sbc_ap_private_data *sbc_ap_data = sbc_ap_get_private_data(actx->pinfo);
+ sbc_ap_data->number_type = E212_ECGI;
+%(DEFAULT_BODY)s
+
+#.FN_BODY NR-CGI
+ struct sbc_ap_private_data *sbc_ap_data = sbc_ap_get_private_data(actx->pinfo);
+ sbc_ap_data->number_type = E212_NRCGI;
+%(DEFAULT_BODY)s
+
+#.FN_BODY TAI
+ struct sbc_ap_private_data *sbc_ap_data = sbc_ap_get_private_data(actx->pinfo);
+ sbc_ap_data->number_type = E212_TAI;
+%(DEFAULT_BODY)s
+
+#.TYPE_ATTR
+TAC TYPE = FT_UINT16 DISPLAY = BASE_DEC_HEX
+#.FN_BODY TAC VAL_PTR = &parameter_tvb HF_INDEX = -1
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb) {
+ actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
+ }
+
+#.FN_BODY TAI-5GS
+ struct sbc_ap_private_data *sbc_ap_data = sbc_ap_get_private_data(actx->pinfo);
+ sbc_ap_data->number_type = E212_5GSTAI;
+%(DEFAULT_BODY)s
+
+#.TYPE_ATTR
+TAC-5GS TYPE = FT_UINT24 DISPLAY = BASE_DEC_HEX
+#.FN_BODY TAC-5GS VAL_PTR = &parameter_tvb HF_INDEX = -1
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb) {
+ actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 3, ENC_BIG_ENDIAN);
+ }
+
+
+#.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
+id-Error-Indication ProcedureCode
+id-Write-Replace-Warning-Indication ProcedureCode
+id-Stop-Warning-Indication ProcedureCode
+id-PWS-Restart-Indication ProcedureCode
+id-PWS-Failure-Indication 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
+id-Unknown-Tracking-Area-List ProtocolIE-ID
+id-Broadcast-Scheduled-Area-List ProtocolIE-ID
+id-Send-Write-Replace-Warning-Indication ProtocolIE-ID
+id-Broadcast-Cancelled-Area-List ProtocolIE-ID
+id-Send-Stop-Warning-Indication ProtocolIE-ID
+id-Stop-All-Indicator ProtocolIE-ID
+id-Global-ENB-ID ProtocolIE-ID
+id-Broadcast-Empty-Area-List ProtocolIE-ID
+id-Restarted-Cell-List ProtocolIE-ID
+id-List-of-TAIs-Restart ProtocolIE-ID
+id-List-of-EAIs-Restart ProtocolIE-ID
+id-Failed-Cell-List ProtocolIE-ID
+
+id-List-of-5GS-TAIs ProtocolIE-ID
+id-Warning-Area-List-5GS ProtocolIE-ID
+id-Global-RAN-Node-ID ProtocolIE-ID
+id-Global-GNB-ID ProtocolIE-ID
+id-RAT-Selector-5GS ProtocolIE-ID
+id-Unknown-5GS-Tracking-Area-List ProtocolIE-ID
+id-Broadcast-Scheduled-Area-List-5GS ProtocolIE-ID
+id-Broadcast-Cancelled-Area-List-5GS ProtocolIE-ID
+id-Broadcast-Empty-Area-List-5GS ProtocolIE-ID
+id-Restarted-Cell-List-NR ProtocolIE-ID
+id-Failed-Cell-List-NR ProtocolIE-ID
+id-List-of-5GS-TAI-for-Restart ProtocolIE-ID
+id-Warning-Area-Coordinates 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
+List-of-TAIs N sbc_ap.ies id-Unknown-Tracking-Area-List
+Broadcast-Scheduled-Area-List N sbc_ap.ies id-Broadcast-Scheduled-Area-List
+Send-Write-Replace-Warning-Indication N sbc_ap.ies id-Send-Write-Replace-Warning-Indication
+Broadcast-Cancelled-Area-List N sbc_ap.ies id-Broadcast-Cancelled-Area-List
+Send-Stop-Warning-Indication N sbc_ap.ies id-Send-Stop-Warning-Indication
+Stop-All-Indicator N sbc_ap.ies id-Stop-All-Indicator
+Global-ENB-ID N sbc_ap.ies id-Global-ENB-ID
+Broadcast-Empty-Area-List N sbc_ap.ies id-Broadcast-Empty-Area-List
+Restarted-Cell-List N sbc_ap.ies id-Restarted-Cell-List
+List-of-TAIs-Restart N sbc_ap.ies id-List-of-TAIs-Restart
+List-of-EAIs-Restart N sbc_ap.ies id-List-of-EAIs-Restart
+Failed-Cell-List N sbc_ap.ies id-Failed-Cell-List
+
+List-of-5GS-TAIs N sbc_ap.extension id-List-of-5GS-TAIs
+Warning-Area-List-5GS N sbc_ap.extension id-Warning-Area-List-5GS
+Global-RAN-Node-ID N sbc_ap.extension id-Global-RAN-Node-ID
+Global-GNB-ID N sbc_ap.extension id-Global-GNB-ID
+RAT-Selector-5GS N sbc_ap.extension id-RAT-Selector-5GS
+Unknown-5GS-Tracking-Area-List N sbc_ap.extension id-Unknown-5GS-Tracking-Area-List
+Broadcast-Scheduled-Area-List-5GS N sbc_ap.extension id-Broadcast-Scheduled-Area-List-5GS
+Broadcast-Cancelled-Area-List-5GS N sbc_ap.extension id-Broadcast-Cancelled-Area-List-5GS
+Broadcast-Empty-Area-List-5GS N sbc_ap.extension id-Broadcast-Empty-Area-List-5GS
+Restarted-Cell-List-NR N sbc_ap.extension id-Restarted-Cell-List-NR
+Failed-Cell-List-NR N sbc_ap.extension id-Failed-Cell-List-NR
+List-of-5GS-TAI-for-Restart N sbc_ap.extension id-List-of-5GS-TAI-for-Restart
+Warning-Area-Coordinates N sbc_ap.ies id-Warning-Area-Coordinates
+
+
+#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
+
+Error-Indication N sbc_ap.proc.imsg id-Error-Indication
+
+Write-Replace-Warning-Indication N sbc_ap.proc.imsg id-Write-Replace-Warning-Indication
+
+Stop-Warning-Indication N sbc_ap.proc.imsg id-Stop-Warning-Indication
+
+PWS-Restart-Indication N sbc_ap.proc.imsg id-PWS-Restart-Indication
+
+PWS-Failure-Indication N sbc_ap.proc.imsg id-PWS-Failure-Indication
+
+#.END
+
+#.TYPE_ATTR
+Message-Identifier TYPE = FT_UINT16 DISPLAY = BASE_DEC|BASE_EXT_STRING STRINGS = &lte_rrc_messageIdentifier_vals_ext
+
+#.FN_HDR Write-Replace-Warning-Request
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Write-Replace-Warning-Request");
+#.FN_HDR Write-Replace-Warning-Response
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Write-Replace-Warning-Response");
+#.FN_HDR Stop-Warning-Request
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Stop-Warning-Request");
+#.FN_HDR Stop-Warning-Response
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Stop-Warning-Response");
+#.FN_HDR Error-Indication
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Error-Indication");
+#.FN_HDR Write-Replace-Warning-Indication
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Write-Replace-Warning-Indication");
+#.FN_HDR Stop-Warning-Indication
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "Stop-Warning-Indication");
+#.FN_HDR PWS-Restart-Indication
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWS-Restart-Indication");
+#.FN_HDR PWS-Failure-Indication
+ col_append_sep_str(actx->pinfo->cinfo, COL_INFO, NULL, "PWS-Failure-Indication");
+
+#.FN_BODY Message-Identifier VAL_PTR = &parameter_tvb HF_INDEX = -1
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb) {
+ actx->created_item = proto_tree_add_item(tree, hf_index, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
+ }
+
+#.FN_BODY Serial-Number VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_sbc_ap_Serial_Number);
+ proto_tree_add_item(subtree, hf_sbc_ap_Serial_Number_gs, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_sbc_ap_Serial_Number_msg_code, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_sbc_ap_Serial_Number_upd_nb, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
+ }
+
+#.TYPE_ATTR
+Repetition-Period DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+
+#.TYPE_ATTR
+Extended-Repetition-Period DISPLAY=BASE_DEC|BASE_UNIT_STRING STRINGS=&units_seconds
+
+#.FN_BODY Warning-Type VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb) {
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_sbc_ap_Warning_Type);
+ proto_tree_add_item(subtree, hf_sbc_ap_Warning_Type_value, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_sbc_ap_Warning_Type_emergency_user_alert, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
+ proto_tree_add_item(subtree, hf_sbc_ap_Warning_Type_popup, parameter_tvb, 0, 2, ENC_BIG_ENDIAN);
+ }
+
+
+#.FN_BODY Data-Coding-Scheme VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb) {
+ struct sbc_ap_private_data *sbc_ap_data = sbc_ap_get_private_data(actx->pinfo);
+ proto_tree *subtree;
+
+ subtree = proto_item_add_subtree(actx->created_item, ett_sbc_ap_Data_Coding_Scheme);
+ sbc_ap_data->data_coding_scheme = dissect_cbs_data_coding_scheme(parameter_tvb, actx->pinfo, subtree, 0);
+ }
+
+#.FN_BODY Warning-Message-Content VAL_PTR = &parameter_tvb
+ tvbuff_t *parameter_tvb = NULL;
+%(DEFAULT_BODY)s
+ if (parameter_tvb) {
+ struct sbc_ap_private_data *sbc_ap_data = sbc_ap_get_private_data(actx->pinfo);
+ proto_tree *subtree = proto_item_add_subtree(actx->created_item, ett_sbc_ap_Warning_Message_Contents);
+ dissect_s1ap_warningMessageContents(parameter_tvb, subtree, actx->pinfo, sbc_ap_data->data_coding_scheme, hf_sbc_ap_Warning_Message_Contents_nb_pages, hf_sbc_ap_Warning_Message_Contents_decoded_page);
+ }
+
+
+#
+# Editor modelines - https://www.wireshark.org/tools/modelines.html
+#
+# Local variables:
+# c-basic-offset: 2
+# tab-width: 8
+# indent-tabs-mode: nil
+# End:
+#
+# vi: set shiftwidth=2 tabstop=8 expandtab:
+# :indentSize=2:tabSize=8:noTabs=true:
+#