-- **************************************************************
--
-- Information Element Definitions
--
-- **************************************************************
SABP-IEs {
itu-t (0) identified-organization (4) etsi (0) mobileDomain (0)
umts-Access (20) modules (3) sabp (3) version1 (1) sabp-IEs (2) }
DEFINITIONS AUTOMATIC TAGS ::=
BEGIN
IMPORTS
 maxNrOfErrors,
 maxnoofSAI,
 maxNrOfLevels,
 maxProtocolExtensions,
 id-MessageStructure,
 id-TypeOfError
FROM SABP-Constants
 Criticality,
 ProcedureCode,
 TriggeringMessage,
 ProtocolIE-ID
FROM SABP-CommonDataTypes
 IE
FROM SABP-PDU;

IE-Extensions ::= SEQUENCE (SIZE (1..maxProtocolExtensions)) OF IE

-- A
Available-Bandwidth ::= INTEGER (0..20480)
-- bits/sec
-- B
Broadcast-Message-Content ::= BIT STRING (SIZE (1..9968))-- This IE is sent from the CN to the RNC containing user information i.e.
-- the message.
Broadcast-Message-Content-Validity-Indicator ::= ENUMERATED {
 broadcast-Message-Content-not-valid,
 ...
}
-- C
Category ::= ENUMERATED {
 high-priority,
 background-priority,
 normal-priority,
 default-priority,
 ...
}
Cause ::= INTEGER {
 parameter-not-recognised (0),
 parameter-value-invalid (1),
 valid-CN-message-not-identified (2),
 service-area-identity-not-valid (3),
 unrecognised-message (4),
 missing-mandatory-element (5),
 rNC-capacity-exceeded (6),
 rNC-memory-exceeded (7),
 service-area-broadcast-not-supported (8), 
 service-area-broadcast-not-operational (9),
 message-reference-already-used (10),
 unspecifed-error (11),
 transfer-syntax-error (12),
 semantic-error (13),
 message-not-compatible-with-receiver-state (14),
 abstract-syntax-error-reject (15),
 abstract-syntax-error-ignore-and-notify (16),
 abstract-syntax-error-falsely-constructed-message (17)
} (0..255)
Criticality-Diagnostics ::= SEQUENCE {
 procedureCode ProcedureCode OPTIONAL,
 triggeringMessage TriggeringMessage OPTIONAL,
 procedureCriticality Criticality OPTIONAL,
 iEsCriticalityDiagnostics CriticalityDiagnostics-IE-List OPTIONAL,
 iE-Extensions IE-Extensions OPTIONAL,
 ...
}
CriticalityDiagnostics-ExtIEs SABP-PROTOCOL-EXTENSION ::= {
 ...
}
CriticalityDiagnostics-IE-List ::= SEQUENCE (SIZE (1..maxNrOfErrors)) OF
 SEQUENCE {
 iECriticality Criticality,
 iE-ID ProtocolIE-ID,
 repetitionNumber RepetitionNumber0 OPTIONAL,
 iE-Extensions IE-Extensions OPTIONAL,
 ...
 }
CriticalityDiagnostics-IE-List-ExtIEs SABP-PROTOCOL-EXTENSION ::= {
 -- { ID id-MessageStructure CRITICALITY ignore EXTENSION MessageStructure PRESENCE optional }|
 -- { ID id-TypeOfError CRITICALITY ignore EXTENSION TypeOfError PRESENCE mandatory },
 ...
}
MessageStructure ::= SEQUENCE (SIZE (1..maxNrOfLevels)) OF
 SEQUENCE {
 iE-ID ProtocolIE-ID,
 repetitionNumber RepetitionNumber1 OPTIONAL,
 iE-Extensions IE-Extensions OPTIONAL,
 ...
 }
MessageStructure-ExtIEs SABP-PROTOCOL-EXTENSION ::= {
 ...
} 
-- D
Data-Coding-Scheme ::= BIT STRING (SIZE (8))
-- E
-- F
Failure-List ::= SEQUENCE (SIZE (1..maxnoofSAI)) OF Failure-List-Item
Failure-List-Item ::= SEQUENCE {
 service-area-identifier Service-Area-Identifier,
 cause Cause,
 iE-Extensions IE-Extensions OPTIONAL,
 ...
}
FailureListItemIE-ExtIEs SABP-PROTOCOL-EXTENSION ::= {
...
}
-- G
-- H
-- I
-- J
-- K
-- L
-- M
Message-Identifier ::= BIT STRING (SIZE (16))
-- N
New-Serial-Number ::= Serial-Number
Number-of-Broadcasts-Completed-List ::= SEQUENCE (SIZE (1..maxnoofSAI)) OF
 Number-of-Broadcasts-Completed-List-Item
Number-of-Broadcasts-Completed-List-Item ::= SEQUENCE {
 service-area-identifier Service-Area-Identifier,
 number-of-broadcasts-completed INTEGER (0..65535),
 number-of-broadcasts-completed-info Number-Of-Broadcasts-Completed-Info OPTIONAL,
 iE-Extensions IE-Extensions OPTIONAL,
 ...
}
NoOfBroadcastsCompletedListItemIE-ExtIEs SABP-PROTOCOL-EXTENSION ::= {
... 
}
Number-Of-Broadcasts-Completed-Info ::= ENUMERATED {
 overflow,
 unknown,
 ...
}
Number-of-Broadcasts-Requested ::= INTEGER {
 broadcast-indefinitely (0)
} (0..65535)
-- O
Old-Serial-Number ::= Serial-Number
-- P
Paging-ETWS-Indicator ::= ENUMERATED {
 paging,
 ...
}
-- Q
-- R
Radio-Resource-Loading-List ::= SEQUENCE (SIZE (1..maxnoofSAI)) OF
 Radio-Resource-Loading-List-Item
Radio-Resource-Loading-List-Item ::= SEQUENCE {
 service-area-identifier Service-Area-Identifier,
 available-bandwidth Available-Bandwidth,
 iE-Extensions IE-Extensions OPTIONAL,
 ...
}
RadioResourceLoadingListItemIE-ExtIEs SABP-PROTOCOL-EXTENSION ::= {
...
}
Recovery-Indication ::= ENUMERATED {
 data-lost,
 data-available
}
RepetitionNumber0 ::= INTEGER(0..255)
RepetitionNumber1 ::= INTEGER(1..256)
Repetition-Period ::= INTEGER (1..4096)
-- Each unit represents a repetition of one second to a maximum of
-- once per 4096 seconds (~1 hour). 
-- S
Serial-Number ::= BIT STRING (SIZE (16))
Service-Area-Identifier ::= SEQUENCE {
 pLMNidentity OCTET STRING (SIZE (3))
 -- Digits 0 to 9, two digits per octet. --
 -- Each octet encoded 0000 to 1001. --
 -- 1111 used as filler --
 -- Bit 4 to 1 of octet n encoding digit 2n-1. --
 -- Bit 8 to 5 of octet n encoding digit 2n. --
 -- The PLMN identity consists of 3 digits from MCC --
 -- followed by either a filler plus 2 digits --
 -- from MNC (in case of 2 digit MNC) or 3 digits --
 -- from MNC (in case of 3 digit MNC). -- ,
 lac OCTET STRING (SIZE (2))
 -- 0000 and FFFE not allowed -- ,
 sac OCTET STRING (SIZE (2))
}
-- **TODO** The IE type for these parameters is not known as yet
Service-Areas-List ::= SEQUENCE (SIZE (1..maxnoofSAI)) OF Service-Area-Identifier
-- T
TypeOfError ::= ENUMERATED {
 not-understood,
 missing,
 ...
}
-- U
-- V
-- W
WarningSecurityInfo ::= OCTET STRING (SIZE (50))
Warning-Type ::= OCTET STRING (SIZE(2))
-- X
-- Y
END 
