Support for SBc-AP protocol as used on the MME-CBC interface

This requires a recent libfftranscode (>=0.5) with SBC-AP support.

The asn files are obtained from 3GPP TS 29.168.

Related: osmo-cbc.git Ib278bc1d1a74459814016fef7a8fe21cc29d46c9
Related: docker-playground.git 5f3c78105836d1f2c229655df3f537a73ab6e12a
Change-Id: Ia6743e0a3e7974a5f2dd3ecf74ec331f646f6bc2
Related: OS#4945
diff --git a/library/sbcap/SBC_AP_IEs.asn b/library/sbcap/SBC_AP_IEs.asn
new file mode 100644
index 0000000..3cfa847
--- /dev/null
+++ b/library/sbcap/SBC_AP_IEs.asn
@@ -0,0 +1,650 @@
+-- SBC-AP-IEs.asn
+--
+-- Taken from 3GPP TS 29.168 V15.1.0 (2018-09)
+-- http://www.3gpp.org/ftp/Specs/archive/29_series/29.168/29168-930.zip
+--
+-- 4.4.5	Information Element Definitions
+--
+
+-- **************************************************************
+--
+-- Information Element Definitions
+--
+-- **************************************************************
+
+SBC-AP-IEs {
+itu-t (0) identified-organization (4) etsi (0) mobileDomain (0) 
+eps-Access (21) modules (3) sbc-AP (3) version1 (1) sbc-AP-IEs (2)}
+
+DEFINITIONS AUTOMATIC TAGS ::= 
+
+BEGIN
+
+IMPORTS
+	maxNrOfErrors,
+	maxNrOfTAIs,
+	maxnoofTAIforWarning,
+	maxnoofCellID,
+	maxnoofEmergencyAreaID,
+
+	id-TypeOfError,
+ 	maxnoofCellinEAI,
+	maxnoofCellinTAI,
+	maxnoofeNBIds,
+	maxnoofRestartTAIs,
+	maxnoofRestartEAIs,
+	maxnoofRestartedCells,
+	maxnoofFailedCells,
+	maxnoof5GSTAIs,
+	maxnoofCellsingNB,
+	maxnoofCellsin5GS,
+	maxnoofCellsforRestartNR,
+	maxnoofRANNodes,
+	maxnoofRestart5GSTAIs,
+	maxnoofCellsin5GSTAI
+
+FROM SBC-AP-Constants
+
+	Criticality,
+	ProcedureCode,
+	TriggeringMessage,
+	ProtocolIE-ID
+FROM SBC-AP-CommonDataTypes
+
+	ProtocolExtensionContainer{},
+
+	SBC-AP-PROTOCOL-EXTENSION
+FROM SBC-AP-Containers;
+
+
+-- A
+
+-- B
+
+Broadcast-Scheduled-Area-List ::= SEQUENCE {
+	cellId-Broadcast-List           CellId-Broadcast-List           OPTIONAL,
+    tAI-Broadcast-List              TAI-Broadcast-List              OPTIONAL,
+    emergencyAreaID-Broadcast-List  EmergencyAreaID-Broadcast-List  OPTIONAL,
+	iE-Extensions	   ProtocolExtensionContainer {{Broadcast-Scheduled-Area-List-ExtIEs}} OPTIONAL,
+    ...
+}
+
+Broadcast-Scheduled-Area-List-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+Broadcast-Scheduled-Area-List-5GS ::= SEQUENCE {
+	cellId-Broadcast-List-5GS       CellId-Broadcast-List-5GS       OPTIONAL,
+    tAI-Broadcast-List-5GS          TAI-Broadcast-List-5GS          OPTIONAL,
+    emergencyAreaID-Broadcast-List  EmergencyAreaID-Broadcast-List  OPTIONAL,
+	iE-Extensions	   ProtocolExtensionContainer {{Broadcast-Scheduled-Area-List-5GS-ExtIEs}} OPTIONAL,
+    ...
+}
+
+Broadcast-Scheduled-Area-List-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+Broadcast-Cancelled-Area-List ::= SEQUENCE {
+	cellID-Cancelled-List	CellID-Cancelled-List	OPTIONAL,
+	tAI-Cancelled-List	TAI-Cancelled-List	OPTIONAL,
+	emergencyAreaID-Cancelled-List	EmergencyAreaID-Cancelled-List	OPTIONAL,
+	iE-Extensions	ProtocolExtensionContainer {{Broadcast-Cancelled-Area-List-ExtIEs}} OPTIONAL,
+	...
+}
+
+Broadcast-Cancelled-Area-List-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+Broadcast-Cancelled-Area-List-5GS ::= SEQUENCE {
+	cellID-Cancelled-List-5GS	CellID-Cancelled-List-5GS	OPTIONAL,
+	tAI-Cancelled-List-5GS	TAI-Cancelled-List-5GS	OPTIONAL,
+	emergencyAreaID-Cancelled-List	EmergencyAreaID-Cancelled-List	OPTIONAL,
+	iE-Extensions	ProtocolExtensionContainer {{Broadcast-Cancelled-Area-List-5GS-ExtIEs}} OPTIONAL,
+	...
+}
+
+Broadcast-Cancelled-Area-List-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+
+Broadcast-Empty-Area-List	::= SEQUENCE (SIZE (1.. maxnoofeNBIds)) OF Global-ENB-ID
+
+Broadcast-Empty-Area-List-5GS	::= SEQUENCE (SIZE (1.. maxnoofRANNodes)) OF Global-RAN-Node-ID
+
+
+-- C
+
+CancelledCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF CancelledCellinEAI-Item
+
+CancelledCellinEAI-Item ::= SEQUENCE {
+	eCGI		EUTRAN-CGI,
+	numberOfBroadcasts	NumberOfBroadcasts,
+	iE-Extensions	ProtocolExtensionContainer { {CancelledCellinEAI-Item-ExtIEs} } OPTIONAL,
+	...
+}
+
+CancelledCellinEAI-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+CancelledCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF CancelledCellinTAI-Item
+
+CancelledCellinTAI-Item ::= SEQUENCE{
+	eCGI	EUTRAN-CGI,
+	numberOfBroadcasts	NumberOfBroadcasts,
+	iE-Extensions	ProtocolExtensionContainer { {CancelledCellinTAI-Item-ExtIEs} } OPTIONAL,
+	...
+}
+
+CancelledCellinTAI-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+CancelledCellinTAI-5GS ::= SEQUENCE (SIZE(1..maxnoofCellsin5GSTAI)) OF
+	SEQUENCE{
+	nR-CGI	NR-CGI,
+	numberOfBroadcasts	NumberOfBroadcasts,
+	iE-Extensions	ProtocolExtensionContainer { {CancelledCellinTAI-5GS-ExtIEs} } OPTIONAL,
+	...
+}
+
+CancelledCellinTAI-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+Cause 		::= INTEGER {
+	message-accepted			(0),
+	parameter-not-recognised		(1),
+	parameter-value-invalid		(2),
+	valid-message-not-identified 		(3),
+	tracking-area-not-valid	 		(4),
+	unrecognised-message 		(5),
+	missing-mandatory-element 		(6),
+	mME-capacity-exceeded 		(7),
+	mME-memory-exceeded 		(8),
+	warning-broadcast-not-supported	 	(9),
+	warning-broadcast-not-operational 		(10),
+	message-reference-already-used 		(11),
+	unspecifed-error 			(12),
+	transfer-syntax-error		(13),
+	semantic-error			(14),
+	message-not-compatible-with-receiver-state	(15),
+	abstract-syntax-error-reject		(16),
+	abstract-syntax-error-ignore-and-notify	(17),
+	abstract-syntax-error-falsely-constructed-message	(18)
+} (0..255)
+
+CellId-Broadcast-List ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellId-Broadcast-List-Item
+
+CellId-Broadcast-List-Item ::= SEQUENCE {
+	eCGI	EUTRAN-CGI,
+	iE-Extensions	ProtocolExtensionContainer { {CellId-Broadcast-List-Item-ExtIEs} } OPTIONAL,
+	...
+}
+
+CellId-Broadcast-List-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+CellId-Broadcast-List-5GS ::= SEQUENCE (SIZE(1..maxnoofCellsin5GS)) OF 
+	SEQUENCE {
+	nR-CGI	NR-CGI,
+	iE-Extensions	ProtocolExtensionContainer { {CellId-Broadcast-List-5GS-ExtIEs} } OPTIONAL,
+	...
+}
+
+CellId-Broadcast-List-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+CellID-Cancelled-List ::= SEQUENCE (SIZE(1..maxnoofCellID)) OF CellID-Cancelled-Item
+
+CellID-Cancelled-Item ::= SEQUENCE {
+	eCGI	EUTRAN-CGI,
+	numberOfBroadcasts	NumberOfBroadcasts,
+	iE-Extensions	ProtocolExtensionContainer { {CellID-Cancelled-Item-ExtIEs} } OPTIONAL,
+	...
+}
+
+CellID-Cancelled-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+CellID-Cancelled-List-5GS ::= SEQUENCE (SIZE(1..maxnoofCellsin5GS)) OF 
+	SEQUENCE {
+	nR-CGI	NR-CGI,
+	numberOfBroadcasts	NumberOfBroadcasts,
+	iE-Extensions	ProtocolExtensionContainer { {CellID-Cancelled-5GS-ExtIEs} } OPTIONAL,
+	...
+}
+
+CellID-Cancelled-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+
+
+CellIdentity	::= BIT STRING (SIZE (28))
+
+Concurrent-Warning-Message-Indicator ::= ENUMERATED {true}
+
+Criticality-Diagnostics	::= SEQUENCE {
+	procedureCode	ProcedureCode	OPTIONAL,
+	triggeringMessage	TriggeringMessage	OPTIONAL,
+	procedureCriticality	Criticality	OPTIONAL,
+	iE-CriticalityDiagnostics	CriticalityDiagnostics-IE-List 	OPTIONAL,
+	iE-Extensions	ProtocolExtensionContainer { {CriticalityDiagnostics-ExtIEs} } OPTIONAL,
+	...
+}
+
+CriticalityDiagnostics-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
+	SEQUENCE {
+	iECriticality	Criticality,
+	iE-ID	ProtocolIE-ID,
+	typeOfError 	TypeOfError,
+	iE-Extensions	ProtocolExtensionContainer {{CriticalityDiagnostics-IE-Item-ExtIEs}} OPTIONAL,
+	...
+}
+
+CriticalityDiagnostics-IE-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+
+
+-- D
+
+Data-Coding-Scheme	::= BIT STRING (SIZE (8))
+
+-- E
+
+ECGIList		::= SEQUENCE (SIZE(1..maxnoofCellID)) OF EUTRAN-CGI
+
+Emergency-Area-ID-List	::=	SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF Emergency-Area-ID
+
+Emergency-Area-ID	::=	OCTET STRING (SIZE (3)) 
+
+EmergencyAreaID-Broadcast-List ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Broadcast-List-Item
+
+EmergencyAreaID-Broadcast-List-Item ::= SEQUENCE {
+	emergencyAreaID	Emergency-Area-ID,
+	scheduledCellinEAI	ScheduledCellinEAI,
+	iE-Extensions	ProtocolExtensionContainer { {EmergencyAreaID-Broadcast-List-Item-ExtIEs} } OPTIONAL,
+	...
+}
+
+EmergencyAreaID-Broadcast-List-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+EmergencyAreaID-Cancelled-List ::= SEQUENCE (SIZE(1..maxnoofEmergencyAreaID)) OF EmergencyAreaID-Cancelled-Item
+
+EmergencyAreaID-Cancelled-Item ::= SEQUENCE {
+	emergencyAreaID	Emergency-Area-ID,
+	cancelledCellinEAI	CancelledCellinEAI,
+	iE-Extensions	ProtocolExtensionContainer { {EmergencyAreaID-Cancelled-Item-ExtIEs} } OPTIONAL,
+	...
+}
+
+EmergencyAreaID-Cancelled-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+EUTRAN-CGI ::= SEQUENCE {
+	pLMNidentity	PLMNidentity,
+	cell-ID		CellIdentity,
+	iE-Extensions	ProtocolExtensionContainer { {EUTRAN-CGI-ExtIEs} } OPTIONAL,
+	...
+}
+
+EUTRAN-CGI-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+Extended-Repetition-Period ::= INTEGER (4096..131071)
+
+ENB-ID ::= CHOICE {
+	macroENB-ID	BIT STRING (SIZE(20)),
+	homeENB-ID	BIT STRING (SIZE(28)),
+	...,
+	short-macroENB-ID 	BIT STRING (SIZE(18)),
+	long-macroENB-ID	BIT STRING (SIZE(21))
+}
+
+
+-- F
+
+Failed-Cell-List	::= SEQUENCE (SIZE(1..maxnoofFailedCells)) OF EUTRAN-CGI
+
+Failed-Cell-List-NR	::= SEQUENCE (SIZE(1..maxnoofCellsingNB)) OF NR-CGI  
+
+-- G
+
+Global-ENB-ID ::= SEQUENCE {
+	pLMNidentity	PLMNidentity,
+	eNB-ID		ENB-ID,
+	iE-Extensions	ProtocolExtensionContainer { {GlobalENB-ID-ExtIEs} }	OPTIONAL,
+	...
+}
+
+GlobalENB-ID-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+Global-RAN-Node-ID 	::= CHOICE {
+	global-GNB-ID	Global-GNB-ID,
+	global-NgENB-ID	Global-NgENB-ID,
+	...
+}
+
+Global-GNB-ID 	::= SEQUENCE {
+	pLMNidentity	PLMNidentity,
+	gNB-ID	GNB-ID,
+	iE-Extensions	ProtocolExtensionContainer { {Global-GNB-ID-ExtIEs} } OPTIONAL,
+	...
+}
+
+Global-GNB-ID-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+GNB-ID 	::= CHOICE {
+	gNB-ID	BIT STRING (SIZE(22..32)),
+	...
+}
+Global-NgENB-ID	::= SEQUENCE {
+	pLMNidentity	PLMNidentity,
+	ngENB-ID	ENB-ID,
+	iE-Extensions	ProtocolExtensionContainer { {Global-NgENB-ID-ExtIEs} } OPTIONAL,
+	...
+}
+
+Global-NgENB-ID-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+
+
+-- H
+
+-- I
+
+-- J
+
+-- K
+
+-- L
+
+List-of-TAIs	::= SEQUENCE (SIZE (1..maxNrOfTAIs)) OF
+	SEQUENCE {
+	tai		TAI
+}
+
+List-of-TAIs-Restart	::= SEQUENCE (SIZE (1..maxnoofRestartTAIs)) OF
+	SEQUENCE {
+	tai		TAI
+}
+
+
+List-of-EAIs-Restart	::= SEQUENCE (SIZE(1..maxnoofRestartEAIs)) OF Emergency-Area-ID
+
+List-of-5GS-TAIs	::= SEQUENCE (SIZE (1..maxnoof5GSTAIs)) OF TAI-5GS
+
+List-of-5GS-Cells-for-Failure ::= SEQUENCE ( SIZE(1..maxnoofCellsingNB)) OF NR-CGI
+
+List-of-5GS-TAI-for-Restart ::= SEQUENCE (SIZE (1..maxnoofRestart5GSTAIs)) OF TAI-5GS
+
+
+-- M
+
+Message-Identifier ::= BIT STRING (SIZE (16))
+
+-- N
+
+Number-of-Broadcasts-Requested	::= INTEGER (0..65535)
+
+-- For Number-of-Broadcasts-Requested = 0 and Repetition-Period = 0, then eNB action is no broadcast
+--  for ETWS Secondary and CMAS.
+--
+-- For Number-of-Broadcasts-Requested = 1 and Repetition-Period = 0, then eNB action is broadcast
+-- only once for ETWS and CMAS.
+--
+-- For Number-of-Broadcasts-Requested = 0 and Repetition-Period > 0, then eNB action is no broadcast
+-- for the ETWS Secondary, and broadcast until further notice for the CMAS.
+--
+-- For Number-of-Broadcasts-Requested > 0 and Repetition-Period > 0, then eNB action is normal
+-- broadcast.
+-- All other combinations of Number-of-Broadcasts-Requested and Repetition-Period are considered
+-- invalid. 
+
+NumberOfBroadcasts ::= INTEGER (0..65535)
+
+NR-CGIList ::= SEQUENCE (SIZE(1..maxnoofCellsingNB)) OF NR-CGI
+
+NR-CGI ::= SEQUENCE {
+	pLMNidentity	PLMNidentity,
+	nRCellIdentity	NRCellIdentity,
+	iE-Extensions	ProtocolExtensionContainer { {NR-CGI-ExtIEs} } OPTIONAL,
+	...
+}
+
+NR-CGI-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+NRCellIdentity 	::= BIT STRING (SIZE(36))
+
+NgENB-ID 	::= CHOICE {
+	macroNgENB-ID	BIT STRING (SIZE(20)),
+	shortMacroNgENB-ID 	BIT STRING (SIZE(18)),
+	longMacroNgENB-ID	BIT STRING (SIZE(21)),
+	...
+}
+
+-- O 
+Omc-Id		::=	OCTET STRING (SIZE (1..20))
+
+
+-- P
+PLMNidentity 	::= TBCD-STRING 
+
+-- Q
+
+-- R
+
+Repetition-Period	::= INTEGER (0..4096)
+-- 1 to 4096: Each unit represents a repetition of one second to a maximum of
+-- once per 4096 seconds (~1 hour). 
+-- 0: no repetition
+-- A CBC compliant to this version or later of this specification shall not send a repetition period 
+-- greater than 4095.
+-- For backwards compatibility with a CBC compliant to an earlier version of this specification the 
+-- maximum value of the repetition period defined in ASN.1 remains at 4096.
+-- If the value of the Repetition Period IE received in the WRITE-REPLACE WARNING REQUEST message is 
+-- set to 4096, the MME shall set the Repetition Period IE to the maximum value 4095 supported on   
+-- the S1-MME interface as defined in [7] before forwarding to the selected eNBs. 
+
+Restarted-Cell-List	::= SEQUENCE (SIZE(1.. maxnoofRestartedCells)) OF EUTRAN-CGI
+
+RAT-Selector-5GS ::= ENUMERATED {true}
+
+Restarted-Cell-List-NR ::= SEQUENCE (SIZE(1.. maxnoofCellsforRestartNR)) OF NR-CGI
+
+  
+ 
+-- S
+
+ScheduledCellinEAI ::= SEQUENCE (SIZE(1..maxnoofCellinEAI)) OF ScheduledCellinEAI-Item
+
+ScheduledCellinEAI-Item ::= SEQUENCE {
+	eCGI		EUTRAN-CGI,
+	iE-Extensions	ProtocolExtensionContainer { {ScheduledCellinEAI-Item-ExtIEs} } OPTIONAL,
+	...
+}
+
+ScheduledCellinEAI-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+ScheduledCellinTAI ::= SEQUENCE (SIZE(1..maxnoofCellinTAI)) OF ScheduledCellinTAI-Item
+
+ScheduledCellinTAI-Item ::= SEQUENCE{
+	eCGI	EUTRAN-CGI,
+	iE-Extensions	ProtocolExtensionContainer { {ScheduledCellinTAI-Item-ExtIEs} } OPTIONAL,
+	...
+}
+
+ScheduledCellinTAI-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+ScheduledCellinTAI-5GS ::= SEQUENCE (SIZE(1..maxnoofCellsin5GSTAI)) OF 
+	SEQUENCE{
+	nR-CGI	NR-CGI,
+	iE-Extensions	ProtocolExtensionContainer { {ScheduledCellinTAI-5GS-ExtIEs} } OPTIONAL,
+	...
+}
+
+ScheduledCellinTAI-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+Send-Write-Replace-Warning-Indication ::= ENUMERATED {true}
+
+Send-Stop-Warning-Indication ::= ENUMERATED {true}
+
+Serial-Number	::= BIT STRING (SIZE (16))
+
+Stop-All-Indicator ::= ENUMERATED {true}
+
+-- T
+
+TAC ::= OCTET STRING (SIZE (2)) 
+
+TAC-5GS ::= OCTET STRING (SIZE (3)) 
+
+TAI-Broadcast-List ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Broadcast-List-Item
+
+TAI-Broadcast-List-Item ::= SEQUENCE {
+	tAI		TAI,
+	scheduledCellinTAI	ScheduledCellinTAI,
+	iE-Extensions	ProtocolExtensionContainer { {TAI-Broadcast-List-Item-ExtIEs} } OPTIONAL,
+	...
+}
+
+TAI-Broadcast-List-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+TAI-Broadcast-List-5GS ::= SEQUENCE (SIZE(1..maxnoof5GSTAIs)) OF 
+	SEQUENCE {
+	tAI-5GS		TAI-5GS,
+	scheduledCellinTAI-5GS	ScheduledCellinTAI-5GS,
+	iE-Extensions	ProtocolExtensionContainer { {TAI-Broadcast-List-5GS-ExtIEs} } OPTIONAL,
+	...
+}
+
+TAI-Broadcast-List-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+
+TAI-Cancelled-List ::= SEQUENCE (SIZE(1..maxnoofTAIforWarning)) OF TAI-Cancelled-List-Item
+
+TAI-Cancelled-List-Item ::= SEQUENCE {
+	tAI		TAI,
+	cancelledCellinTAI	CancelledCellinTAI,
+	iE-Extensions	ProtocolExtensionContainer { {TAI-Cancelled-List-Item-ExtIEs} } OPTIONAL,
+	...
+}
+
+TAI-Cancelled-List-Item-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+TAI-Cancelled-List-5GS ::= SEQUENCE (SIZE(1..maxnoof5GSTAIs)) OF 
+	SEQUENCE {
+	tAI-5GS		TAI-5GS,
+	cancelledCellinTAI-5GS	CancelledCellinTAI-5GS,
+	iE-Extensions	ProtocolExtensionContainer { {TAI-Cancelled-List-5GS-ExtIEs} } OPTIONAL,
+	...
+}
+
+TAI-Cancelled-List-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+TAI-List-for-Warning	::= SEQUENCE (SIZE(1.. maxnoofTAIforWarning)) OF TAI
+
+TAI ::= SEQUENCE {
+	pLMNidentity	PLMNidentity,
+	tAC		TAC,
+	iE-Extensions	ProtocolExtensionContainer { {TAI-ExtIEs} } OPTIONAL
+}
+
+TAI-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+TBCD-STRING ::= OCTET STRING (SIZE (3))
+
+TypeOfError ::= ENUMERATED {
+	not-understood,
+	missing,
+	...
+}
+TAI-5GS ::= SEQUENCE {
+	pLMNidentity	PLMNidentity,
+	tAC-5GS		TAC-5GS,
+	iE-Extensions	ProtocolExtensionContainer { {TAI-5GS-ExtIEs} } OPTIONAL
+}
+
+TAI-5GS-ExtIEs SBC-AP-PROTOCOL-EXTENSION ::= {
+	...
+}
+
+
+-- U
+
+Unknown-Tracking-Area-List	::= SEQUENCE (SIZE(1.. maxNrOfTAIs)) OF TAI
+
+Unknown-5GS-Tracking-Area-List	::= SEQUENCE (SIZE(1.. maxnoof5GSTAIs)) OF TAI-5GS
+
+
+-- V
+
+-- W
+
+Warning-Area-List	::= CHOICE {
+	cell-ID-List	ECGIList,
+	tracking-Area-List-for-Warning		TAI-List-for-Warning,
+	emergency-Area-ID-List	Emergency-Area-ID-List,
+	...
+}
+
+Warning-Message-Content	::= OCTET STRING (SIZE (1..9600)) 
+Warning-Area-Coordinates	::= OCTET STRING (SIZE (1..1024))
+Warning-Security-Information	::= OCTET STRING (SIZE (50)) 
+Warning-Type		::=  OCTET STRING (SIZE (2))
+
+Warning-Area-List-5GS	::= CHOICE {
+	cell-ID-List		ECGIList,
+	nR-CGIList		NR-CGIList,
+	tAIList-5GS		TAI-5GS,
+	emergencyAreaIDList	Emergency-Area-ID-List,
+	...
+}
+
+
+
+-- X
+
+-- Y
+
+END