-- **************************************************************
--
-- Container definitions
--
-- **************************************************************
SABP-Containers {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
umts-Access (20) modules (3) sabp (3) version1 (1) sabp-Containers (5) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
-- **************************************************************
--
-- IE parameter types from other modules.
--
-- **************************************************************
IMPORTS
 Criticality,
 Presence,
 ProtocolExtensionID,
 ProtocolIE-ID
FROM SABP-CommonDataTypes
 maxProtocolExtensions,
 maxProtocolIEs
FROM SABP-Constants;
-- **************************************************************
--
-- Class Definition for Protocol IEs
--
-- **************************************************************
SABP-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
--
-- **************************************************************
SABP-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 {SABP-PROTOCOL-IES : IEsSetParam} ::=
 SEQUENCE (SIZE (0..maxProtocolIEs)) OF
 ProtocolIE-Field {{IEsSetParam}}
ProtocolIE-Field {SABP-PROTOCOL-IES : IEsSetParam} ::= SEQUENCE {
 id SABP-PROTOCOL-IES.&id ({IEsSetParam}),
 criticality SABP-PROTOCOL-IES.&criticality ({IEsSetParam}{@id}),
 value SABP-PROTOCOL-IES.&Value ({IEsSetParam}{@id})
}
-- **************************************************************
--
-- Container Lists for Protocol IE Containers
--
-- **************************************************************
ProtocolIE-ContainerList {INTEGER : lowerBound, INTEGER : upperBound, SABP-PROTOCOL-IES : IEsSetParam} ::=
 SEQUENCE (SIZE (lowerBound..upperBound)) OF
 ProtocolIE-Container {{IEsSetParam}}
-- **************************************************************
--
-- Container for Protocol Extensions
--
-- **************************************************************
ProtocolExtensionContainer {SABP-PROTOCOL-EXTENSION : ExtensionSetParam} ::=
 SEQUENCE (SIZE (1..maxProtocolExtensions)) OF
 ProtocolExtensionField {{ExtensionSetParam}} 
ProtocolExtensionField {SABP-PROTOCOL-EXTENSION : ExtensionSetParam} ::= SEQUENCE {
 id SABP-PROTOCOL-EXTENSION.&id ({ExtensionSetParam}),
 criticality SABP-PROTOCOL-EXTENSION.&criticality ({ExtensionSetParam}{@id}),
 extensionValue SABP-PROTOCOL-EXTENSION.&Extension ({ExtensionSetParam}{@id})
}
END 
