-- **************************************************************
--
-- PDU definitions for SABP.
--
-- **************************************************************
SABP-PDU-Contents {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
umts-Access (20) modules (3) sabp (3) version1 (1) sabp-PDU-Contents (1) }
DEFINITIONS AUTOMATIC TAGS ::= 
BEGIN
-- **************************************************************
--
-- IE parameter types from other modules.
--
-- **************************************************************
IMPORTS
 Broadcast-Message-Content,
 Category,
 Cause,
Criticality-Diagnostics,
 Data-Coding-Scheme,
 Failure-List,
 Message-Identifier,
 New-Serial-Number,
 Number-of-Broadcasts-Completed-List,
 Number-of-Broadcasts-Requested,
 Old-Serial-Number,
 Paging-ETWS-Indicator,
 Radio-Resource-Loading-List,
 Recovery-Indication,
 Repetition-Period,
 Serial-Number,
 Service-Areas-List,
 WarningSecurityInfo,
 Warning-Type,
 Broadcast-Message-Content-Validity-Indicator
FROM SABP-IEs
 ProtocolExtensionContainer{},
 ProtocolIE-Container{},
 SABP-PROTOCOL-EXTENSION,
 SABP-PROTOCOL-IES
FROM SABP-Containers
 id-Broadcast-Message-Content,
 id-Category,
 id-Criticality-Diagnostics,
 id-Cause,
 id-Data-Coding-Scheme,
 id-Failure-List,
 id-Message-Identifier,
 id-New-Serial-Number,
 id-Number-of-Broadcasts-Completed-List,
 id-Number-of-Broadcasts-Requested,
 id-Old-Serial-Number,
 id-Paging-ETWS-Indicator,
 id-Radio-Resource-Loading-List,
 id-Recovery-Indication,
 id-Repetition-Period,
 id-Serial-Number, 
 id-Service-Areas-List,
 id-WarningSecurityInfo,
 id-Warning-Type,
 id-Broadcast-Message-Content-Validity-Indicator
FROM SABP-Constants;
-- **************************************************************
--
-- Write-Replace
--
-- **************************************************************
Write-Replace ::= SEQUENCE {
 protocolIEs ProtocolIE-Container { {Write-Replace-IEs} },
 protocolExtensions ProtocolExtensionContainer { {Write-Replace-Extensions} } OPTIONAL,
 ...
}
Write-Replace-IEs SABP-PROTOCOL-IES ::= {
 { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
 { ID id-New-Serial-Number CRITICALITY reject TYPE New-Serial-Number PRESENCE mandatory } |
 { ID id-Old-Serial-Number CRITICALITY ignore TYPE Old-Serial-Number PRESENCE optional } |
 { ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE mandatory } |
 { ID id-Category CRITICALITY ignore TYPE Category PRESENCE optional } |
 { ID id-Repetition-Period CRITICALITY reject TYPE Repetition-Period PRESENCE mandatory } |
 { ID id-Number-of-Broadcasts-Requested
 CRITICALITY reject TYPE Number-of-Broadcasts-Requested PRESENCE mandatory } |
 { ID id-Data-Coding-Scheme CRITICALITY reject TYPE Data-Coding-Scheme PRESENCE mandatory } |
 { ID id-Broadcast-Message-Content
 CRITICALITY reject TYPE Broadcast-Message-Content PRESENCE mandatory },
 ...
}
Write-Replace-Extensions SABP-PROTOCOL-EXTENSION ::= {
 { ID id-WarningSecurityInfo CRITICALITY ignore EXTENSION WarningSecurityInfo PRESENCE optional } |
 { ID id-Paging-ETWS-Indicator CRITICALITY ignore EXTENSION Paging-ETWS-Indicator PRESENCE optional } |
 { ID id-Warning-Type CRITICALITY ignore EXTENSION Warning-Type PRESENCE optional } |
 { ID id-Broadcast-Message-Content-Validity-Indicator CRITICALITY ignore EXTENSION Broadcast-Message-Content-Validity-Indicator PRESENCE
optional },
 ...
}
-- **************************************************************
--
-- Write-Replace-Complete
--
-- **************************************************************
Write-Replace-Complete ::= SEQUENCE {
 protocolIEs ProtocolIE-Container { {Write-Replace-Complete-IEs} },
 protocolExtensions ProtocolExtensionContainer { {Write-Replace-Complete-Extensions} } OPTIONAL,
 ...
} 
Write-Replace-Complete-IEs SABP-PROTOCOL-IES ::= {
 { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
 { ID id-New-Serial-Number CRITICALITY reject TYPE New-Serial-Number PRESENCE mandatory } |
 { ID id-Number-of-Broadcasts-Completed-List
 CRITICALITY reject TYPE Number-of-Broadcasts-Completed-List
 PRESENCE mandatory }|
{ ID id-Criticality-Diagnostics
CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
 ...
}
Write-Replace-Complete-Extensions SABP-PROTOCOL-EXTENSION ::= {
 ...
}
-- **************************************************************
--
-- Write-Replace-Failure
--
-- **************************************************************
Write-Replace-Failure ::= SEQUENCE {
 protocolIEs ProtocolIE-Container { {Write-Replace-Failure-IEs} },
 protocolExtensions ProtocolExtensionContainer { {Write-Replace-Failure-Extensions} } OPTIONAL,
 ...
}
Write-Replace-Failure-IEs SABP-PROTOCOL-IES ::= {
 { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
 { ID id-New-Serial-Number CRITICALITY reject TYPE New-Serial-Number PRESENCE mandatory } |
 { ID id-Failure-List CRITICALITY reject TYPE Failure-List PRESENCE mandatory } |
 { ID id-Number-of-Broadcasts-Completed-List
 CRITICALITY ignore TYPE Number-of-Broadcasts-Completed-List
 PRESENCE optional } |
{ ID id-Criticality-Diagnostics
CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
 ...
}
Write-Replace-Failure-Extensions SABP-PROTOCOL-EXTENSION ::= {
 ...
}
-- **************************************************************
--
-- Kill
--
-- **************************************************************
Kill ::= SEQUENCE {
 protocolIEs ProtocolIE-Container {{Kill-IEs}},
 protocolExtensions ProtocolExtensionContainer {{Kill-Extensions}} OPTIONAL,
 ...
} 
Kill-IEs SABP-PROTOCOL-IES ::= {
 { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
 { ID id-Old-Serial-Number CRITICALITY reject TYPE Old-Serial-Number PRESENCE mandatory } |
 { ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE mandatory } ,
 ...
}
Kill-Extensions SABP-PROTOCOL-EXTENSION ::= {
 ...
}
-- **************************************************************
--
-- Kill-Complete
--
-- **************************************************************
Kill-Complete ::= SEQUENCE {
 protocolIEs ProtocolIE-Container {{Kill-Complete-IEs}},
 protocolExtensions ProtocolExtensionContainer {{Kill-Complete-Extensions}} OPTIONAL,
 ...
}
Kill-Complete-IEs SABP-PROTOCOL-IES ::= {
 { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
 { ID id-Old-Serial-Number CRITICALITY reject TYPE Old-Serial-Number PRESENCE mandatory } |
 { ID id-Number-of-Broadcasts-Completed-List
 CRITICALITY reject TYPE Number-of-Broadcasts-Completed-List
 PRESENCE mandatory }|
{ ID id-Criticality-Diagnostics
CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
 ...
}
Kill-Complete-Extensions SABP-PROTOCOL-EXTENSION ::= {
 ...
}
-- **************************************************************
--
-- Kill-Failure
--
-- **************************************************************
Kill-Failure ::= SEQUENCE {
 protocolIEs ProtocolIE-Container {{Kill-Failure-IEs}},
 protocolExtensions ProtocolExtensionContainer {{Kill-Failure-Extensions}} OPTIONAL,
 ...
}
Kill-Failure-IEs SABP-PROTOCOL-IES ::= {
 { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
 { ID id-Old-Serial-Number CRITICALITY reject TYPE Old-Serial-Number PRESENCE mandatory } |
 { ID id-Failure-List CRITICALITY reject TYPE Failure-List PRESENCE mandatory } | 
 { ID id-Number-of-Broadcasts-Completed-List
 CRITICALITY ignore TYPE Number-of-Broadcasts-Completed-List
 PRESENCE optional } |
{ ID id-Criticality-Diagnostics
CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
 ...
}
Kill-Failure-Extensions SABP-PROTOCOL-EXTENSION ::= {
 ...
}
-- **************************************************************
--
-- Load-Query
--
-- **************************************************************
Load-Query ::= SEQUENCE {
 protocolIEs ProtocolIE-Container {{Load-Query-IEs}},
 protocolExtensions ProtocolExtensionContainer {{Load-Query-Extensions}} OPTIONAL,
 ...
}
Load-Query-IEs SABP-PROTOCOL-IES ::= {
 { ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE mandatory } ,
 ...
}
Load-Query-Extensions SABP-PROTOCOL-EXTENSION ::= {
 ...
}
-- **************************************************************
--
-- Load-Query-Complete
--
-- **************************************************************
Load-Query-Complete ::= SEQUENCE {
 protocolIEs ProtocolIE-Container {{Load-Query-Complete-IEs}},
 protocolExtensions ProtocolExtensionContainer {{Load-Query-Complete-Extensions}} OPTIONAL,
 ...
}
Load-Query-Complete-IEs SABP-PROTOCOL-IES ::= {
 { ID id-Radio-Resource-Loading-List
 CRITICALITY reject TYPE Radio-Resource-Loading-List
 PRESENCE mandatory } |
{ ID id-Criticality-Diagnostics
CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
 ...
} 
Load-Query-Complete-Extensions SABP-PROTOCOL-EXTENSION ::= {
 ...
}
-- **************************************************************
--
-- Load-Query-Failure
--
-- **************************************************************
Load-Query-Failure ::= SEQUENCE {
 protocolIEs ProtocolIE-Container {{Load-Query-Failure-IEs}},
 protocolExtensions ProtocolExtensionContainer {{Load-Query-Failure-Extensions}} OPTIONAL,
 ...
}
Load-Query-Failure-IEs SABP-PROTOCOL-IES ::= {
 { ID id-Failure-List CRITICALITY reject TYPE Failure-List PRESENCE mandatory } |
 { ID id-Radio-Resource-Loading-List
 CRITICALITY ignore TYPE Radio-Resource-Loading-List
 PRESENCE optional } |
{ ID id-Criticality-Diagnostics
CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
 ...
}
Load-Query-Failure-Extensions SABP-PROTOCOL-EXTENSION ::= {
 ...
}
-- **************************************************************
--
-- Message-Status-Query
--
-- **************************************************************
Message-Status-Query ::= SEQUENCE {
 protocolIEs ProtocolIE-Container {{Message-Status-Query-IEs}},
 protocolExtensions ProtocolExtensionContainer {{Message-Status-Query-Extensions}} OPTIONAL,
 ...
}
Message-Status-Query-IEs SABP-PROTOCOL-IES ::= {
 { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
 { ID id-Old-Serial-Number CRITICALITY reject TYPE Old-Serial-Number PRESENCE mandatory } |
 { ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE mandatory } ,
 ...
}
Message-Status-Query-Extensions SABP-PROTOCOL-EXTENSION ::= {
 ...
} 
-- **************************************************************
--
-- Message-Status-Query-Complete
--
-- **************************************************************
Message-Status-Query-Complete ::= SEQUENCE {
 protocolIEs ProtocolIE-Container {{Message-Status-Query-Complete-IEs}},
 protocolExtensions ProtocolExtensionContainer {{Message-Status-Query-Complete-Extensions}} OPTIONAL,
 ...
}
Message-Status-Query-Complete-IEs SABP-PROTOCOL-IES ::= {
 { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
 { ID id-Old-Serial-Number CRITICALITY reject TYPE Old-Serial-Number PRESENCE mandatory } |
 { ID id-Number-of-Broadcasts-Completed-List
 CRITICALITY reject TYPE Number-of-Broadcasts-Completed-List
 PRESENCE mandatory } |
{ ID id-Criticality-Diagnostics
CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
 ...
}
Message-Status-Query-Complete-Extensions SABP-PROTOCOL-EXTENSION ::= {
 ...
}
-- **************************************************************
--
-- Message-Status-Query-Failure
--
-- **************************************************************
Message-Status-Query-Failure ::= SEQUENCE {
 protocolIEs ProtocolIE-Container {{Message-Status-Query-Failure-IEs}},
 protocolExtensions ProtocolExtensionContainer {{Message-Status-Query-Failure-Extensions}} OPTIONAL,
 ...
}
Message-Status-Query-Failure-IEs SABP-PROTOCOL-IES ::= {
 { ID id-Message-Identifier CRITICALITY reject TYPE Message-Identifier PRESENCE mandatory } |
 { ID id-Failure-List CRITICALITY reject TYPE Failure-List PRESENCE mandatory } |
 { ID id-Old-Serial-Number CRITICALITY reject TYPE Old-Serial-Number PRESENCE mandatory } |
 { ID id-Number-of-Broadcasts-Completed-List
 CRITICALITY ignore TYPE Number-of-Broadcasts-Completed-List
 PRESENCE optional } |
{ ID id-Criticality-Diagnostics
CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
 ...
}
Message-Status-Query-Failure-Extensions SABP-PROTOCOL-EXTENSION ::= {
 ...
} 
-- **************************************************************
--
-- Reset
--
-- **************************************************************
Reset ::= SEQUENCE {
 protocolIEs ProtocolIE-Container {{Reset-IEs}},
 protocolExtensions ProtocolExtensionContainer {{Reset-Extensions}} OPTIONAL,
 ...
}
Reset-IEs SABP-PROTOCOL-IES ::= {
 { ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE mandatory } ,
 ...
}
Reset-Extensions SABP-PROTOCOL-EXTENSION ::= {
 ...
}
-- **************************************************************
--
-- Reset-Complete
--
-- **************************************************************
Reset-Complete ::= SEQUENCE {
 protocolIEs ProtocolIE-Container {{Reset-Complete-IEs}},
 protocolExtensions ProtocolExtensionContainer {{Reset-Complete-Extensions}} OPTIONAL,
 ...
}
Reset-Complete-IEs SABP-PROTOCOL-IES ::= {
 { ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE mandatory } |
{ ID id-Criticality-Diagnostics
CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
 ...
}
Reset-Complete-Extensions SABP-PROTOCOL-EXTENSION ::= {
 ...
}
-- **************************************************************
--
-- Reset-Failure
--
-- **************************************************************
Reset-Failure ::= SEQUENCE {
 protocolIEs ProtocolIE-Container {{Reset-Failure-IEs}},
 protocolExtensions ProtocolExtensionContainer {{Reset-Failure-Extensions}} OPTIONAL, 
 ...
}
Reset-Failure-IEs SABP-PROTOCOL-IES ::= {
 { ID id-Failure-List CRITICALITY reject TYPE Failure-List PRESENCE mandatory } |
 { ID id-Service-Areas-List CRITICALITY reject TYPE Service-Areas-List PRESENCE optional } |
{ ID id-Criticality-Diagnostics
CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional } ,
 ...
}
Reset-Failure-Extensions SABP-PROTOCOL-EXTENSION ::= {
 ...
}
-- **************************************************************
--
-- Restart
--
-- **************************************************************
Restart ::= SEQUENCE {
 protocolIEs ProtocolIE-Container {{Restart-IEs}},
 protocolExtensions ProtocolExtensionContainer {{Restart-Extensions}} OPTIONAL,
 ...
}
Restart-IEs SABP-PROTOCOL-IES ::= {
 { ID id-Service-Areas-List CRITICALITY ignore TYPE Service-Areas-List PRESENCE mandatory } |
 { ID id-Recovery-Indication CRITICALITY ignore TYPE Recovery-Indication PRESENCE optional } ,
 ...
}
Restart-Extensions SABP-PROTOCOL-EXTENSION ::= {
 ...
}
-- **************************************************************
--
-- Failure
--
-- **************************************************************
Failure ::= SEQUENCE {
 protocolIEs ProtocolIE-Container {{Failure-IEs}},
 protocolExtensions ProtocolExtensionContainer {{Failure-Extensions}} OPTIONAL,
 ...
}
Failure-IEs SABP-PROTOCOL-IES ::= {
 { ID id-Service-Areas-List CRITICALITY ignore TYPE Service-Areas-List PRESENCE mandatory } , 
 ...
} 
Failure-Extensions SABP-PROTOCOL-EXTENSION ::= {
 ...
}
-- **************************************************************
--
-- Error-Indication
--
-- **************************************************************
Error-Indication ::= SEQUENCE {
 protocolIEs ProtocolIE-Container {{Error-Indication-IEs}},
 protocolExtensions ProtocolExtensionContainer {{Error-Indication-Extensions}} OPTIONAL,
 ...
}
Error-Indication-IEs SABP-PROTOCOL-IES ::= {
 { ID id-Message-Identifier CRITICALITY ignore TYPE Message-Identifier PRESENCE optional } |
 { ID id-Serial-Number CRITICALITY ignore TYPE Serial-Number PRESENCE optional } |
 { ID id-Cause CRITICALITY ignore TYPE Cause PRESENCE optional } |
{ ID id-Criticality-Diagnostics
CRITICALITY ignore TYPE Criticality-Diagnostics PRESENCE optional },
 ...
}
Error-Indication-Extensions SABP-PROTOCOL-EXTENSION ::= {
 ...
}
END 
