<p>laforge has uploaded this change for <strong>review</strong>.</p><p><a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15589">View Change</a></p><pre style="font-family: monospace,monospace; white-space: pre-wrap;">SABP (Service Area Broadcast Protocol) definitions<br><br>Using ASN.1 syntax copy+pasted from 3GPP TS 25.419 version 15.0.0 Release 15<br><br>Change-Id: Iab44cca10a664bbe2823a4183bca055ac8851137<br>---<br>A library/sabp/SABP_CommonDataTypes.asn<br>A library/sabp/SABP_Constants.asn<br>A library/sabp/SABP_Containers.asn<br>A library/sabp/SABP_EncDec.cc<br>A library/sabp/SABP_IEs.asn<br>A library/sabp/SABP_PDU_Contents.asn<br>A library/sabp/SABP_PDU_Descriptions.asn<br>A library/sabp/SABP_Templates.ttcn<br>A library/sabp/SABP_Types.ttcn<br>9 files changed, 1,747 insertions(+), 0 deletions(-)<br><br></pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;">git pull ssh://gerrit.osmocom.org:29418/osmo-ttcn3-hacks refs/changes/89/15589/1</pre><pre style="font-family: monospace,monospace; white-space: pre-wrap;"><span>diff --git a/library/sabp/SABP_CommonDataTypes.asn b/library/sabp/SABP_CommonDataTypes.asn</span><br><span>new file mode 100644</span><br><span>index 0000000..92f3e12</span><br><span>--- /dev/null</span><br><span>+++ b/library/sabp/SABP_CommonDataTypes.asn</span><br><span>@@ -0,0 +1,16 @@</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Common definitions</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+SABP-CommonDataTypes {</span><br><span style="color: hsl(120, 100%, 40%);">+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)</span><br><span style="color: hsl(120, 100%, 40%);">+umts-Access (20) modules (3) sabp (3) version1 (1) sabp-CommonDataTypes (3) }</span><br><span style="color: hsl(120, 100%, 40%);">+DEFINITIONS AUTOMATIC TAGS ::=</span><br><span style="color: hsl(120, 100%, 40%);">+BEGIN</span><br><span style="color: hsl(120, 100%, 40%);">+Criticality ::= ENUMERATED { reject, ignore, notify }</span><br><span style="color: hsl(120, 100%, 40%);">+Presence ::= ENUMERATED { optional, conditional, mandatory }</span><br><span style="color: hsl(120, 100%, 40%);">+ProcedureCode ::= INTEGER (0..255)</span><br><span style="color: hsl(120, 100%, 40%);">+ProtocolExtensionID ::= INTEGER (0..65535)</span><br><span style="color: hsl(120, 100%, 40%);">+ProtocolIE-ID ::= INTEGER (0..65535)</span><br><span style="color: hsl(120, 100%, 40%);">+TriggeringMessage ::= ENUMERATED {initiating-message, successful-outcome, unsuccessful-outcome, outcome}</span><br><span style="color: hsl(120, 100%, 40%);">+END </span><br><span>diff --git a/library/sabp/SABP_Constants.asn b/library/sabp/SABP_Constants.asn</span><br><span>new file mode 100644</span><br><span>index 0000000..5b390a9</span><br><span>--- /dev/null</span><br><span>+++ b/library/sabp/SABP_Constants.asn</span><br><span>@@ -0,0 +1,66 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Constant definitions</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+SABP-Constants {</span><br><span style="color: hsl(120, 100%, 40%);">+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)</span><br><span style="color: hsl(120, 100%, 40%);">+umts-Access (20) modules (3) sabp (3) version1 (1) sabp-Constants (4) }</span><br><span style="color: hsl(120, 100%, 40%);">+DEFINITIONS AUTOMATIC TAGS ::=</span><br><span style="color: hsl(120, 100%, 40%);">+BEGIN</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Elementary Procedures</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+id-Write-Replace INTEGER ::= 0</span><br><span style="color: hsl(120, 100%, 40%);">+id-Kill INTEGER ::= 1</span><br><span style="color: hsl(120, 100%, 40%);">+id-Load-Status-Enquiry INTEGER ::= 2</span><br><span style="color: hsl(120, 100%, 40%);">+id-Message-Status-Query INTEGER ::= 3 </span><br><span style="color: hsl(120, 100%, 40%);">+id-Restart-Indication INTEGER ::= 4</span><br><span style="color: hsl(120, 100%, 40%);">+id-Reset INTEGER ::= 5</span><br><span style="color: hsl(120, 100%, 40%);">+id-Failure-Indication INTEGER ::= 6</span><br><span style="color: hsl(120, 100%, 40%);">+id-Error-Indication INTEGER ::= 7</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- IEs</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+id-Broadcast-Message-Content INTEGER ::= 0</span><br><span style="color: hsl(120, 100%, 40%);">+id-Category INTEGER ::= 1</span><br><span style="color: hsl(120, 100%, 40%);">+id-Cause INTEGER ::= 2</span><br><span style="color: hsl(120, 100%, 40%);">+id-Criticality-Diagnostics INTEGER ::=3</span><br><span style="color: hsl(120, 100%, 40%);">+id-Data-Coding-Scheme INTEGER ::= 4</span><br><span style="color: hsl(120, 100%, 40%);">+id-Failure-List INTEGER ::= 5</span><br><span style="color: hsl(120, 100%, 40%);">+id-Message-Identifier INTEGER ::= 6</span><br><span style="color: hsl(120, 100%, 40%);">+id-New-Serial-Number INTEGER ::= 7</span><br><span style="color: hsl(120, 100%, 40%);">+id-Number-of-Broadcasts-Completed-List INTEGER ::= 8</span><br><span style="color: hsl(120, 100%, 40%);">+id-Number-of-Broadcasts-Requested INTEGER ::= 9</span><br><span style="color: hsl(120, 100%, 40%);">+id-Old-Serial-Number INTEGER ::= 10</span><br><span style="color: hsl(120, 100%, 40%);">+id-Radio-Resource-Loading-List INTEGER ::= 11</span><br><span style="color: hsl(120, 100%, 40%);">+id-Recovery-Indication INTEGER ::= 12</span><br><span style="color: hsl(120, 100%, 40%);">+id-Repetition-Period INTEGER ::= 13</span><br><span style="color: hsl(120, 100%, 40%);">+id-Serial-Number INTEGER ::= 14</span><br><span style="color: hsl(120, 100%, 40%);">+id-Service-Areas-List INTEGER ::= 15</span><br><span style="color: hsl(120, 100%, 40%);">+id-MessageStructure INTEGER ::= 16</span><br><span style="color: hsl(120, 100%, 40%);">+id-TypeOfError INTEGER ::= 17</span><br><span style="color: hsl(120, 100%, 40%);">+id-Paging-ETWS-Indicator INTEGER ::= 18</span><br><span style="color: hsl(120, 100%, 40%);">+id-Warning-Type INTEGER ::= 19</span><br><span style="color: hsl(120, 100%, 40%);">+id-WarningSecurityInfo INTEGER ::= 20</span><br><span style="color: hsl(120, 100%, 40%);">+id-Broadcast-Message-Content-Validity-Indicator INTEGER ::= 21</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Extension constants</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Lists</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+maxNrOfErrors INTEGER ::= 256</span><br><span style="color: hsl(120, 100%, 40%);">+maxnoofSAI INTEGER ::= 65535</span><br><span style="color: hsl(120, 100%, 40%);">+maxProtocolExtensions INTEGER ::= 65535</span><br><span style="color: hsl(120, 100%, 40%);">+maxProtocolIEs INTEGER ::= 65535</span><br><span style="color: hsl(120, 100%, 40%);">+maxNrOfLevels INTEGER ::= 256</span><br><span style="color: hsl(120, 100%, 40%);">+END </span><br><span>diff --git a/library/sabp/SABP_Containers.asn b/library/sabp/SABP_Containers.asn</span><br><span>new file mode 100644</span><br><span>index 0000000..0aea9cc</span><br><span>--- /dev/null</span><br><span>+++ b/library/sabp/SABP_Containers.asn</span><br><span>@@ -0,0 +1,94 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Container definitions</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+SABP-Containers {</span><br><span style="color: hsl(120, 100%, 40%);">+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)</span><br><span style="color: hsl(120, 100%, 40%);">+umts-Access (20) modules (3) sabp (3) version1 (1) sabp-Containers (5) }</span><br><span style="color: hsl(120, 100%, 40%);">+DEFINITIONS AUTOMATIC TAGS ::=</span><br><span style="color: hsl(120, 100%, 40%);">+BEGIN</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- IE parameter types from other modules.</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+IMPORTS</span><br><span style="color: hsl(120, 100%, 40%);">+ Criticality,</span><br><span style="color: hsl(120, 100%, 40%);">+ Presence,</span><br><span style="color: hsl(120, 100%, 40%);">+ ProtocolExtensionID,</span><br><span style="color: hsl(120, 100%, 40%);">+ ProtocolIE-ID</span><br><span style="color: hsl(120, 100%, 40%);">+FROM SABP-CommonDataTypes</span><br><span style="color: hsl(120, 100%, 40%);">+ maxProtocolExtensions,</span><br><span style="color: hsl(120, 100%, 40%);">+ maxProtocolIEs</span><br><span style="color: hsl(120, 100%, 40%);">+FROM SABP-Constants;</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Class Definition for Protocol IEs</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+SABP-PROTOCOL-IES ::= CLASS {</span><br><span style="color: hsl(120, 100%, 40%);">+ &id ProtocolIE-ID UNIQUE,</span><br><span style="color: hsl(120, 100%, 40%);">+ &criticality Criticality DEFAULT ignore,</span><br><span style="color: hsl(120, 100%, 40%);">+ &Value,</span><br><span style="color: hsl(120, 100%, 40%);">+ &presence Presence</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+WITH SYNTAX {</span><br><span style="color: hsl(120, 100%, 40%);">+ ID &id</span><br><span style="color: hsl(120, 100%, 40%);">+ CRITICALITY &criticality</span><br><span style="color: hsl(120, 100%, 40%);">+ TYPE &Value</span><br><span style="color: hsl(120, 100%, 40%);">+ PRESENCE &presence</span><br><span style="color: hsl(120, 100%, 40%);">+} </span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Class Definition for Protocol Extensions</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+SABP-PROTOCOL-EXTENSION ::= CLASS {</span><br><span style="color: hsl(120, 100%, 40%);">+ &id ProtocolExtensionID UNIQUE,</span><br><span style="color: hsl(120, 100%, 40%);">+ &criticality Criticality DEFAULT ignore,</span><br><span style="color: hsl(120, 100%, 40%);">+ &Extension,</span><br><span style="color: hsl(120, 100%, 40%);">+ &presence Presence</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+WITH SYNTAX {</span><br><span style="color: hsl(120, 100%, 40%);">+ ID &id</span><br><span style="color: hsl(120, 100%, 40%);">+ CRITICALITY &criticality</span><br><span style="color: hsl(120, 100%, 40%);">+ EXTENSION &Extension</span><br><span style="color: hsl(120, 100%, 40%);">+ PRESENCE &presence</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Container for Protocol IEs</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+ProtocolIE-Container {SABP-PROTOCOL-IES : IEsSetParam} ::=</span><br><span style="color: hsl(120, 100%, 40%);">+ SEQUENCE (SIZE (0..maxProtocolIEs)) OF</span><br><span style="color: hsl(120, 100%, 40%);">+ ProtocolIE-Field {{IEsSetParam}}</span><br><span style="color: hsl(120, 100%, 40%);">+ProtocolIE-Field {SABP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ id SABP-PROTOCOL-IES.&id ({IEsSetParam}),</span><br><span style="color: hsl(120, 100%, 40%);">+ criticality SABP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),</span><br><span style="color: hsl(120, 100%, 40%);">+ value SABP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Container Lists for Protocol IE Containers</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, SABP-PROTOCOL-IES : IEsSetParam} ::=</span><br><span style="color: hsl(120, 100%, 40%);">+ SEQUENCE (SIZE (lowerBound..upperBound)) OF</span><br><span style="color: hsl(120, 100%, 40%);">+ ProtocolIE-Container {{IEsSetParam}}</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Container for Protocol Extensions</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+ProtocolExtensionContainer {SABP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=</span><br><span style="color: hsl(120, 100%, 40%);">+ SEQUENCE (SIZE (1..maxProtocolExtensions)) OF</span><br><span style="color: hsl(120, 100%, 40%);">+ ProtocolExtensionField {{ExtensionSetParam}} </span><br><span style="color: hsl(120, 100%, 40%);">+ProtocolExtensionField {SABP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ id SABP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),</span><br><span style="color: hsl(120, 100%, 40%);">+ criticality SABP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),</span><br><span style="color: hsl(120, 100%, 40%);">+ extensionValue SABP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+END </span><br><span>diff --git a/library/sabp/SABP_EncDec.cc b/library/sabp/SABP_EncDec.cc</span><br><span>new file mode 100644</span><br><span>index 0000000..3c60e82</span><br><span>--- /dev/null</span><br><span>+++ b/library/sabp/SABP_EncDec.cc</span><br><span>@@ -0,0 +1,64 @@</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+#include <string.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include <stdarg.h></span><br><span style="color: hsl(120, 100%, 40%);">+#include "SABP_PDU_Descriptions.hh"</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+extern "C" {</span><br><span style="color: hsl(120, 100%, 40%);">+#include <fftranscode/transcode.h></span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+namespace SABP__Types {</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+TTCN_Module SABP__EncDec("SABP_EncDec", __DATE__, __TIME__);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+OCTETSTRING enc__SABP__PDU(const SABP__PDU__Descriptions::SABP__PDU &pdu)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+  uint8_t *aper_buf;</span><br><span style="color: hsl(120, 100%, 40%);">+    int aper_buf_len;</span><br><span style="color: hsl(120, 100%, 40%);">+     TTCN_Buffer TTCN_buf;</span><br><span style="color: hsl(120, 100%, 40%);">+ TTCN_buf.clear();</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* Encode from abstract data type into BER/DER */</span><br><span style="color: hsl(120, 100%, 40%);">+     pdu.encode(SABP__PDU__Descriptions::SABP__PDU_descr_, TTCN_buf,</span><br><span style="color: hsl(120, 100%, 40%);">+                  TTCN_EncDec::CT_BER, BER_ENCODE_DER);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    aper_buf_len = fftranscode_ber2aper(FFTRANSC_T_SABP, &aper_buf, TTCN_buf.get_data(), TTCN_buf.get_len());</span><br><span style="color: hsl(120, 100%, 40%);">+ if (aper_buf_len < 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+            TTCN_error("fftranscode failed.");</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* make octetstring from output buffer */</span><br><span style="color: hsl(120, 100%, 40%);">+     OCTETSTRING ret_val(aper_buf_len, aper_buf);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+        /* release dynamically-allocated output buffer */</span><br><span style="color: hsl(120, 100%, 40%);">+     fftranscode_free(aper_buf);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+ return ret_val;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+SABP__PDU__Descriptions::SABP__PDU dec__SABP__PDU(const OCTETSTRING &stream)</span><br><span style="color: hsl(120, 100%, 40%);">+{</span><br><span style="color: hsl(120, 100%, 40%);">+     uint8_t *ber_buf;</span><br><span style="color: hsl(120, 100%, 40%);">+     int ber_buf_len;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+    /* First, decode APER + re-encode as BER */</span><br><span style="color: hsl(120, 100%, 40%);">+   ber_buf_len = fftranscode_aper2ber(FFTRANSC_T_SABP, &ber_buf, (const unsigned char *)stream, stream.lengthof());</span><br><span style="color: hsl(120, 100%, 40%);">+  if (ber_buf_len < 0) {</span><br><span style="color: hsl(120, 100%, 40%);">+             TTCN_error("fftranscode failed.");</span><br><span style="color: hsl(120, 100%, 40%);">+  }</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+   /* Then, re-encode from BER to TITAN representation */</span><br><span style="color: hsl(120, 100%, 40%);">+        SABP__PDU__Descriptions::SABP__PDU ret_dcc;</span><br><span style="color: hsl(120, 100%, 40%);">+   TTCN_Buffer TTCN_buf;</span><br><span style="color: hsl(120, 100%, 40%);">+ TTCN_buf.clear();</span><br><span style="color: hsl(120, 100%, 40%);">+     TTCN_buf.put_s(ber_buf_len, ber_buf);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       ret_dcc.decode(SABP__PDU__Descriptions::SABP__PDU_descr_, TTCN_buf,</span><br><span style="color: hsl(120, 100%, 40%);">+                   TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+       fftranscode_free(ber_buf);</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+  return ret_dcc;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span>diff --git a/library/sabp/SABP_IEs.asn b/library/sabp/SABP_IEs.asn</span><br><span>new file mode 100644</span><br><span>index 0000000..e21e007</span><br><span>--- /dev/null</span><br><span>+++ b/library/sabp/SABP_IEs.asn</span><br><span>@@ -0,0 +1,203 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Information Element Definitions</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+SABP-IEs {</span><br><span style="color: hsl(120, 100%, 40%);">+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)</span><br><span style="color: hsl(120, 100%, 40%);">+umts-Access (20) modules (3) sabp (3) version1 (1) sabp-IEs (2) }</span><br><span style="color: hsl(120, 100%, 40%);">+DEFINITIONS AUTOMATIC TAGS ::=</span><br><span style="color: hsl(120, 100%, 40%);">+BEGIN</span><br><span style="color: hsl(120, 100%, 40%);">+IMPORTS</span><br><span style="color: hsl(120, 100%, 40%);">+ maxNrOfErrors,</span><br><span style="color: hsl(120, 100%, 40%);">+ maxnoofSAI,</span><br><span style="color: hsl(120, 100%, 40%);">+ maxNrOfLevels,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-MessageStructure,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-TypeOfError</span><br><span style="color: hsl(120, 100%, 40%);">+FROM SABP-Constants</span><br><span style="color: hsl(120, 100%, 40%);">+ Criticality,</span><br><span style="color: hsl(120, 100%, 40%);">+ ProcedureCode,</span><br><span style="color: hsl(120, 100%, 40%);">+ TriggeringMessage,</span><br><span style="color: hsl(120, 100%, 40%);">+ ProtocolIE-ID</span><br><span style="color: hsl(120, 100%, 40%);">+FROM SABP-CommonDataTypes</span><br><span style="color: hsl(120, 100%, 40%);">+ ProtocolExtensionContainer{},</span><br><span style="color: hsl(120, 100%, 40%);">+ SABP-PROTOCOL-EXTENSION</span><br><span style="color: hsl(120, 100%, 40%);">+FROM SABP-Containers;</span><br><span style="color: hsl(120, 100%, 40%);">+-- A</span><br><span style="color: hsl(120, 100%, 40%);">+Available-Bandwidth ::= INTEGER (0..20480)</span><br><span style="color: hsl(120, 100%, 40%);">+-- bits/sec</span><br><span style="color: hsl(120, 100%, 40%);">+-- B</span><br><span style="color: hsl(120, 100%, 40%);">+Broadcast-Message-Content ::= BIT STRING (SIZE (1..9968))-- This IE is sent from the CN to the RNC containing user information i.e.</span><br><span style="color: hsl(120, 100%, 40%);">+-- the message.</span><br><span style="color: hsl(120, 100%, 40%);">+Broadcast-Message-Content-Validity-Indicator ::= ENUMERATED {</span><br><span style="color: hsl(120, 100%, 40%);">+ broadcast-Message-Content-not-valid,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+-- C</span><br><span style="color: hsl(120, 100%, 40%);">+Category ::= ENUMERATED {</span><br><span style="color: hsl(120, 100%, 40%);">+ high-priority,</span><br><span style="color: hsl(120, 100%, 40%);">+ background-priority,</span><br><span style="color: hsl(120, 100%, 40%);">+ normal-priority,</span><br><span style="color: hsl(120, 100%, 40%);">+ default-priority,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Cause ::= INTEGER {</span><br><span style="color: hsl(120, 100%, 40%);">+ parameter-not-recognised (0),</span><br><span style="color: hsl(120, 100%, 40%);">+ parameter-value-invalid (1),</span><br><span style="color: hsl(120, 100%, 40%);">+ valid-CN-message-not-identified (2),</span><br><span style="color: hsl(120, 100%, 40%);">+ service-area-identity-not-valid (3),</span><br><span style="color: hsl(120, 100%, 40%);">+ unrecognised-message (4),</span><br><span style="color: hsl(120, 100%, 40%);">+ missing-mandatory-element (5),</span><br><span style="color: hsl(120, 100%, 40%);">+ rNC-capacity-exceeded (6),</span><br><span style="color: hsl(120, 100%, 40%);">+ rNC-memory-exceeded (7),</span><br><span style="color: hsl(120, 100%, 40%);">+ service-area-broadcast-not-supported (8), </span><br><span style="color: hsl(120, 100%, 40%);">+ service-area-broadcast-not-operational (9),</span><br><span style="color: hsl(120, 100%, 40%);">+ message-reference-already-used (10),</span><br><span style="color: hsl(120, 100%, 40%);">+ unspecifed-error (11),</span><br><span style="color: hsl(120, 100%, 40%);">+ transfer-syntax-error (12),</span><br><span style="color: hsl(120, 100%, 40%);">+ semantic-error (13),</span><br><span style="color: hsl(120, 100%, 40%);">+ message-not-compatible-with-receiver-state (14),</span><br><span style="color: hsl(120, 100%, 40%);">+ abstract-syntax-error-reject (15),</span><br><span style="color: hsl(120, 100%, 40%);">+ abstract-syntax-error-ignore-and-notify (16),</span><br><span style="color: hsl(120, 100%, 40%);">+ abstract-syntax-error-falsely-constructed-message (17)</span><br><span style="color: hsl(120, 100%, 40%);">+} (0..255)</span><br><span style="color: hsl(120, 100%, 40%);">+Criticality-Diagnostics ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ procedureCode ProcedureCode OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ triggeringMessage TriggeringMessage OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ procedureCriticality Criticality OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+CriticalityDiagnostics-ExtIEs SABP-PROTOCOL-EXTENSION ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF</span><br><span style="color: hsl(120, 100%, 40%);">+ SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ iECriticality Criticality,</span><br><span style="color: hsl(120, 100%, 40%);">+ iE-ID ProtocolIE-ID,</span><br><span style="color: hsl(120, 100%, 40%);">+ repetitionNumber RepetitionNumber0 OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-IE-List-ExtIEs} } OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+CriticalityDiagnostics-IE-List-ExtIEs SABP-PROTOCOL-EXTENSION ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-MessageStructure CRITICALITY ignore EXTENSION MessageStructure PRESENCE optional }|</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-TypeOfError CRITICALITY ignore EXTENSION TypeOfError PRESENCE mandatory },</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+MessageStructure ::= SEQUENCE (SIZE (1..maxNrOfLevels)) OF</span><br><span style="color: hsl(120, 100%, 40%);">+ SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ iE-ID ProtocolIE-ID,</span><br><span style="color: hsl(120, 100%, 40%);">+ repetitionNumber RepetitionNumber1 OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ iE-Extensions ProtocolExtensionContainer { {MessageStructure-ExtIEs} } OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+ }</span><br><span style="color: hsl(120, 100%, 40%);">+MessageStructure-ExtIEs SABP-PROTOCOL-EXTENSION ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+} </span><br><span style="color: hsl(120, 100%, 40%);">+-- D</span><br><span style="color: hsl(120, 100%, 40%);">+Data-Coding-Scheme ::= BIT STRING (SIZE (8))</span><br><span style="color: hsl(120, 100%, 40%);">+-- E</span><br><span style="color: hsl(120, 100%, 40%);">+-- F</span><br><span style="color: hsl(120, 100%, 40%);">+Failure-List ::= SEQUENCE (SIZE (1..maxnoofSAI)) OF Failure-List-Item</span><br><span style="color: hsl(120, 100%, 40%);">+Failure-List-Item ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ service-area-identifier Service-Area-Identifier,</span><br><span style="color: hsl(120, 100%, 40%);">+ cause Cause,</span><br><span style="color: hsl(120, 100%, 40%);">+ iE-Extensions ProtocolExtensionContainer { {FailureListItemIE-ExtIEs} } OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+FailureListItemIE-ExtIEs SABP-PROTOCOL-EXTENSION ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+-- G</span><br><span style="color: hsl(120, 100%, 40%);">+-- H</span><br><span style="color: hsl(120, 100%, 40%);">+-- I</span><br><span style="color: hsl(120, 100%, 40%);">+-- J</span><br><span style="color: hsl(120, 100%, 40%);">+-- K</span><br><span style="color: hsl(120, 100%, 40%);">+-- L</span><br><span style="color: hsl(120, 100%, 40%);">+-- M</span><br><span style="color: hsl(120, 100%, 40%);">+Message-Identifier ::= BIT STRING (SIZE (16))</span><br><span style="color: hsl(120, 100%, 40%);">+-- N</span><br><span style="color: hsl(120, 100%, 40%);">+New-Serial-Number ::= Serial-Number</span><br><span style="color: hsl(120, 100%, 40%);">+Number-of-Broadcasts-Completed-List ::= SEQUENCE (SIZE (1..maxnoofSAI)) OF</span><br><span style="color: hsl(120, 100%, 40%);">+ Number-of-Broadcasts-Completed-List-Item</span><br><span style="color: hsl(120, 100%, 40%);">+Number-of-Broadcasts-Completed-List-Item ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ service-area-identifier Service-Area-Identifier,</span><br><span style="color: hsl(120, 100%, 40%);">+ number-of-broadcasts-completed INTEGER (0..65535),</span><br><span style="color: hsl(120, 100%, 40%);">+ number-of-broadcasts-completed-info Number-Of-Broadcasts-Completed-Info OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ iE-Extensions ProtocolExtensionContainer { {NoOfBroadcastsCompletedListItemIE-ExtIEs} } OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+NoOfBroadcastsCompletedListItemIE-ExtIEs SABP-PROTOCOL-EXTENSION ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+... </span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Number-Of-Broadcasts-Completed-Info ::= ENUMERATED {</span><br><span style="color: hsl(120, 100%, 40%);">+ overflow,</span><br><span style="color: hsl(120, 100%, 40%);">+ unknown,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Number-of-Broadcasts-Requested ::= INTEGER {</span><br><span style="color: hsl(120, 100%, 40%);">+ broadcast-indefinitely (0)</span><br><span style="color: hsl(120, 100%, 40%);">+} (0..65535)</span><br><span style="color: hsl(120, 100%, 40%);">+-- O</span><br><span style="color: hsl(120, 100%, 40%);">+Old-Serial-Number ::= Serial-Number</span><br><span style="color: hsl(120, 100%, 40%);">+-- P</span><br><span style="color: hsl(120, 100%, 40%);">+Paging-ETWS-Indicator ::= ENUMERATED {</span><br><span style="color: hsl(120, 100%, 40%);">+ paging,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+-- Q</span><br><span style="color: hsl(120, 100%, 40%);">+-- R</span><br><span style="color: hsl(120, 100%, 40%);">+Radio-Resource-Loading-List ::= SEQUENCE (SIZE (1..maxnoofSAI)) OF</span><br><span style="color: hsl(120, 100%, 40%);">+ Radio-Resource-Loading-List-Item</span><br><span style="color: hsl(120, 100%, 40%);">+Radio-Resource-Loading-List-Item ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ service-area-identifier Service-Area-Identifier,</span><br><span style="color: hsl(120, 100%, 40%);">+ available-bandwidth Available-Bandwidth,</span><br><span style="color: hsl(120, 100%, 40%);">+ iE-Extensions ProtocolExtensionContainer { {RadioResourceLoadingListItemIE-ExtIEs} } OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+RadioResourceLoadingListItemIE-ExtIEs SABP-PROTOCOL-EXTENSION ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Recovery-Indication ::= ENUMERATED {</span><br><span style="color: hsl(120, 100%, 40%);">+ data-lost,</span><br><span style="color: hsl(120, 100%, 40%);">+ data-available</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+RepetitionNumber0 ::= INTEGER(0..255)</span><br><span style="color: hsl(120, 100%, 40%);">+RepetitionNumber1 ::= INTEGER(1..256)</span><br><span style="color: hsl(120, 100%, 40%);">+Repetition-Period ::= INTEGER (1..4096)</span><br><span style="color: hsl(120, 100%, 40%);">+-- Each unit represents a repetition of one second to a maximum of</span><br><span style="color: hsl(120, 100%, 40%);">+-- once per 4096 seconds (~1 hour). </span><br><span style="color: hsl(120, 100%, 40%);">+-- S</span><br><span style="color: hsl(120, 100%, 40%);">+Serial-Number ::= BIT STRING (SIZE (16))</span><br><span style="color: hsl(120, 100%, 40%);">+Service-Area-Identifier ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ pLMNidentity OCTET STRING (SIZE (3))</span><br><span style="color: hsl(120, 100%, 40%);">+ -- Digits 0 to 9, two digits per octet. --</span><br><span style="color: hsl(120, 100%, 40%);">+ -- Each octet encoded 0000 to 1001. --</span><br><span style="color: hsl(120, 100%, 40%);">+ -- 1111 used as filler --</span><br><span style="color: hsl(120, 100%, 40%);">+ -- Bit 4 to 1 of octet n encoding digit 2n-1. --</span><br><span style="color: hsl(120, 100%, 40%);">+ -- Bit 8 to 5 of octet n encoding digit 2n. --</span><br><span style="color: hsl(120, 100%, 40%);">+ -- The PLMN identity consists of 3 digits from MCC --</span><br><span style="color: hsl(120, 100%, 40%);">+ -- followed by either a filler plus 2 digits --</span><br><span style="color: hsl(120, 100%, 40%);">+ -- from MNC (in case of 2 digit MNC) or 3 digits --</span><br><span style="color: hsl(120, 100%, 40%);">+ -- from MNC (in case of 3 digit MNC). -- ,</span><br><span style="color: hsl(120, 100%, 40%);">+ lac OCTET STRING (SIZE (2))</span><br><span style="color: hsl(120, 100%, 40%);">+ -- 0000 and FFFE not allowed -- ,</span><br><span style="color: hsl(120, 100%, 40%);">+ sac OCTET STRING (SIZE (2))</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+-- **TODO** The IE type for these parameters is not known as yet</span><br><span style="color: hsl(120, 100%, 40%);">+Service-Areas-List ::= SEQUENCE (SIZE (1..maxnoofSAI)) OF Service-Area-Identifier</span><br><span style="color: hsl(120, 100%, 40%);">+-- T</span><br><span style="color: hsl(120, 100%, 40%);">+TypeOfError ::= ENUMERATED {</span><br><span style="color: hsl(120, 100%, 40%);">+ not-understood,</span><br><span style="color: hsl(120, 100%, 40%);">+ missing,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+-- U</span><br><span style="color: hsl(120, 100%, 40%);">+-- V</span><br><span style="color: hsl(120, 100%, 40%);">+-- W</span><br><span style="color: hsl(120, 100%, 40%);">+WarningSecurityInfo ::= OCTET STRING (SIZE (50))</span><br><span style="color: hsl(120, 100%, 40%);">+Warning-Type ::= OCTET STRING (SIZE(2))</span><br><span style="color: hsl(120, 100%, 40%);">+-- X</span><br><span style="color: hsl(120, 100%, 40%);">+-- Y</span><br><span style="color: hsl(120, 100%, 40%);">+END </span><br><span>diff --git a/library/sabp/SABP_PDU_Contents.asn b/library/sabp/SABP_PDU_Contents.asn</span><br><span>new file mode 100644</span><br><span>index 0000000..814da2f</span><br><span>--- /dev/null</span><br><span>+++ b/library/sabp/SABP_PDU_Contents.asn</span><br><span>@@ -0,0 +1,447 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- PDU definitions for SABP.</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+SABP-PDU-Contents {</span><br><span style="color: hsl(120, 100%, 40%);">+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)</span><br><span style="color: hsl(120, 100%, 40%);">+umts-Access (20) modules (3) sabp (3) version1 (1) sabp-PDU-Contents (1) }</span><br><span style="color: hsl(120, 100%, 40%);">+DEFINITIONS AUTOMATIC TAGS ::= </span><br><span style="color: hsl(120, 100%, 40%);">+BEGIN</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- IE parameter types from other modules.</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+IMPORTS</span><br><span style="color: hsl(120, 100%, 40%);">+ Broadcast-Message-Content,</span><br><span style="color: hsl(120, 100%, 40%);">+ Category,</span><br><span style="color: hsl(120, 100%, 40%);">+ Cause,</span><br><span style="color: hsl(120, 100%, 40%);">+Criticality-Diagnostics,</span><br><span style="color: hsl(120, 100%, 40%);">+ Data-Coding-Scheme,</span><br><span style="color: hsl(120, 100%, 40%);">+ Failure-List,</span><br><span style="color: hsl(120, 100%, 40%);">+ Message-Identifier,</span><br><span style="color: hsl(120, 100%, 40%);">+ New-Serial-Number,</span><br><span style="color: hsl(120, 100%, 40%);">+ Number-of-Broadcasts-Completed-List,</span><br><span style="color: hsl(120, 100%, 40%);">+ Number-of-Broadcasts-Requested,</span><br><span style="color: hsl(120, 100%, 40%);">+ Old-Serial-Number,</span><br><span style="color: hsl(120, 100%, 40%);">+ Paging-ETWS-Indicator,</span><br><span style="color: hsl(120, 100%, 40%);">+ Radio-Resource-Loading-List,</span><br><span style="color: hsl(120, 100%, 40%);">+ Recovery-Indication,</span><br><span style="color: hsl(120, 100%, 40%);">+ Repetition-Period,</span><br><span style="color: hsl(120, 100%, 40%);">+ Serial-Number,</span><br><span style="color: hsl(120, 100%, 40%);">+ Service-Areas-List,</span><br><span style="color: hsl(120, 100%, 40%);">+ WarningSecurityInfo,</span><br><span style="color: hsl(120, 100%, 40%);">+ Warning-Type,</span><br><span style="color: hsl(120, 100%, 40%);">+ Broadcast-Message-Content-Validity-Indicator</span><br><span style="color: hsl(120, 100%, 40%);">+FROM SABP-IEs</span><br><span style="color: hsl(120, 100%, 40%);">+ ProtocolExtensionContainer{},</span><br><span style="color: hsl(120, 100%, 40%);">+ ProtocolIE-Container{},</span><br><span style="color: hsl(120, 100%, 40%);">+ SABP-PROTOCOL-EXTENSION,</span><br><span style="color: hsl(120, 100%, 40%);">+ SABP-PROTOCOL-IES</span><br><span style="color: hsl(120, 100%, 40%);">+FROM SABP-Containers</span><br><span style="color: hsl(120, 100%, 40%);">+ id-Broadcast-Message-Content,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-Category,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-Criticality-Diagnostics,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-Cause,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-Data-Coding-Scheme,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-Failure-List,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-Message-Identifier,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-New-Serial-Number,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-Number-of-Broadcasts-Completed-List,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-Number-of-Broadcasts-Requested,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-Old-Serial-Number,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-Paging-ETWS-Indicator,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-Radio-Resource-Loading-List,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-Recovery-Indication,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-Repetition-Period,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-Serial-Number, </span><br><span style="color: hsl(120, 100%, 40%);">+ id-Service-Areas-List,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-WarningSecurityInfo,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-Warning-Type,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-Broadcast-Message-Content-Validity-Indicator</span><br><span style="color: hsl(120, 100%, 40%);">+FROM SABP-Constants;</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Write-Replace</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+Write-Replace ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolIEs ProtocolIE-Container { {Write-Replace-IEs} },</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolExtensions ProtocolExtensionContainer { {Write-Replace-Extensions} } OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Write-Replace-IEs SABP-PROTOCOL-IES ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-New-Serial-Number CRITICALITY reject TYPE New-Serial-Number PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Old-Serial-Number CRITICALITY ignore TYPE Old-Serial-Number PRESENCE optional } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Category CRITICALITY ignore TYPE Category PRESENCE optional } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Repetition-Period CRITICALITY reject TYPE Repetition-Period PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Number-of-Broadcasts-Requested</span><br><span style="color: hsl(120, 100%, 40%);">+ CRITICALITY reject TYPE Number-of-Broadcasts-Requested PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Data-Coding-Scheme CRITICALITY reject TYPE Data-Coding-Scheme PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Broadcast-Message-Content</span><br><span style="color: hsl(120, 100%, 40%);">+ CRITICALITY reject TYPE Broadcast-Message-Content PRESENCE mandatory },</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Write-Replace-Extensions SABP-PROTOCOL-EXTENSION ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-WarningSecurityInfo CRITICALITY ignore EXTENSION WarningSecurityInfo PRESENCE optional } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Paging-ETWS-Indicator CRITICALITY ignore EXTENSION Paging-ETWS-Indicator PRESENCE optional } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Warning-Type CRITICALITY ignore EXTENSION Warning-Type PRESENCE optional } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Broadcast-Message-Content-Validity-Indicator CRITICALITY ignore EXTENSION Broadcast-Message-Content-Validity-Indicator PRESENCE</span><br><span style="color: hsl(120, 100%, 40%);">+optional },</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Write-Replace-Complete</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+Write-Replace-Complete ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolIEs ProtocolIE-Container { {Write-Replace-Complete-IEs} },</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolExtensions ProtocolExtensionContainer { {Write-Replace-Complete-Extensions} } OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+} </span><br><span style="color: hsl(120, 100%, 40%);">+Write-Replace-Complete-IEs SABP-PROTOCOL-IES ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-New-Serial-Number CRITICALITY reject TYPE New-Serial-Number PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Number-of-Broadcasts-Completed-List</span><br><span style="color: hsl(120, 100%, 40%);">+ CRITICALITY reject TYPE Number-of-Broadcasts-Completed-List</span><br><span style="color: hsl(120, 100%, 40%);">+ PRESENCE mandatory }|</span><br><span style="color: hsl(120, 100%, 40%);">+{ ID id-Criticality-Diagnostics</span><br><span style="color: hsl(120, 100%, 40%);">+CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Write-Replace-Complete-Extensions SABP-PROTOCOL-EXTENSION ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Write-Replace-Failure</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+Write-Replace-Failure ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolIEs ProtocolIE-Container { {Write-Replace-Failure-IEs} },</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolExtensions ProtocolExtensionContainer { {Write-Replace-Failure-Extensions} } OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Write-Replace-Failure-IEs SABP-PROTOCOL-IES ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-New-Serial-Number CRITICALITY reject TYPE New-Serial-Number PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Failure-List CRITICALITY reject TYPE Failure-List PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Number-of-Broadcasts-Completed-List</span><br><span style="color: hsl(120, 100%, 40%);">+ CRITICALITY ignore TYPE Number-of-Broadcasts-Completed-List</span><br><span style="color: hsl(120, 100%, 40%);">+ PRESENCE optional } |</span><br><span style="color: hsl(120, 100%, 40%);">+{ ID id-Criticality-Diagnostics</span><br><span style="color: hsl(120, 100%, 40%);">+CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Write-Replace-Failure-Extensions SABP-PROTOCOL-EXTENSION ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Kill</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+Kill ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolIEs ProtocolIE-Container {{Kill-IEs}},</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolExtensions ProtocolExtensionContainer {{Kill-Extensions}} OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+} </span><br><span style="color: hsl(120, 100%, 40%);">+Kill-IEs SABP-PROTOCOL-IES ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Old-Serial-Number CRITICALITY reject TYPE Old-Serial-Number PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE mandatory } ,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Kill-Extensions SABP-PROTOCOL-EXTENSION ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Kill-Complete</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+Kill-Complete ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolIEs ProtocolIE-Container {{Kill-Complete-IEs}},</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolExtensions ProtocolExtensionContainer {{Kill-Complete-Extensions}} OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Kill-Complete-IEs SABP-PROTOCOL-IES ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Old-Serial-Number CRITICALITY reject TYPE Old-Serial-Number PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Number-of-Broadcasts-Completed-List</span><br><span style="color: hsl(120, 100%, 40%);">+ CRITICALITY reject TYPE Number-of-Broadcasts-Completed-List</span><br><span style="color: hsl(120, 100%, 40%);">+ PRESENCE mandatory }|</span><br><span style="color: hsl(120, 100%, 40%);">+{ ID id-Criticality-Diagnostics</span><br><span style="color: hsl(120, 100%, 40%);">+CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Kill-Complete-Extensions SABP-PROTOCOL-EXTENSION ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Kill-Failure</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+Kill-Failure ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolIEs ProtocolIE-Container {{Kill-Failure-IEs}},</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolExtensions ProtocolExtensionContainer {{Kill-Failure-Extensions}} OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Kill-Failure-IEs SABP-PROTOCOL-IES ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Old-Serial-Number CRITICALITY reject TYPE Old-Serial-Number PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Failure-List CRITICALITY reject TYPE Failure-List PRESENCE mandatory } | </span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Number-of-Broadcasts-Completed-List</span><br><span style="color: hsl(120, 100%, 40%);">+ CRITICALITY ignore TYPE Number-of-Broadcasts-Completed-List</span><br><span style="color: hsl(120, 100%, 40%);">+ PRESENCE optional } |</span><br><span style="color: hsl(120, 100%, 40%);">+{ ID id-Criticality-Diagnostics</span><br><span style="color: hsl(120, 100%, 40%);">+CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Kill-Failure-Extensions SABP-PROTOCOL-EXTENSION ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Load-Query</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+Load-Query ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolIEs ProtocolIE-Container {{Load-Query-IEs}},</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolExtensions ProtocolExtensionContainer {{Load-Query-Extensions}} OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Load-Query-IEs SABP-PROTOCOL-IES ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE mandatory } ,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Load-Query-Extensions SABP-PROTOCOL-EXTENSION ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Load-Query-Complete</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+Load-Query-Complete ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolIEs ProtocolIE-Container {{Load-Query-Complete-IEs}},</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolExtensions ProtocolExtensionContainer {{Load-Query-Complete-Extensions}} OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Load-Query-Complete-IEs SABP-PROTOCOL-IES ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Radio-Resource-Loading-List</span><br><span style="color: hsl(120, 100%, 40%);">+ CRITICALITY reject TYPE Radio-Resource-Loading-List</span><br><span style="color: hsl(120, 100%, 40%);">+ PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+{ ID id-Criticality-Diagnostics</span><br><span style="color: hsl(120, 100%, 40%);">+CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+} </span><br><span style="color: hsl(120, 100%, 40%);">+Load-Query-Complete-Extensions SABP-PROTOCOL-EXTENSION ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Load-Query-Failure</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+Load-Query-Failure ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolIEs ProtocolIE-Container {{Load-Query-Failure-IEs}},</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolExtensions ProtocolExtensionContainer {{Load-Query-Failure-Extensions}} OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Load-Query-Failure-IEs SABP-PROTOCOL-IES ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Failure-List CRITICALITY reject TYPE Failure-List PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Radio-Resource-Loading-List</span><br><span style="color: hsl(120, 100%, 40%);">+ CRITICALITY ignore TYPE Radio-Resource-Loading-List</span><br><span style="color: hsl(120, 100%, 40%);">+ PRESENCE optional } |</span><br><span style="color: hsl(120, 100%, 40%);">+{ ID id-Criticality-Diagnostics</span><br><span style="color: hsl(120, 100%, 40%);">+CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Load-Query-Failure-Extensions SABP-PROTOCOL-EXTENSION ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Message-Status-Query</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+Message-Status-Query ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolIEs ProtocolIE-Container {{Message-Status-Query-IEs}},</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolExtensions ProtocolExtensionContainer {{Message-Status-Query-Extensions}} OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Message-Status-Query-IEs SABP-PROTOCOL-IES ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Old-Serial-Number CRITICALITY reject TYPE Old-Serial-Number PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE mandatory } ,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Message-Status-Query-Extensions SABP-PROTOCOL-EXTENSION ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+} </span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Message-Status-Query-Complete</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+Message-Status-Query-Complete ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolIEs ProtocolIE-Container {{Message-Status-Query-Complete-IEs}},</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolExtensions ProtocolExtensionContainer {{Message-Status-Query-Complete-Extensions}} OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Message-Status-Query-Complete-IEs SABP-PROTOCOL-IES ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Old-Serial-Number CRITICALITY reject TYPE Old-Serial-Number PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Number-of-Broadcasts-Completed-List</span><br><span style="color: hsl(120, 100%, 40%);">+ CRITICALITY reject TYPE Number-of-Broadcasts-Completed-List</span><br><span style="color: hsl(120, 100%, 40%);">+ PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+{ ID id-Criticality-Diagnostics</span><br><span style="color: hsl(120, 100%, 40%);">+CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Message-Status-Query-Complete-Extensions SABP-PROTOCOL-EXTENSION ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Message-Status-Query-Failure</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+Message-Status-Query-Failure ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolIEs ProtocolIE-Container {{Message-Status-Query-Failure-IEs}},</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolExtensions ProtocolExtensionContainer {{Message-Status-Query-Failure-Extensions}} OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Message-Status-Query-Failure-IEs SABP-PROTOCOL-IES ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Failure-List CRITICALITY reject TYPE Failure-List PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Old-Serial-Number CRITICALITY reject TYPE Old-Serial-Number PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Number-of-Broadcasts-Completed-List</span><br><span style="color: hsl(120, 100%, 40%);">+ CRITICALITY ignore TYPE Number-of-Broadcasts-Completed-List</span><br><span style="color: hsl(120, 100%, 40%);">+ PRESENCE optional } |</span><br><span style="color: hsl(120, 100%, 40%);">+{ ID id-Criticality-Diagnostics</span><br><span style="color: hsl(120, 100%, 40%);">+CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Message-Status-Query-Failure-Extensions SABP-PROTOCOL-EXTENSION ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+} </span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Reset</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+Reset ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolIEs ProtocolIE-Container {{Reset-IEs}},</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolExtensions ProtocolExtensionContainer {{Reset-Extensions}} OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Reset-IEs SABP-PROTOCOL-IES ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE mandatory } ,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Reset-Extensions SABP-PROTOCOL-EXTENSION ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Reset-Complete</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+Reset-Complete ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolIEs ProtocolIE-Container {{Reset-Complete-IEs}},</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolExtensions ProtocolExtensionContainer {{Reset-Complete-Extensions}} OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Reset-Complete-IEs SABP-PROTOCOL-IES ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+{ ID id-Criticality-Diagnostics</span><br><span style="color: hsl(120, 100%, 40%);">+CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Reset-Complete-Extensions SABP-PROTOCOL-EXTENSION ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Reset-Failure</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+Reset-Failure ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolIEs ProtocolIE-Container {{Reset-Failure-IEs}},</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolExtensions ProtocolExtensionContainer {{Reset-Failure-Extensions}} OPTIONAL, </span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Reset-Failure-IEs SABP-PROTOCOL-IES ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Failure-List CRITICALITY reject TYPE Failure-List PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE optional } |</span><br><span style="color: hsl(120, 100%, 40%);">+{ ID id-Criticality-Diagnostics</span><br><span style="color: hsl(120, 100%, 40%);">+CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional } ,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Reset-Failure-Extensions SABP-PROTOCOL-EXTENSION ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Restart</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+Restart ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolIEs ProtocolIE-Container {{Restart-IEs}},</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolExtensions ProtocolExtensionContainer {{Restart-Extensions}} OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Restart-IEs SABP-PROTOCOL-IES ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Service-Areas-List CRITICALITY ignore TYPE Service-Areas-List PRESENCE mandatory } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Recovery-Indication CRITICALITY ignore TYPE Recovery-Indication PRESENCE optional } ,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Restart-Extensions SABP-PROTOCOL-EXTENSION ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Failure</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+Failure ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolIEs ProtocolIE-Container {{Failure-IEs}},</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolExtensions ProtocolExtensionContainer {{Failure-Extensions}} OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Failure-IEs SABP-PROTOCOL-IES ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Service-Areas-List CRITICALITY ignore TYPE Service-Areas-List PRESENCE mandatory } , </span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+} </span><br><span style="color: hsl(120, 100%, 40%);">+Failure-Extensions SABP-PROTOCOL-EXTENSION ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Error-Indication</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+Error-Indication ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolIEs ProtocolIE-Container {{Error-Indication-IEs}},</span><br><span style="color: hsl(120, 100%, 40%);">+ protocolExtensions ProtocolExtensionContainer {{Error-Indication-Extensions}} OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Error-Indication-IEs SABP-PROTOCOL-IES ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Message-Identifier CRITICALITY ignore TYPE Message-Identifier PRESENCE optional } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Serial-Number CRITICALITY ignore TYPE Serial-Number PRESENCE optional } |</span><br><span style="color: hsl(120, 100%, 40%);">+ { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |</span><br><span style="color: hsl(120, 100%, 40%);">+{ ID id-Criticality-Diagnostics</span><br><span style="color: hsl(120, 100%, 40%);">+CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+Error-Indication-Extensions SABP-PROTOCOL-EXTENSION ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+END </span><br><span>diff --git a/library/sabp/SABP_PDU_Descriptions.asn b/library/sabp/SABP_PDU_Descriptions.asn</span><br><span>new file mode 100644</span><br><span>index 0000000..428c35a</span><br><span>--- /dev/null</span><br><span>+++ b/library/sabp/SABP_PDU_Descriptions.asn</span><br><span>@@ -0,0 +1,168 @@</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Elementary Procedure definitions</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+SABP-PDU-Descriptions {</span><br><span style="color: hsl(120, 100%, 40%);">+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)</span><br><span style="color: hsl(120, 100%, 40%);">+umts-Access (20) modules (3) sabp (3) version1 (1) sabp-PDU-Descriptions (0)}</span><br><span style="color: hsl(120, 100%, 40%);">+DEFINITIONS AUTOMATIC TAGS ::=</span><br><span style="color: hsl(120, 100%, 40%);">+BEGIN</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- IE parameter types from other modules.</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+IMPORTS</span><br><span style="color: hsl(120, 100%, 40%);">+ Criticality,</span><br><span style="color: hsl(120, 100%, 40%);">+ ProcedureCode</span><br><span style="color: hsl(120, 100%, 40%);">+FROM SABP-CommonDataTypes</span><br><span style="color: hsl(120, 100%, 40%);">+ Error-Indication,</span><br><span style="color: hsl(120, 100%, 40%);">+ Failure,</span><br><span style="color: hsl(120, 100%, 40%);">+ Kill,</span><br><span style="color: hsl(120, 100%, 40%);">+ Kill-Complete,</span><br><span style="color: hsl(120, 100%, 40%);">+ Kill-Failure,</span><br><span style="color: hsl(120, 100%, 40%);">+ Load-Query,</span><br><span style="color: hsl(120, 100%, 40%);">+ Load-Query-Complete,</span><br><span style="color: hsl(120, 100%, 40%);">+ Load-Query-Failure,</span><br><span style="color: hsl(120, 100%, 40%);">+ Reset,</span><br><span style="color: hsl(120, 100%, 40%);">+ Reset-Complete,</span><br><span style="color: hsl(120, 100%, 40%);">+ Reset-Failure,</span><br><span style="color: hsl(120, 100%, 40%);">+ Restart,</span><br><span style="color: hsl(120, 100%, 40%);">+ Message-Status-Query,</span><br><span style="color: hsl(120, 100%, 40%);">+ Message-Status-Query-Complete,</span><br><span style="color: hsl(120, 100%, 40%);">+ Message-Status-Query-Failure,</span><br><span style="color: hsl(120, 100%, 40%);">+ Write-Replace,</span><br><span style="color: hsl(120, 100%, 40%);">+ Write-Replace-Complete,</span><br><span style="color: hsl(120, 100%, 40%);">+ Write-Replace-Failure</span><br><span style="color: hsl(120, 100%, 40%);">+FROM SABP-PDU-Contents</span><br><span style="color: hsl(120, 100%, 40%);">+ id-Error-Indication,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-Failure-Indication,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-Kill,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-Reset, </span><br><span style="color: hsl(120, 100%, 40%);">+ id-Restart-Indication,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-Load-Status-Enquiry,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-Message-Status-Query,</span><br><span style="color: hsl(120, 100%, 40%);">+ id-Write-Replace</span><br><span style="color: hsl(120, 100%, 40%);">+FROM SABP-Constants;</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Interface Elementary Procedure Class</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+SABP-ELEMENTARY-PROCEDURE ::= CLASS {</span><br><span style="color: hsl(120, 100%, 40%);">+ &InitiatingMessage ,</span><br><span style="color: hsl(120, 100%, 40%);">+ &SuccessfulOutcome OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ &UnsuccessfulOutcome OPTIONAL,</span><br><span style="color: hsl(120, 100%, 40%);">+ &procedureCode ProcedureCode UNIQUE,</span><br><span style="color: hsl(120, 100%, 40%);">+ &criticality Criticality DEFAULT ignore</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+WITH SYNTAX {</span><br><span style="color: hsl(120, 100%, 40%);">+ INITIATING MESSAGE &InitiatingMessage</span><br><span style="color: hsl(120, 100%, 40%);">+ [SUCCESSFUL OUTCOME</span><br><span style="color: hsl(120, 100%, 40%);">+&SuccessfulOutcome]</span><br><span style="color: hsl(120, 100%, 40%);">+ [UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]</span><br><span style="color: hsl(120, 100%, 40%);">+ PROCEDURE CODE &procedureCode</span><br><span style="color: hsl(120, 100%, 40%);">+ [CRITICALITY &criticality]</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Interface PDU Definition</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+SABP-PDU ::= CHOICE {</span><br><span style="color: hsl(120, 100%, 40%);">+ initiatingMessage InitiatingMessage,</span><br><span style="color: hsl(120, 100%, 40%);">+ successfulOutcome SuccessfulOutcome,</span><br><span style="color: hsl(120, 100%, 40%);">+ unsuccessfulOutcome UnsuccessfulOutcome,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+InitiatingMessage ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ procedureCode SABP-ELEMENTARY-PROCEDURE.&procedureCode ({SABP-ELEMENTARY-PROCEDURES}),</span><br><span style="color: hsl(120, 100%, 40%);">+ criticality SABP-ELEMENTARY-PROCEDURE.&criticality ({SABP-ELEMENTARY-PROCEDURES}{@procedureCode}),</span><br><span style="color: hsl(120, 100%, 40%);">+ value SABP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({SABP-ELEMENTARY-PROCEDURES}{@procedureCode})</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+SuccessfulOutcome ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ procedureCode SABP-ELEMENTARY-PROCEDURE.&procedureCode ({SABP-ELEMENTARY-PROCEDURES}),</span><br><span style="color: hsl(120, 100%, 40%);">+ criticality SABP-ELEMENTARY-PROCEDURE.&criticality ({SABP-ELEMENTARY-PROCEDURES}{@procedureCode}),</span><br><span style="color: hsl(120, 100%, 40%);">+ value SABP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({SABP-ELEMENTARY-PROCEDURES}{@procedureCode})</span><br><span style="color: hsl(120, 100%, 40%);">+} </span><br><span style="color: hsl(120, 100%, 40%);">+UnsuccessfulOutcome ::= SEQUENCE {</span><br><span style="color: hsl(120, 100%, 40%);">+ procedureCode SABP-ELEMENTARY-PROCEDURE.&procedureCode ({SABP-ELEMENTARY-PROCEDURES}),</span><br><span style="color: hsl(120, 100%, 40%);">+ criticality SABP-ELEMENTARY-PROCEDURE.&criticality ({SABP-ELEMENTARY-PROCEDURES}{@procedureCode}),</span><br><span style="color: hsl(120, 100%, 40%);">+ value SABP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({SABP-ELEMENTARY-PROCEDURES}{@procedureCode})</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- Interface Elementary Procedure List</span><br><span style="color: hsl(120, 100%, 40%);">+--</span><br><span style="color: hsl(120, 100%, 40%);">+-- **************************************************************</span><br><span style="color: hsl(120, 100%, 40%);">+SABP-ELEMENTARY-PROCEDURES SABP-ELEMENTARY-PROCEDURE ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ SABP-ELEMENTARY-PROCEDURES-CLASS-1 |</span><br><span style="color: hsl(120, 100%, 40%);">+ SABP-ELEMENTARY-PROCEDURES-CLASS-2 ,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+SABP-ELEMENTARY-PROCEDURES-CLASS-1 SABP-ELEMENTARY-PROCEDURE ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ write-Replace |</span><br><span style="color: hsl(120, 100%, 40%);">+ kill |</span><br><span style="color: hsl(120, 100%, 40%);">+ load-Status-Enquiry |</span><br><span style="color: hsl(120, 100%, 40%);">+ message-Status-Query |</span><br><span style="color: hsl(120, 100%, 40%);">+ reset ,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+SABP-ELEMENTARY-PROCEDURES-CLASS-2 SABP-ELEMENTARY-PROCEDURE ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ restart-Indication |</span><br><span style="color: hsl(120, 100%, 40%);">+ failure-Indication |</span><br><span style="color: hsl(120, 100%, 40%);">+ error-Indication ,</span><br><span style="color: hsl(120, 100%, 40%);">+ ...</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+write-Replace SABP-ELEMENTARY-PROCEDURE ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ INITIATING MESSAGE Write-Replace</span><br><span style="color: hsl(120, 100%, 40%);">+ SUCCESSFUL OUTCOME Write-Replace-Complete</span><br><span style="color: hsl(120, 100%, 40%);">+ UNSUCCESSFUL OUTCOME Write-Replace-Failure</span><br><span style="color: hsl(120, 100%, 40%);">+ PROCEDURE CODE id-Write-Replace</span><br><span style="color: hsl(120, 100%, 40%);">+ CRITICALITY reject</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+kill SABP-ELEMENTARY-PROCEDURE ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ INITIATING MESSAGE Kill</span><br><span style="color: hsl(120, 100%, 40%);">+ SUCCESSFUL OUTCOME Kill-Complete</span><br><span style="color: hsl(120, 100%, 40%);">+ UNSUCCESSFUL OUTCOME Kill-Failure</span><br><span style="color: hsl(120, 100%, 40%);">+ PROCEDURE CODE id-Kill</span><br><span style="color: hsl(120, 100%, 40%);">+ CRITICALITY reject</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+load-Status-Enquiry SABP-ELEMENTARY-PROCEDURE ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ INITIATING MESSAGE Load-Query</span><br><span style="color: hsl(120, 100%, 40%);">+ SUCCESSFUL OUTCOME Load-Query-Complete</span><br><span style="color: hsl(120, 100%, 40%);">+ UNSUCCESSFUL OUTCOME Load-Query-Failure </span><br><span style="color: hsl(120, 100%, 40%);">+ PROCEDURE CODE id-Load-Status-Enquiry</span><br><span style="color: hsl(120, 100%, 40%);">+ CRITICALITY reject</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+message-Status-Query SABP-ELEMENTARY-PROCEDURE ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ INITIATING MESSAGE Message-Status-Query</span><br><span style="color: hsl(120, 100%, 40%);">+ SUCCESSFUL OUTCOME Message-Status-Query-Complete</span><br><span style="color: hsl(120, 100%, 40%);">+ UNSUCCESSFUL OUTCOME Message-Status-Query-Failure</span><br><span style="color: hsl(120, 100%, 40%);">+ PROCEDURE CODE id-Message-Status-Query</span><br><span style="color: hsl(120, 100%, 40%);">+ CRITICALITY reject</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+reset SABP-ELEMENTARY-PROCEDURE ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ INITIATING MESSAGE Reset</span><br><span style="color: hsl(120, 100%, 40%);">+ SUCCESSFUL OUTCOME Reset-Complete</span><br><span style="color: hsl(120, 100%, 40%);">+ UNSUCCESSFUL OUTCOME Reset-Failure</span><br><span style="color: hsl(120, 100%, 40%);">+ PROCEDURE CODE id-Reset</span><br><span style="color: hsl(120, 100%, 40%);">+ CRITICALITY reject</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+restart-Indication SABP-ELEMENTARY-PROCEDURE ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ INITIATING MESSAGE Restart</span><br><span style="color: hsl(120, 100%, 40%);">+ PROCEDURE CODE id-Restart-Indication</span><br><span style="color: hsl(120, 100%, 40%);">+ CRITICALITY ignore</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+failure-Indication SABP-ELEMENTARY-PROCEDURE ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ INITIATING MESSAGE Failure</span><br><span style="color: hsl(120, 100%, 40%);">+ PROCEDURE CODE id-Failure-Indication</span><br><span style="color: hsl(120, 100%, 40%);">+ CRITICALITY ignore</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+error-Indication SABP-ELEMENTARY-PROCEDURE ::= {</span><br><span style="color: hsl(120, 100%, 40%);">+ INITIATING MESSAGE Error-Indication</span><br><span style="color: hsl(120, 100%, 40%);">+ PROCEDURE CODE id-Error-Indication</span><br><span style="color: hsl(120, 100%, 40%);">+ CRITICALITY ignore</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+END</span><br><span>diff --git a/library/sabp/SABP_Templates.ttcn b/library/sabp/SABP_Templates.ttcn</span><br><span>new file mode 100644</span><br><span>index 0000000..a5ed81d</span><br><span>--- /dev/null</span><br><span>+++ b/library/sabp/SABP_Templates.ttcn</span><br><span>@@ -0,0 +1,682 @@</span><br><span style="color: hsl(120, 100%, 40%);">+/* SABP Templates in TTCN-3</span><br><span style="color: hsl(120, 100%, 40%);">+ * (C) 2019 Harald Welte <laforge@gnumonks.org></span><br><span style="color: hsl(120, 100%, 40%);">+ * All rights reserved.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * Released under the terms of GNU General Public License, Version 2 or</span><br><span style="color: hsl(120, 100%, 40%);">+ * (at your option) any later version.</span><br><span style="color: hsl(120, 100%, 40%);">+ *</span><br><span style="color: hsl(120, 100%, 40%);">+ * SPDX-License-Identifier: GPL-2.0-or-later</span><br><span style="color: hsl(120, 100%, 40%);">+ */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+module SABP_Templates {</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+import from General_Types all;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+import from SABP_IEs all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from SABP_CommonDataTypes all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from SABP_Constants all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from SABP_Containers all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from SABP_PDU_Contents all;</span><br><span style="color: hsl(120, 100%, 40%);">+import from SABP_PDU_Descriptions all;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+template (value) Service_Area_Identifier ts_SabpSai(template (value) OCT3 plmn_id,</span><br><span style="color: hsl(120, 100%, 40%);">+                                               template (value) OCT2 lac,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                    template (value) OCT2 sac) := {</span><br><span style="color: hsl(120, 100%, 40%);">+   pLMNidentity := plmn_id,</span><br><span style="color: hsl(120, 100%, 40%);">+      lac := lac,</span><br><span style="color: hsl(120, 100%, 40%);">+   sac := sac</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* 9.1.3 WRITE REPLACE */</span><br><span style="color: hsl(120, 100%, 40%);">+template (value) SABP_PDU</span><br><span style="color: hsl(120, 100%, 40%);">+ts_SABP_Write(template (value) BIT16 msg_id, template (value) BIT16 ser_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+          template (value) Service_Areas_List sa_list, template (value) integer rep_per,</span><br><span style="color: hsl(120, 100%, 40%);">+        template (value) integer num_bcast, template (value) BIT8 dcs,</span><br><span style="color: hsl(120, 100%, 40%);">+        template (value) bitstring content) := {</span><br><span style="color: hsl(120, 100%, 40%);">+        initiatingMessage := {</span><br><span style="color: hsl(120, 100%, 40%);">+                procedureCode := id_Write_Replace,</span><br><span style="color: hsl(120, 100%, 40%);">+            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                value_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   Write_Replace := {</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolIEs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Message_Identifier,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Message_Identifier := msg_id }</span><br><span style="color: hsl(120, 100%, 40%);">+                                    }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_New_Serial_Number,</span><br><span style="color: hsl(120, 100%, 40%);">+                                            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { New_Serial_Number := ser_nr }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          /* Optional: Old Serial Number */</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Service_Areas_List,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Service_Areas_List := sa_list }</span><br><span style="color: hsl(120, 100%, 40%);">+                                   }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          /* Optional: Category */</span><br><span style="color: hsl(120, 100%, 40%);">+                                              id := SABP_Constants.id_Repetition_Period,</span><br><span style="color: hsl(120, 100%, 40%);">+                                            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Repetition_Period := rep_per }</span><br><span style="color: hsl(120, 100%, 40%);">+                                    }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_Number_of_Broadcasts_Requested,</span><br><span style="color: hsl(120, 100%, 40%);">+                                               criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Number_of_Broadcasts_Requested := num_bcast }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_Data_Coding_Scheme,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Data_Coding_Scheme := dcs }</span><br><span style="color: hsl(120, 100%, 40%);">+                                       }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_Broadcast_Message_Content,</span><br><span style="color: hsl(120, 100%, 40%);">+                                            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Broadcast_Message_Content := content }</span><br><span style="color: hsl(120, 100%, 40%);">+                                    }</span><br><span style="color: hsl(120, 100%, 40%);">+                             },</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolExtensions := omit</span><br><span style="color: hsl(120, 100%, 40%);">+                    }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+template (present) SABP_PDU</span><br><span style="color: hsl(120, 100%, 40%);">+tr_SABP_Write(template (present) BIT16 msg_id, template (present) BIT16 ser_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+          template (present) Service_Areas_List sa_list := ?, template (present) integer rep_per := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+          template (present) integer num_bcast := ?, template (present) BIT8 dcs := ?,</span><br><span style="color: hsl(120, 100%, 40%);">+          template (present) bitstring content := ?) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ initiatingMessage := {</span><br><span style="color: hsl(120, 100%, 40%);">+                procedureCode := id_Write_Replace,</span><br><span style="color: hsl(120, 100%, 40%);">+            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                value_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   Write_Replace := {</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolIEs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Message_Identifier,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Message_Identifier := msg_id }</span><br><span style="color: hsl(120, 100%, 40%);">+                                    }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_New_Serial_Number,</span><br><span style="color: hsl(120, 100%, 40%);">+                                            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { New_Serial_Number := ser_nr }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     }, *, /* Optional: Old Serial Number */</span><br><span style="color: hsl(120, 100%, 40%);">+                                       {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Service_Areas_List,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Service_Areas_List := sa_list }</span><br><span style="color: hsl(120, 100%, 40%);">+                                   }, * /* Optional: Category */,</span><br><span style="color: hsl(120, 100%, 40%);">+                                        {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Repetition_Period,</span><br><span style="color: hsl(120, 100%, 40%);">+                                            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Repetition_Period := rep_per }</span><br><span style="color: hsl(120, 100%, 40%);">+                                    }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_Number_of_Broadcasts_Requested,</span><br><span style="color: hsl(120, 100%, 40%);">+                                               criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Number_of_Broadcasts_Requested := num_bcast }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_Data_Coding_Scheme,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Data_Coding_Scheme := dcs }</span><br><span style="color: hsl(120, 100%, 40%);">+                                       }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_Broadcast_Message_Content,</span><br><span style="color: hsl(120, 100%, 40%);">+                                            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Broadcast_Message_Content := content }</span><br><span style="color: hsl(120, 100%, 40%);">+                                    }</span><br><span style="color: hsl(120, 100%, 40%);">+                             },</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolExtensions := *</span><br><span style="color: hsl(120, 100%, 40%);">+                       }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* 9.1.4 WRITE REPLACE COMPLETE */</span><br><span style="color: hsl(120, 100%, 40%);">+template (value) SABP_PDU</span><br><span style="color: hsl(120, 100%, 40%);">+ts_SABPWriteCompl(template (value) BIT16 msg_id, template (value) BIT16 ser_nr) := {</span><br><span style="color: hsl(120, 100%, 40%);">+   successfulOutcome := {</span><br><span style="color: hsl(120, 100%, 40%);">+                procedureCode := id_Write_Replace,</span><br><span style="color: hsl(120, 100%, 40%);">+            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                value_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   Write_Replace_Complete := {</span><br><span style="color: hsl(120, 100%, 40%);">+                           protocolIEs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Message_Identifier,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Message_Identifier := msg_id }</span><br><span style="color: hsl(120, 100%, 40%);">+                                    }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_New_Serial_Number,</span><br><span style="color: hsl(120, 100%, 40%);">+                                            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { New_Serial_Number := ser_nr }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     /* Optional: Number of Broadcasts Completed List */</span><br><span style="color: hsl(120, 100%, 40%);">+                                   /* Optional: Criticality-Diagnostics */</span><br><span style="color: hsl(120, 100%, 40%);">+                               },</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolExtensions := omit</span><br><span style="color: hsl(120, 100%, 40%);">+                    }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+template (present) SABP_PDU</span><br><span style="color: hsl(120, 100%, 40%);">+tr_SABP_WriteCompl(template (present) BIT16 msg_id, template (present) BIT16 ser_nr) := {</span><br><span style="color: hsl(120, 100%, 40%);">+  successfulOutcome := {</span><br><span style="color: hsl(120, 100%, 40%);">+                procedureCode := id_Write_Replace,</span><br><span style="color: hsl(120, 100%, 40%);">+            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                value_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   Write_Replace_Complete := {</span><br><span style="color: hsl(120, 100%, 40%);">+                           protocolIEs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Message_Identifier,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Message_Identifier := msg_id }</span><br><span style="color: hsl(120, 100%, 40%);">+                                    }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_New_Serial_Number,</span><br><span style="color: hsl(120, 100%, 40%);">+                                            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { New_Serial_Number := ser_nr }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     }, *</span><br><span style="color: hsl(120, 100%, 40%);">+                                  /* Optional: Number of Broadcasts Completed List */</span><br><span style="color: hsl(120, 100%, 40%);">+                                   /* Optional: Criticality-Diagnostics */</span><br><span style="color: hsl(120, 100%, 40%);">+                               },</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolExtensions := *</span><br><span style="color: hsl(120, 100%, 40%);">+                       }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* 9.1.5 WRITE REPLACE FAILURE */</span><br><span style="color: hsl(120, 100%, 40%);">+template (value) SABP_PDU</span><br><span style="color: hsl(120, 100%, 40%);">+ts_SABP_WriteFail(template (value) BIT16 msg_id, template (value) BIT16 ser_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+           template (value) Failure_List fail_list) := {</span><br><span style="color: hsl(120, 100%, 40%);">+       unsuccessfulOutcome := {</span><br><span style="color: hsl(120, 100%, 40%);">+              procedureCode := id_Write_Replace,</span><br><span style="color: hsl(120, 100%, 40%);">+            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                value_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   Write_Replace_Failure := {</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolIEs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Message_Identifier,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Message_Identifier := msg_id }</span><br><span style="color: hsl(120, 100%, 40%);">+                                    }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_New_Serial_Number,</span><br><span style="color: hsl(120, 100%, 40%);">+                                            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { New_Serial_Number := ser_nr }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_Failure_List,</span><br><span style="color: hsl(120, 100%, 40%);">+                                         criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Failure_List := fail_list }</span><br><span style="color: hsl(120, 100%, 40%);">+                                       }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     /* Optional: Number of Broadcasts Completed List */</span><br><span style="color: hsl(120, 100%, 40%);">+                                   /* Optional: Criticality-Diagnostics */</span><br><span style="color: hsl(120, 100%, 40%);">+                               },</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolExtensions := omit</span><br><span style="color: hsl(120, 100%, 40%);">+                    }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+template (present) SABP_PDU</span><br><span style="color: hsl(120, 100%, 40%);">+tr_SABP_WriteFail(template (present) BIT16 msg_id, template (present) BIT16 ser_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+                  template (present) Failure_List fail_list := ?) := {</span><br><span style="color: hsl(120, 100%, 40%);">+        unsuccessfulOutcome := {</span><br><span style="color: hsl(120, 100%, 40%);">+              procedureCode := id_Write_Replace,</span><br><span style="color: hsl(120, 100%, 40%);">+            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                value_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   Write_Replace_Failure := {</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolIEs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Message_Identifier,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Message_Identifier := msg_id }</span><br><span style="color: hsl(120, 100%, 40%);">+                                    }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_New_Serial_Number,</span><br><span style="color: hsl(120, 100%, 40%);">+                                            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { New_Serial_Number := ser_nr }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_Failure_List,</span><br><span style="color: hsl(120, 100%, 40%);">+                                         criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Failure_List := fail_list }</span><br><span style="color: hsl(120, 100%, 40%);">+                                       }, *</span><br><span style="color: hsl(120, 100%, 40%);">+                                  /* Optional: Number of Broadcasts Completed List */</span><br><span style="color: hsl(120, 100%, 40%);">+                                   /* Optional: Criticality-Diagnostics */</span><br><span style="color: hsl(120, 100%, 40%);">+                               },</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolExtensions := *</span><br><span style="color: hsl(120, 100%, 40%);">+                       }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* 9.1.6 KILL */</span><br><span style="color: hsl(120, 100%, 40%);">+template (value) SABP_PDU</span><br><span style="color: hsl(120, 100%, 40%);">+ts_SABP_Kill(template (value) BIT16 msg_id, template (value) BIT16 ser_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+            template (value) Service_Areas_List sa_list) := {</span><br><span style="color: hsl(120, 100%, 40%);">+        initiatingMessage := {</span><br><span style="color: hsl(120, 100%, 40%);">+                procedureCode := id_Kill,</span><br><span style="color: hsl(120, 100%, 40%);">+             criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                value_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   kill_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolIEs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Message_Identifier,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Message_Identifier := msg_id }</span><br><span style="color: hsl(120, 100%, 40%);">+                                    }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_Old_Serial_Number,</span><br><span style="color: hsl(120, 100%, 40%);">+                                            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Old_Serial_Number := ser_nr }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_Service_Areas_List,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Service_Areas_List := sa_list }</span><br><span style="color: hsl(120, 100%, 40%);">+                                   }</span><br><span style="color: hsl(120, 100%, 40%);">+                             },</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolExtensions := omit</span><br><span style="color: hsl(120, 100%, 40%);">+                    }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+template (present) SABP_PDU</span><br><span style="color: hsl(120, 100%, 40%);">+tr_SABP_Kill(template (present) BIT16 msg_id, template (present) BIT16 ser_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+          template (present) Service_Areas_List sa_list) := {</span><br><span style="color: hsl(120, 100%, 40%);">+      initiatingMessage := {</span><br><span style="color: hsl(120, 100%, 40%);">+                procedureCode := id_Kill,</span><br><span style="color: hsl(120, 100%, 40%);">+             criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                value_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   kill_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolIEs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Message_Identifier,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Message_Identifier := msg_id }</span><br><span style="color: hsl(120, 100%, 40%);">+                                    }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_Old_Serial_Number,</span><br><span style="color: hsl(120, 100%, 40%);">+                                            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Old_Serial_Number := ser_nr }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_Service_Areas_List,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Service_Areas_List := sa_list }</span><br><span style="color: hsl(120, 100%, 40%);">+                                   }</span><br><span style="color: hsl(120, 100%, 40%);">+                             },</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolExtensions := *</span><br><span style="color: hsl(120, 100%, 40%);">+                       }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* 9.1.7 KILL COMPLETE */</span><br><span style="color: hsl(120, 100%, 40%);">+template (value) SABP_PDU</span><br><span style="color: hsl(120, 100%, 40%);">+ts_SABP_KillCompl(template (value) BIT16 msg_id, template (value) BIT16 ser_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+           template (value) Number_of_Broadcasts_Completed_List num_bcast_compl) := {</span><br><span style="color: hsl(120, 100%, 40%);">+  successfulOutcome := {</span><br><span style="color: hsl(120, 100%, 40%);">+                procedureCode := id_Kill,</span><br><span style="color: hsl(120, 100%, 40%);">+             criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                value_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   Kill_Complete := {</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolIEs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Message_Identifier,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Message_Identifier := msg_id }</span><br><span style="color: hsl(120, 100%, 40%);">+                                    }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_Old_Serial_Number,</span><br><span style="color: hsl(120, 100%, 40%);">+                                            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Old_Serial_Number := ser_nr }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_Number_of_Broadcasts_Completed_List,</span><br><span style="color: hsl(120, 100%, 40%);">+                                          criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Number_of_Broadcasts_Completed_List := num_bcast_compl }</span><br><span style="color: hsl(120, 100%, 40%);">+                                  }</span><br><span style="color: hsl(120, 100%, 40%);">+                             },</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolExtensions := omit</span><br><span style="color: hsl(120, 100%, 40%);">+                    }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+template (present) SABP_PDU</span><br><span style="color: hsl(120, 100%, 40%);">+tr_SABP_KillCompl(template (present) BIT16 msg_id, template (present) BIT16 ser_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+                  template (present) Number_of_Broadcasts_Completed_List num_bcast_compl := ?) := {</span><br><span style="color: hsl(120, 100%, 40%);">+   successfulOutcome := {</span><br><span style="color: hsl(120, 100%, 40%);">+                procedureCode := id_Kill,</span><br><span style="color: hsl(120, 100%, 40%);">+             criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                value_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   Kill_Complete := {</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolIEs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Message_Identifier,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Message_Identifier := msg_id }</span><br><span style="color: hsl(120, 100%, 40%);">+                                    }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_Old_Serial_Number,</span><br><span style="color: hsl(120, 100%, 40%);">+                                            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Old_Serial_Number := ser_nr }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_Number_of_Broadcasts_Completed_List,</span><br><span style="color: hsl(120, 100%, 40%);">+                                          criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Number_of_Broadcasts_Completed_List := num_bcast_compl }</span><br><span style="color: hsl(120, 100%, 40%);">+                                  }, *</span><br><span style="color: hsl(120, 100%, 40%);">+                          },</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolExtensions := *</span><br><span style="color: hsl(120, 100%, 40%);">+                       }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* 9.1.7 KILL FAILURE */</span><br><span style="color: hsl(120, 100%, 40%);">+template (value) SABP_PDU</span><br><span style="color: hsl(120, 100%, 40%);">+ts_SABP_KillFail(template (value) BIT16 msg_id, template (value) BIT16 ser_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+          template (value) Failure_List fail_list) := {</span><br><span style="color: hsl(120, 100%, 40%);">+        unsuccessfulOutcome := {</span><br><span style="color: hsl(120, 100%, 40%);">+              procedureCode := id_Kill,</span><br><span style="color: hsl(120, 100%, 40%);">+             criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                value_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   Kill_Failure := {</span><br><span style="color: hsl(120, 100%, 40%);">+                             protocolIEs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Message_Identifier,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Message_Identifier := msg_id }</span><br><span style="color: hsl(120, 100%, 40%);">+                                    }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_Old_Serial_Number,</span><br><span style="color: hsl(120, 100%, 40%);">+                                            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Old_Serial_Number := ser_nr }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_Failure_List,</span><br><span style="color: hsl(120, 100%, 40%);">+                                         criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Failure_List := fail_list }</span><br><span style="color: hsl(120, 100%, 40%);">+                                       }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     /* Optional: Number-of-Broadcasts-Completed-List */</span><br><span style="color: hsl(120, 100%, 40%);">+                                   /* Optional: Criticality-Diagnostics */</span><br><span style="color: hsl(120, 100%, 40%);">+                               },</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolExtensions := omit</span><br><span style="color: hsl(120, 100%, 40%);">+                    }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+template (present) SABP_PDU</span><br><span style="color: hsl(120, 100%, 40%);">+tr_SABP_KillFail(template (present) BIT16 msg_id, template (present) BIT16 ser_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+          template (present) Failure_List fail_list := ?) := {</span><br><span style="color: hsl(120, 100%, 40%);">+ unsuccessfulOutcome := {</span><br><span style="color: hsl(120, 100%, 40%);">+              procedureCode := id_Kill,</span><br><span style="color: hsl(120, 100%, 40%);">+             criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                value_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   Kill_Failure := {</span><br><span style="color: hsl(120, 100%, 40%);">+                             protocolIEs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Message_Identifier,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Message_Identifier := msg_id }</span><br><span style="color: hsl(120, 100%, 40%);">+                                    }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_Old_Serial_Number,</span><br><span style="color: hsl(120, 100%, 40%);">+                                            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Old_Serial_Number := ser_nr }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_Failure_List,</span><br><span style="color: hsl(120, 100%, 40%);">+                                         criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Failure_List := fail_list }</span><br><span style="color: hsl(120, 100%, 40%);">+                                       }, *</span><br><span style="color: hsl(120, 100%, 40%);">+                                  /* Optional: Number-of-Broadcasts-Completed-List */</span><br><span style="color: hsl(120, 100%, 40%);">+                                   /* Optional: Criticality-Diagnostics */</span><br><span style="color: hsl(120, 100%, 40%);">+                               },</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolExtensions := *</span><br><span style="color: hsl(120, 100%, 40%);">+                       }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* TODO: Load Query + Complete + Failure */</span><br><span style="color: hsl(120, 100%, 40%);">+/* TODO: Message Status Query + Complete + Failure */</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* 9.1.15 RESET */</span><br><span style="color: hsl(120, 100%, 40%);">+template (value) SABP_PDU</span><br><span style="color: hsl(120, 100%, 40%);">+ts_SABP_Reset(template (value) Service_Areas_List sa_list) := {</span><br><span style="color: hsl(120, 100%, 40%);">+  initiatingMessage := {</span><br><span style="color: hsl(120, 100%, 40%);">+                procedureCode := id_Reset,</span><br><span style="color: hsl(120, 100%, 40%);">+            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                value_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   Reset := {</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolIEs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Service_Areas_List,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Service_Areas_List := sa_list }</span><br><span style="color: hsl(120, 100%, 40%);">+                                   }</span><br><span style="color: hsl(120, 100%, 40%);">+                             },</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolExtensions := omit</span><br><span style="color: hsl(120, 100%, 40%);">+                    }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+template (present) SABP_PDU</span><br><span style="color: hsl(120, 100%, 40%);">+tr_SABP_Reset(template (present) Service_Areas_List sa_list) := {</span><br><span style="color: hsl(120, 100%, 40%);">+  initiatingMessage := {</span><br><span style="color: hsl(120, 100%, 40%);">+                procedureCode := id_Reset,</span><br><span style="color: hsl(120, 100%, 40%);">+            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                value_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   Reset := {</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolIEs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Service_Areas_List,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Service_Areas_List := sa_list }</span><br><span style="color: hsl(120, 100%, 40%);">+                                   }</span><br><span style="color: hsl(120, 100%, 40%);">+                             },</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolExtensions := *</span><br><span style="color: hsl(120, 100%, 40%);">+                       }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* 9.1.16 RESET COMPLETE */</span><br><span style="color: hsl(120, 100%, 40%);">+template (value) SABP_PDU</span><br><span style="color: hsl(120, 100%, 40%);">+ts_SABP_ResetCompl(template (value) Service_Areas_List sa_list) := {</span><br><span style="color: hsl(120, 100%, 40%);">+        successfulOutcome := {</span><br><span style="color: hsl(120, 100%, 40%);">+                procedureCode := id_Reset,</span><br><span style="color: hsl(120, 100%, 40%);">+            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                value_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   Reset_Complete := {</span><br><span style="color: hsl(120, 100%, 40%);">+                           protocolIEs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Service_Areas_List,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Service_Areas_List := sa_list }</span><br><span style="color: hsl(120, 100%, 40%);">+                                   }</span><br><span style="color: hsl(120, 100%, 40%);">+                             },</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolExtensions := omit</span><br><span style="color: hsl(120, 100%, 40%);">+                    }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+template (present) SABP_PDU</span><br><span style="color: hsl(120, 100%, 40%);">+tr_SABP_ResetCompl(template (present) Service_Areas_List sa_list) := {</span><br><span style="color: hsl(120, 100%, 40%);">+     successfulOutcome := {</span><br><span style="color: hsl(120, 100%, 40%);">+                procedureCode := id_Reset,</span><br><span style="color: hsl(120, 100%, 40%);">+            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                value_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   Reset_Complete := {</span><br><span style="color: hsl(120, 100%, 40%);">+                           protocolIEs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Service_Areas_List,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Service_Areas_List := sa_list }</span><br><span style="color: hsl(120, 100%, 40%);">+                                   }, *</span><br><span style="color: hsl(120, 100%, 40%);">+                          },</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolExtensions := *</span><br><span style="color: hsl(120, 100%, 40%);">+                       }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* 9.1.17 RESET FAILURE */</span><br><span style="color: hsl(120, 100%, 40%);">+template (value) SABP_PDU</span><br><span style="color: hsl(120, 100%, 40%);">+ts_SABP_ResetFail(template (value) Failure_List f_list) := {</span><br><span style="color: hsl(120, 100%, 40%);">+   unsuccessfulOutcome := {</span><br><span style="color: hsl(120, 100%, 40%);">+              procedureCode := id_Reset,</span><br><span style="color: hsl(120, 100%, 40%);">+            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                value_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   Reset_Failure := {</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolIEs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Failure_List,</span><br><span style="color: hsl(120, 100%, 40%);">+                                         criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Failure_List := f_list }</span><br><span style="color: hsl(120, 100%, 40%);">+                                  }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     /* Optional: Service Area List */</span><br><span style="color: hsl(120, 100%, 40%);">+                             },</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolExtensions := omit</span><br><span style="color: hsl(120, 100%, 40%);">+                    }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+template (present) SABP_PDU</span><br><span style="color: hsl(120, 100%, 40%);">+tr_SABP_ResetFail(template (present) Failure_List f_list := ?) := {</span><br><span style="color: hsl(120, 100%, 40%);">+        unsuccessfulOutcome := {</span><br><span style="color: hsl(120, 100%, 40%);">+              procedureCode := id_Reset,</span><br><span style="color: hsl(120, 100%, 40%);">+            criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                value_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   Reset_Failure := {</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolIEs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Failure_List,</span><br><span style="color: hsl(120, 100%, 40%);">+                                         criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Failure_List := f_list }</span><br><span style="color: hsl(120, 100%, 40%);">+                                  }, *</span><br><span style="color: hsl(120, 100%, 40%);">+                                  /* Optional: Service Area List */</span><br><span style="color: hsl(120, 100%, 40%);">+                             },</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolExtensions := *</span><br><span style="color: hsl(120, 100%, 40%);">+                       }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* 9.1.18 RESTART (RNC->CN) */</span><br><span style="color: hsl(120, 100%, 40%);">+template (value) SABP_PDU</span><br><span style="color: hsl(120, 100%, 40%);">+ts_SABP_Restart(template (value) Service_Areas_List sa_list) := {</span><br><span style="color: hsl(120, 100%, 40%);">+       initiatingMessage := {</span><br><span style="color: hsl(120, 100%, 40%);">+                procedureCode := id_Restart_Indication,</span><br><span style="color: hsl(120, 100%, 40%);">+               criticality := ignore,</span><br><span style="color: hsl(120, 100%, 40%);">+                value_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   Restart := {</span><br><span style="color: hsl(120, 100%, 40%);">+                          protocolIEs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Service_Areas_List,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Service_Areas_List := sa_list }</span><br><span style="color: hsl(120, 100%, 40%);">+                                   }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     /* Optional: Recovery_Indication */</span><br><span style="color: hsl(120, 100%, 40%);">+                           },</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolExtensions := omit</span><br><span style="color: hsl(120, 100%, 40%);">+                    }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+template (present) SABP_PDU</span><br><span style="color: hsl(120, 100%, 40%);">+tr_SABP_Restart(template (present) Service_Areas_List sa_list) := {</span><br><span style="color: hsl(120, 100%, 40%);">+        initiatingMessage := {</span><br><span style="color: hsl(120, 100%, 40%);">+                procedureCode := id_Restart_Indication,</span><br><span style="color: hsl(120, 100%, 40%);">+               criticality := ignore,</span><br><span style="color: hsl(120, 100%, 40%);">+                value_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   Restart := {</span><br><span style="color: hsl(120, 100%, 40%);">+                          protocolIEs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Service_Areas_List,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := reject,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Service_Areas_List := sa_list }</span><br><span style="color: hsl(120, 100%, 40%);">+                                   }, *</span><br><span style="color: hsl(120, 100%, 40%);">+                                  /* Optional: Recovery_Indication */</span><br><span style="color: hsl(120, 100%, 40%);">+                           },</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolExtensions := *</span><br><span style="color: hsl(120, 100%, 40%);">+                       }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* 9.1.19 FAILURE (RNC->CN) */</span><br><span style="color: hsl(120, 100%, 40%);">+template (value) SABP_PDU</span><br><span style="color: hsl(120, 100%, 40%);">+ts_SABP_Failure(template (value) Service_Areas_List sa_list) := {</span><br><span style="color: hsl(120, 100%, 40%);">+       initiatingMessage := {</span><br><span style="color: hsl(120, 100%, 40%);">+                procedureCode := id_Failure_Indication,</span><br><span style="color: hsl(120, 100%, 40%);">+               criticality := ignore,</span><br><span style="color: hsl(120, 100%, 40%);">+                value_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   Failure := {</span><br><span style="color: hsl(120, 100%, 40%);">+                          protocolIEs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Service_Areas_List,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := ignore,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Service_Areas_List := sa_list }</span><br><span style="color: hsl(120, 100%, 40%);">+                                   }</span><br><span style="color: hsl(120, 100%, 40%);">+                             },</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolExtensions := omit</span><br><span style="color: hsl(120, 100%, 40%);">+                    }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+template (present) SABP_PDU</span><br><span style="color: hsl(120, 100%, 40%);">+tr_SABP_Failure(template (present) Service_Areas_List sa_list) := {</span><br><span style="color: hsl(120, 100%, 40%);">+        initiatingMessage := {</span><br><span style="color: hsl(120, 100%, 40%);">+                procedureCode := id_Failure_Indication,</span><br><span style="color: hsl(120, 100%, 40%);">+               criticality := ignore,</span><br><span style="color: hsl(120, 100%, 40%);">+                value_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   Failure := {</span><br><span style="color: hsl(120, 100%, 40%);">+                          protocolIEs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Service_Areas_List,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := ignore,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Service_Areas_List := sa_list }</span><br><span style="color: hsl(120, 100%, 40%);">+                                   }</span><br><span style="color: hsl(120, 100%, 40%);">+                             },</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolExtensions := *</span><br><span style="color: hsl(120, 100%, 40%);">+                       }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+/* 9.1.20 ERROR INDICATION (RNC->CN) */</span><br><span style="color: hsl(120, 100%, 40%);">+template (value) SABP_PDU</span><br><span style="color: hsl(120, 100%, 40%);">+ts_SABP_ErrorInd(template (value) BIT16 msg_id, template (value) BIT16 ser_nr,</span><br><span style="color: hsl(120, 100%, 40%);">+          template (value) Cause cause) := {</span><br><span style="color: hsl(120, 100%, 40%);">+   initiatingMessage := {</span><br><span style="color: hsl(120, 100%, 40%);">+                procedureCode := id_Error_Indication,</span><br><span style="color: hsl(120, 100%, 40%);">+         criticality := ignore,</span><br><span style="color: hsl(120, 100%, 40%);">+                value_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   Error_Indication := {</span><br><span style="color: hsl(120, 100%, 40%);">+                         protocolIEs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      {</span><br><span style="color: hsl(120, 100%, 40%);">+                                             id := SABP_Constants.id_Message_Identifier,</span><br><span style="color: hsl(120, 100%, 40%);">+                                           criticality := ignore,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Message_Identifier := msg_id }</span><br><span style="color: hsl(120, 100%, 40%);">+                                    }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_Serial_Number,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                criticality := ignore,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ := { Serial_Number := ser_nr }</span><br><span style="color: hsl(120, 100%, 40%);">+                                 }, {</span><br><span style="color: hsl(120, 100%, 40%);">+                                          id := SABP_Constants.id_Cause,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                criticality := ignore,</span><br><span style="color: hsl(120, 100%, 40%);">+                                                value_ :={ Cause := cause }</span><br><span style="color: hsl(120, 100%, 40%);">+                                   }</span><br><span style="color: hsl(120, 100%, 40%);">+                                     /* Optional: Criticality-Diagnostics */</span><br><span style="color: hsl(120, 100%, 40%);">+                               },</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolExtensions := omit</span><br><span style="color: hsl(120, 100%, 40%);">+                    }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+template (present) SABP_PDU</span><br><span style="color: hsl(120, 100%, 40%);">+tr_SABP_ErrorInd := {</span><br><span style="color: hsl(120, 100%, 40%);">+      initiatingMessage := {</span><br><span style="color: hsl(120, 100%, 40%);">+                procedureCode := id_Error_Indication,</span><br><span style="color: hsl(120, 100%, 40%);">+         criticality := ignore,</span><br><span style="color: hsl(120, 100%, 40%);">+                value_ := {</span><br><span style="color: hsl(120, 100%, 40%);">+                   Error_Indication := {</span><br><span style="color: hsl(120, 100%, 40%);">+                         protocolIEs := {</span><br><span style="color: hsl(120, 100%, 40%);">+                                      *</span><br><span style="color: hsl(120, 100%, 40%);">+                                     /* Optional: Message-Identifier */</span><br><span style="color: hsl(120, 100%, 40%);">+                                    /* Optional: Serial-Number */</span><br><span style="color: hsl(120, 100%, 40%);">+                                 /* Optional: Cause */</span><br><span style="color: hsl(120, 100%, 40%);">+                                 /* Optional: Criticality-Diagnostics */</span><br><span style="color: hsl(120, 100%, 40%);">+                               },</span><br><span style="color: hsl(120, 100%, 40%);">+                            protocolExtensions := *</span><br><span style="color: hsl(120, 100%, 40%);">+                       }</span><br><span style="color: hsl(120, 100%, 40%);">+             }</span><br><span style="color: hsl(120, 100%, 40%);">+     }</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span>diff --git a/library/sabp/SABP_Types.ttcn b/library/sabp/SABP_Types.ttcn</span><br><span>new file mode 100644</span><br><span>index 0000000..df86549</span><br><span>--- /dev/null</span><br><span>+++ b/library/sabp/SABP_Types.ttcn</span><br><span>@@ -0,0 +1,7 @@</span><br><span style="color: hsl(120, 100%, 40%);">+module SABP_Types {</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      import from SABP_PDU_Descriptions language "ASN.1:1997" all;</span><br><span style="color: hsl(120, 100%, 40%);">+</span><br><span style="color: hsl(120, 100%, 40%);">+      external function enc_SABP_PDU(in SABP_PDU pdu) return octetstring;</span><br><span style="color: hsl(120, 100%, 40%);">+   external function dec_SABP_PDU(in octetstring stream) return SABP_PDU;</span><br><span style="color: hsl(120, 100%, 40%);">+}</span><br><span></span><br></pre><p>To view, visit <a href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15589">change 15589</a>. To unsubscribe, or for help writing mail filters, visit <a href="https://gerrit.osmocom.org/settings">settings</a>.</p><div itemscope itemtype="http://schema.org/EmailMessage"><div itemscope itemprop="action" itemtype="http://schema.org/ViewAction"><link itemprop="url" href="https://gerrit.osmocom.org/c/osmo-ttcn3-hacks/+/15589"/><meta itemprop="name" content="View Change"/></div></div>

<div style="display:none"> Gerrit-Project: osmo-ttcn3-hacks </div>
<div style="display:none"> Gerrit-Branch: master </div>
<div style="display:none"> Gerrit-Change-Id: Iab44cca10a664bbe2823a4183bca055ac8851137 </div>
<div style="display:none"> Gerrit-Change-Number: 15589 </div>
<div style="display:none"> Gerrit-PatchSet: 1 </div>
<div style="display:none"> Gerrit-Owner: laforge <laforge@gnumonks.org> </div>
<div style="display:none"> Gerrit-MessageType: newchange </div>