Support for SBc-AP protocol as used on the MME-CBC interface
This requires a recent libfftranscode with SBC_AP support. Change-Id: Iaec096e3278ad4e646dce10a625622b195ed0f55
This commit is contained in:
parent
5960093767
commit
c679d6aed0
|
@ -0,0 +1,82 @@
|
|||
module SBC_AP_CodecPort {
|
||||
|
||||
/* Simple SBC AP Codec Port, translating between raw SCTP primitives with
|
||||
* octetstring payload towards the IPL4asp provider, and SBC-AP primitives
|
||||
* which carry the decoded SBC-AP data types as payload.
|
||||
*
|
||||
* (C) 2019 by Harald Welte <laforge@gnumonks.org>
|
||||
* All rights reserved.
|
||||
*
|
||||
* Released under the terms of GNU General Public License, Version 2 or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* SPDX-License-Identifier: GPL-2.0-or-later
|
||||
*/
|
||||
|
||||
import from IPL4asp_PortType all;
|
||||
import from IPL4asp_Types all;
|
||||
import from SBC_AP_PDU_Descriptions all;
|
||||
import from SBC_AP_Types all;
|
||||
|
||||
type record SBC_AP_RecvFrom {
|
||||
ConnectionId connId,
|
||||
HostName remName,
|
||||
PortNumber remPort,
|
||||
HostName locName,
|
||||
PortNumber locPort,
|
||||
SBC_AP_PDU msg
|
||||
};
|
||||
|
||||
template SBC_AP_RecvFrom t_SBC_AP_RecvFrom(template SBC_AP_PDU msg) := {
|
||||
connId := ?,
|
||||
remName := ?,
|
||||
remPort := ?,
|
||||
locName := ?,
|
||||
locPort := ?,
|
||||
msg := msg
|
||||
}
|
||||
|
||||
type record SBC_AP_Send {
|
||||
ConnectionId connId,
|
||||
SBC_AP_PDU msg
|
||||
}
|
||||
|
||||
template SBC_AP_Send t_SBC_AP_Send(template ConnectionId connId, template SBC_AP_PDU msg) := {
|
||||
connId := connId,
|
||||
msg := msg
|
||||
}
|
||||
|
||||
private function IPL4_to_SBC_AP_RecvFrom(in ASP_RecvFrom pin, out SBC_AP_RecvFrom pout) {
|
||||
pout.connId := pin.connId;
|
||||
pout.remName := pin.remName;
|
||||
pout.remPort := pin.remPort;
|
||||
pout.locName := pin.locName;
|
||||
pout.locPort := pin.locPort;
|
||||
pout.msg := dec_SBC_AP_PDU(pin.msg);
|
||||
} with { extension "prototype(fast)" };
|
||||
|
||||
private function SBC_AP_to_IPL4_Send(in SBC_AP_Send pin, out ASP_Send pout) {
|
||||
pout.connId := pin.connId;
|
||||
pout.proto := {
|
||||
sctp := {
|
||||
sinfo_stream := omit,
|
||||
sinfo_ppid := 18,
|
||||
remSocks := omit,
|
||||
assocId := omit
|
||||
}
|
||||
};
|
||||
pout.msg := enc_SBC_AP_PDU(pin.msg);
|
||||
} with { extension "prototype(fast)" };
|
||||
|
||||
type port SBC_AP_CODEC_PT message {
|
||||
out SBC_AP_Send;
|
||||
in SBC_AP_RecvFrom,
|
||||
ASP_ConnId_ReadyToRelease,
|
||||
ASP_Event;
|
||||
} with { extension "user IPL4asp_PT
|
||||
out(SBC_AP_Send -> ASP_Send:function(SBC_AP_to_IPL4_Send))
|
||||
in(ASP_RecvFrom -> SBC_AP_RecvFrom: function(IPL4_to_SBC_AP_RecvFrom);
|
||||
ASP_ConnId_ReadyToRelease -> ASP_ConnId_ReadyToRelease: simple;
|
||||
ASP_Event -> ASP_Event: simple)"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,44 @@
|
|||
module SBC_AP_CodecPort_CtrlFunct {
|
||||
|
||||
import from SBC_AP_CodecPort all;
|
||||
import from IPL4asp_Types all;
|
||||
|
||||
external function f_IPL4_listen(
|
||||
inout SBC_AP_CODEC_PT portRef,
|
||||
in HostName locName,
|
||||
in PortNumber locPort,
|
||||
in ProtoTuple proto,
|
||||
in OptionList options := {}
|
||||
) return Result;
|
||||
|
||||
external function f_IPL4_connect(
|
||||
inout SBC_AP_CODEC_PT portRef,
|
||||
in HostName remName,
|
||||
in PortNumber remPort,
|
||||
in HostName locName,
|
||||
in PortNumber locPort,
|
||||
in ConnectionId connId,
|
||||
in ProtoTuple proto,
|
||||
in OptionList options := {}
|
||||
) return Result;
|
||||
|
||||
external function f_IPL4_close(
|
||||
inout SBC_AP_CODEC_PT portRef,
|
||||
in ConnectionId id,
|
||||
in ProtoTuple proto := { unspecified := {} }
|
||||
) return Result;
|
||||
|
||||
external function f_IPL4_setUserData(
|
||||
inout SBC_AP_CODEC_PT portRef,
|
||||
in ConnectionId id,
|
||||
in UserData userData
|
||||
) return Result;
|
||||
|
||||
external function f_IPL4_getUserData(
|
||||
inout SBC_AP_CODEC_PT portRef,
|
||||
in ConnectionId id,
|
||||
out UserData userData
|
||||
) return Result;
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,56 @@
|
|||
#include "IPL4asp_PortType.hh"
|
||||
#include "SBC_AP_CodecPort.hh"
|
||||
#include "IPL4asp_PT.hh"
|
||||
|
||||
namespace SBC__AP__CodecPort__CtrlFunct {
|
||||
|
||||
IPL4asp__Types::Result f__IPL4__listen(
|
||||
SBC__AP__CodecPort::SBC__AP__CODEC__PT& portRef,
|
||||
const IPL4asp__Types::HostName& locName,
|
||||
const IPL4asp__Types::PortNumber& locPort,
|
||||
const IPL4asp__Types::ProtoTuple& proto,
|
||||
const IPL4asp__Types::OptionList& options)
|
||||
{
|
||||
return f__IPL4__PROVIDER__listen(portRef, locName, locPort, proto, options);
|
||||
}
|
||||
|
||||
IPL4asp__Types::Result f__IPL4__connect(
|
||||
SBC__AP__CodecPort::SBC__AP__CODEC__PT& portRef,
|
||||
const IPL4asp__Types::HostName& remName,
|
||||
const IPL4asp__Types::PortNumber& remPort,
|
||||
const IPL4asp__Types::HostName& locName,
|
||||
const IPL4asp__Types::PortNumber& locPort,
|
||||
const IPL4asp__Types::ConnectionId& connId,
|
||||
const IPL4asp__Types::ProtoTuple& proto,
|
||||
const IPL4asp__Types::OptionList& options)
|
||||
{
|
||||
return f__IPL4__PROVIDER__connect(portRef, remName, remPort,
|
||||
locName, locPort, connId, proto, options);
|
||||
}
|
||||
|
||||
IPL4asp__Types::Result f__IPL4__close(
|
||||
SBC__AP__CodecPort::SBC__AP__CODEC__PT& portRef,
|
||||
const IPL4asp__Types::ConnectionId& connId,
|
||||
const IPL4asp__Types::ProtoTuple& proto)
|
||||
{
|
||||
return f__IPL4__PROVIDER__close(portRef, connId, proto);
|
||||
}
|
||||
|
||||
IPL4asp__Types::Result f__IPL4__setUserData(
|
||||
SBC__AP__CodecPort::SBC__AP__CODEC__PT& portRef,
|
||||
const IPL4asp__Types::ConnectionId& connId,
|
||||
const IPL4asp__Types::UserData& userData)
|
||||
{
|
||||
return f__IPL4__PROVIDER__setUserData(portRef, connId, userData);
|
||||
}
|
||||
|
||||
IPL4asp__Types::Result f__IPL4__getUserData(
|
||||
SBC__AP__CodecPort::SBC__AP__CODEC__PT& portRef,
|
||||
const IPL4asp__Types::ConnectionId& connId,
|
||||
IPL4asp__Types::UserData& userData)
|
||||
{
|
||||
return f__IPL4__PROVIDER__getUserData(portRef, connId, userData);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -0,0 +1,116 @@
|
|||
module SBC_AP_Templates {
|
||||
|
||||
import from General_Types all;
|
||||
import from Osmocom_Types all;
|
||||
|
||||
import from SBC_AP_IEs all;
|
||||
import from SBC_AP_Constants all;
|
||||
import from SBC_AP_PDU_Contents all;
|
||||
import from SBC_AP_PDU_Descriptions all;
|
||||
|
||||
template (value) SBC_AP_PDU
|
||||
ts_SBCAP_WRITE_WARNING(template (value) BIT16 p_msg_id, template (value) BIT16 p_ser_nr,
|
||||
template (value) uint12_t p_rep_per, template (value) uint16_t p_num_bcast,
|
||||
template (value) OCT2 p_w_type, OCT1 p_dcs,
|
||||
template (value) octetstring p_msg_content) := {
|
||||
initiatingMessage := {
|
||||
procedureCode := id_Write_Replace_Warning,
|
||||
criticality := reject,
|
||||
value_ := {
|
||||
write_Replace_Warning_Request := {
|
||||
protocolIEs := {
|
||||
{
|
||||
id := SBC_AP_Constants.id_Message_Identifier,
|
||||
criticality := reject,
|
||||
value_ := { Message_Identifier := p_msg_id }
|
||||
}, {
|
||||
id := SBC_AP_Constants.id_Serial_Number,
|
||||
criticality := reject,
|
||||
value_ := { Serial_Number := p_ser_nr }
|
||||
/* List of TAIs */
|
||||
/* Warning Area List */
|
||||
}, {
|
||||
id := SBC_AP_Constants.id_Repetition_Period,
|
||||
criticality := reject,
|
||||
value_ := { Repetition_Period := p_rep_per }
|
||||
/* Extended Repetition Period */
|
||||
}, {
|
||||
id := SBC_AP_Constants.id_Number_of_Broadcasts_Requested,
|
||||
criticality := reject,
|
||||
value_ := { Number_of_Broadcasts_Requested := p_num_bcast }
|
||||
}, {
|
||||
id := SBC_AP_Constants.id_Warning_Type,
|
||||
criticality := ignore,
|
||||
value_ := { Warning_Type := p_w_type }
|
||||
}, {
|
||||
/* Warning Security Info */
|
||||
/* Data Coding Scheme */
|
||||
id := SBC_AP_Constants.id_Data_Coding_Scheme,
|
||||
criticality := ignore,
|
||||
value_ := { Data_Coding_Scheme := oct2bit(p_dcs) }
|
||||
}, {
|
||||
/* Warning Message Content */
|
||||
id := SBC_AP_Constants.id_Warning_Message_Content,
|
||||
criticality := ignore,
|
||||
value_ := { Warning_Message_Content := p_msg_content }
|
||||
}
|
||||
/* OMC ID */
|
||||
/* Concurrent Warning Message Indicator */
|
||||
/* Send Write Replace Warning Indication */
|
||||
/* Global eNB ID */
|
||||
/* Warning Area Coordinates */
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
template (present) SBC_AP_PDU
|
||||
tr_SBCAP_WRITE_WARNING(template (present) BIT16 p_msg_id, template (present) BIT16 p_ser_nr,
|
||||
template (present) uint12_t p_rep_per,
|
||||
template (present) uint16_t p_num_bcast) := {
|
||||
initiatingMessage := {
|
||||
procedureCode := id_Write_Replace_Warning,
|
||||
criticality := reject,
|
||||
value_ := {
|
||||
write_Replace_Warning_Request := {
|
||||
protocolIEs := {
|
||||
{
|
||||
id := SBC_AP_Constants.id_Message_Identifier,
|
||||
criticality := reject,
|
||||
value_ := { Message_Identifier := p_msg_id }
|
||||
}, {
|
||||
id := SBC_AP_Constants.id_Serial_Number,
|
||||
criticality := reject,
|
||||
value_ := { Serial_Number := p_ser_nr }
|
||||
/* List of TAIs */
|
||||
/* Warning Area List */
|
||||
}, {
|
||||
id := SBC_AP_Constants.id_Repetition_Period,
|
||||
criticality := reject,
|
||||
value_ := { Repetition_Period := p_rep_per }
|
||||
/* Extended Repetition Period */
|
||||
}, {
|
||||
id := SBC_AP_Constants.id_Number_of_Broadcasts_Requested,
|
||||
criticality := reject,
|
||||
value_ := { Number_of_Broadcasts_Requested := p_num_bcast }
|
||||
}
|
||||
/* Warning Type */
|
||||
/* Warning Security Info */
|
||||
/* Data Coding Scheme */
|
||||
/* Warning Message Content */
|
||||
/* OMC ID */
|
||||
/* Concurrent Warning Message Indicator */
|
||||
/* Send Write Replace Warning Indication */
|
||||
/* Global eNB ID */
|
||||
/* Warning Area Coordinates */
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,35 @@
|
|||
-- SBC-AP-CommonDataTypes.asn
|
||||
--
|
||||
-- Taken from 3GPP TS 29.168 V15.1.0 (2018-09)
|
||||
-- http://www.3gpp.org/ftp/Specs/archive/29_series/29.168/29168-930.zip
|
||||
--
|
||||
-- 4.4.6 Common Definitions
|
||||
--
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Common definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
SBC-AP-CommonDataTypes {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) sbc-AP (3) version1 (1) sbc-AP-CommonDataTypes (3)}
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
Criticality ::= ENUMERATED { reject, ignore, notify }
|
||||
|
||||
Presence ::= ENUMERATED { optional, conditional, mandatory }
|
||||
|
||||
ProcedureCode ::= INTEGER (0..255)
|
||||
|
||||
ProtocolExtensionID ::= INTEGER (0..65535)
|
||||
|
||||
ProtocolIE-ID ::= INTEGER (0..65535)
|
||||
|
||||
TriggeringMessage ::= ENUMERATED {initiating-message, successful-outcome, unsuccessful-outcome, outcome}
|
||||
|
||||
END
|
|
@ -0,0 +1,127 @@
|
|||
-- SBC-AP-Constants.asn
|
||||
--
|
||||
-- Taken from 3GPP TS 29.168 V15.1.0 (2018-09)
|
||||
-- http://www.3gpp.org/ftp/Specs/archive/29_series/29.168/29168-930.zip
|
||||
--
|
||||
-- 4.4.7 Constant Definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Constant definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
SBC-AP-Constants {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) sbc-AP (3) version1 (1) sbc-AP-Constants (4)}
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Elementary Procedures
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
id-Write-Replace-Warning INTEGER ::= 0
|
||||
id-Stop-Warning INTEGER ::= 1
|
||||
id-Error-Indication INTEGER ::= 2
|
||||
id-Write-Replace-Warning-Indication INTEGER ::= 3
|
||||
id-Stop-Warning-Indication INTEGER ::= 4
|
||||
id-PWS-Restart-Indication INTEGER ::= 5
|
||||
id-PWS-Failure-Indication INTEGER ::= 6
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
id-Broadcast-Message-Content INTEGER ::= 0
|
||||
id-Cause INTEGER ::= 1
|
||||
id-Criticality-Diagnostics INTEGER ::=2
|
||||
id-Data-Coding-Scheme INTEGER ::= 3
|
||||
id-Failure-List INTEGER ::= 4
|
||||
id-Message-Identifier INTEGER ::= 5
|
||||
id-Number-of-Broadcasts-Completed-List INTEGER ::= 6
|
||||
id-Number-of-Broadcasts-Requested INTEGER ::= 7
|
||||
id-Radio-Resource-Loading-List INTEGER ::= 8
|
||||
id-Recovery-Indication INTEGER ::= 9
|
||||
id-Repetition-Period INTEGER ::= 10
|
||||
id-Serial-Number INTEGER ::= 11
|
||||
id-Service-Areas-List INTEGER ::= 12
|
||||
id-TypeOfError INTEGER ::= 13
|
||||
id-List-of-TAIs INTEGER ::= 14
|
||||
id-Warning-Area-List INTEGER ::= 15
|
||||
id-Warning-Message-Content INTEGER ::= 16
|
||||
id-Warning-Security-Information INTEGER ::= 17
|
||||
id-Warning-Type INTEGER ::= 18
|
||||
id-Omc-Id INTEGER ::= 19
|
||||
id-Concurrent-Warning-Message-Indicator INTEGER ::= 20
|
||||
id-Extended-Repetition-Period INTEGER ::= 21
|
||||
id-Unknown-Tracking-Area-List INTEGER ::= 22
|
||||
id-Broadcast-Scheduled-Area-List INTEGER ::= 23
|
||||
id-Send-Write-Replace-Warning-Indication INTEGER ::= 24
|
||||
id-Broadcast-Cancelled-Area-List INTEGER ::= 25
|
||||
id-Send-Stop-Warning-Indication INTEGER ::= 26
|
||||
id-Stop-All-Indicator INTEGER ::= 27
|
||||
id-Global-ENB-ID INTEGER ::= 28
|
||||
id-Broadcast-Empty-Area-List INTEGER ::= 29
|
||||
id-Restarted-Cell-List INTEGER ::= 30
|
||||
id-List-of-TAIs-Restart INTEGER ::= 31
|
||||
id-List-of-EAIs-Restart INTEGER ::= 32
|
||||
id-Failed-Cell-List INTEGER ::= 33
|
||||
id-List-of-5GS-TAIs INTEGER ::= 34
|
||||
id-Warning-Area-List-5GS INTEGER ::= 35
|
||||
id-Global-RAN-Node-ID INTEGER ::= 36
|
||||
id-Global-GNB-ID INTEGER ::= 37
|
||||
id-RAT-Selector-5GS INTEGER ::= 38
|
||||
id-Unknown-5GS-Tracking-Area-List INTEGER ::= 39
|
||||
id-Broadcast-Scheduled-Area-List-5GS INTEGER ::= 40
|
||||
id-Broadcast-Cancelled-Area-List-5GS INTEGER ::= 41
|
||||
id-Broadcast-Empty-Area-List-5GS INTEGER ::= 42
|
||||
id-Restarted-Cell-List-NR INTEGER ::= 43
|
||||
id-Failed-Cell-List-NR INTEGER ::= 44
|
||||
id-List-of-5GS-TAI-for-Restart INTEGER ::= 45
|
||||
id-Warning-Area-Coordinates INTEGER ::= 46
|
||||
|
||||
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Extension constants
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Lists
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
maxNrOfErrors INTEGER ::= 256
|
||||
maxnoofCellID INTEGER ::= 65535
|
||||
maxnoofCellinEAI INTEGER ::= 65535
|
||||
maxnoofCellinTAI INTEGER ::= 65535
|
||||
maxNrOfTAIs INTEGER ::= 65535
|
||||
maxnoofEmergencyAreaID INTEGER ::= 65535
|
||||
maxnoofTAIforWarning INTEGER ::= 65535
|
||||
|
||||
maxProtocolExtensions INTEGER ::= 65535
|
||||
maxProtocolIEs INTEGER ::= 65535
|
||||
maxnoofeNBIds INTEGER ::= 256
|
||||
maxnoofRestartedCells INTEGER ::= 256
|
||||
maxnoofRestartTAIs INTEGER ::= 2048
|
||||
maxnoofRestartEAIs INTEGER ::= 256
|
||||
maxnoofFailedCells INTEGER ::= 256
|
||||
maxnoof5GSTAIs INTEGER ::= 2048
|
||||
maxnoofCellsingNB INTEGER ::= 16384
|
||||
maxnoofCellsin5GS INTEGER ::= 16776960
|
||||
maxnoofCellsin5GSTAI INTEGER ::= 65535
|
||||
maxnoofRANNodes INTEGER ::= 65535
|
||||
maxnoofRestart5GSTAIs INTEGER ::= 2048maxnoofCellsforRestartNR INTEGER ::= 16384
|
||||
|
||||
|
||||
END
|
|
@ -0,0 +1,121 @@
|
|||
-- SBC-AP-Containers.asn
|
||||
--
|
||||
-- Taken from 3GPP TS 29.168 V15.1.0 (2018-09)
|
||||
-- http://www.3gpp.org/ftp/Specs/archive/29_series/29.168/29168-930.zip
|
||||
--
|
||||
-- 4.4.8 Container Definitions
|
||||
--
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
SBC-AP-Containers {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) sbc-AP (3) version1 (1) sbc-AP-Containers (5)}
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IE parameter types from other modules.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
IMPORTS
|
||||
Criticality,
|
||||
Presence,
|
||||
ProtocolExtensionID,
|
||||
ProtocolIE-ID
|
||||
FROM SBC-AP-CommonDataTypes
|
||||
|
||||
maxProtocolExtensions,
|
||||
maxProtocolIEs
|
||||
FROM SBC-AP-Constants;
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Class Definition for Protocol IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
SBC-AP-PROTOCOL-IES ::= CLASS {
|
||||
&id ProtocolIE-ID UNIQUE,
|
||||
&criticality Criticality DEFAULT ignore,
|
||||
&Value,
|
||||
&presence Presence
|
||||
}
|
||||
WITH SYNTAX {
|
||||
ID &id
|
||||
CRITICALITY &criticality
|
||||
TYPE &Value
|
||||
PRESENCE &presence
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Class Definition for Protocol Extensions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
SBC-AP-PROTOCOL-EXTENSION ::= CLASS {
|
||||
&id ProtocolExtensionID UNIQUE,
|
||||
&criticality Criticality DEFAULT ignore,
|
||||
&Extension,
|
||||
&presence Presence
|
||||
}
|
||||
WITH SYNTAX {
|
||||
ID &id
|
||||
CRITICALITY &criticality
|
||||
EXTENSION &Extension
|
||||
PRESENCE &presence
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container for Protocol IEs
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ProtocolIE-Container {SBC-AP-PROTOCOL-IES : IEsSetParam} ::=
|
||||
SEQUENCE (SIZE (0..maxProtocolIEs)) OF
|
||||
ProtocolIE-Field {{IEsSetParam}}
|
||||
|
||||
ProtocolIE-Field {SBC-AP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
|
||||
id SBC-AP-PROTOCOL-IES.&id ({IEsSetParam}),
|
||||
criticality SBC-AP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
|
||||
value SBC-AP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container Lists for Protocol IE Containers
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, SBC-AP-PROTOCOL-IES : IEsSetParam} ::=
|
||||
SEQUENCE (SIZE (lowerBound..upperBound)) OF
|
||||
ProtocolIE-Container {{IEsSetParam}}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Container for Protocol Extensions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
ProtocolExtensionContainer {SBC-AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
|
||||
SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
|
||||
ProtocolExtensionField {{ExtensionSetParam}}
|
||||
|
||||
ProtocolExtensionField {SBC-AP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
|
||||
id SBC-AP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
|
||||
criticality SBC-AP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
|
||||
extensionValue SBC-AP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
|
||||
}
|
||||
|
||||
|
||||
END
|
|
@ -0,0 +1,64 @@
|
|||
|
||||
#include <string.h>
|
||||
#include <stdarg.h>
|
||||
#include "SBC_AP_PDU_Descriptions.hh"
|
||||
|
||||
extern "C" {
|
||||
#include <fftranscode/transcode.h>
|
||||
}
|
||||
|
||||
namespace SBC_AP__Types {
|
||||
|
||||
TTCN_Module SBC_AP__EncDec("SBC_AP_EncDec", __DATE__, __TIME__);
|
||||
|
||||
OCTETSTRING enc__SBC_AP__PDU(const SBC_AP__PDU__Descriptions::SBC_AP__PDU &pdu)
|
||||
{
|
||||
uint8_t *aper_buf;
|
||||
int aper_buf_len;
|
||||
TTCN_Buffer TTCN_buf;
|
||||
TTCN_buf.clear();
|
||||
|
||||
/* Encode from abstract data type into BER/DER */
|
||||
pdu.encode(SBC_AP__PDU__Descriptions::SBC_AP__PDU_descr_, TTCN_buf,
|
||||
TTCN_EncDec::CT_BER, BER_ENCODE_DER);
|
||||
|
||||
aper_buf_len = fftranscode_ber2aper(FFTRANSC_T_SBCAP, &aper_buf, TTCN_buf.get_data(), TTCN_buf.get_len());
|
||||
if (aper_buf_len < 0) {
|
||||
TTCN_error("fftranscode failed.");
|
||||
}
|
||||
|
||||
/* make octetstring from output buffer */
|
||||
OCTETSTRING ret_val(aper_buf_len, aper_buf);
|
||||
|
||||
/* release dynamically-allocated output buffer */
|
||||
fftranscode_free(aper_buf);
|
||||
|
||||
return ret_val;
|
||||
}
|
||||
|
||||
SBC_AP__PDU__Descriptions::SBC_AP__PDU dec__SBC_AP__PDU(const OCTETSTRING &stream)
|
||||
{
|
||||
uint8_t *ber_buf;
|
||||
int ber_buf_len;
|
||||
|
||||
/* First, decode APER + re-encode as BER */
|
||||
ber_buf_len = fftranscode_aper2ber(FFTRANSC_T_SBC_AP, &ber_buf, (const unsigned char *)stream, stream.lengthof());
|
||||
if (ber_buf_len < 0) {
|
||||
TTCN_error("fftranscode failed.");
|
||||
}
|
||||
|
||||
/* Then, re-encode from BER to TITAN representation */
|
||||
SBC_AP__PDU__Descriptions::SBC_AP__PDU ret_dcc;
|
||||
TTCN_Buffer TTCN_buf;
|
||||
TTCN_buf.clear();
|
||||
TTCN_buf.put_s(ber_buf_len, ber_buf);
|
||||
|
||||
ret_dcc.decode(SBC_AP__PDU__Descriptions::SBC_AP__PDU_descr_, TTCN_buf,
|
||||
TTCN_EncDec::CT_BER, BER_ACCEPT_ALL);
|
||||
|
||||
fftranscode_free(ber_buf);
|
||||
|
||||
return ret_dcc;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,650 @@
|
|||
-- SBC-AP-IEs.asn
|
||||
--
|
||||
-- Taken from 3GPP TS 29.168 V15.1.0 (2018-09)
|
||||
-- http://www.3gpp.org/ftp/Specs/archive/29_series/29.168/29168-930.zip
|
||||
--
|
||||
-- 4.4.5 Information Element Definitions
|
||||
--
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Information Element Definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
SBC-AP-IEs {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) sbc-AP (3) version1 (1) sbc-AP-IEs (2)}
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
IMPORTS
|
||||
maxNrOfErrors,
|
||||
maxNrOfTAIs,
|
||||
maxnoofTAIforWarning,
|
||||
maxnoofCellID,
|
||||
maxnoofEmergencyAreaID,
|
||||
|
||||
id-TypeOfError,
|
||||
maxnoofCellinEAI,
|
||||
maxnoofCellinTAI,
|
||||
maxnoofeNBIds,
|
||||
maxnoofRestartTAIs,
|
||||
maxnoofRestartEAIs,
|
||||
maxnoofRestartedCells,
|
||||
maxnoofFailedCells,
|
||||
maxnoof5GSTAIs,
|
||||
maxnoofCellsingNB,
|
||||
maxnoofCellsin5GS,
|
||||
maxnoofCellsforRestartNR,
|
||||
maxnoofRANNodes,
|
||||
maxnoofRestart5GSTAIs,
|
||||
maxnoofCellsin5GSTAI
|
||||
|
||||
FROM SBC-AP-Constants
|
||||
|
||||
Criticality,
|
||||
ProcedureCode,
|
||||
TriggeringMessage,
|
||||
ProtocolIE-ID
|
||||
FROM SBC-AP-CommonDataTypes
|
||||
|
||||
ProtocolExtensionContainer{},
|
||||
|
||||
SBC-AP-PROTOCOL-EXTENSION
|
||||
FROM SBC-AP-Containers;
|
||||
|
||||
|
||||
-- A
|
||||
|
||||
-- B
|
||||
|
||||
Broadcast-Scheduled-Area-List ::= SEQUENCE {
|
||||
cellId-Broadcast-List CellId-Broadcast-List OPTIONAL,
|
||||
tAI-Broadcast-List TAI-Broadcast-List OPTIONAL,
|
||||
emergencyAreaID-Broadcast-List EmergencyAreaID-Broadcast-List OPTIONAL,
|
||||
iE-Extensions ProtocolExtensionContainer {{Broadcast-Scheduled-Area-List-ExtIEs}} OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
Broadcast-Scheduled-Area-List-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
Broadcast-Scheduled-Area-List-5GS ::= SEQUENCE {
|
||||
cellId-Broadcast-List-5GS CellId-Broadcast-List-5GS OPTIONAL,
|
||||
tAI-Broadcast-List-5GS TAI-Broadcast-List-5GS OPTIONAL,
|
||||
emergencyAreaID-Broadcast-List EmergencyAreaID-Broadcast-List OPTIONAL,
|
||||
iE-Extensions ProtocolExtensionContainer {{Broadcast-Scheduled-Area-List-5GS-ExtIEs}} OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
Broadcast-Scheduled-Area-List-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
Broadcast-Cancelled-Area-List ::= SEQUENCE {
|
||||
cellID-Cancelled-List CellID-Cancelled-List OPTIONAL,
|
||||
tAI-Cancelled-List TAI-Cancelled-List OPTIONAL,
|
||||
emergencyAreaID-Cancelled-List EmergencyAreaID-Cancelled-List OPTIONAL,
|
||||
iE-Extensions ProtocolExtensionContainer {{Broadcast-Cancelled-Area-List-ExtIEs}} OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
Broadcast-Cancelled-Area-List-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
Broadcast-Cancelled-Area-List-5GS ::= SEQUENCE {
|
||||
cellID-Cancelled-List-5GS CellID-Cancelled-List-5GS OPTIONAL,
|
||||
tAI-Cancelled-List-5GS TAI-Cancelled-List-5GS OPTIONAL,
|
||||
emergencyAreaID-Cancelled-List EmergencyAreaID-Cancelled-List OPTIONAL,
|
||||
iE-Extensions ProtocolExtensionContainer {{Broadcast-Cancelled-Area-List-5GS-ExtIEs}} OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
Broadcast-Cancelled-Area-List-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
Broadcast-Empty-Area-List ::= SEQUENCE (SIZE (1.. maxnoofeNBIds)) OF Global-ENB-ID
|
||||
|
||||
Broadcast-Empty-Area-List-5GS ::= SEQUENCE (SIZE (1.. maxnoofRANNodes)) OF Global-RAN-Node-ID
|
||||
|
||||
|
||||
-- C
|
||||
|
||||
CancelledCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CancelledCellinEAI-Item
|
||||
|
||||
CancelledCellinEAI-Item ::= SEQUENCE {
|
||||
eCGI EUTRAN-CGI,
|
||||
numberOfBroadcasts NumberOfBroadcasts,
|
||||
iE-Extensions ProtocolExtensionContainer { {CancelledCellinEAI-Item-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
CancelledCellinEAI-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
CancelledCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CancelledCellinTAI-Item
|
||||
|
||||
CancelledCellinTAI-Item ::= SEQUENCE{
|
||||
eCGI EUTRAN-CGI,
|
||||
numberOfBroadcasts NumberOfBroadcasts,
|
||||
iE-Extensions ProtocolExtensionContainer { {CancelledCellinTAI-Item-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
CancelledCellinTAI-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
CancelledCellinTAI-5GS ::= SEQUENCE (SIZE(1..maxnoofCellsin5GSTAI)) OF
|
||||
SEQUENCE{
|
||||
nR-CGI NR-CGI,
|
||||
numberOfBroadcasts NumberOfBroadcasts,
|
||||
iE-Extensions ProtocolExtensionContainer { {CancelledCellinTAI-5GS-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
CancelledCellinTAI-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
Cause ::= INTEGER {
|
||||
message-accepted (0),
|
||||
parameter-not-recognised (1),
|
||||
parameter-value-invalid (2),
|
||||
valid-message-not-identified (3),
|
||||
tracking-area-not-valid (4),
|
||||
unrecognised-message (5),
|
||||
missing-mandatory-element (6),
|
||||
mME-capacity-exceeded (7),
|
||||
mME-memory-exceeded (8),
|
||||
warning-broadcast-not-supported (9),
|
||||
warning-broadcast-not-operational (10),
|
||||
message-reference-already-used (11),
|
||||
unspecifed-error (12),
|
||||
transfer-syntax-error (13),
|
||||
semantic-error (14),
|
||||
message-not-compatible-with-receiver-state (15),
|
||||
abstract-syntax-error-reject (16),
|
||||
abstract-syntax-error-ignore-and-notify (17),
|
||||
abstract-syntax-error-falsely-constructed-message (18)
|
||||
} (0..255)
|
||||
|
||||
CellId-Broadcast-List ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellId-Broadcast-List-Item
|
||||
|
||||
CellId-Broadcast-List-Item ::= SEQUENCE {
|
||||
eCGI EUTRAN-CGI,
|
||||
iE-Extensions ProtocolExtensionContainer { {CellId-Broadcast-List-Item-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
CellId-Broadcast-List-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
CellId-Broadcast-List-5GS ::= SEQUENCE (SIZE(1..maxnoofCellsin5GS)) OF
|
||||
SEQUENCE {
|
||||
nR-CGI NR-CGI,
|
||||
iE-Extensions ProtocolExtensionContainer { {CellId-Broadcast-List-5GS-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
CellId-Broadcast-List-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
CellID-Cancelled-List ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Cancelled-Item
|
||||
|
||||
CellID-Cancelled-Item ::= SEQUENCE {
|
||||
eCGI EUTRAN-CGI,
|
||||
numberOfBroadcasts NumberOfBroadcasts,
|
||||
iE-Extensions ProtocolExtensionContainer { {CellID-Cancelled-Item-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
CellID-Cancelled-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
CellID-Cancelled-List-5GS ::= SEQUENCE (SIZE(1..maxnoofCellsin5GS)) OF
|
||||
SEQUENCE {
|
||||
nR-CGI NR-CGI,
|
||||
numberOfBroadcasts NumberOfBroadcasts,
|
||||
iE-Extensions ProtocolExtensionContainer { {CellID-Cancelled-5GS-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
CellID-Cancelled-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
CellIdentity ::= BIT STRING (SIZE (28))
|
||||
|
||||
Concurrent-Warning-Message-Indicator ::= ENUMERATED {true}
|
||||
|
||||
Criticality-Diagnostics ::= SEQUENCE {
|
||||
procedureCode ProcedureCode OPTIONAL,
|
||||
triggeringMessage TriggeringMessage OPTIONAL,
|
||||
procedureCriticality Criticality OPTIONAL,
|
||||
iE-CriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
|
||||
iE-Extensions ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
CriticalityDiagnostics-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
|
||||
SEQUENCE {
|
||||
iECriticality Criticality,
|
||||
iE-ID ProtocolIE-ID,
|
||||
typeOfError TypeOfError,
|
||||
iE-Extensions ProtocolExtensionContainer {{CriticalityDiagnostics-IE-Item-ExtIEs}} OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
CriticalityDiagnostics-IE-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- D
|
||||
|
||||
Data-Coding-Scheme ::= BIT STRING (SIZE (8))
|
||||
|
||||
-- E
|
||||
|
||||
ECGIList ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF EUTRAN-CGI
|
||||
|
||||
Emergency-Area-ID-List ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF Emergency-Area-ID
|
||||
|
||||
Emergency-Area-ID ::= OCTET STRING (SIZE (3))
|
||||
|
||||
EmergencyAreaID-Broadcast-List ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Broadcast-List-Item
|
||||
|
||||
EmergencyAreaID-Broadcast-List-Item ::= SEQUENCE {
|
||||
emergencyAreaID Emergency-Area-ID,
|
||||
scheduledCellinEAI ScheduledCellinEAI,
|
||||
iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Broadcast-List-Item-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
EmergencyAreaID-Broadcast-List-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
EmergencyAreaID-Cancelled-List ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Cancelled-Item
|
||||
|
||||
EmergencyAreaID-Cancelled-Item ::= SEQUENCE {
|
||||
emergencyAreaID Emergency-Area-ID,
|
||||
cancelledCellinEAI CancelledCellinEAI,
|
||||
iE-Extensions ProtocolExtensionContainer { {EmergencyAreaID-Cancelled-Item-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
EmergencyAreaID-Cancelled-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
EUTRAN-CGI ::= SEQUENCE {
|
||||
pLMNidentity PLMNidentity,
|
||||
cell-ID CellIdentity,
|
||||
iE-Extensions ProtocolExtensionContainer { {EUTRAN-CGI-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
EUTRAN-CGI-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
Extended-Repetition-Period ::= INTEGER (4096..131071)
|
||||
|
||||
ENB-ID ::= CHOICE {
|
||||
macroENB-ID BIT STRING (SIZE(20)),
|
||||
homeENB-ID BIT STRING (SIZE(28)),
|
||||
...,
|
||||
short-macroENB-ID BIT STRING (SIZE(18)),
|
||||
long-macroENB-ID BIT STRING (SIZE(21))
|
||||
}
|
||||
|
||||
|
||||
-- F
|
||||
|
||||
Failed-Cell-List ::= SEQUENCE (SIZE(1..maxnoofFailedCells)) OF EUTRAN-CGI
|
||||
|
||||
Failed-Cell-List-NR ::= SEQUENCE (SIZE(1..maxnoofCellsingNB)) OF NR-CGI
|
||||
|
||||
-- G
|
||||
|
||||
Global-ENB-ID ::= SEQUENCE {
|
||||
pLMNidentity PLMNidentity,
|
||||
eNB-ID ENB-ID,
|
||||
iE-Extensions ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
GlobalENB-ID-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
Global-RAN-Node-ID ::= CHOICE {
|
||||
global-GNB-ID Global-GNB-ID,
|
||||
global-NgENB-ID Global-NgENB-ID,
|
||||
...
|
||||
}
|
||||
|
||||
Global-GNB-ID ::= SEQUENCE {
|
||||
pLMNidentity PLMNidentity,
|
||||
gNB-ID GNB-ID,
|
||||
iE-Extensions ProtocolExtensionContainer { {Global-GNB-ID-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
Global-GNB-ID-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
GNB-ID ::= CHOICE {
|
||||
gNB-ID BIT STRING (SIZE(22..32)),
|
||||
...
|
||||
}
|
||||
Global-NgENB-ID ::= SEQUENCE {
|
||||
pLMNidentity PLMNidentity,
|
||||
ngENB-ID ENB-ID,
|
||||
iE-Extensions ProtocolExtensionContainer { {Global-NgENB-ID-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
Global-NgENB-ID-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- H
|
||||
|
||||
-- I
|
||||
|
||||
-- J
|
||||
|
||||
-- K
|
||||
|
||||
-- L
|
||||
|
||||
List-of-TAIs ::= SEQUENCE (SIZE (1..maxNrOfTAIs)) OF
|
||||
SEQUENCE {
|
||||
tai TAI
|
||||
}
|
||||
|
||||
List-of-TAIs-Restart ::= SEQUENCE (SIZE (1..maxnoofRestartTAIs)) OF
|
||||
SEQUENCE {
|
||||
tai TAI
|
||||
}
|
||||
|
||||
|
||||
List-of-EAIs-Restart ::= SEQUENCE (SIZE(1..maxnoofRestartEAIs)) OF Emergency-Area-ID
|
||||
|
||||
List-of-5GS-TAIs ::= SEQUENCE (SIZE (1..maxnoof5GSTAIs)) OF TAI-5GS
|
||||
|
||||
List-of-5GS-Cells-for-Failure ::= SEQUENCE ( SIZE(1..maxnoofCellsingNB)) OF NR-CGI
|
||||
|
||||
List-of-5GS-TAI-for-Restart ::= SEQUENCE (SIZE (1..maxnoofRestart5GSTAIs)) OF TAI-5GS
|
||||
|
||||
|
||||
-- M
|
||||
|
||||
Message-Identifier ::= BIT STRING (SIZE (16))
|
||||
|
||||
-- N
|
||||
|
||||
Number-of-Broadcasts-Requested ::= INTEGER (0..65535)
|
||||
|
||||
-- For Number-of-Broadcasts-Requested = 0 and Repetition-Period = 0, then eNB action is no broadcast
|
||||
-- for ETWS Secondary and CMAS.
|
||||
--
|
||||
-- For Number-of-Broadcasts-Requested = 1 and Repetition-Period = 0, then eNB action is broadcast
|
||||
-- only once for ETWS and CMAS.
|
||||
--
|
||||
-- For Number-of-Broadcasts-Requested = 0 and Repetition-Period > 0, then eNB action is no broadcast
|
||||
-- for the ETWS Secondary, and broadcast until further notice for the CMAS.
|
||||
--
|
||||
-- For Number-of-Broadcasts-Requested > 0 and Repetition-Period > 0, then eNB action is normal
|
||||
-- broadcast.
|
||||
-- All other combinations of Number-of-Broadcasts-Requested and Repetition-Period are considered
|
||||
-- invalid.
|
||||
|
||||
NumberOfBroadcasts ::= INTEGER (0..65535)
|
||||
|
||||
NR-CGIList ::= SEQUENCE (SIZE(1..maxnoofCellsingNB)) OF NR-CGI
|
||||
|
||||
NR-CGI ::= SEQUENCE {
|
||||
pLMNidentity PLMNidentity,
|
||||
nRCellIdentity NRCellIdentity,
|
||||
iE-Extensions ProtocolExtensionContainer { {NR-CGI-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
NR-CGI-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
NRCellIdentity ::= BIT STRING (SIZE(36))
|
||||
|
||||
NgENB-ID ::= CHOICE {
|
||||
macroNgENB-ID BIT STRING (SIZE(20)),
|
||||
shortMacroNgENB-ID BIT STRING (SIZE(18)),
|
||||
longMacroNgENB-ID BIT STRING (SIZE(21)),
|
||||
...
|
||||
}
|
||||
|
||||
-- O
|
||||
Omc-Id ::= OCTET STRING (SIZE (1..20))
|
||||
|
||||
|
||||
-- P
|
||||
PLMNidentity ::= TBCD-STRING
|
||||
|
||||
-- Q
|
||||
|
||||
-- R
|
||||
|
||||
Repetition-Period ::= INTEGER (0..4096)
|
||||
-- 1 to 4096: Each unit represents a repetition of one second to a maximum of
|
||||
-- once per 4096 seconds (~1 hour).
|
||||
-- 0: no repetition
|
||||
-- A CBC compliant to this version or later of this specification shall not send a repetition period
|
||||
-- greater than 4095.
|
||||
-- For backwards compatibility with a CBC compliant to an earlier version of this specification the
|
||||
-- maximum value of the repetition period defined in ASN.1 remains at 4096.
|
||||
-- If the value of the Repetition Period IE received in the WRITE-REPLACE WARNING REQUEST message is
|
||||
-- set to 4096, the MME shall set the Repetition Period IE to the maximum value 4095 supported on
|
||||
-- the S1-MME interface as defined in [7] before forwarding to the selected eNBs.
|
||||
|
||||
Restarted-Cell-List ::= SEQUENCE (SIZE(1.. maxnoofRestartedCells)) OF EUTRAN-CGI
|
||||
|
||||
RAT-Selector-5GS ::= ENUMERATED {true}
|
||||
|
||||
Restarted-Cell-List-NR ::= SEQUENCE (SIZE(1.. maxnoofCellsforRestartNR)) OF NR-CGI
|
||||
|
||||
|
||||
|
||||
-- S
|
||||
|
||||
ScheduledCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF ScheduledCellinEAI-Item
|
||||
|
||||
ScheduledCellinEAI-Item ::= SEQUENCE {
|
||||
eCGI EUTRAN-CGI,
|
||||
iE-Extensions ProtocolExtensionContainer { {ScheduledCellinEAI-Item-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
ScheduledCellinEAI-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
ScheduledCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF ScheduledCellinTAI-Item
|
||||
|
||||
ScheduledCellinTAI-Item ::= SEQUENCE{
|
||||
eCGI EUTRAN-CGI,
|
||||
iE-Extensions ProtocolExtensionContainer { {ScheduledCellinTAI-Item-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
ScheduledCellinTAI-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
ScheduledCellinTAI-5GS ::= SEQUENCE (SIZE(1..maxnoofCellsin5GSTAI)) OF
|
||||
SEQUENCE{
|
||||
nR-CGI NR-CGI,
|
||||
iE-Extensions ProtocolExtensionContainer { {ScheduledCellinTAI-5GS-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
ScheduledCellinTAI-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
Send-Write-Replace-Warning-Indication ::= ENUMERATED {true}
|
||||
|
||||
Send-Stop-Warning-Indication ::= ENUMERATED {true}
|
||||
|
||||
Serial-Number ::= BIT STRING (SIZE (16))
|
||||
|
||||
Stop-All-Indicator ::= ENUMERATED {true}
|
||||
|
||||
-- T
|
||||
|
||||
TAC ::= OCTET STRING (SIZE (2))
|
||||
|
||||
TAC-5GS ::= OCTET STRING (SIZE (3))
|
||||
|
||||
TAI-Broadcast-List ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Broadcast-List-Item
|
||||
|
||||
TAI-Broadcast-List-Item ::= SEQUENCE {
|
||||
tAI TAI,
|
||||
scheduledCellinTAI ScheduledCellinTAI,
|
||||
iE-Extensions ProtocolExtensionContainer { {TAI-Broadcast-List-Item-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
TAI-Broadcast-List-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
TAI-Broadcast-List-5GS ::= SEQUENCE (SIZE(1..maxnoof5GSTAIs)) OF
|
||||
SEQUENCE {
|
||||
tAI-5GS TAI-5GS,
|
||||
scheduledCellinTAI-5GS ScheduledCellinTAI-5GS,
|
||||
iE-Extensions ProtocolExtensionContainer { {TAI-Broadcast-List-5GS-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
TAI-Broadcast-List-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
TAI-Cancelled-List ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Cancelled-List-Item
|
||||
|
||||
TAI-Cancelled-List-Item ::= SEQUENCE {
|
||||
tAI TAI,
|
||||
cancelledCellinTAI CancelledCellinTAI,
|
||||
iE-Extensions ProtocolExtensionContainer { {TAI-Cancelled-List-Item-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
TAI-Cancelled-List-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
TAI-Cancelled-List-5GS ::= SEQUENCE (SIZE(1..maxnoof5GSTAIs)) OF
|
||||
SEQUENCE {
|
||||
tAI-5GS TAI-5GS,
|
||||
cancelledCellinTAI-5GS CancelledCellinTAI-5GS,
|
||||
iE-Extensions ProtocolExtensionContainer { {TAI-Cancelled-List-5GS-ExtIEs} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
TAI-Cancelled-List-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
TAI-List-for-Warning ::= SEQUENCE (SIZE(1.. maxnoofTAIforWarning)) OF TAI
|
||||
|
||||
TAI ::= SEQUENCE {
|
||||
pLMNidentity PLMNidentity,
|
||||
tAC TAC,
|
||||
iE-Extensions ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL
|
||||
}
|
||||
|
||||
TAI-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
TBCD-STRING ::= OCTET STRING (SIZE (3))
|
||||
|
||||
TypeOfError ::= ENUMERATED {
|
||||
not-understood,
|
||||
missing,
|
||||
...
|
||||
}
|
||||
TAI-5GS ::= SEQUENCE {
|
||||
pLMNidentity PLMNidentity,
|
||||
tAC-5GS TAC-5GS,
|
||||
iE-Extensions ProtocolExtensionContainer { {TAI-5GS-ExtIEs} } OPTIONAL
|
||||
}
|
||||
|
||||
TAI-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
-- U
|
||||
|
||||
Unknown-Tracking-Area-List ::= SEQUENCE (SIZE(1.. maxNrOfTAIs)) OF TAI
|
||||
|
||||
Unknown-5GS-Tracking-Area-List ::= SEQUENCE (SIZE(1.. maxnoof5GSTAIs)) OF TAI-5GS
|
||||
|
||||
|
||||
-- V
|
||||
|
||||
-- W
|
||||
|
||||
Warning-Area-List ::= CHOICE {
|
||||
cell-ID-List ECGIList,
|
||||
tracking-Area-List-for-Warning TAI-List-for-Warning,
|
||||
emergency-Area-ID-List Emergency-Area-ID-List,
|
||||
...
|
||||
}
|
||||
|
||||
Warning-Message-Content ::= OCTET STRING (SIZE (1..9600))
|
||||
Warning-Area-Coordinates ::= OCTET STRING (SIZE (1..1024))
|
||||
Warning-Security-Information ::= OCTET STRING (SIZE (50))
|
||||
Warning-Type ::= OCTET STRING (SIZE (2))
|
||||
|
||||
Warning-Area-List-5GS ::= CHOICE {
|
||||
cell-ID-List ECGIList,
|
||||
nR-CGIList NR-CGIList,
|
||||
tAIList-5GS TAI-5GS,
|
||||
emergencyAreaIDList Emergency-Area-ID-List,
|
||||
...
|
||||
}
|
||||
|
||||
|
||||
|
||||
-- X
|
||||
|
||||
-- Y
|
||||
|
||||
END
|
|
@ -0,0 +1,374 @@
|
|||
-- SBC-AP-PDU-Contents.asn
|
||||
--
|
||||
-- Taken from 3GPP TS 29.168 V15.1.0 (2018-09)
|
||||
-- http://www.3gpp.org/ftp/Specs/archive/29_series/29.168/29168-930.zip
|
||||
--
|
||||
-- 4.4.4 PDU Definitions
|
||||
--
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- PDU definitions for SBC-AP.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
SBC-AP-PDU-Contents {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) sbc-AP (3) version1 (1) sbc-AP-PDU-Contents (1)}
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IE parameter types from other modules.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
IMPORTS
|
||||
|
||||
Cause,
|
||||
Concurrent-Warning-Message-Indicator,
|
||||
Criticality-Diagnostics,
|
||||
Data-Coding-Scheme,
|
||||
Message-Identifier,
|
||||
Serial-Number,
|
||||
List-of-TAIs,
|
||||
Warning-Area-List,
|
||||
Omc-Id,
|
||||
Repetition-Period,
|
||||
Extended-Repetition-Period,
|
||||
Number-of-Broadcasts-Requested,
|
||||
Warning-Type,
|
||||
Warning-Security-Information,
|
||||
Warning-Message-Content,
|
||||
Warning-Area-Coordinates,
|
||||
Send-Write-Replace-Warning-Indication,
|
||||
Broadcast-Scheduled-Area-List,
|
||||
Unknown-Tracking-Area-List,
|
||||
Send-Stop-Warning-Indication,
|
||||
Broadcast-Cancelled-Area-List,
|
||||
Stop-All-Indicator,
|
||||
Broadcast-Empty-Area-List,
|
||||
Restarted-Cell-List,
|
||||
Global-ENB-ID,
|
||||
List-of-TAIs-Restart,
|
||||
List-of-EAIs-Restart,
|
||||
Failed-Cell-List,
|
||||
List-of-5GS-TAIs,
|
||||
Warning-Area-List-5GS,
|
||||
Global-RAN-Node-ID,
|
||||
Global-GNB-ID,
|
||||
RAT-Selector-5GS,
|
||||
Unknown-5GS-Tracking-Area-List,
|
||||
Broadcast-Scheduled-Area-List-5GS,
|
||||
Broadcast-Cancelled-Area-List-5GS,
|
||||
Broadcast-Empty-Area-List-5GS,
|
||||
Restarted-Cell-List-NR,
|
||||
Failed-Cell-List-NR,
|
||||
List-of-5GS-TAI-for-Restart
|
||||
|
||||
FROM SBC-AP-IEs
|
||||
|
||||
ProtocolExtensionContainer{},
|
||||
ProtocolIE-Container{},
|
||||
SBC-AP-PROTOCOL-EXTENSION,
|
||||
SBC-AP-PROTOCOL-IES
|
||||
FROM SBC-AP-Containers
|
||||
|
||||
id-Concurrent-Warning-Message-Indicator,
|
||||
id-Criticality-Diagnostics,
|
||||
id-Cause,
|
||||
id-Data-Coding-Scheme,
|
||||
id-List-of-TAIs,
|
||||
id-Message-Identifier,
|
||||
id-Serial-Number,
|
||||
id-Number-of-Broadcasts-Requested,
|
||||
id-Omc-Id,
|
||||
id-Radio-Resource-Loading-List,
|
||||
id-Recovery-Indication,
|
||||
id-Repetition-Period,
|
||||
id-Extended-Repetition-Period,
|
||||
id-Warning-Area-List,
|
||||
id-Warning-Message-Content,
|
||||
id-Warning-Area-Coordinates,
|
||||
id-Warning-Security-Information,
|
||||
id-Warning-Type,
|
||||
id-Send-Write-Replace-Warning-Indication,
|
||||
id-Broadcast-Scheduled-Area-List,
|
||||
id-Unknown-Tracking-Area-List,
|
||||
id-Send-Stop-Warning-Indication,
|
||||
id-Broadcast-Cancelled-Area-List,
|
||||
id-Stop-All-Indicator,
|
||||
id-Broadcast-Empty-Area-List,
|
||||
id-Global-ENB-ID,
|
||||
id-Restarted-Cell-List,
|
||||
id-List-of-TAIs-Restart,
|
||||
id-List-of-EAIs-Restart,
|
||||
id-Failed-Cell-List,
|
||||
id-List-of-5GS-TAIs,
|
||||
id-Warning-Area-List-5GS,
|
||||
id-Global-RAN-Node-ID,
|
||||
id-Global-GNB-ID,
|
||||
id-RAT-Selector-5GS,
|
||||
id-Unknown-5GS-Tracking-Area-List,
|
||||
id-Broadcast-Scheduled-Area-List-5GS,
|
||||
id-Broadcast-Cancelled-Area-List-5GS,
|
||||
id-Broadcast-Empty-Area-List-5GS,
|
||||
id-Restarted-Cell-List-NR,
|
||||
id-Failed-Cell-List-NR,
|
||||
id-List-of-5GS-TAI-for-Restart
|
||||
|
||||
FROM SBC-AP-Constants;
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Write-Replace-Warning-Request
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
Write-Replace-Warning-Request ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container { {Write-Replace-Warning-Request-IEs} },
|
||||
protocolExtensions ProtocolExtensionContainer { {Write-Replace-Warning-Request-Extensions} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
Write-Replace-Warning-Request-IEs SBC-AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
|
||||
{ ID id-Serial-Number CRITICALITY reject TYPE Serial-Number PRESENCE mandatory } |
|
||||
{ ID id-List-of-TAIs CRITICALITY reject TYPE List-of-TAIs PRESENCE optional } |
|
||||
{ ID id-Warning-Area-List CRITICALITY ignore TYPE Warning-Area-List PRESENCE optional } |
|
||||
{ ID id-Repetition-Period CRITICALITY reject TYPE Repetition-Period PRESENCE mandatory } |
|
||||
{ ID id-Extended-Repetition-Period CRITICALITY reject TYPE Extended-Repetition-Period PRESENCE optional } |
|
||||
|
||||
{ ID id-Number-of-Broadcasts-Requested
|
||||
CRITICALITY reject TYPE Number-of-Broadcasts-Requested PRESENCE mandatory } |
|
||||
{ ID id-Warning-Type CRITICALITY ignore TYPE Warning-Type PRESENCE optional } |
|
||||
{ ID id-Warning-Security-Information CRITICALITY ignore TYPE Warning-Security-Information PRESENCE optional } |
|
||||
{ ID id-Data-Coding-Scheme CRITICALITY ignore TYPE Data-Coding-Scheme PRESENCE optional } |
|
||||
{ ID id-Warning-Message-Content
|
||||
CRITICALITY ignore TYPE Warning-Message-Content PRESENCE optional } |
|
||||
{ ID id-Omc-Id CRITICALITY ignore TYPE Omc-Id PRESENCE optional } |
|
||||
{ ID id-Concurrent-Warning-Message-Indicator CRITICALITY reject TYPE Concurrent-Warning-Message-Indicator PRESENCE optional } |
|
||||
{ ID id-Send-Write-Replace-Warning-Indication CRITICALITY ignore TYPE Send-Write-Replace-Warning-Indication PRESENCE optional } |
|
||||
{ ID id-Global-ENB-ID CRITICALITY ignore TYPE Global-ENB-ID PRESENCE optional },
|
||||
... ,
|
||||
{ID id-Warning-Area-Coordinates CRITICALITY ignore TYPE Warning-Area-Coordinates PRESENCE optional}
|
||||
}
|
||||
|
||||
Write-Replace-Warning-Request-Extensions SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
{ ID id-List-of-5GS-TAIs CRITICALITY ignore EXTENSION List-of-5GS-TAIs PRESENCE optional }|
|
||||
{ ID id-Warning-Area-List-5GS CRITICALITY ignore EXTENSION Warning-Area-List-5GS PRESENCE optional }|
|
||||
{ ID id-Global-RAN-Node-ID CRITICALITY ignore EXTENSION Global-RAN-Node-ID PRESENCE optional }|
|
||||
{ ID id-RAT-Selector-5GS CRITICALITY ignore EXTENSION RAT-Selector-5GS PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Write-Replace-Warning-Response
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
Write-Replace-Warning-Response ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container { {Write-Replace-Warning-Response-IEs} },
|
||||
protocolExtensions ProtocolExtensionContainer { {Write-Replace-Warning-Response-Extensions} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
Write-Replace-Warning-Response-IEs SBC-AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
|
||||
{ ID id-Serial-Number CRITICALITY reject TYPE Serial-Number PRESENCE mandatory } |
|
||||
{ ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory } |
|
||||
{ ID id-Criticality-Diagnostics CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional } |
|
||||
{ ID id-Unknown-Tracking-Area-List CRITICALITY ignore TYPE List-of-TAIs PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
Write-Replace-Warning-Response-Extensions SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
{ ID id-Unknown-5GS-Tracking-Area-List CRITICALITY ignore EXTENSION Unknown-5GS-Tracking-Area-List PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Stop-Warning-Request
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
Stop-Warning-Request ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container { {Stop-Warning-Request-IEs} },
|
||||
protocolExtensions ProtocolExtensionContainer { {Stop-Warning-Request-Extensions} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
Stop-Warning-Request-IEs SBC-AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
|
||||
{ ID id-Serial-Number CRITICALITY reject TYPE Serial-Number PRESENCE mandatory } |
|
||||
{ ID id-List-of-TAIs CRITICALITY reject TYPE List-of-TAIs PRESENCE optional } |
|
||||
{ ID id-Warning-Area-List CRITICALITY ignore TYPE Warning-Area-List PRESENCE optional }|
|
||||
{ ID id-Omc-Id CRITICALITY ignore TYPE Omc-Id PRESENCE optional } |
|
||||
{ ID id-Send-Stop-Warning-Indication CRITICALITY ignore TYPE Send-Stop-Warning-Indication PRESENCE optional } |
|
||||
{ ID id-Stop-All-Indicator CRITICALITY reject TYPE Stop-All-Indicator PRESENCE optional},
|
||||
...
|
||||
}
|
||||
|
||||
Stop-Warning-Request-Extensions SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
{ ID id-List-of-5GS-TAIs CRITICALITY ignore EXTENSION List-of-5GS-TAIs PRESENCE optional }|
|
||||
{ ID id-Warning-Area-List-5GS CRITICALITY ignore EXTENSION Warning-Area-List-5GS PRESENCE optional } | { ID id-RAT-Selector-5GS CRITICALITY ignore EXTENSION RAT-Selector-5GS PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Stop-Warning-Response
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
Stop-Warning-Response ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container { {Stop-Warning-Response-IEs} },
|
||||
protocolExtensions ProtocolExtensionContainer { {Stop-Warning-Response-Extensions} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
Stop-Warning-Response-IEs SBC-AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
|
||||
{ ID id-Serial-Number CRITICALITY reject TYPE Serial-Number PRESENCE mandatory } |
|
||||
{ ID id-Cause CRITICALITY reject TYPE Cause PRESENCE mandatory } |
|
||||
{ ID id-Criticality-Diagnostics CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional } |
|
||||
{ ID id-Unknown-Tracking-Area-List CRITICALITY ignore TYPE List-of-TAIs PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
Stop-Warning-Response-Extensions SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
{ ID id-Unknown-5GS-Tracking-Area-List CRITICALITY ignore EXTENSION Unknown-5GS-Tracking-Area-List PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Write-Replace-Warning-Indication
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
Write-Replace-Warning-Indication ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container { {Write-Replace-Warning-Indication-IEs} },
|
||||
protocolExtensions ProtocolExtensionContainer { {Write-Replace-Warning-Indication-Extensions} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
Write-Replace-Warning-Indication-IEs SBC-AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
|
||||
{ ID id-Serial-Number CRITICALITY reject TYPE Serial-Number PRESENCE mandatory } |
|
||||
{ ID id-Broadcast-Scheduled-Area-List CRITICALITY reject TYPE Broadcast-Scheduled-Area-List PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
Write-Replace-Warning-Indication-Extensions SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
{ ID id-Broadcast-Scheduled-Area-List-5GS CRITICALITY ignore EXTENSION Broadcast-Scheduled-Area-List-5GS PRESENCE optional },
|
||||
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Stop-Warning-Indication
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
Stop-Warning-Indication ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container { {Stop-Warning-Indication-IEs} },
|
||||
protocolExtensions ProtocolExtensionContainer { {Stop-Warning-Indication-Extensions} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
Stop-Warning-Indication-IEs SBC-AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
|
||||
{ ID id-Serial-Number CRITICALITY reject TYPE Serial-Number PRESENCE mandatory } |
|
||||
{ ID id-Broadcast-Cancelled-Area-List CRITICALITY reject TYPE Broadcast-Cancelled-Area-List PRESENCE optional }|
|
||||
{ ID id-Broadcast-Empty-Area-List CRITICALITY ignore TYPE Broadcast-Empty-Area-List PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
Stop-Warning-Indication-Extensions SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
{ ID id-Broadcast-Cancelled-Area-List-5GS CRITICALITY ignore EXTENSION Broadcast-Cancelled-Area-List-5GS PRESENCE optional }|
|
||||
{ ID id-Broadcast-Empty-Area-List-5GS CRITICALITY ignore EXTENSION Broadcast-Empty-Area-List-5GS PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- PWS-Restart-Indication
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
PWS-Restart-Indication ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container { {PWS-Restart-Indication-IEs} },
|
||||
protocolExtensions ProtocolExtensionContainer { {PWS-Restart-Indication-Extensions} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
PWS-Restart-Indication-IEs SBC-AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Restarted-Cell-List CRITICALITY reject TYPE Restarted-Cell-List PRESENCE mandatory }|
|
||||
{ ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory } |
|
||||
{ ID id-List-of-TAIs-Restart CRITICALITY reject TYPE List-of-TAIs-Restart PRESENCE mandatory } |
|
||||
{ ID id-List-of-EAIs-Restart CRITICALITY reject TYPE List-of-EAIs-Restart PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
PWS-Restart-Indication-Extensions SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
{ ID id-Restarted-Cell-List-NR CRITICALITY ignore EXTENSION Restarted-Cell-List-NR PRESENCE optional }|
|
||||
{ ID id-List-of-5GS-TAI-for-Restart CRITICALITY ignore EXTENSION List-of-5GS-TAI-for-Restart PRESENCE optional }|
|
||||
{ ID id-Global-GNB-ID CRITICALITY ignore EXTENSION Global-GNB-ID PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- PWS-Failure-Indication
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
PWS-Failure-Indication ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container { {PWS-Failure-Indication-IEs} },
|
||||
protocolExtensions ProtocolExtensionContainer { {PWS-Failure-Indication-Extensions} } OPTIONAL,
|
||||
...
|
||||
}
|
||||
|
||||
PWS-Failure-Indication-IEs SBC-AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Failed-Cell-List CRITICALITY reject TYPE Failed-Cell-List PRESENCE mandatory }|
|
||||
{ ID id-Global-ENB-ID CRITICALITY reject TYPE Global-ENB-ID PRESENCE mandatory },
|
||||
...
|
||||
}
|
||||
|
||||
PWS-Failure-Indication-Extensions SBC-AP-PROTOCOL-EXTENSION ::= {
|
||||
{ ID id-Failed-Cell-List-NR CRITICALITY ignore EXTENSION Failed-Cell-List-NR PRESENCE optional }|
|
||||
{ ID id-Global-GNB-ID CRITICALITY ignore EXTENSION Global-GNB-ID PRESENCE optional },
|
||||
...
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- ERROR INDICATION ELEMENTARY PROCEDURE
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Error Indication
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
Error-Indication ::= SEQUENCE {
|
||||
protocolIEs ProtocolIE-Container {{ErrorIndicationIEs}},
|
||||
...
|
||||
}
|
||||
|
||||
ErrorIndicationIEs SBC-AP-PROTOCOL-IES ::= {
|
||||
{ ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
|
||||
{ ID id-Criticality-Diagnostics CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional } ,
|
||||
...
|
||||
}
|
||||
|
||||
END
|
|
@ -0,0 +1,179 @@
|
|||
-- SBC-AP-PDU-Descriptions.asn
|
||||
--
|
||||
-- Taken from 3GPP TS 29.168 V15.1.0 (2018-09)
|
||||
-- http://www.3gpp.org/ftp/Specs/archive/29_series/29.168/29168-930.zip
|
||||
--
|
||||
-- 4.4.3 Elementary Procedure Definitions
|
||||
--
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Elementary Procedure definitions
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
SBC-AP-PDU-Descriptions {
|
||||
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
|
||||
eps-Access (21) modules (3) sbc-AP (3) version1 (1) sbc-AP-PDU-Descriptions (0)}
|
||||
|
||||
DEFINITIONS AUTOMATIC TAGS ::=
|
||||
|
||||
BEGIN
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- IE parameter types from other modules.
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
IMPORTS
|
||||
Criticality,
|
||||
ProcedureCode
|
||||
FROM SBC-AP-CommonDataTypes
|
||||
|
||||
Write-Replace-Warning-Request,
|
||||
Write-Replace-Warning-Response,
|
||||
Stop-Warning-Request,
|
||||
Stop-Warning-Response,
|
||||
Error-Indication,
|
||||
Write-Replace-Warning-Indication,
|
||||
Stop-Warning-Indication,
|
||||
PWS-Restart-Indication,
|
||||
PWS-Failure-Indication
|
||||
FROM SBC-AP-PDU-Contents
|
||||
|
||||
id-Write-Replace-Warning,
|
||||
id-Stop-Warning,
|
||||
id-Error-Indication,
|
||||
id-Write-Replace-Warning-Indication,
|
||||
id-Stop-Warning-Indication,
|
||||
id-PWS-Restart-Indication,
|
||||
id-PWS-Failure-Indication
|
||||
FROM SBC-AP-Constants;
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface Elementary Procedure Class
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
SBC-AP-ELEMENTARY-PROCEDURE ::= CLASS {
|
||||
&InitiatingMessage ,
|
||||
&SuccessfulOutcome OPTIONAL,
|
||||
&UnsuccessfulOutcome OPTIONAL,
|
||||
&procedureCode ProcedureCode UNIQUE,
|
||||
&criticality Criticality DEFAULT ignore
|
||||
}
|
||||
WITH SYNTAX {
|
||||
INITIATING MESSAGE &InitiatingMessage
|
||||
[SUCCESSFUL OUTCOME &SuccessfulOutcome]
|
||||
[UNSUCCESSFUL OUTCOME &UnsuccessfulOutcome]
|
||||
PROCEDURE CODE &procedureCode
|
||||
[CRITICALITY &criticality]
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface PDU Definition
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
SBC-AP-PDU ::= CHOICE {
|
||||
initiatingMessage InitiatingMessage,
|
||||
successfulOutcome SuccessfulOutcome,
|
||||
unsuccessfulOutcome UnsuccessfulOutcome,
|
||||
...
|
||||
}
|
||||
|
||||
InitiatingMessage ::= SEQUENCE {
|
||||
procedureCode SBC-AP-ELEMENTARY-PROCEDURE.&procedureCode ({SBC-AP-ELEMENTARY-PROCEDURES}),
|
||||
criticality SBC-AP-ELEMENTARY-PROCEDURE.&criticality ({SBC-AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value SBC-AP-ELEMENTARY-PROCEDURE.&InitiatingMessage ({SBC-AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
|
||||
SuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode SBC-AP-ELEMENTARY-PROCEDURE.&procedureCode ({SBC-AP-ELEMENTARY-PROCEDURES}),
|
||||
criticality SBC-AP-ELEMENTARY-PROCEDURE.&criticality ({SBC-AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value SBC-AP-ELEMENTARY-PROCEDURE.&SuccessfulOutcome ({SBC-AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
|
||||
UnsuccessfulOutcome ::= SEQUENCE {
|
||||
procedureCode SBC-AP-ELEMENTARY-PROCEDURE.&procedureCode ({SBC-AP-ELEMENTARY-PROCEDURES}),
|
||||
criticality SBC-AP-ELEMENTARY-PROCEDURE.&criticality ({SBC-AP-ELEMENTARY-PROCEDURES}{@procedureCode}),
|
||||
value SBC-AP-ELEMENTARY-PROCEDURE.&UnsuccessfulOutcome ({SBC-AP-ELEMENTARY-PROCEDURES}{@procedureCode})
|
||||
}
|
||||
|
||||
-- **************************************************************
|
||||
--
|
||||
-- Interface Elementary Procedure List
|
||||
--
|
||||
-- **************************************************************
|
||||
|
||||
SBC-AP-ELEMENTARY-PROCEDURES SBC-AP-ELEMENTARY-PROCEDURE ::= {
|
||||
SBC-AP-ELEMENTARY-PROCEDURES-CLASS-1 |
|
||||
SBC-AP-ELEMENTARY-PROCEDURES-CLASS-2 ,
|
||||
...
|
||||
}
|
||||
|
||||
SBC-AP-ELEMENTARY-PROCEDURES-CLASS-1 SBC-AP-ELEMENTARY-PROCEDURE ::= {
|
||||
write-Replace-Warning |
|
||||
stop-Warning ,
|
||||
...
|
||||
}
|
||||
|
||||
SBC-AP-ELEMENTARY-PROCEDURES-CLASS-2 SBC-AP-ELEMENTARY-PROCEDURE ::= {
|
||||
error-Indication |
|
||||
write-Replace-Warning-Indication |
|
||||
stop-Warning-Indication |
|
||||
pws-Restart-Indication |
|
||||
pws-Failure-Indication,
|
||||
...
|
||||
}
|
||||
|
||||
write-Replace-Warning SBC-AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE Write-Replace-Warning-Request
|
||||
SUCCESSFUL OUTCOME Write-Replace-Warning-Response
|
||||
|
||||
PROCEDURE CODE id-Write-Replace-Warning
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
stop-Warning SBC-AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE Stop-Warning-Request
|
||||
SUCCESSFUL OUTCOME Stop-Warning-Response
|
||||
|
||||
PROCEDURE CODE id-Stop-Warning
|
||||
CRITICALITY reject
|
||||
}
|
||||
|
||||
error-Indication SBC-AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE Error-Indication
|
||||
PROCEDURE CODE id-Error-Indication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
write-Replace-Warning-Indication SBC-AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE Write-Replace-Warning-Indication
|
||||
PROCEDURE CODE id-Write-Replace-Warning-Indication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
stop-Warning-Indication SBC-AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE Stop-Warning-Indication
|
||||
PROCEDURE CODE id-Stop-Warning-Indication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
pws-Restart-Indication SBC-AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE PWS-Restart-Indication
|
||||
PROCEDURE CODE id-PWS-Restart-Indication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
pws-Failure-Indication SBC-AP-ELEMENTARY-PROCEDURE ::= {
|
||||
INITIATING MESSAGE PWS-Failure-Indication
|
||||
PROCEDURE CODE id-PWS-Failure-Indication
|
||||
CRITICALITY ignore
|
||||
}
|
||||
|
||||
END
|
|
@ -0,0 +1,10 @@
|
|||
module SBC_AP_Types {
|
||||
|
||||
import from SBC_AP_PDU_Descriptions language "ASN.1:1997" all;
|
||||
|
||||
external function enc_SBC_AP_PDU(in SBC_AP_PDU pdu) return octetstring;
|
||||
external function dec_SBC_AP_PDU(in octetstring stream) return SBC_AP_PDU;
|
||||
|
||||
const integer c_SBC_AP_PPID := 24;
|
||||
const integer c_SBC_AP_PORT := 29168;
|
||||
}
|
Loading…
Reference in New Issue